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年代に追加されたものなので、互換性を考えればなくても操作に支障はないはずです。
ということでこれで使っていくことにします。

2014年11月27日木曜日

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

LinuxからWindowsをリモート操作するには、
LinuxにVNCクライアントを、WindowsにVNCサーバを導入します。
今回はWIndowsではUltraVNC ver1.2をインストールし、
Ubuntu 14.04で
# apt-get install vncviewer
でインストールし、
$ vncviewer
の実行後に出てくる[VNC server]と[Password]のダイアログボックスに
WindowsマシンのIPアドレスと設定したパスワードを入れると、
無事リモートデスクトップが表示されました、がトラブルが…
なんとクライアントからのマウスのクリックやキーボード入力がサーバに届きません。

UltraVNCは[Edit settings]アプリケーションで設定するのです。
これの[Security]タブに[VNC Password]と[View-Only Password]を
設定するようになっていたため、
きっと後者でログインしたために入力を受付てくれないのかと考え、
再設定などやってみますが改善が見られません。
しょうがないのでいろいろ見ていると[Input/FileTransfer]タブの
[Input]フレームに[Disable Viewers input]なる項目がありチェックされています。
なんてこったい。
それのチェックを外しWindowsをリブートすると
入力ができるようになりました。やれやれ。

気分がよくなったのもつかの間。
漢字を入力しようと[Alt]+[半角/全角]を押すと、
リモートのWindowsまで届かず、
Ubuntuのウィンドウの切り替え画面が出てきます…orz
[半角/全角]キー単体も無視されます。
Ubuntu側で何とかできればいいのですが今のところ方法が分かりません。

しかたがないのでWindows側で対応します。
つまり、他のキーの組み合わせでIMEのON/OFFが出きるようにします。
Windowsのタスクバー(近く)にある[IMEパッド]を右クリックし、[設定]を実行します。
[テキスト サービスと入力言語]ウィンドウが表示されるので、
使用しているIMEの[プロパティ]を開き、
[全般]タブの[編集操作]フレームの[変更]ボタンをクリックします。
[キー](または[*キー])フィールドの"Ctrl+SPACE"の行の"半角空白"にフォーカスを当て
[変更]ボタンをクリックし、"IMF-オン/オフ"に変更します。
これを横一列すべてで行います。
なお、これは私が先のウィンドウの[スペースの入力]を"常に半角"にしていて
[Ctrl]+[space]の組み合わせを実質使っていないので、これを転用しています。
キーコンビネーションは各自の事情に合わせて選んでください。
ちなみに以上はWindows7+Microsoft Office IME 2007での話で、
OSやIMEが違うと設定方法が異なるのでご注意を。

2014年11月26日水曜日

F1 2014シーズンが終わる

最終戦のアブダビGPでルイス・ハミルトンが優勝し、
同時に彼がワールドチャンピオンのタイトルを獲って、
2014年シーズンのF1が幕を降ろしました。

今シーズンはパワーユニットの変革によりレースがおもしろくなるかと思いきや、
メルセデスの2台がぶっちぎって、その2台にトラブルがあったときにだけ
他がおこぼれをもらうようなレースにしかなりませんでした。
あまりに面白くなかったので、
特に何も起きないレースについては録画してから1.5倍速で、ながら視聴していました。

さらに興ざめなのは来シーズンも同様になりそうなことです。
開発費抑制のためのパワーユニットのホモロゲーションルールが覆りそうもなく、
今年と変わらないパワーユニットを使わざるを得ないからです。

ということで注目するのは来シーズンからパワーユニットサプライヤとして
F1に再参戦するホンダの存在です。
今シーズンの様子を見た上でどういうパワーユニットにすれば勝てるのか
色々分かったはずなので、それらを設計に活かせれば、
メルセデスの独走は防げるかもしれません。
しかし、マクラーレン・ホンダが序盤で結果が残せないと、
本当に今年と同じになりそうで。
ホンダがこけたらF1もこけることになりかねません。

2015年シーズンは3月12日のオーストラリアGPで開幕です。
もう3ヶ月しか残されていません。
マクラーレン・ホンダ来季のドライバーラインナップはまだ発表がありませんが、
勝てるドライバー、勝てるマシンにできるドライバーに乗って欲しいものです。
そしてホンダには勝てるパワーユニットに仕上げてもらいたいですね。

2014年11月25日火曜日

京都の紅葉

第二種電気主任技術者試験の一次試験が、自己採点どおり予想外にも通過していました。
その話は不合格通知(?)が届いたときに改めてするとして、
今回書くのは試験日の翌日、3連休の最終日の話です。
実は二次試験の会場は大阪だったのですが、ちょっと足を伸ばして京都観光をしてきました。
以前から嵐山の紅葉を見に行きたかったんですよね。
が、後でこの選択を激しく後悔することに…

受験後大阪に一泊し、3連休の最終日となる翌日午前中の早いうちに嵐山に到着しました。
すでに結構な数の観光客がいましたが、普通に渡月橋を渡り、
ついでなのでモンキーパークまで登山しました。
そして下山してみると下界は大変なことに。すさまじい数の観光客です。
駅に帰るのに渡月橋を戻る必要があるのですが、
渡月橋を渡るのに長蛇の列ができています。
昼時ということもあって近辺の食べ物屋さんにも長蛇の列です。
駅までの道は歩道が狭く、人であふれかえっていました。

当日中に家まで帰る必要があるため、京都中心部から距離のある嵐山に
あまり長居するとろくなことがないと考え、とりあえず京都駅まで戻り、
時間が読める範囲でもう一ヶ所観光することにしました。
ターゲットは清水寺です。
清水寺には小学校の修学旅行を含め何度か訪れていますが、
紅葉の季節は初めてです。
京都駅の改札を出るとお誂え向きにバスが着ていて飛び乗りました。
が、市内の道路は大変な混雑で、ついでにバスの中も混雑で、
清水寺の最寄りバス停までが地獄でした。
そして、清水寺まで上がる坂もえらいことに。すごい人です。
さらに清水の舞台が落ちるんじゃないかと思えるほどの人人人です。
早々に引き上げようと坂を下りにかかると混雑はさらに増しています。

京都は国際的にも有名な観光地で、海外の方もたくさん訪れていますが、
完全にキャパシティーをオーバーしているように感じました。
もはやおもてなしとかいう次元を越えています。
もちろん3連休ということもあって日本人も押し寄せたということもあり、
かく言う私もその一人なのですが、
もう紅葉の時期に京都に来ることはないなと思うのでありました。

今回の教訓。
有名地の旬の観光は平日に限る。

撮った中から出来のいい写真を載せておきます。
私と同様に人混みが嫌いな方はこれでも見て我慢しましょう。

紅葉


嵐山

渡月橋

清水寺 紅葉と水面

清水寺 成就院

清水の舞台を見上げる

2014年11月24日月曜日

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

先日MacBook ProWindows7インストールしたのですが、
使う上で困ったことがいくつかあったので私の解決方法を書き残しておきます。

一番最初に気になるのが、タッチパッドの2本指スワイプで行うスクロールの方向が、
OS Xの標準と逆になっているという点です。
最近のOS Xでは上にスワイプすると下にスクロールし、
これはiPadを始めとするスマートデバイスと同様になっています。
対するWindowsは上にスワイプする上にスクロールします。
ホイール付きマウスの動作に準拠しています。
どちらが直感的かと言えば、どっちもどっちなのですが、
同じマシン上の違うOSで操作が違うのは非常に気持ち悪く、
もうスマートデバイスにすっかり慣れてしまったということでOS Xに合わせます。
つまり、Windows7をカスタマイズしてスクロールの方向を逆にしてしまいます。

最初に[デバイス マネージャー]を立ち上げ、
[ヒューマン インターフェイス デバイス]-[Apple Multitouch]の
[プロパティ]から[詳細]タブを開き、[ハードウェア ID]の内容をメモしておきます。
そして[レジストリエディタ(regedit.exe)]を立ち上げて
"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\HID"のあたりを見ます。
すると、先にメモした内容と似たような名前で、
かつその下に"FlipFlopWheel"がある項目が見つかるはずです。
私の場合は
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\HID\VID_05AC&PID_0254&MI_01&Col01\9&826b34b&0&0000\Device Parameters
が該当します。
で、その中の"FlipFlopWheel"の値を"0"から"1"に変更します。
これで完了です。
スクロール向きが縦のみ逆になります。
横方向は変更できませんが仕方ありません。それでも実用には十分です。

2つ目の困り事はキーボードのキー配置です。
私がよく使うキーボードのショートカットと言えばコピーと貼り付けで、
Windowsでは[Ctrl]+[c]と[Ctrl]+[v]、
OS Xでは[Command]+[c]と[Command]+[v]となります。
これらはそれぞれPC用とMac用のキーボードを使っていると、
ほぼ同じ感覚でキーが押せるのですが、
MacでWindowsを使うと[Control]キーの位置の関係で押しにくくてしょうがありません。
過去[Ctrl]キーがMacと同じ位置にあったマシンを使っていたこともあるので、
慣れの問題と言ってしまえばそれまでですが、
同じマシン上の違うOSで操作が違うのは非常に気持ち悪いです。
Macのキーボードで[Control]キーと[Command]キーが入れ替われば
ちょうどいい感じになるんですが。

変更方法はあります。
[レジストリエディタ(regedit.exe)]を立ち上げて
"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout"を開き、
そこに"Scancode Map"という名前のバイナリ値を新規に作成します。
そしてその中身を
00 00 00 00 00 00 00 00 03 00 00 00 5b e0 1d 00 1d 00 5b e0 00 00 00 00
とすれば完了です。
左の[Command]キーと[Control]キーの動作が入れ替わります。
一応設定した数列の内容を説明しておきます。
基本的に4バイトがリトルエンディアンで1ワードを構成しており、
1ワード目と2ワード目は0x00000000で固定(ヘッダ?)です。
3ワード目はそれ以降のデータ数(ワード数)で、
最後のワードは0x00000000で固定(NULL?)です。
何かの構造体っぽいですね。
で、4ワード目から最後の1つ前のワードまでは、
各ワードで1つのキーの定義をしており、
上位2バイトがキーの名前、下位2バイトがキーの役割を示しています。
0x001dは左の[Control]キー(Windowsでは[Ctrl]キー)で
0xe05bは左の[Command]キー(Windowsでは[Windows]キー)なので、
上記だとこれらを入れ替えることになります。

これでコピーが見た目上[Command]+[c]になって楽になるのですが、
変更によりThree Finger Saluteに副作用があります。
Three Finger Saluteとはいわゆる[ctrl]+[alt]+[del]のことです。
Windowsではログイン時やアプリケーションの強制終了に使ったりする例のやつです。
Macのキーボードでも[control]+[option(alt)]+[delete]で可能なのですが、
先の作業で[Control]キーと[Command]キーを入れ替えると使えなくなってしまいます。
しかし代替キーが用意されていて、
[command(contorolと入れ替えられている)]+[fn]+[option(alt)]+[delete]
でなら入れ替えていても可能です。
4キー同時押しとはなかなか厳しいですが仕方ありません。

最後に日本語の入力切り替えです。
Windowsでは([Alt]+)[半角/全角]キーで[半角英数]と[全角ひらがな]を切り替えますが、
Macのキーボードにそんなキーはありません。
OS Xではトグル操作ではなく、[英数]キーと[かな]キーで直接モードを切り替えるからです。
とりあえずはマウスで[言語バー]を操作することで切り替わりますが、
さすがにそれでは使い勝手が悪すぎます。
まあMacキーボードでWindows上の入力切り替えられるように設定できますのでご安心を。

