Category Archives: Mac

SnowLeopardにSTM32(Cortex-M3)の開発環境を構築

図書館で二時間時間を潰さないといけない状況になったので、なにかしようと思います。

そこで、最近無性にSTM32が使いたかったのでとりあえず開発環境でもを用意してみようかということで進めていきます。

今回は以下の二段構えになっています。

  • コンパイル環境の構築
  • 書き込み環境の構築

まず、前者についてはCortex M3開発環境 on Mac OS Xというページを参考にしました。

  • ARM用gccのインストール (Targetがarm-eabiのgcc)

ARM用のgccはSHやH8の時とはちがい、コンパイル済みのdevkitARMを利用します。このページからdevkitARMのOSXバージョンの最新版をダウンロードし、インストールします。

こいつはインストーラが無いので解凍してできたdevkitARMディレクトリを /usr/local/ ディレクトリにコピーしておきます。

そして、PATHを通すために~/.bash_profileファイルに(無ければ新規作成)

export PATH=$PATH:/usr/local/devkitARM/bin

という一行を加えておきます。
  • プロジェクトテンプレートの構築
次にSTM32のプログラムをコンパイルするためのプロジェクトのテンプレート(雛形)を作成します。
このディレクトリにSTMicroが用意してくれているSTM32のためのライブラリファイルや、リンカースクリプト、Makefile等を用意しておきます。新しくプログラムを作るときにはこのディレクトリのコピーを作成し、main.c等のユーザープログラムを書くだけでmakeコマンド一発でコンパイルできるようになります。
たぶんこれは二次配布可能だと思うので、圧縮したファイルを添付しておきます。問題があればコメントください。
このディレクトリはこのファイルでなくても、Strawberry LinuxのSTM32ボードであるSTBeeのサンプルプログラムでも構いません。
ただし、この場合には付属のMakefileの“arm-none-eabi”となっている所を全て”arm-eabi”に変更する必要があります。
以上でコンパイルまではできるようになりました。
次はDFUを使ってUSB経由で書き込みをするツールを用意します。dfu-utilというのを見つけたのでインストールしたいのですが、何故かコンパイルエラー。
ここで時間が来てしまったのでまた出来次第追記します。

Snow Leopard

9月発売の予定を前倒しして28日に発売された新Mac OS X(10.6) Snow Leopardをインストールしました。

インストールまでの道のりとファーストインプレッションです。

Read more …

OSX Server 10.5.7 で PHP+GD

先日Mac OSX Server Leopard を更新してからWordPressでサムネイルが作成されなくなったなぁと思っていたのですが、アップデートの際に以前GDをServerにインストールしたときからPHPのバージョンが5.2.8に変更されていたのでまたGDのついていないPHPのバイナリに交換されてしまったようです。ということで、以前と同様にGDをインストールしました。方法は以前の「OSX Server 10.5 (64bit)でPHP+GD」を参照していただくとして、今回利用した各ライブラリのバージョンは以下の通りです。それをメモするだけなので日記ということで、適当な更新です。

  • PHP 5.2.8
  • libgd 2.0.35
  • libpng 1.2.37
  • libjpeg(jpeg v7)

コンパイル時にはいくつか注意点が…

Read more …

iTunesの曲に自動でふりがな登録

iTunesは日本語の曲名等の並び替えを正しく行うためにふりがなを登録できるようになっています。が、何千曲とあるライブラリに手作業での登録は大変です。アーティスト名ならまだしも曲名となれば大変です。

massiva/logic&mac tipsさんのソートiTunes!という記事でAppleScriptとテキストエディタのGUIを用いてiTunesの曲のアーティスト名のふりがな(アーティストの並べ替え)フィールドを自動で埋めるというスクリプトが紹介されています。ところが、安定して動作させるには待機時間を長くしないといけないのでちょっと遅いのです、これは漢字からひらがな変換にGUIを使っているからなのですが。具体的にはMac全体の処理速度が一瞬低下した場合ふりがなへの変換が終わる前に次の曲に進んでしまったりします。

そこで、オープンソースの形態素解析エンジンMeCabを利用してふりがなを生成する方法に改造することによって高速かつ安定した動作を実現しました。が、人名はことえりのほうが正確かも…

