ラベル JavaScript の投稿を表示しています。 すべての投稿を表示
ラベル JavaScript の投稿を表示しています。 すべての投稿を表示

2011年8月20日土曜日

LLPlanetsに参加してきた

Lightweight Language Planets 2011に参加してきました。
http://ll.jus.or.jp/2011/

LLといいつつタイムテーブルの通りJavascript一色といった感じでした。
Node.jsやCoffeeScriptも流行ってるし当然といえば当然なのかも。

タイムテーブル
10:30-10:40 開会宣言+場内注意事項説明
10:40-10:50 IPv6ハッカソン紹介
10:50-12:20 メタプログラミングの光と闇
12:20-13:50 昼休み
13:50-14:35 基調講演
14:35-14:50 休憩
14:50-16:20 Node.jsとは何だったのか
16:20-16:50 夕休み
16:50-18:20 JavaScript八面六臂
18:20-18:35 休憩
18:35-19:05 IPv6ハッカソン成果報告
19:05-20:10 Lightning Talk
20:10-20:20 抽選会+閉会宣言



・メタプログラミングの光と闇
メタプログラミングってなんぞという状態で聞いたのですが、マクロみたいなものでメタプログラミングなものやDSLちっくなものって意外と身近にいろいろあるなと感じました。
話の結論としては、メタプログラミングとかDSLとかつくらずに普通に書け!ということでしたがw


・基調講演
malaさんのお話はとても面白かった。配信されていたら必見。本人は顔出しNGなので無理かもですが・・。Javascriptは必須だなと感じました。
また、Webページの脆弱性を指摘すると寿司を食えたりするらしいですw

他メモ
・Javascriptを自動生成するな
・HTML5でクライアント側でできることが増えたからクライアントでしかできないことを採用せよ

・Node.jsとはなんだったのか
Node.jsはJavascriptをサーバーサイドでも使いたいだけだろとか思ってましたが、イベントループとノンブロッキングI/Oのサーバーを構築するのに最適な言語だったということで大きな誤解でした。
他にもイベントループを採用しているフレームワークは色々あったみたいですが、JavascriptみたいにノンブロッキングI/O環境を創りだすのは難しかったみたいであまり普及しなかったみたいですね。
シングルスレッドなのがあれですが、この先どう普及していくのか。
Node.jsはC++で書かれているみたいなので自分でも何か作ったりできるかも?!

・Javascript八面六臂
以下メモ
・ECMA262の第三版の仕様はほぼ使えるとおもってよい
・bit,byte操作はむずかしい
・複数人でやるとスタイルがばらばらになる
・コールバック地獄になりやすい。特にオフラインアプリ
・Workerに押しこめばコールバックしなくてすむ
・エラー処理がしにくい
・Promiseなどのライブラリを使うことである程度解決する
・エディタの昨日を使いつつ慣れる
・非同期I/Oはきをつけないといけない
・直列的に書けるライブラリをつかうといい(jsRefer)
・ボトムアップで書いたほうがJSっぽい
・複数人でやる場合はクラスのほうがいいかも
・ecmaではクラスを取り入れる提案もあがってたりする
・プロトタイプベースでクラスでやりたいことはできるはず
・クラスベースでやらなければならない理由はないのでは
・webstormがeclipseやnetbeansよりもつかいやすかった
・どれもgitがそれなりにつかえる
・記述の自由さがネック
・規約とテスト方法を決めとく
・対話型モジュールで学ぶのがよい
・prototype.jsはコードリーディングにはよい。(使うのは・・)


Javascriptばっかりでしたが結構面白かったです。
今後は他のLLも頑張ってほしいですね。

2011年2月27日日曜日

js2-mode.el

emacsでJavaScriptのコーディング用に以下を導入。

js2-mode
http://code.google.com/p/js2-mode/

下記のリンク先から最新版のjs2-*.elを取得。
http://code.google.com/p/js2-mode/downloads/list

ホームディレクトリにある.emacs.dに保存用ディレクトリを作成して、
ダウンロードしたファイルをリネームしてそこに保存。
#mkdir ~/.emacs.d/js2
#mv ~/Download/js2-*.el ~/.emacs.d/js2/js2.el

emacsを起動し、以下のコマンドを実行してjs2.elをコンパイル。
M-x byte-compile  <returnを押す>
~/.emacs.d/js2/js2.el <returnを押す>
コンパイルが通るとjs2.elcが生成されます。