[言語バー]の[設定]から開くウィンドウで[全般]タブを選び、
[Microsoft IME]を選択して[プロパティ]をクリックして新たなウィンドウを開きます。
[編集操作]タブのキー設定で[変更]をクリックし、[キー設定]タブの表を編集します。
[*キー]フィールドが"Ctrl+SPACE"の[入力/変換済み文字なし]フィールドで
[変更]をクリックし、"-"を"IMF-オン/オフ"に変更します。
これで[Control]+[Space]で[半角英数]と[全角ひらがな]が切り替えられるようになります。
まあ先ほど[Control]キーと[Command]キーを入れ替えたので、
キートップ的には[Command]+[Space]にはなりますが。

2014年11月20日木曜日

Ubuntu 14.04 で日本語入力

最近普通のPCとMacBook ProでUbuntu 14.04を入れました。
Ubuntu 14.04の文字入力時に日本語と英語を切り替えるには
[Super]+[Space]を押します。
ここで[Super]キーとはWindowsなら[Windows(スタート)]キーを、
Macなら[Command]キーのこととなります。
ですが、PCではなぜか2回押さないと全角ひらがなになりません。
その後1回押すだけで半角英数になるのに。
一方Macでは押してもモードが変わりません。

で、[システム設定]アプリケーションの[テキスト入力]メニューを見ると、
PCでは[日本語]、[英語(US)]、[日本語(Anthy)]の3つのモードが並んでいます。
1回押すたびに次のモードに移っているということだったんですね。
しかもよく見ると[英語(US)]モードではキーボードの配列がJISでなくASCIIになってます。
これでは記号の入力が辛いので[英語(US)]を[-]ボタンで削除してしまいました。
これで全角ひらがなと半角英数の切り替えが楽になります。
逆にMacでは[日本語(Anthy)]しかありません。
ということで[+]ボタンで[日本語]を追加です。

ここで[Super]+[Space]で切り替わるのは先の入力システムであり、
[日本語(Anthy)]モード内では[半角/全角]または[Ctrl]+[J]で
半角英数と全角ひらがなを切り替えられます。
このキー設定は[日本語(Anthy)]モード時にデスクトップ右上のIMFアイコンから
[設定-Anthy]をクリックして開くウインドウの[キー割り当て]で変更可能ですので、
Macや英語キーボードのように[半角/全角]キーがない場合は好きすればいいでしょう。
ちなみにこのウインドウの[入力タイプ]タグの[キーボードレイアウト]を"jp"にすれば、
JIS配列キーボードを正しく使えます。
私のMacBookProではデフォルトではASCII配列になっており、ここで調整しました。

また、あとで分かったのですが[英語(US)]モードでのキーボードの配列は
# dpkg-reconfigure keyboard-configuration
で対話式に変更可能です。
MacBookProでは[MacBook/MacBookPro(Intl)]、[日本語]、[日本語-日本語(OADG 109A)]
と順に選択する事でJIS配列にできました。

ところで、Windowsでなれてしまっているので、このIMEのモード切り替えの時
思わず[Alt]+[半角/全角]を押してしまいます。
そうするとウィンドウの切り替え画面が出てきて非常に鬱陶しいです。
# apt-get install compizconfig-settings-manager
# apt-get install compiz-plugins
でツールをインストールし、
$ ccsm
でカスタマイズツールを開いていろいろ見て回りますが、
[Alt]+[半角/全角]の無効方法は分かりません。あー困った。

ちなみに[Alt]+[Tab]は
[カテゴリ]の[デスクトップ]-[Ubuntu Unity Plugin]メニューの
[Switcher]タブで[Key to start the Switcher]
(と[Key to switch the previous window in the switcher])で無効にできます。

2014年11月19日水曜日

.NETの新展開

Microsoftが.NETをやり始めたのはいつだったでしょうか。
その当時は、どうせWindowsでしか使わないのに中間コードを吐くとか、
理念はともかく現実的でないなとか思ったものですが、
そのうちCPUやメモリがリッチになってオーバーヘッドがそう気にならなくなり、
仮想マシンは今ではスマートフォンでもサーバでも欠かせない技術になっています。
時代は変わりましたね。

時代が変わったと言えば、プロプライエタリが基本のMicrosoftが
オープンソースへの取り組みを色々するようになってきたことで、
先日ついに.NET関連の大きな発表がありました。
内容が多岐に渡るので詳しくは正式発表を見ていただくとして、
とりあえず私に関係あるところで Visual Studio Commnunity 2013 が
無料とのことでダウンロードしてみました。
MacBook ProWindows7入れたところですしお誂え向きです。
なおCommnunityエディションはExpressエディションのような機能制限は特にないようですが、
商用アプリの作成はライセンス的に問題があるみたいです。

Visual Studio Commnunity 2013のトップページからダウンロードページを開き、
[Commnunity 2013 with Update 4]をクリックします。
[Install now]を選択しても構いませんが、
私は[DVD5 ISO image]をクリックしてisoファイルをダウンロードし、
それをDVD+R DLに焼きました。
サイズが6.9GBと大きいため1層のDVDでは足りません。
そしてそのDVDからインストールします。
その後、先のダウンロードページの[Commnunity 2013 with Update 4]の項の
[Microsoft Visual Studio 2013 Language Pack - 日本語]の[今すぐインストール]をクリックして、
ダウンロードしたファイルを実行し、Visual Studioで日本語が使えるようにします。

が、完了後Visual Studio 2013 を起動すると英語モードになっています。
いろいろ探してみると[TOOLS]-[Options]メニューの[Internasional Settings]タブに
[Language]設定があり、これを"日本語"にすることで無事日本語モードに変更できました。
この手のものはエラーメッセージの日本語が意味不明など、
英語モードのまま使った方がいい場合もあるのですが、
そういう点Microsoftはわりと信頼をおいています。

とりあえず今のところ何か作る意欲はないのですが、
[ファイル]-[新規作成]-[プロジェクト]メニューのフレームワーク指定のところで
<その他のFramework>という選択肢があったので選んでみました。
するとウェブブラウザで.NET SDKs and Downloadsが開きます。
ここを眺めていると[Xamarin Tools for iOS and Android]の文字が。
話には聞いていたXamarinですが、折角なのでこれを入れてみることにしました。
が、激しく後悔。1.5GB分くらいのファイルをダウンロードし始めました。
止めるのも何なんでとりあえず完了まで続行です。
どうも、Android SDK/NDK、JDKなど必要な物をごっそり取ってくるようです。
まるっと環境を整備してくれるのは助かるんですけどね。
そしてセットアップ完了後、C#のAndroidアプリケーションプロジェクトを作って
ビルドしようとしたところ、ログインダイアログが…これ無料じゃないのねorz
もっとよく調べてからにするんでした。

2014年11月18日火曜日

Nexus7にAndroid 5.0が来た

LollipopことAndroid 5.0が私のNexus7(2013/WiFi)に降ってきました。
先週末には、先日紹介したダウンロードサイトから
5.0のファクトリーイメージが入手可能になっていましたが、
特に急いでもなかったのでOTAが来るまで待っていました。
そして思っていたよりも早く今朝届きました。

というわけで早速バージョンアップしました。
ダウンロードサイズは500MB程度です。
Androidバージョンは"5.0"、
ビルド番号が"LRX21P"、
カーネルバージョンが
3.4.0-gfa84206
android-build@vpbs1.mtv.corp.google.com #1
Web Oct 15 05:33:45:UTC 2014
になりました。

で、ちょっと使ってみた感想は…まあ別にどうってことないです。
デザインはiOSの進化と同様に、よりフラットかつボーダレスになっています。
画面上の要素変化時のエフェクトもよりぬるぬるです。
使いにくいのは、4.4で画面上端左を下にスワイプすると通知が、
上端右だと無線LANをはじめとした設定が引き出せていたのが、
画面上端どこでも通知が出て、設定関係はさらにスワイプして引き出す必要があることです。
あと[設定]アプリケーションのデザインが大幅に変わっています。
設定項目の分類は4.4から変わっていないようなので迷うことはないのですが、
Androidを使う上で肝となのに、[設定]アプリケーションはバージョンアップする度に
アイコンが変わったり分類が変わったりと忙しないですね。

他に変わったと言えばイースターエッグ(裏技)にゲームが加わったことです。
Droid君が障害物となるLollipopをジャンプ(スラスター出力)で避ける
バルーンファイル風のちょっとしたアクションゲームなのですが、激ムズです。
もう少しバランス調整してほしかった。
ちなにみイースターエッグは[設定]アプリケーションの
[タブレット情報]メニューの[Androidバージョン]をタップ連打することで出現します。
なお出し方は2.3のころから変わりません。
出てきたLollipopの文字あたりをロングタップするとゲームが始まります。

ところでAndroidでは4.3から4.4になる過程で、
画面上端のステイタスバーのアイコンが全て白一色に統一されました。
なぜ地味になる方向に変更となったのか疑問だったのですが、その理由が分かりました。
5.0ではステイタスバーの背景色がアプリケーション(アクティビティ)によって変わるんですね。
代表的なところで言うとGmailで赤、Google Playの[マイアプリ]で緑、Keepで黄色になります。
4.4での白化は背景色が何色でも識別性をよくするための5.0への布石だったんですね。

2014年11月17日月曜日

MacでLinux

先日MacBook Pro新しいHDD換装して
OS X YosemiteとWindows7デュアルブートにしましたが、
今度はLinuxとのトリプルブートにしてみました。
使うディストリビューションはもちろんUbuntu 14.04 LTSです。
最近はサーバ用途でなければ迷わずUbuntuを選択してしまいます。
またUbuntuはつい最近最新の14.10が出てはいますが、
LTS(長期間サポート)がないバージョンは使おうと思いません。
ところでUbuntu入れてなにするかって?
多分ディスクの肥やしになります。
Ubuntuでないと出来ないことって…Androidのファームウェアビルドぐらいかな。

作業の前に状況を説明しておきますと、
デュアルブート化時に余らせてとりあえずFATにしている、
400GBのHDDの第5パーティションをUbuntuの領地とします。
とにかくUbuntu 14.04(.1)のインストールDVDをMacの内蔵光学ドライブに挿入して
[option]キーを押しながら電源を入れます。
ブート選択メニューにDVDアイコンの[Windows]と[EFI boot]の2項目が現れますが、
[EFI boot]を起動することでgrubが立ち上がり、
そこで[Install Ubuntu]を選択する事でインストーラが立ち上がります。
この時点ではMacの無線LANは動作していないのですが、
インストールを進めて[Ubuntuのインストール準備]ページで
[サードパーティーのソフトウェアをインストールする]チェックボックスをチェックして
そのまま進めると、しばらくして無線LANが有効になり、
画面右上の扇型のアイコンをクリックして無線LANアクセスポイントを指定することで
ネットにつながるようになります。

次はトラブルの多いパーティションの設定です。
まず[インストールの種類]ページから[それ以外]を選択します。
先に説明した第5パーティションを[-]アイコンで解放し、
その空き領域で[+]アイコンを使って約400GBと約4GBの2つのパーティションを作ります。
これらはUbuntuのメイン領域とスワップ領域となります。
今後はこれらを/dev/sda5、/dev/sda6と称します。
なお、/dev/sda5は利用方法を[ext4ジャーナリングファイルシステム]にして
マウントポイントを"/"とし、/dev/sda6は[スワップ領域]とします。
ブートローダをインストールするデバイスを[/dev/sda5]にして[インストール]をクリックします。
次ページの[キーボードレイアウト]では[日本語-日本語(Macintosh)]を選択します。
あとは完了を待つだけなのですが…

