2011-01-01から1年間の記事一覧

Clojureにヒアドキュメント的な機能を追加しつつ、compojureでコードを埋め込んでsyntax highlightを効かせる

タイトルが長い。compojure(clojureでsinatra likeなことができる)でwebサイトを作っていたが、RubyやらClojureやらのコードを埋め込みたい。要ははてなのsuperpre記法っぽいものが欲しかったのである。clojureに標準でヒアドキュメント的なことはできないが…

rsyncの使いどころについて

プログラムのファイルとかだったらgitのpush&pullでどうにかなるし、データだったらscpとかでよくね?と思っていたが、結構容量を食うようなデータについてscpをしていると死ぬから差分だけ更新したいみたいなことがある。そういうときはrsyncが結構便利そう…

lsとかをMB単位やGB単位で出す

0が大量に並ばれても僕にはよく分からないので単位変換して出してくれるとうれしい。特にファイル置きすぎてMBなのかGBなのかも分からなくなったようなディレクトリだと。lsの場合オプションにhを付けるだけで、BMだったりGBだったりを付けてくれる。便利。 …

ネストしたvector or hashmap

機械学習とかで隠れ変数を扱っているときに、「隠れ変数zに割り当てたサンプルの数を保存しておきたい」みたいな要望に答えるにはvectorやhashmapを使うのが上等手段だと思うが、隠れ変数が2段、3段となっていくとそれらの構造もネストしていってしまうわけ…

Clojureではまること

関数の引数やletの中で"vec"とかっていう変数を使った後で戻り値を返すときに関数としての"vec"を使ったりするとエラーが意味分かない感じになってしまうので無駄に解読に時間がかかってしまった(例えば"Key must be integer"とかと言われる)。かれこれ3回目…

transientとpersistentについて

Clojureの1.1から使えるようになった機能。Clojureの公式サイトから引用すると If a tree falls in the woods, does it make a sound? If a pure function mutates some local data in order to produce an immutable return value, is that ok? Clojure - T…

Clojureにおける関数の部分適用について

取る引数が複数あって、どれかだけ固定して残りはまだ引数になってる(説明の仕方が悪い)ようなときにはpartial関数が便利。"+"とか"*"のような順序を交換しても結果が変わらないような関数に関してはpartialはとても便利なのだが、"-"とか"/"とかはどっちを…

atomの配列と配列のatom

Clojureは基本的にmutableなものを許さない設計になっているので、do-syncなどのトランザクションの中でrefを変更するコストは結構高い(はず)。ドランザクションではないけど、atomの場合でちょっと実験してみる。atomの配列と配列のatomを用意。要素をラン…

threading macros便利

clojureを書いていると(reduce f4 (filter f3 (map f2 (map f1 lis))))みたいなのがネストしまくって、ソースが横に長くなるときがある(というかよくよくある)。clojureにはそういうのを解決してくれるマクロがいてそれは"->"と"->>"。名前はthread-first ma…

UTF-8-MAC問題を解決する

Mac

大分前から使っている白MacBookのHDD容量が最近足りなくなってきていて、走らせてたプログラムが容量足りずに途中で死んだり、Emacsのバッファが保存できないレベルまできていたので、データを退避させることに。Ubuntuのサーバーに取り敢えず置いておくこと…

Clojure + swank + slimeでのプログラミングの感覚はR on ESSに似ている

最近でこそ使わなくなったものの、自分にとってRは母国語(第一言語?)みたいなもので結構影響を与えている。Rの言語として好きなところ(例えばapplyで行毎にばさっと関数適用してplotしてデータの様子をさくっと眺めるとか)もあるが、データ解析言語としてのR…

Clojure始めます

NLPの下のレイヤー(segmentationやparsing)で公開されているプログラムはC++やJavaであることが多い。XXXの(Ruby|Python|Perl) bindingみたいなのが用意されていることもあるが、そうでないものも多い。あるいはbindingには公開されてない情報も使いたいとか…

On Lispを読み返す

最近Clojureに手を出してみようかなぁと思っているので、On Lispを読み返してみた。On Lisp作者: ポールグレアム,野田開,Paul Graham出版社/メーカー: オーム社発売日: 2007/03メディア: 単行本購入: 10人 クリック: 146回この商品を含むブログ (128件) を見…

木構造に対してイテレータを作る

Rubyistなら知ってて当然みたいな内容かもしれませんが、自分で作るのはたぶん初めてのように思うのでメモ。本当はC++で同様のことがやりたいのだが、Rubyのほうがぱっとやるには早いのでとりあえずRubyにて。状況、モチベーションRubyにしろ、C++にしろコン…

Plaintextがやってくれた。。。

朝にPlaintextとDropboxを同期していたらDropbox側のファイルが全部消えていて焦った。調べてみると同様の現象が起こっている人がいた。同期しているときにスリープしたりするとやっかいなことになるらしい。。。 [ヅ] PlainTextがDropboxにあるファイルをこ…

find + xargs

