2013年10月31日木曜日

Accessの共有モードと排他モード

Microsoft Accessではデータベースファイル(*.mdb)を
一人で使っているときには気にする必要ないのですが、
メニューの[ファイル]-[開く]で表示されるファイルダイアログで
[開く]ボタンの右にある下向き三角をクリックするとその開き方に
[開く]、[読み取り専用として開く]、[排他モードで開く]、
[排他および読み取り専用で開く]の4つのオプションがあり、
ネットワークドライブに置いて多人数で共有していたりすると重宝します。
読み取り専用として開けば事故でなにか編集してしまうことがなく安心ですし、
排他モードで開けば他のユーザが開けなくなるのでクリティカルな作業でも安全です。
ちなみに普通に開けば共有モードということになります。

ところでネットワークドライブ上のmbdファイルを誰かが共有モードで開いている状態でも、
それをダブルクリックしてもファイルを開けません。
まあAccessをいったん立ち上げてから[ファイル]-[開く]メニューで開くのは可能なのですが、
これって何とかなんないんですかね?
って、もしかして開けないのは私だけとか?

2013年10月30日水曜日

Android NDKではまった

AndroidでネイティブライブラリをビルドするためにWindows上でNDKを使ったときの話です。
あらかじめcygwinは入れてあるので、
NDKのダウンロードサイトから"android-ndk-r*-windows-x86*.zip"をダウンロードして
"C:\Program Files\Android"フォルダに展開し、
NDKのフォルダ("ndk-build"コマンドがあるフォルダ)にPathをとおして
ネイティブライブラリのあるフォルダ上で
$ ndk-build
を実行してみました。結果は以下のとおりです。
dirname: extra operand `Files/Android/android-ndk-r9/ndk-build'
Try `dirname --help' for more information.
ERROR: You are using a non-Cygwin compatible Make program.
Currently using: C:/usr/cygwin/bin/make

To solve the issue, follow these steps:

1. Ensure that the Cygwin 'make' package is installed.
   NOTE: You will need GNU Make 3.81 or later!

2. Define the GNUMAKE environment variable to point to it, as in:

     export GNUMAKE=/usr/bin/make

3. Call 'ndk-build' again.
cygwinのmakeについては以前痛い目にあっているのでバージョンに関しては敏感になっているのですが、 一応
$ make --version
でバージョンが3.81なことを確認し、
$ which make
で"make"が"/usr/bin/"ディレクトリにあることを確認した上で
$ export GNUMAKE=/usr/bin/make
$ ndk-build
としてみましたが結果は同じです。
で、いろいろ調べたところNDKを"C:\Program Files\Android"に置いたこと自体に
問題があることがわかりました。
フルパスに空白が含まれているのがまずいのです。
って、さっきのエラーの一行目から一瞬にして気付くことはできたはずなのですが。

よくわからないソフトウェアを扱うときって、
最終的にソースやMakefileを読み込むところまで覚悟して始めたりするものですが、
実績のあるものが動かなかったときって結構パニックになります。

2013年10月29日火曜日

第三種電気主任技術者試験に合格

2ヶ月ほど前に受験した第三種電気主任技術者試験の合格通知が届きました。
まあ過去問やったり本番試験受けた時点でいけたんじゃないかと思っていたので、
驚きはなく、むしろまあそうだろうなという感じです。
申請のためにいま少しの手間と出費と時間が必要ですが、
来年早々には免状が届くでしょう。

実務経験がない以上、合格したからといって何ができると言うこともなく、
これをもって転職しようなどとは思わないのですが、
人間何が幸いするかわかりませんし、
試験勉強を通していろいろ思い出したのと、新しい知識を得られたのはためになりました。

さて、こうなると来年は二種を受けるかということになるのですが、
試験場所の関係で三種以上にお金がかかりそうで、さてどうするか。
あるいはこれで筆記試験が免除になる第一・二種電気工事士なる選択肢もあります。
まあ実務経験のない私にとって技能試験のハードルが越えられるかは大きな問題ですが。

ところで合格通知に"日本電気技術者協会"への入会を勧める広告が入っていましたが、
これって別に入会しなくてもかまわないんですよね?

2013年10月28日月曜日

OS X Mavericks のインストールDVD

つい最近OS X Mountain Lion のインストールDVDを作成したところですが、
次バージョンのOS X Mavericksが予想通り発表され、
しかも想定外に無料ということで早速アップデートしてみました。
先日Windows 8 から 8.1 へのアップデートでひどい目にあった身としてはノートラブルでいけることを祈るのみです。
ついでにMavericksのインストールDVDを作ってみました。
って、こっちがメインのトピックだったりします。

[App Store]の[アップデート]からOS X Mavericksの[無料アップグレード]をクリックすると
ダウンロード後にインストーラが立ち上がりますが、とりあえずこちらはほうっておきます。
同時に[アプリケーション]フォルダに[OS X Mavericks インストール]が現れるので、
コンテキストメニューの[パッケージの内容を表示]で中身を見ます。
"Contents/SharedSupport/InstallESD.dmg"ファイルがあるので
コンテキストメニューで["InstallESD.dmg"をコピー]を実行し、
[Finder]の適当なディレクトリで[編集]-[項目をペースト]メニューを実行して
"InstallESD.dmg"を保管して置きます。私は[ダウンロード]ディレクトリに置きました。
この"InstallESD.dmg"をMountain Lion のときのようにDVD-R DLに焼いてDVDブートしてみました。
が、ブートできません。
書き込みに失敗したことも考えもう一枚焼いてみましたがやはりだめです。
ああ、貴重なDVD-R DLが2枚も無駄に…

