changelog

日々の出来事とか。

弾言

小飼弾さんの著書「弾言」がよさそうだったので買ってみた。

まだ1章しか読んでないが、本の中に「本を読んだら次は自分を読め」とありますので、本を読んだ後の感想を自分なりにまとめてみる。

小難しいことはあんまりなくて、言われてみればごくごく当たり前の事と思えることをすっぱりと書いてくれているので、非常に読みやすい。

実践してみようと思ったことは、暇があったら本を読むようにして、だらだらとテレビをつけるのをやめようと思った。

この先の章もたのしみだ

MacPortsの使い方

macosxがWebの開発によさそうなので、macbookを買ってみました。

MacOSXには、FreeBSDのPortsに似たパッケージ管理システム「MacPorts」というのがあるので
それを使ってみましたのでメモ。
RPMなどのパッケージ管理システムでは基本的にバイナリのものがインストールされますが、
MacPortsでは、ソースコードをダウンロードしてコンパイルがローカル上で行われることになるので、
gccなどの開発環境が事前に必要となります。(FreeBSDのPortsのようなもの?)
Unix開発環境は、付属のインストールCD入っているXCodeをインストールすることで導入が可能です。

MacPortsの準備
http://svn.macosforge.org/repository/macports/downloads/
ここから最新版のMacPortsをダウンロードしてインストールする。

MacPortsのアップデート
以下を実行して、パッケージ一覧の情報を更新する。

$ sudo port -d selfupdate

■パッケージ一覧の更新
$ sudo port -d sync


■ソフトウェアの検索
$ sudo port search [検索するソフト名]

■インストール済みソフトウェアの一覧

$ sudo port installed

■ソフトウェアのインストール

$ sudo port install [ソフトウェア名]

■ソフトウェアのアップグレード

$ sudo port upgrade [ソフトウェア名]

■ソフトウェアのアンインストール

$ sudo port uninstall [ソフトウェア名]

■インストール済みソフトウェアのアップグレード

$ sudo port upgrade installed

■アップグレード可能なソフトウェアの一覧

$ sudo port outdated

macportsを使ってインストールしたソフトウェアは、/opt/localにインストールされます。

emacs タグ・ジャンプ機能の使い方

調べたけど忘れそうなのでメモ。

M-.
現在のウィンドウでタグ・ジャンプする
C-x 4 .
別ウィンドウを開いて、タグ・ジャンプする。
C-x 5 .
別フレームを開いて、タグ・ジャンプする。
M-*
タグ・ジャンプする前の位置へ戻る。

M-TAB
 TAGSファイルを読み込んでいる状態で関数名の補完入力ができる。

M-x visit-tags-table
 TAGSファイルの切り替え

C-u M-.
 同名の関数が複数あった時、次へ飛ぶ

C-u - M-.
 前へ戻る

M-x tags-reset-tags-tables
 タグファイルの情報をリセット

M-x tags-search
 TAGSファイルに登録されているファイルから検索

.emacsの設定

.emacsに設定している内容をまとめてみた。

;; tab settings
(setq-default tab-width 4)
(setq-default indent-tabs-mode nil)

;; ツールバーを表示しない。
;; これを設定すると、Welcomeページ?も表示されない
(tool-bar-mode nil)


;; C-dでリージョンを削除
(delete-selection-mode)

;add Load Path
(setq load-path (cons "~/elisp" load-path))

;;; リージョンを反転する。
(transient-mark-mode t)

;;;
(setq line-number-mode t)
(setq column-number-mode t)

;;; 対応する括弧を強調する
(show-paren-mode t)

入門 GNU Emacs 第3版

入門 GNU Emacs 第3版

Ruby On Railsを試す(2)

昨日の続き。

テーブルとクラスの自動生成

scaffoldというモデルを操作するためのフレームワークで、自動的にテーブルとモデルクラスを生成することが出来ます。
ここでのクラス名は、全部小文字の単数形で指定すること。

$ ruby script/generate scaffold [クラス名] [フィールド名1]:[フィールド型1] [フィールド名2]:[フィールド型2] ... 


実行すると、「db/migrate」の下に「[001_create_[クラス名]s.rb」という定義ファイルが作成されます。

class CreateHoges < ActiveRecord::Migration

  def self.up
    create_table :hoge do |t|

      t.string :hoge
            t.string :fuga

    end
  end

  def self.down
    drop_table :hoges
  end
end

self.upにデータベースに定義するテーブルの情報が書かれます。

rakeコマンドを使って、データベースにテーブルを作成します。

$ rake db:migrate

RubyOnRailsを試す

昨年12月、Ruby On Railsのバージョンが2.0にアップし、バージョンアップの目玉がRESTアーキテクチャへの対応ということだったので、久しぶりにRailsを触ってみることにしたので、簡単な使いかたをまとめてみます。

Railsの準備

Railsのアプリケーションを設置するディレクトリに移動して、以下を実行する。

$ rails [アプリケーション名] --database=[データベース名]

database.ymlの編集

データベースへの接続情報を変更する場合は、[アプリケーションディレクトリ]/config/database.ymlを必要に応じて編集する。

日本語の設定

日本語を使う場合は、[アプリケーションディレクトリ]/config/environment.rbに以下を追加する。
ちなみに、Shift_JISの場合は「SJIS」、EUCの場合は「EUC」に設定する。

$KCODE="UTF-8"

Content-Typeを設定する。

[アプリケーションディレクトリ]/app/controllers/application.rbに以下のように記述します。

class ApplicationController < ActionController::Base
  before_filter :set_charset

  private

  def set_charset
    headers["Content-Type"] = "text/html; charset=UTF-8"
  end
end

Emacs tagファイルの作成について

Emacsでは、TAGファイルを作成することでプログラム内の関数を定義している位置へジャンプすることができるようになります。
TAGファイルは、etagsというプログラムを使うことで生成できます。

etagsにはいろいろな種類があり、Emacsに同胞されているもの他にもsourceforgeで開発がされているものがあり、対応しているプログラム言語や、指定できるオプションが若干違うようです。

私はこちらのctagsを使っています。

簡単な使いかた

$ find . -name "*.php" > filelist
$ etags -L filelist

入門 GNU Emacs 第3版

入門 GNU Emacs 第3版