最近の遊びとして、 Unicode の文字マップを実現するウェブアプリケーション(?)、jscharmap というのを作りました。 http://www.jmuk.org/jscharmap/jscharmap.html です。
ただし、 Firefox でしか動作確認をしていません。わたしの手元で IE で試してみたところエラーがあると言われて止まってしまいますが、少し前に知り合いに紹介したところでは、 IE ごと落ちると言われました。なんでなのかは知りませんが、 IE でトライすることはおすすめしません。どうせ見えやしませんよ。
Firefox を使いたくないという人のために、簡単なデモビデオも作ってみました。うーん、しかし、画面がでかいとコマ落ちしますね。ちと失敗。おおむねこんな風なものであります。
で、そもそもなんでこんなものを作ろうと思いたったか、という話ですが、ご存知の方は少ないかもしれませんが GNOME には「文字マップ」というアプリケーションがあります。コマンドラインなら gucharmap です。これが私はなかなか好きで、あれこれ眺めていると「おおっ、こんな文字まであるのか!」と驚きます。ルーン文字とか。「1点」とか。ハンマーと鎌とか。でも、ほかのプラットフォームでは、 Unicode 情報を見る手はあってもこういうどうでもいいアプリケーションてないんですよね。いや、わたしが知らないだけかもしれませんが。
そこでウェブアプリケーションですよ! というほど短絡的でもないんですが、ふとあるときこの思いが再燃し、とりあえず作ってみたという次第です。
さて、完成度はさておき作ってみると面白いことがわかりました。というのは、同じ Firefox とはいえ見た目はOSによってかなり違う、ということです。 OS、というよりその Firefox が使っているレンダリングエンジンによって、同じ「文字」であっても表示できたりできなかったり、化けるにしても化け方がかなり違う。わたしの手元の Mac はかなりの文字が「?」になってしまっています(これはフォントの都合もあるのかもしれませんが)。いろいろ試してみたところでは Linux が一番いろんな文字を表示しますが、しかし Linux ではだめだが Windows なら見える文字とかもあって楽しい。
ま、いずれにせよ、皆さんも楽しい Unicode ライフをお過ごしください。
おおっと忘れるとこだった。ソースコードは http://www.city5.org/hg/hgwebdir.cgi/jscharmap/ まで。 Mercurial (hg) を使っています。
特に、Lispハッカー(おもにポール・グレアム)のエンジニア向けの記事にならうことがクールであると考え、特集を鵜呑みにして気取っている学生を揶揄する言葉。実際はメディアに踊らされているとしか言えない状態であることが多いのだが、当人にはその自覚はない。
そのような男性がSchemeのことを「最強の言語」とか呼ぶことに由来する。いつ、誰が、どのような経緯で使い始めた言葉なのかはさだかではない。2007年に入ってコピペが完成し、流行したもよう。
使用上の注意
「(笑)」という表記の問題上、実際の会話や新聞・雑誌で使われることは無く、主に電子掲示板2ちゃんねるやブログで用いられることが多い。
実際のGaucheやDrSchemeといった意味のscheme処理系を指して揶揄する言葉として使われることはまず無いので注意。恥ずかしいほど“クール”な処理系などを「scheme(笑)」と呼んでしまうとスラングとして軸がぶれてしまう。
scheme(笑)と同意義の言葉の例
LISP(笑) CommonLisp(笑) SICP(笑) On Lisp(笑) MOP(笑) マクロ(笑) 普通のやつらの上をいけ(笑) programmable programming language(笑)
既出かと思ってちょっと検索してみた感じではまだないようですが、どうなんでしょうか。何にしても今更ですね。相変わらず、わたしは時代の一歩二歩後を歩んでいるようです。ところで Paul Graham だったらLisp(笑)じゃないの、と思われるかもしれませんが「スイーツ」の語感を重視しました。
それにしても、同義語の例がなかなか思いつかない。
ああ、いちおう、コピペの元にしたのはこれです。
個人的に運営しているアンテナは五月雨を使っているのだが、さいきんになってあろはさんのブログでエラーが発生するという事件が発生。
理由は不明だが、五月雨側は読み込みの際に Accept-Encoding で gzip と deflate を指定、 FC2 ブログ側は deflate を返すのだが Ruby の Zlib ではこれが読めず、 incorrect header check という例外が投げられるという事態になったらしい。……でもなあ、ふつうのブラウザからアクセスしたら見ることができるから、 zlib のややこしい問題なのか、 firefox は deflate を使っていないのか(gzipならきちんと展開できる)、ほかに理由があるのかもしれないけど、面倒なので追っていない。いまちょっと手元に wireshark がないし。
で、さしあたって五月雨で Zlib を使って inflate しているところで例外をつかまえて、例外発生時にはもとのテキストを返すようにしてみたが、やっぱり何らかの圧縮をしているらしくて中身を伺い知ることができず、このままではあんましうれしくない。
どうしたものかと思って RSS の方を試してみたところ、こちらは gzip を選ぶようでうまく取得できるようだから、しばらくこっちで更新検知するようにしてみるかな。
どうせ deflate も gzip も大差ないんだし、どこまで効いているかわからないから deflate を Accept-Encoding から外すというアグレッシブな解決策も、いちおうありかもなあ。
ニコリ・コムに
ましゅが加わった。こういう線を引く系パズルはPCに持ってきやすいだろうと思っていたし、ましゅは人気もあるから順当なところですな。個人的にはナンバーリンクが来て欲しいんですけど。
で、さっそくお試し問題を解いてみたところでは、どうもイマイチに感じる。このパズルは紙で解いた方が心地良いようだ、すくなくともぼくには。UIがイマイチだからではなく、きっとこうだろうというUIにきちんとなっていて、悪くない。そのわりにこのイマイチ感はなんでかということをしばし考えつつ解きながら気付いたのはタッチパッドだった。タッチパッドにさわりっぱなしで線を引いていく感触というか何というか、そういうものが全体的にこう、なんというか、「ぐっとこない」感じ。
たぶんマウスで解いたらもっと心地良いんだと思う。
今日知った衝撃の事実。
「Jaiku はヤイクと読む」
……そういえば作者は北欧系だ!
というトリビアを織り交ぜながら、「じゃいくはーじゃいくってー」と雑談をするぼくらでした。仕方ないじゃない(何がだ)。
そこそこ耳目を集めたようなので補足をすると、たとえばアメリカ人は Jaiku をジャイクと読んでいるはずだ(そういえばあんまりそういう話をしたことがないけれど)。ひょっとしたらジェイクだったりして。
いずれにせよ、世の中の多くの人はあれをジャイクだと思っていてそのように発音しているという意味では、その読みが正しい。じっさい、あれをヤイクと読む文化圏はあったとしてもごく少数なはずだ。読みの「正しさ」というのは、意外と面倒である。
というわけで、変に気取って「ヤイク」と言ってもまったく通じないので試さないように。まあ、そもそも口の端に登るほどメジャーじゃないから問題ないですが(笑)。
今日も本屋に行く。パズルが趣味だと英語の教師に言ったら趣味と実益をかねてクロスワードパズルを勧められ、実際に新聞クロスワードのコピーも渡されたので問いているのだが、折角なので自分でも買ってみようと思ったため。それでニューヨーク・タイムズの日曜クロスワードパズル集、という本を買う。買ってから、さてちょっと見てみるかとめくって最初の問題を考えてみたところまるで歯がたたない。これは難しい……(買うまえに試せよ自分)。
ところで、クロスワードパズルというのは、日本のものと英語のものとでルールは(もちろん)いっしょなのだけど、解き味とかヒントの出し方とか盤面の見た目とかはかなり異なるような気がする。それについてはまた後で、どこかで書くかも。
もちろん、ヒントの出し方とかは雑誌や作者のクセが出るものだと思うけど。
さて、そうやってパズルの棚を物色していたら、『The Official Book of Hanjie』なるタイトルの本があった。最初はそもそも何と読むのかすらわからなかったが、おそらくは「はんじえ」つまり「判じ絵」だろう。
で、どうやらお絵描き系のパズルかなと思ってめくってみると、これはいわゆるあの「ののぐらむ」(またはイラストロジック、お絵描きロジック)だった。う、うーむ、それで判じ絵ですか。苦慮の後が伺えるようなそうでもないような微妙な気分を促す名称だなあ。
この本の前書きには、
>
WHAT ARE HANJIE PUZZLES?
>
Hanjie puzzles, also known as Nonograms, Griddlers or Paint-by-Numbers, follow in the tradition of Sudoku and Kakuro puzzles as fun, cleverly deceptive logic puzzles.
とあるから、このパズルの名称は国内だけではなくアメリカでもいろいろあり、しかもそのうちのひとつには日本ではわりとポピュラーな「イラストロジック」系のものがないようだ。確かに英語で Illustration Logic とかでは何が何やらだろう。グリドラーという名前は初耳だが、 griddler で画像検索すると、そのような画像も出てくるから、それなりに知られた名称なのかも。ちなみに Wikipedia では Nonogram という項目名で記事があり、やっぱり名称問題について稿が割かれている(ということについては以前にもべつな文脈で書いたことがあった気もする)。つくづく名称について運のないパズルというべきか。ちなみに Hanjie とか Griddler という名称についての言及は wikipedia にはない。
もうひとつ、『Beyond Sudoku』という本も発見。著者(編者?)は上のクロスワードと同じウィル・ショルツという人。この人はニューヨークタイムズのパズル欄の人らしくて、ニコリとも関わりがあるのかな。数独やパズル関係の本をいっぱい出しているらしい。
副題は「100 specially selected logic puzzles from Japan」ということで、日本発のいわゆるペンシルパズルのうちいくつかをセレクトして紹介という体裁になっている。紹介されているのは「Masyu(ましゅ)」「Nurikabe(ぬりかべ)」「ABC Pureisu(ABCプレース)」「Hitori(ひとりにしてくれ)」「Akari(美術館)」の5つ。それぞれ20題ずつで全100題。
ABCプレースだけはニコリにはないけどほかはニコリのパズル。昔のニコリにあったかどうかは知らない(オモロパズル大全集なんて持ってきてないし)。確かなかったと思うけど、あったにせよなかったにせよ不思議なセレクションだね。にしても Pureisu てのはどうにかならなかったんですか。
なお、この本の問題は(ほかのショルツ氏の本と同様に)ショルツ氏の同僚のピーター・リットミースターという人が作ったとのことでこちらのオリジナルらしい。解いてないので解き味とかはまだわからない。
Will Shortz Presents Beyond Sudoku: 100 Specially Selected Logic Puzzles from Japan
| The Official Book of Hanjie: 100 Puzzles
おひさであります。
ここ最近、日記も書かずに何をしていたかというと、まあちょこちょこ遊んだりしているわけですが、それ以外だとたとえば先週(thanksgivingの休日)にはヨセミテ国立公園に行ったりしていた。晩秋のヨセミテは水が少なく滝が涸れておりけっこう残念だったのだが(やはり旬は春から初夏なのだろう)、それでもそこかしこにある巨岩とか絶壁の風景は壮絶で、面白かったりしたのである。
で、はなしをコンピュータ系に移すと(ちなみに戻ってこない)、ふとさいきん hg もいいかな、という気がしていて hg を試用中。まあまあである。 hg (Mercurial) というのは、 python で書かれた軽量な分散バージョン管理システムである。各方面で「スジがいい」と評判のアレだ。
それで、 hg とかを軽く使ってみたり、いろいろ見ていて思ったのだが、 git もそうだけど、 darcs とは根本的なパラダイムが違うのだよね。 hg とか git とかでは、ファイルの更新があるとそれぞれの「バージョン」が別ファイルとして存在するようなイメージなわけだ。現実的にはもっとマシなことをいろいろしているんだろうけど、非常にシンプルなイメージとしては「各ファイルごとに全バージョンを圧縮かけて適当な名前で持っている」モノをレポジトリと呼んでる状態。ほかからパッチが飛んでくると、新しいバージョンのファイルをそのレポジトリにつっこむってな感じ。
darcs はパッチが主体で、ファイルは非常にうつろいやすい。レポジトリには各パッチごとにべつべつのファイルになってて、適当な名前で持ってる状態になってる。ほかからパッチが飛んでくると、それを単に保存するだけ。
で、このちがいが何をもたらすかというとだ。
darcs はパッチが主体なので、最新版はかりにレポジトリに保存しておくとしても、ちょっと前のデータでも取り出すのはけっこうしんどい。パッチを逆に充てていったりしないといけないからだ。 hg とか git なら、適当な手段で探したいバージョンのファイル名さえわかれば、あとはすぐだ。
逆に darcs はすごく奇妙なことができて、途中のパッチを「抜く」ことができる。ある最新版の状態から、「あのとき、あのパッチを受け入れてなかったらどーなっていたか」みたいなバージョンをつくりだすことができるのだ。それまで一度も存在したことがなかった「過去ありえたかもしれない」バージョンを取り出す。
これはたとえばそうだな、開発版的な変更にそれらしい名前をつけておいて、チェックアウトのときに開発版用のパッチを省けば安定板がチェックアウトできる、っていうことである。
とはいえモノはいいようで、そうそう簡単にはいかないのだけど。なぜかというと、あるパッチが追加した行を変更すると、パッチの間に依存関係が生じるからである。そういうわけでいろいろややこしくて、パラダイムとしては面白いわりにそんなに利便性が高まっているかというと謎だけど、そういう怪しいことができるのは darcs の面白さだ。
hg とか git とかは、同じ分散バージョン管理といってもそういうところが少し違う雰囲気である。 darcs はパッチ管理だけど、ほかのはやっぱりふつうにバージョン管理なんだねえ、なんて思ったりした。
しかしまあ、そういう違いこそあれ hg もよくできている。何がよくできているかといって、ほかのソフトのレポジトリを変換できるのである。これが cvs とか subversion 程度なら驚きはしないが darcs2hg なんてのがあるのである。相当、意識はしているのだろう(もしくはよっぽどヒマなんだろう)。まあ、 darcs にもひそかに GitRepo というモジュールがあるからねー。
ただ、 hg で手元からリモートに push するっつー利用形態のばあい、そのあとでわざわざリモートマシンに入って update しなきゃいかんのはどうにかならないのかなあ?