悪夢はやってきます。
Ubuntuのインストールが完了したあとリブートし、
OS選択画面を見ても新しい項目は増えていません。
しかも、ここで[Windows]を選択すると"Missing operating system"とか出てきます。
多分UbuntuがWindowsをこわしたのです。
しかしPCをマルチOSにするのには慣れているので、
HDDのMBRを直せばいいだろうと考え、
Windows7のインストールDVDから起動して[コンピュータを修復する]を適当に進めて
[システム回復オプション]ウィンドウから[コマンドプロンプト]を立ち上げます。
そこで
bootrec /fixmbr
を実行して再起動するもHDDのWindowsは立ち上がりません。
"bootrec /scanos"すると一応Windowsのパーティションは認識してくれますが、
"bootrec /rebuildbcd"や"bootrec /fixboot"してもダメです。
もうWindowsは再インストールするしかないようです。
まだ入れたてで実質的に被害がないのが不幸中の幸いです。
ちなみにOS Xは無事です。ちゃんと立ち上がります。

で、Linuxを立ち上げるために思いついたのが、
PCに当然のごとくFDDが付いていた古の時代からお世話になっている
MBM(マルチ ブート マネージャ)をインストールしてみることです。
現在はサイトからブータブルCDイメージが落とせますが、
それが公開される前に自力で作成したブータブルCDを手元に置いているので、
Macにそれを入れてCDブートを試みましたが、
"Missing operating system"と出てあえなく撃沈です。

しょうがないのでネットで調べたところ、
どうもMacのブートローダーにはLinux(というかローダーのgrub)をブートする能力がないようです。
後で分かったことですが、grubはUbuntuインストール時に指定した/dev/sda5に入っているわけではなく、
EFIが自身のために使う領域/dev/sda1に実行可能ファイルとして置かれているおり、
単にこれを読みにいくフローがないみたいです。
まあ何にせよ、rEFitというオープンソースのローダーを入れればUbuntuも立ち上がるとのことです。
要はこれがPCのMBMやsystem commanderに当たるものなんですね。

さっそくrEFitのサイトを覗いてみると、
もうあまり活動してないらしく、forkされたrEFIndを使うよう記述があります。
で、rEFIndの説明をいろいろ読んだところ、
どうもMacのHDDの第1パーティション(OS Xのディスクユーティリティで見える物ではなく)に
rEFIndをインストールして、OS XではなくrEFIndをブートするようにし、
そこからOS Xを含めた各種OSを起動する流れになるようです。
まあやるべき作業はインストーラを実行するだけなので深く理解する必要もありません。
ダウンロードページから
[A binary zip file]をクリックして"refind-bin-0.8.3.zip"をダウンロード、
ダブルクリックで展開(解凍)し、以下を実行するだけ
(root権限取得のため途中パスワード入力が必要)です。
$ cd ~/Downloads/refind-bin-0.8.3
$ ./install.sh
Macを再起動すると見慣れないrEFIndのOS選択メニューが現れ、
Ubuntuアイコン(Boot EFI\ubuntu\grubx64.efi from EFI)を選択することで、
既に入っていてブート出来なかったUbuntuが立ち上がるようになります。
ここで"from"の後に書いてあるのはOS Xでつけたパーティション名です。
まあ直接立ち上がるのはgrubなので、そこからまた[Ubuntu]を選択することにはなりますが。
なお、ここからAppleアイコン(Boot Mac OS X from OS X)を選択すれば、
いつものOS Xが立ち上がります。

私はいろいろと試行錯誤していたもので、
この時点でWindowsのパーティションには何も入っていませんでした。
そこで新たにWIndows7をDVDからインストールすると、
ブートメニューにWindowsアイコン(Boot Windows from WINDOWS)が現れ、
ここからWindowsが起動するようになりました。
rEFIndのブートメニューだけでなく、標準のEFIのブートメニューからでもWindowsは起動します。
このあとさらにUbuntuを再インストールしたりしたのでタイミングは定かではないのですが、
Ubuntuを起動するときにgrubの選択画面が表示されなくなりました。
まあUbuntu自体は起動するので特にどうということなないのですが、ちょっと気にかかります。
Ubuntuを再インストールした後ももちろんWindowsもUbuntuもきちんと起動します。

一連の作業で注意すべきなのはパーティション操作です。
私はOS Xのディスクユーティリティ、Windowsのインストーラー、
Ubuntuのインストーラーで色々いじっていたのですが、
Windowsのインストール時にHDDがGPTでないからインストールできないというエラーが出たり、
OS Xのディスクユーティリティで新たにパーティションを作ろうとしたときに準備で永遠待たされたり、
OS Xの復旧パーティションがなくなったりしてしまいました。
どうやらOS Xの入っているパーティションの次のパーティションを
OS X以外から作り直したときにおかしくなったようです。
これはOS Xの再インストールしかないかと思ったのですが、
だめもとでいろいろやっていると何とか復旧出来ました。
私が行ったのは以下のとおりです。
OS XのディスクユーティリティでOS Xの入ったパーティションを
HDDいっぱいまで巨大化させてから元の大きさにリサイズし、
未使用領域を"Mac OS 拡張(ジャーナリング)"なパーティションとして作成し、
それをWindowsに必要なサイズにリサイズします。
このパーティションは後のWindows用となります。
残った未使用領域をFATパーティションにしてこれをUbuntu用とします。
このUbuntu用パーティションは上記で書いたように
最終的にUbuntuインストーラーで操作することになります。
最後にWindows用パーティションを一旦削除し、
その未使用領域をFATパーティションとして新規作成すれば、
Windowsのインストールが可能となります。
私は最終的にrEFIndからOS X Yosemite、Windows7 Home Premium 64bit、
Ubuntu 14.04.1 64bitが問題なく起動するよう仕上げることが出来ました。
ただし、OS Xの復旧パーティションは
それらしいサイズの未使用領域はできたものの復活しませんでした。

ところでDVD(USBメモリ)からのブートもrEFIndからはできるのですが、
EFIがそれらを認識するのに時間がかかり、かつブートメニュー画面は自動更新されないため、
適当に時間が経ってから[Esc]キーを押して画面更新する必要があります。
もちろん今までどおり[option]キーを押しながら電源を入れてブートデバイスを選択する事もできます。
で、ここにそれまで表示されていたHDDアイコンの[OS X]が
[Boot EFI]に名前が変わっていることに気づきます。
rEFIndが乗っ取ったということなんでしょうね。

最後になりますがUbuntuからはWindowsのNTFSは読み書き可能で、
OS XのHFS+は読み込みのみ可能ですが、
WindowsやOS XからUbuntuのext4はアクセス不能ですので、
UbuntuからOS Xにファイルを渡したいケースでは外部USBメモリでも使うか、
HDDにもう一つFAT32のパーティションを作って、
Ubuntuはそこにファイルを置くようにすればいいでしょう。
私は復旧できなかったOS Xの復旧パーティション跡地をUbuntuでFAT32にフォーマットして
それを利用することにしました。
そこはOS XとUbuntuからは読み書き可能なものの、
Windowsからは認識すらされないという変わったパーティションになっています。
これはWindowsでは5つ目以降のプライマリパーティションが認識出来ないのに、
パーティションの作成順の関係でそれが"/dev/sda6"(Ubuntuでの名称)になったからで、
もし"/dev/sda4"にできるようなタイミングで領域確保していれば、
Windowsからも読み書きできるようになるでしょう。
私はもう疲れたので現状でよしとします。

2014年11月13日木曜日

Ubuntu 14.04 から他のマシンをパワーオン

しばらく前からのPCにはネットワーク越しに起動命令を受けとることで
リモートでスイッチオンできるWOL(Wake on LAN)機能がついており、
OSが立ち上がってしまえばVNCなりSSHなりでリモートログインできます。
大昔にsunのラックマウントサーバで体験したような便利さが
身近でもできるようになりました。
ただしWOLは普通デフォルトで無効になっているので
BIOSで有効にする必要はあります。

Ubuntu 14.04から他のマシンを起動するには
# apt-get install wakeonlan
であらかじめツールをインストールしておき、
$ wakeonlan <起動対象マシンのMACアドレス(例 "00:01:02:a3:b4:c6")>
の実行するだけです。
MACアドレスをいちいち覚えるのは面倒なので、
#!/bin/bash
wakeonlan <起動対象マシンのMACアドレス>
のようなシェルスクリプトを書いて
$ chmod 755 <シェルスクリプト>
し、それを実行するようにするのがいいでしょう。

ちなみにWOLのマジックパケットを送るツールは
C言語でもPHPでも何でも簡単に作れます。
そういえば昔PHPで作って第3のマシンのウェブブラウザから
PCを起動させてたとこがありましたね。

2014年11月12日水曜日

AndroidのGmailアプリが新しくなった

Androidの純正Gmailアプリケーションがバージョンアップし、
outlook.com等のメールアカウントも扱えるようになりました。
といってもIMAP/POP/SMTPへの対応が追加されただけですが。
それでもこれで標準のメールアプリケーションの立場はなくなったと思われます。
ただこちらは使ったことがないので断言は出来ません。

ということで折角なのでアカウントを追加してみることにしました。
outlook.comのメールアカウントは持っていませんが、
古に取得したhotmail.comのアカウントについては
メールアドレスとパスワードの設定だけで利用可能となりました。
簡単です。

では、もう新規には受け付けていないoutlook.comでホスティングしている
独自ドメインのメールアドレスはどうかというと、残念ながら一手間かかります。
ということでここにやり方を書き残しておきます。

Gmailアプリケーションを立ち上げ、タブレットなら右にスワイプ、
スマートフォンなら画面左上のメニューボタン([三])をタップし、
カレントアカウントをタップして[アカウントを追加]をタップします。
次いで[個人(IMAPまたはPOP)]を選択してメールアドレスを入力し、
[個人(IMAP)]を選択してパスワードを入力します。
さらに[受信サーバの設定]アクティビティで[サーバー]を"IMAP-mail.outlook.com"、
[セキュリティの種類]を"SSL/TSL"、[ポート]を"993"に設定します。
続いて[送信サーバの設定]アクティビティで[SMTPサーバー]を" SMTP-mail.outlook.com"、
[セキュリティの種類]を"STARTTSL"、[ポート]を"587"に設定します。
あとは適当に設定すればメールの送受信ができるようになります。
受信はメール一覧が表示されるので確かめられますが、
送信テストは一度はしておくべきでしょう。

2014年11月11日火曜日

isaiにSMS対応SIMを

auの純正SIMカードを挿していると充電なしで2日使えるisaiは、
SIMロック解除してMVNOなdocomoのSIMカードを挿すと
1日しかバッテリーがもちません。
いわゆるセルスタンバイ問題との切り分けを図るため、
それを防げるSMS対応SIMに交換してみました。
利用したのは楽天ブロードバンドの[エントリープラスSMSプラン]です。

で、実験結果です。
無線LANやBluetoothをオフにし、LCDを消えたままにして普段どおり持ち歩いてみると…
やっぱり1日強しかもちません。
isaiのバッテリー持ちの悪さはSMS対応SIMカードであろうが
変わらないということが証明されました。
docomoなSIMカードな限りどうしようもなさそうです。
あとはauなMVNOであるmineoを試してみたいところですが、
最低利用期間が長すぎて…
今後も運用でカバーすることにします。

2014年11月10日月曜日

MacでWindows7

先日MacBook Pro新しいHDD換装して
OS X Yosemite(ver 10.10)をインストールしましたが、
デュアルブートでWindows7(Home Premium 64bit)が使えるようにしてみました。

通常なら[Finder]の[アプリケーション]-[ユーティリティ]から
[Boot Camp アシスタント]を起動して作業を進めればいいのですが、
自力でWindows用のパーティションを用意し、
手動でWindows用ドライバを入手するなら使う必要はありません。
実はYosemiteを新しい2TBのHDDに入れる際に、
あらかじめHDDのパーティションを分けており、
そういうことで手動で作業しました。

