DrawerCSS

進捗は捗々しくないながらも maps.gpx はまだまだ改修しておる最中ですが、そんな中、いろいろなクラスを設計したり実装したり、している部分のうちには、その部分単独でも独立したライブラリとして仕上げられるものは、仕上げているつもりで、そうしたものは別のリポジトリにして管理しているものもあります。今回はそのひとつ DrawerCSS と名付けてしまったそれについて、紹介します。

DrawerCSS

これはひとことで云えば、 HTML ページ(任意のブロック要素)に Drawer (ドロワー、引き出し)を簡単につけるための JavaScript のクラスです。名前に CSS と付けているのは、 CSS3 の機能を用いた実装だからです。

しかしながら、これを使おうとする際には CSS を記述する必要はありません。このクラスのインスタンスが自律的に CSS を操作して、しかるべき動作をするようになっています。(尤も、 CSS を記述する際の制約はあります。)

百聞は一見に如かず、今回はデモを用意したので、そちらを参照してみてください。「コンテンツ」部分をクリックすると開閉します。また HTML ソースを覗いてみてください。

DrawerCSS demo - basic

maps.gpx a.k.a. GPX Casual Viewer v3

Also known as … と格好つけなくても、ほとんど知られることのない GPX Casual Viewer v3 は、バージョン v2.3.0 から名称を maps.gpx と変えました。

https://github.com/hiroaki/maps.gpx

理由は簡単で、ビューワー viewer にとどまらない構想があるからです。──将来的にはエディタ editor としても使えるものに仕上げる希望があります。と、他人事のような言い回しになりましたが、もちろん Github に公開しているからには、じぶん以外の某によって、それが達成されてもいいわけですから、幅広い解釈ができる表現をあえて選んでいるということでもあります。

GPX Casual Viewer v3

最近取り掛かっている日曜プログラミングの話です。

GPS 位置情報データのポピュラーなフォーマットである GPX 形式のデータを、 Google Maps API を用いて地図にオーバーレイし、 GPS 位置情報を視覚的に閲覧するビューワーを HTML と JavaScript で作っているので、それについて紹介したいと思います。名付けて GPX Casual Viewer v3 (名称変更しました。次の記事を参照してください: maps.gpx a.k.a. GPX Casual Viewer v3 また以下では GPX Casual Viewer v3maps.gpx と読み替えてください) 。

sample view figure #1

MIME::Expander 0.02 is released

Perl でメールを扱うときには、じぶんはたいてい Email::MIME を利用します。これだけで間に合っているので、ほかとの比較もべつにしていないのですが、特に添付ファイル付きのメールを扱う時に、各パートに簡単にアクセスできるのが重宝します。

さて、ときに、そうして取り出した添付ファイル、専門用語的には MIME パートと言うでしょうか、現実的には、それらは圧縮されたアーカイブだったりするのが常ではないでしょうか。すると、各パートを取り出したあとに、それらを展開(解凍)しなければなりません。しなければならない、ということは必ずしもありませんが、まあ、展開しますよね。

そのいつものひと手間をも惜しむらく、あるとき、モジュールにするべく取り組んだのですが、その成果が MIME::Expander というユーティリティ・モジュールになりました。これをちょっとだけ紹介します。

Install shared-mime-info on OS X Yosemite

任意のファイルの種類が何であるかを特定したいとき、その拡張子で判断してしまうようなお人好しでない限り、話はそう簡単ではありません。

Real-time Monitor with Sinatra

あるとき、とある現場で、任意のホスト上の何かリソースの現在値を、リアルタイムでモニタリングしたい旨の相談を受けたので、これは “real-time web” の出番だと閃いて、そのキャッチ・コピーを掲げる Perl の Web フレームワーク Mojolicious でやってみようと取り掛かることにしました。と、書き出したところですが、しまいには Ruby の Sinatra で実装したものを紹介するだけのところで話は終わります。

GServer can exceed the max connections

前回 Ruby の gserver のことについて書いた後、少しばかり調べを進めてみていたら、 Ruby 2.2 からは標準添付ではなくなるとの「事実」に遭遇してしまいました。いいライブラリだなと覚えた矢先でしたから、がっかりです。尤も、標準ではなくなるだけのことですから、使い続けることはできるでしょう。

ただ標準添付から外される理由に、(1)テストも無い代物で、(2)ドキュメントどおりには振る舞わず(後述)、(3)だれもメンテナンスしていない状態である、ということが挙げられていて、それがために誰も使っていないから外す、とのことでした。加えてその提案がなされたのが3年前ということもあって、じぶんとしてはまったくモチベーションが下がってしまいました。

Feature #5480: remove GServer from stdlib - ruby-trunk - Ruby Issue Tracking System