最新 / RSS

MuraTaka 速記メモ

2009-06 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

最近 7 日分 / 今月の一覧

2009-06-03 Wed

Carbon Emacs org-mode をアップデート [Emacs]

現在、
- Org-mode version 5.23a
が入っている。
最新の org-mode にアップデートする。
単純に、

$ git clone git://repo.or.cz/org-mode.git
でソースを取ってきて、contrib/lisp 配下の lisp ファイルをコピーするだけでいいかな?と思ったが、機能しないものもあるようなので、ちゃんとコンパイルする。

Makefile を Carbon Emacs 用に若干修正。

EMACS=emacs

EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs
に。
/usr/local 配下に site-lisp を入れても Carbon Emacs も大丈夫なようなので、とりあえず上記でまずはやってみる。
- MacWiki - CarbonEmacsPackage/追加ライブラリのインストール手順

$ make
$ sudo make install
で、
- /usr/local/share/emacs/site-lisp
配下に全ての lisp が展開された。

設定は、以下を追加。
make しないと、org-install はない。
(require 'org-install)
(setq org-startup-truncated nil)
(setq org-return-follows-link t)
(org-remember-insinuate)
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(define-key global-map "\C-ca" 'org-agenda)
(define-key global-map "\C-cl" 'org-store-link) ;; (setq org-return-follows-link t) を定義したの消してもいいが。。
(setq org-log-done t)

あとは、
- org-mode + remember-mode でEmacs内で瞬時にメモをする→コードリーディングに生かす・メモ検索する - (rubikitch loves (Emacs Ruby CUI))
の情報をありがたく使わせて頂いた。

おっ、何気に Speedbar に対応している。
Speedbar 2階層目までの一覧が確認できる。通常通り jump もできる。

■ 参考

- org-mode + remember-mode でEmacs内で瞬時にメモをする→コードリーディングに生かす・メモ検索する - (rubikitch loves (Emacs Ruby CUI))
- WeBlowg Side:org-mode
  キーバインドをよくまとめてくださっている。
- freemind とOrg Mode

2009-05-31 Sun

Ruby の super [Ruby]

- スーパークラスに含まれる現在のメソッドと同じ名前のメソッドを呼び出す
  メソッド単位
- 通常 ruby では、引数の確固()を省略しても問題無いが、super における確固の省略は意味があるので注意
  - 引数無しでの呼び出しには、明示的に空確固が必要()
  - 確固を省略した場合には、現在呼び出しているメソッドに対する引数と同じ引数で super を呼び出したことと同義になる。
- initialize メソッドでは、明示的に super を呼び出さないとスーパークラスのコンストラクタを呼び出したことにはならない。

手っ取り早くミュータブルなクラスを生成する Struct [Ruby]

他のクラスを生成することを目的とした Struct を使うと、手っ取り早くミュータブルなクラスを生成可能。

>> A = Struct.new(:name, :description)
=> A
>> a = A.new('hello', 'greeting phrase')
=> #<struct A name="hello", description="greeting phrase">
>> a.name
=> "hello"
>> a.description
=> "greeting phrase"
>> a[:name] = 'tool'
=> "tool"
>> a[:description] = 'something to use to do something'
=> "something to use to do something"
>> a
=> #<struct A name="tool", description="something to use to do something">
>> Hello = Struct.new('Hello', :name, :description) # 作成するクラスに名前も付けられる
=> Struct::Hello
>> hello = Hello.new
=> #<struct Struct::Hello name=nil, description=nil>
>> hello.name = 'hello'
=> "hello"
>> hello.description = 'greeting phrase'
=> "greeting phrase"
>> hello
=> #<struct Struct::Hello name="hello", description="greeting phrase">

2009-05-26 Tue

CentOS ldconfig - ld.so.conf [Linux]

共有ライブラリの動的リンカによる実行時の結合関係を設定するコマンド ldconfig。
/usr/local/lib は、CentOS 4.5 ではデフォルトで通っていない。
configure 時、コンパイル時のテストなどで、存在するはずのリイブラリが認識されない場合などは、

# ldconfig -p
などで確認してみる。

- 共有ライブラリをシステムに認識させるには
- Linuxコマンド ldconfig 〜共有ライブラリを認識させる〜
- @Linux - Linux入門でお勉強 -: ldconfigコマンド

Apache と Tomcat の連携 [Java][Apache]

mod_jk による ajp プロトコルによる連携になるのかな?と過去の記憶から判断していまいそうだが、現状いくつかあるようだ。
Apache のバージョンによっても選択肢が変わってくるが、現状だと以下がデファクトになるのだろうか?

- Apache 2.0 系
  mod_jk による連携
- Apache 2.2 系
  mod_proxy と mod_proxy_ajp を使った連携

初期設定のことだけを考えれば、mod_proxy_ajp を使用した方法が楽そうだ。

2009-05-25 Mon

Ruby によるデザインパターン [Ruby][Books]

より現実的に GoF のデザインパターンを説明してくれる。
GoF では 23 のパターンを定義していたが、本書で扱うのはそのうち 14 のパターン。
パターンを絞ったことにより、何より読み易くなっている。。
以下の特徴がある。
- 個々のパターンと、それ以外のパターンの(特質の)関連をうまく説明している
- Ruby でどう適用するか?Ruby の持つ言語特性に合わせた適用例
- 各パターンの Ruby (include Rails)における実例
- GoF のパターン以外に Ruby のパターンを3つ追加

2つ目の Ruby でどう適用するか?については、これまでのデザインパターン本は、静的型付け言語をその説明の題材として使っているものが多かった。
動的片付け言語の Ruby を使った場合、また、その Ruby の柔軟的な側面を利用した場合、デザインパターンをどのように解釈できるのか?についての説明があるのがうれしい。

デザインパターンのアイディアは、

・変わるものを変わらないものから分離する
・インターフェイスに対してプログラムし、実装に対しては行なわない
・継承より集約
・委譲、委譲、委譲

・必要になるまで作るな

デザインパターンの宝庫である Rails、Rails で作成されている OSS のソースが読み易くなるように思う。

Rubyによるデザイン・パターン
Russ Olsen ラス・オルセン
ピアソンエデュケーション
売り上げランキング: 14726
おすすめ度の平均: 4.0
4 解かりやすい

2009-05-24 Sun

Module#const_get [Ruby]

ある定数の名前を含む文字列、もしくは、シンボルを引数にとって、その定数を返す。
クラス名は定数であるので、クラス名を渡せば、クラスオブジェクトを返す。

Emacs を TextMate チックに textmate.el, Sunburst theme [Emacs]

■ textmate minor-mode
- defunkt's textmate.el at master - GitHub

インストールと設定。

$ cd ~/.emacs.d
$ git clone git://github.com/defunkt/textmate.el.git

(add-to-list 'load-path "~/.emacs.d/textmate.el")
(require 'textmate)
(textmate-mode)


■ TextMate の theme を Emacs で
- Sunburst Theme
  - My Emacs Color Theme Peng.u.i.n
    color-them-sunburst
- Twilight Theme
  crafterm's twilight-emacs at master - GitHub
- Blackboard Theme
  - Emacs color theme: Blackboard - blog.jdhuntington.com
  color-theme-blackboard

sunburst theme でしばらくいこうかな。。

40 Tutorials for Creating Highly Detailed Icon Designs [Design]

- 40 Tutorials for Creating Highly Detailed Icon Designs

2009-05-23 Sat

キーバインドをなかか覚えられないとき。。one-key.el [Emacs]

- Emacs 初心者必見! one-key.el はキーバインドが覚えられない人への特効薬だ - (rubikitch loves (Emacs Ruby CUI))
- Emacs設定講座「キーバインドよ、俺色に染まれ。ア!!」。 - 日々、とんは語る。

を参考に。

インストール。

M-x install-elisp http://www.emacswiki.org/cgi-bin/wiki/download/one-key.el
上記が大元となるスクリプトになるが、もっと便利に使うために。
M-x install-elisp http://www.emacswiki.org/cgi-bin/wiki/download/one-key-config.el
M-x install-elisp http://www.emacswiki.org/cgi-bin/wiki/download/one-key-default.el
まで入れておく。

設定は、
(require 'one-key)
上記があれば one-key の機能は全て使えるが、
- Emacs設定講座「キーバインドよ、俺色に染まれ。ア!!」。 - 日々、とんは語る。
で書かれている、以下のような書き方をしておくと何かと便利かもしれない。
(上位サイトより引用)
(require 'one-key-default) ; one-key.el も一緒に読み込んでくれる
(require 'one-key-config) ; one-key.el をより便利にする
(one-key-default-setup-keys) ; one-key- で始まるメニュー使える様になる
(define-key global-map "\C-x" 'one-key-menu-C-x) ;; C-x にコマンドを定義
ただ、最後の C-x に one-key-menu-C-x の割り当ては、少々うざったくなるかもしれない。
C-x する度に one-key のバッファが表示されるので。。

one-key のテンプレートの作り方は以下の通り。
- Emacs 初心者必見! one-key.el はキーバインドが覚えられない人への特効薬だ - (rubikitch loves (Emacs Ruby CUI))
を参考に。

まずは、one-key のテンプレートを作成したいモードにおいて、
M-x one-key-show-template
し、キーバインドを聞いてくるので、作成したいテンプレートのキーバインドをそのまま入力する。
「そのまま」というのは、キーバインドをそのまま使うのではなく、キャラクタをそのまま入力する。
Title:
と聞いてくるので、名前を付けておく。

バッファにテンプレートが表示されるのでそれをそのままコピーし、.emacs に記載しておく。
で、グローバルのキーマップを割り当てておけば、便利に使える。

2009-05-21 Thu

Radius - A small, but powerful tag-based template language for Ruby [Ruby]

- jlong's radius at master - GitHub

Radiant でも利用されている タグベースのテンプレート言語。

インストール。

$ sudo gem install radius

2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2009-10-14 00:22