まず最初にドライバの用意です。
OS Xを立ち上げてBoot Camp サポートから
[ダウンロード]ページに飛びBoot Campをダウンロードします。
"Boot Camp Support Software 5.1.5640"が最新バージョンのようなので
これを落とそうとしたのですが、よくよく説明文を読むと
私の持っているMacBook Pro (13-inch, Mid 2012)では
バージョン"5.1.5621" を使うようにかかれているので、こちらをダウンロードします。
ダウンロードした圧縮ファイル“BootCamp5.1.5621.zip”をFinderからダブルクリックして展開します。
そして展開した中身すべてを通常のUSBメモリにコピーします。
容量は2GBあれば十分足ります。

HDDはあらかじめ800GB、800GB、400GBの3つのパーティションに分け、
Yosemiteは既に1番目に入れています。
2番目がWindows7用でNTFSにするためにほったらかしにしており、
3番目はOS XとWindowsのデータ交換用としてFATでフォーマットしていました。
しかし、色々やっているうちにこれではまずいことが分かりました。
HDDをいくつのパーティションに分けてもOS Xから認識できるのですが、
Windows7からはプライマリパーティションが4つまでしか認識できないのです。
しかもOS Xをインストールしている1つ目のパーティションは
なんと3つのプライマリパーティションからなっています。
通常起動用とか修復用とかに分割されています。
となるとWindows7(OSローダー)が認識できるプライマリパーティションはあと1つということになり、
この最後の1つをWIndows7の起動ディスクにするのはもちろんのこと、
計画していたデータ交換用パーティションはWindows7からアクセスできないことになります。
そんなわけで、OS XでHDDの2番目の800GBのパーティションをFATにしておきました。
3番目の400GBのパーティションは2番目とくっつけてWindows7で1.2TBで使うこともできますが、
今回はそのまま置いておくことにしました。
この状態ではOS Xからは2、3番目のパーティションはFATドライブとして利用可能です。

いよいよWindows7のインストールです。
Windows7のインストールDVDを光学ドライブに入れ、
[option]キーを押しながら電源を入れて、
[Windows]と名前の付いたDVDのアイコンを選んで起動します。
[EFI Boot]を選んでも起動できませんのでご注意を。
このあとは基本的に普通のPCにインストールするのと同じです。

Windwosのインストーラーが立ち上がるので[今すぐインストール]をクリックし、
[インストールの種類]は[新規インストール(カスタム)]を選択します。
注意が必要なのは[Windowsのインストール場所を選択してください]です。
私のケースではディスク0のパーティション1~3が
200MB、745.1GB、619MBに分けられているのですが、
これらはOS Xからは1つのパーティションにしか見えません。
どうも1つ目がEFIが利用する領域で、3番目はOS Xの復旧用のようです。
FATでフォーマットされたパーティション4がWindowsのインストール先になりますが、
Windows7はFATドライブにはインストールできません。
ということで、パーティション4を選択した状態で
[ドライブオプション(詳細)]をクリックして現れる[フォーマット]を実行します。
これでNTFSとなりWindowsがインストールできるようになります。
インストールを続けていくうちにリブートが発生しますが、
何もしないとOS Xが立ち上がってしまうので、
[option]キーを押しながら電源を入れて、
[Windows]と名前の付いたHDDのアイコンを選んで起動します。
これでインストールの続きが始まります。

インストール完了後に先に作成したドライバUSBを挿し、
"Boot Camp/setup.exe"を実行すれば関連するドライバがインストールされます。
各種設定は通常どおり[コントロールパネル]から可能ですが、
MacBookならではな項目についてはタスクトレイにある[Boot Camp]から
コンテキストメニューの[Boot Campコントロールパネル]から変更できます。

ちなみにOS Xから見えたHDDの第5パーティションはWindows7からは見えません。
ただし、OS XからはWindowsのNTFSドライブはリードオンリーで見れますし、
Windows7(+BootCamp)からはOS XのHFS+ドライブがリードオンリーで見れます。
ということでOS間のデータ交換は不自由ではありますが何も追加しなくても可能です。

2014年11月6日木曜日

Ubuntu 14.04でNICをブリッジ

歴史的経緯があって同じサブネットが物理的に2つのネットワークに分かれて、
それら2つが互いに中継もされず運用されているにも関わらず、
1つのPCから両方にアクセスしたいというような
わけの分からない要求があるとします。
PCにある2つのNICをそれぞれのネットワークにつなげても、
サブネットが同じなのでIPアドレスの系がかぶり、まともにルーティングできないのですが、
いろいろ制約があるもののUbuntu 14.04でブリッジを使い
実現できたので書き残しておきます。

最初に以下を実行してブリッジが使えるようにします。
# apt-get install bridge-utils
次いで設定ファイル"/etc/networks/interfaces"に以下の内容を追加します。
iface eth0 inet manual
iface eth1 inet manual

auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1
ここでは2つのNICであるeth0とeth1をまとめてブリッジbr0としています。
なお、双方のサブネットにDHCPサーバが存在すると、
どちらからIPアドレスをもらってくるか不定になってしまうため、
そういう場合は手動でIPアドレスを設定するのがよいでしょう。
iface br0 inet dhcp
の行を以下のように置き換えます。
IPアドレス等は環境に合わせ適宜読み替えてください。
iface br0 inet static
address 192.168.1.100
netmask 255.255.255.0
bridge_ports eth0 eth1
gateway 192.168.1.1
broadcast 192.168.1.255
network 192.168.1.0
さらにDSNサーバの設定のため"/etc/resolv.conf"も書き換えたいところですが、
Ubuntu14.04では起動時に自動生成されてされてしまうので、
"/etc/resolvconf/resolv.conf.d/base"に
nameserver <DSNサーバのIPアドレス>
の行を追加して、
# resolvconf -u
を実行するのが正しい解決法です。

さて、この状態だとこのUbuntu PCがeth0とeth1を中継して
理論的に1つの大きなネットワークになってしまいます。
それが嫌な場合は以下を実行します。
# ebtables -P FROWARD DROP
PC起動時からそうしたい場合は
設定スクリプトファイル"/etc/network/if-pre-up.d/bridge"の
if [ "$MODE" = "start" ] ; then
の行の直後に
ebtables -P FROWARD DROP
の行を追加しておけば実現できます。

もし両方に同じIPアドレスの機器が存在すると面倒なことになりますし、
他にも何か問題が発生するかもしれませんので、
TCP/IPについてよく理解してから試すことをお勧めします。

2014年11月5日水曜日

Lollipopが来る前に

LollipopことAndroid 5.0がいよいよ私のNexus7(2013/WiFi)にも届きそうです。
多分問題ないとは思いますが、
もしLollipopが気に入らなかった場合に備えて
バージョンダウンができることを確認してみました。

実は歴代のNexusのリリースされたファームウェアはすべて
Factory Images for Nexus Devicesからダウンロード可能で、
きちんと手順を踏むことで古いバージョンに書き戻すことが出来ます。
ただしユーザデータはすべて消えて初期化されてしまいますが。

私の手元にあるNexus7(2013/WiFi)用のファームウェアは
[Factory Images "razor" for Nexus 7 [2013] (Wi-Fi)]の項目に当たります。
最新のKItKatは[4.4.4 (KTU84P)]ではありますが、
今回は最古の[4.3 (JSS15Q)]に書き戻してみます。
"razor-jss15q-factory-4f77b811.tgz"をダウンロードして以下を実行します。
$ tar zxf razor-jss15q-factory-4f77b811.tgz
$ cd razor-jss15q
ここからはAndroid SDKに含まれるツールが必要になりますが、
それは既にインストールされていてその"platform-tools"ディレクトリに
パスが通してあることを前提とします。
環境をまだ整えていない方は私の過去の投稿等を参考に構築してください。
またNexus7でUSBデバッグが利用可能になっている必要があります。
こちらも私の投稿1投稿2あたりを参考にしてください。
で、以下を実行します。
$ adb reboot bootloader
$ fastboot oem unlock
これでNexus7に変わった画面が表示されているはずなので
[音量アップ]キーを1回押して[Yes]を選択し、[電源]キーを短く押して実行します。
その後
$ ./flash-all.sh
を実行してファームウェアを書き換えます。
結構時間がかかるので、タブレットは満充電した上でACアダプタを付けっぱなしにし、
書き込み中はタブレットにもPCにも触らない方が無難です。
書き込んだAndroidが立ち上がってきたら各種設定を行い、
USBデバッグを有効にしてから
$ adb reboot bootloader
$ fastboot oem lock
を実行すれば完了です。

戻せる保証があればこそ、安易にアップデートできるというものです。
なお古いファームウェアで使っていると、新しいのがありますと常に通知されるので、
それをキープしたいのなら間違ってアップデートしないように注意しておく必要があります。
簡単に元に戻せるとしても工場出荷状態には戻ってしまうわけですし。

2014年11月4日火曜日

Nexus7(2013)をもう一台買った

KitKatの懸賞でNexus7(2013)を2台当て、1台は家人に上げ、
1台を自分で使っている私でありますが、思うところあってもう1台購入しました。
アホかとか言われそうですが、そこには海より深い理由があるのです。

ここ最近、iPadやiPhone、Nexusの新製品が立て続けに登場しているのですが、
私の望む方向に進んでおらず、どうも今後もこの傾向が続きそうな気配がしています。
世の中ではiPhone6Plusが売れているらしく、
どうやら大方のユーザーは画面が大きい方が好みのようです。
そして画面サイズがiPhone6Plusより少しい大きい程度で
製品としてはかぶる部分も多い新しいiPad mini 3は、
前モデルのiPad mini 2と根本的には変わらず開発費をケチっています。
Appleとしては、近い将来iPad mini系列はフェイドアウトし、
iPhone Plus系に全面移行する計画なのが透けて見えます。
Appleにとってそれが都合がいいのは、
iPadよりiPhoneの方が総じて高価であるということです。

NexusについてもスマートフォンたるNexus5はモデルチェンジでNexus6へと大型化が図られ、
タブレットもNexus7からNexus9へと大型化します。
ついでに価格も高くなります。
私がAndroidにもっとも期待していることは安いことであり、
高価なAndroidを買うぐらいならiPhone/iPadにしておきます。

まとめると、今後のスマートフォン/タブレットは大きく高くなり、
小さくて安い製品が欲しい私が魅力的に思えるのがAndroid Oneぐらいしかないことです。
Android Oneにしたって性格からすれば日本で売ってくれるとは思えませんし。
ということで今のうちに小さくて安いタブレットNexus7を追加入手したわけです。
一応1台目が壊れたときの予備機として考えてはいますが、
よく居る2ヶ所に置いておけば持ち運びを最小限に減らせますし、
タブレットのカーナビソフトも十分使える品質になってきたので
自動車に常設していてもいいですし、2台あればあったで便利です。
そしてNexusなら新バージョンのAndroidだって長く供給してくれるはずです。

新しいモデルが出れば次々乗り換えるようなお金持ちのユーザにはおすすめしませんが、
まだタブレットを持っておらず、それなりの物を長く使う賢い節約上手(ケチで貧乏くさい?)な方には
まだ在庫がある今のうちにNexus7を手に入れておくことをおすすめしておきます。

2014年11月3日月曜日

gitのバイナリ差分

先日あるところからバイナリファイルの差分をもらいました。
差分ファイルの中身を見ると以下のような感じのデータが含まれています。
diff --git a/test1/test2/test.bin b/test1/test2/test.bin
new file mode 100644
index 0000000000000000000000000000000000000000..<ハッシュ値>
GIT binary patch
literal <数値>
<複数行のバイナリファイルのデータ>

literal 0
HcmV?d00001

バージョン管理にgitを使っていないのでどうしたものかと調べいき、
$ git apply < <差分ファイル>
をローカルで実行すればいいことに行き着きました。
今回はたまたま新規ファイルだったので、一行目を
diff --git a/test.bin b/test.bin
に変更して空のディレクトリで先のコマンドを実行すると
そのディレクトリに"test.bin"が現れました。
なお、差分ファイルは"HcmV?d00001"の次にある空行も意味があるみたいです。
ないと
error: corrupt binary patch at line <行数>: HcmV?d00001
とかいって怒られます。