以下を.emacs(.init.el)に追加。
(setq load-path (append (list (expand-file-name "~/.emacs.d/js2")) load-path))
(autoload 'js2-mode "js2" nil t)
(add-to-list 'auto-mode-alist '("\\.js$; . js2-mode))

あとはなにかJavaScriptのファイル(.js)を開くとjs2-modeになる(emacsの下のバーにJavaScript IDEと表示される)はずです。

2011年2月26日土曜日

TitaniumでAndroidアプリ

今月のWEB+DB PRESSにも載っていましたが
Titaniumを使ってAndroidアプリの開発をはじめてみました。

というのもJavaScriptの勉強もしているので、ちょうどいいかなと思った次第です。


簡単に動かせるかなと思ってたわけですが、サンプルを起動するまでに約一日格闘してしまいました。。


手順(OS X):
すでにAndroid SDKが入っているものとしての手順です。

まずはTitaniumをダウンロード

Titanium
http://www.appcelerator.com/products/download/

dmgファイルをダブルクリックして
TitaniumDeveloperをApplicationファイルにドラック&ドロップ

TitaniumはAndroid1.5くらいまでしかサポートしていないので、
最近のAndroidSDK(2.2以降)ではちょっと手を加える必要があります。
というのもAndroidSDKのadbの入っているフォルダが"tools"から"platform-tools"に変わったからです。
なので、adbをtools以下にコピーするかシンボリックリンクをはる必要があります。

#cd AndroidSDKのディレクトリ
#ln -s platform-tools/adb tools/adb

Titaniumを起動し、アカウント登録。

その後、ユーザープロファイル(Titaniumの左上の下図のアイコンの一番右の人のアイコン)を開く。

そこで、AndroidSDKのPathを設定します。


続いて、サンプルの入手です。以下のファイルをダウンロードして解凍。

KitchenSink(サンプルアプリケーション)
https://github.com/appcelerator/KitchenSink/tree/master/KitchenSink

Projects(Titaniumの左上の下図のアイコンの一番左のかばんのアイコン)を開く。


上図の右にあるImportProjectを選択して、KitchenSinkを解凍したディレクトリ内のKitchenSinkというディレクトリを選択してインポートします。
インポート完了後、SaveChangesボタンを押すと完了です。

サンプルアプリの起動です。(ここではまりました・・)

PROJECTSの中からKitchenSinkを選択し、
上のメニューのTest & Packageを選択し、RunEmulatorのタブを選んで、その下のAndroidのタブを選択します。
一番下の欄のSDKで「API 2.1」を選択。(私の環境だとAPI x.xだとうまくいって他のだと失敗しました
そしてLaunchボタンを押して起動。

ここでエミュレータの起動はたいていうまくいくと思います。
しかし、いつまでたってもアプリが起動しないことがあります。

対処方法:
まずは、よくタイムアウトしているので、起動しない場合は、エミュレータを立ち上げたままもう一度Launchボタンを押してみてください。

それでもだめな場合、AndroidSDKManagerを立ち上げて(#android)、VirtualDevicesに作られているTitaniumが作ったVirtualDeviceをDelete。
AvailablePackagesでAndroidRepositoryとThird−PartyAdd-onsにあるものを全てインストール。

[ERROR] Failed installing com.appcelerator.kitchensink: pkg: /data/local/tmp/app.apk
はAndroidのSDKをAPI x.xに選択することで解決しました。

Head Rush Ajax

Head Rush Ajax読み終えました。

Head First JavaScriptを読んだ後に本書を読みました。
かなりかぶるところもありますが、こちらのほうがよりDOMについて詳しく説明されています。

DOM⇒XML⇒JSONと説明の順番がうまく考えられており、これを読めばJSONってなんぞと思っていたことがさっくりと理解できると思います。


2010年12月30日木曜日

JavaScriptもはじめました

PythonでWebサーバー側をやっていたわけですが、
クライアント側もちょっとやる必要がでてきてJavaScriptも少しづつですが
勉強しはじめました。

Head First系の本は読んでなかったので、試しに買ってみましたが
プログラムが他の言語でばりばりできる人にはちょっと簡単すぎる感はいなめないです。
しかし、この手の言語学習系の本で気軽に読めるというところは
いいのかなと思います。なので電車とかでちょこちょこ読み進めております。

JavaScriptは初体験なのですが、Javaとつくだけあって、文法などは
かなりJavaに近い感じで理解しやすいですね。
どう呼び出されるのかがいまいち理解できていないので、
ブラウザがどう解釈してるかとかもわかってたほうがいいんでしょうね。

このブログでもJavaScriptは使えるみたいなので
機会があれば使ってみたいと思います。