Posts Tagged ‘JavaScript’
ブラウザで実行できる3DCGのデモ
サーバーサイドからスマートフォンまでなんでもできてしまうJavaScriptですが、WebGLを使ったすごいデモが話題のようです。画像ではつたわりにくいですがマウス操作にあわせてぐりぐりと動きます。凄いですね。
via:http://mrdoob.github.com/three.js/examples/webgl_materials_cubemap_balls_reflection.html
2万5千行のpull requestが話題
プログラマにとって欠かせないコミュニティになったgithubで話題になっているpull requestがありました。話題になっているのは正しい仕事の為の正しいツールという触れ込みのJavaScriptフレームワーク集「EveryJS」のリポジトリでそこに送られて来たプルリクエストの差分の量が驚きの426行追加、24623行削除。不必要にJavaScriptを使って表示を行っている部分をhtmlに変える事で動作の速度を向上させる狙いのようです。
またこのEveryJS.comの日本語の情報が無かったので掲載されているライブラリの全32個のリストも紹介しておきます。このリストもなかなか有用そうですしEveryJS.comをブックマークしてみようと思います。
- Backbone.js イベントとKVSを結ぶ構造を提供
- Benchmark.js 高解像度タイマ対応のベンチマーク
- Cappuccino デスクトップライクなアプリ用のライブラリ
- Closure Tools GoogleがGmailやGoogle Mapなどで使用しているライブラリ
- Dojo Toolkit クロスプラットフォームAJAXライブラリ
- Ender マイクロAPIライブラリ
- environ 動作環境検出ライブラリ
- functools 関数操作のミニマルライブラリ
- Grafico 図表ライブラリ
- Handlebars セマンティックテンプレートエンジン
- JavaScriptMVC JQueryによるMVC
- jQuery 定番ライブラリ
- jQuery UI イベントとインターフェースを提供
- Knockout データモデルに応じたリッチなエディタなどのインタフェースを実現するライブラリ
- LABjs ダイナミックなローダーライブラリ
- Milk CoffeeScriptで書いたテンプレートエンジン
- MochiKit JavaScriptを改善する
- Modernizr HTML5とCSS3を非対応ブラウザで扱う
- MooTools コンパクトなフレームワーク
- Morpheus トゥイーンを提供
- oCanvas オブジェクト型キャンバスツール
- OpenLayers マップをブラウザで扱うためのライブラリ
- qooxdoo ユニバーサルなプラットフォームの為のフレームワーク
- Raphael ベクターグラフィックの為のライブラリ
- scaleApp スケーラブルな1ページアプリケーションフレームワーク
- Spine 軽量MVCフレームワーク
- SproutCore ビューを自動で更新するMVCフレームワーク
- Uki シンプルなインターフェースツールキット
- Underscore 関数プログラミングライブラリ
- xui モバイルHTML5対応超マイクロDOMライブラリ
- YUI 3 ヤフーのJS&CSSライブラリ
- Zepto モバイルWEBKit向けのJQuery互換ライブラリ
JavaScript向けのライブラリやフレームワークがこんなに大量にあるとは。。。。正直知らない物だらけでした。気になるものがあればデモなどをご覧になってみてください。
テック系カンファレンスで良いWiFi環境を作る方法
テクノロジー系のカンファレンスに参加するとWiFiのネットワーク名とパスワードをアナウンスするという光景は最近はどこの世界でも見かける光景です。グーグルのJavaScriptハッカー、Malte UblさんがJSConfでのネットワーク環境を快適にする為に注意した点をまとめたエントリが話題になっていました。
- 0.基本 WiFi環境を担当する人を決める。
- 1.何も信用しない 会場を予約して「WiFiは大丈夫」と言われても嘘だと思って詳細を確認する。
- 2.参加者の数とデバイスの数 1人あたり2.3のデバイスとして計算する。(iPad以降の数字)
- 3.知らない会場 臨時の設備 事前のテストが難しくなるが、それでもできる範囲でテストすべき。
- 4.帯域 参加者独りあたり上り下りともに100kビットとして計算する。
- 5.チャンネル毎の帯域 1チャンネル毎に有効な帯域は20Mビット、WiFiは11チャンネル。つまり220MBの壁を越える事は出来ない。
- 6.人 bittorrentなどで帯域を大量に消費する人が居た場合はIPをブロックする必要もある
- 7.JSConfでの教訓 100人程度のカンファレンスでも数人、問題になる参加者が居るので対処が必要
このセッションの発表資料がこちらにあります。イベントを運営する際にWiFiの提供は悩みの種の1つです。JSConfはかなりの規模のカンファレンスですが、その裏では地道な苦労があったのですね。みなさんもイベントに参加する際は帯域を大量に使うソフトウェアを終了する事を忘れないようにすると運営者の方の苦労が小さくなるかもしれません。
via:http://www.nonblocking.io/2011/05/how-to-make-wifi-work-at-tech.html
美しすぎるギークと行くHulu.comのオフィス
テレビ番組や映画などを様々なデバイス向けに配信するHulu.comというサービスがあります。アメリカ国内のネットワークからでないと利用できないのでなじみが薄いサービスですが、さまざまなセットトップボックスなどにも対応しかなりの規模のサービスになっています。この会社のオフィスの様子が求人サイトDice.com提供の動画番組、「Best Job Ever」で取材されていたものが面白かったので紹介します。
ロサンゼルスにあるオフィスを取材するリポーターは美しすぎるギーク、ベロニカです。
個室形式のオフィスではないですが机も広めでモニタが3台支給されていますね。サービスの規模の割にはチームの規模は小さく、デザイナー、エンジニア、マネージャーが一体となって開発にあたっているとのこと。
さまざまなデバイスに向けてサービスを展開しているHuluですが、コアと呼ばれる共通部分がありJavaScriptで記述されているとのこと。その上で各端末向けの部分を様々な言語で開発し、希望があれば他の言語での経験なども詰めるのが求職者向けのアピールポイントだそうです。
面接の際にはコーディングにかける情熱を見せて欲しいとのこと。求人広告を見るのは楽しいですが動画で見せてくれるのはイメージが掴みやすいのでいい方法ですね。5分ほどの短い動画なので雰囲気が気になった方は動画もご覧になってみてください。
via:http://www.youtube.com/watch?v=YvvT-YPM2ro
YammerがNode.jsの運用で学んだこと
Node.jsのカンファレンス NodeConf 2011にて、YammerのリードエンジニアであるMatthew Eernisse氏がNode.jsの運用を通じて学んだことについての発表を行いました。発表のサマリーは5 Lessons Learned Running Node.js in Productionで読むことができます(スライドはまだ公開されていないようです)。
「コールバックを使ったスタイルのコードは、イテレーティブに開発をしやすいが、結果としてスパゲッティコードになりがち」という意見は他所でも見かけることがありますね。また、
- 物事は失敗すると仮定せよ
- コールバックは失敗すると仮定してデフォルトではエラーメッセージを出力するようにし、処理が上手くいった場合にエラーを取り消すようにする
- あとで原因を調査できるよう、すべてのエラーはログに記録しておくこと
- 可視性とメトリクス
- 初期段階から、あらゆるものを測定して記録するようにすべき
- Yammerではメトリクスライブラリとしてmikejihbe/metricsを利用している
といったところは、実際にサービスを運用しているところらしい意見です。
私も普段からYammerを利用しており、ここ数カ月でリアルタイム性がかなり向上してきている印象があったのですが、その裏にはNode.jsのパワーがあったのですね。
ブラウザ上で動く教育用ビジュアルプログラミング環境 Waterbear
ポートランドで開催されたJSConfにて、ブラウザ上で動く教育用ビジュアルプログラミング環境 Waterbearが発表されました。
Waterbearは、MITメディアラボで開発されているScratchに似たアプローチの言語で、制御構造やユーザーの操作をあらわすブロックを繋ぎ合わせることでプログラミングを行います。ベースがJavaScriptなので、ビジュアルに作成したプログラムから生成されたJavaScriptコードを見ることができるのが特徴です。
開発者のDethe Elza氏が目指しているのは、Alan Kay氏がSqueakで目指したものと同様に、
- プログラミングの書籍で使われるようになること
- プログラミングの初学者がよりプログラミングに没入できる環境となること
- 普通の人がカジュアルなプログラマーとなれること
だということです。
実装としては、jQueryやModernizr、Processing.js、Raphael.jsといったライブラリを使ったクライアントサイド(ブラウザ上)で稼働するアプリケーションとなっています。Waterbearのサイトでは実際にブラウザ上からプログラミングを試すことができますし、ソースコードもGitHubで公開されていますので、興味のある方はちょっと覗いてみてはどうでしょうか。
ちなみに、Waterbearという名前はタフさに定評のあるクマムシから命名されたもので、RubyやPythonといった他の言語からも使えるようなとにかくしっかりした言語を目指している、ということです。
via:http://www.readwriteweb.com/hack/2011/05/waterbear-is-like-scratch-but.php
LAMPは死に、そしてNode.jsとJavaScriptの時代
サンフランシスコのスタートアップ、Metamarkets社CTOのMICHAEL DRISCOLL氏がブログ上で書いた記事が話題になっていました。彼の記事によると、それまでのPythonとDjangoで構成されていたサーバサイドアプリケーションをnode.jsで置き換える決断をしたとの事。その理由は「LAMP構成は誕生から20年が経過し既に死んでいる」という事実を理解したからだそうです。またWEBを以下の3つの時代に分けて説明しています。
- 1991 – 1999: HTML時代 静的なドキュメントがサーバーから公開されていた時代
- 2000 – 2009: LAMP時代 様々な言語で構成されたアプリケーションがHTMLのテンプレートとデータベースの値を元に動的なコンテンツを公開。ただしクライアントサイドは静的なまま
- 2010 – ????: JavaScript時代 サーバーサイドアプリケーションは小さなデータをイベントを介してクライアントに提供し、クライアントサイドでDOMに反映する。
たしかに最近のWEBアプリケーションではJSONやXMLを通じてデータを返却する事が増えて来ているように思います。またコードに占めるJavaScriptの割合も増加傾向になります。そういった中でデータの断片をイベントに対して返却するというスタイルのサーバーサイドアプリケーションにはNode.jsが適しているというのはシンプルな論理ですね。
via: http://metamarketsgroup.com/blog/node-js-and-the-javascript-age/