ついでですが、パッチを作るには
$ git diff --binary p<元のファイル> <変更したファイル> > <差分ファイル>
とすればバージョン管理関係なく汎用ツールとして使えます。
"--binary"を外せば普通のdiffっぽく動きます。

2014年10月30日木曜日

lupinなUbuntuとXen

これまで結構いろいろな仮想マシン環境を利用させてもらってきました。
それも無料でです。大変ありがたいですね。
まあ大昔にVMware Workstationを購入した以外の話ですけど。
基本的にWindowsでVMwareやらVirtualBoxやらを使うのがお気楽でいいのですが、
新しいデスクトップLinux環境を構築する必要に迫られ、
しかもちょっと環境を調整したい場面もあったりするので、
XenでUbuntuをドメイン0とし、複数のドメインU環境を作ると幸せになりそうだと思いいたりました。
KVMという選択肢もありますが、CPUのVT-xが必須で、
今回利用する環境では有効にできないのっぴきならない理由があったりするので。

で、早速ホスト環境の構築です。
Ubuntu 14.04 をwubiでループバックインストールした環境にてとりあえず
# apt-get install xen-hypervisor-amd64
# apt-get install virtinst
# update-grub
# reboot
を実行してみたものの、grubの起動メニューにXen付きのものが出てきません。
どういうことか調べていくうちに、
"/etc/grub.d"ディレクトリにある"20_linux_xen"ファイルが
"/boot/grub/grub.conf"に反映されていないことに気付きました。
ついでに言えば"10_linux"さえもそうで、
使われているのは"10_lupin"だけです。
どうやらwubiでのインストールではXenのサポートができていないようです。
ですが、わずかな期待を持ちつつ"20_lupin_xen"を自作してみたものの、
私にはハードルが高すぎてどうにもなりませんでした。
ということでXenはあきらめます。

ところで、wubiを経由せずネイティブにインストールしたUbuntu 14.04では、
"xen-hypervisor-amd64"をインストールするだけで
grubでXen付きがデフォルト起動されるようになります。
wubi自体はだいぶ前に開発が停止されているようですし、
wubiを利用せざるを得ない環境で
簡単にXenが使えるようになる未来はもう来ないのかもしれません。

2014年10月29日水曜日

二端子二色のLED

DELLのPCのOPTIPLEX7010(SMALL FORM FACTOR)の中身を見ていたときのことです。
薄型光学ドライブとHDDを外さないとメモリを挿せないコンパクト設計なのですが、
メモリスロットの近くにフロントパネルにある電源スイッチへとつながるケーブルが挿さっています。
テクニカルガイドブックの8ページ目の"18 - Power Switch Connector (PWR_SW)"です。
このコネクタ、5ピン(3×2ピンで1つがピンなし)で、赤と黄色が短絡されており、
電源スイッチはこれらと黒が短絡されて動作するように結線されています。
この端子間には通常3.3Vがかかっていますが、赤の方がGNDなのは私の気のせい?
そして残りの2ピンは電源スイッチの表面についたLEDにつながっています。
電源スイッチの片側にだけ2ピンを使っている理由は分かりませんが、
特に不思議な作りではありません。

しかし組み立てて次に電源を入れたときにすごいものを見てしまいました。
そのLEDは電源オン状態で通常白く光っているのですが、
起動時に赤茶色にも光るのです。
よくある二色のLEDは三端子なり四端子なりあって、
電圧を掛ける(より正確には電流を流す)端子を変えることで違う色を光らせるのですが、
二端子でどうやって二色を切り替えるの?

まあ電子系の私には電流の方向で切り替えているんだろうとすぐに思い当たりはしました。
大雑把に言うとLEDはその二端子にある方向の電流を流すことで光り、逆方向だと光りません。
つまり互い違いにLEDを二つ並べ、電流の方向で二色を切り替えることは理論上可能です。
そして世の中を調べてみると二端子二色のLEDは製品として存在する様です。
ひょんなことから勉強になりました。

2014年10月28日火曜日

auのVoLTE

auが男前な決断をしてきました。
なんと最新のスマートフォン2機種はLTEにしかつながらないのだそうです
(国際ローミングにはW-CDMA/GSMも利用可能)。
きっと来年以降のauの新製品は、一部例外を除けば
国内3G(1X)ノンサポートのLTE(VoLTE)専用スマートフォンになるでしょう。
3Gをやめるとはなかなか潔いですね。
まあそこにはしがらみを立ちきれるauの環境と、
立ちきるためのauの努力があるのですが。

そもそもauの携帯電話は2.5世代的なcdmaOneから、
その上位互換のCDMA2000 1Xにアップグレードすることで3Gとなり、
その後は別電波で導入したデータ通信専用(EV-DO)を高速化することで進化し、
更なる高速化のために現在のLTEへの移行が進められています。
1Xは音声の回線交換とデータの低速(昔は十分高速だった)パケット通信の両方が可能で、
私もisaiで1Xの表示を体験したことがありますが、
これはデータ通信のことであり、音声通話は未だにすべて1Xで行われています。
つまりauは音声/低速データ兼用の1X、高速データの3G、
超高速データのLTEの3本建てということになります。

ところで、CDMA2000系の3GPP2規格は斜陽で、
世界的にはW-CDMA系の3GPPが幅を効かせています。そもそもLTEも3GPPですし。
であれば、auのCDMA2000系は国際ローミングを提供する立場としては
あまり役に立っておらず、古いものを切ったところで他国キャリアにそう迷惑はかかりません。

別の側面では、ドコモやソフトバンクのスマートフォンは3Gで音声通話中でも
データ通信ができるのにauではできないという不利点も目立ってきて、
VoLTEならその問題もクリアできるため、
auとしては1X/3Gをとにかく早く止めてLTEに一本化したいと考えたのでしょう。

そこで、プラチナバンドの800MHzでLTEを展開し、
LTEエリアをとにかく広くすることで3Gがなくなっても
日本国内のユーザが困らないようにせっせと環境作りに励み、
これからは音声通話をLTE上で提供するVoLTEに絞ったスマートフォンを
提供することで1Xが必要なユーザを減らしていくことになります。
数年後にはまず3Gを停波してその分の帯域をLTEに回し、
さらに時間をかけて音声用としての1Xをなくしていくプランなのだろうと推察できます。
2012年の800MHz帯再編時にも行ったように、残ったユーザは割引価格で巻きとりです。
MVNOのmineoにデータ通信としての3Gを提供していないのも
この流れに沿ったことであると、今なら合点がいきます。

となると疑問なのが私のようなフィーチャーフォンを使いつづけている、
そして使いつづけたいユーザーをどうしてくれるのかです。
データ通信は別回線を使っているので、
メインの携帯電話には音声通話とSMSしか必要なく、
ランニングコストの安さとバッテリーの持ちしか期待していません。
その点W62S+プランSS(EZweb契約なし)は私のお気に入りです。
技術的にはVoLTEなフィーチャーフォンも作れるでしょうが、
端末が高くバッテリーが持たなそうで心配です。

心配といえば購入から6年になるW62Sがいつまで持つのか…
ふざけた値段のフィーチャーフォンなど買いたくないので、
なんとか巻きとりの日まで動くことを願うばかりです。

2014年10月27日月曜日

MacBook ProのHDD換装

購入から1年以上経ち無償保証期限を過ぎた私のMacBook Pro(Mid 2012/13inch)。
Windows7を購入したし、OS X Yosemiteも出たしということで、
昔から考えていたHDD換装をしてみることにしました。
移行先は新規購入したSeagate社製のST2000LM003です。

MacBook Proを裏返してヒンジを奥(上)側に向けたとき、
周辺部を取り囲むように小さいプラスのネジが10本あり、
ヒンジに沿った奥の列(上列)の右側3本が長いネジ、他の7本は極短のネジとなっています。
これら10本のネジをすべてとるとヒンジ側を軽く持ち上げることで底面パネルが外せます。
構造的には丈夫な枠(側面)に底面でふたをするような恰好です。
注意点としては、ネジが非常に小さいのでなくさないようにすることと
ネジ山を潰さないようにすることでしょうか。
以後方向を表す言葉はこの本体の置き方を基準とすることにします。

さて、底面パネルを外すと左上にDVDドライブ、左下にHDDがあります。
HDDは直接ネジで固定されているわけではありません。
HDDには通常側面に4つのネジ穴が開いていますが、
MacBook Proではここに頭が円筒上のトルクスネジがねじ込まれていて、
このネジ頭の円筒を挟み込むことで本体に固定しています。
この挟み込んでいるのがHDDの上下の黒いプラスチック部品で、
上側の部品を固定している2つのプラスネジを緩めると、
その固定部品の表面側半分が外れ先のネジ頭が露出します。
HDDの上側を本体から少し浮かせ、ゆっくり上側にスライドすると
HDD下側のネジ頭が下側固定部品の固定穴から出てきて、
HDDが本体から離れるようになります。
最初からセットされているHDDには
フィルム状のつまみが接着されているのでこれで浮かせられますし、
そうでなくても小さいマイナスドライバーか何かで起こせます。
この時気を付けるべきなのが接続ケーブルです。
メイン基板から延びているフラットケーブルはHDDと本体との隙間を這って
HDDの左側のコネクタまでつながっています。
このケーブルにダメージを与えるとえらいことになるので、
HDDを動かす際は妙な力を掛けないよう十分注意しましょう。
またHDDのコネクタからケーブルを外す際はそれほど力を入れなくても大丈夫なので、
一番外の部分を十分注意しながらゆっくり抜いていきましょう。
ついでに静電気で壊さないように最低でも作業の開始前には手を金属に触れさせておきましょう。

HDDが完全に本体から離れたら、HDDについている4本のトルクスネジを外します。
ネジ頭が大きいのでペンチで外すことも出来るかもしれませんが、
専用のトルクスドライバーを使うことをお勧めします。
で、外したトルクスネジを移行先となる新しいHDDにねじ込んで、
先ほどとは逆の手順で本体にはめ込みます。
ここで注意するのはヒンジ側の4本のネジは本体に対して垂直に締めるのに、
その他の6本の向きは底面パネルの曲面の法線になっているということです。
つまり本体からするとネジの向きは斜めになるということです。
作業的には底面パネルが多少動くようにしながら、とりあえず10本のネジを緩めにねじ込み、
その後にネジをキツめに締めればきっちり取り付けられます。

ハードが終わったら次はソフトです。
まっさらなHDDに交換した直後はパーティションの認識すらできず、
電源を入れていくら待っても起動できないマークが表示されるだけです。
もしリカバリーのためのメディアもOS Xのインストーラもなくどうしようもない状態にあっても
Macには救済システムがあり、
[option]キーを押しながら本体電源を入れて[ネットワークを選択]で
インターネットに出ていける適当な無線LANアクセスポイントを選んで接続すると、
しばらくして[Internet Recovery]が出現し、
ネットワーク越しにOS Xがインストール出来ます。
もちろんそれなりのデータダウンロードが必要なわけであくまでも緊急事態用です。

通常はMac起動時のキーコンビネーションにあるように、
DVDドライブにOSのインストールDVDをセットするかインストールUSBメモリ挿して、
[option]キーを押しながら本体電源を入れてそれらインストーラを選択するか、
[c]キーを押しながら本体電源を入れてそれらを自動起動させます。
まあ内蔵HDDが空だと何もしなくてもそれらメディアから起動されますが。

