Hatena::ブログ(Diary)

salexkiddの飛び出せ計算機!(絶賛無職中) このページをアンテナに追加 RSSフィード

2011-05-15 >>> 表示しておくんなまし(ハローワールド) このエントリーを含むブックマーク このエントリーのブックマークコメント

2年前、衝撃的なものをみた。それは、全てが日本語で書かれているコード。

C#だったかなでしこだったか忘れたが、僕と友人は“それ”を見た瞬間に汚物を踏んづけてしまったような顔をした。

コンピューターにとって、日本語は汚物だ。

僕はコンピューター上で日本語を使ったシステムが好きじゃない。ファイル名すら日本語にするのが嫌いだった。

昔あった問題では、日本語名を持つファイルを読み込むと固まってしまったり、システム間でのファイル共有に問題があったからだ。

それにEUCやらSJISの問題で、Perlのコードを実行すると、バケバケになってしまったりとロクな目にあったことがなかったのだ。


そんな僕の“柿が熟しすぎてグチャグチャになってるような半腐れ顔”を見て、ある人はこういった

「このコード、実は君たちが絶対に必要とするものが書かれていないんだ」と。


僕と友人はアメリカ横断ウルトラクイズの帽子よろしく頭に“?”を浮かばせた。

一見、そのコードは日本語が利用してある以外、別段どこも特別なところがなかった。

そうこうしているうちに、タイムアップ(そして「ブー」という音)


その人は言った。「このコード、コメントが一切ないんだ


言われてはじめて気がついた。まったくコード上にコメントがなかったのだ。

日本語で記述されているだけに、関数名を見れば一目瞭然。初見なのに、そのコードが何をするべきなのかを的確に把握することができた。

そして、日本語で書けるコードの素晴らしさを「言葉」でなく「心」で理解した。


英語は日本人平均プログラマー(男子)にとって、ネイティブコードではなく、ExciteさんやGoogleさんに頼んで翻訳してもらうものだ。

そうじゃない奴は知らない。


その時から時代は日本語になった。


時は流れて今。「いじってねーなPython3.2…」と思った瞬間、

思い出した。

上の話を。

即興で書いた。


表示しておくんなまし=print
名前="コング"
殴れる物="大統領"
勘弁な物="飛行機"

def お前誰よ():
   表示しておくんなまし("俺の名前は{0}".format(名前))
   表示しておくんなまし("{0}だって殴ってみせらぁ".format(殴れる物))
   表示しておくんなまし("でも{0}だけは勘弁な".format(勘弁な物))

お前誰よ()

分かりやすいね!

こういうときどういう顔をすればいいの?

Dan salexkidd the Japanese Programmerとかいうのかな。

2010-12-21

OpenKinect(libfreenect) + Python Wrapper について書いておくか。(id:mactkgが)

04:53 | OpenKinect(libfreenect) + Python Wrapper について書いておくか。(id:mactkgが)を含むブックマーク OpenKinect(libfreenect) + Python Wrapper について書いておくか。(id:mactkgが)のブックマークコメント

概略:読めばlibfreenectのPythonWrapperのインストールが確実にできるはず

KinectつかったHackがすごく楽しそうだね。

あれ?いつの間にか手元にKinectがあるよ?そして残高が減ってるんですが…

さて、PythonでHackしますか。その前に一緒にHackする人が欲しいね。

というわけで、Kinectについて熱く語ったその30分後、id:mactkgがソッコー

秋葉なう」

さて、PythonでHackしますか・・・あれ、PythonWrapperのインスコにコケる。

日本中の"OpenKinectのlibfreenectインスコしましたよ" 系のみなさんがPythonのWrapper

インストールにこける中、なんとかインストールを果たした。

でも俺は文章化能力が皆無なのでSkypeインスコ方法を伝えたらid:mactkgまとめてくれた。ありがたい!

2010-01-21

Djangoで、永続したpickleオブジェクトをDBに保存する方法

01:17 | Djangoで、永続したpickleオブジェクトをDBに保存する方法を含むブックマーク Djangoで、永続したpickleオブジェクトをDBに保存する方法のブックマークコメント

入り用で、pythonのpickleモジュールで永続したオブジェクトDBに投げ込まなくちゃならなかった。

が、Djangoのモデルフィールドにはそれに特化したものは存在しない。ほげー。

というわけで、考えが結果こうなる。

まずは適当なObjをpickle.dumps(tmp_obj)で文字列化。

これをbase64モジュールのb64encode()でb64化。

それを10000文字位を指定したCharFieldに入れてsaveする。

これでおk

2009-12-09

PythonでPKI関係をいじる(1)

03:47 | PythonでPKI関係をいじる(1)を含むブックマーク PythonでPKI関係をいじる(1)のブックマークコメント

Pythonを使い、PKI関係の処理を自動化したいと思った。で、Pypiで調べるとドストレートなpkiというモジュールを発見。

即 "easy-install pki install"と決め込んでみたものの、インストールでぶっこける。

エラーを見ると、OpenSSLライブラリPythonの橋渡しをSWIGでモゲモゲするM2Cryptoというモジュールインストールでこけている。

エラーの内容は"opensslconf-i386.h"がないですよとのこと。

しかし、openssl-develもインストール済みなのになぜ…

調べてみると、どうやらsetup.py中の以下の行を変更しなくてはならないらしい

self.swig_opts.append('-includeall')

#self.swig_opts.append('-D__i386__') # Uncomment for early OpenSSL 0.9.7 versions, or on Fedora Core if build fails

#self.swig_opts.append('-DOPENSSL_NO_EC') # Try uncommenting if you can't build with EC disabled

もういかにもって感じ。

上記を以下に変更する

