JACO-BASS » イベント

ひとに寄り添うデザインの追求

Emacs でつくる JavaScript と ActionScript の環境

第7回のウェブテコで発表したネタです。スライドを用意しなかったので、今回はブログの記事として書きます。

Emacs の JavaScript のメジャーモード。

emacs-js2-mode

Emacs では、特定のファイルを編集する場合、それに特化したメジャーモードを使うことで、編集をより便利に行なうことができます。
JavaScript を編集するためのメジャーモードは、以下のものが代表的です。

最近、人気なのは js2-mode の方で、こちらは Java で書かれた JavaScript パーサのRhinoが移植されており、リアルタイムの構文チェックが行なわれるところが他のモードとの大きな違いです。

ただし、非力なマシンであれば、動作が重いかもしれないので、そう感じる人は、javascript-mode を利用しているようです。

js2-mode のインストール

Emacs に Elisp をインストールするための基本的な設定などは、Emacs ビギナーに贈る、これからバリバリ使い隊!!人のための設定講座 その1。を参考にして下さい。

まず、Google Code の js2-mode のサイトからjs2-20080616a.elをダウンロードして、js2.el とリネームしてあなたの Emacs のロードパスであるフォルダに置きます。

続いて、Emacs を起動して、js2.el をバイトコンパイルします。js2-mode はバイトコンパイルしないと動作しないので、この作業は必須となります。

M-x byte-compile-file というコマンドを実行します。M-x というのは、Meta キーを押しながら x のことですが、通常メタキーは Alt になっていますので、Alt + x を押します。すると、Emacs 下部のミニバッファーでコマンドをタイプできますので、byte-compile-file とタイプしてエンターを押して下さい。

ファイルを尋ねられますので、js2.el を指定してエンタを押しましょう。ちなみに、ミニバッファー上では、TAB キーで補完が可能ですので、全てを直にタイプする必要はありません。

バイトコンパイルが実行されると、様々なファイルが生成されますので、終了するまで待ちます。

終了して入力が可能になれば、M-x js2-mode というコマンドを実行すると、js2-mode が起動しますが、いちいちコマンドを実行するのは面倒なので、あなたの Emacs の設定ファイル (おそらく .emacs でしょう)を開き、以下の設定を追加して下さい。