さて、インストール用メディアからのブートにより[OS X ユーティリティ]が立ち上がります。
最初に行うのはHDDの初期化です。
[ディスクユーティリティ]を開き、新しいHDD(私のケースでは[2TB ST2000LM003 HN-M201RAD Media])を選び、
[パーティション]タブの[オプション]ボタンで"GUIDパーティションテーブル"を選択して、
[パーティションのレイアウト]を[1パーティション]とし、
[名前]を"OS X"、[フォーマット]を"Mac OS 拡張(ジャーナリング)"、[サイズ]を"2TB"と設定します。
その後は[OS Xをインストール]を起動し、
メッセージにしたがってOSをインストールすればめでたくHDD換装の完了です。

外したHDDはUSB接続HDDケースに入れて外付けHDDにしておきましょう。
ボリュームの名前は"Macintosh HD"となっているはずです。
Macでは[option]キー押しながらの起動で外付けHDDからでもOS Xが起動できるので、
万一古い環境(旧バージョンOS)が必要になったときには外付けHDDからの起動で何とかできます。

2014年10月23日木曜日

Ubuntu 14.04 にVirtualBoxを

いろいろと都合があってWindows+VMware Player上で動作する仮想マシンを
Ubuntu 14.04 +VirtualBox 4.3 な環境へ移行させてみました。

まずはUbuntuへのVirtualBoxのインストールです。
VirtualBoxのダウンロードサイトにも書かれていますが、
以下を実行しました。
# echo 'deb http://download.virtualbox.org/virtualbox/debian trusty contrib' >> /etc/apt/sources.list
# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -
# apt-get update
# apt-get install virtualbox-4.3

次いで仮想マシンの変換です。
WindowsにVMware Playerを入れていると、その中にovftoolなるものがあります。
これがコンバーターです。
変換したい仮想マシンの構成ファイル(vmxファイル)が存在するフォルダで
コマンドプロンプトを開き、以下を実行することで可能です。
"C:\Program Files\VMware\VMware Player\OVFTool\ovftool.exe" <変換元vmxファイル>  <作成するovfファイル>
出来上がったovfファイルと、新たに生成されたvmdkファイルとisoファイル(タイムスタンプで判断)を
Ubuntu側にコピーしてUbuntuのGUIで[ファイル]アプリケーションを開いて
そのovfファイルをダブルクリックすると、
VirtualBoxが立ち上がって[仮想アプライアンスのインポート]ダイアログが表示されるので、
都合に合わせて設定をいじり、インポートを実行すると見事仮想マシンが動くようになりました。
移行したのはUbuntuの32bit版で、最初エラーで起動できなかったものの、
VBox.logで原因がネットワークっぽかったので[設定]メニューの[ネットワーク]で
アダプタを無効にするととりあえず使えるようになりました。

次にUbuntuの64bit版をもっていこうとしてトラブルに見舞われました。
VirtualBoxで起動しようとすると
仮想マシン"****"のセッションを開けませんでした。
VT-x is desabled in the BIOS.(VERR_VMX_MSR_VMXON_DISABLED).
と出てきて起動できません。
作業しているこのPC、訳あってBIOSが弄れなく、VT-xを有効にできません。
なので
$ VBoxManage modifyvm <仮想マシン名> –-hwvirtex off
$ VBoxManage modifyvm <仮想マシン名> –-vtxvpid off
を実行してどうにかなることを期待するも、
先のエラーは出なくとも、仮想マシンはしっかりフリーズしてしまいます。

そもそも仮想マシンの新規作成時に[タイプ]を"Linux"にしても
[バージョン]に64ビットと書かれたものがありません。
で、調べてみると64bit版のゲストOSはVT-xが有効になっていないということを
今更ながら知りました。なんてこったい。
これはVMware Playerでも同様で、VirtualBoxが悪いわけではなく、
ハードウェア的な制限事項のようです。
ということで私のチャレンジはここで終了です。

ところでovftoolによる変換にはそれなりの時間と空きディスク容量が必要です。
ovftool実行中に[Ctrl]+[c]で中止したりすると、
途中経過が削除されてしまうので、余裕をもって作業しましょう。
またUbuntuにコピーしたovfファイル等は途中生成物なので、
インポート後はもはや必要ないようです。

最後になりますが、一応VT-xを有効にしたホストUbuntu(64ビット)+VirtualBoxでなら、
ゲストUbuntu(64ビット)をインポートして特に問題なく動作することを
確認できたことを加筆しておきます。
また私同様linuxはsshでコンソールにログインできるだけでOKというような方向けに、
ゲストOSをコマンドラインからヘッドレス(モニタなし)で起動したいときは
$ VBoxManage startvm <VM名> -type headless
を実行すればいいということも付け加えておきます。

2014年10月22日水曜日

au Walletでドル建て決済

海外に行ったわけではありませんが米ドルでの支払いの必要があったので
au Walletで決済してみました。
直後にサイトでカード明細を確認すると交換レートはUS$1=109.403円となっていました。
同時に証券会社のホームページで確認したレートがUS$1=105.84円。
つまり3.4%程度の手数料が上乗せされているととらえることが出来ます。
2日後に"為替レート変動調整"との名目でいくらか追加で引かれており、
換算すると0.1%よりはるかに低いので、手数料はやはり3.4%程度と見てよさそうです。
KDDIのQ&Aによると、
「国際決済手数料4%が上乗せされる可能性があ」るとのことで、当たらずとも遠からずですね。
普段こんなに細かくレートを確認することもないのではっきりしないのですが手数料はやや高めかなと。
まあ今ならじぶん銀行からのチャージで5%還元されるので損した気はまったくしません。

2014年10月21日火曜日

IBMがファブレスになる

IBMが半導体事業をGLOBAL FOUNDRIESに譲渡するとの発表がありました。
しかも譲渡する側のIBMが現金15億ドル(3年かけて)を支払う契約だそうです。
おまけでも付けないともらってももらえないというところが半導体事業の悲哀を感じさせます。
IBMにはサーバ部門(多分POWERプロセッサの設計)は残るようですが、
これすなわちファブレスになるということです。
そうなるとPowerPCプロセッサはどうなるんでしょうね。
製造専門のGLOBAL FOUNDRIESが設計部門を抱えるとも思えませんからAMDに売ったりして…

半導体製造事業についてはもはや規模を大きくしないと話にならないということもあり、
Samsungは巨額投資でテコ入れしようとしていますが、
それが出来ないようなところにはジリ貧で耐えるか、
舞台から降りるより他に選択肢はないのが現状なのでしょう。

さて、近年日本の電機メーカーでは半導体製造事業の売却話がよく聞かれます。
しかしIBMがこんなことをしてしまうと、
もうお金を付けないと買い手が見つかりそうにありません。
ふと家電リサイクル法が思い浮かぶのでした。いや冗談じゃなく。

2014年10月20日月曜日

OS X Yosemite のインストールDVDは無理?

ついに利用可能となったOS X Yosemite。予想通りアップデート費用は無料です。
これまでMacBook ProにプリインストールされたMountain Lionをそのまま使ってきましたが、
内蔵HDDを換装する決心がついたのでMavericksのときに続いて、
YosemiteのクリーンインストールのためのDVDを作ってみることにしました。

[App Store]の[アップデート]からOS X Yosemiteの
[無料アップグレード]をクリックするとダウンロードが始まります。
ファイルサイズは5.16GBと巨大なので、ADSLで数時間かかってしまいました。
その後インストーラが立ち上がりますが、とりあえずこちらはほうっておきます。
同時に[アプリケーション]フォルダに[OS X Yosemite インストール]が現れるので、
コンテキストメニューの[パッケージの内容を表示]で中身を見ます。
"Contents/SharedSupport/InstallESD.dmg"ファイルがあるので
コンテキストメニューで["InstallESD.dmg"をコピー]を実行し、
[Finder]の適当なディレクトリで[編集]-[項目をペースト]メニューを実行して
"InstallESD.dmg"ファイルを保存します。
ちなみに私は[ダウンロード]ディレクトリに置きました。

Finderでこの"InstallESD.dmg"をダブルクリックしてマウントし、以下を実行しました。
$ cd /Volumes/OS\ X\ Install\ ESD/
$ cp BaseSystem.dmg ~/Downloads/
$ cd ~/Downloads/
$ SetFile -a v BaseSystem.dmg
そこで[Finder]の"Download"ディレクトリに現れた"BaseSystem.dmg"を
[ディスクユーティリティ]アプリケーションでDVDに焼いてみたのですが、
なんとDVDからOSが起動出来ません。
正確に言うとDVDからのブートは出来ているようなのですが、
1時間待ってもYosemiteのインストーラーは起動しません。
Mavericksに続いて新たなAppleの嫌がらせか?

ちなみに[ディスクユーティリティ]で"BaseSystem.dmg"を
USBメモリ(USB接続HDDでも同様)に復元しても、
そのUSBメモリからブート出来ません。
画面に駐車禁止みたいなマークが出て処理が止まります。

ただしインストールUSBメモリを作ることは可能です。
最初に中身が消えてもかまわないサイズが8GB以上USBメモリ
(またはUSB接続HDD)を用意しMacにつなぎます。
[Finder]の[アプリケーション]-[ユーティリティ]から
[ディスクユーティリティ]アプリケーションを開き、
そのUSBメモリのパーティションを選択し、コンテキストメニューから[マウント解除]します。
これをUSBメモリのすべてのパーティションに対して行います。
続いてそのUSBメモリを選択して[パーティション]タブで
[パーティションのレイアウト]を"1パーティション"にして
[オプション]で"GUIDパーティションテーブル"を選択し、
パーティションの[名前]を"yosemite"、
[パーティション情報]の[フォーマット]を"Mac OS 拡張 (ジャーナリング)"、
[サイズ]を"7"GB以上にして[適用]をクリックします。
最後に以下を実行すれば、そのUSBメモリはYosemiteのインストールUSBメモリになります。
$ sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/yosemite --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction

ちなみにこうして作ったUSBメモリや方法自体を参考に
インストールDVDが作れないかと試しましたが私の実力では無理でした。
DVD+R DLの無駄使いがバカらしいのでもう止めときます。

DVDドライブ内蔵Macが絶滅しようとしている中で
今更OSのインストールDVDが必要とされるわけもなく、
今回の改悪は受け入れざるを得ませんが、
まだMavericksのインストールDVDでインストールした直後に
DVDにバックアップした"/Applications/Install\ OS\ X\ Yosemite.app"を
"アプリケーション"ディレクトリにコピーしそれを実行することで、
Yosemiteをクリーンに近い状態でインストールする事は可能ですので、これで納得することにします。
とりあえず近日中のインストールには先に作ったUSBメモリを使う予定です。

2014年10月16日木曜日

Ubuntu 14.04をwubi.exeでインストール

Windows7が入ったBIOSにパスワードロックがかかっていて、
CDブートすらできないという困難な状況にぶつかりました。
これにUbuntuを入れる方法について書き残しておきます。
幸いにもUbuntuにはWindowsからNTFSなHDD上に仮想HDDファイルを置いて、
そこにUbuntuをインストールすることで無理やりデュアルブートにしてしまうことができるので、
今回はその方法を使ってみます。

まずはWindows7(または別PC)でUbuntu 14.04.1(amd64)のisoファイルをダウンロードし、
DVDに焼いてインストールディスクを作っておきます。
Windows上からインストールディスクにある"wubi.exe"を実行し、
[デモおよびフルインストール]-[cdブート・ヘルパを使う]-[完了]を選択するも
会えなく途中でエラー
Could not retrieve the required installation files.
が発生してしまいます。
そこで"wubi.exe"をHDD(デスクトップ)にコピーしてから実行してみると、
断りもなくUbuntu 14.04のインストールファイルをダウンロードしてきます。
その後今度は
'NoneType' object has no attribute 'get_info'
なるエラーで止まります。
ということで"wubi.exe"を"--force-wubi"オプション付きで実行し、
[Windows内にインストール]してみますが
Permission denied
で撃沈。いったいどういうこと?
ためしに古いバージョンUbuntu 12.04を入れにかかると
Extraction failed with code: 2
なるエラーでまただめ。 結局行き着いたのは
デスクトップに"ubuntu-14.04-desktop-amd64.iso"と14.04の"wubi.exe"を置き、
インストールディスクをイジェクトした上で"wubi.exe"を実行するという方法です。
なお仮想HDDとなる[インストールサイズ]は最大の30GBを取りました。

