2013年12月21日土曜日

2.5" HDD ケース

I O DATAの2.5" HDD HDPC-UT1.0Sを分解してみました。
下の写真をクリックして拡大すると分かると思いますが、上下ケースを止めるために14カ所ものツメがあり、爪を立てて一つ一つ外すのはけっこう面倒です。しかも、下ケースもHDDの四つのビス穴に引っかけてピタリと止めていて、これも爪の場所が分かっていないと外しにくいです。
使用しているチップはJMS539でした。
http://www.jmicron.com/Product_JMS539.htm
よくぞ、ここまで小さくなったものです。

2013年12月18日水曜日

MoinMoin DesktopEditionの一括起動

MoinMoinはWikiとしてはよく利用されているようですが、個人が使うためのMoinMoin DesktopEditionはPythonのSimpleHTTPServerを起動して、Webブラウザを起動して、localhostの8080ポートにアクセスして、始めて利用できるようになります。

当然これは面倒なので以下のようなShell Scriptを使うことになります。
open /Users/Shared/Documents/Backup/DevelopBackup/tiddlyWiki_DB/moin-1.9.7/wikiserver.py
open http://localhost:8080/
ただ、これだとスクリプトが終了したウィンドウが一つ開いたままになります。Terminalの環境設定を変えるという方法もありますが、それをすると他のシェルを走らせるときに不便です。

そこで、Automator.appでShell Scriptを走らせるようにプログラムして、それをアプリケーション形式で保存してみました。これで、何かを思い付いたときにすぐに起動でき、必要なTerminalだけ開いた状態にできます…ただし、終わらせるのはSafariとTerminalで他のプログラムを走らせているかも知れないので、一つずつするしかなさそうです。

2013年12月17日火曜日

TiddlyWikiとMoinMoin

新しいTiddlyWikiがTiddlyWiki5として発表されていました。

TiddlyWikiはファイルを保存するためにJavaを使っていましたが、少し前からTiddlyFoxと言うFirefox用のアドオンで保存できるように変更されました。Safariでも保存はできますが、別ファイルとして保存するので面倒です。

さて、個人用のWikiとしてMoinMoin DesktopEditionも利用していますが、私にはTiddlyWikiのマークアップ言語の方が書きやすいです。

たとえば、メモを列挙する場合に、MoinMoinもCreoleも項目の列挙に手間がかかります。ともに単独の改行は無視されますし、項目には各項目の先頭にスペース+*が必要です。TiddlyWikiでは改行は見たままに評価されますし、項目は*一つで済みます。

また、TiddlyWikiのタグに当たる機能がMoinMoinもありますが、入力に手間がかかります。私の場合は、書いた記事に複数のタグ付けをすることで、分析に利用していますのでTiddlyWikiが簡単にタグ付けできる点はありがたいです。

書いた後の読みやすさもMoinMoinの初期設定は行間が空きすぎている感じがします。MoinMoinはさまざまなテーマが用意されて見やすく設定できるので、MoinMoinはまとまった長文を公開するためのものと考えています。

2013年11月15日金曜日

Finderのタグ

Mac OS XがMavericksになってFinderのタグ機能が改善されました。旧Mac OSからMac OS Xに移行するときに削除されて、また復活した曰く付きの機能です。この削除が理由でMac OS Xへの移行を見合わせた知人がいるほどです。

タグは便利なのですが動作が不安定な点が困りものです。今回もタグ付けされたファイルだけを見ようとするとファイル名が表示されない問題が出ました。問題のあるウィンドウを閉じて、新しくウィンドウを開くと正常にもどりましたが、いやなものです。

他に、タグ付けしたファイルを他のMac OS Xにコピーしたときにそのタグもコピーされます。これは自分のPC間でコピーするときには便利です。しかし、アプリケーションなどをインストールして、そのファイルにタグ付けがあると、Finderはそれも表示します。正直言って素人のようなミスですが、実話です(苦笑)

2013年10月26日土曜日

PebbleとMac OS XのWi-Fi

Pebbleの開発では、Wi-FiとiOSを経由してPebbleに試作したappをダウンロードします。しかし、日常的に使用しているWi-Fiルータを実験に使用するのは不安です。MacではWi-Fiのアドホック モードも利用できますし、屋外や出先でも開発できます。

