今週ラボで何をしてたか日記
ラボ掲示板からhowmにエクスポートするスクリプトを書いた。
GoogleDesktopを入れているとCtrl2回で検索ウィンドウが出ることに気がついた
あっ、そうか 今まで
for(Object o: r.marginalEdge){
IEdge e = (IEdge)o;
}
ってやってたけど
for(IEdge e: (Vector<IEdge>)r.marginalEdge){
}
でいいのか。
少しずつかしこくなる。
口内炎がしみる…
わかった、右手首が痛くなったのはマウスを使ったからだ。 普段動かさない筋肉を使ったから筋肉痛になったんだ。
手首回すと引っかかる。かなりやばい。 腱鞘炎なりかけ。 それもこれもマウスのせいだ。
FujiSankei Business i. TOPIC/目で動くマウス 障害者、広がる仕事の場(2004/9/11) http://www.business-i.jp/news/top-page/topic/art-20040910214939-SQQMQUGOYK.nwc
フット用マウス http://www.edikun.co.jp/footmouse/footmouse.htm 高いなー
足用マウス「足技Ⅱ」:就労支援機器のページ http://www.kiki.jeed.or.jp/pro/g312210.html んー。
NOHANDS MOUSE http://www.footmouse.com/
HHKの真ん中にトラックポインタが付けばいいんだが。
悲しい。 ハッピーハッキングキーボードは ハックできないように特殊なもので止めてあった。 ハックしてゲームパッドのジョイスティックでも解体してつっこもうと思ったのに。 ハックできないハッキングキーボード…。
Python、re.finditerしらなかった。便利。
m = re.match(...
if m:
doSomething(...
じゃなくて
for m in re.finditer(...
doSomething(...
という選択肢。
from xml.sax.saxutils import unescape
残念、"とかは置換してくれない。
= 5月31日。
シングルトンパターンは事実上のグローバル変数だけども、 Javaの場合どこからでもアクセスできるのはクラスの名前だけで、 一般的な操作では同じクラスの名前が束縛されているオブジェクトが変わることはない。 つまり単一代入なのだ。 だからわりと有効に機能しているんだなぁ…と気がついた。
だからクラスが単一代入でないPythonで形だけまねてシングルトンパターンにしたって無意味だし、 仮に単一代入の名前空間を実装したところで、それ自体は単一代入でないなにかに入れないとアクセスできないわけなので根本的な解決にはなっていない。
for (int i = 0; i < vertexList.size(); i++) {
とか
for(Iterator i = allEdges.values().iterator();i.hasNext();){
とか
for(Object o: allEdges){
とかが混在している。成長の爪痕。
Javaで複数の値を返したくて、ローカルにネストしたクラスを作ったが 当然、それを返してもローカルのクラスはアクセシブルじゃないので無意味
フィールドの位置に移動したら見慣れぬエラーが。 >アクセス可能な型 Selection のエンクロージング・インスタンスがありません。 型 Selection のエンクロージング・インスタンスで割り振りを限定する必要があります (たとえば x.new A() で、x は Selection のインスタンス)。
今回はResultにstaticをつければ済む話だけど 仮にあえてやるとすれば Result result = new Selection(null).new Result(); でコンパイルが通った。 こんな書き方がありだとは… っていうか要するにnewの構文がおかしいんだよなぁ。 Selection.createInstance().Result.createInstance() ってことだもんなぁ。
(6月1日注:Pythonでタプルでくくって多値を返すようなことがやりたければ new Object[]{a, b, c}して返すのが近いだろうか。)
しまった、振り込まないといけないものがあったんだ お、みずほ銀行赤坂見附支店は24時間営業か。
配列をCollectionに変えるのに、Arrayにそういうメソッドがないなぁと調べてみたらArraysというクラスにasListってのがあった。 (6月1日注:以下しばらくの内容はラボブログに書きました)
(6月1日注: あー、こうやって公開してもよさそうな情報は一般公開しているけど、 mixiの書き込みで見つけた有名なハッカーのコメントなんかは 一応mixiの書き込みである以上公開しちゃいけないよな)
orz 銀行行くの忘れてた 今から行くと終電微妙 明日振り込むと発送が月曜日だろうなぁ そして受け取るのが次の日曜とかになりそうだ
= ジェネレータにsendをつけようという提案 http://www.python.org/dev/peps/pep-0342/ > to make them usable as simple coroutines ジェネレータをコルーチンとして使えるように、だそうな。
yieldを使いこなすと何かおもしろいことができそうだなぁ。sendとか。
send関係ないけどreturnの代わりにyieldって書くだけで遅延評価
>>> def foo(x):
yield force(x) * 100
>>> def force(x):
if "next" in dir(x):
return force(x.next())
return x
>>> a = foo(foo(5))
>>> a
>>> a.next()
50000
でも、Haskellが偉いのは遅延評価ができるからではなく、
パターンマッチが必要最小限だけその遅延されたのをforceしてくれるから。
こんな「全部展開しちゃう遅延評価」なんてHaskellの足元にも及ばない。
Pythonのバイトコードを実行する方法ってないのかなぁ。 sys.exechogehoge("\xff\xff\xff...")って感じの。
ぎゃー gzip -rってやったら 再帰的にすべてのファイルが*それぞれ別個に*圧縮された!orz
http://amaznode.fladdict.net/ あうー。
ASとXML http://members.netmadeira.com/killer/xmlrpc/ http://livedocs.adobe.com/flex/2/langref/XML.html
The Gutenberg Webster's Unabridged Dictionary by Project Gutenberg and Webster - Project Gutenberg http://www.gutenberg.org/etext/660
e 96161 i 76258 a 74936 r 64251 t 62125 o 61884 n 58064 s 52677 l 51265 c 40423 u 32216 p 28245 m 27593 d 26654 h 23204 g 19984 y 18587 b 16372 f 11089 v 8557 w 6244 k 5838 x 2781 z 2722 q 1709 j 13337文字以上の文字列で、J単体より出現頻度の高いものは存在しない。 6文字の ation$ 2317 が最大。
やはり冒頭より末尾に特徴が出るみたい。4グラムの結果:
ion$ 3629 tion 3517 ess$ 2981 ous$ 2955 ate$ 2574 atio 2451 ing$ 2217 ness 1960 ble$ 1900 ent$ 1779 able 1597 ical 1473 ity$ 1435 ter$ 13973グラムだと冒頭のも少し混ざってくる。
PythonにもHaskellみたいにconcatMapがあればいいのに。
sum(map(f, xs), [])destinationから誤字を生成した結果:
13.9351636617 7 ation => g $desting$ 7.67656794942 7 ation => e $destine$ 5.10651757985 7 ation => ess $destiness$ 4.67049248373 7 ation => t $destint$ 4.41360062079 5 in => r $destration$
therapist: 68.5779159295 6 pi => li $theralist$ 50.4951876028 5 ap => al $theralist$ 48.9651783919 5 ap => m $thermist$ 39.5948029493 5 ap => s $thersist$ 30.8206729864 5 ap => t $thertist$うーん。serapistとかが候補に挙がってこないなぁ。
= 5月28日。Jython関係であがく。
= 5月25日。
paths must precede expression(略原因: *.* を引用符で囲まないとbashが展開しちゃう
レゴブロックでピタゴラ装置のレールを造る場合、 普通に作ってもでこぼこでうまく進まないし、 試しに上が平らな部品で覆ってみたけども 「そこが平らなレール」では「レールから離れるときの位置」に自由度があるためにコントロールしにくい。「離れる向き」にもばらつきが出るし。
というわけで今思いついたのだけど http://dgla.jp/shop/detail.php?seq=4461&&kw= これを使ってV字の谷を作ればいいんじゃないだろうか。 ブロック2ます分のスペースで十分ビー玉が通るし。
Vector params = (Vector) Convert.make(
"[{'methodName': 'dump', 'params': []}]");
らくちん。
でも「Convert」って感じではないなぁ
= という感じの一週間でした。
あと僕が詳しいことを書いちゃいけないと思うので書かないけど、 今日から新しい人が入ってきました。 公式の発表をこうご期待。
あ、なんだもう公開してあった。 IT戦記 - そろそろサイボウズ・ラボについて一言いっとくか。 これ面接とかは僕が入る前に終わっていたので、僕が知ったのはスケジュール帳の「6月1日 天野さん入社」っての。で、どの天野さんかなぁ、とスルーしていたらなんとこの天野さんか! それを知ってから今日までどんだけしゃべりたかったことかw 社会人というものは業務上知り得たことをみだりにしゃべらない自制心が必要なのだなぁとしみじみ思ったものだよ。で、秘密は守り抜けました!えらい?(普通)