Mavericksの"InstallESD.dmg"の中身を見るとMountain Lionのものとは趣が違います。
きっとAppleの嫌がらせです。
で、その中をのぞくと隠し属性で"BaseSystem.dmg"があるのが気になります。
そこで、"BaseSystem.dmg"をDVD-Rに焼いてみることにしました。
今度は容量が小さいのでたっぷりある一層DVD-Rで事足ります。
作業内容はFinderで"InstallESD.dmg"をダブルクリックしてマウントした上で
以下を実行しました。
$ cd /Volumes/OS\ X\ Install\ ESD/
$ cp BaseSystem.dmg ~/Downloads/
$ cd ~/Downloads/
$ ls -l@ BaseSystem.dmg
$ xattr -d com.apple.FinderInfo BaseSystem.dmg
$ xattr -d com.apple.diskimages.recentcksum BaseSystem.dmg
これで[ダウンロード]ディレクトリに"BaseSystem.dmg"が現れます。
これをいつもどおり[ディスクユーティリティ]アプリケーションで[ディスクを作成]してDVDを作成します。
ちなみにMavericksとMountain Lionの"BaseSystem.dmg"は内容がそっくりです。
で、"BaseSystem.dmg"のDVDでブートすると見事立ち上がり、
Mavericksのインストーラが動き出しました。
ためしに以前やったように適切なパーティション構成に設定した外付けUSB接続HDD
インストールしてみたところ無事セットアップできました。
ただし、インターネット経由で大量のファイルをダウンロードしているらしく、十数時間かかりました。
これで"BaseSystem.dmg"がMavericksのインストーラが入った
ブータブルDVDイメージであることが確認できました。
状況から考えてこのDVDに"InstallESD.dmg"内のPakagesディレクトリを埋め込んでやれば、
インターネットレスでインストールできそうです。

ということでスタンドアロン版インストールDVDを作ることにしました。
以下に私が成功した手順を紹介します。
まず"InstallESD.dmg"をマウントした状態で以下を実行します。
$ cd /Volumes/OS\ X\ Install\ ESD/
$ hdiutil convert -format UDSP -o ~/Downloads/mavericks BaseSystem.dmg
$ hdiutil resize -size 7g ~/Downloads/mavericks.sparseimage
[ダウンロード]フォルダの"mavericks.sparseimage"をマウント(Finderからダブルクリック)し、
これの"System/Installation"ディレクトリに
"InstallESD.dmg"のPackagesディレクトリを丸ごとコピーします。
そこにはもともとPackagesエイリアスがありますが、これは削除してかまいません。
その後以下を実行します。
$ hdiutil compact ~/Downloads/mavericks.sparseimage
$ hdiutil convert -format UDZO -o ~/Downloads/mavericks-installdvd.dmg ~/Downloads/mavericks.sparseimage
出来上がった"mavericks-installdvd.dmg"を
[ディスクユーティリティ]アプリケーションでDVDに焼けば完成です。
なお、このDVDでなら30分ほどでインストールできました。
これでいざというときの再インストールが楽になります。

最後にMavericksを使ってみた感想ですが…
早くなったような気がしないでもありませんが、気のせいのようにも思えます。
そもそも、Mavericksの利点では 省電力や効率的メモリ使用など、どちらかと言えば地味なものばかり紹介されています。
もちろん体感速度が上がるのはうれしいのですが、
そんなに重い処理をさせていない私には違いがわかり辛いですし、
MacBook ProのくせにほぼACアダプタにつながっているような環境ではあまり効果がありません。
今回無料でアップデートできるようにしたのは、
Microsoftへの単なる当てこすりかと思っていたのですが、
派手にアピールできる新機能がなかったというのも理由のひとつかもしれませんね。

2013年10月24日木曜日

Apple TV 新機種はなし

2013年10月22日、Appleが新製品を発表しました。
一ヶ月前のiPhone/iOSに続き、
今回はiPad、Macbook Pro/Mac Pro/OS Xについてです。
個人的には新Apple TVが出ないかと期待していたのですが
残念ながら触れられることもなかったようです。
2013年でみるとMacBook AiriMacも新機種が出ており、
これで今後も継続が見込まれて、かつ音沙汰がないのは
iPod touch/nanoMac miniApple TVとなります。
この面子では今年中にまた何か発表があるのは期待薄です。
サービス含めてApple TVを戦略的にどうにかしてくる可能性はあるでしょうが、
もう今年は何もないでしょう。
現行Apple TV買おうかな。

2013年10月23日水曜日

Windows 8.1

Windows 8が登場してから約1年、
その後継たるWindows 8.1が発売されました。
今回はWindows95の頃から提供されていたアップグレードパッケージが廃止になりました。
とはいってもWindows8からのバージョンアップは無償なので、
アップグレードパッケージの存在に大した意味はありません。

さて、私はWindows 8を2つのPCに入れていますが、
半年前にMacBook Proを購入してからは
電源を入れた記憶がありません。
ということで、どうせ何か不具合が出ても影響はないでしょうし、
無料なのでとりあえず1台アップデートしてみることにしました。

8.1へのアップデートはWindows8のWindowsストアから行うと聞いていたので、
8のModern UIから[ストア]を立ち上げるのですが、それらしい項目は見当たりません。
検索しても出てきません。
調べてみると[Windows Update]でOSをアップデートしておく必要があることを知りました。
で、悩んだのが[Windows Update]の方法です。
Windows7まではスタートメニューにあったのですが、8ではどこにあるのかわかりません。
正解は[コントロールパネル]内でしたが、ほんとわかりにくい。
で、インストールしてから1年アップデートをかけていなかったもので、
500MBくらいを落とす必要があり、大いに時間を食いました。

その後[ストア]を覘くと一番最初にでかでかと[Windowsのアップデート]の文字が鎮座しています。
[無料でWindows8.1に更新]、さらに[ダウンロード]をクリックすることでダウンロードが始まります。
32ビット版でファイルサイズが2.6GBということでADSLで数時間かかりました。気長に待ちましょう。
完了後リブートしてインストール作業に移るのですが、
無線LAN(USB接続タイプ)でネットワークに接続できません。
思い切って電源を強制断して再起動すると、
起動時にWindows8の修復作業が発生したのであせりましたが、
きちんと復元され以前と同様にWindows8が使えました。
その状態ではもちろん無線LANは問題なく使えます。
どうも8.1の無線LAN(ドライバ?)に問題があるようなので、
やむを得ず有線LANで接続しなおして再チャレンジです。

