2010-05-26 Wed

関数の引数として文字列を渡すとき

僕は関数の引数で文字列を渡して処理をするライブラリを書くことが多いです。

他人に使ってもらうことが多いライブラリは効果が大切ですが、
分かりやすさも大切なので引数を少なくしたいと思っています。

ですが、文字列処理をする関数は引数を少なくすると、「受け取った文字列のbyte長を取得する」とか「結果を格納するバッファ領域を確保する」とか、引数を受け取ったあとの処理が余計に増えてしまいがちです。

しばらく悩んでいましたが、最近は「処理を高速化するためなら引数が増えてもいいや」と思うようになりました。
簡単なものには裏ができちゃいますからね。。@echizentm さんと雑談してたら吹っ切れました。

以下には、関数の引数として文字列を渡す際に、最近やっている対処方法をメモします。

続きを読む

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-26 Wed

緑が良い感じ

空き地にはえている桜の木の葉っぱが、大分深い緑色になってきました。
眺めていて落ち着く色だけど、そろそろ毛虫が居ないか心配。


from overlast using Panasonic DMC-FX100

昔は桜の木に登って遊んだりしたけど、最近全然木登りをしていないなぁ。
たまにはやりたいな。

関連リンク


- 東京23区別「公園」木登り情報
-- http://koueninfo.fc2web.com/koueninfo-kinobori/index.html
# 東京23区の一部の公園にある木について、写真付きでいかに登るかを解説。熱い。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-26 Wed

今日は朝4時半起きだった

朝5時なのに明るいです。
でも道行く人は、半分くらいが酔っぱらってフラフラしてて面白いです。


from overlast using Panasonic DMC-FX100

駅まで15分くらいの道の間に、道ばたで寝ている若者を数人見かけました。
もう充分に暖かい季節ってことですね。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-25 Tue

gprof で C / C++で書いたプログラムの挙動を測定

C / C++ で書いたコードの実行時間が自分で考えていたよりも長いので、最適化するために gprof を使ってみました。

gprof の実行準備


gprof を実行するための準備は、手元の環境では、コンパイル時に「-pg」オプションを付けるだけでした。

『gcc -pg -o test test.c』

プログラムを実行する


普通にプログラムを実行すると gprof によって、****.gmonという名前のファイルが出力されます。

『./test』

gprof の解析結果を出力


.gmonファイルが出力されていたら、解析結果を出力できます。
以下の例では、標準出力に解析結果を出力し、さらに test.gmon.log というファイルに結果を書き込んでいます。

『gprof ./test test.gmon > test.gmon.log』

出力結果を確認する


結果の確認には、less や lv などが便利でしょう。




このように簡単に実行できる gprof を使って作成中のライブラリ内で strlen や strncpy や memset などのコストのかかる処理を呼んでる場所を見つけて、それらの呼び出し回数や実行時間が最小になるように頑張ります。楽しいです。

関連リンク


- GNU gprof
-- http://sourceware.org/binutils/docs/gprof/index.html

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-25 Tue

芝生からキノコが!

ミッドタウンの芝生にキノコが生えまくってます。


from overlast using Panasonic DMC-FX100

例えば業者が運んできた土の影響だったりするみたいですね。

関連する話題として、以前、小泉内閣時代に首相公邸の植え込みにキノコがはえたことを教えてもらいました。

- 小泉内閣メールマガジン第207号
-- http://www.kantei.go.jp/jp/m-magazine/backnumber/2005/1020.html
『先週、公邸前の植え込みの中で見つけたキノコのお話をしたところ、たく
さんのメールをいただきました。専門家の調査によると、公邸の庭には、写
真で紹介した2種類のキノコのほかにも6種類、全部で8種類のキノコが見
つかりました。写真にある大きいキノコはテングタケという毒キノコでした
が、ほかのキノコは無毒のようです。公邸から官邸まで、50メートルぐら
いですが、毎朝歩いていくのが楽しみになりました。』

あとでマジックマッシュルームが見つかってニュースになったみたいです。

『首相公邸の前庭に麻薬原料植物として麻薬取締法で栽培・所持が禁止されている毒キノコ「ヒカゲシビレタケ」が自生していることが分かり、13日午後に除去されることになった。問題のキノコは小泉純一郎首相が12日朝、首相公邸を出邸する際、前庭のシラカシの根元に生えているのを発見。「食べられるのかね。毒キノコ? 東京でキノコか、面白いね」と珍しがり、面会に訪れた三村申吾青森県知事にも「官邸にキノコが生えてんだよ」と宣伝していた。 
(時事通信) - 2005年10月13日11時1分更新』

