タグ

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

  • Caskはもう古い、これからはEl-Get - いまどきのEmacsパッケージ管理 - 貳佰伍拾陸夜日記

    秘伝のタレとなったEmacsの設定をgitで管理するなどして, 複数の環境で同じ設定を使うようにするのはかなり一般的になってきました. ただ, 使っている非標準パッケージも含めてきちんと管理しようと思うとけっこう大変です. とくに, 以下のような点はぜひとも実現したいところですが, (これまでは)なかなか難しい部分もありました. 使っているパッケージのインストールを自動化したい いろいろな配布元(GitHub, Emacs Wiki, 個人Webサイト, etc.)からインストールしたい きちんと動くことがわかっているパッケージバージョンに固定したい 新しいパッケージを簡単に試したい パッケージと設定の対応をわかりやすくしたい この目的のために, 最近はCaskを使うのが流行っているようですが, 上に挙げたポイントをすべて解決しているわけではありません. 筆者のまわりでも, Caskを使っ

    Caskはもう古い、これからはEl-Get - いまどきのEmacsパッケージ管理 - 貳佰伍拾陸夜日記
    yogasa
    yogasa 2015/02/22
  • Evil: EmacsをVimのごとく使う - 導入編 - 貳佰伍拾陸夜日記

    You underestimate the power of the dark side. Star Wars: Episode VI - Return of the Jedi EmacsはLispで自由自在に拡張でき, エディタの枠におさまらず, コンピュータ上でのあらゆる創造的活動のための環境として発達してきました. しかし, 少なくともファイルを閲覧し編集するという操作に関しては, vi/Vimが非常に優れたインタフェースであることもまた事実です. 両者はそれぞれが根強いファンを抱え, 長らく宗教戦争を繰り返してきました. この対立が止揚された結果として生まれたのがEvilです. Emacsのなんでもありな環境の上でVimをエミュレートすることで, EmacsでありながらVimの操作性を実現したのです. 稿では, Evilとは何かということに始まり, 具体的な導入方法について解説し

    Evil: EmacsをVimのごとく使う - 導入編 - 貳佰伍拾陸夜日記
  • ノートPCでLinuxの仮想化 - 貳佰伍拾陸夜日記

    いままではノートPCではWindowsを使ってきた. なんだかんだで使い慣れて*1いたり, あるいはハードウェア機能をフルに活かすためには他に選択肢が無かったりした. でも最近はペンタブ搭載機でもLinuxがふつうに動いたりするし, Windowsを使っていてもどうせ仮想OSとしてLinuxを動かしていて, Windows上のLinuxをべんりに使うためのバッドノウハウが溜まってしまいつつあったので, 思い切ってWindowsを使うのをやめることにした*2. ノートPCでカジュアルにLinuxを使うなら, できるだけ新しいソフトウェアが動いてほしい. Debianならunstableを入れたい. でもなんかアップデートして急に動かなくなったりしたら困る. そこで仮想化ですよ! ただ, ノートPCの仮想化にはいろいろ問題点もあるので, 整理して解決策をまとめておく. 仮想OSの運用方法 ノー

    ノートPCでLinuxの仮想化 - 貳佰伍拾陸夜日記
    yogasa
    yogasa 2013/01/01
  • 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で関数型プログラミング - 貳佰伍拾陸夜日記
    yogasa
    yogasa 2011/08/20
  • 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をオフにする - 貳佰伍拾陸夜日記
  • JavaScriptで読む「ラムダ計算基礎文法最速マスター」 - 貳佰伍拾陸夜日記

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

    JavaScriptで読む「ラムダ計算基礎文法最速マスター」 - 貳佰伍拾陸夜日記
  • ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記

    ラムダ計算は, 多くのプログラミング言語, とくに関数型言語の原形になっています. ラムダ計算について理解しておくことは, 多くのプログラミング言語の習得に役立つでしょう. ラムダ計算はチューリング完全で, 計算能力としてはふつうのプログラミング言語と同じです. ラムダ計算で計算を書く訓練をしておくことは, 任意の計算を関数のみを使って(他の制御構文を用いずに)書くときに役立ちます. ふつうに書いたら煩雑な処理を, 関数型言語のやり方で書くとすっきりすることが多々あり, コードを自由自在に書くためには必須の考え方と言えるでしょう. 項 ラムダ計算の式を項(term)と言います. 項は変数, 抽象, 適用のいずれかです. 変数 変数(variable)はふつう1文字で書きます. 変数には関数内の束縛変数(bound variable)か自由変数(free variable)かという区別があり

    ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記
  • 1