2014年12月31日水曜日

Nintendo3DSの階段落ち

不注意でNintendo3DSを階段落ちさせてしまいました。
閉じた状態でクッション性ないのフェルト生地の収納袋に入れていて、
コンクリートの階段で10段ほどの落下です。
が、壊れることはありませんでした。
さすが任天堂製品。おもちゃ基準の品質です。
スマートフォンだとこうはいかなかったでしょうね。

2014年12月30日火曜日

マックフライポテト

私にとってハンバーガーといえばマクドナルドです。
初めてマクドナルドで食べたのは香港に住んでいたときのことで、
私の生まれ育った地方にマクドナルドができたのはそれより後の話です。

さてマクドナルドではこの年末定番商品マックフライポテトが
Sサイズのみの販売となっております。
何でもアメリカ西海岸の労働争議の煽りをくったようで、
風が吹けば桶屋が儲かるとはよく言ったものです。
まあ明けて1月5日にはM/Lも再開するようですが。

ところで私がマクドナルドに行くとほぼ株主優待券を使います。
これはサンドイッチ引換券、サイドメニュー引換券、ドリンク引換券からなります。
記憶が定かではないのですが、前期までサイドメニュー引換券には
マックフライポテトのMまたはLサイズがもらえると書いてありました。
今期の引換券にはSサイズの記述も加わっており、
まさか今回のような事態が起こることを予測していたのか、とか勘ぐってしまいます。

私の記憶が確かならば、サイドメニュー引換券は
今期からチキンマックナゲット(5ピース)との交換も可能となっており、
こちらの方がマックフライポテトSより値段が上です。
マックフライポテトSにタダでケチャップをもらったとしても、
価値としてはチキンマックナゲット(5ピース)の方が上でしょう。
ということでポテトLが復活するまではナゲットと交換すべきですね。

2014年12月29日月曜日

年賀状を印刷するにあたって

年末の定例作業をいうと年賀状の印刷だったりしますが、
引っかかるところが毎年同じような気がするのでメモしておくことにします。

最初に絵の背景の透明化です。
画像を重ねて裏面をレイアウトする過程で、
前面の白い背景が背面の絵を隠してしまうとセンスを疑われてしまいます。
まあ誰も気にして見てはいないと思いますが。
ともかく、そういう場合は前面の画像の背景部分を透明にすれば隠れなくなります。
ただしJPEGファイルは透明色をサポートしていないので、PNGファイルに変更します。
この変換はWindows7についている[ペイント]で可能です。
[スタート]メニューから[すべてのプログラム]-[アクセサリ]-[ペイント]を起動し、
JPEGファイルをドラッグ&ドロップし、
[ファイル]-[名前を付けて保存]-[PNG画像]メニューでファイル名を指定するだけです。
ちなみにGIF形式は256色までしか扱えませんのでご注意を。
次に作成したPNG画像に透明色を設定するのですが、これは[ペイント]ではできません。
GIMPをインストールして使うのがいいでしょう。
GIMPを起動し、PNGファイルをドラッグ&ドロップして、
[色]-[色を透明度に]メニューを開き、[この色:]と[を透明度に]の間にあるボタンで色を指定します。
通常白になっていると思います。
で、[ファイル]-[名前を付けてエクスポート]メニューでファイル名を指定します。
これで背景が透明なPNG画像の出来上がりです。好きにレイアウトしましょう。

私は大昔には年賀状(宛名)印刷ソフトをVisual Basicで自作して使っていたり、
中昔にはWordを利用していたこともありましたが、
近年は筆王ユーザーです。
といっても最新のVer19ではなくVer16(16.0.3)を未だに使っています。
古いので羊のイラストは含まれていませんが、特に不自由することはありません。
で、この筆王は1ライセンスでは1台のPCでしか使えません。
今年はMacBook ProWindows7を入れたので、
こちらの環境で動くように引越しです。
この引越しもなぜか毎年やっているような気がします。
ソースネクストの[マイページ]にログインして、
[ご利用中(ユーザー登録済み)の製品]から[筆王16]を選択します。
ソフトのダウンロードとインストールは特筆するようなことはないのですが、
引越しに際しては現在インストールしているマシンの情報を削除する必要があります。
[シリアル番号の確認]メニューで[エントリー情報の確認と変更を行う]をクリックし、
[筆王 Ver16]の[詳細]をクリックして[登録を取り消す]を選択することで、
新しいマシンにインストールして利用できるようになります。
住所録等は[マイドキュメント]の[筆王]ディレクトリにユーザごとのファイルになっているので、
旧マシンから新マシンに移せばそのまま使えます。

最後にプリンタについてです。
一昨年までは毎年のようにインクジェットプリンタがトラブっていましたが、
昨年購入したレーザープリンタMultiWriter 5600Cは、
ほぼ半年ぶりの印刷でもまったく問題ありません。
普通の年賀ハガキ(インクジェット用はダメ)に綺麗に印刷できます。
昨年はハガキ横印刷キットを使ったものの、
アプリケーション側の設定方法が分からず縦印刷しハガキが反りまくっていましたが、
今年は何とか設定方法を見つけて横向きに印刷できたため見栄えもよくなりました。
で、その横印刷の設定方法は以下のとおりです。
筆王(ver16)の[ファイル]-[プリンタの設定]メニューから[プリンターの設定]ウィンドウを開き
[印刷の向き]は[縦]のままにしておきます。
[プロパティ]から[NEC MultiWriter 5600Cのプロパティ]ウィンドウを開き、
[基本]タブで[原稿サイズ]に[はがき(100×148mm)]を選択します。
また[原稿の向き]に[たて原稿]を指定します。
そして[トレイ/排出]タブの[用紙種類]を[はがき]に、
[用紙の給紙方向]を[よこ置き優先]に設定します。
これで通常どおり印刷すれば給紙トレイに横向きにセットしたハガキに正常に印刷できます。
なお、ハガキを置く向きは給紙トレイのカバーの裏に貼ってある案内用のシールに書かれています。
これってハガキ対応キットと一緒に送られてきて自分で貼ったような気が。