MeCabは前回の記事でインストール済みということで。

スクリプトエディタに以下のスクリプトを入力し、iTunesでふりがなを補完したい曲を選択した状態でスクリプトを実行するとふりがながまだ設定されていない曲のアーティスト名、曲名、アルバム名のふりがなが登録されていきます。

スクリプト

--確認ダイアログ
display dialog "ふりがなをふっていいですか" buttons {"NO", "OK"} default button 2
set button_a to button returned of result
if button_a = "OK" then


	--iTunesのスクリプト
	tell application "iTunes"
		try
			set name_list to {}
			set select_track to a reference to selection
			if select_track as list is {} then return
			repeat with i in select_track
				set end of name_list to i
			end repeat
			repeat with i in name_list
				--アーティスト
				set hurigana_text to sort artist of i
				if hurigana_text is "" then
					set original_text to artist of i
					set hurigana_text to my hurigana(original_text)
					set sort artist of i to hurigana_text
				end if


				--アルバム名
				set hurigana_text to sort album of i
				if hurigana_text is "" then
					set original_text to album of i
					set hurigana_text to my hurigana(original_text)
					set sort album of i to hurigana_text
				end if



				--曲名
				set hurigana_text to sort name of i
				if hurigana_text is "" then
					set original_text to name of i
					set hurigana_text to my hurigana(original_text)
					set sort name of i to hurigana_text
				end if


			end repeat
			display dialog "完了"
		on error
			display dialog "エラー発生" buttons {"OK"} default button 1
		end try
	end tell

end if

on hurigana(original_text)
	set mecab to "echo " & quoted form of original_text & " | /usr/local/bin/mecab -Oyomi "
	mecab as text
	do shell script mecab
	return katahira(result)
end hurigana


on katahira(original_text)
	set hiracase to "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをんぁぃぅぇぉがぎぐげござじずぜぞだぢづでどっぱぴぷぺぽばびぶべぼゃゅょ"
	set katacase to "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲンァィゥェォガギグゲゴザジズゼゾダヂヅデドッパピプペポバビブベボャュョ"

	set hiragana_text to characters of original_text
	repeat with char in hiragana_text
		set num to offset of char in katacase
		if num is not 0 then
			set contents of char to character num of hiracase
		end if
	end repeat

	return hiragana_text as text
end katahira

Mac OSX LeopardにMeCabをインストール

MeCab(和布蕪)とは

公式ページのお言葉を借りると。

MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです. 言語, 辞書,コーパスに依存しない汎用的な設計を 基本方針としています. パラメータの推定に Conditional Random Fields (CRF) を用 いており, ChaSenが採用している 隠れマルコフモデルに比べ性能が向上しています。また、平均的に ChaSenJumanKAKASIより高速に動作します. ちなみに和布蕪(めかぶ)は, 作者の好物です.

です。はい。今回は自動でiTunesのふりがなを補完したいためにインストールしました。

MeCab本体のインストール

公式サイトからソースをダウンロードしてきます。今回は「mecab-0.98pre3.tar.gz」を利用しました。

解凍したらターミナルを起動し、cdコマンドで解凍したフォルダに移動します。

で、あとは普通にconfigure、make、そしてsudo make install。


$ cd ~/Download/mecab-0.98pre3
$ ./configure
$ make
$ sudo make install

そうすると、mecabというコマンドが使えるようになるはずです。まだ辞書が登録されていないので形態素解析はできませんが、バージョンを確認してみましょう。


$ mecab --version
mecab of 0.98pre3

正しくインストールできてそうです。

辞書のインストール

次に辞書をインストールします。公式サイトで推奨とされているIPA 辞書をインストールしてみます。「mecab-ipadic-2.7.0-20070801.tar.gz」を今回は利用しました。本体と同じく解凍してターミナルからcdコマンドで解凍したディレクトリに移動します。
本体と同じくconfigure、makeなのですが、文字コードをUTF8にしたいのでconfigureにオプションを付けます。installはいりません。


$ ./configure --with-charset=utf8
$ make

試してみる

インストールできたので形態素解析を試してみます。

形態素解析

$ mecab
すもももももももものうち    //解析したい文を入力してEnter
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