改めてWindos8の[ストア]からアップデートしようとすると、
すでにダウンロードしたファイルを再利用しているようで、また数時間待つのは避けられました。
その後インストールは進んでいったのですが、前回問題があった無線LANが今度は使えます。
その代わりキーボードから文字が打てません。
さっきまでBIOSで使えていた Microsoft Wireless MultiMedia Keyboard 1.1 が
8.1のログイン画面では認識されなくなってしまいます。USBに問題でもあるのか?
しょうがないので別の安物USBキーボードを挿すとちゃんと使えます。なぜ?

さて、8.1の使い心地を確かめるべくログインしてデスクトップを確認すると
アップデート前にデスクトップに置いていたプライベートなファイルはそのままになっています。
予定通りです。
画面左下にスタートボタンが復活していますが、クリックするとModern UIに飛んで鬱陶しいこと。
まあ右クリックするとメニューが出てきて、それについては使い物になるので許せはします。
しかしWindows7までのフル機能スタートボタンはやはりほしく、
Classic Shellを入れることにしました。
というかアップデート前から入れてたのですが、調子が非常に悪いのです。
だいぶ古いバージョンを入れたままにしていて8.1にアップデートしたため、
Classic Shellが8.1に対応してないようで、
最新の4.0.2を入れようといたのですがインストーラーが止まったままになってしまいます。
ではコントロールパネルから古いバージョンをいったんアンインストール使用とするも
これもできません。いきなり詰んだっぽいです。

そんなこんなでだんだんめんどくさくなってきて、
8の新規インストール直後に8.1をインストールしてみて、
それでもだめなら8のまま使おうかと思いはじめています。
ここで紹介されてる8と8.1の差の中に心に刺さるものもありませんし、
いろいろAPIが増えたと言われるModern UIもほぼ使ってませんし。
ちなみに本家MicrosoftのWindows8.1の紹介ページでの比較対照が
XPになっているのを恣意的に感じるのは私だけでしょうか。

2013年10月22日火曜日

MacとVirtualBox

メインマシンをMacBook Proにしてから早半年。
Windowsがなくても特に困ることは起きていません。
もし起こってもWindows PCは別にあるのでその点心配はしていません。
ただし、気の迷いで買ってしまったWindows用動画編集ソフトや年賀状印刷ソフト、
あるいはVisual Studioのような開発系ソフトをMacで動かしたいことも将来的にはあるかも知れず、
ということでMac上でWindowsを動かす仮想マシンソフトを入れておくことにしました。
幸いWindows8のライセンスがあまっていますし。
とはいえWindows8はいったんアクティベーションすると面倒なので、
まずはゲストOSとしてUbuntu 12.4をインストールしてみます。

Mac用の仮想マシンというとParallels Desktop 9やVMware Fusion 6の評判がいいようですが、
今のところ大して使う予定はないのでとりあえずフリーのVirtualBoxを試すことにしました。
グラフィックのパフォーマンスに難がありそうなものの、
3Dゲームを遊ぼうとは思っておらず、デスクトップ操作で我慢できる性能なら贅沢は言えません。

早速インストールしましたが、
VirtualBox自体はもちろん、ゲストOSのUbuntuも特に問題なく完了しました。
ちなみに、メモリは512MB、仮想HDDはVHD形式、ネットワークは無線LANとのブリッジです。
デスクトップの使い心地はというと、グラフィック性能のせいなのかお世辞にも快適とはいえませんが、
我慢できるレベルではあります。ネットブックでWindows8を使っているのと感覚的には変わらないかなと。
まあsshでMacからログインして使う分には速度は気になりません。

あとテストでWindowsXPをちょこっと入れてみましたが、
SP3あてただけの状態でメモリ256MB割り当てて快適に動いています。
いまさらXPというのもなんですが、いざとなれば使えそうなことは確認できました。

MacにはBootCampというマルチブート機能もあり、
ネイティブでWindows8を動作させることも可能ですが、
OSの切り替えが面倒なのであまりやりたくはありません。
OS Xがハイパーバイザーを持つようになるとその辺良くなるかもしれませんが、
はたしてそんな日は来るのでしょうか。

2013年10月21日月曜日

情報セキュリティスペシャリスト試験を受けてきた

国家資格ではありますが免許がもらえるわけではないので、実効性はないに等しいものの、
もはや半年毎の年中行事と化している情報処理技術者試験を受けてきました。
もう興味のある分野もないので今回は情報セキュリティスペシャリスト試験にしました。
高度試験の中ではもっとも簡単らしく、
参考書を一冊読んでみたところでは確かにそうかなと。
ただプロジェクトマネージャやITストラテジストのような抽象的な分野よりも、
よほど実践的でためになり、何より面白いですね。

今回は準備期間がほぼ一ヶ月しかなかったので、
先に紹介した参考書の読破しただけです。
一読して過去問(1回分)を解いてみたところ、
多分合格できるだろうということで試験に臨みました。
午前Iは免除だったので午前IIから受けたのですが、
そのしょっぱなからRLO(Right-to-Left Override)という
初めて聞く言葉が出てきてあせりはしたものの、
まああとは午後IIまで何とかこなし、合格ラインの6割は取れてる手ごたえは十分あります。
論述試験がないためそのあたり読みやすいですね。

ちなみにRLOはUnicodeで右から左に文字を書く言語に対応するための制御文字だそうです。
Windowsでファイル名の編集中にコンテキストメニューの[Unicode制御文字の挿入]から入力可能です。
そんなのあるんですね。またひとつ賢くなりました。