ミッドタウンのキノコはまだ調べてませんが、毒キノコなのかな。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-24 Mon

新字体と旧字体と繁体字と簡体字のリストから対応表を作る

新字体と旧字体と繁体字と簡体字のリストから、良い感じに漢字を正規化するリストためのリストを作りたいです。
でも、どうやるのが良いのか、をこれから考えるので、調べながらまとめます。

と言っても、いきなり図書館をまわる時間と根性はないので、手始めに WIkipedia を見てみます。

<続きはあとで。眠い。>

昭和を騒がせた漢字たち―当用漢字の事件簿

[Amazonで詳細を見る]

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-23 Sun

JR 横浜駅の横須賀線のぼり側のホーム

JR 横浜駅の横須賀線ののぼり側のホーム(10番線)のホームの幅が、あまりにも広くて驚きました。
こんなに片側が広いホームは見たことないです。


from overlast using Panasonic DMC-FX100

以前のホーム幅に倍以上の幅のホームになってます。いつから?

高校生になって以降、横浜駅を使っていたけど、今まで気付かなかったなぁ。。

と思ったら、答えは Wikipedia にありました。

- 横浜駅 - Wikipedia
『2010年4月24日夜から25日朝に一部列車を運休して線路切り替え・ホーム拡幅工事が行われた。』

よかった。この時期より後に横浜に行ったのは今日が初めてなので、知らなくて当然です。ほっ。

横浜本―ロマンを駆り立てるリアルなヨコハマ。

[Amazonで詳細を見る]


今週末も横浜に用事があるのですが、横浜開港祭と重なっちゃいましたね。混むだろうな。

関連リンク


- 第29回 横浜開港祭:みなとみらいでイベント多数!
-- http://www.kaikosai.com/

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-23 Sun

中目黒の駅前が栄えまくってる

中目黒駅前を久々に見たら、ものすごく栄えていたので驚きました。


from overlast using Panasonic DMC-FX100

2年前は工事中の場所がたくさんあった気がするけど、できあがっちゃったみたいですね。

関連リンク


- 中目黒 - Wikipedia
# 中目黒の歴史などをちゃんと書こうとしてないし、もろもろアバウト。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-22 Sat

電車が空いてるときは吊り革を2つ持つと足もとが安定する

電車に乗っているときに「座席が埋まっているけど立っている乗客は少ない」場合がありますよね。
こういうときは、吊り革が余りまくっているはずです。

吊り革が余りまくっていて「2つの吊り革を使っても周囲の乗客に迷惑にならない」ようなら、2つの吊り革を同時に掴むと足下がとても安定します。


from overlast using Panasonic DMC-FX100

片手でも充分にガシっと体を支えることができます。

立っていると電車の揺れで酔ってしまう人は、混雑の状況を確認してやってみてください。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-22 Sat

てんやで天丼を食べた

先週 [2010-05-16-4] も、てんやで天丼を食べましたがウッカリ今週も食べてしまいました。


from overlast using Panasonic DMC-FX100

安い割においしいなぁ。
自宅で揚げ物をしないので揚げ物を食べると幸せ。
でも来週は避けるようにしよう。。

- てんや
-- http://www.tenya.co.jp/index.htm

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-22 Sat

IKEA港北に行った

小物を買い物に IKEA 港北へ。前回に行ったのは [2008-01-05-2] でした。もう、2年以上前なのか。。


from overlast using Panasonic DMC-FX100

自宅にカタログが届くように IKEA FAMIRY の申込書を書いたり、店内をぐるっと回って見たことのない商品を物色したりしました。


from overlast using Panasonic DMC-FX100

定番の開けた袋を閉じるためのクリップ「BEVARA」や、お風呂の水を切るための「スキジー」などの小物を購入。2 年前にも買ったけど消耗品なのですり減ったり数が減ったりしてました。

買い物した後、レジの向こう側の売り場でホットドッグ(100円)を購入。


from overlast using Panasonic DMC-FX100

トッピングや調味料を自分でかけるのだそう。へぇ。


from overlast using Panasonic DMC-FX100