LISP:
  1. ;; js2-mode
  2. (autoload 'js2-mode "js2" nil t)
  3. (add-to-list 'auto-mode-alist '("\.js$" . js2-mode))

これを行末で C-x C-e で評価するか、もしくは Emacs を再起動すると .js の拡張子のファイルを開いたとき、自動的に js2-mode で編集できるようになります。

JavaScript Lint を利用して構文チェックをより厳しくする

flymake-mode を利用したときのスクリーンショット

Rhino による構文チェックも便利ですが、より厳しくチェックしたい人は、JavaScript Lint を導入しましょう。

JavaScript Lint - あどけない話に詳しい使い方がまとめられているので、js2-mode を使う場合の設定だけ書いておきます。

LISP:
  1. (when (and (require 'flymake nil t))
  2.   (setq flymake-jsl-mode-map 'js2-mode-map)
  3.   (add-hook 'js2-mode-hook
  4.             (lambda ()
  5.               (require 'flymake-jsl)
  6.               (setq flymake-check-was-interrupted t)
  7.               ;; (flymake-mode t) ; 起動時に flymake-mode をオンにしたい場合はコメントアウトする
  8.               )))

上記の記事の flymake-jsl.el を利用していますので、必ずロードパスにインストールしておきましょう。

js2-mode の時と同様に、再起動した後、JavaScript ファイルを開いて、M-x flymake-mode するとシンタックスチェックがかかります。

LISP:
  1. (when (and (require 'flymake nil t))
  2.   (set-face-background 'flymake-errline "orange red")
  3.   (set-face-foreground 'flymake-errline "black")
  4.   (set-face-background 'flymake-warnline "yellow")
  5.   (set-face-foreground 'flymake-warnline "black"))

色が見にくい場合は、僕の設定を利用するか、参考にして変更して下さい。

Emacs の ActionScript のメジャーモード

as3-mode の表示

続いて、ActionScript のモードですが、主なものに以下の2つがあります。

導入のしやすさは、actionscript-mode の方が簡単で、Elisp をロードパスに配置して読み込むだけで利用できます。

as3-mode は、flyparse-mode を利用したパーサーを使用する仕組みとなっており、構文チェックが可能な分、actionscript-mode よりも高性能なのですが、導入がすこし面倒です。

actionscript-mode はactionscript-mode.elをダウンロードして、ロードパスに置いて、

LISP:
  1. (when (require 'actionscript-mode nil t)
  2.   (setq auto-mode-alist
  3.         (cons '("\.as\'" . actionscript-mode) auto-mode-alist))

とすれば良いでしょう。

as3-mode のインストール

as3-mode のインストールについては調べてみたところ、日本語の記事がなかったので、しっかりと紹介しておきます。

まず、flyparse-modeをダウンロードします。

flyparse-mode は、Java で書かれたパーサを利用して、ActionScript と JavaScript と CSS をパースすることができます。ただし、利用するためには lib フォルダにある flyparse-parsers.jar と antlr-runtime-3.1.jar の場所を CLASSPATH に追加してあげる必要があります。

Emacs で CLASSPATH を設定するには setenv 関数を使います。.emacs に CLASSPATH を追加しましょう。

LISP:
  1. (setenv "CLASSPATH" (concat
  2.         "/Users/tomoya/projects/flyparse-mode/lib/flyparse-parsers.jar:/Users/tomoya/projects/flyparse-mode/lib/antlr-runtime-3.1.jar"))

僕の場合は、このようになります。

続いて、flyparse-mode.el をロードパスに追加します。

今度は as3-mode をダウンロードして、as3-mode.el と fdb.el をロードパスに追加します。

そして .emacs に

LISP:
  1. (when (require 'as3-mode nil t)
  2.   (setq auto-mode-alist
  3.         (cons '("\.as\'" . as3-mode) auto-mode-alist))
  4.  
  5.   (add-hook 'as3-mode-hook
  6.             '(lambda ()
  7.                (define-key as3-mode-map (kbd "C-c t f") 'flyparse-toggle-debug-overlays)
  8.                (require 'flymake-as3)
  9.                (setq flymake-check-was-interrupted t))
  10.             ))

という設定を書きます。再起動すると、.as の拡張子のファイルを開くと自動的に as3-mode が起動します。

M-x flyparse-toggle-debug-overlays を実行するか、C-c t f (コントロールを押しながら c を押し、コントロールを離して t f を続けて)を押すと、視覚的な構文チェックが実行されます。オフにしたいときは、同じコマンドを実行します。

flyparse-mode の flyparse-toggle-debug-overlays 実行時のスクリーンショット

まとめ

この他にも、auto-complete.elなどを使うことで、開発効率が促進されること間違いないでしょう。

長くなりましたが、Emacs で JavaScript や ActionScript を書く人の参考になれば嬉しいです。

この記事のタグ

関連記事

第5回ウェブテコ「詳説 HTML」のスライド

3月8日に行なわれた、第5回ウェブテコで発表した、「詳説 HTML」というプレゼンのスライドPDFを公開します。

発表タイトル
詳説 HTML
ライセンス
Creative Commons License Creative Commons 表示-継承 2.1 日本 License

HTML について発表するという事で、その大海原にのみ込まれそうになりつつ、なんとか纏めました。

できるだけ、広く浅くで知らない人にも理解しやすくしたつもりですが、どうもマニアックな内容だったらしいです。個人的には、ぜんぜんそんな事ないんですけどね。

内容の目次

  • HTML - HyperText Markup Language
  • HTML の誕生と理念
  • 今現在使われている HTML の種類
  • 今後使われる事が増える HTML の種類
  • 草案とか勧告とかって何?
  • 正しい HTML の書き方
    • HTML はシンプル
    • XHTML はちょっとややこしい。
    • HTML 5 その1
    • HTML 5 その2
  • 文書型宣言(DOCTYPE宣言)
  • なぜ、文書型宣言が必要なのか?
  • DTD って何?
  • ブロック要素とインライン要素
  • MIME Type

眠たくなりそうな硬い内容でしたが、最後まで聞いて頂いてありがとうございました。

質問して下さった方々もどうもありがとうございました。

この記事のタグ

関連記事

第3回ウェブテコ「Microformats 入門」のスライド

12月7日に行なわれた、第3回ウェブテコで発表した、「Microformats 入門」というプレゼンのスライドPDFを公開します。

尚、公開に際して、誤字の修正と、スライドの最後に Appendix としてリンク集を付け加えました。

ですので、解説なしでも、それなりに分かりやすい感じになっているかと思います。

発表タイトル
Microformats 入門
ライセンス
Creative Commons License Creative Commons 表示-継承 2.1 日本 License

今回は、どんどん実例紹介をしていくか、ひたすらコードを紹介するか悩んだのですが、全体を俯瞰してもらうよりも、実際のコード例を見てもらった方が理解が早いかなと思い、終盤までひたすらマイクロフォーマットとそのプロパティの紹介とコードサンプルをお見せして、解説し続けました。

聞きづらかったかと思いますが、みなさん最後までおつきあい頂いて、本当にありがとうございました。
また、北方さんどうもありがとうございました。

他の発表者のスライドも北方さんのブログに纏められておりますので、どうぞ :-)

この記事のタグ

関連記事

第2回ウェブテコ発表時の資料。

11月2日に行なわれた、第2回ウェブテコで発表した、「IEのため」だけじゃないCSS対策。というプレゼンのスライドPDFを公開します。

発表タイトル
「IEのため」だけじゃないCSS対策。
ライセンス
Creative Commons License Creative Commons 表示-継承 2.1 日本 License

あと、前回のスライドもリクエストがあったので、ようやく公開しておきますね。
AutoPagerizeに対応して、もっと便利なサイトにしよう。こちらはHTMLです。
Tempa Playground : ウェブテコ第2回終了の方に他の発表者の資料のまとめがありますので、ご覧下さいませ :-)

この記事のタグ

関連記事

クリエイター求む!のプレゼン大会

クリエイティブクラスターミーティング拡大版

扇町インキュベーションプラザで開催された「クリエイティブクラスターミーティング拡大版」というイベントに行って来ました。詳しい開催趣旨はこちらをご覧ください。

このイベントは簡単に言ってしまうとクリエイターを必要とするクライアント企業と、何か面白いところで腕を振るいたいというクリエイターとをマッチングさせるようなイベントで、中村もJACO-BASSが活躍できる場や機会があるかもしれない、ということで参加してきまた。

で、感想なのですが、プレゼンされている企業の商品やサービスには興味惹かれるものが多かったです。ただプレゼンの目的となると漠然としたものが多かったように思います。

プレゼンの技術に関して言うと、中村なんぞはまだまだ未熟なのでよくわからないのですが、その目的は何なのか?どのようなクリエイターを望んでいるのか?という具体的な提示がほとんどなく、焦点がぼやけていたように感じます。(なかには明示されている企業もありました)

クリエイターという言葉自体、曖昧で使い方を誤るとろくでもない言葉になってしまいがちですが、何だかクリエイターというと何でも出来るスーパーマンのように考えてらっしゃる方が多いのかなと感じました。

webもできてDTPもできて映像や3Dもできる、しかもアイデア・企画が面白く、広告を作らせても効果を出せる。そんなクリエイターが理想だと思います。

でも正直そんな人はこの世にいません。デザイナーの中村が言うと見苦しいのかもしれませんが、これは事実です。だからこそクリエイターは自らの強みや自分にしか出来ない表現を常に探しているんでしょう。

恐らく企業の方にしても、自社の商品やサービスをどのように展開すべきか?という部分で悩んでらっしゃるのだと思います。そしてそれに応えることこそが広告マンの仕事です。

商品の切り口をいくつも見つけて、最適だと思う視点で戦略を立てる。これは非常に重要ですが習得困難なスキルです。デザイナーである自分にもそれが求められているんだなと痛感させられるイベントでした。

どんな企画を振られてもすぐに応えられる瞬発力を身につけないといけないなぁ。

この記事のタグ

関連記事

back to top