インストールが進みPCがリブートするのでそのまま待つか、
[esc]でgrubのメニューに入り[Normal]を選択します。
すると以下のような連続した不幸のメッセージが…
serious errors were found while checking the disk for /
Press I to ignore, S to skip mounting, or M for manual recpvery
The disk derive for /tmp is not ready yet or not present.
Countinue to wait or Press  S to skip mounting, or M for manual recpvery
An error occurred while mounting /.
Press  S to skip mounting, or M for manual recpvery
これ、なんだか知りませんがリードオンリーでマウントされるために出ているエラーのようで、
grubのメニューで'e'を押してカーネルオプションの"ro"を"rw"に書き換えることで
起動できるようになりました。変更後はだいたいこんな感じ(大きく省略)になります。
linux /boot/vmlinuz-* root=UUID=* loop=/ubuntu/disks/root.disk rw 
ただこれだけでは起動のたびに修正する必要があるので、元から直しておきます。
root権限でgrub設定ファイル"/etc/grub.d/10_lupin"の
linux   ${rel_dirname}/${basename} root=${LINUX_HOST_DEVICE} loop=${loop_file_relative} ro ${args}
linux   ${rel_dirname}/${basename} root=${LINUX_HOST_DEVICE} loop=${loop_file_relative} rw ${args}
に直した上で以下を実行します。
# update-grub
ここで"/etc/grub.d/10_lupin"はwubiでループバックインストールした環境を
ブートするために用意されたファイルのようで、
その辺がリードオンリーになっている理由なのかもしれません。

PCの立ち上げ時にWindowsのブートメニューが表示され、
そこでUbuntuを選ぶと今度はgrubのブートメニューが表示される
二段構えになりますが仕方ありません。
なおWindowsのブートメニューで起動OSのデフォルトの変更は、
[コントロールパネル]の[システム]から[システムの詳細設定]を開き、
[システムのプロパティ]ダイアログで[詳細設定]タブを開いて
[起動と回復]フレームの[設定]をクリックし、
[起動と回復]ダイアログの[起動システム]フレームの
[既存のオペレーティングシステム]リストから選ぶことで可能です。

Ubuntuが立ち上がるとWindows7の入ったNTFSのCドライブが
/hostにマウントされているのが分かります。
やったーと小躍りしたのもつかの間、
なぜかIntel製チップの有線LANが繋がりません。
とりあえずそのLANインターフェイスでipv6をignoreすることでなんとかなりました。
いつもどおりsshサーバにするのと素のviは使いにくいので
# apt-get install sshd-server
# update-rc.d ssh defaults
# apt-get install vim
を実行し、14.04から14.04.1へアップデートを
# apt-get update
# apt-get dist-upgrade
でしたところまたネットワークが繋がらなくなってしまいました。
しょうがないのでネット上からドライバ("e1000e-3.1.0.2.tar.gz")を探し出して
# tar zxf e1000e-3.1.0.2.tar.gz
# cd e1000e-3.1.0.2/src
# make install
でなんとかなりました。
設定ファイル"/etc/NetworkManager/NetworkManager.conf"を見ると
[main]セッションに
no-auto-default=<LANのMACアドレス>,
の一行が追加されているのが気になりますが、繋がっているので良しとします。

ここまででもUbuntuはきちんと動きますが、仮想HDD上での動作となります。
ほぼ使わないWindowsのためにNTFSのHDDを使わせておくのはもったいないので、
Windows7にAOMEI Partition Assistant
スタンダード(フリー)版を入れてNTFSのCドライブを分割し、
できた未使用パーティションをEXT4として
Linuxでマウントして作業スペースにすればいいでしょう。
ついでに別途数GBのパーティションを作ってスワップ領域にしてみます。
とりあえずLinuxで見たときの"/dev/sda3"(10GB)をスワップに、
"/dev/sda5"(400GB)を"/opt"にマウントして使ってみます。以下を実行します。
# mkswap /dev/sda3
# mkfs.ext4 /dev/sda5
設定ファイル"/etc/fstab"を編集します。
/host/ubuntu/disks/swap.disk none 
で始まる行を削除(コメントアウト)し、
/dev/sda3 none swap sw 0 0
/dev/sda5 /opt ext4 defaults 0 2
の行を追加してリブートすれば完了です。
うまくすればルートファイルシステムを
仮想HDDからネイティブボリュームに移すことも可能みたいですが、
万一のときめんどくさいことになるのでこれで我慢します。
必要ならもっと細切れにパーティションを分けていろいろなところにマウントすれば
ネイティブに近い使い心地にはなるでしょう。

2014年10月15日水曜日

リモート電源制御

リモート電源制御と言ってもPCのWOLのことではありません。
汎用の電気(電子)機器の電源の供給をリモートでオン・オフすることです。

最近はネット越しに家電をコントロールすることが実用になってきていますが、
そのトレンドの遥か前から私は運用してきました。
ということで特定の製品を使っているわけではなく、
電子部品やキットを調達して自分で作ったものです。
リレー(SSR)でAC電源をオン・オフするのですが、
その制御はコントロール端子に3V程度以上の電圧を掛けるか掛けないかだけで可能で、
しかも電源系と制御系で電気的にアイソレートされているため、
USBのタイプA端子の電源ラインや、一般的なマイコンのIOを
特に何も気にせずに直に接続してしまえるのがお手軽です。

私がこのSSRを使い始めたきっかけは、
数年前に購入したUSB機器のACアダプタの高周波ノイズがひどくて我慢ならず、
ホスト機器との電源連動のために導入したということなのですが、
すこぶる気に入っていろいろ活用する様になりました。
まだ作ってないキットを10個ほどストックしており、
何かあればすぐに使えるように準備万端です。

このSSRを使ってインターネット経由で電源をオン・オフするのに便利なのがRaspberry Piです。
ウェブサーバでGPIOを制御できるので、
汎用のウェブブラウザからネット経由でコントロールできます。
この場合、P1ピンヘッダの7番ピンがGPIO4、6番ピンがGNDなので、
この2本を極性を間違えない様にSSRに接続すればいいだけです。
もちろん外部から家庭内(ローカルIP網)のウェブサーバにアクセスするには、
ダイナミックDNSやルータのポートフォワーディングの力を借りたりする必要があるかもしれません。
またセキュリティには十分注意を払う必要があり、
最低でもウェブサーバの暗号化とユーザ認証を使うべきですし、VPNを構築するのがベターでしょう。
なおコンピュータネットワークやサーバ、電子回路に関する十分な知識がない方にはお勧めしません。

それから先に紹介したSSRのキット自体は製品ではありません。
作るときには絶縁、冷却、接触抵抗、保護回路(ヒューズ)、
そしてコントロールされる機器にも気を使う必要があります。
電気に関する十分な知識がない方には絶対にお勧めしません。

何にしても利用するならすべて自己責任お願いします。

2014年10月14日火曜日

AgIC

大昔に銀ペーストを塗りたくる擬似多層基板の自動製作システムを使ってもいいと言われたことがありました。
イメージ的には今の3Dプリンタに近いようなシステムです。
残念ながら当時はまともな電子回路図CADソフトが使える環境になかったのと、
ユニバーサル基板を切った張ったするだけで間に合うことしかしてなかったため
利用経験はないのですが、そういう物があるというのは知っていました。

時は流れプリンタから銀インクを専用紙に印刷することで、
ペラペラの電子回路基板が製作できるようになりました。
AgICの製品で同社のウェブショップから購入できます。
趣味程度しか使わないのでプリンタや銀インクは値段が高過ぎるという方向けには
フリーハンドで回路を書けるペン専用紙があります。
私は試しにペンと専用紙のセットを購入してみたので、
実際に使ってみた感想等書いてみます。

専用紙にペンで線を引くと綺麗な銀色になり、テスターで導通が確認できます。
試しに手元にある電池とLEDと適当な抵抗器をAgICのペンで直列につなぐとちゃんとLEDが点灯しました。
普通紙は使えませんがインクジェットプリンタ用の写真を印刷するような光沢紙なら使えます。
ちょうどブラザーの写真光沢紙があったのでこれに描いてみるとちゃんと回路になりました。
購入した専用紙はこの光沢紙のように綺麗でピカピカで、やや固い質感です。
なのでもしかしてと思いつつホワイトボードに描いてみましたが残念ながらだめでした。
なお描いた線はエタノールで湿らせたティッシュで擦って消すことができます。
また端子以外の部分の表面を絶縁できないかなと油性のマジックを塗ってみましたが電流は通り抜けてしまいます。
必要ならテープ等で対策することになります。
剥がすときや経年変化を考慮してメンディングテープがいいと思うのですが、
専用紙が硬質でインクもきっちり定着するので、
セロハンテープでも無事に剥がすのは難しくありません。
あるいは修正テープを貼ることでも絶縁できました。
私は試していませんが修正液でも可能かもしれません。
ただし素材的にちゃんと絶縁できる事を確認してから使ってください。
なお、これらテープを貼った上にAgICペンで配線を書いても電気は流れません。
つまり回路を立体交差にはできません。
ただ細く切った専用紙に配線を書いてメイン基板の配線とうまく接触させることで
ジャンパーの様に使うことはできます。ペーパークラフトですね。
また専用紙や光沢紙には通常裏表があり裏面には銀インクが定着しないので両面基板にすることはできませんが、
専用紙を裏面を張り合わせる様にすれば両面っぽく使えます。
スルーホールは鉄製の針で閉じるホッチキスで実現可能です。
針と配線がきちんと接触する様にすれば何とかなります。

ということでAgICは今のところは惜しい製品に過ぎないと感じました。
ホワイトボードに水性のAgICペンで描いたり消したりしながら回路を作り、
くっついている部品の結線を自由に変えられるとおもしろそうです。
が、それなら自由度が落ちはするもののブレッドボードでできるわけで、
ブレッドボードで動作確認した回路を永続化したいときに、
プリント基板を作るほど金は掛けられないけど、
かと言ってユニバーサル基板で作る手間も掛けたくない、
というような場合の解ということになりそうです。
ちょっとした半完成品をつくるためのシステムと考えればいいでしょう。

ペンのアイディアはともかく、最悪なのは部品の接着です。
ブレッドボードなら穴に挿すだけですし、通常の基板なら半田でくっつけられます。
AgICの場合は導電性接着剤を使うことになるのですが、
これが接着剤と言うよりはセメントのような物で乾くのが遅く
脚付き部品など重くてとてもじゃないがくっつかない。
瞬間接着剤で動かないように仮固定してから導電性接着剤でくっつけ、
上からエポキシ樹脂系の強力な接着剤で固めてしまうとかしないと話になりません。
しかもこの導電性接着剤、間違ったところについてしまうと
ティッシュで拭おうとしても広がるばかりでとれず余計なところが導通してしまいます。
軽くて小さい表面実装部品を使うにしても、大量に載せるのは悪夢のような作業になりそうです。
また、導電性接着剤に付属の注射器の針先は一度使うと固まって出てこなくなります。
つまった状態で無理にピストンに力を加えると針先が吹っ飛んで中身をぶちまける悲劇に見舞われます。
ということでこの部分が改善されないと二度と使わないような気がします。
Kickstarterでの投資でもらえる特典のお試しセットには導電性テープを使っていて、
それがZ軸コンダクティブテープのような異方性導電性物質だったようですが、
なぜ接着剤に替わってしまったのか?
多分テープの方が楽に使えるはずです。