2014年12月25日木曜日

Ubuntu 14.04でL2TP/IPsec

ServersMan@VPSがL2TPサーバになれることは分りましたが、
カーネルの関係でIPsecはできないようで、
Android 4.4用のL2TP/IPsec PSK、L2TP/IPsec RSAなVPSサーバにはなれません。
そこでローカルのUbuntu 14.04をL2TP/IPsecにしてみました。

まずは必要なものを以下でインストールします。
# apt-get install xl2tpd
で、最初racoonを利用しようとしましたが、
うまくできなかったので途中でopenswanに乗り換えました。以下を実行します。
# apt-get install openswan
その際
このホスト用に X.509 証明書を自動的に生成あるいはインポートできます。他
のホストとの IPSec 通信での認証に利用可能で、セキュアな IPSec 通信を確立
する方法として好まれています。他に利用可能な方法としては共通鍵 (PSK、ト
ンネルの双方で同じパスワードを利用する) を通信の認証に利用するというのが
ありますが、多数の接続に対しては RSA 認証のほうが管理がより簡単でよりセ
キュアです。
または、この選択肢を選ばないでおいて、後ほど「dpkg-reconfigure
openswan」を実行して再度呼び出すこともできます。
このホストに対して X.509 証明書を利用しますか?
                    <はい>                      <いいえ>        
と表示されました。
[はい]ならL2TP/IPsec RSA、[いいえ]ならL2TP/IPsec PSKということになるのでしょうが、
私はここでデフォルトの[いいえ]を選びました。

