タグ

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

  • xdotool を使い特定ウィンドウの表示をワンキーでトグル - mooz deceives you

    EijiroX 最近, Google Chrome を良く使うようになりました. と言っても, ブラウジング用途にではなく, 専ら EijiroX による辞書引きにですが. EijiroX は id:edvakf さんの作成されたGoogle Chrome 用の拡張機能で, かの「英辞郎」をサクサクっと快適に検索・閲覧するためのツールとなっています. Google Chrome がクロスプラットフォーム対応であるために, Windows, Mac, Linux などで動作し, 日頃からこの三つを代わる代わるに使用している身としては大助り. カナダに足を向けて寝ることは出来ないなと枕の位置を調節する日々です. とまあ, 今日は EijiroX の紹介がメインでは無いので, この辺りにしておきます. 早速, 題に入りますと, どうせならワンキーでこの EijiroX の表示をトグルできないか

    xdotool を使い特定ウィンドウの表示をワンキーでトグル - mooz deceives you
  • gitk でアンチエイリアスの効いたフォントを - mooz deceives you

    gitk という便利なツールを先日知った。 gitGUI でちょこちょこしてしまえるツールで、プロジェクトの構造などを把握するといった用途に使えそう。 で、この gitk 、ウィジェットツールキットとして Tk を使っているので GTK とか Qt に慣れた身からすると幾分古くさく見えてしまう。 ウィジェットのデザインはまあ良いとして、フォントにアンチエイリアシングが効いていないのはどうにかしたかった。 そこで調べてみると、なんでも Tk はバージョン 8.5 あたりから Xft がサポートされたようなので、 gitk にこいつを使わせてやることにした。 $ sudo apt-get install tk8.5 $ sudo vim /usr/bin/gitk として、三行目の /usr/bin/wish を /usr/bin/wish8.5 に変更。 gitk を立ち上げなおしてみ

    gitk でアンチエイリアスの効いたフォントを - mooz deceives you
  • 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:

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

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

    voidy21
    voidy21 2010/07/27
    すげー
  • c-eldoc.el で C 言語プログラミング革命 - mooz deceives you

    emacs は人生 先日, また Life Changing なものに出会ってしまいました. 最近, 毎週のようにこの言葉を使っていて僕はどれだけ人生を変えれば気が済むのかという話なのですが, 出会ってしまったのです. c-eldoc.el に. eldoc.el 皆さん, eldoc.el をご存知でしょうか. Emacs Lisp を少しでも書かれるという方なら絶対に使っておきたいパッケージの一つが, この eldoc.el です. カーソル付近の関数に対する引数のリストをエコーエリアへ表示してくれたり, カーソルの位置から対応する引数を割り出しハイライトしてくれたり, もうこれなしで elisp を書く気などおきません. さらには eldoc-extension というパッケージを入れることにより関数や変数のドキュメントを表示してくれる機能まで追加され, もう至れり尽くせりです. 詳

    c-eldoc.el で C 言語プログラミング革命 - 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
    voidy21
    voidy21 2010/04/19
  • mozIJSSubScriptLoader で読み込まれたスクリプト (KeySnail, Vimperator プラグイン等) を Venkman でデバッグ - リタマス

    Venkman という便利なデバッガがある. 詳細については no title を参照していただくとして, 早速題に便器. KeySnail や Vimperator のプラグインは, mozIJSSubScriptLoader の loadSubScript というメソッドを使ってロードされている. このメソッドを用いて file:///hoge/huga.js といったローカルファイルをロードすると, その URI が 読み込み元スクリプト -> file:///hoge/huga.js に書き換えられてしまう. Venkman はこの "xxx -> yyy" 形式の URI に対応していないため, loadSubScript を使ってロードしたスクリプトをデバッグしようとすると, もれなくエラーを吐く. ファイルが読み込めないのではデバッグが出来ないに等しいので, これはかなり面

    mozIJSSubScriptLoader で読み込まれたスクリプト (KeySnail, Vimperator プラグイン等) を Venkman でデバッグ - リタマス
  • Chrome ライクにハイライトするグリモンを Firefox 3.6 に対応させた - mooz deceives you

    no title 先ほど Firefox を 3.6RC にあげたところ フォーカスが当たっている要素を Chrome ライクにハイライト - mooz deceives you がうまく働かなくなってしまった。 そこで少し原因を調査してみると、どうも -moz-outline などのベンダ独自プロパティが廃止された様子。代わりに outline を使えとのことだった。 Starting with Gecko 1.8 (Firefox 1.5), the standard CSS 2.1 outline property is supported as well. Use of outline is preferred to -moz-outline. https://developer.mozilla.org/en/CSS/-moz-outline そもそも outline プロパティが

  • "Javascript quiz " 解答と解説 - mooz deceives you

    前書き Javascript quiz ? Perfection Kills が Twitter で話題となっていたので, 挑戦してみました. 結果は 5 問のミス. 完敗でした. 色々分かっていないところがあるなと感じたので, 勉強がてらに解答と解説を書いてみました. 間違いやまずい表現などあれば指摘していただけると助かります. どれも良く考えられた問題で勉強になるので, まだやっていない方はぜひ挑戦してみてからこのエントリを読んでいただけたらと思います. 解説 1. (function(){ return typeof arguments; })(); arguments は配列. 一見配列のように見えるが, 実際は 0, 1, 2 といったプロパティと length を持ったオブジェクト. >js (function () { alert(arguments instanceof A

    voidy21
    voidy21 2010/02/10
  • if (!a) a = hoge と a = a || hoge の速度差 - mooz deceives you

    気になったこと 朝から自分の書いたコードを眺めていたら、次のようなコードを発見した。もちろん hoge とか huga なんて関数名を実際に使っているわけではない。 function hoge(collection, options) { options = options || {}; // 略 let flags = options.flags; // 略 } hoge([1, 2, 3]) のようにして options が指定されずに呼ばれたとき、 options が undefined になって options.flags で例外が発生してしまうので、それを防ぐために {} を代入している。 ここは特に引っかかることもないのでもう少しそのコードを眺めていたら、今度は次のようなコードに出くわした。 function huga(collection, options) { if (!o

    voidy21
    voidy21 2010/02/02
  • JavaScript + Canvas で動くカオスアトラクタ生成器作ってみた - mooz deceives you

    カオスアトラクタ by edvakf in hatena を見ていて Canvas でピクセル操作が出来るらしいことを知り、早速カオスアトラクタ生成器を作ってみた。 アクセスは C.H.A.O.T.I.C C.A.N.V.A.S から。 動作は Firefox 3.5 と Google Chrome で確認。処理速度は Chrome の方が 5 倍ほど速いので、一応 Chrome 推奨。 Safari や Opera では未確認。 で、操作説明。 Draw ボタンを押せばカオスアトラクタが描画される。 Settings 右のプルダウンメニューにいくつかプリセットの設定を用意しておいたので、はじめはそちらを試されるのが良いと思う。 Coefficients の値をちょびっとづつ変えていくと、生成される画像が綺麗に変化していってくれる。一期一会な感じが小憎い。画像は Firefox なら右クリ

    JavaScript + Canvas で動くカオスアトラクタ生成器作ってみた - mooz deceives you
  • Firefox に拡張クリップボード機能を提供するアドオン Clipple - mooz deceives you

    Clipple リリース Firefox に拡張クリップボード機能を提供するアドオン Clipple をリリースしました。 Add-ons for Firefox (ja) インストールは上記のページより行うことが可能となっています。 これは何? 通常、一度にクリップボードへコピーしておけるテキストはひとつだけです。しかし、これに不便さを感じている方は少なく無いのではないでしょうか。例えば、私は次のようなことをよくやらかします。 貼り付けようと思ってコピーしておいたテキストを、誤って別のテキストをコピーすることで上書きしてしまった。もう復元は出来ない。どうしよう。 Clipple はそんな方々のために「一度に複数のテキストを保持することが可能な拡張クリップボードシステム」を Firefox へ提供します。 使い方はとても簡単。右クリックから「コピー」を選ぶのもよし、キーボードショートカット

    Firefox に拡張クリップボード機能を提供するアドオン Clipple - mooz deceives you
  • コンテンツ / プロンプトへフォーカス - mooz deceives you

    Yet Another Twitter Client KeySnail など prompt.read() で文字入力をしているときに、フォーカスがコンテンツの方へ行ってしまうことがある。 そんなときマウスまで手を伸ばしてテキストボックスをクリックするのは完璧に負けなので、次のようなキーバインドを定義しておく。 key.setGlobalKey(['C-c', 'b'], function (ev, arg) { let elem = document.commandDispatcher.focusedElement; if (elem) elem.blur(); gBrowser.focus(); _content.focus(); }, 'コンテンツへフォーカス'); key.setGlobalKey(['C-c', 'p'], function (ev, arg) { var p =

    コンテンツ / プロンプトへフォーカス - 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 を

  • 新しくなった 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 クライアント

  • UTF-8 の文字列を一文字ずつ区切る - mooz deceives you

    語文字列を区切る UTF-8 エンコーディングされた文字列を一文字ずつ表示したかった。例えば次のような入力があったら、 今日は晴天 以下のように一文字ずつ区切って表示したい。 今 日 は 晴 天 外部ライブラリを使用しないで できれば、外部のライブラリは使用したくなかった。依存するファイルは、少ないにこしたことがない。 そこで検索してみたところ、次のようなページを発見。 CでUTF-8を扱う 民芸的プログラミング 〜ソフトウェア開発日記〜/ウェブリブログ この中で、次のような方法が紹介されていた。なんでも GLib からのものらしい。 /* Array of skip-bytes-per-initial character. */ GLIB_VAR const gchar * const g_utf8_skip; #define g_utf8_next_char(p) (char *)

  • vim の矩形選択で文字が無くても右へ進めるように - mooz deceives you

    このオプションはすごく便利。もっと早くに知りたかった。 set virtualedit=block 例えば次のように真ん中だけが突き出てしまっている文章を矩形選択したいとき、 左上で C-v としてから右下へカーソルを動かしても、下の画像のようになってしまう。 ここで先ほどのオプションを設定すると、 文字が無い行でも突き抜けて進める。見事選択できた。 Emacs ではどうするか 実際のところ vim なんてめったに触らない。 Emacs の C-x r t とかはそれこそ鬼のように使う。だから Emacs での実現方法を知りたい。 Emacs の場合は 範囲選択 C-x r ほにゃらら といった具合でまず範囲を選択してから矩形コマンドを打つので、 vim のようにはいかない。 C-f に 行末ならスペース それ以外なら forward-char といったコマンドを割り当てておけばいけるよう

    vim の矩形選択で文字が無くても右へ進めるように - mooz deceives you
    voidy21
    voidy21 2009/09/14
  • Google Reader を見やすく - mooz deceives you

    デフォルトの状態で英文を読むのは拷問に近い。 ビフォーアフター Before After コード 右下の view raw 辺りをクリックするとインストールできるのではないかな。

    Google Reader を見やすく - mooz deceives you
  • 1