ちなみに専用紙の上にクリーム半田を盛ってオーブントースターで焼いてみたところ、
銀インクの配線に一応定着し導通もするのでチップ抵抗等ならくっつきそうです。
問題は熱による電子部品へのダメージと紙がこんがりときつね色になることでしょうか。
専用紙の焦げた部分は銀インクが載らなくなります。
一応半田ごても使ってみましたが、
半田は配線側にちっとも馴染まず、こて先にまとわりつくばかりです。
と言うわけで半田はお勧めできません。

何だか問題点ばかり並べたような気もしますが、
AgICのこのシステムを実用にするには、
  • 部品の接着の容易化
  • 立体交差配線の容易化
  • 配線絶縁の機械化
あたりを何とかする必要があると考えています。
確かに多数の基板作成の際の手間と時間は節約できるのでしょうが、
現状では部品点数が多くなるとそれを付けるのに地獄を見ることになりそうです。

2014年10月13日月曜日

Google Mapsの更新ってほんと遅い

新しくできた道路のGoogle Mapsへの反映の遅さについて
今年になってから2つ記事(12)を書きました。
実はもう1ヶ所ウォッチしていたところがあります。
先の記事の2ヶ所は高速道路なのですが、後の1ヶ所は国道のバイパスです。
これの開通は2014年3月下旬だったのですが、
Google Mapsに現れたのは2014年10月10日でした。
半年の遅延があります。

せっかくのオンライン地図なのにこれだけ遅いというのはちょっとねぇ。
ストリートビューを充実させる前にもっと重要な事があるような…
まあタダで使わせてもらってる身なので文句も言いにくいんですけど。

2014年10月10日金曜日

USBケーブルのデータ線をショート

先日100円ショップに行ったときのこと、
iPadなんかで充電ができないときにケーブルに挟むといいらしいUSBアダプタが売ってありました。
USB Type Aのオスとメスが両端に付いた小さなアダプタです。
改造して別の用途に使ってみようと買ってみました。
分解してみると、メス(iPad等のデバイスが繋がる側)のD+とD-端子に、
+5Vを抵抗で分圧して作った2つの中間電位がそれぞれかかっています。
オス(PC/ACアダプタ)側のD+/D-はNCです。
で、私はその4つのチップ抵抗を取り、メス側のD+とD-をショートさせました。

これで何ができるかというと…
数年前のスマートフォンではUSB端子での充電ができるようになったのですが、
ホスト機能を持たない単なるACアダプタからの給電では充電できず、
充電するにはD+/D-が短絡された特殊なケーブルが必要でした。
実は私の持っているau IS01がそうでした。
IS01はすでに使っていないものの、ワンセグTVが見られるため
非常用機器としては残しており、いざと言うとき役に立つよう時々充電しています。
そしてIS01にACアダプタから直接充電できるように先のアダプタを改造したと言うわけです。

本当はこれが役に立つような事態は起きてはほしくないのですが、
世の中何が起こるかわかりませんから、準備だけはしておかないとね。

2014年10月8日水曜日

Windows7の販売終了

数日前、ネットを巡回しているとWindows7の販売終了に関する記事が目に止まりました。
改めて調べていると、Windowsのライフサイクルに関するページを見つけました。
それによるとWindows7の製品版ソフトウェアの販売終了は2013年10月31日となっており、
すでに一年経過しています。
あまり注意して見たことはないのですが、売れ残りを除けば、
Windows7のパッケージはもう店頭にないということになります。
またProfessionalエディション以外のWindows7の
プレインストール済みPCの販売終了は2014年10月31日となっています。つまり今月末です。
前述の記事はこのことを言っていたんですね。
ところでいわゆるDSP版は本来エンドユーザや小売店のための物ではなく、
PCを製造販売するメーカーに対して出荷される物であり、
その辺で売られているのは自作PCユーザー向けということになっております。
このDSP版は後者に属すると思われるので、今月末で出荷終了という運びになると思われ、
それならとWindows7 Home Premium 64bit Service Pack 1 日本語 DSP版 DVDを買ってしまいました。
これをMacBook ProにOS Xとのデュアルブートで入れようかと。
まああとわずかでOS X Yosemiteが正式リリースされるはずなので、
それへのアップデートが終わってからのつもりですが。
ちなみにWindows 8 Professionalの未使用のアップグレード権がまだ1つあるので、
気が向いたらWindows8にしようかとは思っていますが、今のところ意義が見当たらなくて…
来年登場のWindows10へのアップグレードパスを睨みながら判断するつもりでいます。

2014年10月7日火曜日

iPadとAdHoc配布

先週末行きつけの美容院で髪を切ったときの話です。
クレジットカードで支払いしようとすると、いつもなら専用決済機を使うのですが、
いきなりiPad miniを出してきて、そのイヤホン端子に磁気カードリーダーを挿し、
それで決済しました。リーダーについていたマークから察するに[楽天スマートペイ]のようです。
また、しばらく前に回転寿司のくら寿司に行ったときには
注文端末がiPadになっててビビりました。

数か月前にもauショップのウェルカムガチャ端末がiPadであると書きましたが、
以前なら専用端末を起こさざるを得なかったような用途に、
汎用のタブレット端末を持ってきてソフトだけつくってしまう、
さらにもし必要なら元締めとなるサーバソフトだけ作ることで、
世の中の結構な範囲がカバーできてしまいます。
今汎用機たるスマートフォンの普及により、
コンパクトデジカメのような専用機が駆逐されつつありますが、
レジスタや券売機といった業務用専用機までも駆逐するようなことまで
起こるかもしれませんね。

さて、ここで疑問なのはなぜAndroidではなくiPadなのかです。
楽天スマートペイではエンドユーザの選択によりAndroidも使えるのでおいておくとし、
ウェルカムガチャのときはauの在庫処分かとも考えたのですが、
くら寿司の場合それはないでしょう。
Androidなら自前で開発したアプリケーションのインストールなど何も制限ないのに、
わざわざiPadを選ぶのは何か理由があるはずです。

で、今回調べていて知ったのはiPadのAdHoc配布です。
iPadの開発者アカウントを持っていると100台までに
開発中のアプリケーションをインストールしてテストできるのは
以前から知っていたのですが、これをAdHoc配布と言うそうで、
iOS Enterprise Developer Programなる契約をアップルと結ぶことで
100台以上の利用が可能となるんだそうです。それなら納得です。

その場合でも、契約が有料であったり、
アプリケーションの開発にMacが必要だったり、
あるいはiPad自体が高かったりというような部分で
Androidよりは敷居が高くはなりますが、
逆にそこに目をつむればAndroidの短所が見えてきます。
つまり、OSはドラスティックに気まぐれにしょっちゅう仕様変更が発生し、
端末もメーカーの都合や気分でサイズなどがコロコロ変わり、
保守や調達の面でめんどくさいことになります。

スティーブ・ジョブスがiPadに対しそこまで考えていたとは思えませんが、
どうやらiPadは一般人が考える以上に世界を変えているようです。

2014年10月6日月曜日

F1 2014 日本GPでの事故

これまでF1での死亡事故F1の安全性がひどいの記事をはじめとして、
何度かF1の安全性について書いてきましたが、
2014年10月5日に行われた日本GP決勝にて大きな事故が発生してしまいました。
今回の事故については以前から私が懸念していた
イエローフラッグ中に同じ場所で事故が起きてしまう事象に近く、非常に残念です。

当日私はLive TimingをPCで見つつ、
CSのフジテレビNextの生中継を観戦していました。
レース終盤、雨が激しくなりザウバーのスーティルがコースアウトしました。
イエローフラッグが振られるもののレースは続行。
3分後にセーフティーカーとメディカルカーが出て、その6分半後にレッドフラッグでレース中段、
さらに3分半後にはそのままレース終了が発表されました。
スーティルの事故がひどいことが原因かとも思ったのですが、
Live TimingのCOMMENTARYではスーティルは無事でレッドフラッグの原因は別とのこと。
テレビの解説ではどうもマルシアのビアンキの事故らしいとのことで、
事故現場の映像は全くないもののマルシアのピットの様子がやけに放送され、
表彰台に上った3人がビアンキに対する心配の言葉を発するなど、
ビアンキに何かあったことは確定的となりました。
表彰式の最中にはメディカルヘリコプターが飛び立ったとのレポートが入りましたし。
ただこの時点で事情を把握しているのはごく一部の関係者のみの様で
はっきりしたことが分かりません。

Live TimingのCOMMENTARYでは
今後はf1.comのトップページを見るようにと指示して更新を完了したので、
そちらとソーシャルメディアで情報収集することに。
YouTubeでFIAの説明を聞くと、
ビアンキはヘリコプターではなく救急車で運ばれたことが分かりました。
しかしヘリコプターを使わなかった理由は天候とのこと。
レギュレーションではヘリコプターが飛べない場合にはレースできないことになってるはずで、
昨年のアメリカGPのフリー走行で飛べる天候に回復するまで走行を止めた記憶があり、矛盾しています。
このことは後に訂正されたようで、ビアンキはパトカー先導の救急車で、
事故に巻き込まれたマーシャルがヘリコプターで搬送されたようです。
状況はよく分からないものの、Twitterによるとマーシャルは大丈夫らしいです。
事故当時かなりの混乱状態だったことが伺えます。

またYouTubeでレース後のスーティルのインタビューを見つけ聞いてみると
彼がコースアウトした一周後に同じところでビアンキがコースアウトしぶつかった事が分かり、
それがターン7だったことがf1.comのニュースから判明。
ターン7はf1.comのコース図によればダンロップコーナーです。
この週末、フリー走行や予選を通じて、ここでコースアウトした車って記憶にありません。

Twitterを見ていると観客席から撮影したと思われる壊れたビアンキのマシンの写真がいくつか出てきて、
ドライバーの頭部後方にあるはずのインダクションポッドがもぎ取られています。
その後事故直後の写真が掲載され、
ドライバーの頭部への衝撃が尋常でないことが推定されます。
そうしているうちにFIAの公式発表
ビアンキが脳へ深刻なダメージを受け外科手術していることははっきりしました。
ここには手術終了と自発呼吸していることについても触れられています。
とにかく今はビアンキの回復を願うばかりです。

しかしなぜこの様な事故になってしまったのでしょうか。
直前の計時情報ではビアンキはスーティルの約40秒後方を走っており、
スーティルがコースアウトした後ビアンキは一度はそこを無事通り抜けています。
ラップタイムは2分弱(直前にトップのハミルトンで1分51秒台)なので
次の周にコースアウトするまで約3分の時間があったことになります。
それだけあればマーシャルによってスーティルのマシンの撤去は始まり、
ダンロップコーナー辺りならブルドーザーのような重機が出てくることになります。
コース手前ではイエローフラッグが振られ、ドライバーはスピードを落とすよう促されます。
が、大雨で路面状況も視界も相当悪かったことは想像に難くなく、
ビアンキのマシンは車高の高い重機に潜り込むように突っ込んだのでしょう。
後ろ向きに当たったという情報もありますが、
高さから考えればドライバーは頭部にもろに衝撃を受けたということになります。

詳細は知らないのですが、昨年同じくマルシアのテストドライバーであるマリア・デ・ビロタの
テスト中の事故がやはり車高の高いトラックとの衝突だったと記憶しており、
これを教訓にできなかったことは非常に残念です。

安全性に関してはもう一つ触れておきたいことがあります。
この週末のフリー走行だったか、予選中だったか、
解説の今宮さんが、鈴鹿サーキットのマーシャルの優秀さを伝えるために、
コースオフの多いデグナー付近のマーシャルは走行しているマシンの様子を察知して
出動の準備をするというようなことを語っていて、ぞっとしました。
それはつまり安全が確保される前にフライングするということでしょう。
運営サイドにはドライバーはもちろん、マーシャルの安全確保にも気を配ってもらいたいものです。