最初に、ケチャップとマスタードが目に付いたので、丁寧にかけました。
そしたら向こうにピクルスとフライドオニオンが見えます。これもかけて良いらしい。
ピクルスをスプーンにすくった後、そーっとパンに乗せようとしたら、ボトッと落ちて涙目。
オニオンをサラサラかけようとしたら、オニオンはサラサラしてなくてボタボタっと。

結果はこれ。


from overlast using Panasonic DMC-FX100

ひどい、これはひどい。次に IKEA に行ったときにはリベンジする。
味は 100 円にしては、おいしかったな。

今回もポエングに座ったけど良い感じだったな。引っ越して部屋が広くなったら買うぞ。。

関連リンク


- IKEA
-- http://www.ikea.com/jp/ja

格安家具量販店完全ガイド

[Amazonで詳細を見る]

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-22 Sat

渋谷から新横浜へ

私用のため東急に乗って渋谷駅から新横浜駅に移動。


from overlast using Panasonic DMC-FX100

日差しが強いから、日中出歩いていると日焼けしそう。
気温も高くて上着がいらないくらい暖かいです。

投稿者:としのり  日時:08:45:59 | コメント | トラックバック |

2010-05-22 Sat

Googleのロゴがパックマンに

Google のロゴがパックマンになっていました。しかも遊べます。

- Googleでパックマンを5月24日以降も遊べる
-- http://www.google.com/pacman/


- グーグル:初の「遊べるロゴ」 パックマン30周年記念 - 毎日jp(毎日新聞)
-- http://mainichi.jp/select/biz/news/20100521mog00m020037000c.html
『ナムコの人気ゲーム「パックマン」誕生30周年を記念して、Google はパックマンで遊べるロゴを検索エンジンのトップページに掲載する。2010年5月22日から24日まで。』

やっているうちに「あ、確かに昔にパックマンをやったときに見た!」と言ってしまうようなシーンも再現されていることに気がつきます。ステージは256面まであるし、音も忠実に再現されています。すごすぎ。
しかも、Insert Coinを複数回押せば、2人プレイもできます。

画面はFlashで作られていないのでiPhone 3GS でも動きました。
音は出ないし処理の負荷がずいぶん高そうでカクカクするけど。。。



Google かっこいいな。

[2010-05-24]:追記
Googleロゴで遊ぶパックマンが、24日以降も遊べるようになりました。
おまけにソースコードも Githubからダウンロード可能。

- macek's google_pacman at master - GitHub
-- http://github.com/macek/google_pacman

Google++。

投稿者:としのり  日時:07:50:59 | コメント | トラックバック |

2010-05-21 Fri

日本人は1分に一組結婚して2分に一組離婚してる

ふと「日本人は2分に一回離婚してる」みたいな音が聞こえました。
「え?まじで?年間30万組も離婚してるの?」と思い自分でも調べてみました。

日本人の結婚や離婚について書いてあるのは、厚生労働省が公表している「人口動態統計の年間推計」というデータです。

- 厚生労働省:平成21年人口動態統計の年間推計
-- http://www.mhlw.go.jp/toukei/saikin/hw/jinkou/suikei09/index.html

このデータのかなり上部のまとめに答えがありました。

婚姻件数は減少、離婚件数は増加
婚姻件数は71万4000組で、平成20年の72万6106組より1万2000組減と推計される。
婚姻率(人口千対)は5.7となり、平成20年の5.8を下回る。
また、離婚件数は25万3000組で、平成20年の25万1136組より2000組増と推計され、離婚率(人口千対)は2.01となり、平成20年の1.99を上回る。


結論としては日本在住の日本人は710000 / (365日 * 24時間 * 60分) = 1.35人/分の割合で結婚している。
また、253000 / (365日 * 24時間 * 60分) = 0.48人/分の割合で離婚している。

たくさんの結婚と離婚が繰り返されているのですね。興味深いなぁ。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-21 Fri

情報論的学習理論と機械学習研究会(IBISML) の研究会に行きたい

IBISML という機械学習・データマイニング関連の新しいコミュニティが2010年4月にできましたが、その研究会の第一回目が6月にあります。いきたい。いきたい。

- 第1回 研究会のご案内 - 電子情報通信学会 情報論的学習理論と機械学習研究会(IBISML)
-- http://ibisml.org/001/

日程: 2010年6月14日(月)-15日(火)
場所: 東京大学 武田先端知ビル 5F 武田ホール (東京都文京区)
主催: 電子情報通信学会 情報論的学習理論と機械学習研究会 (IBISML)
連続開催: 第1回 Latent Dynamics Workshop
担当幹事: 山西健司(東京大学)、井手剛 (IBM東京基礎研究所)
参加費: 無料


