2008年もあとわずかですが、来年の抱負を書いておきます。
- 完済人になる(住宅ローンを完済する)
- 今やっている、例のプロジェクトを終わらせる
- クラウドとGPGPUで遊ぶ
- そろそろ本気で論文を書く
- MTOSの面倒をもう少し見る
The Day the Earth Stood Stillのリメイクを観た。もっとIntelligent Design的な展開を期待していた。
地球が静止する日、地球の静止する日、遊星よりの物体X、遊星からの物体X、このパターンもう止めないか?
Mac初心者で、VMware FusionがMacのキラーアプリケーションだと思っている私が、今のところインストールしたソフトウェアを公開するよ。
--------超えられない壁--------
Adobe Readerから下はほとんど使っていない。X codeもインストールしたのだが開発環境はVMで完結してしまっているのでアンインストールした。iWorkも持っているのでインストールしたのだがKeynoteが破滅的に使いにくいのでアンインストールした。Keynoteは多分ある程度修行が必要で、すでに切羽詰まった時点にいたってからスライドを作成する目的には使えない(私は)。この調子だと一生使わない。
Dockが使いにくいのを何とかして欲しい。Ctrl+Fn+F3というショートカットでDockにフォーカスすることはできるけど、Dock内アイテムの選択が超面倒くさい。
辞書でNew Oxford American DictionaryとOxford American Writer's Thesaurusがデフォルトで選択されていないのがあり得ない。Apple用語辞典とかWikipediaとか何のために設定してあるのかさっぱり分からない。
iTunesはWindows版と同様にクソ重くて使いにくい。そうそうiTunesのジャケ写へのクレームって誰にすればいいんだろうか?Wayne ShorterのSpeak No Evilなんて超(×3)有名盤のジャケ写ですら長らーーーーく間違っている。やる気あんのかと言いたい。
誰なんだ!お前は!
正しいのは言うまでもなくこのジャケ写↓
404 Blog Not Found:勉強が出来る=何がいい?
「勉強ができる」ということは「努力し続ける力がある」ということ - ひがやすを blog
「勉強ができる」とか「頭がいい」とか言葉の定義でどうとでもなる話は置いておくとして、何歳になっても自分が置かれているシチュエーションなどが変わっても、根本的に必要なのは「テーマ設定能力」だけだと思う。少なくとも私にとって「頭がいい」と思われる人の筆頭は(日常会話においてもあるいは仕事の場でも)「誰も思いつかないような疑問を思いつく」人である。なぜならそうした芸当はその場で新しいテーマを設定するだけの能力がないとできないからだ。
さて、私は比較的マッチョな部類の人間なのかもしれないが、高校生くらいから何をどうやって勉強(or whatever else)するのかはだいたい自分で決めてきた。そのときから気を付けていたのは、「3日でできるテーマを設定し、それを実行する」というだけの単純なこと。この方法には2つ利点がある。
一つは(テーマが決まっていさえすれば)達成するのに、惰性で何とか3日続ける程度の忍耐力がありさえすれば済むこと。「赤本を1ヶ月かけてじっくりやります」「TOEICのテキストブックを1ヶ月かけてじっくりやります」「カーネルソースを1ヶ月かけてじっくり読みます」的なマイルストーンを設定するのに比べて成功率が高い上、オンデマンドで今知りたいことをある程度の深度まで理解する目的にも役立つ。
もう一つは週に2テーマこなすとして1日残る予備日を利用して、遅れを挽回したり理解度をevaluateしたりできること。つまりは原始的な進捗管理のフォーマットになる。大きめのマイルストーンはたいていの場合それ自体進捗管理を難しくする根本原因となるが、小さいテーマなら仮にまるっきりさぼってしまってもあるいはテーマ設定が悪くて身にならなかったとしても、3日分のサボタージュや徒労や無駄なら簡単に諦めもつく。
この方法の欠点は網羅的に何かを知るのに適さないということだが、網羅的な知識がなくて困ったことはいまだかつてない。何千英単語を網羅的に知らなくても英語を使うのには困らないし、隅々までx86 ISAやらライブラリAPIやらを暗記しなくてもソフトウェアを作るのに何も困らない。考えてみれば当たり前のことで、網羅的な知識とはどこかの間抜けな猿がピックアップしたから網羅的に見えるだけなのだ(ISAやAPIのような完全な人工物ならそれが当てはまらないかと言えばそうでもなくて、なぜそのようにデザインされるべきなのかという知見を含めて考えれば完全な知識というものは存在しない、存在し得ない)。むしろ、何を粗方知っているか(どんなテーマを設定し、それを実行してきたか)ということの方が重要だ。
昔、甘利俊一さんが大学の講義でよく「私の講義は、飛行機でときどき目立った頂に着陸してはその周辺を調べることで全体を理解した気になるためだけのもの」というような趣旨のことを言っていたと記憶している。ただただ出来の悪い学生でしかなかった私だが、今は万事がそういうもの(彼の講義のようなもの)であり、「頂(テーマ)」を見つけること、見つけるだけの「眼」を持っていることがすべての上達の道なんだと思う。
VMware Fusion 2.0において、VMをVMware FusionのUIアプリやコンソールを使わず、ヘッドレスモード(Headless mode)で運用するためのメモ。
なぜヘッドレスモードが重要かというと、開発サーバのようにデスクトップ環境の不要なVMは、VMware Serverなどと同様、マシン起動時にバックグラウンドで自動的に起動して使用したいから。ついでにUIアプリやコンソールアプリが使うメモリも節約できるというメリットもある。
Terminal.appから以下のようにnoguiオプション付きで起動すると、ヘッドレスモードで動作する。
/Library/Application\ Support/VMware\ Fusion/vmrun start /path/to/vm.vmx nogui
suspend、shutdownしたい場合には以下のコマンドを実行すればよい。
/Library/Application\ Support/VMware\ Fusion/vmrun suspend /path/to/vm.vmx nogui /Library/Application\ Support/VMware\ Fusion/vmrun stop /path/to/vm.vmx nogui
他にもreset, pause, unpause, snapshotなどさまざまなオプションが指定できる。詳しくはvmrunをオプションなしで起動したときに表示されるヘルプを参照。
~/Library/LaunchAgentsというディレクトリを作り、下のようなplistファイルを置く。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>vm-label.whatever.you.like</string>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/Library/Application Support/VMware Fusion/vmrun</string>
<string>start</string>
<string>/path/to/vm.vmx</string>
<string>nogui</string>
</array>
</dict>
</plist>
Labelの値、vmxファイルへのパスは任意に変更すること。
VMがshutdownされていることを確認して、VMの設定ファイル(*.vmx)に以下の一行を追加する。
gui.viewModeAtPowerOn = "none"
以降は、VMware FusionのUIからVMを起動しても、VMのコンソールウィンドウが開かなくなる。
Fusion UIアプリが起動していないことを確認して、Terminal.appから以下のように実行する。
defaults write com.vmware.fusion fluxCapacitor -bool YES
以降は、VMware FusionのUIアプリのメニューバーの「表示」メニューに「ヘッドレスモードで起動」「ヘッドレスモードを終了」が追加される。ヘッドレスモードに変更すると、コンソールウィンドウを閉じ、vmxファイルのgui.viewModeAtPowerOnオプションの値がnoneに変更される。
注: この機能はvmxファイルを自分で編集するつもりならまったく不要。
ヘッドレスでないVMはFusion UIが終了するときにshutdownもしくはsuspendされるが、ヘッドレスVMは単なるroot権限のプロセスであるため、たとえ起動したユーザがログアウトしたとしても終了せずにそのまま動作し続ける。したがって、本体Mac OS Xのshutdown時に強制終了されるという問題がある。
vmxファイルに以下のように追加しておくと、VMプロセスにSIGHUPが送られたときにはsuspend、SIGTERMが送られたときにはshutdownまたは電源オフが行われるようになる。
signal.suspendOnHUP = "TRUE" signal.powerOffOnTERM = "TRUE"
一般的にMac OS Xの終了時にはすべての残留プロセスに対してSIGTERMが送られるはずなので(Mac OSに詳しくないので間違っているかも)、安全にヘッドレスVMのshutdownを実行できる。
注: Mac OS Xのlaunchdでshutdown時に実行されるスクリプトを指定できるのであれば、その仕組みを使ってshutdown/suspendした方がよりrobustにできる。その方法がよく分からないので、ここではSIGTERM受信時にshutdownする方法を説明した。
追記: /etc/rc.shutdown.localやcom.apple.loginwindowのLogoutHookを使うとshutdownスクリプトを書けるようだが、これらを使う方法は美しくない。そもそもVMware Fusion自体が悪いとも言える。VMware Fusionは、ブート時はlaunchdを使って/Library/Application Support/VMware Fusion/boot.shを実行して必要なカーネルモジュールをロードし、vmnet関係のデーモンを起動しているのにも関わらず、シャットダウン時は何もしていない。Mac OS X的にはwatchdogプロセスを走らせておき、それがkillされるタイミングで、生存しているすべてのVMをsuspend/shutdownした後に、vmnetデーモンをkillし、カーネルモジュールをunloadするのが「正しい作法」なのだと思う。このあたりの実装をVMwareがちゃんとやってくれれば(いつかはそうなると信じているのだが)、ヘッドレスVMへの対処もより簡単で確実になるだろう。
アルミ○
ヤカン×
吊るしの2GBでしばらくは凌げるかなあと思っていたのですが、やっぱり仕事で使っていると全然足りません。アクティビティモニタで見ていると空き領域が常に0近辺をさまよっています。VMware FusionでWindows XPに512MB割り当てているだけで、あとはSafariとCarbon Emacsくらいしか使わないのにすぐフリーズしてしまいます。
あとVMを1〜2個立ち上げたいのに><
いい加減生産性に関わるので昼飯時に末広町駅近くのアークに寄って買ってきちゃいました、SanMaxのPC3-8500 2GB CL7 x2(DUAL)。
SanMax DDR3-1066 S.O.DIMM 4GB(2GB*2枚組)SET CL7 hynix/JEDEC 『4GB DUALSET』 秋葉原アーク(ark)PC
今時のアキバのパーツショップってクレジットカードが使えるんですね。妙に関心しました。
あー快適。MacBookはもう標準構成で4GBメモリにすべきですね(でなきゃSafariを何とかしろ!)。ちなみに、私のアルミMacBookにもともと搭載されていた1GBx2 SO DIMMは緑基盤のマイクロン製でした。
Ubuntu 8.10のghostscriptやそれを使うevinceでPostScriptファイルが文字化けする問題がある。11_gs-cjk_font_glyph_handling_fix.dpatchというパッチが当たっていないせいなのだけど。
簡単に修正するには、(たまたまこのパッチが*.psファイルへの更新しか含まないからなのだが)以下のようにすればいい。
$ cd /tmp $ wget http://ogawa.googlecode.com/svn/blog/misc/ghostscript_8.63.dfsg.1-0ubuntu6-cjk.tar.bz2 $ cd /usr/share/ghostscript/8.63 $ sudo tar xfj /tmp/ghostscript_8.63.dfsg.1-0ubuntu6-cjk.tar.bz2
この作業をすると、/usr/share/ghostscript/8.63の下の以下のファイルが作成または上書きされるので、心配ならあらかじめバックアップをとっておくこと。
lib/cjkv/baseutil.ps lib/cjkv/cjkcidcm.ps lib/cjkv/cjkfnmap.ps lib/cjkv/cjkvinit.ps lib/cjkv/cjkvttcf.ps lib/cjkv/tt11util.ps lib/cjkv/tt42util.ps lib/gs_cidtt.ps lib/gs_init.ps
たく、この論文シーズンに...。
iPodとPCでの普段使い用にSONYの密閉型インナーヘッドフォンEX500SLを買いました。
元々そんなに音にこだわりも何もないのですが、iPod touchのイヤフォンは耳に当たる部分のゴムが経年変化でボロボロになってしまうし、その前使っていたiPod shuffleのイヤフォンは低音が軒並み割れて聴こえないしで、たまにはまともなものを買ってみようということです。
あははは、これは分解能違い過ぎだわ(笑)
↓とか全然違う音楽に聴こえる。
ぶっちゃけレジ打ちなんて速くても遅くても大差ない。速い人でも平均値の2倍くらいの範囲に収まるのではないか。その程度なら平均程度のレジ打ちで置き換え可能であって、会社としては規定以上の給料を払ってまで早打ちおばさんを雇う意味はない場合も多い。平均的なレジ打ちのスループットより速くキューが伸びるような局面でしか早打ちおばさんの意味はないし、キューの伸縮に100%最適化されたような雇用を実現することも不可能なのでたいていの場合余剰の人員で処理能力を補えてしまう。
「えーでも技能が高い人に低い人より高い給料をあげてほしいんだけど!」とあなたが思うのは自由だし、悪くないセンチメントだとも言える。実際、速く打てるように習熟するための動機付けになることを期待して、会社が早打ちおばさんに高い給料を与えることは「あり得る」。だが、それ(早打ち芸)を会社が必要としていないなら「前提が成立していない」のだから賃上げは望み薄だ。
それでもあなたの心の安寧がそんなに大事なら、次にスーパーに行ったときに早打ちおばさんの前に紙コップを置いてくるといい。いいパフォーマンスを見せてくれたらダイムかクォーター硬貨を入れる。
早打ちおばさんのインカムが増えて多分あなたの狙いどおりの効果が得られるに違いない。最初のうちは。だが、そのうちチップを与えないと早打ちしない凡庸なおばさんか、ローラースケートを履いてレジ打ちするおばさんになってしまったとしても驚いてはいけない。どちらもインカムに最適化された、あなたの期待どおりの早打ちおばさんの姿なのだから。