[JavaScript][Emacs] JavaScript.el

よくよく考えると、今まで JavaScript.el を利用してなかった。
良いインデントはコーディングを楽しくしてくれる。

というわけで、早速。
http://www.brgeight.se/ にある、JavaScript.el を拾ってきて、設置する。.emacs.el に以下を追記。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; JavaScript
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(add-to-list 'auto-mode-alist '("\\.js\\'" . javascript-mode))
(autoload 'javascript-mode "javascript" nil t)

[CSS][Emacs] CSS-Mode

EmacsCSS のインデントが気になっていたのでA CSS editing mode for Emacs から CSS-mode をインストールして、.emacs.el に次の記述を加えた。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; CSS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(autoload 'css-mode "css-mode")
(setq auto-mode-alist       
      (cons '("\\.css\\'" . css-mode) auto-mode-alist))
(setq cssm-indent-function #'cssm-c-style-indenter)

良い。

[Flex][AS][Emacs] Emacs 環境を整理

Emacs 上から、ActionScript を編集するために、actionscript-mode.el をインストールする。
以下手順。

1. elisp ファイルをインストール
Emacs mode for AS3 から、actionscript-mode.elas-config.el をダウンロードして ~/.emacs.d ディレクトリ以下に保存する。

2. cc-mode をダウンロード
cc-mode から cc-mode をダウンロードして、.emacs.d 以下に配置。次に actionscript-mode.el の先頭に以下を追記

(setq load-path (cons (substitute-in-file-name "~/.emacs.d/cc-mode-5.28") load-path))
(require 'cc-mode)

3. as-config.elから(require as-profiler)をコメントアウト

4. .emacs.el を編集

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Action Script
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; via http://blog.pettomato.com/content/site-lisp/.emacs
(defvar running-on-x (eq window-system 'x))
(autoload 'actionscript-mode "actionscript-mode" "Major mode for actionscript." t)
;; Activate actionscript-mode for any files ending in .as
(add-to-list 'auto-mode-alist '("\\.as$" . actionscript-mode))
;; Load our actionscript-mode extensions.
(eval-after-load "actionscript-mode" '(load "as-config"))

5. emacs を再起動して、適当に actionscript を作ってみる。
ハイライトされていたら OK。

[Flex] Rascut 導入

コンパイルの時間を短縮するために、Rascut を導入します。rascut 導入と使い方
で詳細を確認してもらうとして、インストールは以下のように gem から。

sudo gem install rascut --include-dependencies

インストールしたら、rasucut をサーバモードで起動します。(-s オプションが該当します。)

_JAVA_OPTIONS="-Duser.language=en" rascut HelloWorld.as -s

※ 冗長なので、~/.profile に

export _JAVA_OPTIONS="-Duser.language=en"

を追加すると、「rascut ファイル名 -s」 でいけるようになります。

これより、http://localhost:3001/ にブラウザからアクセスすると HelloWorld スクリプト実行結果を確認できます。
さらに、HelloWorld.as を変更すると、自動リコンパイルしてくれます。また、ブラウザもレンダリングし直してくれるので開発効率が大幅にアップするでしょう。

[Flex] Flex 導入

以下、Mac OSX 10.5 の話です。

プログラマのための Flash の遊び方 を参考に、Flex Download Adobe Flex3 から Flex SDK を DLします。ダウンロードしたディレクトリを

/Developer/SDKs/flex

辺りに保存して .profile に以下を追記。コンパイラなどへのパスを通します。

export PATH=$PATH:/Developer/SDKs/flex/bin

これを以下のコマンドで反映させます。

. ~/.profile

さて、試しに HelloWorld。

package{
  import flash.display.*;
  import flash.text.*;

  public class HelloWorld extends Sprite{
    public function HelloWorld(){
      var tf:TextField = new TextField();
      tf.text = "Hello World!";
      addChild(tf);
    }
  }
}

これを HelloWorld.as として保存して、コンパイル

mxmlc HelloWorld.as

HelloWorld.swf ができるので、このファイルをブラウザにドラッグドロップすると HelloWorld が見れます。

[Rails][Ruby] Rails 2.0 での Migrate ファイルの書き方

Rails 2.0 に移行中。
Migrate ファイルの書き方が簡略化できる。

# Before

class CreateUsers < ActiveRecord::Migration
  def self.up
    create_table :users do |t|
      t.column :name, :string
      t.column :subscribed, :boolean, :default => true
      t.column :created_on, :timestamp
      t.column :updated_on, :timestamp
    end
  end
 
  def self.down
    drop_table :users
  end
end

# After

class CreateUsers < ActiveRecord::Migration
   def self.up
     create_table :users do |t|
       t.string :name
       t.boolean :subscribed, :default => true
       t.timestamps
     end
   end
 
  def self.down
    drop_table :users
  end
end

テーブル名が yeild されてくるので直接カラムの型をテーブル名の後に続けることができて、タイプの節約ができる。
また、t.timestamps で created_at, updated_at カラムを自動で作成してくれる。