三角コーンに擬態するヤドカリロボットを作ってみた【NT金沢】 先週末開催されたNT金沢にて、こんなものを持っていきました。 というわけで、#NT金沢 出展中です!今回の作品は「ヤドカリ・パイロン」。パイロンに擬態したヤドカリが、シャカシャカ歩き回ります。"つくる〜む海老名"ブースにて! pic.twitter.com/ZTTKCtSdKj— shikk…

三角コーンに擬態するヤドカリロボットを作ってみた【NT金沢】 先週末開催されたNT金沢にて、こんなものを持っていきました。 というわけで、#NT金沢 出展中です!今回の作品は「ヤドカリ・パイロン」。パイロンに擬態したヤドカリが、シャカシャカ歩き回ります。"つくる〜む海老名"ブースにて! pic.twitter.com/ZTTKCtSdKj— shikk…
私は2001年からJavaScriptを専門にして実装をしており、かなり長い間JavaScriptを使い続けてきました。ExGameをはじめとして、異常なほどにJavaScriptを使い倒したプロジェクトを何個か完遂させています。前の会社「ブロードテイル」がDeNAに買収されたのは、JavaScriptのプロダクトだけでなく、私たちのJavaScriptのスキルを生かしたいという側面も大きくあったと感じています。 そんな私ですが、正直に言うとJSXの開発にはほとんど関わっていません。JSXは基本的に一穂さんが主導し、gfxがフォローし、a_bickyがドッグフードを食べる(自分たちのプロダクトをまず自分たちで率先して使う)という形で進んできました。私が強くかかわったのは、主に3月の言語仕様を決めるときの議論程度です。なのでJSXについてそこまで詳しい訳ではないのですが、そばで開発を見てきた
なぜ「速い」のか、について JSX 開発者の立場から。 たとえば、シューティングゲームで一番重たい処理は何か。言うまでもなく衝突判定。多数の弾や敵機の衝突判定を毎フレームごとに行う必要があり、この演算が重たい。 JSX に同梱されている web/example/shooting.jsx には衝突判定のコードが複数あるが、一番重たいのは Bullet#update 関数で、その処理は以下のようになっている*1。 for (var rockKey in st.rocks) { var rock = st.rocks[rockKey]; if (this.detectCollision(rock)) { if (rock.hp == 0) return false; inDisplay = false; if (--rock.hp == 0) { st.score = Math.min(st.s
HJ: Haskell-to-JavaScript Work in Progress This project aims to provide a compiler (specifically a code generator) for a subset Haskell to JavaScript. The outputted code should be small, a fairly good correspondance to the Haskell version, i.e. reasonably intelligible, and it should compress well with one of the major JavaScript compressors. It should at least be reasonably performant. Why write a
ちょっとしたお遊びなんですが、普段は画面の下の隅に隠れてて、クリック (タップ) で展開、いくつかのショートカットメニューが表示される、しかもスマートフォンだと片手だけで操作しやすいみたいな UI を CSS と超簡単な JavaScript (jQuery 使用) で作ってみたので紹介。 久々にこの手のネタ書いた気がしますけども… ちょっとしたお遊びなんですが、普段は画面の下の隅に隠れてて、クリック (タップ) で展開、いくつかのショートカットメニューが表示される、しかもスマートフォンだと片手だけで操作しやすいみたいな UI を CSS と超簡単な JavaScript (jQuery 使用) で作ってみたので紹介。多分言葉で言っても伝わりにくいと思いますので実際のサンプルをまずは見てみてください。 CSS で作るスマートフォン向け片手操作メニュー サンプル 現在最新版の Firefox
Changzhou Chenguang Machinery Co., Ltd. , Shenzhen Super Fast Laser Technology Co., Ltd. , Guangzhou Shunzheng Technology Co., Ltd , Guangzhou Qireal Machinery Equipment Co., Ltd. , Xinxiang HUAYIN Renewable Energy Equipment Co., Ltd , Shenzhen TICO Technology Co.,Ltd. , Guangzhou Mingyi Engine Seal Gasket Manufacturing Factory , Shandong Chuangxin Building Materials Complete Equipments Co., Ltd ,
最近CoffeeScript界隈のブロゴスフィア(死語)を賑わせていた「CoffeeScriptを使うべきか、使わざるべきか?」という話題についてまとめてみた。 以下の記事紹介は超訳かつ要約なので詳しく知りたい人は元記事を参照のこと。 ことの発端はこの記事。 SnackJSの作者がCoffeeScriptをディスる。 A Case Against Using CoffeeScript by Ryan Florence デバッグの問題 CoffeeScriptが生成するJavaScriptはきちんとしているけど、結局は自分が書いたコードじゃないため読みにくい。自分で直接書いたほうが見やすい。 それにCoffeeScriptをデバッグするワークフローは大変だ。 まず問題がJavaScript内のどこで発生したのかを突き止める(CoffeeScriptのコードと行単位で対応してないから大変だ)
authorjQuery, Sizzle, querySelectorAll, XPathの速度検証 単に要素を取得したいだけの場合、いったいどれが一番速いのか。 function bench (func) { var start = (new Date()).getTime(); for (var i = 0; i < 1000000; i++) { func(); } var end = (new Date()).getTime(); console.log((end - start) + 'ms'); } ベンチコードは右記のようなもの つまるところ、100万回取得する。 それを5回試行して、平均値を取ったものをスコアとする。 ID $('#id') jQuery 2s Sizzle('#id') Sizzle 2.4s document.querySelectorAll('#par
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
スマートフォン向け拡張JS。prue JSなので、とくに何とも干渉しません。 Quick Usage spTouch('#id'); とすると、以降#idの要素に、以下のようなイベントが飛んでくるようになります。 FlickEvent SwipeEvent TapEvent LongTapEvent 各イベントの値はどっかで。 Scroller spTouch('#id').scroller(); とすることで、#idの要素の中身が指でスクロールできるようになります。それらしく、一番上までスクロールした時や一番下までスクロールしたときなどは、親にスクロールが透過されます。フリックでびゅんびゅん読むことも可能です。 ご利用 $ git clone git://github.com/hebisan/spTouch.git spTouch $ make all ドキュメントらしいものはdocフォ
authorspTouchというものを作りました。 なんかAndroidのブラウザでoverflow: scroll;が聞かないバグが3年ほど治っていないらしく、悲しい気持ちになったので作りました。 Githubにコードがまるごとのせてあります。落としてmake allしましょう。 var touch = spTouch('#id'); touch.addEventListener('flick', function() { alert('Flickしましたね!'); }); 基本的な使い方というか、そういうのはあんまりなくて、spTouchでinitializeすると、その後そのDOMに向かってflickとかswipeとかのイベントがclickとおなじように飛んできます。 touch.bind({ flick: function() { ... } }); 発展的というかそこそこ便利にな
2011/10/01 に開催された Mozilla 勉強会@東京 6th で WeakMap について LT を行わせて頂きました.発表資料,メタ的な説明,勉強会の感想,そして Firefox Hacks Rebooted の説明を記します. 発表資料 説明 ECMAScript 6*1 に導入される予定の機能に WeakMap というものがあります.これは平たく言うと「連想配列」で,ようやく ECMAScript にもまともな連想配列*2が導入されて喜びもひとしおな方も多いことでしょう. その WeakMap ですが,以前 Proxy を先走って実装してくれた Mozilla が再び先走って実装を行なっています.結果として Firefox 6 からこの WeakMap は利用可能となりました. 今回は 5 分間の LT ということで仔細な話は無理と判断し,抑えておくべき WeakMap
jQuery Tag プラグインは jQuery のメソッドチェーンを途切ることなく、HTML タグを組み立てるためのプラグインです。HTML タグの生成と追加をスタックで操作することで、メソッドチェーンを崩さずに HTML タグを組み立て続けることができます。 スタックの操作は jQuery 自体が持つスタックの仕組みを利用しています。jQuery は pushStack メソッドで現在のインスタンスをスタックに積み、end メソッドで直前のインスタンスに戻すことができます。 この特性を利用して、tag メソッドで HTML タグを生成して pushStack メソッドでスタックに積みます。gat メソッドで end メソッドでスタックから戻し、HTML タグを追加します。gat メソッドの名前は tag メソッドを逆に読んだものです。戻すや反対という意味を込めています。 また $.ta
Google が開発しているという新言語「Dart」を覚えていますでしょうか。来月の GOTO Aarhus 2011 Conference にて発表があるということで数日間は話題に登ったものの、その後は続報もなく忘れ去られているようです。 実はこの Dart に関連して、 2010 年 10 月に書かれた Google の内部文書 (?) が注目されています。その中では、 JavaScript の次期版である Harmony と平行して新たな言語「Dash」を開発することが示唆されており、それが来月発表される Dart の正体ではないかと言われています。また、 Google が新言語の開発を決断した理由や今後のオプション、そして僅かながら関連するプロジェクトについてなども語られており、なかなか興味深い内容です。 そこで、本日はこの文書のハイライトをご紹介したいと思います。いつもながら翻訳
The Difference Between jQuery’s .bind(), .live(), and .delegate() - Alfa Jango Blog http://www.alfajango.com/blog/the-difference-between-jquerys-bind-live-and-delegate/ jQueryの.bind(), .live(), .delegate()違いや仕組みの理解、また.delegate()の方が.live()より優れている理由について書かれています。 内容を簡単に書き出すと以下のようなことについて書かれています。 $('a').bind('click', function() { alert("That tickles!") }); .bind()は$(‘a’)に対してイベントを設定してる。 $('a').live('clic
HTML5熱いですね。いろんな意味で BigPipeやら、HTMLでテンプレートエンジンとかいろいろ出ていますがユーザービリティ下げちゃいけないよねって事は、どの技術でも大切な共通項ですね。pjax = pushState + ajax使えば、リッチな人にはサクサクなUIを、そうじゃない人にもそれなりに提供できる。その上、戻るボタンもサーチエンジンにも優しいとくれば、これは試さないわけには行かないですね。 動作サンプル: http://pjax.atu.si/ Pjaxするとどうなるのか? 非同期動作時 http://pjax.atu.si にアクセスをして、リンクをクリックすると要素が非同期に変更される。 非同期に更新されているがURLは、シンプルなものに変更される。 同期動作時 http://pjax.atu.si/parts/x や http://pjax.atu.si/parts/
RubyのStringクラスには、文字列の左右の空白を除去するメソッドstripが存在します。でもJavaScriptにはありません。なのでJavaScriptで同じ機能を実装しようとしたのですが、最初はうまいやり方がわからず、下記のようにreplaceメソッドを二回使っていました。 " ho ge ".replace(/^\s*/, "").replace(/\s*$/, ""); // => "ho ge" でもこれはどう考えてもcoolじゃありません。どうやったらきれいにできるのかなーと思いつつ正規表現の本を読んでたら、最小量指定子を使う方法を思いつきました。 " ho ge ".replace(/^\s*(.*?)\s*$/, "$1"); // => "ho ge" これでcoolになりました。正規表現ももう少し勉強する必要があるなー 参考 詳説 正規表現 第3版 作者: Jef
iPhoneアプリのようなリッチなUIをブラウザで実現!Web 2.0 Touchが凄すぎる! 2011年8月25日 in iPhone, Web Web 2.0 Touchは、WebKitエンジン上で動作するJavaScriptライブラリです。 2011/8/22に公開されたばかりの模様。 iPhoneアプリのようなリッチなUIをブラウザでも簡単に作ることができます。 iPhone・iPad・Androidに対応しています。 どんな動きが出来るのか、これを見ると一目瞭然です。 アニメーション 上下左右のフリップ(画面が反転する動き)、ポップイン、ポップアウト、上下左右のスライドが出来ます。 テーブル表示 お馴染みのテーブル表示もこの通り。角丸タイプのテーブルも作れるようです。 ボタンやタブ表示、吹き出し タブ表示は便利な機能ですが、自分ではとても作れないところなので、需要ありそう
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く