16進時計推進委員会

-JavaScriptで作るHEXclock-

このページの左上の方に妙なものが表示されていませんか?
これが今回普及推進を図りたい(謀りたい)16進時計です。
名前を聞いたらおおよそのカラクリがわかってしまう人もあるかもしれません。

ふつうの時計は1日を24時間、1440分、86400秒に分けて時をきざんでいますが、刻み幅は24進と60進が入り混じり、6桁の数字となります。世界標準に使うには実に奇妙な単位の体系です。
宇宙人がこの時間を測る尺度について地球人に問いただしたら、いったい誰が説明をつけてくれるのでしょうか?

一方、コンピューターに少しはまったら必ずたどり着くのが16進数の体系です。
256とか32768とかいう数字を「きりがいい。」と感じてしまうセンスがある人は、多かれ少なかれコンピューターに毒されていると考えていいでしょう。

さて、1日=86400秒を65536(2の16乗、16ビットで表現できる最大の数)で割ると1.318ぐらいになります。パソコンのアドレスで見慣れた16進4桁表示の時計を作れば約1.3秒で1つずつ進む時計になるはずです。

右の画像は実際にプログラムしてみた16進時計です。
左が今日のこのページで、JavaScript版です。
右上が最初に作ったVisualBasic版です。VBのランタイムがインストールされていないマシンでは動かないし、ランタイムを含むパッケージはちょっと重くて配布しにくい欠点がありました。
右下は弟に頼んで作ってもらったC版で、ランタイムを含んでファイルが小さいのでダウンロードがしやすいはずですが、最下位の数字がちらつくなどいくらか欠点(愛嬌)があります。
今回勉強したJavaScriptは配布・普及という点で考えるともっとも軽くて人に見せやすい形となりました。

このページのソースを表示して、はじめの方を見てもらえばプログラムの要点はわかっていただけると思います。(Java Script歴3時間ですから不細工な点があってもご容赦ください) システムから得られる時間は秒単位までですから100ミリ秒ごとの割り込みを使って1.3秒ごとに進む時計を実現しています。

実際に作ってみて、世間でいう「秒」よりすこしモタモタ動く時計はなかなか満足のいくものでした。 最上位は1時間半に1つずつ進みますから、9時、10時半、12時が来ると下3桁にゼロが並びます。
スタートアップに入れて半年ほどデスクトップに貼り付かせたままにしておいたのですが、自分がHEXtimeでものを考えられるようにはなりませんでした。実際のところ、夜中の零時が来るのがわかる時計というのが正直な使用感です。

時計が「F000」を示すと「お、夜もふけたな。」と思い、「F579」なんて時計らしくない表示になるとそろそろ眠る時間です。「1000」になったのを見ると翌朝は間違いなく睡眠不足です。

この”わかる人にはわかる”16進時計を普及させようと、たった一人で「16進時計推進委員会」を結成したところで、swatch社がInternet Time(別名Web Time)の普及推進を行っていることを知りました。

こちらは1日が1000に分割(1単位が1分と26.4秒)されていて、世界共通時間になっています。見たところ秒の概念がなく、時を刻む楽しさはHEXtimeの方が優れているように(私は)思います。もっとも、swatchの目的としているところは世界共通時なので私の目的とは違いますが。
Internet Timeを私的に改良するとすれば1/100Internet Timeの桁を設けて(1日を100000に分割して)0.86秒に1つずつセカセカと刻む時計としたいところです。
さて、ここで提唱するところのHEXtimeと、Swatchの提唱するところのInternet Timeではどちらが世間に普及するのでしょうか。(結果は明らかです。が、)
私も実際の時計としてのHEXclockを作ってみたいと思い、32.768KHzの水晶振動子を買ってはみたものの、技術力が不足して未だ果たせずにいます。
これを実現してくれるのは秋月電子さんぐらいでしょうか?

この不便でマニアックな時計がなんとか普及しますよう願ってやみません。


この記事を読んだ弟から改良版のHexTime2.exeが送られてきました。これはフォントが換えられるようになっているのでさらにお楽しみいただけます。

動作についていささか注文をつけたら、さらなる改良版を送ってくれました。いろいろ並べて動作の違いを楽しむのもまた一興ですか。

「なべのさかやき」目次に戻る