タグ

ブックマーク / d.hatena.ne.jp/mooz (8)

  • JavaScript の分割代入まとめ - mooz deceives you

    幻の ECMAScript 4th 幻となった ECMAScript 4th のドラフトを眺めていたところ, p.33 に Destructuring assignment and binding (分割代入, 分割束縛) という項目を発見した. 分割代入に関しては JavaScript 1.7 (Firefox などが用いる SpiderMonkey や Rhino に実装済み) から使用が可能であるため, ご存知の方も多いのではないかと思う. 「そういえば詳しい仕様は見たことがなかったな」と軽い気持ちで読み進めていたところ, そこに述べられていることが Haskell や OCaml など関数型言語におけるパターンマッチと同等であると分かり, 驚いた. 例えば, 分割代入においては次のように deep なパターンが利用可能であると書かれている. let { x: {a, b}, y:

  • オレ標準 JavaScript 勉強会で def.js について発表してきました - mooz deceives you

    オレ標準 JavaScript 勉強会 で def.js について発表してきました. 発表資料は以下になります. また, ソースコードを読む際にメモを取っていたので, それも公開しておきます. スライドではコードの一部分のみしか取り上げることが出来なかったので, def.js の全容を把握したいという方は参考にしてみてください. メモ付きソースコード 発表 「こんなものを作ってみました, やってみました」という発表が出来れば良かったのですが, 特にアイディアも浮かばなかったため一週間ほど前に知り気になっていた def.js の解説をやろうということに. 「100 行も無いコードだしすぐに読めるだろう」と余裕をこいて前日の夜中にソースコードを読み始めたのですが, 様々なテクニックの駆使された濃いコードにかなり手間取ってしまい, その日は結局動作の仕組みを理解するだけで精一杯. 当日の朝から資

  • Twitter の OAuth 許可ページがあまりにも酷い => 応急処置 - mooz deceives you

    OAuth の Read と Write 先日, ツイート君に会話をまとめてもらい, 大変嫌な思いをした. Twitter の OAuth には Read 権限と Write 権限があって, Write 権限があると つぶやく 誰かをフォローする 誰かをリムーブする などのことが行えてしまう. つまり, Write 権限を要求するアプリケーションを許可することは, 「このアプリケーションが私のアカウントを使って勝手に変なことをつぶやいたり, 勝手に誰かをフォローしたり, 勝手に誰かをリムーブしても文句は言いませんよ」ということに等しい. さて, それでは OAuth の権限付与画面を見てみよう. ここでは冒頭に上げたツイート君が権限をこちらに要求してきている. では, いったい何の権限を要求してきているのだろうか. Read なのだろうか. それとも Write なのだろうか. 答えは R

    Twitter の OAuth 許可ページがあまりにも酷い => 応急処置 - mooz deceives you
  • JavaScript で Lisp の処理系 (と REPL) を実装してみた - mooz deceives you

    MiSPLi: http://mooz.github.com/mispli/ MiSPLi Emacs に出会ったのが三年前. それから一年程して elisp をいじり始めたので, 僕と Lisp との付き合いはかれこれ二年ほどになる. JavaScript を始めたのが一年前だから, 僕の中では C 言語に次いで付き合いの長い言語だ. 必要にかられたときにちょこちょこと elisp を書いて, 終わったらしばらく別れを告げる. そんな中途半端な付き合いを続けていた三月も終盤, 竹内先生の書かれた「初めての人のための LISP」を読み, その内容に深い感銘を受けた. Lisp を Lisp で実装する, といった章があり, これまで何となしに使っていた Lisp の中身を垣間見ることができたような, そんな気分になっていた. その時に, 「ひょっとしたら僕にも Lisp の処理系を実装でき

    JavaScript で Lisp の処理系 (と REPL) を実装してみた - mooz deceives you
  • KeySnail の M-x を水増しするプラグイン - mooz deceives you

    組み込みコマンドをエクステ化 KeySnail の M-x を水増ししてくれるプラグイン Builtin command as Ext をリリースしました。 インストールは以下のプラグイン名を右クリックし、「このプラグインをインストール」を選択することで行えます。 Builtin command as Ext 組み込みコマンドをエクステ化 このプラグインをインストールすると、キーバインド用に提供されている KeySnail の組み込みコマンドを M-x (ext.select) から一覧表示し、実行することが可能となります。 何がうれしいか M-x にたくさんアイテムが追加され、見た目が「それっぽく」なるというのが大きいです。まるで Emacs を使っているかのような気分に浸ることができます。 キーへと割り当てられなかったコマンドを実行することや、キーバインドを覚えていないコマンドを呼び出

  • KeySnail プラグインの書き方 - mooz deceives you

    KeySnail プラグインの書き方 先日予告したとおり、今回のエントリでは KeySnail プラグインの書き方について説明したいと思います。これからプラグインを書こうと思われている方の参考になれば幸いです。 KeySnail プラグインの書式 KeySnail プラグインは Chrome 特権の元で動作する JavaScript のプログラムですが、次のような点に留意する必要があります。 拡張子は .ks.js マルチバイト文字をプラグイン内で使用する場合は L() や M() でくくる PLUGIN_INFO という変数にメタ情報を記述する それぞれの詳細については後述します。 拡張子 KeySnail プラグインの拡張子は .ks.js となっている必要があります。これは userChrome.js のユーザスクリプトが foobar.uc.js となっているのと同様です。 プラグ

  • KeySnail 1.0 の新機能「プラグインシステム」を使う - mooz deceives you

    プラグインシステムとは 先日 KeySnail が 0.9 系列から 1.0.x へとバージョンアップしました。その際追加された目玉機能が、このエントリで紹介する「プラグインシステム」です。 まずは次のスクリーンショットをご覧下さい。 一見すると Firefox のアドオン管理画面のようにも見えますが、これは KeySnail のプラグインを管理する「プラグインマネージャ」のスクリーンショットとなります。 左の列に現在インストールされている KeySnail のプラグインが並び、その右には選択されているプラグインの説明が表示されます。 プラグインシステムを導入することの利点 これまでもユーザの方が書いたスクリプトをウェブからコピーし自身の初期化ファイル (.keysnail.js) に張り付けることで、 KeySnail を拡張していくことが可能となっていました。 しかし、このようなカスタ

    KeySnail 1.0 の新機能「プラグインシステム」を使う - mooz deceives you
  • Emacs ユーザにおすすめのアドオン KeySnail - mooz deceives you

    注意 現在の KeySnail にはプラグインシステムというものが導入され、これまで以上に拡張性が高まっています。最新版の KeySnail は以下のページよりダウンロードすることが可能です。 no title プラグインについては次のエントリを参照してください。 KeySnail 1.0 の新機能「プラグインシステム」を使う - mooz deceives you KeySnail とは KeySnail は Firefox のキーバインドを極限までカスタマイズすることが可能なアドオンです。このアドオンが keyconfig などの「ショートカットキーカスタマイズ系」の拡張機能と比較して優れている点は、次の四つ (or 人によっては三つ) となります。 キーボードショートカットに「連続したキーの組み合わせ」を指定することが可能 モードごとのキー割り当てが可能な為、同じショートカットキーに

    Emacs ユーザにおすすめのアドオン KeySnail - mooz deceives you
    tsukkee
    tsukkee 2009/09/26
    Thunderbirdでも使えるようにならんかな
  • 1