JavaScript用のシンプルな日時処理ライブラリ「femtofiber」をリリースしました

JavaScriptの日時処理は、正直なところ素晴らしいとはとても言えません。そのため有志による日時処理のライブラリ群は非常に充実しています。

しかしそのうちのどれかが気にいるとは限りません。個人個人によって好みがあるので、どのライブラリを使っても全くピンとこないということもあります。

そこで、私も自分用の新しいライブラリを作ってみました。一人だけで使うのは勿体無いので、公開することにしました。

Read More

JavaScriptのStreams APIで細切れのデータを読み書きする

近年、PCに搭載されるメモリは爆発的に増えました。16GBや32GBのメモリが搭載されているのが当たり前の時代です。性能の制限が強いスマートフォンですら4GBほど搭載していることがあります。ストレージの読み書き速度もどんどん加速し、昔では扱えなかったようなデータ量をリアルタイムで処理できます。インターネット回線も同様に大量のデータを扱えるようになりました。

しかし現実的な大きさのデータを一度に扱おうとすると、現代でもそれなりに処理時間がかかります。ユーザはレスポンスに対して敏感で、反応が0.1秒でも遅れるとストレスを感じます。しかし時間がかかるものはかかるのです。この問題は一見どうしようもないように思えます。

そこで登場するのが「データを細切れにして処理する」というコンピュータにおける万能の薬です。細切れにして逐次処理すれば、少しずつデータを処理することができ、素早いレスポンスを実現することができます。

今まで、この「細切れに処理する」という操作は、JavaScriptが苦手とする分野でした。しかしモダンブラウザに導入されつつあるStreams APIの登場によって、この状況は変わろうとしています。

Read More

JavaScriptで綺麗な色を生成する

人は見た目がn割(nには好きな数字を入れてね)だとよく言われます。そしてそれはウェブサイト/ウェブアプリケーションにおいても同じことです!1990年代丸出しのウェブサイトより、2018年的な見た目の方が好まれるでしょう。

見た目において大きな比重を占めているのが「色」です。色を工夫することで、我々はポップな新人歌手から、クールな高級ブランドまで幅広く表現できるのです。

そんな「色」ですが、コンピュータに生成させようとすると、なかなか苦労する羽目になります。そこでこの記事では、綺麗な「色」を生成するための工夫について紹介します。

Read More

ハッシュ化されたパスワードをJavaScriptで解析してみよう

インターネットを利用する上で常について回るのがセキュリティの話です。特にパスワードに関するセキュリティの話題は毎日尽きません。私たちは「このパスワードで大丈夫か」「破られはしないか」という不安を抱きながら、眠れない夜を過ごすことになります。

そこでちょっと気分転換をしてみましょう。今日だけはパスワードを破られる側ではなく、破る側に回ってみるのです。いろいろなことが学べますし、きっと楽しいはずです。

Read More

他人に読んでもらうJavaScriptコードを書くために

とりあえず動けばいい、の精神でコードを書ける個人開発とは違い、仕事やオープンソースプロジェクトにおけるコーディングでは、「他人が読むコード」を意識して書く必要があります。

他人が読むのですから、もちろんわかりやすいコードでなくてはなりません。でも、「わかりやすい」とは何でしょう。どうしたら実現できるのでしょう。

この記事では、他人が読む可能性があるコードを書くときに気をつけていた方がいい事項について、いくつか紹介します。

Read More

Async Clipboard APIでJavaScriptからクリップボードを操作する

JavaScriptからのクリップボードの操作は、長いあいだ開発者たちに切望されていました。かつてはFlashを使って実現するハックなどがありましたが、各ブラウザがexecCommandによるクリップボード操作を実装したことで、現在は落ち着きつつあります。

ただ、APIが綺麗に整備されているとは言いにくく、あまり現代的ではありません。そこで、スマートかつ現代的にクリップボードを扱うことができる、Async Clipboard APIの実装が進みつつあります。

Read More

WebGL2をオブジェクト指向っぽく触れるライブラリXenoGLを公開しました

WebGL、大変ですよね。OpenGLベースなのでC言語っぽいAPIと付き合っていかなければならず、JavaScriptの文化とはなかなか馴染みません。

そこでWebGLをオブジェクト指向っぽく触れるように、WebGL2用のラッパーライブラリであるXenoGLを開発・公開しました。

Read More

WebGL用のJavaScript行列計算ライブラリMatrixGLを公開しました

WebGLを扱う際には行列計算というのがどうしても必要になってきます。だいたいは既存のライブラリを使ってなんとかしたりするのですが、現状あまり選択肢は多くありません。そこで新しいライブラリであるMatrixGLを作って公開しました。

Read More

CSS Paint APIでJavaScriptからCSS用のグラフィックを動的に生成する

Houdiniというプロジェクトをご存知ですか?HoudiniはJavaScirptからアクセスできるCSSの機能を広げ、プログラマブルなCSSを実現するためのものです。Houdiniが実現すれば、まるでハリー・フーディーニのように物事を自在に操れるようになること間違いなしです!

そんなHoudiniの中で、CSS Paint API(CSS Painting API)がChrome 65で実装予定です。 CSS Paint APIを使って、ブラウザの上の魔術であるHoudiniを体験してみましょう。

Read More