Wiki と Hash

近辺で話題になってるので。
http://twitter.com/kinaba/status/1248946678


私もまめの人(d:id:ku-ma-me:20090226:p3)に近くて、別に WikipediaWiki と略すこと自体を嫌っているわけではないのだけれど、文脈上明らかでない場合は「どこの Wiki?」って聞き返すと思いますね。なぜかといえば、Wiki という名称のシステム自体が一般的であちこちでサイト構築などに使われており、そのうちのどれが情報ソースであるかということが明確でない場合があるからです。
話し相手の言った・書いた内容を頭の中で捉えたときに、私の場合は用語に応じて解釈の候補がいくつか選択肢としてあがってくるわけですが、その中で文脈から判断して確度の高い候補を選んで意味を解釈しているように思われます。もし確度が似たかよったかな他の候補がある場合には、明確にするために「どれ?」と訊くことになるでしょう。この仕組みは他の用語でもいっしょです。


たとえば「Wiki」とだけ聞いた場合、

  1. WikiWikiWeb に代表される CMS のソフトウェアの総称
  2. ↑を用いて構築された特定のサイト

などがあがってくると思いますが、Wikipedia というのは 2 番目の意味に含まれるに過ぎません。たとえば仲間内でデータの管理に Wiki を用いている場合などは最近では特によくあるわけで、そういった仲間内の場合は「どこのサイトか」がまったく判断がつきません。


一方で「Hash」の場合、だいたい自分の知っている中ではこんな感じの定義が浮かんでくるでしょう。

  1. 暗号学で言うところの一方通行性関数
  2. ↑のような性質を持つ関数を利用したデータ構造 (HashSet か HashMap かなどは問わず)
  3. 「#」記号

で、これらのうち文脈から判断することになると、たいていのプログラマは暗号学やら文字の話をしているわけではないので 2 番目のデータ構造のことだろう、とわかるわけです。
この場合はある程度離れた分野で別々の意味を持っているために明らかにわかるのかな、などと思いますね。

そろそろ携帯を機種変したい

そろそろ前の機種変から 2 年経ちそうということもあって、昨年末あたりからいろいろと調べていたりします。


そのうちまた海外に行ったりする機会がありそうなので、今回はちゃんと 3G+GSM 対応の機種がほしいな、と。
一昨年米国に 2 ヶ月滞在したときは docomo shop でレンタルしていったのですが、最近レンタル料金見たらえらい高くなってて(以前は \105/日くらいだったように思うのですが、最近は最低でも \315/日のようです。たとえば 1 ヶ月で 1 万円、保証とかいれるとさらにあがる。)、こりゃ対応機種を機種変で買ってもあんまし変わらないのですよ。
まあ、国際ローミングだと通話料がバカにならないので、おそらく長くいる場合は現地ローカルの携帯なりを使うことになるとは思いますが…。


理想としては、SIM 挿し換えるだけで現地キャリアとつながるようになったりしないもんでしょうか?
たとえば、Softbank 契約の iPhone を米国に持っていって AT&T の SIM を挿したりするという使い方。これできたらすごく楽だと思うんですが、実際のところ SIM ロックがかかっている場合が多そうなのでよくわからない。

続きを読む

Boost をビルドしています

せっかく V8 のノウハウもちょっとたまってきたことだし、italk の無脳でもひさびさに書いてみるかと思ったのはよいけれど、C++ からソケットを生でいじるのは非常に面倒なので何かよいライブラリはないかと探して結局 boost::asio に行き当たる。
手元に Debian マシンがあったので、とりあえずパッケージから libboost-dev などなどインストールしてみるも、バージョンが古すぎたみたいで asio がない。ちなみにパッケージは ARM 用、バージョンは 1.33.1 でした。


仕方がないので bjam をかわりにインストールして、boost 最新版をビルド中。最近は configure → make が使えるようになったのですね。(まぁ後ろでは bjam が動いているのだけれど。)
どうせ時間かかるだろうから今日はこのまま寝ましょう。

ACM/ICPC OB/OG の会の冬合宿にちらっとだけ顔をだしました

おととしの夏に不在だったころからどうも疎遠というか、別件で忙しくなってしまったりしてなかなか出られていない合宿たち。20日〜23日に代々木オリセンで毎年恒例の冬合宿をやっていたので、ちょっとだけ顔をだしてきました。


