Home > Tags > OSX

OSX

iCalのTODO

フリーウェアのすばらしさが、iCal の欠点を粉々にする

正直TODOはあまり使っていないのだけれども、ちょっと試してみるか。日常だと付箋とかホワイトボードとかが便利すぎて。

[物欲]Quartz Comporser本

何か一覧するのが欲しかったので、未来派図画工作の方の本を購入。1,2年前の本なので、多少見た目が違ったり、パッチの種類が違うところもあるが、私が見たいのは解説つきでの基本的な使い方の例なので問題ない。

MacPorts 1.9.0

MacPorts 1.9.0登場、Snow Leopard/Leopard/Tiger対応

むう、試してみるか。

Mac Book ProはFinkでやっているが、サーバにしているMac miniは必要上色々といれている。

パッケージも入り乱れてかなりカオスな状況になっているので、可能ならば一本化したい。そのための条件として現状動いているサーバ類を移行できることがある。普通は問題がないはずだが、Cyrus-IMAPdだけはPPCで微妙なのか、以前ビルドでこけまくっている。無理矢理ビルドしてカオス状況になっている最大の原因は間違いなくこいつ。

アップデートも手間がかかりまくるし、少しはシンプルにしたいものだ。

ログ・ホライズン

ログ・ホライズンi文庫につっこむべく、OSXでさくっと作業。

$ for i in `ruby -e '(1 .. 36).each {|a| print "#{a} "}'`; do w3m -cols 4096 -Outf-8 -dump http://ncode.syosetu.com/n8725k/$i/ > $i.txt; sleep 10; done

Mac OS X には seq が無いので、ruby で適当に代用。といいつつ、wgetはfinkより導入しているので、入れればいいのにという話はある。最後に、1〜9が位置的にみにくいので、01.txt〜09.txtにファイル名を変更して完了。

FTPでi文庫に転送すれば、若干前後に余分な部分があるものの、普通に読める。ディレクトリ名が著者名になるので、log_horizonとしておけば、題名-著者ではなく話数-題名とはなるが、なんとなくそれっぽい。

Snow Leopardのfinkを入れなおす。

元々Leopard環境からひきついだので、0.28.xのまま fink selfupdate しようとすると失敗し、一向にアップデートできない状態になっていた。

fink list をgrepやcutで適当に編集してパッケージリストの一覧を確保し、あらためて /sw に fink を入れなおす。

最後に、zsh に lvやunzipなど最低限のパッケージを復活させて終了。

LetterFix for Mac OS X Mail.app

LetterFix for Mac OS X Mail.app Wiki – SourceForge.JP

たまにUTF-8になって、携帯で読めなくなっていたので、いれてみる。

そして文字コードが妙な挙動になったらしく、警告ばかり出るのでアンインストール。

[物欲]iLife’09購入

DMC-LX3のRAWファイル対応のために購入。MacBook Proについてきたのは’08なので、折角のアップデートでのLX3対応も対象外なのであった。

発表から1年を越えているので、そろそろ次のバージョンがくる可能性はあるが、最近の更新ペースは1年半なので後半年は使えるはず(だといいなあ)。

なお、LX3の場合カメラがかなり頑張ってくれるのでRAWで救いたい状況はそうそうない。ただ、ピーカンとか曇り空とか屋外で露出が微妙な状況はいくらでもあるので、そういう時に活用して余裕ができるのは嬉しい。

PS3 Media Server

ps3mediaserver – Project Hosting on Google Code

DLNAサーバ化させるPS3 Media ServerをMacBook Proに入れて、PS3からみてみる。無線でも十分みられるものなんだな。BRAVIAでモードをかえるとモーションフローがきくのが面白い。

BRABIA自体もDLNA対応のようだが、若干の設定がいるらしい。PS3 Media Server (PMS) まとめwikiを参考にいじればなんとかなる…のだろか?とりあえずPS3経由で見られるからいいか。

Objective-C学習中

通勤中にヒレガス本を読んで、帰ってから課題の一つである文字列の入力とその文字数を数えるメッセージを出すというのをやってみた。場所でいうと「5.6 チャレンジ」(日本語版の場合p96、英語はp90)。

まずは素直に IBOutlet/IBAction を使うバージョン。NSTextField の outlet を二つ用意して、ボタンの押下を IBAction のメソッドで受ける。ついでに awakeFromNIB メソッドを定義してラベルの初期値を設定してみた。これは課題のページのすぐ前あたりでやっていることなので簡単。

さらに作りなおしてみる。Key-Value コーディングが面白そうだったので、がらっと違う方法で挑戦。

NSString を二つ(テキスト入力用、テキスト出力用)用意して、@property と @synthesize で setter/getter を自動定義。文字列の入力即文字数カウントとしたかったので、IBで入力テキストフィールドのContinuesを有効にして、setter だけ自前で書く。このへんでどハマり。

まず、NSString の更新ってどうなるんだっけ、と延々マニュアルをあさってみたりする。結局 textField = t; と単純なポインタ代入でよかったようだ。本当はその前にt を retainしたりtextField を release したり必要なはずだが、しばらくはメモリ管理は忘れたままでおきたいので、ガーベージコレクションをビルドオプションでつけて逃げる。

そして、あんのじょう値を直接更新したのに更新通知を飛ばしてしまい、willChangeValueKey と didChangeValueKeyに辿りつくまで長々と悩んでしまう。出力側のテキストの更新も少々悩んだが、こちらは self 経由で [self setLengthMessage:msg]; と @synthesize がつくってくれた setter を指定することで逃げた。

