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

2010年1月30日土曜日

Compressive Sensing

噂の Compressive Sensing の講演資料(cs-tutorial-ITA-feb08-complete.pdf)をざっと斜め読み。正直よく分からんけど、L1 minimization とか、Total-variation となんら変わらない感じなんですが。

オレオレ解釈では L1 だとか TV だとかの norm が小さくなるような空間に写像して、L1やTV optimization により信号を復元、逆写像により元の信号を復元するというのがエッセンスっぽい(自信なし)。写像先の空間での sensing が容易にできる場合には良さそうだ(sensing する空間と L1 とかで制約を課す空間は別で良いぽいけど)。そうじゃない場合は、Compressive Sensing というよりも、ただの写像して L1 や TV の最適化してるだけだよね。写像してL1、写像してL1、とか唱えてると良いアイデアが浮かぶかもね。

TVは凄いんだけど、ノイズが多くなってくるとTVだけではうまく収束しなくて、もう一歩賢い方法が欲しいよな。L1でのoptimizationを前提に問題を捉え直すと、sense すべき情報は変わってくるかもしれない(その辺に geometric なガイドラインを与えようとしているのかもしれんが、いまいち、、、)。深い意味も無く計算が速いからとL2を使ってる問題も、L1で考え直すと世界が開けるかもしれない。

時間がとれたら勉強しようと期待していた CS だが、ちらっと見た感じではいまいちな感じ。 L1 の面白さを再確認しましたけど。どうしようかな、もっとちゃんと勉強すべきかな、、。データ削減は良いけど、トータルの消費電力が増えるのは嫌だしな。HW的なギミックと Compressive Sensing がうまく嵌まれば面白そうだけど。

PowerWords

iPad の SDK のダウンロードがなかなか終わらないので、英単語の勉強中。つい先日、某ブログに触発されて英単語の勉強を始めた。ちょっと控えめに PowerWords 8000 を選択。いつも英辞郎のお世話になっているのでALCの教材にした。教材のできはまあそこそこで、記憶するための機能は正直使えない。
  • 単語と日本語をペアにして表示(音声で英単語)
  • 単語を表示し(音声で英単語)、日本語を3択
  • 日本語からスペリング(4文字の候補が出るのでわりと簡単)
  • 日本語からスペル選択(うざい)
10単語について上のシーケンスをこなす。間違えると適当な順で再出題される。まあ、悪くはないけどさすがに10単語でなおかつヒントが多いので、簡単にクリアできてしまう。しかも、クリア後単語リストを見ると結構覚えてない、、、。結局、自分でブラックリストに登録して(この機能があってよかった)、ブラックリストを睨んだり、ブラックリストの読み上げ機能を使って寝ながら聞いたりして覚える。

ブラックリストの単語のみのヒアリングゲームがあると良かった。僕ならその単語だけ抜いた文章の穴埋め問題を、音無しで解く。

だいたいブラックリストが 60-100 単語になるように進めている。それ以上長いと復習に10分以上かかってしまってうんざりする。ブラックリストの消化率は20〜30/日ぐらい。ブラックリストの滞在時間は長い物で3-4日という感じだ。このペースだと Level 7 は結構わかる単語が多いので一回100〜200ぐらい進められる。一週間もあれば1 Level (1000語) 終わる計算だ。12000語も近い(か?)。

単語学習のメリットは進捗が目に見えて分かることではないかと思う。知らない単語が一応知ってる単語に変わる。とりあえず覚えて損はなかろう。でも、8000語レベルは余裕なはずだったんだが、、、。もうちょっと効率が上がってきたらブラックリストを長くするかな。

2010年1月29日金曜日

iBooks

噂の iPad が発表された。いろいろと評価はあふれているが、結果的には微妙な感じである。個人的には、
  • (日本人的には)重すぎるのでは?
  • PC の置き換えは出来ないので、会社とかに持っていくのはつらい。(そもそもセキュリティ上持ち込みが禁止されそうだ)

そんな本質的ではない理由で、あまり使わないと思う。まあ、気合いの入った新しいフォームファクターの製品が増えることは歓迎だ。発表後すぐに購入可能だったら、間違いなく買ったと思うんだけど。ウェブブラウズとメールがメインのユーザーはぴったりなので、ちょっと遊んでヨメさんにあげようかな。

