■
某人材獲得がどーのこーの問題。
b.py
# -*- coding: utf-8 -*- import sys m = [list(line[:-1]) for line in sys.stdin] q = [] for i in range(len(m)): for j in range(len(m[i])): if m[i][j] == 'S': q.append((i, j, [(i, j)])) break i = j = path = '' visited = [] while q: i, j, path = q.pop(0) if m[i][j] == 'G': break else: for y, x in ((i-1, j), (i+1, j), (i, j-1), (i, j+1)): if not (y, x) in visited and m[y][x] in (' ', 'G'): visited.append((y, x)) q.append((y, x, path+[(y, x)])) for i, j in path: if not m[i][j] in ('S', 'G'): m[i][j] = '$' print '\n'.join([''.join(L) for L in m])
map.dat
************************** *S* * * * * * * ************* * * * * ************ * * * * ************** *********** * * ** *********************** * * G * * * *********** * * * * ******* * * * * * **************************
実行、結果
$ python b.py < map.dat ************************** *S* *$$$$ * *$* *$ *$ ************* * *$*$$$* $ ************ * *$$$ * $$$$$$$ * **************$*********** * $$$$$$$$$$$$$ * **$*********************** * $$$ *$$$$$$$$$$$$$$G * * *$$$$$ *********** * * * * ******* * * * * * **************************
「こんなもん幅優先探索するだけだし、10分もあれば書けるだろ……」とか思ってやってみたものの、なんだかんだで30分近くかかったので死にたいですね。
■
http://lifehacker.com/5374698/how-can-i-fix-my-disappearing-bookmarks-toolbar に、Firefoxが常にブックマークが隠れた状態で起動するのをなんとかする方法があった。
起動時にこんな感じ
なのが、こんな感じ
になる。
やることは簡単で、userChrome.cssに
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); #bookmarksBarContent { width: 80px; }
と書くだけ。上ではwidthを80pxにしたけど、任意の値でよい。userChrome.cssは、だいたい以下の場所にある、はず。
今まで "中止ボタン辺りを右クリックしてカスタマイズを選んで何もしないで完了するとブックマークがいい感じの長さに伸びる" というライフハック(今日は特別にタダで教えるよ!)を起動する度に実践していたんだけど、かなり快適になった。
■
これまでずっとガコガコ言わせながら物理的にクリックしていたMacBookのトラックパッドを、タップでクリックできるようにした。
設定当初は違和感があったけど、数時間使っていたら慣れた。ドラッグの維持は、物理的にガコガコ言わせるよりやりやすいかもしれない。
ついでに、というかFirefoxで右クリックで始動するマウスジェスチャーが使えなくなったので、スワイプやらなんやらで代用する。
具体的には、about:config の browser.gesture あたりを色々いじる…… までもなく、Firefox lzyc 3.5.3 では標準で以下のことができるようになっていた。
- ピンチイン
- 縮小(shiftを押しながらピンチインでリセットされる)
- ピンチアウト
- 拡大(shiftを押しながらピンチアウトでリセットされる)
- 左にスワイプ
- 前のページに戻る
- 右にスワイプ
- 次のページに進む
- 上にスワイプ
- ページの先頭に移動
- 下にスワイプ
- ページの末尾に移動
twist.left、twist.right には何も割り当てられていなかったので、それぞれダブルクリックして値を Browser:PrevTab、Browser:NextTab とすることで、トラックパッドの回転操作でタブ移動できるようにした。
以上でマウスジェスチャーでやっていたことはほぼ全て、スワイプやらなんやらで代用できるようになった。あとはタブを閉じることができれば完璧なのだが……。
■
Snow LeopardにしたらMacPortsでMPlayerがインストールできなくて困ったので、http://blog.bloople.net/read/mplayer-on-snow-leopard の通りやってインストールした。
MPlayerじゃなくて、mplayer-develならインストールできるのかもしれないけど、こいつはsubversionを入れようとするのでイラッときて途中で止めた。そんなもん標準で入ってんだから余計なもん入れんなよ……! などと思いつつ、何かの依存関係でperl5.8が入ってしまうのは容認しているという。あとpython26を入れたらどう考えても不要なX関係のものがバンバン入ったけど、なんかもう面倒になってきてどうでもよくなった。
■
■
「おれ、この論文を書き終わったら新しく出たMacBook買うんだ……」などと言いながら死にそうになっていたのが二週間前。締め切り当日に半泣きで渋谷郵便局まで行ったものの、なんとか無事に死亡フラグを回避できたのでMacBook(13インチ、CPU 2GHz、HDD 160GB、メモリ4GB、USキー)を買った。というわけで買ってから、とりあえず生きていける環境を構築するまでにやったことをまとめた。
購入
オンラインのApple Storeで買おうかな、と思うも納期が5-7日になっていた。早くいじりたいさわりたいという気分だったので、もしかしたらもっと早く手に入るかなー、と思って渋谷のApple Storeに行ってみた。
『あのー、MacBookなんですけど、メモリ4GBにしてUSキーにしたらどれくらいかかりますかね?』
「三週間くらいだネー」
『(えっ、超フランク!?)あー、そうですか。オンラインで買うのとどっちが早いですかね?』
「オンラインの方が早いヨー。だいたい5-7日だしネー。ただ、ここで買うなら今日とりあえず日本語キーボードで持って帰ってもらって、USキーに交換できる準備ができたら連絡するヨー」
『(つーかガイジンさんか、なんかすげえな……)それだと交換のときにデータの移行もしてくれるんですかね?』
「それは自分でバックアップしておいて欲しいナ!」
『(えー、めんどくせー)あー、そうですか』
「オンラインストアは使ったことあるノー?」
『ええ、まあ、一度だけ』
「オンラインで買うと配送用の箱に入れるから、箱が一個多いんDA・YO・NE!」
『ああ、そうすか』
さっさと帰ってオンラインで注文した。21日の15:00に注文して、28日の朝08:00に着いた。いろいろあって、29日の夕方からいじり始めた。
起動
システム環境設定
- キーボードとマウス -> キーボード -> 修飾キー
- Caps Lock を Controlに、Control を Caps Lockにする
- Dock
- "画面上の位置" を左
- "Dockを自動的に隠す/表示" をチェック
- ExposeとSpaces -> Spaces
- "Spacesを有効にする" をチェック
- "メニューバーに操作スペースを表示" をチェック
- セキュリティ
- デスクトップとスクリーンセーバ -> デスクトップ
- AppleイメージのAqua Graphite
- トラックパッド -> 2本指の操作
- "副ボタンのクリック" をチェック
- ディスプレイ
- "環境光の変化に合わせて輝度を自動調整" のチェックを外す
- "輝度" を下げる
- 共有
- "コンピュータ名" を変更
- "リモートログイン" をチェック -> 省エネルギーが開く
- 省エネルギー
- バッテリー
- "コンピュータのスリープ" -> しない
- "ディスプレイのスリープ" -> 15分
- "この電源を使用するときはディスプレイを少し暗くする" のチェックを外す
- 電源アダプタ
- "コンピュータのスリープ" -> しない
- "ディスプレイのスリープ" -> 30分
- バッテリー
- Time Machine
- "Time Machineの状況をメニューバーに表示" のチェックを外す
- 日付と時刻 -> 時計
- "秒を表示" をチェック
メニューバー
- 画面右上のバッテリのアイコン -> 表示 -> "割合" をクリック
- キーチェーンアクセス.app(Applications -> Utilities)を起動 -> 環境設定 -> 一般
- "メニューバーに状況を表示" をチェック
Dock
- FinderとSafari以外を消す
- 辞書.app(Applications)をDockに入れて起動 -> 環境設定
- Dictionary, Thesauras, Wikipediaをチェック
- ターミナル.app(Applications -> Utilities)をDockに入れて起動
- Dockのターミナルを右クリック -> "ログイン時に開く" をクリック
- 環境設定 -> 設定
- 左下の+をクリック、適当な名前を付ける
- テキスト
- フォント -> Monaco 12pt
- "テキストをアンチエイリアス処理" をチェック
- テキストの色 -> 白
- カーソルの色 -> 緑(不透明度50%)
- 選択部分の色 -> 白(不透明度50%)
- ウィンドウ
- タイトル -> なし
- 背景の色 -> 黒(不透明度80%)
- ウィンドウサイズ -> 110x44
- シェル
- シェルの終了時 -> シェルが正常に終了した場合は閉じる
- 詳細
- "オーディオベル" のチェックを外す
Safari
- single window modeを有効にする(参考: http://www.naquah.net/blog/dennis/2008/03/21/how-to-enable-single-window-mode-in-safari)
- ターミナルに defaults write com.apple.Safari TargetedClicksCreateTabs -bool true と入力してエンター
- ブックマークを全部消す
- ステータスバーを表示
- 環境設定
- 一般
- ホームページ -> 空白
- 履歴からの削除 -> 1日後
- ダウンロードしたファイルの保存先 -> デスクトップ
- ダウンロードリストからの削除 -> Safari を終了した時
- "ダウンロード後、安全なファイルを開く" のチェックを外す
- タブ
- "複数のタブを閉じるときに確認" のチェックを外す
- 自動入力
- "ユーザ名とパスワード" 以外のチェックを外す
- 一般
- 色々ダウンロード
- AquaSKK(http://aquaskk.sourceforge.jp/)
- KeyRemap4MacBook(http://www.pqrs.org/tekezo/macosx/keyremap4macbook/index.html.ja)
- Firefox lzyc(http://fox.lazycat.info/)
- EIJIRO mini(http://numata.designed.jp/?EIJIRO%20mini)
- FLIQLO(http://www.apple.com/jp/downloads/macosx/customize/fliqlo.html)
- Mercurial(http://mercurial.berkwood.com/)
- MacPorts(http://www.macports.org/)
これくらい設定したところでソフトウェアアップデートのダウンロードが終了。ソフトウェアアップデートをすると再起動される。
色々インストール
- AquaSKK
- KeyRemap4MacBook
- インストールしたら再起動
- システム環境設定 -> KeyRemap4MacBook -> Emacs Modeを適当にチェック
- Firefox lzyc
- Applicationsに入れる -> 名前をFirefoxに変える -> Dockに入れる
- 前のマシンから環境移行
- EIJIRO mini
- Applicationsに入れる -> Dockに入れる
- 前のマシンから辞書データを持ってくる
- FLIQLO
- 自分のホーム -> Library -> Screen Saversに入れる
- デスクトップとスクリーンセーバ -> スクリーンセーバ
- スクリーンセーバ -> その他 -> FLIQLO
- スクリーンセーバを開始 -> 10分
- Mercurial
- Xcoce
- 付属DVDから入れる
- MacPorts
- 普通にインストールする
MacPorts
- 準備
- ターミナルを使うのでついでに各種設定ファイルを前のマシンから持ってくる
- sudoの時間を長くする、ついでに表示も変更
- /etc/sudoers に Defaults timestamp_timeout = 30 と Defaults passprompt = "%u@%h Password: " を追加
- noraports(http://noraports.com/)も入れておく
- 設定
- 色々インストール(参考: http://osx.miko.org/index.php/Beginning_OS_X_10.5 のアプリ導入編)
- lv
- libiconv +enable_cp932fix
- zsh-devel +mp_completion +pcre
- pTex +utf8 +nox11
- dviはMxdvi(http://uat.thx.inst.keio.ac.jp/~uchiyama/macptex.html)で見る
- gnuplot +no_x11
- screen +cjkwidth
- 最初から入っているscreenだとgnuplotの結果がaquatermに表示されない(参考: http://d.hatena.ne.jp/moro/20080405/1207411997)
- rlwrap
- gauche
- ghc
- smlnj
- spidermonkey
- 謎の現象
- sudo port upgrade installed とするとopenmotifを入れようとする(pTexのvariantsが無視されている?) -> upgrade outdatedだと平気っぽい?
Finder
- 環境設定 -> 詳細
- "すべてのファイル拡張子を表示" をチェック
- "拡張子を変更する前に警告のチェック" を外す
- "確実にゴミ箱を空にする" をチェック
- 表記を英語にする(参考: http://hasumi.info/~h2/ -> http://hasumi.info/~h2/category/macos/tips/)
- cd /System/Library/CoreServices/SystemFolderLocalizations/
- sudo mv Japanese.lproj Japanese.lproj.bak
- sudo ln -s ./en.lproj Japanese.lproj
- killall Finder
- タイトルにパス表示(参考: http://hasumi.info/~h2/ -> http://hasumi.info/~h2/category/macos/tips/)
- defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES
- killall Finder
- fcd入れる(http://homepage.mac.com/tkurita/scriptfactory/Softwares/FinderHelpers/fcd/)
- ファイル共有