そして設定です。
"/etc/ipsec.conf"は
protostack=auto
の行を
protostack=netkey
に変更し、
# Add connections here
の行の直後に
include /etc/ipsec.d/*.conf
を追加します。 "/etc/ipsec.secrets"には
: PSK "<IPSec事前共有鍵となる任意の文字列>"
を追加します。
"/etc/ipsec.d/l2tp-psk.conf"は内容を以下のようにします。
サンプルが"/etc/ipsec.d/examples/l2tp-psk.conf"にあります。
conn L2TP-PSK-NAT
        rightsubnet=0.0.0.0/0
        also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
        authby=secret
        pfs=no
        auto=add
        keyingtries=3
        rekey=no
        ikelifetime=8h
        keylife=1h
        type=transport
        left=%defaultroute
        leftprotoport=17/1701
        right=%any
        rightprotoport=17/%any
"/etc/xl2tpd/xl2tpd.conf" は以下のようにします。
[global]
auth file = /etc/xl2tpd/l2tp-secrets
[lns default]
name = l2tpd
local ip = <L2TPサーバのIPアドレス(例えば 172.30.40.1)>
ip range = <L2TPクライアントに配るIPアドレス群(例えば 172.30.40.100-172.30.40.200)>
require chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd
length bit = yes
"/etc/ppp/options.l2tpd"は以下のようにします。
ipcp-accept-local
ipcp-accept-remote
require-mschap-v2
noccp
nodefaultroute
auth
idle 1800
mtu 1280
mru 1280
debug
lock
proxyarp
connect-delay 5000
ms-dns <DNSサーバのIPアドレス>
netmask 255.255.255.0
logfile /var/log/xl2tpd.log
"/etc/xl2tpd/l2tp-secrets"にはアカウントごとに以下のような行を追加します。
ちなみに'#'から始まる行はコメントです。
<ユーザ名> * <パスワード>
これで
# /etc/init.d/xl2tpd restart
# /etc/init.d/ipsec restart
すれば完了です。
なお、@knok blogを参考にさせてもらいました。
あと実行時にリダイレクトがどうとか怒られるのですが、
"proc/sys/net/ipv4/conf/*/accept_redirects"と"proc/sys/net/ipv4/conf/*/send_redirects"を 無効にしていないのが原因のようです。
lowendtalkを見ると
他にも色々いじっていますが、
基本的にはaccept_redirectsとsend_redirectsを軒並み無効(0)にしておけば問題ないようです。
あとはルーティングテーブルやNATを適切にいじれば
他のサブネットやインターネットへもアクセスできるようになります。

ところで今回利用を途中やめしたracoonを使うならdebian
nikoforgeのページが参考になりそうですし、
l2tpでないIPSec Xauthなvpnを使いたければ
serverfaultが参考になるかもしれません。
あるいはアメコロガシもいいかもしれません。
インターネット上にはたくさんの知恵があるんです。

2014年12月24日水曜日

DIGA BZT710のBlu-rayドライブが壊れた

2年半使用しているDIGA BZT710
DB-Rに書き込んだ翌日、Blu-rayドライブが壊れてしまいました。
BDを入れてもまったく認識してくれず、
リモコンの[BD/DVD]ボタンを押すと本体が全体的におかしくなってしまいます。
録画中の番組はそのままHDDに記録されていましたが、
まったく言うことを聞いてくれません。
Blu-rayドライブからシーク音っぽい「シーッ」という音が永遠と繰り返し出ています。
とにかく入れたBDの取り出しが出来ず、電源すら落とせないという困った状況です。

ネットで彷徨っているとパナソニックのサイト
強制的にディスクを取り出す方法が分かったので実行してみました。
最初に電源を切らなければならないのですが、電源が落ちない。
切ろうとしても本体前面の小さなLCDに[PLEASE WAIT]の文字がスクロールし続けます。
これは本体の[電源]キーの長押しで何とかなりました。
その後[決定]+[青]+[黄]を同時に5秒以上押すと本体LCDに[00 RET]と表示されるので、
リモコンの[右]を1回押して[06 FTO]と表示されているのを確認して[決定]を押します。
タイムラグがあってトレイが開きます。最悪の事態はなんとか脱しました。

で、回復すべくレンズのクリーニングをすることにしました。
調べると純正ブルーレイレンズクリーナー RP-CL720A-Kが売ってあり、
これでないとクリーニングディスクとして認識してくれないようです。

が、レンズクリーナーを注文して2日後、なんとBDドライブが直っていました。
BD-Rへの書き込みもきちんとできています。
しかし、その後また同様の症状に。
ただし今回はディスクはちゃんとイジェクトされます。強制排出はしなくても大丈夫です。
試しにDVDを入れてみると再生してくれるので、
どうやらBlu-rayのピックアップの不具合らしいとあたりが付いたので、
買ってしまった純正レンズクリーナーでクリーニングしてみます。
クリーナーデスクが回ってクロスがピックアップのレンズを擦る音が聞こえました。
1度では回復しなかったので、
クリーニング液をたっぷりつけて数度やってみると見事BDも読めるようになりました。

その後も読めなくなることがありますが、どうも寒いのが原因のような気がします。
春になっても不安定なら修理に出すかな。

2014年12月23日火曜日

SHA256な証明書

暗号技術は時と共に陳腐化するものです。
現在主流の暗号関連の技術は、現在の知識で解読するのが大変なことが数学的に証明されていて、
かつ、現在のテクノロジーでリーズナブルに解読できないことことを前提として利用されており、
将来的には極簡単に解読できるようになるかもしれません。
そして、多用されているハッシュ関数のSHA1も、今は十分安全とは言い難いということで、
SHA256(SHA2)への移行が世界的に行われています。
Symantecによれば、
SHA1のSSLサーバ証明書は発行が2015年末まで、利用が2016年末までということになっています。

さて、今年も私のウェブ証明書の更新時期がやってきました。
いつものようにStartSSLで証明書を発行してもらいます。
昨年どうだったか記憶はありませんが、
[Secure Hash Algorithm]の選択項目が"SHA2(Default)"、"SHA1(Deprecated)"となっており、
もはやSHA1はお勧めではなくなっています。
SHA1でないと認識できないような古い機器はもう切り捨てることにして
SHA256のものを発行してもらってウェブサーバにセットアップします。

確認はSymantecのSSL Toolboxを利用するのがいいでしょう。
[SSL Toolbox を使ってみる]、[Check your certificate installation]とクリックし、
SSLウェブサーバを指定すると色々調べてくれます。
その中の[Algorithm type]が、旧証明書で"SHA1withRSA"だったのが
新証明書では"SHA256withRSA"になりました。これで完璧です。
ちなみにWindowsXP+IEでSHA256なhttpsページにアクセスすると認証エラーになります。
ただ期限切れの証明書に対する認証エラーとの違いはないように見えます。
またSHA256だからと言ってページがまったく見えなくなるということはなさそうです。

ところで無料でウェブ証明書を発行してくれるところってStartSSLぐらいかと思っていたら、
Let’s Encryptが現在準備中のようです。
2015年8月開始ということなので、来年はこっちのサービスを使ってみてもいいかな。

2014年12月22日月曜日

ITサービスマネージャ

今年の秋はITサービスマネージャ試験を受けました。
正直この分野は得意でもなく経験がある訳でもなく、興味の薄い分野でもありますが、
だからこそ学べば新しい考え方も知れるのかなと思いつつ受験することに。
まあIPA高度試験の全クリアの方が目的としては大きいんですけどね。

で、勉強ですが、午前Iは免除なのでおいておいて、
午前IIと午後Iは春のプロジェクトマネージャ試験が終わった直後に参考書を読み、
そこに載っている過去問を見て、私のこれまでの知識で十分解けると判断しました。
しかし午後IIの論述試験はどの問題を見ても完成形のイメージすらわきません。
まったく書ける気がしないので練習をすることもなく半ば諦め。
ということで数か月間まったく手つかず、
受験1週間前から参考書をぱらぱらめくる程度で本番に突入しました。
午前IIと午後Iは予定どおりまあまあ出来ましたが、
午後IIは構想に時間がかかりすぎて時間配分が理想どおり行えず、
問3の書き始め時点ですでに残り20分弱。
こうなると綺麗に書くなんてのは二の次で書きなぐり、
字数を稼ぐためひらがな多用で、どうにかノルマの600文字に到達。
残り時間は1分ありませんでした。

それで結果はというと予想通り不合格でした。
が、予定外に午後Iで落とされてます。
午前IIは76点獲れていますが、午後Iは48点とボーダーの60点に届いていません。
もう少し勉強する必要がありそうです。
逆によかったのは午後IIの記述式の解答が誰の目にも止まることなくお蔵入されることです。
もはや何を書いたか思い出せませんが、かなり悲惨であることは間違いないので。

まあIPAの秋季試験で未合格なのはこのITサービスマネージャだけですし、
また来年受ければいいかと。
負け惜しみじゃないんだからね!!

2014年12月18日木曜日

Ubuntu 14.04とWindows7でファイル共有

WindowsとLinuxの間でファイル共有するとなると、
もっともメジャーなのはsambaを利用することだと認識しています。
ところが、企業などでドメイン認証しているような環境では、
中央サーバで認証が行われるため、
勝手に作ったsambaサーバにローカルアカウントでログインできません。
いや、何か方法があるのかもしれませんが、私にはできませんでした。

まあLinuxにsftpでログインすれば特に問題はないのですが、
他に何か方法はないかなということで思いつくのはWebDAVです。

ということでUbuntu 14.04をWebDAVサーバにしてみます。
まずは以下を実行します。
# apt-get install apache2
# a2enmod dav
# a2enmod dav_fs
# a2enmod dav_lock
# cd /var/www
# mkdir dav
# chown -R www-data:www-data dav/
# chmod 775 dav/
設定ファイル"/etc/apache2/apache2.conf"に
Alias /dav "/var/www/dav"
<Location /dav>
        DAV on
        Options Indexes
        Require all granted
</Location>
ここで"Require all granted"をつけているのは
[authz_core:error] [pid ****] [client ***.***.***.***:*****] AH01630: client denied by server configuration: /***/***/***
の様なエラーになりのを防ぐためです。
また"Options Indexes"をつけないと
通常のウェブブラウザからアクセスした時に"403 forbidden"エラーになります。
最後に
# service apache2 restart
で再起動して完了です。

ローカルでならこれでも十分ですが、もしSSL化したいなら、追加で
# a2enmod ssl
# a2ensite default-ssl 
を実行します。これで"http:"でも"https:"でも接続できるようになります。
本来なら"make-ssl-cert"で少なくともオレオレ証明書を作るべきですが、
ローカル利用ならまあ影響はないでしょう。
さらにセキュアにするため"http:"でのアクセスを禁止したければ、
"/etc/apache2/apache2.conf"の先に追加したLocationディレクティブの内に
"SSLRequireSSL"を追加すればいいでしょう。
なお下記の様にbasic認証するような場合も、
パスワードがバレないよう"http:"は止めた方がいいです。

で、そのパスワード認証をかけたい場合ですが、
# apt-get install apache2-utils
でツールをインストールして
# htpasswd -c <パスワードファイル> <ユーザ名> <パスワード>
でパスワードファイルにアカウントを追加し、
"/etc/apache2/apache2.conf"の先に追加したLocationディレクティブの内の
"Require all granted"を削除し、
    AuthUserFile <パスワードファイルへのフルパス>
    AuthName "<領域名>"
    AuthType Basic
    Require valid-user
を追加すればいいでしょう。
ちなみにパスワードファイルはウェブサーバで公開されないディレクトリへ格納ください。
もしディレクトリごとにアクセスするユーザを変えたいという様なことであれば、
"/etc/apache2/apache2.conf"に各ディレクトリで
別々のLocationディレクティブを書けばいいのですが、もっと複雑にしたければ
先のLocationディレクティブに追加した分は代わりに"/var/www/dav/.htaccess"へ書き込み、
"/etc/apache2/apache2.conf"へは
<Directory /var/www/dav>
        AllowOverride All
</Directory>
を追加します。
別設定にしたいディレクトリごとに適切な".htaccess"とパスワードファイルを作ることで、
そのディレクトリへのアクセスユーザを制限できます。
カレントディレクトリに".htaccess"がなければディレクトリを親方向に遡って
最初に現れたものが採用されます。
".htaccess"を使うことの難点はDAVクライアントで
".htaccess"の存在自体が見えてしまうことです。
まあどんなパーミッションにしようとも(たとえwww-data所有の0777でも)
DAV経由での".htaccess"の読み書きはできないので、
気にしなければいいだけではあるのですが。

個人的なサーバならこれでも充分ですが、
大規模なユーザアカウントを管理する必要があるなら、
ldapなどと連携させるべきでしょう。

最後にパーミッションについて。
WebDAVクライアントからサーバ上にファイルを作成(コピーによるものも含む)すると、
そのファイルの所有ユーザは"www-data"、所有グループは"www-data"、
パーミッションは"644"になります。
サーバが単なるファイルの保存場所であるならこれでも特に問題はないのですが、
そのサーバが動作しているマシンでもローカルで
それらファイルを編集したい場合は一般ユーザからアクセスできず役に立ちません。
rootユーザになってパーミッション等を変更するのが解決策になりますが面倒です。
実はこれを簡単に解決する方法があります。
"/etc/apache2/envvars"設定ファイルの最後に
umask 000
の行を追加してウェブサーバを再起動するだけで、
ファイルのパーミッションが"666"になるようになり、そのままで編集や削除が可能となります。

2014年12月17日水曜日

イングラム

NFLの2014年シーズンも佳境に入っています。
私は本来緩いブロンコスファンなのですが、QBマニングがコルツ時代からあまり好きではないので、
今シーズンはブラウンズ、ビルズ、ラムズあたりを応援しながら観ています。
基本的に判官びいきなので弱いチームを応援するのですが、
ブラウンズとビルズは今季なかなか調子がいいですし、
ラムズもSTが妙な戦術を使ったり強豪チーム相手に金星を取ったりとなかなか面白いです。
そしてもっとも応援しているのがカージナルスです。
WRフィッツジェラルドが結構好きで毎年注目しているのですが、
今年は本拠地でSUPERBOWLがあるので何とかならないかなと思っているところに快進撃です。
最近は故障者が多く苦しい戦いを強いられていますが。

って、今日はそういう話ではありません。
NFLのセインツにRBイングラムという選手が何年も前からいます。
ついでに言えばチャージャーズにもいますね。
イングラムというと世間的にはパトレイバーを思い浮かべる方が多いようなのですが、
私はサブマシンガンを思い出します。
で、もう一つ"ジョナサン・イングラム"という名前も。
人の名前ではありそうなのですが、誰なのかはまったく思い出せません。
まあ別に大したことではないので数年そのままほったらかしにしていたところ、
思わぬところから素性が分かりました。
"ポリスノーツ"という大昔のゲームの主人公なんですね。
やったことのないゲームなのになぜか覚えていたのは、
遊びたいと思いつつも対応ゲームコンソール3DO(3DSではない)が
泡と消えたことが印象に残っているからでしょう。

で、ちょっと調べてみるとPS3のゲームアーカイブスで遊べるみたいです。
というわけで購入してみました。
メディアプレーヤー、そしてtorne
とで地デジレコーダーとしてしか使ってこなかった
私のPS3の最初で、多分最後のゲームとなることでしょう。

しかし、購入時にトラブルが。
ゲーム自体は617円なのですが、何とウォレットに勝手に1000円もチャージされてしまいました。
これはPS storeの仕様でどうしようもありません。
また支払いをau Walletで行い、すぐ明細を確認すると100円余分に引かれています。
このことについてはSony Entertainment Network(SEN) : サービスについて
[一部デビットカードのご利用について]に返却される旨かかれていましたが、
それにしても使うあてのない383円、一体どうしてくれるんだ!!

2014年12月16日火曜日

Nexus7にAndroid 5.0.1が来た

Nexus7Android 5.0.0が来てからまだ1ヶ月弱、
早くも5.0.1が降ってきました。
その5.0.1が何者であるかはこのあたりに書かれていますが、要はバグフィックスです。

アップデートによりAndroidバージョンは"5.0.1"、
ビルド番号が"LRX22C"、
カーネルバージョンが
3.4.0-g154bef4
android-build@vpbs1.mtv.corp.google.com #1
Thu Nov 20 22:16:57 UTC 2014
になりました。
ああ、5.0からカーネルが変わってますね。
セキュリティパッチでも当たったのでしょうか。

2014年12月15日月曜日

吉野家の値上げ

先週吉野家の牛丼値上げのニュースが飛び込んできました。
それなら値上げの前にということで牛丼を食べてきました。
まあ吉野家を頻繁に利用するわけではなく、
行っても株主優待券やJAF Mateについてる割引券などをフル活用する私の財布には
今回の値上げもそう痛いことはないのですが、
吉野家の株主たる私としては客の入りが少々心配だったりします。
とはいえここ数年食べた牛丼は吉野家のものしか記憶になく、
いわゆる牛丼チェーンでは吉野家の味が一番と感じており、
そう感じているのは私だけではないはずとの思いもあるので、
時間の経過と共に世間にも理解が進むものと考えております。
ちなみに私が吉野家にしか行かないのは株主としての忠誠心というわけではなく、
吉野家にしか行かないから株主になったという逆の展開です。

さて、今回牛丼(並)が300円から380円になるわけですが、
これで大騒ぎすることになろうとは、以前からは考えられません。
なにしろ私が初めて吉野家の牛丼を食べたとき並が400円でしたから、
それよりまだ20円も安いことになります。
歳がバレるので細かいことはともかく、
当時はまだ豚丼等はなく吉野家は牛丼専門店で、
キャンペーンで並が100円引きの日には
特盛りより並2つの方がお得、みたいな話をしていた記憶がうっすらあります。

アニメのキン肉マンで吉野家の存在を知ってから、
地方で生まれ育った私が実際に味わうまでにはかなりの時間があったこともあり、
未だに初食時の感動が思い出されます。
今は当時に比べ味が落ちているような気もするんですが、
まあ昔の記憶の美化ということで片付けてしまっています。
って、歳バレました?

2014年12月11日木曜日

英辞郎をLinuxで

英辞郎のver79を買ったのはいつのことだったのか。
まだネット上での支払サービスが一般的でなく、
Niftyのシェアウエアの支払いサービスを利用仕掛けて
結局口座振込を使った記憶があるので、
恐ろしく前なんだと思います。
その後のバージョンアップは辞書サイズの肥大化がいやで行わず、
未だに古いバージョンをWindowsで
PDICとDokopopとの組み合わせで使い続けています。
最近はなぜかきちんと連携できるアプリケーションが減って、
特にサクラエディタ(Unicode版)との組み合わせで右クリック検索できないのは辛いですが。

さて最近Ubuntuをデスクトップに使う機会が増え、
Linuxで英辞郎は使えるのかと調べて見たところ、
StarDictなるソフトウェアに行き着きました。
が、英辞郎を使えるようになるまでがかなり大変そうで、
しかも私の使っている超古いバージョンの変換に四苦八苦するのも面倒なので、
この際ウェブアプリケーションにしてローカルから使えるようにしようと思いつきました。

Ubuntu 14.04にてウェブサーバの設定から始めます。
まず以下を実行します。
# apt-get install apache2
# apt-get install php5
次いで設定ファイル"/etc/php5/apache2/php.ini"の
short_open_tag = Off
の行を
short_open_tag = On
に変更します。これはPHPのスクリプトの開始を示す"<?php"を
"<?"に省略できるようにする設定です。
また設定ファイル"/etc/apache2/envvars"の
#. /etc/default/locale
の行のコメントアウトを外し
. /etc/default/locale
に変更します。
こうしておかないとescapeshellcmd()関数で日本語が処理できません。
最後に
# /etc/init.d/apache2 restart
を実行してウェブサーバを再起動しておきます。

今度はコンテンツの準備です。
私の手元にある辞書データファイル"waeiji79.txt"、"eijiro79.txt"は
文字コードがSJISになっています。
SJISはファイルサイズが小さくできるので昔は重宝しましたが、
最近のウェブはutf-8がデフォルトなのでこちらに合わせます。
一応あとでわかりやすいように最初にファイル名を変更しておきます。
$ mv waeiji79.txt waeiji79.sjis.txt
$ mv eijiro79.txt eijiro79.sjis.txt
で、
$ iconv -f SJIS -t UTF8 < waeiji79.sjis.txt > waeiji79.txt
を実行してみると、何と辞書データに悪いところがあるらしくエラーで止まってしまいます。
辞書データを直すのはしんどいので、昔ながらのnkfで変換してみます。
# apt-get install nkf
$ nkf -Sw waeiji79.sjis.txt > waeiji79.txt
$ nkf -Sw eijiro79.sjis.txt > eijiro79.txt
これだと成功しました。
ちなみに
nkf -g <ファイル名>
でそのファイルの文字コードが"Shift_JIS"や"UTF-8"と判定できます。
変換後ファイルはウェブサーバから見えるように
"e/eijiro79.txt"、"j/waeiji79.txt"として置いておきます。

単語検索には以下の4つのファイルを置きます。

英和検索単語入力ページ"e/index.html"
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="max-age=2592000" />
<title>e2j</title>
</head>
<body>
<form action="s.php" method="post">
<input type="text" name="s" value="" format="*m" />
<select name="t" size="1">
<option value="0" selected>init</option>
<option value="1">match</option>
<option value="2">include</option>
</select>
<input type="submit" value="search" />
</form>
</body>
</html>

英和検索スクリプト"e/s.php"
<?
 header("Content-Type: text/html; charset=utf-8");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<meta http-equiv="Cache-Control" content="no-cache" />
<title>result</title>
</head>
<body>
<?
 $f="eijiro79.txt";
 $t=escapeshellcmd($_POST[t]);
 $c=escapeshellcmd($_POST[s]);
 if($t==0) // init
  $r=`grep -e '^■\<$c\>' $f | perl -pe 's/\n/<br \/>\n/'`;
 if($t==1) // match
  $r=`grep -e '\<$c\>' $f | perl -pe 's/\n/<br \/>\n/'`;
 if($t==2) // include
  $r=`grep -i $c $f | perl -pe 's/\n/<br \/>\n/'`;
 print "$r";
?>
</body>
</html>

和英検索単語入力ページ"j/index.html"
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="max-age=2592000" />
<title>j2e</title>
</head>
<body>
<form action="s.php" method="post">
<input type="text" name="s" value="" format="*M" />
<select name="t" size="1">
<option value="0" selected>init</option>
<option value="1">match</option>
<option value="2">include</option>
</select>
<input type="submit" value="search" />
</form>
</body>
</html>

和英検索スクリプト"j/s.php"
<?
 header("Content-Type: text/html; charset=utf-8");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-cache" />
<title>result</title>
</head>
<body>
<?
 $f="waeiji79.txt";
 $t=escapeshellcmd($_POST[t]);
 $c=escapeshellcmd($_POST[s]);

 if($t==0) // init
  $r=`grep -e '^■$c ' $f | perl -pe 's/\n/<br \/>\n/'`;
 if($t==1) // match
  $r=`grep -e '[ ■]$c ' $f | perl -pe 's/\n/<br \/>\n/'`;
 if($t==2) // include
  $r=`grep -i $c $f | perl -pe 's/\n/<br \/>\n/'`;
 print "$r";
?>
</body>
</html>

これで"http://localhost/e"で英和辞書が、"http://localhost/j"で和英辞書が使えます。
スクリプトについては勝手に使っていただいて構いません。
改造するのも難しくないので都合がよいように仕立て直してください。
ただし、最近の英辞郎の辞書データがどうなっているのか
私は知りませんので、その辺はうまくアレンジください。

2014年12月10日水曜日

03スマホ

日本通信が面白いサービスを始めるようです。
その名も"03スマホ"。
実は1ヶ月ほど前の同社の第2四半期決算説明会の動画でデモも行っております。

通常携帯電話(スマートフォン)の番号は090/080/070から始まりますが、
このサービスでは"03"から始まる番号が割り当てられます。
"03"から始まるといいながら実は"030"から始まるとか、
とんちの効いたことでもするのなら、それはそれで面白いですが、
本当に東京の市外局番"03"を冠する電話番号になります。
地方に住んでいても東京在住っぽくなれます。

しかし、0AB電話番号って固定電話の他には使わせたくない気満々の
品質等に関する利用条件がついてたように記憶していますが、
そのあたり何か変わったんでしたっけ?
今回SIMカード単体ではなく端末とセットで販売されますが、
もしかするとそこがミソなのかもしれません。
遊びで買うには値段が高すぎるのでとりあえずスキップしますが、
どんな仕様のSIMカードが入っているのか興味があります。

ところで今回販売される端末はLG G2 miniです。
同社の第2四半期報告書
[事業の状況]の[経営上の重要な契約等]にLGからの通信端末の仕入れに触れられており、
何か仕掛ける気なのかと発表を楽しみにしていたのですが、なるほどこれは響きます。
MVNO界隈は最近価格競争ばかりでしたが、
こういう技術力と企画力が伴った発表を見るに、さすが日本通信と関心しきりです。

まあ03を先鞭として0ABの利用範囲が広がればいいですね。
FUSION IP-Phone SMARTの050なIP電話にレジストしたり、
そこから転送したりして、コンタクト口を1つにまとめようと画策していましたが、
意外と早くその必要もなくなるかもしれません。
そして0ABが比較的自由に使えるようになることで
Google Voiceが日本でも利用可能になるかもしれません。
あとは090等がIP電話でも使えるようになって、
携帯電話でなくてもSMSが送受信ができるようになれば、
本気でTwilio使うんですけどね。

2014年12月9日火曜日

Androidアプリケーションのソースをもらって自分でビルド

Android SDKの公式ダウンロードサイトからEclipse+ADTが消えました。
一応Eclipse+ADTは利用はできるようですが、
これまでのような単一ファイルにパッケージ化されたものは見当たらず、
初期の頃のように面倒な作業が必要なようですし、
そもそももうアクティブでないとのことです。
今後はAndroid Studioを使うことになりそうです。
Android Studioは発表直後に使ってみましたが、
Eclipse+ADTとはかなり違うので困ったものです。
ということで、記念(?)にEclipse+ADTの未投稿の話題を。

Eclipseで開発しているAndroidアプリケーションのソースを一式もらって、
自分でビルドしてみようかと思ったとき、
どうやってEclipseに読み込ませようか悩みます。
MicrosoftのVisual Studioだと、Visual Studioがインストールされた環境で
プロジェクトファイルをダブルクリックすれば勝手にうまくやってくれるのにね。

まあ知ってしまえば簡単で、Eclipseの[File]-[Import]で[Import]ウィンドウを開き、
ツリーリストボックスで[Android]-[Existing Android Code Into Workspace]メニューを
選んで[Next]をクリックし、
[Root Directory]にもらったAndroidアプリケーションのソース一式のディレクトリを指定します。
ディレクトリは[Browse]をクリックして選択すればいいです。
ここで[Copy project into workspace]チェックボックスをチェックしておくと、
現に開いているワークスペースのディレクトリにソースをコピーしてくれるので、
チェックしておいた方がいいでしょう。
最後に[Finish]をクリックすれば勝手にやってくれます。
ちなみに[Finish]をクリックしたあとにAPIレベルがどうのこうのとエラーになることがあります。
これはそのソースが想定しているAndroidのバージョンの開発環境が、
そのEclipseにインストールされていないということですので、
[Window]-[Android SDK Manager]メニューからAndroid SDK Managerを開いて、
該当するバージョンの開発環境を入れてからまたインポートすれば問題ありません。
あとは通常どおり好きに開発できます。

2014年12月8日月曜日

MacのChromeが64ビットになった

私がMacBook Proで常用しているウェブブラウザはGoogleのChromeブラウザです。
ところがこれ32ビットアプリケーションで、すでにJavaが64ビットなため、
Chrome上でJavaアプリケーション(アプレット)が動かなかったんですよね。
まあ標準のSafariでなら動作するので実害はなかったんですが。

そんなMac版Chromeもバージョン39にしてようやく64ビットとなりました。
[Google Chromeについて]メニューで表示されるバージョン番号の後ろに"(64-bit)"の文字が。
試しにF1.comの[LIVE TIMING]を開くと
Javaが動作していることが確認できます。

しかしそれも短命に終わりそうです。
ChromeはNPAPIのサポート終了を予定しており、
予定どおり実施することが明らかになっています。
これがJavaプラグインに影響すると思われます。
まあウェブクライアント上でJavaを必要としているケースはもうほとんどありません。
先の[LIVE TIMING]にしてもiOSやAndroidで専用アプリケーションがありますし。
有料なんですけどね。

2014年12月4日木曜日

WindowsからVNCでUbuntu 14.04にアクセス

先日Ubuntu 14.04 からVNCでWindowsにアクセス方法について書きましたが、
今回は逆のパターンです。
WindowsからVNCでUbuntu 14.04にアクセスしてみます。
なお前回WindowsにUltraVNCを入れたので、それを前提とします。

実はUbuntu 14.04には[デスクトップの共有]アプリケーションなるものが
デフォルトで利用可能となっており、
デスクトップ左上の[コンピュータとオンラインリソースの検索]アイコンをクリックして
検索窓に"vino"と入力すると現れます。
そこで[他のユーザが自分のデスクトップを表示できる]と
[他のユーザがデスクトップを操作できる]を有効にし、
[パスワードの入力を要求する]をチェックしてパスワードを設定しておけば、
WindowsのUltraVNC ViewerからUbuntuのデスクトップに
先の記事の用な使い勝手でリモートログインできます。
ただし、セキュリティモジュールが問題を抱えているのか、
$ gsettings set org.gnome.Vino require-encryption false
で無効にしてやらないとつながりません。
まあでも非常にお手軽につながって便利です。

ここで終わってしまうのも何なので、
普通のVNCサーバを使う方法についても書いてみます。

Ubuntu 14.04で以下を実行してVNCサーバをインストールします。
# apt-get install vnc4server
一般ユーザで
$ vncserver
を実行すると初回のみ(正確には"~/.vnc/passwd"ファイルがない場合)
対話式にパスワードの入力を2回求められるので、
任意の文字列を指定します。これでサーバが立ち上がりました。
WindowsでUltraVNC Viewerを立ち上げ、
[VNC Server]に
<UbuntuマシンのIPアドレス>:1
を、[Password]に先に指定した文字列を入力すれば
コンソールウィンドウが1つ開いた殺風景なリモートデスクトップが表示されます。
サーバを落とすには
$ vncserver -kill :1
を実行します。
なお‘:’の後にある数字は言わばセッションID(正確にはディスプレイ番号)で、
指定しなければ"vncserver"実行時に表示されるので、
'1'以外の場合は適宜読み替えてください。
またリモートデスクトップの解像度等設定を変えたいなら、
"vncserver"実行時に引数で指定するか"~/.vnc/xstartup"ファイルを編集することになります。
もしUbuntu起動時に自動起動させたいなら、
自力で"/etc/init.d/vncserver"ファイルを作成して
# update-rc.d vncserver defaults
すればいいと思います。

ちなみにVNCの通信は暗号化されていません。
LAN内でならそう気にする必要もないかもしれませんが、
経路にインターネットが含まれるなら、
sshでトンネリングしてセキュアにすることをお勧めします。
昔に私が書いた記事があるのでそちらを参考になるでしょう。

2014年12月3日水曜日

はやぶさ2が宇宙へ

延期されていた"はやぶさ2"搭載のH2Aロケットが本日打ち上げられました。
当初は日曜日の打ち上げということで、
非常に多くの見物客が種子島を訪れるとの事前情報もありましたが、
平日になったことでどうだったんでしょうね。

私は数年前にH2Bロケット夜間の打ち上げを見に行きましたが、
最大3日遅れてもいいスケジュールで望みました。
そのときでもかなりの人だったのですが、島外からの方は航空宇宙ファンが多かったように感じました。
これが一般の方も押し寄せるとなると更なる混雑となりそうで…
もう一度、今度は昼間の打ち上げを見に行きたいと考えてはいますが、
"はやぶさ"のおかげで前以上に混雑することを思うと躊躇してしまいます。
ロケット打ち上げが観光資源化するのは
観光を生業とする種子島の方たちにとっては歓迎することなのでしょうが、
一般の方に広まりすぎるのは、昔からの宇宙ファンには受難です。

2014年12月2日火曜日

ドメインを廃止す

2002年06月20日に取得し、12年運用してきたjpドメインを、
都合により手放すことになりました。
まあ私個人の所有ではないんですが。

これまでいくつかのドメインを取得してきましたが廃止するのは初めてで、
と言っても回線契約と合わせてプロバイダに取ってもらったドメインなので、
プロバイダ契約の終了と同時に自動的に廃止となり、
特に作業が必要ということもありません。

whoisで確認すると、それまで[Status]は"Active"だったのが、
回線廃止申し込み後に"To be suspended"へと変わり、
有効期限を過ぎると"Suspended"になりました。
この時点で有効期限が新しく設定され、それは元期限の1ヶ月後です。
そしてRegistrantやContact Informationは空欄となります。
この最終有効期限が過ぎるまでは基本的にドメインの再取得はできません。
実際にVALUE DOMAINで試してみましたが、やはり購入できませんでした。
ただししばらくすると予約(バックオーダー)ができるようになりました。
そして一ヶ月後、ドメインはwhois上でも存在しなくなりました。
同時にVALUE DOMAINで普通にドメインの取得ができる状態であることが確認できました。

ところで、jpドメインのwhoisの結果って日本語で出るんですね。
前からそうでしたっけ?
ただ外国人(というか日本語が表示できない処理系)のために
英語のみで表示する方法も用意されていて
$ whois -h whois.jprs.jp <ドメイン名> /e
で可能です。
なお、英語表示すると名前や住所も英語表記となりますが、
日本語表示だと英語のものと日本語のものが併記されます。

2014年12月1日月曜日

MacでUbuntuを使う上での困り事

前日MacBook ProWindows7を使う上での困り事について書きました。
私のMacBookProにはUbuntu14.04も入っていますが、
UbuntuでもWindows同様に困ったことがいくつかあったので私の解決方法を書き残しておきます。

まずタッチパッドのスクロール方向の逆転です。
X関連の入力デバイスの設定についてはxinputコマンドで制御できます。
$ xinput list
の結果からタッチパッドのコントロールチップっぽいもののIDを探し出します。
私の場合
⎜   ↳ bcm5974                                  id=13 [slave  pointer  (2)]
となっているので"13"がそれです。
なので
$ xinput list-props 13
してみると結果の中に
 Synaptics Scrolling Distance (286):      243,  243
があります。
これを正負逆にすればよいことになります。
具体的には
$ xinput set-prop 13 286 -243 -243
となります。
これでスクロールの向きが縦横ともに逆になります。
問題はOS起動時にこれをどこで自動実行させるかです。
いろいろ試しましたがまったくダメで、
結局[自動起動するアプリケーション]アプリケーションで設定するしかありませんでした。
これは[コンピューターとオンラインリソースの検索]から探し出せます。
またこれには自動起動したいアプリケーションを単に登録することしかできないため、
# echo '#!/bin/sh' > /bin/reverse_scroll
# echo 'xinput set-prop 13 286 -243 -243' >> /bin/reverse_scroll
# chmod 777 /bin/reverse_scroll 
で作った"/bin/reverse_scroll"を登録しました。

次は[Control]キーと[Command]キーの入れ替えです。
最初、設定ファイル"/usr/share/X11/xkb/symbols/pc"の
key  {    [ Super_L       ]   };
key  {    [ Control_L     ]   };
の行を
key  {    [ Control_L       ]   };
key  {    [ Super_L     ]   };
に変更して
# rm -rf /var/lib/xkb/*
してみましたが効果がありません。
そこで
$ xmodmap -e "remove control = Control_L"
$ xmodmap -e "remove mod4 = Super_L"
$ xmodmap -e "add control = Super_L"
$ xmodmap -e "add mod4 = Control_L"
を実行してみると一瞬うまく行ったように見えるのですが、
どうも[Control]キーを押すとおかしくなります。
状況を
$ xmodmap -pm
で確認すると元に戻ってる…orz
どうもUnityが勝手に書き換えてるっぽいです。

この方法を諦めていろいろ調べていて[gnome-tweak-tool]にたどり着きました。
類似品で[ubuntu-tweak]("# add-apt-repository ppa:tualatrix/next"でインストール可能)
とか[unity-tweak-tool]がありますが、間違えないように。
で、
# apt-get install gnome-tweak-tool
でインストールして[Tweak Tool]を起動し、
[タイピング]分類の[Alt/Winキーの動作]を
"Ctrl is mapped to Win key(a..."に変更することで
[Command]キー(左右ともに)が[Control]キーとして動作するようになりました。
しかし[Command]キーがなくなってしまいます。
まあ[Command]キーを使うのはテキスト入力システムの切り替えぐらいです。
その切り替えにしてもスクリーン右上のテキスト入力アイコンから[テキスト入力設定]を起動し、
[次のソースに切り替え]を"Ctrl+Space"に変更しておけば不都合ありません。
もともとPCのキーボードの[Windows]キー(Macの[Command]キー)は
1990年代に追加されたものなので、互換性を考えればなくても操作に支障はないはずです。
ということでこれで使っていくことにします。