#self.swig_opts.append('-includeall')

self.swig_opts.append('-D__i386__') # Uncomment for early OpenSSL 0.9.7 versions, or on Fedora Core if build fails

self.swig_opts.append('-DOPENSSL_NO_EC') # Try uncommenting if you can't build with EC disabled

これでいけた。

もちろん、SWIGインストールしてないとエラーになるから注意

2009-11-08

Snow LeopardでSSHFSを利用している人に対するメモとファイル

16:32 | Snow LeopardでSSHFSを利用している人に対するメモとファイルを含むブックマーク Snow LeopardでSSHFSを利用している人に対するメモとファイルのブックマークコメント


アブストラクト

とりあえず、Snow Leopardで、問題なく利用可能(SSHdelay.so削除 & follow symbolic link問題解消)なMacfusionのバイナリを配布しとります。

このエントリの下からどうぞ。とにかく「今すぐ使える」ことがメイン。自己責任で!

信頼できないファイルじゃ!とお考えならば、macfusionのソースを落として、

エントリに記載してある問題を修正してコンパイルしてくださいな。

前に Snow Leopardインストールし、逃げるように Leopard に戻った。

問題点はいくつかあったが、大きな問題が2つあった。

1つめが「ことえりの馬鹿さ加減」。2つめが「SSHFSが正しく動作しない

1つめについては答えが出た。それは カワセミというIM。

egbridgeの後継と考えても差し支えはない。

まだ使い始めたばかりなんだけど、以下の2つをサポートしている点で選択した。

  • Snow Leopardに対応している
  • ことえりよりも有能
  • 文章記述中、Shiftキーを押すことによって半角英数をインラインで入力できる
  • 1995円(!)

これならば、ATOK2009を買わなくても問題はない。むしろ、ATOK2009はあるバグを放置してリリースしているという大きな問題がある。

(バグについては内容から外れるので書かないが、「対応しないよーぷっぷー。ATO2010で直してやるよ」と言うようなことを言われた))

変換効率については、それぞれの打ち方というのが存在するので何とも言えないが、ことえりよりも少々賢い、ATOKよりはアホっぽい感じはする。

これについては使っていくうちに慣れればよい話だし、こまけぇこたぁいいんだよ的発想で利用を継続しようと思う

IMの話はこれくらいにして、次の問題に移る。そう、SSHFSだ。

Snow Leopardが発売されて約3ヶ月。MacFusionは初期のころから対応していたが、SSHFSはちゃんと対応していなかった。

「でもまぁすぐ対応するだろう」とか思っていたら、これが全然対応しない。一体全体これはどうしたことなんだろうか。

どこかの国のエージェントが動いてSSHFS系の開発者を全員アウシュビッツ送りにでもしたのかという妄想が広がる。

といっても、MacFusion.app(GUI)や、sshfs.app(GUI)は、sshfsコマンド自体のフロントエンドでしかないみたい。

なので、Snow Leopard 対応といってもコマンド自体がSnow Leopardに対応しないとどうしようもないんだろうね。

一応、昔のエントリにも記述した通り、MacFusionについては sshnodelay.so を削除すれば動作する。

これで逃げようと思ったら、MacFusion にはこの問題とは別に大きなバグがあった。

個人的に、SSHFSのオプションであるfollow_symlinksがonになっていると困る事象が発生した。なので、こいつをなんとかせねばならない。

MacFusion には follow_symlink というオプションチェックボックスで on/off できるようになっているのだが、これが動いていない。

f:id:salexkidd:20091108160731p:image

follow_symlink オプションを off にしてもマウント先に接続すると、必ずfollow_symlinkオプションが有効になってしまう。

実際に、このオプションを off にしている状態のものと、on にしている状態のものでどのような差があるかを調べてみた。

以下がその結果。

#On時

Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/sshfs-static test@dev.local:dev /Volumes/dev.local -p22 -oCheckHostIP=no -oStrictHostKeyChecking=no -oNumberOfPasswordPrompts=1 -ofollow_symlinks -ovolname=dev -ologlevel=debug1

#Off時

Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/sshfs-static test@dev.local:dev /Volumes/dev.local -p22 -oCheckHostIP=no -oStrictHostKeyChecking=no -oNumberOfPasswordPrompts=1 -ofollow_symlinks -ovolname=dev -ologlevel=debug1

差がないのだ。これは、チェックボックスがどう考えても正しく動作していない。

調べてみると、"Cannot disable -o follow_symlinks in 2.0.3"*1にて報告されているバグだった。

ただ、報告 & パッチは投げられているものの、リリースされているバージョンにはこの問題を残しっぱなしという状態だ。怠惰だ・・・。

じゃあなんとかこの問題を修正しようじゃないかということで、とにかく最新版のTrunkにあるソースを拾ってきてコンパイル・・・エラー。

こういう場合、アメリカではこういう表現をすればいいのかな? "Fuck"と。

調べてみると、凡ミスでエラー作り込んでやがりました。

#MFfileSystemControllerの修正ポイント

if (super = [super init]){ -> if (self = [super init]){

そして、一応Tracのチケットを確認したら、やはり同じレポートが…やっぱりバグ修正中に某国のエージェントに連れ去られたんじゃ・・

とにかく、今の問題は「今すぐ動いて」というわけで、修正してコンパイルしたものをUpします。

同じ問題にはまっている人がいたら是非ご活用ください。

とにもかくにも、これでやっとSnow Leopardを安心して利用できそう。あーよかった。

もちろんのことながら、利用は自己責任、なんかあったらソースをmacfusionのところから落として自分で修正してね。

あ、あともし僕がこの修正で某国のエージェントに連れ去られたらうわなにをするやめろうわあああああぁ

Macfusion.zip