正直見るべき点のない商品ではあるが、eBook リーダーとしては成功しそうだ。iPad がというよりも、まず iBooks が、である。iTunes の様に PC, Mac 上で iBooks が展開されるだろうし、そうなると iPad なんて持ってなくても PC と iPhone 用に iBooks で本を買ったりしてしまいそうだ。ブックマークとかアノテーションとかは結構重要だと思うので U/I も重要だ。できれば audio book とも連動してほしい。iPad は must have な商品では無いが、better to have な商品ではある。iPhone ほど成功はしないだろうけど地味に売れ続け、そしていつのまにか我々は iBooks から離れられなくなってしまうのだ。で、ついでに iPad も買う。

iPad はただの eBook リーダでは無いとはいえ、結局重要なのがサービスだと考えるとやはり eBook は重要な鍵である。 AppStore はあまり期待はしてないけど、新しい形のデバイスなので、ゲームだとかちょっと便利なアプリとかは利点を生かした面白い物が生まれるかもしれない。iPhone ほど数は出ないだろうが、そこを逆に活かして適正な価格維持に対する方策が生まれると良いね、、、。

あと、まだすぐには売りもしないのに発表するってのは、何ですか、交渉のネタにするんですかね。是非、今年は赤字になりそうだと噂の漫画業界を口説き落としてほしいですね。 まあ日本発の漫画に強い eBook ってもの出てきてほしいけど、そういうことのできる人って日本にはいないんですかね。たいしたビジネスチャンスではないのかな。

とまあ、すぐに Buy Now できなかったのでそんなことを考えた。もちょっと軽くしてほしかったな。

2009年12月14日月曜日

現実、問題、逃避、分析、あるいは、近所の人のブログは僕の仕事を加速するか?

同じアパートの人のブログが面白いと聞いた。あぁ、その人きっとあったことあるな。お酒が好きな面白いひとでした。そんなことがきっかけで、ご近所在住の人のブログを読んだ。その人と、もう一人。二人ともとても頑張っているようで、刺激を受けた。自分はこんなで良いんでしょうか。

研究には概して何かと時間がかかるし、特に論文なんて英語で書き始めた日にはまあほとんど成果も進展もなく時間が過ぎてしまう。どうしようもない面もあるとはいえ、効率よくできているとは思えない。特に、英文を書くのはどうも自分で思っている以上にプレッシャーがあるようだ。筆が止まり、考えも進まないまま無為な時間が過ぎていることがままある。

苦手なことに対処する術は、僕が思うに、
  • ゴール、手段・過程の明確化
  • 進捗の明確化
  • 進捗を遅らせる要因の明確化
といったところかと思う。しかし、英文を書こうとすると、どうも各段階が思い通りに進まず、余計にやる気が削がれるという悪循環に陥ってしまう。

僕の場合の問題は、
  • ゴールが朧げ
    • 見えた気がしたはずのゴールに向かって進もうとするが、意外とゴールに問題がある。他のパートとの整合が微妙にとれなかったり、論理的な欠陥があとあと露呈したりする。
    • 英文、というよりも、論旨の組み立てが甘いのが問題の一つであるようだ
      • 中途半端に英語で考えるために考える能力が落ちている、
      • 日本語よりも、英語の方が論理的な問題が露呈しやすい、といったところが要因か。
  • 手段が未熟、過程も不明確
    • 「書きたいことは分かっているが何を書いていいのやら」などと勘違いする。多くの場合書きたいことが分かっていない。必要な情報と論理を組み立てれば足りない物は普通わかる。
    • 基本、「ゴールが朧げ」であることが、進捗の障害であるようだ。ゴールが朧げで論理が不明確、または論理が成り立たないことが多いのではないか。
    • 論理に飛躍がある。まあ、これはしょうがない。これを埋めるのが書くという作業だろう。
    • 切り口が見つからない。話の導入に困る。まあ、これは才能の問題だろうからしょうがない。アイデアでも列挙して後回しにでもするのが賢明か。
  • 進捗はまあ、進んでないことは把握している
  • 遅延要因の明確化
    • 今やってます。

「進捗を遅らせる要因の明確化」をしようとした訳だが、こりゃ、英文以前の問題だな。問題の本質が「英文書くのがいやだ」なんていう言い訳・プレッシャーの裏に隠れてしまっている訳だ。英語が下手だから・・・とかいう問題も良く起こるが、本質はそこでないことは多いだろうと類推する。いや、でもプレッシャーではあるし、本質でなくても多いに問題ではある。聞き取れないとか、もう問題外だよな。

現実逃避してないで早く書こう、、、。さっさと終わらせて次にとりかかりたい。しくしく、、、