blog.handlena.me

コード書いたりゲームしたり

  • align設定用例集

    http://atnd.org/events/21982#comments:title=Emacs Advent Calender jp: 2011 の12日目です。 11日目は id:rubikitch さんの 集中力5倍!小よく大を制するミニマリストEmacs - (rubikitch loves (Emacs Ruby CUI Books)) でした。 昨年は org-modeでTODO管理 - handlename::blog というエントリで参加しました。 今年はalignのルール設定について、例を挙げながら説明してみます。 align emacsにはalignという機能があります。この機能は拡張elispを追加することなく、デフォルトの状態で使用することができます。 たとえばこんなコードを、 <pre class="code lang-c" data-lang="c">int count = 0; float degree = 0.2; リージョン選択して、 <pre class="code">M-x align</pre> とすると、こんな感じに整形してくれます。 <pre class="code lang-c" data-lang="c">int count = 0; float degree = 0.2; alignのルール align-rules-listにルールを追加することで、整形する方法を自由に設定することができます。 <pre class="code lang-lisp" data-lang="lisp">(add-to-list &#39;align-rules-list &#39;(hoge-assignment ; ルールの名前 ; オプションをここに書く ))</pre> オプションの詳しい説明については、

    Read more…
  • はじまり

    招待もらって開設しました。 はてなダイアリー時代はこちら。

  • コールバックのネストが面倒なので&quot;next&quot;っていうのを考えてみた

    非同期な処理を、順番に呼び出したいときに。 使うとき↓

  • http.requestを使うときはチャンクが送られてくる場合を忘れずに

    軽くはまったので。 httpでGETしたりPOSTしたししたい場合は、http.requestのコールバックに渡されるhttp.ClientResponseにdataイベントをセットする。 ただし、dataのコールバックで受け取れるのはドキュメントにもあるとおり"chunk"なので、endイベントも拾って、dataで受け取ったものをすべてつなぎ合わせてから利用するようにしないといけない。 http - Node.js Manual & Documentation "chunk"って書いてあるのを完全にスルーしてた・・・。

  • homebrew の Formula を追加する

    MacBook Air にしたときに macports から homebrew に乗り換えた、が、 macports に比べて homebrew ははじめから入っているパッケージが少ない。 入っていないものは自力でコンパイルすればいいのだけれど、 homebrew で入れたものと自力で入れたものが混ざってなんだかいやだ・・・。 そんなときは自分で Formula (パッケージ(のようなもの)を定義するRubyファイル) を書けばいいのです。 <blockquote> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/macports">macports</a> でもパッケージを追加したりできたんだろか…。<br /> 調べずに移行してしまったのでその辺はわからず。 </blockquote> 参考ページ。本家。 https://github.com/mxcl/homebrew/wiki/Formula-Cookbook 以下は apache の Formula を書く手順。 内容は参考ページに書いてあることほぼそのまんま。 ソースのURLを指定してcreate $ brew create http://ftp.jaist.ac.jp/pub/apache//httpd/httpd-2.2.19.tar.gz実行すると Formula のひな形が $EDITOR で開かれる。 require 'formula' class Httpd < Formula url 'http://ftp.jaist.ac.jp/pub/apache//httpd/httpd-2.2.19.tar.gz' homepage '' md5 'e9f5453e1e4d7aeb0e7ec7184c6784b5' # depends_on ‘cmake’ def install system "./configure", "–disable-debug", "–disable-dependency-tracking", "–prefix=#{prefix}" # system "cmake .

    Read more…
  • Macでgdbにプロセスの制御権を与える

    前回の記事で出ていたエラーメッセージについて、解決したので。 darwinでgdbを使って デバッグする = プロセスを制御する ためには権限が必要なんだそうです。 Building GDB for Darwin - GDB Wiki なので、gdbを実行するときに $ sudo gdb hogehogeとすればデバッグはできるのですが、わざわざ管理者権限でデバッグするのは嫌><!ということで、証明書をつくってプロセスの制御を許可する、というのがスマートな方法らしいです(ということがまんま上記のページに書いてあります:p) せっかくなので証明書のつくりかたと登録の方法をSS入りで。 証明書の作成 キーチェーンアクセスでつくります。 キーチェーンを起動して、 キーチェーンアクセス > 証明書アシスタント > 証明書を作成...を選択。 名前: gdb-cert (わかればなんでもいい) 固有名のタイプ: 自己署名ルート 証明書のタイプ: コード署名 デフォルトを無効化: チェックを入れる として「次へ」。 「証明書の場所を指定」の画面になるまで「次へ」でOK。 「証明書の場所を指定」の画面になったら キーチェーン: システム として「作成」。 証明書の設定 キーチェーンから先ほどの gdb-certの証明書 を探し出して、プロパティから「情報を見る」を選択。 「信頼」の項目について、 コード署名: 常に信頼 としてウィンドウを閉じる。 これで証明書の準備はOK。 証明書の登録 作成した証明書をgdbの実行時に使うように設定。 $ codesign -s gdb-cert `which gdb`以上で gdb で sudo せずにデバッグできるようになります。

    Read more…
  • GDB7.3のコンパイル

    emacsからgdbを呼び出すとき、Xcodeを入れたときに一緒にはいるもの(v6.3)だと This version of GDB doesn't support non-stop mode. Turning it off.と言われてうまくいかなかったので、最新の7.3をソースからコンパイルして使ってみた。 http://ftp.gnu.org/gnu/gdb/gdb-7.3.tar.gz からソースをダウンロード。 $ wget http://ftp.gnu.org/gnu/gdb/gdb-7.3.tar.gz $ tar xzfv gdb-7.3.tar.gz $ cd gdb-7.3 $ ./configure $ makeここでこんなエラー。 (...略) In file included from /usr/local/Cellar/python/2.7.2/include/python2.7/Python.h:126, from ./python/python-internal.h:47, from ./python/python.c:48: /usr/local/Cellar/python/2.7.2/include/python2.7/modsupport.h:27: warning: ‘PyArg_ParseTuple’ is an unrecognized format function type In file included from ./python/python.c:51: ../bfd/version.h:4:1: warning: "REPORT_BUGS_TO" redefined In file included from ./defs.h:26, from ./python/python.c:20: ./config.h:790:1: warning: this is the location of the previous definition .

    Read more…
  • MacBookAirを買ってからやったこと

    新しいMacBookAirを買ってから1週間ほど経ったので、その間やったことをまとめてみます。 スペック 11インチ Core i7 1.8GHz メモリ4GB SSD256GB ベンチマーク とりあえずベンチマーク。 GeekBenchを使用。 MacBook Air4,1 MacBook Pro (13-inch Mid 2009) Score 5822 3554 Integer 4330 2915 Floating Point 8039 5241 Memory 5201 2589 Stream 4536 1823 速い。

    Read more…
  • Test::mysqldを永続化しつつメモリ上で動かす

    Test::mysqld を別ウィンドウで立ち上げたら開発時の prove が快適過ぎる件 - Craftworks Tech Blog - Branch OSX で tmpfs 的なことをする方法 - unknownplace.org OSX で tmpfs 的なことを試してみる - すぎゃーんメモ を参考に、Test::mysqldを使い回しつつメモリ上のディスクで読み書きするようにしてみた。 メモリ上に仮想ディスクをつくってマウント man 8 hdid に書いてあるものをほぼそのまま利用。 hdimount #!/bin/sh NUMSECTORS=128000 mydev=hdid -nomount ram://</span><span class="synPreProc">$NUMSECTORS</span><span class="synSpecial"> newfs_hfs $mydev mkdir /tmp/mnt mount -t hfs $mydev /tmp/mnt ~/bin に置いて $ hdimountでマウントできるようにしておく。 Test::mysqldの起動 これも参考記事のものをそのまま利用。 テスト本体の方ではrunnerでつくったTest::mysqldインスタンスを使うようにしておく(上記の参考記事参照)。 mysqld_runner.pl #!/usr/bin/env perl use strict; use warnings; use FindBin; use lib "$FindBin::Bin/../lib"; use File::Spec; use JSON; use Koshien::Test; my $tempfile = File::Spec->catfile(File::Spec->tmpdir, ‘test_mysqld.

    Read more…
  • coffee-modeで関数名をハイライト

    emacs の coffee-mode のシンタックスハイライトがなんだか寂しかったので、関数名(とその後ろのアロー)をハイライトするようにしてみた。 404 · GitHub むりくりな感じはするけどやりたいことはできたのでよしとする。