個人的には津田宏治さんの「複合ソート法による高速な全ペア類似度検索」に興味があります。

懇親会の申し込みは2010年6月8日まで。忘れないようにしよっと。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-20 Thu

日本語の開拗音のローマ字表記

しゃ、しゅ、しょ、のような、母音がiな平仮名の母音を取って、半母音のy(またはj)をくっ付けて、その後ろに母音のaかuかoをくっ付けた音の節を開拗音といいます。

NHK日本語発音アクセント辞典

[Amazonで詳細を見る]


この開拗音をローマ字表記するときに、複数の表記が可能なものがあることに気がつきます。
たとえば「ちゃ」は、少なくとも「tya」と「cha」の2つのうちどちらを選ぶか、を悩むことができます。

正直なところ別にどちらを選んでも良いのですが、文字列同士の距離を計るタスクにおいて、文字列のよみがなをローマ字化したもの同士を比較する場合等には、ちょっとだけ気を使う必要があります。

どういうことかと言うと、たとえば「ち」と「ちゃ」の2つの文字列の間の編集距離を得たいとします。

平仮名で両者の文字列の編集距離を取得すると「ゃ」が追加(または削除)されているので編集距離は1です。

では、今度はかな表記から取得できるローマ字表記の編集距離を算出してみます。
最初に「ち」をローマ字化して「ti」を取得したとします。
つぎに「ちゃ」のローマ字表記を得るのですが、先ほど述べたとおり、このときに少なくとも「tya」または「cha」は得られます。

このときに「ti」と「tya」の編集距離は「i」と「y」の置換と「a」の追加で2となります。
他方、「ti」と「cha」の編集距離は、両者の表記が丸々違うので、2回の置換と1回の追加で3となります。

最初に「ち」から「chi」を得た場合には、また別な結果になったでしょう。

このように同じ平仮名表記からローマ字表記を取得する際に、どの表記を取得するか、だけで編集距離が変わってしまいます。

したがって、平仮名をローマ字に変換するルールを作る際には、全体を眺めてみて発音の近いものの編集距離が近くなるようなローマ字表記が得られるように気を使うと、平仮名から取得したローマ字表記の編集距離を算出したときに人間の直感と近い値を取得できると思います。

このような考え方を合拗音にも適用すると、例えば「ゔぁ」と「ば」の距離が近くなって、「ば」と「びゃ」の距離が近くなるようにしたい場合に「ゔぁ => ba」、「ば => ba」、「びゃ => bya」みたいに変換することを思いついたりできます。

「ゔぁ」は「va」に変換したい気持ちもありますが、実際に人間が発音するときに「ゔぁ」と「ば」は近いですし、両者を入れ替えて発音しても聴者には通じることが多いはずです。

とか考えながら夕方にお茶を飲んでいました。

実際に文字列距離を算出する処理を含むアプリを実装するときには、いろいろ考えて変換ルールをつくるのですが、割とあちらを立てるとこちらが立たずみたいになるので、なかなか難しいす。

なげやり関連リンク


- レーベンシュタイン距離 - Wikipedia
- 拗音 - Wikipedia

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-20 Thu

霧雨な一日

今日の窓の外は、いつ見ても真っ白。
霧雨が降りまくっていて傘を差しても、強風が吹いたらビチョヌレ。


from overlast using Panasonic DMC-FX100

明日は晴れると良いな。

関連リンク


- 傘 - Wikipedia
-- http://ja.wikipedia.org/wiki/%E5%82%98
# 意外と知らないことだらけで、おもしろい。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-19 Wed

後頭部と肩がダルい

この数日は脳の普段使わない部分を使っている気がする。とにかく後頭部あたりがズーンとなっている。

6時間以上寝ているけど、朝起きると頭が重いし、肩も重いし、全然疲れが取れてない。

おまけに、帰宅して夕食を食べて一息つくとジムが閉まる時間なので、トレーニングもできてない。

今日は運動したいなぁ。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-18 Tue

今日は日差しが強いな

今日の日差しは痛いほど強い。というか痛い。


from overlast using Apple iPhone 3GS

日焼け止めを塗ると紫外線でヒリヒリしないのかな。。。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2010-05-17 Mon

お茶の水へ

久々にお茶の水へ。


from overlast using Apple iPhone 3GS

このあたりに来るとフラフラ散歩したくなります。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |