2010年2月27日土曜日

JavaScript 勉強中 (JavaSctipt + HTML5)

興が乗ったので Mind Map Editor に手を入れた。といってもレイアウトやキーバインドを触っただけだが。local server でホストすること前提の作りだったので、blogger 向けに書き直した。





Open File
New Document

Help
Key binding
[alt+arrow keys], [alt+hjkl]navigate nodes.
[ctrl+j], [return]insert a node below.
[ctrl+k]insert a node above.
[ctrl+l], [ctrl+tab]insert a child node.
[alt+space], [ctrl+space]toggle children.
[alt]+[return]insert a line break.

jsmm 0.1b

何かを作りながら、新しい言語を学ぶのはそれなりに楽しい。しかし、software を勉強したところで software 技術者の行く末に関しては危惧は多い。software のアウトソースは進んでおり、どんどん雇用は海外に流出している。ここアメリカでもその流れは顕著だ。

まあ、日本に関しては反例もある。日本には言語障壁あるために、アウトソースは米国と比べると急激には進まない。また、日本では優秀な技術者の賃金が米国に比べ低いため、優秀な技術者が集められればオフショアとして機能できる可能性もある。もちろん問題は多々あるだろう。

結局のところ、付加価値の高い仕事に移行していかねばならない。プログラミングはコストである。効率を上げるなりアウトソースするなどしてコストを下げねばならない。一方で生産する物の価値は高めないといけない。アウトソース先の国々の進歩の先を行かねばならない。

アウトソースは万能ではないので、コストを下げる努力は続けるしかない。プログラミングだけで世界で競争するのは容易ではないが、プログラミングなしでは多くのことは不可能だ。一方、生産する物の価値を高めるには、既存のビジネスを育てるのでなければ、イノベーションが必要だろう。

しまった、オチがない。日本の場合、イノベーションを生もうとする人たちの母数を増やし、イノベーションを育む空気を作ることが必要じゃなかろうか。スタートアップ支援とか、研究・投資の減税とか、そんなの?。政治とか経済って難しい。

2010年2月26日金曜日

JavaScript 勉強中 (Google Data API, HTML5 canvas, etc.)

JavaScript を勉強中。言語仕様的には、微妙に嫌なところもあるが(変数のスコープとか、名前空間とか)、機能的には十分である。XSS で嵌まったが、JSONPで解決できた。と思いきや、Google さんの公開しているライブラリ群を使うとJSONPなんて自分で使わなくても、さらに簡単にいろんなことができてしまう。

特に驚いたのが、Spreadsheets Data API だ。Google DocsのspreadsheetにアクセスできるAPIで、ちょっとしたDBがわりに使うことができる。JavaScriptのクライアントライブラリは用意されていないが、Google Data API に則って作ってあるので、Google Data API を使えば JavaScript からも極簡単にアクセスできる。(ドキュメントやサポートが無いが、まあ、素直に作ってあるので何とかなる)。

そんな訳で、JavaScript + HTML5 (canvas, contenteditable) を使って、Mind Map エディターもどきを作ってみた。"Create Root Only" というデバッグ用のボタンを押すととりあえず、MindMap の編集ができる(がsaveできない)。"New" ボタンはMindMap用の新規spreadsheetをGoogle Docsに作成し編集する。saveできる。save したdocumentはOpen ... から開くことができる。

Mac OS X (leopard) + Chrome (dev), Safari, FireFox では動いている。

Tab ... 子ノード追加
Ret ... 下にノード追加
ALT + 矢印 ... ナビゲーション
ALT + Ret ... ノード内改行

FireFox の contenteditable では、未選択状態ではdelete が効かないので、選択してdeleteしないといけなかった。Safari(531)は、空や空白しかないelementがcontenteditableで編集できないので、初期値'.'を入れるようにしている。

まあ、そんな感じ。JavaScript + HTML5 の評価が僕の中で随分上がった。大規模なアプリケーションを書く気にはまだなれないが、ちょっとしたプログラムならデバッグもさほど苦ではない(クロスブラウザは除く)。JavaScript Console が良くできており、データ構造の可視化なんかはとても便利だ。静的な型解析とかでWarning とか出してくれる開発環境とかがあればより楽になるんじゃないかな。

モバイルでの使用も視野に入っているので、電力効率的にも良い方向に進むのではないだろうか。







Open File

New Document




jsmm 0.1

2010年2月11日木曜日

JavaScript 勉強中 (RSS feed を読んで typing 練習)



HTML5 に惹かれて JavaScript に手を出してみた(とはいえ、JavaScript なんて全く使ったことないので、HTML5にはたどり着いてない)。AJAX で RSS feed を読んでその内容を使って typing 練習する。ついでにタイプミスやスペルミスも矯正しようという算段だ。

使い方は、まず initialize ボタンを押す(onLoadがうまく機能しないのだX-)。Contents に google news からの feed が読み込まれるので適当なのを選ぶ(ラジオボタン)と、input フィールドにフォーカスがうつる。return キーでスタート。A-Z0-9とスペース以外はオールマイティ扱い。return は restart。chrome では何となく動いている。

結局 Blogger に載せるのに一番苦労した(とほ)。script を埋め込むのは鬼門かも。Chrome の JavaScript Console の使い方の勉強になってしまった。

Type this

target:
inputs:

Statistics

Contents