設定は以下の通りです。
Mac OS X側で[Apple mark > システム環境設定 > ネットワーク]の画面左欄から[Wi-Fi]を選択し、右欄の[Wi-Fiを入にする]ボタンを押します。[ネットワーク名]ポップアップ メニューから[ネットワークを作成...]を選択します。表示された画面でネットワーク名(たとえばOPPANIHA)を指定し、必要に応じてセキュリティを[128 ビット WEP]などに設定します。[メニューバーに Wi-Fi の状況を表示]チェックボックスをONにすると、メニューバーのアイコンがiMacのような図に変わります。

なお、この時にMac OS XはIPアドレスを自動的に割り振ってくれているはずです。[状況]にIPアドレスが表示されていると思います。IPアドレスの変更は[詳細...]ボタンを押し、表示された画面の[TCP/IP]タブで、[IPv4 の構成]のポップアップ メニューから[手入力]を選択し[IPv4 アドレス]などを適時設定してください。

次に、Terminalを開いて、開発しているディレクトリに移動し、以下の命令でPythonのhttpサーバを起動します。
python -m SimpleHTTPServer 8000

iOS側で[設定 > Wi-Fi]の画面で[Wi-Fi]ボタンをONにし、[DEVICES]欄から先ほど設定したネットワーク名を(上記の例ではOPPANIHA)選択し、アラートボックスの[登録]ボタンを押して、パスワードを入力します。

iOSのSafariを起動してURL(上記の例では)に移動すれば、以下のような画面が現れます。
なお、Wi-Fiを設定した後に実際に接続可能になるまで時差があります。特に始めて設定した場合には、数分ほど余裕を見ることをお勧めします。また、スリープの設定などにも注意してください。

次に、URLの入力ですが、メモ.appにURLを入力し、[完了]ボタンを押せば、URLがアンカーポイントして機能します。URLをタッチするとSafariが起動し、目的のURLに移動します。メモ.appであればURLを確認しやすく、複数のappを開発しているときなどに便利です。
まぁ、多くのMacにはBluetoothがあるので、直接ダウンロードするのが正当とは思いますが(苦笑)

MacとPebble SDKの記事はPebbleのラベルで検索してください。

Pebble SDKのHelloWorld

さて、Pebble SDKの最後にHelloWorldです。
Build your first Pebble application
http://developer.getpebble.com/1/GettingStarted/HelloWorld/

今回の実験に使用した器材は以下の通りです。
  • MacBook Pro 17" Mic 2010
    Mac OS X 10.8.5
  • iPod touch 5th
    iOS 7.0.2
  • Pebble Hardware V2R2
    Pebble Firmware v1.12.1
他にWi-Fiのルータがあれば便利ですが、他の人も利用しているルータではセキュリティが気になります。Mac搭載のWi-Fiのアドホック モードでもappをダウンロードできますので、こちらの方が便利な場合もあると思います。興味のある方は、このBlog内の「PebbleとMac OS XのWi-Fi」の項目をご覧ください。

さて、Mac OS Xで開発したappのPebbleへのインストールに関して、上記のページには以下のようにしか書かれていません。
And on your phone, go to: http://:8000/build/. Click on hello_world.pbw and choose to install it with the Pebble application.
iOSのSafariに他appを指定してダウンロードしたファイルを開く機能があることを知らなかったので、この説明には混乱しました(苦笑)

閑話休題、上記URLの解説にある順で説明しますと、以下のようになります。

■ Create a new Pebble project
まずは、新規プロジェクトを作るPythonスクリプトcreate_pebble_project.pyを走らせます。
$ ~/pebble-dev/PebbleSDK-1.12/Pebble/tools/create_pebble_project.py ~/pebble-dev/PebbleSDK-1.12/Pebble/sdk hello_world
生成したプロジェクトのディレクトリhello_worldに移動します。
cd hello_world

■ A first glance at a Pebble application
この項目は~/hello_world/src/hello_world.cの解説です。興味深い内容もありますが、読み飛ばすか、後でじっくり読んでも良いと思います。なお、全てのAPIの解説はPebble SDK: Main Pageにあります。ただし、いきなり補償対象外のコメントが出てきます(笑)

■ Write a Pebble Hello World!
~/hello_world/src/hello_world.cを書き換えてHello World!を表示できるようにします。とりあえず動かしてみたい人はa. c. の内容はそのままコピー、b. は最後の内容をコピーしてください。