2013年10月17日木曜日

OS X Mountain Lion のインストールDVD

いよいよOS X Mavericksの登場が近づいてきました。
個人的にはまだ猫科の動物いるじゃないかと思っていたり、
最終的にはKitty(子猫)とかMike(三毛)とかなったら面白いのにと
薄く期待していたのですが、今後は地名ってマイクロソフトじゃないんだから。

さて、私が半年前に購入したMacBook Proには
Mountain Lionがプリインストールされていました。
Mavericksが出たからといってすぐにアップデートする気もないのですが、
何かの拍子にOSを再インストールする必要に迫られる事態を想定し、
今のうちにMountain LionのインストールDVDを作っておくことにしました。
Mountain LionはUSBメモリSDカードでインストールメモリも作成可能ですが、
私のMacBook ProはDVDドライブ内蔵で、どう考えてもDVD-Rのほうが安いので。
ただし、容量的に2層ディスクが必要です。DVD-R DLですね。

では早速作業にかかります。
とにかく"InstallESD.dmg"ファイルをゲットする必要があり、
Mac App StoreからMountain Lionをダウンロードして
[アプリケーション]フォルダの[OS X Mountain Lion インストール]から
"Contents/SharedSupport/InstallESD.dmg"ファイルを抜き出すのが簡単なようなのですが、
プリインストールのマシンを買っている場合、ここでのダウンロードにはお金がかかってしまいます。
そこで別の手を使います。

最初に中身が消えてもかまわないUSB接続のHDDを用意し、Macにつなぎます。
[Finder]の[アプリケーション]-[ユーティリティ]から
[ディスクユーティリティ]アプリケーションを開き、
そのHDDのすべてのパーティションをコンテキストメニューから[マウント解除]します。
続いてそのHDDを選択して[パーティション]タブで
[パーティションのレイアウト]を"1パーティション"にして
[オプション]で"GUIDパーティションテーブル"を選択し、
[パーティション情報]の[フォーマット]を"Mac OS 拡張 (ジャーナリング)"にして
[適用]をクリックします。

そしてプリインストールされたMountain Lionで以下を実行します。
$ sudo su -
# cd /tmp
# mkdir 1
# mount -t hfs /dev/disk0s3 1
# exit
$ cd ~/Downloads/
$ cp /tmp/1/com.apple.recovery.boot/BaseSystem.dmg ./
$ ls -l@ BaseSystem.dmg
$ xattr -d com.apple.FinderInfo BaseSystem.dmg
$ xattr -d com.apple.diskimages.recentcksum BaseSystem.dmg
これで[ダウンロード]フォルダに"BaseSystem.dmg"が現れるのでこれをダブルクリックし、
マウントされたボリューム内の[Mac OS X Mountain Lion インストール.app]を実行します。
進めていくとインストール先を選ぶ項目になるので、[すべてのディスクを表示]をクリックし、
USB接続のHDDを選択してそのままインストールしてしまいます。
ただし、完了して再起動する前にUSB接続のHDDから"InstallESD.dmg"を
内蔵HDDのどこかにコピーして保管しておきます。
"InstallESD.dmg"のコンテキストメニューから[このアプリケーションで開く]-[ディスクユーティリティ]で
[ディスクユーティリティ]を開き、[ディスクを作成]でDVD-R DLに焼けば完了です。
このDVDを入れて再起動時に[C]キーを押し、DVDブートできるか確認しておきましょう。
かなり時間がかかるので焦って電源を切ったりしないように。

ちなみに、USBメモリやSDカードでインストールメディアを作成する場合は、
先の作業用HDDにしたのと同様にメディアをつくり、
マウントした"InstallESD.dmg"を[ディスクユーティリティ]で
そのメディアに対し[復元]すればいいみたいです。

2013年10月16日水曜日

Accessのフォームで高度な検索

以前Microsoft Accessフォームで単純検索する方法をご紹介しましたが、
今度は高度な検索について書いておきます。

フォームを開いてテキストボックス等のコントロールのないところを右クリックすると
コンテキストメニューが表示されるので[フォーム フィルタ]をクリックします。
するとそのフォームにそっくりだけど項目が空の[フォーム フィルタ]が開くので、
その各項目で条件を選択/入力し、
もう一度コンテキストメニューを開いて[フィルタ/並べ替えの実行]をクリックすると、
フィルタがかかって条件に合うレコードのみが表示できます。
なお、[フォーム フィルタ]には[または]タブが複数枚表示可能で、
これにより同一項目へのor条件も設定できます。

2013年10月15日火曜日

ネットワーク越しのadb

Androidスマートフォン/タブレットについているUSB端子をPCと接続することで
adbが利用可能になりますが、
有線なUSBよりネットワーク(無線LAN)越しに接続した方が便利な場面は多々あります。
Androidの比較的新しいバージョンではUSBホスト機能を実装しているため、
そちらでふさがってしまうこともありますし。

さて、ネットワーク越しで接続する前に普通にUSBでadb接続して
$ adb shell ifconfig wlan0
を実行し、端末のIPアドレスをメモしておきます
(無線LANインターフェイス名が"wlan0"であると仮定)。
もちろん他の方法でIPアドレスがわかるならadbを使う必要はありません。
さらに
$ adb tcpip 5037
を実行します。
5037はTCPのポート番号なので空いていればなんでもいいのですが、
とりあえずデフォルトと同じにしておきます。
これで端末側の準備は完了です。
なお、
$ adb usb
を実行することでUSB接続にもどります。

今度はPC(ホスト)側で
$ adb connect <端末のIPアドレス>:5037
を実行することで接続先がネットワーク越しに設定されます。
この状態で
$ adb logcat
$ adb shell
をするとネットワークで接続した端末へコマンドを発行できます。

ちなみにこの方法はすべてのAndroid端末で可能とは限りませんので、
だめなら素直にあきらめましょう。

