タグ

ブックマーク / tarao.hatenablog.com (12)

  • 【はてなスタッフ非公式ブログバトン】 Haxeの善し悪し - 貳佰伍拾陸夜日記

    id:hatz48さんからバトンがまわってきました. 前々から個人的に興味があったので, 社内で言語の話題が出る度に「Haxe, Haxe」と言っていたら, 「Haxeと言えばtaraoさん」みたいになってて, なぜかHaxeについて書く羽目になってしまった. Haxeなんて1ミリも書いたことないのに! この記事は http://try.haxe.org/ でちょっと遊んだ程度のにわか知識で書かれております. もともとはよさげなAltJSを紹介していくみたいな文脈のようだけど, 個人的には特殊用途以外では素のJavaScript書いてりゃいいんじゃね, と思うので, 文脈無視で単純に言語/処理系の善し悪しについて書くよ! Haxeってなに http://haxe.org/ によれば「マルチプラットフォーム オープンソース プログラミング言語」らしい. AltJSなんてケチくさいこと言ってな

    【はてなスタッフ非公式ブログバトン】 Haxeの善し悪し - 貳佰伍拾陸夜日記
    mooz
    mooz 2013/12/13
    マニアックだ
  • Emacs上のターミナルを最強に: term+.el - 貳佰伍拾陸夜日記

    第6回関西Emacs勉強会で, Emacs上で最強のターミナル(端末)環境を実現する話をしてきました. 以下がそのとき用いたスライドです. Emacs上のターミナルを最強に from Lintaro Ina このスライドだけでは, とりあえず使ってみるのではなく常用したい場合にどうしたらよいかわかりにくいと思うので, その辺りを補足しながら, きちんとしたドキュメントを書くまでの暫定の使い方を書いておこうと思います. 更新履歴 2012-11-07 端末バッファを別ウィンドウに開くコマンドの仕様変更(term-plus-mux-el@ed343fb)に追従 2012-10-24 リポジトリ構成の変更に伴い配布場所とインストール方法の説明を変更term+mux-newのセッションを訊く条件が変更されたのを反映 これは何? Emacs上の端末エミュレータです. もともとterm.elというもの

    Emacs上のターミナルを最強に: term+.el - 貳佰伍拾陸夜日記
  • Rubyで関数型プログラミング - 貳佰伍拾陸夜日記

    Rubyでの快適関数型プログラミングライフを追求するあまり, 使えるのか使えないのかよくわからないものを作ってしまったという話. Rubyに不慣れな人や関数型プログラミングに不慣れな人に対して酷なのはまだわかるとしても, C++(というかboostでの関数型プログラミング)に不慣れな人も全力で置いてきぼりにする誰得記事になってしまった...... 経緯 そもそもRubyはだいぶLispっぽくて, ブロックとイテレータを使うだけで関数型プログラミングになってしまう. たとえばこんな感じで: %w|1 2 3 4 5|.map{|x| x.to_i} %w|1 2 3 4 5|は'1'から'5'までの文字列からなる配列で, その配列のメソッドArray#map*1に対して, 受け取った引数を整数化するブロックを渡してやると, 1から5までの整数からなる配列が得られる. たとえば関数型プログラミ

    Rubyで関数型プログラミング - 貳佰伍拾陸夜日記
    mooz
    mooz 2011/08/19
    boost::lambda 的な.
  • Vimperatorのコマンドラインで自動的にIMEをオフにする - 貳佰伍拾陸夜日記

    VimperatorのコマンドラインでIMEがオンになっていると, f等でヒントを選択できなくて困ることがある. 32ビットのWindows XPを使っていたときは, ime_controller.jsを使うことでコマンドラインや挿入モードでは自動的にIMEをオフにすることができたけれど, 他の環境でうまく動作しなくて困っていた. ime_controller.jsが動かないのはFirefoxにおけるCSSのime-modeプロパティの動作環境が限られているのが原因で, Firefoxに限らずたとえばIME and DiMENSiONもうちの環境(Windows 7 64ビット)では動作が不完全(たまにIMEの状態が反映されない, IMEのオン・オフを制御できない)だったりして, IMEをアプリケーションから制御すること自体が難しいらしい*1. そんな中で, Linux上のVimperat

    Vimperatorのコマンドラインで自動的にIMEをオフにする - 貳佰伍拾陸夜日記
    mooz
    mooz 2011/05/24
    xvkbd, wscript.exe
  • Yet another icomplete - 貳佰伍拾陸夜日記

    icompleteの縮小版のようなものを作った. 動機 anything-find-fileもIdoも肌に合わないし, Iciclesなんてもう初期状態のインタフェースが見辛すぎてカスタマイズする気にもなれなかったので, http://d.hatena.ne.jp/mooz/20101003/p1は非常に素晴らしかった. さらにインクリメンタルに補完できれば, auto-fu.zshのようにできそう. ただ, icomplete-modeをそのまま有効にしたのではいろいろ競合してうまくいかなかった. そもそも別バッファに候補一覧を出したいのに, icompleteはミニバッファにすべてを詰め込もうとする. 候補一覧の表示方法は従来通りで, 表示のトリガだけ入力に連動して欲しい. そんなわけで, 新たにicompleteもどきを実装した. 機能 入力に応じて自動的に補完候補バッファを表示 曖

    Yet another icomplete - 貳佰伍拾陸夜日記
    mooz
    mooz 2010/10/11
    auto-fu.zsh ライクな.
  • スマートポインタのつくりかた - 貳佰伍拾陸夜日記

    2年ちょっと前にC++で書いた非侵入的参照カウント方式のスマートポインタ実装を発掘した. スマートポインタの実装にはC++の様々なマニアックな実装手法が隠れていて面白い. せっかくなので, 解説つきで晒すことにした. このスマートポインタはboost::shared_ptr (以下単にshared_ptr)相当のもので, 当時C++のコードを書かないといけない状況下で「boost使っちゃらめぇぇぇ!」とか言われたために, せめてshared_ptrだけでも抜き出して使おうとしたものの, 依存しているファイルの数が思ったより多くて面倒になったので, 1ファイルで完結する簡易実装を自分で書くことにした, という経緯で生まれたもの. 似たような状況では有用かも知れないし, shared_ptrのソースコードを読む助けにはなるかも知れないけれど, 基的にはboostが使えるなら素直にshared

    スマートポインタのつくりかた - 貳佰伍拾陸夜日記
    mooz
    mooz 2010/07/25
    boost::shared_ptr, smart_ptr
  • auto-fu.zshを使う+キャンセルできるようにする - 貳佰伍拾陸夜日記

    はてなブログを使ってみた. これはすごい! まず, デモで補完候補がグループ別にメニュー表示されているのがカッコよかったので真似してみた. setopt auto_list auto_param_slash list_packed rec_exact unsetopt list_beep zstyle ':completion:*' menu select zstyle ':completion:*' format '%F{white}%d%f' zstyle ':completion:*' group-name '' zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' zstyle ':completion:*' keep-prefix zstyle ':completion:*' completer _oldlist _complet

    auto-fu.zshを使う+キャンセルできるようにする - 貳佰伍拾陸夜日記
    mooz
    mooz 2010/06/01
    いただきました
  • zshの履歴検索にanything.elを使う(ターミナル版) - 貳佰伍拾陸夜日記

    anything.elを使ってzshの履歴検索をする - http://rubikitch.com/に移転しましたを参考に, ポップアップせずにターミナル内で動くようにしてみた. デモ 使い方 anything.el一式をインストールする anything.el anything-config.el anything-match-plugin.el anything-complete.el shell-history.elをインストールする shell-history.el (setq shell-history-file "~/.zsh_history") しないとダメかも 下記のanything-zsh-history.elを.emacsで読み込むようにする 下記のanything-history.zshrcを.zshrcで読み込むようにする emacsやzshを終了 zshを実行 e

    zshの履歴検索にanything.elを使う(ターミナル版) - 貳佰伍拾陸夜日記
    mooz
    mooz 2010/04/29
    良いなあこれ.
  • 複数のメジャーモードを文脈に応じて切り替え - 貳佰伍拾陸夜日記

    multi-mode.elを使うと, 一つのバッファ内で文脈に応じてメジャーモードを切り替えることができる. けれど, カーソル位置を受け取って, 切り替えるべきメジャーモードとその有効範囲を返す関数を定義しないといけなくて, 使い方が難しい. そこで, 開始・終了の正規表現と, その範囲内で有効になるメジャーモードを指定するとmulti-modeに渡すべき関数を作って登録してくれる関数を書いた. 例 まず, (multi-mode-init) すると, バッファ内でmulti-modeを使う準備ができる. さらに, (multi-mode-install-chunk-finder "^>|javascript|$" "^||<$" 'javascript-mode) とすると, ">|javascript|"だけが書かれた行と"||<"だけが書かれた行に挟まれたテキストにカーソルが移動し

    複数のメジャーモードを文脈に応じて切り替え - 貳佰伍拾陸夜日記
    mooz
    mooz 2010/04/23
    multi-mode.el
  • JavaScriptで読む「ラムダ計算基礎文法最速マスター」 - 貳佰伍拾陸夜日記

    以前書いた「ラムダ計算基礎文法最速マスター」(以下「最速マスター」)は, 予想以上に多くの人に興味を持ってもらえたようですが, 同時に難しくてわからなかったという人も多かったようです. 反響から察するに, 構文を見慣れていない(と錯覚してしまう)ことが理解の妨げになっていたように思います. ラムダ計算の構文は, 実際には全く特殊なものではありません. このことがよくわかるように, 「最速マスター」のラムダ計算の簡約の例をすべてJavaScriptの構文で書いてみました. ......という内容になるはずでしたが, 気がついたらラムダ計算のインタプリタをJavaScriptで実装していました! 実際に動かせるものは下記URLにあります. https://tarao.github.io/LambdaJS/#js 動作確認と既知の問題 Firefox 3.6 Google Chrome 4.1

    JavaScriptで読む「ラムダ計算基礎文法最速マスター」 - 貳佰伍拾陸夜日記
    mooz
    mooz 2010/03/28
    インタプリタを実装……! インタフェースも素晴らしい.
  • Google日本語入力がやっているデータ収集方法まとめ - 貳佰伍拾陸夜日記

    Web上の膨大な情報を使ってかな漢字変換を行なうGoogle日本語入力(のベータ版)がリリースされた. Web上の膨大な情報を機械的に取り扱うのはGoogleのお家芸だけれど, それだけでは変換された後の文字列しか用意できない. どうやって変換前の文字列を集めるのか, それをどうやって変換後の文字列と結びつけるのかという点については疑問が残る. この点に関して, 以下のような指摘がある. どこから集めたのか考えてみたんですが、たぶん(たぶん、ですよ。あくまで私の憶測・邪推ね)、Google サジェストを提供する中で、ユーザーがかな漢字変換をしている途中の読みデータと、かな漢字変換を確定した後の漢字データを集めてきたのではないかと思います。 ぶっこ抜き? [Google日本語入力の功罪] Googleサジェストが変換途中の文字列からも候補を提示できるようにするために, 毎秒100回入力エリア

    Google日本語入力がやっているデータ収集方法まとめ - 貳佰伍拾陸夜日記
    mooz
    mooz 2010/01/24
    ユーザが IME ON の状態で入力している文字列を随時取得する。タイマー回す。
  • imageLoaderをVimperatorから使う+α - 貳佰伍拾陸夜日記

    d:id:tomo_snowbug:20090619:1245430454 のimageLoaderというGreasemonkeyスクリプトがなかなか素晴しいので, Vimperatorから使えるようにするついでに機能拡張してみた. 拡張された機能 表示/選択している画像をキーやボタン一つでローカルファイルに保存する 画像直リンクでない場合(fotolife等)もリンク先に大きな画像があれば取ってくる 画像直リンクではないがリンクURIから画像URIを推測できる場合(Google画像検索等)にURIフィルタでリンクを置き換える imageLoaderの先読みが進み次第スライドショーを自動的に開始 スライドショーに移るときにVimperatorのキー操作を無効化(自動的にC-zする) 設定パネルのスペルミスを修正 保存先は設定パネルで設定/追加可能. URIフィルタはprefs.jsにGre

    imageLoaderをVimperatorから使う+α - 貳佰伍拾陸夜日記
    mooz
    mooz 2010/01/24
    ImageLoader を強化する Vimperator プラグイン。特権をいいことにローカルファイルへ保存しまくる。
  • 1