kwkbtr’s log
(Last modified on Thu, 28 Mar 2013 02:09 JST)Thu, 28 Mar 2013
JavaScriptでのクラスの実装の隠蔽
こんなふうにしたらJavaScriptでクラスの実装を隠蔽できるんじゃないかなあと思った。
function() { // method list var methods = ["methodA", "methodB"]; // implementation class var Impl = function() { ... }; Impl.prototype = { methodA: function() { ... }, methodB: function() { ... } }; // the (interface) class var Foo = function() { var impl = new Impl(arguments); // delegate to the implementation class this.call_method = function(name, args) { return impl[name].apply(impl, args); }; }; // define method interface methods.forEach(function(name) { Foo.prototype[name] = function() { return this.call_method(name, arguments); }; }); return Foo; };
Tue, 26 Jun 2012
std::mapに要素を加える時の話
例えばstd::map<int, a>
に要素を加える時、
std::map<int, a> hoge; hoge.insert(std::pair<int, a>(0, a()));
とやると、クラスa
のコンストラクタは何回走るか?思いつくところで
pair
のコンストラクタの引数のコンストラクタpair
のメンバ変数のコピーコンストラクタmap
のメンバ変数のコピーコンストラクタ
の3回あるが(他にあったら教えてください)、実際にやってみると4回とか5回実行されたりする。じゃあ
hoge[0]
ならどうかというと、clang++ -stdlib=libstdc++
でコンパイルすると3回走るんだけど、clang++ -stdlib=libc++
でコンパイルすると1回だけしか走らない!libc++賢いね!!というお話でした。
Thu, 21 Jul 2011
intのかけ算には気をつけよう
レアケースかもしれないし、当たり前の常識かもしれないが、ちょっとハマったので書き留めておく。
C/C++でint
を使うとたいていは32ビットになるだろう。符号ビットがあるので実質31ビットで、log102が0.3ぐらいだから、十進では31×0.3=10桁くらいが最大値である。したがって103=1000ぐらいのint
を4つかけ算するとオーバーフローしてしまう。(しかも全くエラーが出ない。)ちょっと大きめのint
をちょっとたくさんかけるときはちゃんと大きい整数型にキャストしよう。(Googleはstdint.h
で定義されているサイズが明示された整数型の使用を勧めている。)
Thu, 04 Nov 2010
Mac OS XでCanonのスキャナーがうんともすんとも言わなくて困ったら
Mac OS Xのcase sensitiveなファイルシステムを使っていて、Canonのスキャナー(CanoScan LiDEとか)をつないでもうんともすんとも言わなかったり、コンピューター様に
252.0.0
とか言い放たれるような時は、Can't use Canon LiDE 70 scanner anymore - scanner already in use? - MacNN Forumsにあるように、ターミナルを開いて
cd /Library/Printers/Canon/IJScanner/Resources/Parameters/CNQ4807 sudo ln -s CNQ4807.DAT CNQ4807.dat sudo ln -s CNQ4807M.DAT CNQ4807M.dat sudo ln -s CNQ4807N.DAT CNQ4807N.dat sudo ln -s CNQ4807P.DAT CNQ4807P.dat sudo ln -s CNQ4807R.DAT CNQ4807R.dat
とするとちゃんと仕事をしてくれてせいせいするかもしれません。(パスワードを求められた場合は入力する必要があります)
Tue, 05 Oct 2010
MathJax+Showdown
Once I mentioned TiddlyWiki+MathJax for writing research notes containing mathematical expressions in HTML. Yesterday I invented a simpler solution using Showdown and MathJax.
- Showdown+MathJax example: 20101005-mathdown.html (An incomplete summary of “Quantum Measurement and Control” by Wiseman and Milburn)
Some remarks:
- Modify the script paths before you use it.
- Uncomment the
meta
tag for auto-refreshing, if you want. With this feature, changes you make on the file are reflected to the output on the browser almost in real time. Nevertheless, the auto-refreshing always show the top of the page (at least with Safari), which is annoying. - Showdown's syntax is the same as that of Markdown. There are some conflicts between the Markdown syntax and LaTeX commands, you need to know some workarounds.
- Single backslashes in the commands for opening/closing mathematical expressions (
\(
\)
\[
\]
) must be replaced by double backslashes since there is a backslash escape rule. - The
superscript command (subscript command (^
)_
) and the asterisk (*
) are interpreted as emphasis by Showdown. To avoid this issue, you can put a space in front of the character or escape them with backslashes.
- Single backslashes in the commands for opening/closing mathematical expressions (
Enjoy!
以前、数式を含むノートをHTMLを使って作る方法として「TiddlyWiki+MathJax+Dropboxで開ける明るい未来」を書きましたが、昨日ShowdownとMathJaxを使ったもっとシンプルな方法を考えました。上述の通り、サンプルのファイルを置いてあります。注意点をいくつか。
- 使う前にJavascriptのパスを修正してください。
meta
タグのコメントを外せば自動更新するようになります。これを設定するとほぼリアルタイムにファイルへの変更が出力に反映されて便利です。- ShowdownはMarkdownの記法に基づいて文書を整形するので、少しLaTeXコマンドと衝突します。以下のように回避できます。
- 数式の開始・終了のコマンド(
\(
\)
\[
\]
)の中のバックスラッシュを1つから2つにしてください。これはバックスラッシュによるエスケープルールのためです。 上つき文字(下つき文字(^
)_
)とアスタリスク(*
)は強調と解釈されるので、直前にスペースを入れるかバックスラッシュでエスケープしてください。
- 数式の開始・終了のコマンド(
これで勝つる!
Fri, 24 Sep 2010
A note on interference between independent bosonic fields under U(1) superselection rule
There has been a controversy concerning a question “why two independently prepared Bose-Einstein condensates interferes?” I once considered the problem, and after surveying many related works, doing some calculations myself, and giving a couple of talks about the topic, I feel the problem is now well understood. Still, this question keeps making people confused. I decided to post a note on the subject, which is a slightly modified version of a manuscript I wrote for QIT21. I also uploaded a presentation file I used in a seminar held in Ueda group. I hope these articles help you understanding the problem.
- A note on interference between independent bosonic fields under U(1) superselection rule (PDF, 168KB)
- Interference between independently prepared Bose particles (PDF, 1.8MB)
独立なBECの干渉に関するノートとプレゼンテーションファイルをアップロードしました。
参考:日々の雑感的なもの 11/12/2000(日) 11/13/2000(月) 11/14/2000(火) 11/15/2000(水) 11/20/2000(月) 2009/12/22(火)
Sat, 18 Sep 2010
Evernote Site Memoryを付けました。
ほとんど需要はないような気がしますが。
Tue, 30 Mar 2010
TiddlyWiki+MathJax+Dropboxで開ける明るい未来
(ホッテントリメーカーは使ってないです)
研究や勉強のノートの作り方を考えていたのです。例えばEvernoteだと、
- 他のノートやローカルのファイルにリンクを張れない(と思う)
- ノートブックやタグで関連ノートを集めても、表示される順番をうまく制御できない
- どうもインターフェースがあんまり使いやすくない(気がする。うまく文章にできないけど。サムネイル表示だと長いタイトルが全部表示できないとか、タグを付けるとかの編集作業に対するキーバインドがない(できない)とか。あと、クイックルックができたら結構いいんじゃないかと思う)
- 当然数式が入力できない
- 動作がとろい
とかいう不満があるわけです。じゃあ普通にLaTeXとかでノートを作ればどうかというと、もちろん数式はばっちり入力できるけども、
- ソースファイルをコンパイルして.dvi, .aux, .logファイルができてさらにPDFに変換、ファイルがいっぱいできてうざい
- 編集するファイルと出来上がりのファイルが別だから、編集する画面と出来上がりを見る画面が別々に必要で、うざい
- ローカルのファイルにリンクを張れるかどうかは調べてないから知らないから、うざい
とこれまたうざさが風呂釜いっぱいとまではいかないけれどコップ一杯くらいは溢れている。そこで僕は「えいやっ」と、
TiddlyWiki+MathJax(+Dropbox)
を試してみたんです。
これはいい。
リンクは張り放題だし、ファイルはHTML一つだし、Dropboxに放り込んどけばどのPCでもブラウザ上で編集できてその場で見られるわけですよ。素晴らしい!MathJaxをダウンロードして展開し、TiddlyWikiのMarkupPostHeadに一行 <script src="../MathJax/MathJax.js" type="text/javascript"></script>
と入れるだけ!あら簡単!
ということでこの素晴らしい発見を皆さんにお伝えしようと思って書きました。某ブログの雰囲気を真似たんだけど似てないかもしれないからどことは言わないでおきます。
Sat, 27 Mar 2010
フランス映画
『ずっとあなたを愛してる』(Il y a longtemps que je t’aime/I’ve Loved You So Long)を観に行った。てっきり原題とは違う臭い邦題が付けられているのかと思ったら、そういうわけでもないようだ。
インターネット上の感想を少し眺めてみると、(別に悪い意味ではなく)「暗い」「重い」と評されているようだが、暗さや重さはほとんど感じなかった。感情移入する鍛錬が足りていないのかもしれない(笑)。むしろ、登場人物のやりとりを見ていて、無意識に微笑んでしまうようなシーンが多かった。端から見ればにやついているように見えたであろう。また、「謎」が読めてしまうとかいう批評もあったが、個人的にはそこを期待する映画ではないと思う。純粋に雰囲気に浸れる映画で、なかなかよかった。
それにしても、インターネット上のユーザーレビューを読んでいたら、いろいろ細かいところを見逃しあるいは忘れているような気がしてきて、もう一度観たいなあと思ってしまうな。
Fri, 26 Mar 2010
旅立ちの季節
この春大学を卒業して就職する部活の後輩と飲みに行った。
私が四回生の年に入ってきた後輩で、素直な性格だけど少し頼りないかな、という印象を持っていたのだが、実際は頼りになるキャプテンとして部を取り仕切っていたようだ。もともと部の勧誘活動がうまくいかず部員数が少なかったので、彼には負担をかけてしまうなと責任を感じていたのだが、むしろその状況を利用して人間的に成長してくれたようで、うれしかった。
Sun, 10 Jan 2010
2010年の目標(その二、その三)
2010年の目標その一が一回も守られてないという失態の中、残りの目標を記録しておきたいと思います。
まず、(少なくとも)週に一回、勉強したことや考えたことを何らかの形でアウトプットしたいと思います。本や論文を読んでも、自分できちんと考えてアウトプットしなければすぐ忘れてしまうということに最近気付きました(遅いか)。なのでこれは、自分の勉強と成長のためです。今のところ、このブログ(かな?)に載せる予定です。
それから、論文を四本投稿する。(「出版する」じゃなくて「投稿する」です。)ちょっと無茶かな…。でも、一本は七割方くらい書けているし、現在進行中のも含めて今までのネタで二本は書けるはずなので、新しいテーマで一本書ければOKのはず。
ここを読んでる人はそんなにいないだろうけど、とりあえず公にしておいた方が実現しやすいかと思って書きました。皆様、どうぞじゃんじゃん私の尻を叩いてやってください。
Fri, 01 Jan 2010
2010年の目標(その一)
2010年の一つ目、かつ最優先目標: 「毎晩12:30までに寝る」
私の眠りの状況はTumblrや早起き生活で見ることができます。目標の達成度に応じてご褒美とかペナルティが発生する仕組みがあった方がいいなあ。何かアイデアがある人はぜひ、教えてください。
Wed, 30 Dec 2009
日本学術振興会特別研究員DC2
来年の四月から、日本学術振興会特別研究員DC2に採用されることが内定しました(つぶやき)。いろいろな形でサポートしていただいた皆さん、ありがとうございました。
Mon, 07 Dec 2009
Sleep Cycle alarm clock
一ヶ月半ぶりですね。更新しなかった間のできごとを、Twitter等から拾って手短に書きます。
- 10/26 iPod touch(第二世代)購入。
- 10/27 iPod touch(第二世代)到着。
- 11/4 QIT21参加。
- 11/8 柴田淳の新アルバム、良い意味で予想が裏切られた。
- 11/13 事業仕分け。『まさに13日の金曜日』。
- 11/19 母校での講演会。
- 12/3 学振DC2面接。最後は「ここまで来たら開き直ってやるしかない。自分ならできるはず」と必死に言い聞かせてました。帰りに六本木の国立新美術館に行ってきました。
さて、昨日Sleep Cycle alarm clockなるiPhoneアプリを発見。なんとiPhoneの加速度センサーを使って眠りの深さを割り出し、眠りが浅いときにアラーム(音楽)を鳴らして起こしてくれるという。「iPod touchでは使えない」と書いてあったが、とりあえず使ってみた。その結果がこれ。
すごいなこれ。すっきり目覚められました。この発想はなかった。同じ目的の専用品が二万円くらいすることを考えたら、お買い得感がすごい。
早く起きたのでジョギングもして、日中はさぞ仕事がはかどるだろうと思ったが、甘かった。一年半ほど置いたままの仕事があって、年内にまとめてしまおうと思っているのだが、なかなか筆が進まず。今夜も早寝早起きして、気合いを入れてがんばろう。
Tue, 20 Oct 2009
歳をとったようです
四捨五入すると…
Sat, 10 Oct 2009
Long time no see
I didn't post entries during last few weeks. As you might notice from my Twitter posts, I came back from Rome without troubles. It was great being in Rome! I want to say thank you to all people I met in Rome. I uploaded photos I took in Rome, though some of these are missing titles and descriptions. I hope you enjoy these photos!
As I twitted, I stopped updating my Tumblr and started using Delicious. My FriendFeed now feeds kwkbtr’s log (this blog), Twitter, Flickr and Delicious (and Last.fm). If you want to keep track of my activities with one feed, I recommend using it.
As I wrote on the homepage, I will present a poster “Interference between independent bosonic fields under U(1) superselection rule” at QIT 21 in Tokyo on 4 Nov 2009. If you have time, please check it out!
I realized that it is hard to start writing in the diary again after stopped for a while. But anyway I finished one entry! I hope I can establish my pace, not only of updating this web site but also of my everyday life.
As I am not a native English speaker, there might be some grammatical mistakes in my English writings. If you find them, please let me know. I appreciate any comment :-)
Mon, 14 Sep 2009
Mathematica地獄
Mathematicaで数値計算をやろうと思い超短時間での習得を試みるも、いまいちすっきり理解できず。本当は時間をかけてちゃんと勉強すればいいんだろうけどなあ。でも、プログラミングMathematica(Roman E. Maeder 著、時田 節 訳)の日本語が読みにくくてしょうがないのは私だけでしょうか。誰か、Mathematicaの精神がきちんと理解でき、かつ読みやすい本を教えてください。
QIPCのsocial programの申込を忘れていた。危ない。というか全然準備できてない。焦る。
堺にAmazonの物流拠点ができたようだ。今日注文したが、発送元がアマ堺店になっていた。明日の午前には届いたりするのかな。
Sun, 13 Sep 2009
Set up Flickr account
I set up my account for Flickr.
Sat, 12 Sep 2009
京都観光
高校の同級生が三人京都に遊びに来たので、二条城、金閣寺、龍安寺、京都大学を回った。あいにくの雨だったが、なかなか楽しめた。夜の飲み会は、懐かしい人たちへの電話大会になっていた(笑)。みんなそれぞれがんばっとるなあ。後半は一日歩き回った疲れからか、ちょっと変な酔い方をしてしまった。皆さんごめんなさい。いつか海外で一緒にマラソン走れたらいいですね。
Wed, 09 Sep 2009
今日の出来事
ここ数日デジタルカメラを買うべくいろいろ調べていた。本日LUMIX DMC-FX150購入。在庫処分で結構安く買えた。この機種にしたのは、RAWで記録できる機種のうち一番安かったから。
国際学生証を受け取りに行った。なんと提出した写真をそのまま貼り付けて(しかも微妙に傾いている)上からフィルムを被せてあるだけというお粗末な作り。文字の印刷も少し斜めだし、フィルムはそのうちはがれてきそう。どうりで早いわけだ。
マウスの調子が悪いのでロジクールのサポートに問い合わせていたのだが、対応が酷すぎる。回答のメールなど届いていなかったのに、「回答を送ってから120時間以内に連絡がなかったので解決済みにした」だと。ふざけている。
新iPodとiTunes 9発表。Genius Mixは使えるかも。「Twitterとの連携機能」に期待したが、iTMSへのリンクを張り付けることができるだけのようだ。
Sat, 05 Sep 2009
日経サイエンス
髪を切った。少し買い物。
日経サイエンスを書店で眺めた。Weak measurementの特集。まあ、two-state formalism(って言うんだっけ)自体は面白い考え方だと思うので、いい意味で妄想を膨らませて何か出てきたらいいですね。「負の確率」を強調するのはなんだかな、と思うけど。
Fri, 04 Sep 2009
Exploring some web services
I set up my accounts for Facebook and FriendFeed (and Tumblr). Settings of the Facebook account were complicated and I was confused. I believe everything is alright now, though.
ユーロ入手
iTMSで『三文ゴシップ』入手。「余興」の最後で「サンキュウー」というのがツボ。
郵便局でユーロを入手。日本の紙幣よりざらざらしていて、枚数数えるときとかめくりやすい。あと金額によって紙幣の大きさが全然違うのも面白い。海外の印刷物のにおいがする。
Mathematicaって使いこなせればもの凄く便利そうだけど、マスターするのは骨が折れそう。
なんかいつのまにか過ぎた一日。
Wed, 02 Sep 2009
「クールなURI」をめぐって
仕事をさぼって「クールなURI」をGoogleで検索していたら、ナンセンスな文章がたくさんあるなあと思った。それをここで指摘しようかと思ったが、帰宅してもう一度それらを読むとナンセンスというのも言い過ぎかもしれないと思った。とりあえず私の解釈だけ書いておこう。
「クールなURIは変わらない」(“Cool URIs don't change”) というタイトルは誤解を招きやすいように思う。この文章で問題とされているのは、単なるリンク切れだ。だから、URIを変えること自体は別に構わない。ただ変えるなら、古いURIでアクセスした時に全く情報がない404 Not Foundを返すのは、利用者に不親切でサイト管理者に対する信頼性を失わせますよ、ということだ。HTTPヘッダーでリダイレクトするとか、URL rewritingを使うとか、削除した旨の説明を書くとかすればいいだろう。
変わらないURIこそがクールで書かれているように、URIに入っている拡張子とメディアタイプは関係ないので、別に.htmlの拡張子でJPEGデータを送ったって(メディアタイプが間違っていて文字化けしたりしないかぎり)別に構わない。foo.phpが実はPythonのスクリプトでも関係ない。それがクールじゃないから余計な情報はURIから排除しましょうというのは単なる制作者側の美学でしかない。もちろん私が最初の記事で「クールなURI」と言っているのは、私自身がクールだと思っているからというだけだ。
だから盲目的に「クールなURI」に「すべき」だと思い込むのはナンセンスだし、一旦インターネットで公開した文書を削除してはならないということにもならない。もちろん管理コストなどを考えれば「クールなURI」の方が有利だろうし、官庁などが一旦公開した文書を削除すべきではないという議論はあるだろうが、それらはまた別の問題だ。
自己満足の文章をつらつらと書いてしまった。さあ、仕事仕事……
Tue, 01 Sep 2009
桂キャンパス訪問
寝不足の日は動悸がしやすい気がする。
午前中に届くはずのものが届かず。面倒なことだ。
桂キャンパスを訪問した。Nゲージに深く感動した。フォトニック結晶の話と光合成系でのanti-Zeno効果の話とweak measurementの話を聞いた。講演者の皆様お疲れさまでした。飲みに行ったときに出た話だが、(anti-)Zeno効果には、(非局所性のような)量子系に特有の性質は本質的ではないのではないかという気がする。皆さんはどう思われるでしょうか。
Mon, 31 Aug 2009
名刺を作った
名刺を作った。これから研究会などで出会った人たちにばらまこうと思う。
名刺の印刷用ファイルを作るのに少し手間取り、大学に行って事務手続きをし、昼食を食べて名刺を印刷した後他の人の論文を添削していたら一日終わった。自分の論文書かないと。
Sun, 30 Aug 2009
総選挙の日
投票に行った。ものすごいことになりましたね。ここまで極端に振れて、大丈夫だろうか。
所用で大阪に行って日が暮れた。
疲労と睡眠
最近生活のリズムがよろしくない。なんか、体や脳が疲労してもそれが睡眠につながらない気がしている。夜更かししてからベッドに入っても、すぐに寝付けなかったりする。
まあ単純に、遅寝遅起きがだめってことだろうな。早寝早起きしよう。そのために早起き生活も始めたし。と書いている現在すでに夜遅いのだが。
Sat, 29 Aug 2009
メモ
いろいろ調べたのでメモ。
- RSS 1.0形式のデータをHTTPで送るときのContent-typeは? HTMLにはapplication/rss+xml、HTTPヘッダはapplication/xmlが無難か。
- atom:id はどのような値を割り振ればよいのだろうか(リンク切れ。Web Archive)、How to make a good ID in Atom. atom:idにはtag: URIを使った。
element
should not containscript
tag.content:encoded
in an RSS feed should not containobject
tag.- iTunes Store の任意のページをブックマークしておく方法。なるほど。
Sitemapをどう作るか考えなければ。
熱い
Perfume を熱く語るエコノミスト (Youtube)。いいこと言ってると思います。
ごあいさつ
Webサイトを作りました。広報活動とか、日々の記録とか、考えたことなどを書こうかなと思ってます。ついでに生活リズムを矯正するために早起き生活始めました。あと、Twitterも登録しました。興味のある人は時々のぞいてみてください。
どうせ作るからには一生使えるようにしようと思い、ドメイン(kwkbtr.info)を取りました。「クールなURIは変わらない」(原文)でがんばりたいと思います。
© 2009 KAWAKUBO Toru <web (atmark) kwkbtr.info>