よく使う割に全然覚えてないというあれ。日本語や空白が入っているとxargs rmとかやったときにうまく行ってくれないということがあるので調べた。 $ find . -name \*~ -print0 | xargs -0 rm 結局、以下で対処した。 find . -type f -name \*conflicted\*.tx…

はてな記法で書いたテキストをローカルでプレビューする

ホテルのネットが絶望的に遅くて、はてな(グループ)にLogを書くときに非常にストレスフルなわけなのでして、どうにかしないと死ぬ。前も似たような感じで、ローカルはてなダイアリーっぽいことをやってた。 が、検索とかいらないので、とにかくプレビューだ…

動的にメンバ変数を生やす

メタプログラミングのメモ。 # -*- coding: utf-8 -*- class MyClass; end hash = {:test => "テストだよ"} MyClass.class_eval do hash.each_pair do |k, v| define_method(k) { v } end end my_class = MyClass.new puts my_class.test メタプログラミング…

メタプログラミングRubyをさらっと読んだ

さらっと、というよりは一発では分かりそうになかったので、というほうが正しいw。ちなみに本書を読む前の自分が持ってた知識レベルは動的ディスパッチ*1とevalの初歩ってくらいです。メタプログラミングRuby作者: Paolo Perrotta,角征典出版社/メーカー: KA…

MSRAインターン記事がアップロードされました

滞在中に書いたMSRAの紹介記事をUniversity Relations in Japan, Microsoft Research Asia | MSRの最新情報をお届けします。にアップロードしてもらいました。 http://msraurjp.wordpress.com/2011/10/28/msr-intern-beijing(滞在中)のご紹介(第29回)/ …

mapとunordered_mapの違いについてまとめておく

NLPだとstd::mapとtr1::unordered_mapなら後者を使うことになることが多いと思うけど、あれこれ混乱してきたのでメモる。NLPerなら押さえておくべき常識のはず。。。それぞれの特徴 データ構造 std::map tr1::unordered_map 実装 赤黒木 ハッシュテーブル fi…

stlのコンテナをgdbできれいに表示する

vectorの要素を見たいんですよ。こんな風にできる。 (gdb) p f.c.x $2 = std::vector of length 2, capacity 2 = {1.4141999999999999, 3.1415000000000002} STLSupport - GDB Wiki gdbのversionを上げて(macportで入れていたのを上げたんだが、上がっていな…

スイッチを読んだ

スイッチ!作者: チップ・ハース,ダン・ハース,千葉敏生出版社/メーカー: 早川書房発売日: 2010/08/06メディア: 単行本(ソフトカバー)購入: 21人 クリック: 301回この商品を含むブログ (58件) を見る個人、組織、社会など様々な事例を挙げながら「変えたく…

Subvocalizationをやめるには...?

読みたい本がばらばらとあるのですが、平日はインターンの仕事などでそれほど時間が取れない => 読むスピードそもそも上げれば状況改善されるんじゃね?と単純な思考に至りました。まずは現状を知ることが重要だ、ということで自分の読む速度をはかってみる。…

「マイクロソフトでは出会えなかった天職」を読んだ

一気に読んでしまった。ぶるぶるきた。これは間違いなく良書。マイクロソフトでは出会えなかった天職 僕はこうして社会起業家になった作者: ジョンウッド,矢羽野薫出版社/メーカー: 武田ランダムハウスジャパン発売日: 2007/09/21メディア: 単行本購入: 39人…

最近読んだ本

ホテルはネットがお世辞にも早いとは言えないので、ネットをgdgdと見る時間が減って読書にあてる時間が増えたのはよいことの一つかなと思います。コンピュータが仕事を奪う作者: 新井紀子出版社/メーカー: 日本経済新聞出版社発売日: 2010/12/22メディア: 単…

10年振りの万里の長城

今月末でまた日本人インターンが数人いなくなってしまう&新しく2人こられた、ということで皆さんと万里の長城に行ってきました。万里の長城は高校の修学旅行*1で一回行ったことがあるので、10年振り。I端さんの研究室の同期の中国人の方に案内してもらってす…

内定式と昔の仲間

gdgd 奈良では合宿の話や(主にM1の人らと)研究の話をできて割と満足したので、土曜の昼から東京へ向かう。夕方頃に東京某所に着きid:yag_ays、id:wakuteka、id:mickey24で飯。Tsukuba.Rの愉快な仲間達という感じで気心が知れているので落ち着く。その後id:re…

修士論文中間発表

修論中間発表と内定式のために日本一時帰国しています。MSRAの仕事のほうは最初は設定とかにつまづいたりして時間食ってましたが、ベースとなるプログラムを書いてしまって、今後の方針が立ったかなという感じの実験の結果は得られたので、出出しとしては割…

お勧め中国語辞書アプリ on iPhone

中国語は発音が難しい言語でピンインと声調が重要(らしい)言語。ピンインは練習してたりはするものの、まだまだ慣れない。中国語のテキストに音声CDがついているので、そちらを参考にしようと思うが、CDのセクション分けがかなりいいかげんで目的の箇所に行…