カテゴリー
ネットのサービス

サスペンスかSF風のBGMをブラウザで作れるサイト

Jake Albaugh さんが公開した Musical Chord Progression Arpeggiatorは、楽譜や楽器の素養が無くても、和音の要素をばらしてそれらしく弾いてくれるというアルペジエーターを、ブラウザ上のJavaScriptで作ったというものです。

musical-chord-progression-arpeggiator

いろいろなスイッチを適当に変えれば、一つとないオリジナルな曲ができあがります。どれも同じように聴こえてしまうオリジナルさではありますが。

自分の作った動画に他人の著作権が及ばないBGMを簡単につけたいというときなどに、こういう自動作曲のサービスは使い良いのではないでしょうか。

ブラウザ上でのインタラクティブな音を扱うオープンソースライブラリTone.jsを使っています。codepen.io上に置かれたソースがそのまま実行されているので、やる気があれば自分用に改造することもできるでしょう。

via reddit

カテゴリー
技術

PDFで作られたブロック崩し

pdfファイルといえば様々な環境でなるべく同じに見えるようにレイアウトを固定した文書を配る時のフォーマットだと思いますが、そのpdf形式で作られたブロック崩しゲームが公開されました。

breakout.pdf
(Chromeブラウザでのみ動作)

画面下の青い部分でマウスを動かすと、自機を左右に動かすことができます。

pdf-breakout

Omar Rizwanさんによるソースコードおよび解説によると、PDFは仕様上はFlashやら音声やら動画やらJavaScriptやら、いろんなものを内蔵できるようになっているのだそうです。

ただ、ほとんどのPDFビューワーでは、そういった本流でない部分の仕様は実装していません。しかし、Chromeブラウザ内蔵のpdfビューワーでは、pdfがサポートしているJavaScriptの仕様のうちのいくつかが実装されているそうです。pdfからJavaScriptを呼び出せるというブログを見たRizwanさんは、使えるAPIだけを使って、ブロック崩しゲームを実装してしまった、というわけです。

このChrome pdfビューワの実装においても、データベースに接続するとか、接続されたモニターを検出するとか、外部リソースにアクセスするとか、そういったほとんどの機能は「サポートしない」となっていて、pdfの内部で計算をすることはできても、外部とのやりとりをする手段の多くは使えないのだとか。

この限定されたAPIから、テキストの背景色を動的に変えることはできないけれど、その枠の大きさと枠のスタイルは変えられる、ということで、ブロックの表示・非表示を制御したそうです。

また、マウスの正確な位置を検出する手段はないけれど、PDF作成時に配置したフィールドへのマウスカーソルの出入りは検出できるということで、これを使ってマウスの場所を取得しているそうです。

フィールドも後で追加することはできず、PDFに最初から持たせておく必要があるそうで、自機、ブロック、ボール、得点、残機のそれぞれを、大量のフィールドとしてPDF上に配置するスクリプトを書き、それでゲーム画面のPDFを生成させているということ。

Chromeブラウザ上のpdfビューワは、もともとGoogleがFoxitから買い取ったpdfビューワーを基にしたものらしいということで、Foxitの時代にその顧客がこの小さなJavaScriptセットを使っていたのではないか、とRizwanさんは推測しています。

via TheNextWeb

カテゴリー
英語学習

Alex – 政治的に正しくない英単語の利用をチェックできるツール

Catch insensitive, inconsiderate writing (心無く、浅はかな文章を捕らえよう) というキャッチで公開されている Alex は、JavaScript/Node.js ベースで書かれた英文チェックツールです。いわゆるポリティカル・コレクトネス(PC)に反する、政治的や社会的に差別や偏見のある単語が使われていないかを見つけてくれます。

ウェブですぐに動作を試せるデモが公開されているので、それを見てみるのが一番早いでしょう。

alexjs-demo

「カメラマン」「チェアマン」みたいな男女差別につながる言葉、”he”とか”she”とかの男女を決め打ちで書いた主語、master/slave など人種差別の時に使われる表現、などを見つけ、赤でハイライトしてくれます。

下部には、「ではどんな単語を使えば問題ないのか」も表示してくれます。

# ワンクリックで全部置き換えるボタンもあっても良さそうなものですが

GitHub 上でソースは公開されていて、修正提案や用語の追加なども受け付けています。

JavaScript のソースをローカルでコマンドラインで動かすこともできるし、Atom や Sublime といった著名なテキストエディタや、gulp からマニュアルファイル等のチェックをするために呼び出すためのインテグレーションコードも紹介されています。

話題になっている Hacker News でも、GitHub の Issues でも、「なぜこれがダメなのか」とか「判定がおかしい」という文句が出ていて、問題の難しさが垣間見えます。

機械的に処理しているのだから誤検出も多く、指摘されたことを全部書き換える必要はない(しするべきでもない)ですが、僕ら非ネイティブからしたら「そんな問題があったのか/気にしてる人がいるのか」という情報を簡単に得られるという点で、英文のメールやリリースを書いたときに通してみる意味はあるように思います。

それが配慮なのか、それとも言葉狩りになってしまっているのか、検出結果を見て判断するのもまた非英語話者にはたいへんなことではありますが。

[追記 2022-10] 7年経った今でもツールは更新されているようです。7年間のうちに130個以上の issues がクロースされており、意外にライブラリとしていろいろなところで使われているのかもしれません。

via Hacker News

関連

ネーミングが外国語で危ない意味になってないか調べられる WordSafety.com

joblint – 英語の求人表現をチェックしてくれるツール

あなたの英語がどの方言かを判定してくれるサイト WhichEnglish