2013年10月14日月曜日

SSLのサーバ証明書の更新とCRL

私は複数の独自ドメインを所有し、さらにそれらの複数のサブドメインをウェブサーバで運用しております。
そのうちのいくつかについてはきちんとSSLさせるために正式な証明書を導入しております。
その方法については以前紹介しておりますのでこちらを参照ください。

さて、いくつかの証明書のうちのいくつかが期限切れになったのに気づいたので更新することにしました。
というか気づいてからも更新が面倒なのでかなり長い期間放置していました。
期限切れからだと、かれこれ2年経っていたりします。
なおこれはよくない見本なので皆さんは真似しないように。

私の利用している証明書の有効期間は認証局の制限で1年間しか選択できず、
しかも各証明書はその場の思いつきで作成したりしているので期限はばらばらです。
今後ばらばらと期限切れを起こしてその都度更新していくのも面倒なので、
この際全部の証明書を一度に再作成して来年以降は年中行事の一つにしてしまおうと決心しました。
如何にもものぐさな私が考えそうなことです。

ということでStartSSLにログインして、
まだ期限が切れていない証明書を持つサブドメインについて
証明書を作成しようとしたのですがエラーとなりました。
未だ有効な証明書はいったん失効させる必要があるということです。
そこではたと気づきました。CRLです。

CRLは日本語では"証明書失効リスト"と訳されます。
発行された証明書は有効期限が設定されているので、ほうっておけば自動的に失効しますが、
フィッシング等の犯罪目的で用いられてしまう可能性もあり、
期限が切れるまで待つというような悠長なことは言っていられず、
被害を最小限にとどめるためにすぐに証明書を失効させる必要に迫られるケースがあります。
そんなとき用いるのが先のCRLです。
発行元は発行した期限切れ前の証明書についての情報を保持していて、
必要ならCRLに登録して公知させる責任があります。
CRLについては知識はあっても意識はしていませんでした。不覚です。

で、StartSSLでのCRLへの登録方法ですが、
ログインの上[Control Panel]を開き、[Tool Box]の[Revocation Request]から可能なようです。
可能なようと言ったのは私は実行してないからです。
なぜって、有料だったから。
まあいろんな意味で面倒な作業なのでしょうがないですね。

ということで年中行事化はあきらめることにしました。
しょうがないので各ドメインの有効期限と同じく
各証明書の有効期限もGoogleカレンダーに登録して忘れないようにすることにします。
というか、まずサブドメインとウェブサーバを整理することにします。

2013年10月10日木曜日

iMessageは混乱の元

私は髪を切りに行くときにはだいたい予約を取るのですが、
お店が忙しいときに電話するのは気が引けるのでメールですませています。
送信相手はiPhoneで以前は普通にやり取りできていたものの、
半年くらい前から返信に関して違和感がありました。
まあ滅多に連絡することはなく、基本私からの一方的なメールなので
それほど気にはしていなかったのですが、
このたび理由がわかりましたので参考になる方もあるかと思い以下でご紹介します。
なお、相手は同じような違和感を感じることはなく、ごく普通だったと思います。

iPhoneには[メッセージ]アプリケーションがあらかじめ入っていて、
その[メッセージ]には3つの送受信手段があります。
1つ目はSMSです。これは電話番号をあて先にして電話をかける代わりに
テキストメッセージを送るショートメッセージサービスで、auで言うところのCメールです。
以前は同じキャリアの携帯電話同士でしか送受信できませんでしたが、
現在はキャリアをまたいでの送信が可能です(国外キャリア含む)。
送信すると通話料がかかります(プランの条件より一部無料)。

2つ目はMMSです。ユーザから見ればなんのことはない普通のEメールのことです。
キャリアメールと言ったほうがとおりがいいかもしれません。
Eメールなんですけど[メール]アプリケーションではなく
[メッセージ]アプリケーションで扱うところがミソです。
送受信にはパケット料金(定額プランなら実質無料)がかかります。
考えてみると世の中のiPhoneのみを使っているようなユーザって
[メール]アプリケーションなんて使ったことがないのかもしれません。
Gmail(Googole Apps含む)しか使わず、
SIMカード抜いてiPhoneを使っているような私のような種族は
逆に[メッセージ]アプリケーションを開くことがないのですが、
そのあたりの私の先入観も今回のトラブルの元になります。
蛇足ですが、[メール]アプリケーションはGmailも送受信できます。
そういえばキャリアショップの店頭でiPhoneを購入したとき
新たGmailアカウントを作らされたような気がしますが、あれはどうなったんだろうか?

3つ目はiMessageです。これはApple製品同士でのみ使えるチャットソフトです。
特に何の変哲もなく、身の回りの情報機器がApple製のみならば便利でしょうが、
メール(MMS)と同一アプリケーションなため気が付かずに使っているケースはあるでしょう。
そして今回遭遇したトラブルの元凶はこの部分です。
[メッセージ]アプリケーションではSMS/MSSへの送信時にあて先や送信ボタンが"緑"になり、
iMessageならば"青"になります。
表面上はこれしか違いがないようです。

で、私が遭遇したトラブルは以下の流れになります。
  1. 大前提として、私のGmail(Google Apps)アカウントはApple IDとしても使っている。
  2. 小前提として、私のApple IDはiMessageのアカウントとしても使われている。
  3. 私のGmail(Google Apps)から相手のiPhoneのメール(MMS)へメールを送る。
  4. 相手がiPhoneの[メッセージ]アプリケーションを開いて私から送られたメールを見る。
  5. 相手がそのメールに対して返信メールを送ろうとする。
  6. [メッセージ]アプリケーションは送信先メールアドレスがiMessageで送信可能と判断。
  7. [メッセージ]アプリケーションは送信先を"緑"ではなく"青"で表示。
  8. 相手はいつもと違うと思いつつも気にせず送信し、メールではなくiMessageで送信される。
  9. 私のApple端末(Mac)にiMessageでメッセージが届く。
  10. そのメッセージの送り元は相手の電話番号になっている。