よみがな

$mecab -Oyomi
日本語は難しい。    //解析したい文を入力してEnter
ニホンゴハムズカシイ。

できてます。

コマンドラインで一気に解析する場合は例えば次のようにすればできます。シェルスクリプト等で結果を利用するのに便利かも。

$ echo "引数で文は渡せないのでパイプで渡す" | mecab -Oyomi

MeCabの利用法等は他のサイト等でいろいろ紹介されていますのでそちらを参考にしてください。

MacのMLB交換に伴うTime Machineの不都合

Mac本体の修理によってMLB(メインロジックボード。マザーボードとは言わないんですね。)を交換したり、新しいMacを買ってデータを丸ごと移行することによってMLBがかわった場合のTime Machineの挙動についてです。

今回そのような状態になったのですが、いざバックアップの更新をしようとしても更新されませんでした。環境設定から確認すると「バックアップボリュームが見つかりません。」というエラーが確認できました。

再度Time Machineの設定を行えば違うバックアップを1から作成してくれそうだったのですが、それでは以前との整合がとれないのと容量の無駄遣いなのでどうにかならないかと調べてみました。以下は不都合が起きる原因と対策です。
Read more …

ImageMagicのインストール

MediaWikiでサムネイルを作成するためにImageMagic(convertコマンド)が必要だったのでインストールします。環境はOSX Server 10.5.6 x86(64bit)です。

ImageMagicのページにはMacOSX用のバイナリも用意されているのですが、インストールの方法がまずかったのか利用できなかったのでソースからコンパイルします。

利用できなかった理由は
$ convert -list format
で対応フォーマットが表示できるのですが、一つもありませんでした。

一つ前の記事でlibjpegとlibpngがインストールされていることが必要です。
適当な場所にソースをダウンロードして解凍しておきます。この記事では「ImageMagick-6.5.1-0.tar.gz」を利用しました。i386でもいいのですが、せっかくコンパイルするので64bitにしてみます。

ではコンパイルしていきます。x86_64でなくi386であればconfigureのオプションは全て外してください。
$ cd ImageMagick-6.5.1-0
$ CFLAGS="-arch x86_64" CCFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64" LDFLAGS="-arch x86_64" ./configure
$ make
$ sudo make install

これで終了です。
$ convert -list format
を実行するとずらずらと対応フォーマット一覧が出てきたので成功です。

OSX Server 10.5 (64bit)でPHP+GD

OSX Server 10.5を導入したのですが、PHPにGDが入ってないのでlibpng,libjpeg,libgdをコンパイルし、phpを再コンパイルします。
が、apacheが64bitで動いていたので少し難儀したのでメモを。

基本的にはこちらのサイトに従うのですが、アーキテクチャーの指定はこちらのサイトを参考に進めていきます。
ただし、失敗しても良いように既存の「/usr/libexec/apache2/libphp5.so」はバックアップしておいてください。
Read more …

Leopard(10.5.5以降)での画面共有の隠し機能の出し方

2009年8月31日追記:Snow Leopardでは動作速度改善と軽量化のためかnibファイルがコンパイルされてしまっているため編集できません。よって現在のところ以下の方法ではフルスクリーンを有効にすることができません。新しい方法がわかり次第掲載します。

画面共有改変方法どうやら10.5.5以降での画面共有は以前の方法では隠し機能が出ないようです。
当方でも最近できていなかったのですが、コメントをいただいて固有の問題ではないのだと知り調べてみました。

こちらで情報を見つけたので日本語で説明していきます。
どうやら2つの方法が有るようで。
一つは簡単だが、セキュリティーに問題があるかも知れない方法
もう一つは複雑だが、安全だと思われる方法。おすすめ。

後者の方法はビデオによる解説も載せておきました。説明文は下にあります。

Read more …

Macbook Pro の温度

ちょっと夜の間にGCCコンパイルをさせとこうと思ってMacbook Proにmake作業をさせていると、余りもあついので温度をはかってみるとなんと92℃もありました。
最近すこしづつ温度が上がっているような気はしていたのですが90℃を超えたのは初めてです。
明日Appleコールセンターに大丈夫なのか電話して聞いてみよう…