タグ

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

  • Mozilla 勉強会で ECMAScript 6 の WeakMap について LT しました - mooz deceives you

    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

  • Dropbox に Emacs のバックアップファイルを同期させない - mooz deceives you

    Dropbox 管理下にあるファイルを Emacs で編集していると, バックアップファイルである #foo.txt# や foo.txt~ がファイルと同じ場所へ保存され, その度に Dropbox の同期が行われてしまい気分が良くない. かといってこれを全く作らないようにするという設定も, バックアップファイルには何度か助けられたことがあるために頂けなかった. そこで調べてみたところ ubulog: Emacsでオートセーブファイルの作成場所を変える という記事を発見. Emacs に「特定のパターンにあてはまるファイル」のバックアップファイル名を変換したり, バックアップ先ディレクトリを指定したりする仕組みが用意されていることを知った. 上記リンク先を参考に, 次のような設定を .emacs に行っておいた. dropbox-directory と destination-direc

  • Rios::Proxy について #rubykaigi 2011 で発表しました - mooz deceives you

    Ruby 会議 2011 先日行われた Ruby 会議 2011 の LT で Rios という自作のモジュールについて発表する機会を頂きました.SlideShare に発表資料を上げましたので,以下に URL を載せておきます(何を血迷ったか自作の別ツールを宣伝してしまってスミマセン……). この記事では LT 中に触れられなかった点について,簡単な補足などを行ないます. Rios Rios を一言で説明すると「CLI (Command Line Interface) のためのプロキシフレームワーク」となります.「プロキシフレームワーク」という言葉自体が私による全くの造語なため,イメージもわきにくいことでしょう. 「CLI」という言葉は,Rios の対象とするアプリケーションを意味します.こうしたアプリケーションでは,インタフェースが文字のみで構成されており,ユーザも文字を打ち込んで操作

    Rios::Proxy について #rubykaigi 2011 で発表しました - mooz deceives you
  • atool を使い dired のサポートする圧縮形式を増やす - mooz deceives you

    atool を使い dired のサポートする圧縮形式を増やす設定を紹介する. atool atool <http://www.nongnu.org/atool/> というツールがある. これは様々な圧縮形式・ツールに対するフロントエンドツールで,ファイルの拡張子から適切な圧縮形式を推測し,内部で適切なコマンドを呼び出してくれるという優れもの. 標準で搭載しているシステムは少ないが,たいていはソフトウェアリポジトリに入っている.例えば Ubuntu なら apt でインストールすることができる. sudo apt-get install atool 使い方は簡単で,例えばファイル FILE を解凍する場合は次のようにすれば良い. aunpack FILE tar xvf や gunzip など圧縮形式毎にコマンドを記憶する時代は終わった.こうして人間は退化していく. dired の圧縮・解

  • popup.el の popup-menu* ではじめから絞り込み検索 - mooz deceives you

    popup.el の popup-menu* は非常に便利なのですが, auto-complete.el のように打ち込んだ文字に応じて絞り込み検索がされてくれればなあ, と思うこともあります. 候補が選択されてから C-s を押すことで incremental-search はできるのですが, この C-s が中々手間です. こんなことを Twitter でつぶやいていたら, 作者の id:m2ym さんからコメントを頂くことが出来ました. コメントを参考に書いてみたのが次の関数です. (defun popup-menu-ac-like (&rest arguments) (interactive) (push (car (rassoc 'popup-isearch popup-menu-keymap)) unread-command-events) (apply 'popup-menu

    popup.el の popup-menu* ではじめから絞り込み検索 - mooz deceives you
  • Shadow.el - Emacs に Shadow.vim を - mooz deceives you

    Shadow.vim Vim 用のプラグインに Shadow.vim というものがあります. これは, ファイルを保存するたびに 指定されたコマンドを実行し 実行結果を保存する という作業を行なう非常にシンプルなプラグインで,作者である ujihisa さんは,以下のように説明されています. これは任意の言語で任意の事前処理を行なうための薄いフレームワークです。コマンドや関数は提供されず、以下のようなファイル読み込み時と保存時のフックのみを提供します。 シンプルでこそあれ,小粒でもピリリと辛いプラグインです.その使い方,そして応用例に関しては no title を見ると良いでしょう. Shadow.el さて,先述の Shadow.vim ですが,残念ながら Emacs では動作しません.当たり前ですね. 話は変わりますが,先日開催された Yokohama.vim #1 で「Vim も E

  • js2-mode.el (フォーク版) 20101228 リリース - mooz deceives you

    ちょくちょく no title の方をいじっていたのですが, 今年中に行った変更は今年中に一度リリースしてしまおうということで. 変更点をまとめておきます. 変更点 ネストされた関数式やオブジェクトリテラルのインデント オリジナルの js2-mode で, ネストされた関数式やオブジェクトリテラルのインデントが以下のように嫌な感じになっていた問題を修正しました. $.ajax({ type : "POST", url : "some.php", data : "name=John&location=Boston", success : function (msg) { alert( "Data Saved: " + msg ); } }); 修正版では, 次のようになります. $.ajax({ type : "POST", url : "some.php", data : "name=Jo

    kitokitoki
    kitokitoki 2010/12/29
    使う
  • start-process の中で xdg-open や gnome-open を使う際の注意点 - mooz deceives you

    start-process で xdg-open が呼び出せない 以前 Linux でも open や fiber 的な動作を - mooz deceives you という記事を書いたのだけれど, ここで紹介している設定を先ほど試したところ, どうもうまく動いてくれないことが分かった. そこで, 次のような関数を書いてみる. (defun open-file-dwim (filename) "Open file dwim" (let* ((winp (string-equal window-system "w32")) (opener (if (file-directory-p filename) (if winp '("explorer.exe") '("gnome-open")) (if winp '("fiber.exe") '("gnome-open")))) (fn (repl

  • flyspell-mode の修正候補表示を popup.el で - mooz deceives you

    flyspell-mode + popup.el flyspell-mode という, 英語の苦手な人にとっては大変ありがたい elisp があります. かの flymake-mode よろしくリアルタイムで英単語の綴り間違いを検出しては, 該当部分のハイライトとその修正を行ってくれるというもので, この機能さえ有効にしておけばもう typo など怖くはないといえます. さて, この便利な便利な flyspell-mode ですが, 僕にとっては一つ不満点がありました. それは, 単語の修正を行うインタフェースが (確認できた限りでは) 次の二つしか提供されていないというものです. マウスで (!) 該当する単語を中ボタンクリックし, マウスを (!) 使って修正候補を選ぶ dabbrev ライクなインタフェースで修正候補を選択 (flyspell-auto-correct-word) 1

  • 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
  • 最近閉じたタブを一覧表示して復元 - mooz deceives you

    最近閉じたタブを一覧表示 意外と欲しい機能。 次のようして、エクステとして登録しておく。 ext.add("list-closed-tabs", function () { const fav = "chrome://mozapps/skin/places/defaultFavicon.png"; var ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore); var json = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON); var closedTabs = [[tab.image || fav, tab.title] for each (tab in json.decode(ss.getClosedTabData(w

    最近閉じたタブを一覧表示して復元 - mooz deceives you
  • prompt.selector を使おう 〜はてなブックマーク拡張と KeySnail の連携〜 - mooz deceives you

    注意 以下の説明およびスクリプトは KeySnail 0.9.1 以降を前提として書かれたものです。古いバージョンをお持ちの方は Add-ons for Firefox (en-US) より新しいバージョンをインストールしてから、お試し下さい。 prompt.selector 再び 先日に引き続き KeySnail と prompt.selector ネタです。興味のない方には申し訳ないです。 今日ははてなブックマーク拡張の DB を KeySnail の prompt.selector にぶち込んだら結構うれしかった、という話をする予定だったのですが、書いている途中で prompt.selector の解説記事のようになってしまいました。 自分で prompt.selector を使うコードを書いてみようかな、と言う方の参考になればと思います。 はてブ拡張との連携機能だけ知りたい、という

    prompt.selector を使おう 〜はてなブックマーク拡張と KeySnail の連携〜 - mooz deceives you
    kitokitoki
    kitokitoki 2010/02/14
    prompt.selector
  • M-: (eval-expression) において TAB で補完が効くように - リタマス

    Eval M-: として出てくるあの Eval, どんな局面でも使えてかなり便利なのだけれど、ひとつ不満なところがあった。それは "TAB キーを押しても \t が入力されるだけで、シンボルの補完をしてくれない" というもの。 以下実例。 まず M-: を入力して Eval 画面を開き、TAB を入力してみる。 すると次のようにしてタブ文字が入力されて、非常に残念な気持ちになれました、と。 ESC TAB を使う これを以前 Twitter で愚痴っていたら、親切な方が解決策を教えて下さった。なんでも C-[ TAB (ESC TAB) を入力することでシンボルの補完を行ってくれるらしい。 早速先ほどの画面で ESC TAB と入力してみる。 すると、このようにして見事補完が行われてくれた。 ESC TAB は面倒 これで自由に補完が効くようになったわけなのだけれど、どうも ESC TAB

  • bmany を使って KeySnail からブックマークを操作 - mooz deceives you

    bmany リリース KeySnail から Firefox のブックマークを操作可能とするプラグイン bmany をリリースしました。 インストールはいつものように、以下の bmany を右クリックして「このプラグインをインストール」を選択することで行えます。 bmany anything.el 気分でブックマークを操作 「お使いの KeySnail には対応していません」といったメッセージが出る方は (ほとんどの方はこうなります) 以下のページより最新版の KeySnail を DL してインストールした後、お試し下さい。 no title いまさらブックマーク KeySnail からブックマークが操作できたらなあ、という声を耳にすることが最近あり「え、できないの?」と思い調べてみたら、できないんですね。驚きです。びっくりです。 そんなこともあって、今回作成した bmany は色気など

  • 新しくなった Twitter クラアイントプラグインは操作性が格段に向上 - mooz deceives you

    新生 Yet Another Twitter Client KeySnail Twitter クライアント化プラグイン 1.4.0 をリリースしました。 インストールは以下のプラグイン名を右クリックし、「このプラグインをインストール」を選択することで行えます。 Yet Another Twitter Client KeySnail KeySnail を Twitter クライアントに 操作性が格段にアップ 今回のバージョンアップでは KeySnail 1.2.3 の新機能である「プロンプト毎のキーマップ」を利用し、自由なキーバインドを設定することが可能となりました。 ということで KeySnail 体の方も以下のページより DL し、アップデートして頂く必要があります。 no title さて、操作性が格段に上がったと書きました。はっきり言って、段違いです。 Twitter クライアント

  • dired で色々なソートタイプを切り替える elisp - mooz deceives you

    ワンキーで dired のソートタイプを切り替える みなさん dired と共に良き Emacs ライフをお送りのことかと思います。 この dired では s (dired-sort-toggle-or-edit) を押すことにより「ファイルの変更日時順」と「名前順」、二種類のソートタイプを切り替えることができるのですが、正直これだけじゃ物足りません。やっぱりファイルサイズとか、拡張子別でソートがしたくなります。 以前 最近知った dired の便利な機能 - mooz deceives you で書いたとおり、 C-u s というように前置引数をつけて dired-sort-toggle-or-edit を呼ぶことで、様々なソートタイプを選択することが可能となっています。 ということで、ファイルサイズ順にソートしたければ C-u s としてから -lS と打ち込んで Enter を押せ

    dired で色々なソートタイプを切り替える elisp - mooz deceives you
  • vimp の caret-hint.js を keysnail プラグインに移植しました - mooz deceives you

    Caret hint プラグイン vimp の caret-hint.js を keysnail プラグインに移植しました。 インストールは以下の「Caret hint」を右クリックし「このプラグインをインストール」を選択することで行えます。 Caret hint ヒントを使ってキャレット移動 これは何? このプラグインは単独だとほとんど役に立ちません。同じ keysnail プラグインの HoK と併用することにより、真価を発揮します。 例えば次のようなサイトがあったとき、矢印のようにして現在のキャレットを右のカラムへ移したい場合、どうしているでしょうか。 十字キーを使ってキャレットを右へ移動していくと、カラムの境界まで行ったところでもれなくキャレットが左端へと戻ってしまいます。 そこで、このプラグインの出番です。 まず ; を入力して HoK の拡張ヒントモードを立ち上げ、次に c を

  • KeySnail で Hit a hint が可能となるプラグイン HoK をリリース - mooz deceives you

    HoK リリース KeySnail で Hit a hint が可能となるプラグイン HoK をリリースしました。 インストールは以下のプラグイン名を右クリックし「このプラグインをインストール」を選択することで行えます。 HoK キーボードでリンクをごにょごにょ ソースコードは以下から閲覧することも可能です。寄木細工みたいなコードですが。 no title また、このプラグインは比較的新しいバージョンの KeySnail においてでないと真価が発揮されないことがあるため、古いバージョンをお持ちの方は以下から最新版を DL したうえでお試し下さい。 no title キーボードで快適ブラウジング LoL と比較して Firefox で Hit a hint というと LoL が有名ですが、この拡張機能と比較すると HoK は以下のような点で優れていると言えます。 何より高速 LoL との速度

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

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

    KeySnail 1.0 の新機能「プラグインシステム」を使う - mooz deceives you
  • prompt.selector を使おう 〜はてなブックマーク拡張と KeySnail の連携〜 - mooz deceives you