メールが返ってくると期待してるところにメッセージが届き、
さらに送り元が電話番号になっているので「なにこれ」とか思っていたのでありました。
で、その現象が始まった頃に思い当たることが…
そう、MacBook Proを買ったのです。
そしてあまり意識せず設定してしまっていたのですorz

これの解決方法ですが、Macの[メッセージ]アプリケーションから
メニューの[メッセージ]-[環境設定]を開き、
[アカウント]タブでiMessageアカウントを選んで、
[このアカウントを有効にする]のチェックを外してしまうか、
[着信に使用するメールアドレス/電話番号]の余計な項目のチェックを外すかすれば、
iMessageでの受信を禁止でき、結果iPhoneの[メッセージ]アプリケーションからでも
メール(MMS)で送信できるようになります。
iPad(iOS5)なら[設定]アプリケーションの[メッセージ]メニューから
AppleIDが表示されている[受信用宛先]をタップし、
[Apple ID: ????]をタップして[サインアウト]しておけばiMessageが使えなくなります。
または[別のメールを追加]で別のメールアドレスを登録しておいてから
AppleIDのメールアドレスをタップして削除してもいいでしょう。
iPhone(iOS6)なら[設定]アプリケーションの[メッセージ]メニューから
[送受信]をタップしたところから設定できます。
ちなみにここで[iMessageにApple IDを使用]をタップすると私と同じ症状が味わえます。

ほかにも相手に別のメールアドレスを教えて連絡にはこちらを使うことでも回避できます。
まあそれを選択するのはどうかとは思いますが。
さらなる別解としては、相手のiPhone(iOS6)で[設定]アプリケーションの[メッセージ]メニューで
[iMessage]を"オフ"にしてもらうという裏技もあるにはあります。
これは相手にiMessageを使わなくしてもらうということですので頼むのは筋違いですし、
iPhoneユーザ皆にお願いして回らなければならず現実的ではありません。

ということでAppleには[メッセージ]アプリケーションの改善を望みます。
たしかに送信時に[MMS]と[iMessage]を選択させるのはAppleの美学からすれば無粋でしょうし、
詳しくないユーザに対しては混乱の元にはなるのでしょうが、現状はあまりに不親切です。
まあ私のような種族は自分で勝手に解決してあまり騒がないので、
Appleとしては気づいていないふりをしているのかもしれません。

2013年10月9日水曜日

Android 4.2.2でlinuxからadbがつながらない

以前Android2.3な端末をLinux(Ubuntu 10.04 x64)からadb接続することについて書きましたが、
Android 4.2.2とLinux(Ubuntu 12.04 x64)でトラブったので書き残しておきます。

基本的には前と同様なのですが、
インストールしたAndroid SDKはLinux用(r22 x64)です。
しかし、まったくつながりません。結構悩んだ挙句解決方法がわかりました。
2.3の頃は設定ファイル"/etc/udev/rules.d/imx-android.rules"の内容を
SUBSYSTEM=="usb", SYSFS{idVendor}=="<ベンダーID>", MODE="0666"
としていたのですが、4.2.2では
SUBSYSTEM=="usb", ATTR{idVendor}=="<ベンダーID>", MODE="0666", GROUP="plugdev"
にしないとだめなようです。

ちなみに、端末側でadb接続を許可する方法も変更されています。
[設定]アプリケーションの[タブレット情報]メニューを開き、[ビルド番号]の項目を7回タップして
[開発者向けオプション]メニューを開放し、
そこの[USBデバッグ]を有効にしなければなりません。
また、PCからadb接続したときに端末側にダイアログボックスでその旨表示されるので、
そこで許可してやる必要があります。
許可する際に[このパソコンからのUSBデバッグを常に許可する]をチェックしていたらなら、
以降は自動的に許可されるようです。

セキュリティの名の下にいろいろなことがどんどん面倒になる方向に動いています。
窮屈な世の中になりました。
インターネット黎明期の自由さを懐かし感じます。

2013年10月8日火曜日

MacのHomebrew

Mac(Mountain Lion)でwgetするのにMacPortsを入れた話をしましたが、
実はMacPortsのほかにもHomebrewという選択肢があることを知りました。
せっかくなので使ってみることにしました。

MacPortsではX11が必要でしたが、HomebrewにはJavaが必要なようですが、
私の場合、SafariでF1.comのlive timingにアクセスしたときに入れさせられているので問題ありません。
またXcodeやCommand Line ToolsもMacportsのために入れているので準備は完了です。
なお、RubyとGitも必要なようですがすでに入っていました。
ということでHomebrewのサイトにあるように
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
を実行すればいいだけです。
途中パスワードを要求されましたが、特に問題なくインストールできました。

で、ためしに"tree"コマンドを
$ brew install tree
でインストールすると使えるようになりました。

MacPortsとHomebrewの両方入れても特にうれしいことはなく、
かえっておかしなことになる可能性もあるかもしれませんが、
まあそのときはそのときでまた考えることにします。

2013年10月7日月曜日

WiiUワイヤレスマイク

WiiUカラオケ用のWiiUワイヤレスマイクが発売されました。
WiiUマイクもケーブルが非常に長いので取り回しに困ることはないのですが、
逆に長すぎてうっとうしかったりします。
ワイヤレスならその微妙さが排除できます。

さて、このWiiUワイヤレスマイク、Bluetoothなのかと思ったらそうじゃなく、
マイク(送信機)とUSBドングル(受信機)から構成されていて、
WiiUマイクの途中のケーブルが無線化されただけでした。
ということで、以前実験したマイクの制約条件は無線になってもそのまま当てはまり、
同時に使えるのはマイク2本と推察されます。