一応問題作成にはかかわっていますが、解くほうのはあまり担当せず、最近はほぼ英訳担当ばかりやっていたりします。体力がなくなったなぁ、という風に時の経過を感じざるを得ない今日この頃。
いつものごとく泊まっていればそれなりにはおきてちゃんと時間通りに参加して、とできるのでしょうけれど、今回は初日にちょっと顔出しに行くだけで終わってしまいました。(本当は 2 日目にも顔を出せたらと思っていたのだけれど、寝坊して起きたらもう午後だったので無理でした。)
なのでせめて 20 日夜の懇親会にはと参加してきました。やっぱりプログラミングコンテストの話題が多いですね。あまり ICPC 以外のコンテストに参加してきたことのない自分にはよくわからないところもありました。

続きを読む

Cygwin bash が改行コードについて融通がきかない件

Cygwin では改行コードを LF のみ(Unix 互換)にしているのですが、Cygwinbash が 3.1.x ⇒ 3.2.x にアップグレードされてから、CR+LF な改行のスクリプトが動かなくなったりと地味に問題が起こっています。
まあ、改行コードの不一致は問題なので、修正できるものはすればいいと思うのですけれども、拾ってきた tarball とかが CR+LF になっていると目も当てられないのですよね。
参照: http://www002.upp.so-net.ne.jp/tinynealy/cygwin.html, http://cygwin.com/ml/cygwin-announce/2006-10/msg00000.html


しかし、原理的に改行コードを修正できないものもあります。
たとえばアプリケーションやライブラリなどを MinGW で(gcc -mno-cygwin で)ビルドしようとすると、コンパイル結果のプログラムは CR+LF で出力してくれるので、罠にはまることが。Cygwin でビルドすると cygwin1.dll が(しかも特定のバージョンに限定して)必要になってしまうだけに、単体で動かしたくなることってままあると思うのですが…。

続きを読む

msvcrt=shared でビルドすると snapshot がとれない

C:\progs\v8\v8>scons mode=debug snapshot=on msvcrt=shared
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
...
cl /Foobj\debug\mksnapshot.obj /c src\mksnapshot.cc /nologo /W3 /WX /wd4355 /wd4
800 /Od /Gm /MDd /GR- /Gy /nologo /W3 /WX /wd4355 /wd4800 /Od /Gm /MDd /DENABLE_
LOGGING_AND_PROFILING /DWIN32 /D_USE_32BIT_TIME_T /DPCRE_STATIC /D_DEBUG /DENABL
E_DISASSEMBLER /DDEBUG /Zi
mksnapshot.cc
C:\Program Files\Microsoft Visual Studio 8\VC\include\typeinfo(139) : error C222
0: 警告をエラーとして扱いました。'object' ファイルは生成されません。
C:\Program Files\Microsoft Visual Studio 8\VC\include\typeinfo(139) : warning C4
275: DLL インターフェイスではない class 'stdext::exception' が DLL インターフェ
イスのベースになる class 'std::bad_cast' として使われています。
        C:\Program Files\Microsoft Visual Studio 8\VC\include\exception(241) : '
stdext::exception' の宣言を確認してください。
        C:\Program Files\Microsoft Visual Studio 8\VC\include\typeinfo(138) : 's
td::bad_cast' の宣言を確認してください。
C:\Program Files\Microsoft Visual Studio 8\VC\include\typeinfo(160) : warning C4
275: DLL インターフェイスではない class 'stdext::exception' が DLL インターフェ
イスのベースになる class 'std::bad_typeid' として使われています。
        C:\Program Files\Microsoft Visual Studio 8\VC\include\exception(241) : '
stdext::exception' の宣言を確認してください。
        C:\Program Files\Microsoft Visual Studio 8\VC\include\typeinfo(159) : 's
td::bad_typeid' の宣言を確認してください。
scons: *** [obj\debug\mksnapshot.obj] Error 2
scons: building terminated because of errors.

C4275 warning に関する情報はあまり多くないようで…。
http://svn.apache.org/repos/asf/stdcxx/branches/4.2.0/include/rw/_defs.h など?


とりあえず warning を disable することで通るようにはなりましたが、精査が必要かも。
対策としては、SConstruct に /wd4275 を追加するなど。