Archive@2007/11

流行のタイピングスピードテストやってみた

Speedtest - how fast are you? めっちゃ焦ってがんばるオレバージョンと冷静に鼻で笑いながらやるオレバージョンで試しました。 焦って書くとかなりタイピングミスが多くなってだめですね。160点くらいになりました。 で、画像は後者のおれバージョンでやってみました。こんなもんで満足です。 ちなみにキーボードは日本語配列のPowerbookで、Capslockがoffにしてある意外デフォルトです。 英語配列のキーボードにちょっと揺らぎ中。 ただ、日本語が書いてないという見た目的なものとコマンドキーが右側にもあるっていうくらいしかメリットが浮かばなくて保留中。 その他のメリット募集中。
Posted at: 
2007/11/23 16:36:41
0 Comments
0 TrackBacks
Tags: 
Trackback: 
http://blog.monospace.jp/2007/11/23/typing_speedtest/trackback/

Vimpi - Vimプラグインウォッチングサイトに登録してみました

Vimpi - vim plugins watching. プラグインのウォッチングというよりも、 他の人がどんなプラグイン使ってるかとか分かるのが楽しげです。 プロフィール登録に.vimrcを書くところがあるのがいいですねw あと関係ないんですけど、どう書く?orgみたいにどうVimる?orgが欲しいな。
Posted at: 
2007/11/23 13:50:01
0 Comments
0 TrackBacks
Tags: 
Trackback: 
http://blog.monospace.jp/2007/11/23/vimpi/trackback/

Xcode3.0でPython-Cocoaアプリ - SimpleTable.app 03

NSTableViewを使った簡単なアプリの拡張その3です。 ダブルクリックの取得がやっとできました。 今回はついでにダブルクリックした行の色の名前を取得して表示してみます。 [python] def awakeFromNib(self): self.titleLabel.setStringValue_(u'HTML ColorName List') self.colorName.setStringValue_(u'Color Name') #色の名前を表示するところ。デフォルトをColor Nameに。 self.tableView.setUsesAlternatingRowBackgroundColors_(True) self.tableView.setDoubleAction_(self.doubleClicked_) #ダブルクリック時に呼び出すメソッドを指定 [/python] クリック時とダブルクリック時を処理するメソッドを定義します。 clicked_の方は実際使用しないんですが、IBActionでデコレートしてこっちをIBでAppControllerとつなぎます。 doubleClicked_は、IBに送らなくてもいいのでIBActionは使ってません。 [python] @objc.IBAction def clicked_(self, sender): pass def doubleClicked_(self, sender): """ダブルクリックされたときの処理""" row = sender.clickedRow() #ダブルクリックされた行 colorName = self.colors.keys()[row] self.colorName.setStringValue_(colorName) [/python] これでいろいろとできそうです。
Posted at: 
2007/11/18 23:42:09
0 Comments
0 TrackBacks
Tags: 
Trackback: 
http://blog.monospace.jp/2007/11/18/xcode3_cocoa_python03/trackback/

Xcode3.0でPython-Cocoaアプリ - SimpleTable.app 02

SimpleTable.app 01 ちょっとずつ改良していこうかと思います。 前回のバージョンだとボタンを押すまで、タイトルテキストの「HTML Colorname List」という表示がでませんでした。 これは、どう考えてもGUI表示の時点で表示されるべきなので、そうします。 (もちろん変更しないテキストならIB(InterfaceBuilder)で直接入力してしまう方が早いですが) そのためには、AppControllerクラスにawakeFromNibというメソッドを実装すればよいみたいです。 これは、nibファイルが読み込まれたときに実行されるメソッドなので、表示するデータを初期化するときに使えるみたいですね。 [python] def awakeFromNib(self): self.titleLabel.setStringValue_(u'HTML ColorName List') self.tableView.setUsesAlternatingRowBackgroundColors_(True) #行の背景をしましまに [/python] ついでに、テーブルがしましまになるようにするメソッドも呼んでおきました。 ちなみにこれもIBでAlternating Rowsにチェックいれるだけでもできます。 そういうわけでawakeFromNibっていうのがあるよっていう話でした。
Posted at: 
2007/11/17 21:59:11
0 Comments
0 TrackBacks
Tags: 
Trackback: 
http://blog.monospace.jp/2007/11/17/cocoa_python_simpletableapp02/trackback/

ブログのデザイン変更しました