ところでWiiUワイヤレスマイクの無線部分はDECTになっているようです。
そのあたりの動向を探ってみると最近はDECTの
ワイヤレスヘッドセットなんかも販売されており、ちょっとびっくりです。
DECTというとデジタルコードレス電話機の技術として知られ、
日本では周波数帯の解決で2,3年前からようやく使えるようになったと記憶しています。
電話以外の応用について個人的にあまり考えたこともなかったのですが、
これをワイヤレスマイクに転用するというのは理にかなっていますね。
正直コードレス電話も無線LANでいいじゃんとかずっと思っていたのですが、
無線LAN全盛のこのご時世にこそ、電波的に空いてて混線に強いDECTって結構いいかも。
Bluetoothに比べると距離がかせげますし、使える場面は多いような気がしてきました。

2013年10月3日木曜日

クラブニンテンドーが2014年度へ

今年もクラブニンテンドーの新年度が始まりました。
昨年度はWiiUのロンチに伴い、
本体同時発売のNewスーパーマリオブラザーズUNintendo Landを発売日に購入したので、
早期にプラチナ会員まで上り詰めましたし、
Nintendo3DSやWiiUのゲームの体験版のアンケートだけでも
びっくりするくらいのポイントを稼ぎました。
で、その後購入したゲームは登録せずに勝手キャリーオーバーして新年度分としました。
以前も同じようにしてそれが功を奏しちょっとマリオな3DSをもらいましたが、
今回もちょっとラッキーなことが起きました。
来年1月中旬までに3DSのゲームを2つ登録することで、古めのゲーム14本から1本、
ダウンロード版がもらえるキャンペーンが始まったのです。
が、そのもらえる14本のラインナップを見ると、半分はすでに十分遊んだもので、
あとの半分もめんどくさそうなゲームが多くて手を出すのに躊躇します。
ある意味逆アンバサダー的なキャンペーンでちょっと萎えます。
アンバサダーの称号を持つユーザには特別待遇があってもいいんじゃないでしょうか?

ちなみに、今年度はパッケージ版ゲームについては早期購入ポイント等がつかなければ登録は保留し、
ダウンロード版と体験版のアンケート、売却するゲーム、それに登録期限が迫るゲームでポイントを稼いで、
年度末の9月半ば時点でプラチナ会員に届かない分を保留分で埋め、
あとは次年度にキャリーオーバーすることにします。
9月半ばなら今回のようなキャンペーンでも救われる可能性がありますしね。

2013年10月2日水曜日

WiiU 4.0.0J

WiiUのファームウェアが3.1.0Jから4.0.0Jにアップデートされました。
詳しいことは任天堂の関連ページをご覧ください。
とりあえず機能アップした部分を体験してみることにします。

Wii専用ソフトの映像をWiiU GamePadのLCDに表示できるようになりました。
というよりもWiiU内のWiiモードがまるごと対応しているといったほうがよく、
WiiメニューやWiiのバーチャルコンソールのゲームにも対応しています。
画面が相応に小さくなるのは仕方ありませんが、もともとWiiの解像度は720×480で、
それを800×480なWiiU GamePadに映しているわけで、特に不都合は感じません。
というか解像度の低いファミコンのバーチャルコンソールなんかはむしろしっくりきます。
WiiU GamePadへの出力はWiiモード起動時にWiiリモコンによって選択するのですが、
この選択画面がテレビ側にしか表示されないためそのときだけはテレビが必要という、
よくわからない仕様になっています。
まあWiiU GamePadにのみ出力する選択肢はないので、
WiiU GamePadでの超絶プレーをギャラリーに見せるための機能と理解すればわからなくはないものの、
WiiUの起動時からの流れを考えると、ここだけテレビレスならないのは納得いくものではありません。
早急な改善を望みます。
ちなみに当然映像だけでなく音声もWiiU GamePadから出力され、ヘッドフォンも利用可能です。
技術的に理解はできるが何とかしてほしいのはWiiU GamePadで操作できないという点です。
次のアップデートでWiiメニューがWiiU GamePadのタッチで操作可能になり、
Wiiリモコン横持ちゲームがWiiU GamePadのボタンで遊べるようになると信じておきましょう。
関連して今回わかったのが、WiiU GamePadのLCDの上にある黒い横長の部分の両端には、
センサーバーが埋め込まれているということです。
ピクミン3をWiiU GamePadで遊んだときに有効でなかったのは確認していますが、
ついに発動したというところでしょう。
ただ、テレビの上においているセンサーバーとWiiU GamePadの両方が
Wiiリモコンから検知可能な状況ではまともに操作ができないので、
そこはユーザが工夫する必要があります。
できればテレビ上のセンサーバーを無効にするオプションも加えてほしいですね。

体験版やおすすめのソフトを"いつの間に通信"で自動的にダウンロードできるようになったのですが、
ただでさえ少ない内蔵ストレージの無駄遣いになるので、
USB外付けHDDをつけてない方はOFFにしておきましょう。
ちなみにHDDをつないでこの機能をONにすると、
HDDに十分に空き容量がある旨知らせてくれます。

USBキーボードが利用可能になりました。
なんと電源入れた直後のログイン画面でも使えます。
ただしユーザ選択のためタッチが必要なのでそんなに意味はありません。
まあウェブブラウザのテキスト入力やテキストチャット用でしょうから大目にみるとしても、
どうせならBluetoothキーボードにも対応してほしいですね。
ポケモンタイピングDSのが眠っているので。

映像をHDMIで出力しながら、
音声のみをD端子AVケーブルなどからアナログで出せるようになりました。
これは[設定]-[テレビ]メニュー内で設定できるのですが、
入り口が裏技かと思うほど非常にわかりにくいです。
WiiU GamePadの画面右上を見ながらいろいろ移動してみましょう。
ところでこの機能、一般的なサラウンドシステムなら光デジタル音声出力対応HDMIセレクタみたいな製品をかませて5.1chで入力した方がいいような気がしますし、
今更どうかとも思うのですが、もしかするとHDMIにゲームの音声を出力し、
それとは別にアナログで指定した音楽を流すような
ジュークボックス的進化のための布石かもしれません。
考えすぎでしょうね、多分。

相変わらず使ったことがない(通話相手がいない)"Wii U Chat"は、
WiiU GamePadに接続したヘッドセットで通話できるようになったということで、
WiiU GamePadのヘッドフォン端子はマイク入力をサポートしたヘッドセット端子であることを知りました。
確かに穴を覗き込んでよーく見ると、
4極(ジャック先端の受けが2極構成のようにも見えるので、そういう意味では5極)のように見えます。
オフィシャルにはTRITTON クナイ ステレオヘッドセットが対応製品のようで、
その仕様からも4極ということが確認できます。
4極のステレオミニジャックで音声入力をサポートしている機器は、
その端子の使い方で互換性のない2種類の製品があると記憶していますので、
高価なものをあまり調査せず適当に調達するのは避けた方がよさそうです。
Bluetoothヘッドセットが使えるようになればベターですかね。

インターネットブラウザが結構更新されました。
YouTubeで動画再生中にWiiU GamePadのLボタンで10秒巻き戻し、Rボタンで15秒早送りができます。
またRボタンを押したままにしていると2倍速再生も行えます。
PCのブラウザのようにユーザー名とパスワードを保存してくれるようになりましたが、
それがWiiUへのログインアカウント毎に管理されているかはわかりません。
タッチパネルで文字入力するのは面倒なので便利なのは確かですが、
セキュリティには注意して運用すべきでしょう。
またゲーム中に[Home]ボタンで中断してブラウザから
http://i.nintendo.net(http://i.nintendo.net/wiiuへリダイレクト)にアクセスすると
そのときのゲーム画面がSNSにアップロードできるようになりました。
Nintendo3DSでは各ゲーム内の機能により撮影した画像をアップロードできますが、
WiiUでは各ゲームの対応は関係なくシステム状で実現されました。
ただアップロードできるのはメジャーなSNSだけで、
できれば自前サイトにもできるようになってほしいのですけど、
セキュリティを考えると望みは薄いですね。
それからPDFファイルを表示できるようになりました。
私にとってはそれほど重要ではありませんが、
最近は製品の取扱説明書をPDF形式でオンライン提供していることも多く、
これらがWiiUで見られるのは悪くはありません。
それこそあまり関係ないのですがユーザーエージェントの切り替えができるようになりました。
ただしWiiUとかNintendo3DSとかChromeとかが切り替えができるだけで
任意の文字列が設定できるわけではありません。
開発者向けということですが、それならむしろChrome向けに
WiiUなユーザーエージェントを発行するようなプラグインを作った方がいいような気がします。

最後に4.0.0Jで動作が高速化されたかどうかを確認してみましたが、
3.0.0Jからの改善はほとんど見られませんでした。
ちなみに3.0.0Jの実測値はこんなかんじです。

WiiUは少しずつ改善され、ゲームラインナップも良くなってきました。
よりゲーマー向けのゼルダの伝説 風のタクト HD
幅広い層を意識したスーパーマリオ 3Dワールド
人の集まるときに子供から高齢者まで遊べるWii Party UやWii Sports Club、
ちょっと毛色の違うWii Fit Uなど、
本体発売時にはなかった多様性が見られるようになりました。
Wiiの生産終了も明らかになった今、これから年末にかけて購入を検討されるのなら、
Wii U すぐに遊べるファミリープレミアムセット
Wii U すぐに遊べるファミリープレミアムセット+Wii Fit U(シロ)(バランスWiiボード非同梱)がお勧めです。
もし大容量のUSB外付けHDDが必要な使い方を考えるなら
安いWii U ベーシックセットと組み合わせるのがいいでしょう。

2013年10月1日火曜日

Accessのフォームで単純検索

Microsoft Accessで帳票形式のフォームを作ると下のほうにレコード移動用ナビゲータ(?)がついています。
1から始まって欠番のない連番数値なIDが主キーであるとして、
クエリで主キーの昇順に並べることで、
そのナビゲータのレコード番号と表示されているレコードのIDが一致するので
レコード移動に関して困ることはないでしょう。
しかしテーブルがそのような仕様であることはまれで、
そうなるとレコードの検索性が非常に悪くなってしまいます。
そんなときにはフォームに一意なフィールドの単純検索ができる
コンボボックスを作ってしまうと管理便利です。

やり方は、編集したいフォームを[フォーム]カテゴリで選び
[デザイン]ボタンから[フォーム デザイン]ウィンドウを立ち上げそこで行います。
[詳細]領域の直上にマウスポインタを合わせるとその領域を全体的に下にもっていけ、
それで[フォーム ヘッダー]領域が広がります。
[ツールボックス]から[コンボボックス]を選択し[フォーム ヘッダー]領域に置くと
[コンボボックス ウィザード]が開き、
[コンボボックスで選択した値に対応するレコードをフォームで検索する]を選択して、
さらに単純検索の対象となるテーブルのフィールドを選択すると、
実行時に検索窓として動作してくれます。

なお[コンボボックス ウィザード]で
[コンボボックスで選択した値に対応するレコードをフォームで検索する]
が選択肢としてない場合があります。
これはフォームに匿名状態でクエリを埋め込んでいるとそうなるようで、
名前をつけたクエリをレコードソースにすると解決できるるっぽいです。

すでに埋め込みクエリで使っている場合は、
[フォーム]の[プロパティ]ウィンドウを開いて
[データ]タブの[レコードソース]でクエリのデザインウィンドウを開き

[保存]アイコンをクリックすればクエリ名を指定して保存されます。
そのクエリは[クエリ]タブに新規作成されますし、
フォームのレコードソースはそれになります。