なんだかんだで2,3時間かけて課題完了。少しは勘所がわかってきた気がする。

NIBがないとわからないが、一応二番目の課題でつくったクラス AppController.h。

#import 

@interface AppController : NSObject {
	NSString *textField;
	NSString *lengthMessage;
}
- (id)setTextField:(NSString *)t;
- (int)countLength:(NSString *)t;
@property (readwrite, copy) NSString *lengthMessage;
@property (readonly) NSString *textField;
@end

ついでに AppController.m。

#import "AppController.h"

@implementation AppController
- (id)setTextField:(NSString *)t
{
	// set new textField
	[self willChangeValueForKey:@"textField"];
	textField = t;
	[self didChangeValueForKey:@"textField"];

	NSLog(@"%@ -> %@", textField, t);

	// update length message
	[self countLength: t];

	return self;
}

- (int)countLength:(NSString *)t
{
	NSString *msg;
	int length;

	// make message from textfield's length
	length = textField.length;
	msg = [[NSString alloc] initWithFormat:@"'%@' has %d characters.",
		   textField,
		   length];

	// set value using self-setter(automated)
	[self setLengthMessage:msg];
	NSLog(@"%@", msg);

	return length;
}

@synthesize textField;
@synthesize lengthMessage;
@end

これはヒレガス本ではない。ヒレガス本++だ。

ちょうどヒレガス本の日本語版が発売されていたようなので、何件かまわって購入してみた。原書で持っているだけに日本語で読めるというだけではちょっと買いにくいが、XCode 3.2/Snow Leopard 対応がされているというので「これはヒレガス本++とでも言うべき内容だ」と自分を納得させて購入。ああ、矢張り日本語で読むと楽だねえ(←そこが主眼だっだのか)

ObjectiveCふたたび

ちょっとアプリケーションっぽいものの構想ができたので、実現可能かどうか軽くXcodeに手を出してみることにする。教本は以前買ってあったヒレガス本と荻原本。荻原本は言語としての解説なので、Cocoaアプリからせめるヒレガス本と実によく馴染む。

うーむ、例がうまく動かん。「もうそれ使ってないよ」「将来消えるAPIだね」とかそういう警告は無視するにしても、何故だーー。

ヒレガス本の英語が優しくて助かる。

Dictionary.app を Carbon Emacs から使う

面倒だったので、ニコイチして作成。買い物ログ別館の方だけでも良かったのだけれども、C-x C-y で lookup っぽく呼びだしたかったので、そのあたりのルーチンをひとりぶろぐの方からもってきた。

Processing 言語で遊ぶ

最近ビジュアライゼーションをやっていないので、Processingを試してみることにする。画像、アニメーション、音楽を容易にプログラムするための言語で、Javaに変換して実行される。そのため文法も Java っぽい。

まずは、ダウンロードしてOS Xにインストール。起動してみるとソースコードを入力するエディタが出た。千葉商科大学政策情報学研究科 プレゼンテーション法の講義を参考にいくつか改造しながら試してみると、大体要領がわかってきた。結構素直で使いやすい。

はまった点が一つ。Processing で obsolete な関数を使おうとするといきなりウェブに飛ばされてしまった。シンタックスハイライトしている部分と、そのページにあるChangesを見比べたところ、どうやら framerate(30); という部分が frameRate(30); になるらしい。一文字なおしたら無事makeが通るようになった。

しばし、MSXを思い出しつつサンプルコードをいじって遊ぶ。うーん、楽しい。矢張り結果がすぐ絵と音でわかるプログラミング環境って素晴しいものだ。

Gallery of Computationを見ると、色々な表現とそのソースコードが入手できる。しばらくはこれで遊べそうだ。

しかし、その前にIDE環境を整える必要がある。折角OS X にはXcodeという快適な環境があるので、使わないのはもったいない。

まずはMac Dev Centerから最新版の Xcode を入手して、3.2→3.2.1にアップグレード。色々参考にして

  1. Java Applet でプロジェクトを新規作成
  2. /Applications/Processing.app/Contents/Resources/Java/core.jar を作成したプロジェクトの lib フォルダに放りこむ(CLASSPATHはどこで通すんだ…?)
  3. resource ディレクトリに Processing で使う画像やフォントを放りこむ。今回は必要なし

とまでやって後はアプレット風味で遊ぼうとしたところで本日は終了。面倒すぎるので素直にProcessing単体で遊ぶかも。

[物欲] USB-シリアルケーブル購入

ひょんな事で入手したNS50のシリアルコンソール用にシリアル-USB変換が必要になる。

購入前に新宿ヨドバシの店員にOSX対応品を聞いてみたら、その場でググりはじめた。仕方がないので適当に安いのを購入してみる。

FTDIチップを使っているとの事なので、Virtual COM Port Driversからダウンロード…しても無駄だった。/dev/tty.* で見えない。

あきらめて、VMWare Fusion 上の Windows XP にドライバを入れ、TeraTerm で接続をする。かなり負けた気分だ。

デフォルトのIPアドレスが家と被っているので、シリアルコンソールで接続してIPアドレスを変更する。NSのコマンドラインは慣れないな…。なんとかウェブ経由で見えるところまで持っていったところで終了。

Apple 新製品発表

Macmini Server が欲しい。OSの値段を考えるとお特すぎる。

アップル – Snow Leopard Serverを搭載したMac mini。

Home > Tags > OSX

Return to page top

123...Last »