■ Build and deploy your Pebble application
Pythonのビルド システムwafを使って設定とビルドを実行します。
./waf configure
./waf build
PythonのSimpleHTTPServerモジュールを使用して、httpサーバを開きます。ちなみに、サーバの終了は昔ながらのcontrol + cです。
python -m SimpleHTTPServer 8000
さて、ここで最初にあげた一文に突き当たります(笑)
And on your phone, go to: http://:8000/build/. Click on hello_world.pbw and choose to install it with the Pebble application.
your phoneとはiPhoneやiPadなどのiOS装置のことで、URLにあるip addressはMac OS XのIPアドレスのことで、[Apple mark > 環境設定 > ネットワーク]で左欄の[Ethernet]を選択すれば、右欄の[IP アドレス]に書かれていることはご存じの通りです。iOSのSafariでURL(例えばhttp://192.168.0.1:8000/build/ )を指定すると、以下のような画面が表示されます。

表示されたファイル リストの中からhello_world.pbwをタップして、表示された画面右上の["Pebble"で開く]ボタンを押します。

これで、Pebble.appの画面に切り替わって信用するかの問合せに答えると、メータが現れインストールが始まります。

インストールが終わると画面が書きのように変わって、Pebbleにはインストールしたappが起動します。

Wi-Fiのアドホックモードを利用した場合には、URLの指定が少し異なりますが、このBlog内の「PebbleとMac OS XのWi-Fi」という項目を参照ください。

MacとPebble SDKの記事はPebbleのラベルで検索してください。

Pebble SDKイントール

Pebbleと言う時計のオモチャを調べる機会を得ましたので紹介します。

Pebbleの使い方はあちこちで紹介されていますし、日本語の紹介記事もあるようです。しかし、SDKに関しては見当たらないようです。

SDKはInstalling Pebble SDK on Mac OS Xにあります。比較的読みやすい英語ですが、ほかのプラットフォームと共通化するためにMacで馴染みのある方法とは言いがたいところが散見されます。今回はMac OS X 10.8.5上のXcode 5.0 (5A1413)で試しています。

先のページInstalling Pebble SDK on Mac OS Xには最初に四つの作業手順の概要が書かれています。簡単そうに見えますが、一番手間がかかる作業は2のbで、これだけで半分以上の作業時間を取られます。

解説ではインストール先を~/pebble-devにしており、そのまま従いました。また、インストールのヘルプ フォーラムもあるそうですが、私はお世話になることはありませんでした。以下は、開設の手順に従って気がついたことなどを紹介します。

1. Download and install Pebble SDK
PebbleのサイトDon't have an account? Sign Upボタンでアカウントを作り、SDKのファイルPebbleSDK-1.12.tar.gzを入手します。
ホームにフォルダを作って~/pebble-devと命名し、そこにPebbleSDK-1.12.tar.gzを入れてダブルクリックし、PebbleSDK-1.12というフォルダができたことを確認します。

2. Download and install dependencies for Pebble ARM toolchain
XcodeのPreferencesでDownloadsタブのComponentsタブでCommand Line Toolsの右にあるボタンを押してXcodeのツールをインストールします。

さて、libmpc(GNU Multiprecision library)のインストールですが、ここでhomebrewのインストールが求められています。これは別にまとめましたので、「PebbleのためのHomebrew」の項目を参照してください。

無事にhomebrewがインストールされ、brew doctorも通った…として、次は以下の命令です。
brew install libmpc
ファイルを三つほどダウンロードすると完了しますので、以下のファイルが存在するか確認します。
/usr/local/lib/libmpc.3.dylib

3. Download and install Pebble ARM toolchain
もうひとつファイルをダウンロードします。このファイルはMac OS Xのバージョンによって異なります。ダウンロードしたファイルを~/pebble-devに入れてダブルクリックするとinside ~/pebble-dev/と言うフォルダができます。
私はTerminalでbashシェルを使っていますので、.bash_profileを編集して環境変数PATHに~/pebble-dev/arm-cs-tools/bin:を追加します。解説ページにもあるように、一時的にexportしても良いかもしれません。
以上の作業が終われば、gccのバージョンをチェックし、コンパイルの動作検証します。解説ページにある命令はコピーしてTerminalにペーストすれば実行できます。動作検証では解説にもあるwarningが表示され、a.outが作られました。
今回はBuilding the toolchain from Sourceにあるソースからのビルドは不要でした。

4. Download and install SDK dependencies
この作業はフォントや図の変換などに使うPythonのライブラリのインストールです。Mac OS X 10.8.5では書かれた通りに手順を踏めば良いのですが、c. Install the Python library dependencies:は先の二つの命令と比べて長めのテキストをはき出し、最後は以下のようになります。
Successfully installed Pillow freetype-py sh
Cleaning up...
また、最後のfreetypeのチェックはなにも応答が な け れ ば 正常です。

はてさて、これでようやくHelloWorldのappを試す、用意ができました。

MacとPebble SDKの記事はPebbleのラベルで検索してください。

Pebbleの解説文章

Pebbleの解説文章にはiOSやMac OS Xに関連する部分が書かれていないことが良くあります。ほかのプラットフォームと共通化が目的なのでしょうか?

例えば、最初にBluetoothでPebbleをペアリングする時にPebble.appのインストールを求められますが、同社の説明書にもWebサイトにも記述が見当たりません。私の場合は、機能制限でappのインストールを止めていると、iTunes StoreでそれらしきPebble.appを探す羽目になりました。探すものがPebble.appという名前であると分かっていれば良いのですが、最初なので分かるはずもなく似たような名前のappをいくつか試しました。

MacとPebble SDKの記事はPebbleのラベルで検索してください。

PebbleのためのHomebrew

Pebbleと言う時計のオモチャを調べるために、Homebrewをインストールしました。
http://brew.sh
Homebrewのインストーラは上記URLの一番下にかかれたRubyのスクリプトです。

ところで、ドメインが.sh、なんとナポレオン幽閉で有名なセントヘレナ島(笑)いままでパッケージ管理システムは避けていたのですが、大西洋の孤島程度にはパッケージを閉じ込めてくれるのでしょうか?
少し調べてみると、比較的分かりやすいところにHomebrewはアンインストールの方法が書かれていたので試すことにしました。もちろんTime Machineもありますし…

ruby -e "$(...
インストールのスクリプトは最初にどこを書き換えるかなどを表示します。しかし、問題は利用後のテンポラリ ファイルなどのゴミが妙なところに残ったり、ほかのファイルを書き換えたりしないか?という・・・まぁ、心配し始めると切りがないので、パスワードを入力すると以下の一文で終わりました。
==> Installation successful!
You should run `brew doctor' *before* you install anything.
Now type: brew help

brew doctor
インストール スクリプトがはき出した指示に従ってbrew doctorを実行するとWarningが7つ出てきました。
指示に従って一つ一つ潰していき、適時にbrew doctorを走らせ追加の指示があればそれに従いますと、以下の一文が出てきます。
$ brew doctor
Your system is ready to brew.
これでPebbleのSDKをインストールする準備ができました。

MacとPebble SDKの記事はPebbleのラベルで検索してください。

2013年10月19日土曜日

大量データ消去のハズ・・・

MacのMountain Lionで大小取り混ぜて400G byteほど(のハズ)のデータを消去するのに、半日ほどかかりました。
その間、PowerBook Proのファンは回りっぱなしです。

ファイルシステム(データベース)の更新って、そんなに負荷のかかるタスクか?と思ってActivity Monitor.appでみるとroot権限のmtmd(Mobile Time Machine Daemon: Time Machineのデーモン)とmds(metadata server: Spotlightのデーモン)というプロセスが頑張っていました。

消去前にはFinderが空き領域として200G byte足らずあると表示していたのが、消去後は600G byte以上になりました。しかし、消去に時間がかかりすぎている…気がします。何となく不安なのでDisk Utilityでディスクを調べると、空き領域が200G byteを切っていると表示されます。

やむなく、Disk Utilityで修復すると、Finderも消去前と同じ200G byte足らずしか空き領域がないと表示するようになりました。12時間の作業は無駄?(苦笑)

2013年9月28日土曜日

フォント開発

Mac上でフォント開発いうとFontographerが定番とおもいますが、無料で使えるFontForgeもありました。「ありました」というのは、本家がソースコードのみの配布に変更されたからです。

しかし、本家とは別に以下の場所でバイナリーの配布を試みています。

Install FontForge on Mac OS X
http://fontforge.github.io/en-US/downloads/mac/

この記事の執筆時点の最新版は2013-09-18で、日付が2013-02-22の版と比べれてかなり改善されていますが、まれに再現性のない奇妙な動作をします。

今すぐにFontForgeでフォントを描くのであればシステムをSnow Leopardにして以下のサイトから昔のFontForgeをダウンロードすることをお勧めします。

FontForge
http://www.fontforge.org

IllustratorのEPSファイルを読み込む場合には、新しいFontForgeの方が高速で良いと思います。ただし、EPSで描いた形状が大幅に変更される場合がありますので、修正するために古いFontForgeのお世話になるかもしれません。

しかし、単純明快であったビットマップの頃が懐かしい・・・

2013年5月15日水曜日

Apple製「連絡先」の互換性

Mac OS Xの付属アプリケーションContacts.app「連絡先」version 7.1 (1169)で[ファイル > 書き出す... > vCard を書き出す... ]にて作成したファイルを、iCouldの「連絡先」(2013/05/15分)に読み込ませるとエラーになります。
以下のように書き出したファイルの内容を変更すると読み込まれます。

変更前: VERSION:2.1
変更後: VERSION:3.0

上記の変更を書き出した人数分行います。また、[メモ]の改行が正しく表示されないので修正してください。

2013年4月16日火曜日

Mac OS X上のJava逆コンパイラ

Mac OS X上で動作するJavaの逆コンパイラとしてJava DecompilerのJD-GUIという無料のツールがあります。
http://java.decompiler.free.fr/?q=jdgui
オープンソースではありませんが、WindowsとLinux版もあります。

JADと言うコマンドラインツールもありますが、http://www.kpdus.comがアクセスできなくなり、メンテナンスされておらず、Java5もサポートされていません。この記事を書いている時点で、以下のミラーサイトがあります。
http://www.varaneckas.com/jad/

2013年3月26日火曜日

gatherheaderdocにバグ

JavaDosのApple版HeaderDocのツール[gatherheaderdoc]にバグがあって、それを修正方法も含めて指摘しているサイトです。
found bug in apple tool 'HeaderDoc' - arg3.com
http://arg3.com/blog/2012/09/16/found-bug-in-apple-tool-headerdoc/
ただし、このコードをそのままCopy&Pasteしても治りません。ここに書かれている修正箇所とバグの部分を見比べればperlを知らなくても治せますので、良しとしましょう(笑)
[gatherheaderdoc]は[headerdoc2html]が生成した複数のHTMLファイルに対するタグを持ったHTMLファイルを自動生成してくれるperlのスクリプトです。しかし、このバグが原因でHTMLの最初の一行だけのファイル(事実上の空ファイル)しか生成されません。

2013年3月17日日曜日

10.8.3のトラブル

なによりも、またTiddlyWikiが動かなくなりました。
Mac OS X 10.8.3にアップした頃からです。Javaにまた問題が見つかったのか、それともAppleがJavaのサポートをあきらめて強制撤去したのか、単なるバグか・・・、とりあえずの回避方法はありますが、お世辞にも安全とは言えません(苦笑)
もう一つのトラブルは、カレンダー(旧iCal)でイベントのカレンダーをローカルのものに変更できません。イベントを選択して表示させるコンテキストメニューではiCloudのカレンダーしか選択できません。作成したイベントの[情報を見る]でも同様です。AppleのDiscussionで、この事を扱っているところを昨日に見つけたのですが、今調べてみると消えています。なにか解決方法があるような気もするのですが・・・。
このところ、OSのアップのたびに障害が出ています。そろそろ、やり方を変えるとき・・・

2013年2月18日月曜日

XcodeのエディタとBBEdit

XcodeのエディタとBBEditを比べて、検索のテキストフィールドには正規表現のシンタックス カラーリングがありません。BBEditになれている身には、とても見にくい (苦笑)

2013年2月17日日曜日

iPhoto '09から'11へ

iPhotoの旧版を最新版にアップすると、写真が表示されなくなる問題が発生しました。しかし、以下のサイトに従し作業を進めると解消されました。
upgraded from iPhoto 09 to 11 and lost...: Apple Support Communities

すこし、概要を説明しますと以下のようになります。なお、以下では古いiPhotoデータが手元に残っていることを前提にしています。iPhoto '11で再構築に失敗したデータは試していません。

1.iPhotoのデータをcommand + dで複製
  要はバックアップですが、この問題に関して書いているほぼ全てのサイトでバックアップするように書かれています。

2.ライブラリの再構築
「古いiPhoto」をcommand + optionを押しながら起動して、リストアップされる修復項目のチェックマークを全てONにしてデータベースの再構築をします。上記サイトでは再構築の画面はラジオボタンになっており一つ一つ更新する、と書かれています。しかし、iPhoto 8.1.2ではチェックボックスになっており一度にできます。

3.以下の場所からiPhoto Library Manager.appをダウンロード
制限のあるFree版で十分に役立ちます。
http://www.fatcatsoftware.com/iplm/
iPhoto Library Manager.appで再構築するiPhotoのライブラリを選択し、メニューからRebuild Libraryを選択します。なお、上記サイトの解説とはメニューの場所が異なり、4.0.4版ではRebuild LibraryはRebuildのメニューに移動しています。再構築が始まると、新しいiPhotoの起動と終了が数回繰り替えされ、再構築されたライブラリがホームディレクトリのPictureフォルダ内部にできます。