ブログのデザインを変更してみました。 WordPressについて詳しくなったような気がします。 今の時代は、ワンカラムのワンエントリーです。 RSSリーダ経由の方が多いと思うので、正直デザインなんてどうでもいいんですよねw 自分もあんまりサイトまでいってブログみることないので・・・ まあでもこれを機に、もっとしょうもないことを書いていこうと思いました。
Posted at: 
2007/11/15 00:39:37
0 Comments
0 TrackBacks
Tags: 
Trackback: 
http://blog.monospace.jp/2007/11/15/design_renewal/trackback/

Vimでqを使うときの話の続き

Voluntasさんにコメントで正規表現でという指令をもらいました。 あと、はてブの方のコメントでもこの程度なら正規表現でも十分と頂きましたんで、ちょっと挑戦しておきます。 正規表現は頭使うから苦手なんですよね・・・あと間違ったこと書くと炎上し(略 で、前回qを使って置換したあれですが、 [code]:%s/\v^(#\w{6})\s+(\w+)\s*$/"\1": "\2",/[/code] うーん、確かにこの程度だと正規表現でも楽w なんか正規表現って抵抗あるんですよね。難しく考えてしまうというか。ちゃんと勉強しよっと。 Vimmerの道は遠いなあ・・・なんか他人がVimを使ってるときの動画を集めたサイトとか欲しいなw ちゃんとキーボードも映してね。何してるか意味わかんないから。
Posted at: 
2007/11/13 17:36:26
0 Comments
0 TrackBacks
Tags: 
Trackback: 
http://blog.monospace.jp/2007/11/13/vim_record_example2/trackback/

こんなときVimでqを使ってます

Vimのノーマルモードで、q[a-z]って押すと「記録中」とかでるあの機能ですけど、 ちょうど昨日使う機会があったので、ブログっておきます。 [code]#000000 BLACK #FF0000 RED #00FF00 LIME #0000FF BLUE #FFFF00 YELLOW #00FFFF AQUA #FF00FF FUCHSIA #FFFFFF WHITE #008000 GREEN #800080 PURPLE[/code] こんなのからPythonの辞書型にしたいときとかに使いませんかね。 とりあえず、qaって押して、aに記録するようにして、
^i"<Esc>eea":<Esc>wi"<Esc>ea",<Esc>j
qを押して記録終了。aに記録したので、@aって打つと↑で記録した内容を実行してくれます。 100@aとかしたら100行に同じことしてくれます。 あんまり汎用的じゃないんだけど、その場で大量に同じ処理する場合とかに使ってます。
Posted at: 
2007/11/12 15:03:13
0 Comments
0 TrackBacks
Tags: 
Trackback: 
http://blog.monospace.jp/2007/11/12/vim_record_example/trackback/

Objective-CとPyObjCに関する備忘録 其の一

Objective-Cの世界では、こんな感じでメソッドを使うわけですが、 [code]dict = [NSDictionary dictionaryWithObject:@"PyObjC" forKey:@"Python"];[/code] これをPyObjCで書くと、 [python]dict = NSDictionary.dictionaryWithObject_forKey_(u'PyObjC', u'Python')[/python] こんな感じにやたらと長いメソッドになります。 Objective-Cが引数にラベル名をつけるとか、特殊な実装してます。SmallTalkがこういう感じなんですかね。知らないですが。 PyObjCでは、メソッド名をアンダースコアで区切ってラベルをくっつけます。さらに最後がアンダースコアで終わります。 @IBActionでデコレートしたメソッド(アクションメッセージを送信する)での話ですが、 気軽にアンダースコアで区切ったメソッド名を使うと痛い目にあいます。(あいました。) PEP8とかDjangoの標準コーディング規約で、メソッド名をアンダースコアでって言われてるのでなんか違和感あります。 PyObjCのコーディングするときは、mixedCaseに統一すべきなのでしょうか。 PEP8だと、広く使われている文脈なら仕方ないから使ってもいいって書いてあるなあ。 PEP8 - Style Guide for Python Code(和訳) Django プロジェクトに協力するために - コーディングスタイル
Posted at: 
2007/11/12 04:59:15
0 Comments
0 TrackBacks
Tags: 
Trackback: 
http://blog.monospace.jp/2007/11/12/objc_memo_01/trackback/

Xcode3.0でPython-Cocoaアプリ - SimpleTable.app 01

引き続きPython&Cocoa;を勉強中です。 なんかPyObjCを勉強するより、Objective-C覚える方が早い気もしてきます。 とにかくPython-Cocoa関連の情報が少ないので、こんなんでも苦労しました。 ちなみにLeopardに搭載されてるPyObjCはPyObjC2だそうで。 前回力をいれすぎて疲れたので、省エネモードで。 今回は、テーブル表示するアプリを作ってみました。 まずは、プロジェクト作成(Python-Cocoa Application) ↓ MainMenu.xibをダブルクリックして、InterfaceBuiler(IB)を起動。 ↓ AppController(NSObject)を作成し、 WindowにLabel(NSTextField), Table View(NSScrollView), Push Button(NSButton)を配置して、Action, Outletをつなぐ。 Table ViewからAppControllerへdataSourceをつなぐ。 さらに、テーブルのカラムを選択して、TitleとIdentifierを設定。Identifierは後で使用します。 ↓ AppControllerを選択した状態で、File->Write Class Files...を実行。 LanguageをPythonで書き出す。 ↓ Xcodeに戻り、Classesグループの上で右クリック->追加->既存のファイルで、 さっき書き出したAppController.pyを読み込む。 ↓ AppController.pyを以下のように編集。 データとして、16色のカラーチャートとその16進数表記を使います。 numberOfRowsInTableView_とtableView_objectValueForTableColumn_row_は、 NSTableViewを使用する際に、実装しなければならないメソッドです。 [python] # vim: fileecoding=utf8 from Foundation import * from AppKit import * import objc class AppController(NSObject): ### テーブルに表示するデータ。カラー名と16進数の辞書 colors = {'black': '#000000', 'gray': '#808080','silver': '#C0C0C0', 'white': '#FFFFFF', 'maroon': '#800000', 'red': '#FF0000', 'purple': '#800080', 'fuchsia': '#FF00FF', 'green': '#008000', 'lime': '#00FF00', 'olive': '#808000', 'yellow': '#FFFF00', 'navy': '#000080', 'blue': '#0000FF', 'teal': '#008080', 'aqua': '#00FFFF'} tableView = objc.IBOutlet() titleLabel = objc.IBOutlet() @objc.IBAction def getColorList_(self, sender): """ボタンをクリックしたときに、titleLabelの設定とテーブルのリロードを行う""" self.titleLabel.setStringValue_(u'HTML ColorName List') self.tableView.reloadData() def numberOfRowsInTableView_(self, tableView): """実装しなければならないメソッド。データのレコード数を返す。""" return len(self.colors) def tableView_objectValueForTableColumn_row_( self, tableView, tableColumn, row): """実装しなければならないメソッド。引数rowの行に入るデータをカラムごとに設定""" identifier = tableColumn.identifier() # IBで設定したIdentifierを取得 if identifier == u'name': return self.colors.keys()[row] elif identifier == u'hexcode': return self.colors.values()[row] return None [/python] main.pyにimport AppControllerを追加。 ビルドして進行。
Posted at: 
2007/11/12 02:56:41
0 Comments
0 TrackBacks
Tags: 
Trackback: 
http://blog.monospace.jp/2007/11/12/xcode3_cocoa_python_simpletableapp/trackback/

LeopardのXcode3.0を使って超簡単なPython&CocoaなApplicationを作る

LeopardのXcodeでは、PythonでCocoaのアプリを作るのが簡単です。 久々にチュートリアルっぽい投稿をさらしてみます。 今日なんとなく始めたばっかなので、間違ってたら教えてください。 プロジェクトの作成。Cocoa-Python Applicationを選択し、 プロジェクト名と保存ディレクトリの指定。 新規ファイルの作成で、Python NSObject subclassを指定。 ファイル名を適当につける。HelloWorldControllerとか。 ソースを書く。といっても1行。 [python]from Foundation import * class HelloWorldController(NSObject): helloStr = 'Hello World!'[/python] main.pyでHelloWorldControllerをimportする。 MainMenu.xibをダブルクリックしてInterface Builder起動。 ウィンドウのサイズを調整したりする。 Labelをウィンドウにドラッグ&ドロップ。サイズを適当に変更。 続けてNSObjectをMainMenu.xibの中にドラッグ&ドロップ。 ドロップしたNSObjectを選択して、インスペクタを開き、クラス名をHelloWorldControllerに変更。 ウィンドウ上のLabelを選択し、インスペクタのBindingsをクリックし、Hello World Controllerを選択。 BindToの前のチェックボックスにチェックを入れて、Model Key PathにhelloStrと入力。 Interface Builderを保存して終了。 Xcodeに戻って、コンソールを出して、ビルドして進行をクリック。 ウィンドウが起動したら完了。 プロジェクトディレクトリにHelloWorld.appが出来てます。外に出しても動きます。
Posted at: 
2007/11/05 00:48:30
0 Comments
0 TrackBacks
Tags: 
Trackback: 
http://blog.monospace.jp/2007/11/05/xcode3_cocoa_python/trackback/