2011年2月28日月曜日

Emacs設定メモ

よく忘れるので、ほんと最低限の設定。

;日本語                                                                
(set-language-environment 'Japanese)

;UTF-8にできるだけする                                                                      
(prefer-coding-system 'utf-8)

;スタート画面を出さないようにする                                                          
(setq inhibit-startup-message t)

;Ctrl+hを                                                                      
(keyboard-translate ?\C-h ?\C-?)

2011年2月27日日曜日

ソーシャル・ネットワーク

Facebookの創始者でありCEOであるマーク・ザッカーバーグのFacebookを立ち上げるきっかけから、友人であり共同創始者であるエドゥアルド・サヴェリン、そしてウィンクルボス兄弟との訴訟までを描いた実話ベースの物語。

監督はセブン、ファイト・クラブ、ベンジャミン・バトンなどで知られるデビッド・フィンチャー。



実績のある監督+人の人生を描いた作品ということで、あまりハズレはなく、期待できるはずの作品だと思って見ましたが、まさにその通りでした。

Facebookは今はだれもが知るSNSですが、
それができあがるまでの過程ももちろん描かれていますが、この映画では主にザッカーバーグの人間ドラマを描いています。

特に焦点があてられていたと思われるのが、友人関係。

世界最大のソーシャル・ネットワークを作り、数億人のユーザーを獲得した人間は、その成功とは逆に友人を失い、冷たい判断を下さなければならないようになってしまいます。しかし、ザッカーバーグ自身は結果とは異なり悪人ではなく、変わった人間ではあるが非常にピュアである というところが映画としてとても面白い素材だったのではないでしょうか。

映画ではこの点にフォーカスを当てて、丹念に作りあげられており、非常に感情移入しやすくよい映画に仕上がっているといえます。

またこの映画のギークの描き方も、よくあるようなスーパーハッカー的なものや、オタク的な要素(見栄えや振る舞い)などを軽蔑するような過剰な演出はなく、非常に的確になされていて好感をもてました。


冒頭で、訴訟について書きましたが、これはネタばれではなく、これを知っている前提でないと、時系列に沿った話と訴訟話が途中からなんの説明もなく混在してくるため、逆に話が分かりにくいかと思いますので、事前知識としては必須だと思います。

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ってなんぞと思っていたことがさっくりと理解できると思います。


2011年2月25日金曜日

Android 3.0 正式版SDKリリース

Android 3.0 正式版SDKリリース
http://developer.android.com/intl/ja/sdk/android-3.0.html

エミュレータを使ってみましたが、プレビュー版の使った感じよりは断然さくさく動きます。
2倍くらい早く動くイメージですが、これまでの2.xと比べると比較にならんぐらい重いです。

起動時間は、
3.0preview  2分12秒
3.0      1分14秒
2.2         33秒
(環境:iMac OX 10.6.6 CPU 3.06GHz Core i3 Memory 4GB)

他のアプリもいっぱい立ち上げた状態なのでもうちょっと軽くなるのかもしれませんが、
今の私の環境だと劇的に変わることはないかなと思いました。

Motorola XOOMがTegra2のDualCore積んでるのが納得できました。
TechCrunchの記事によるとXOOM実物は快適に動くそうなので安心してください。

Androidタブレット向けのアプリを作るんだったら
結構ハイスペックの開発環境が必要だなと思いました。

2011年2月22日火曜日

Kinect SDKリリース計画

マイクロソフト、「Kinect」のWindows向けSDKのリリース計画を発表http://japan.cnet.com/news/service/20426548/

個人的にはMSはとても嫌っているわけですが、
これはとても歓迎!

Windows向け というのがあれですが、
Kinectで思わぬ使い方とかがでてくるかもしれないですね。

Python3.2リリース

Python3.2リリース
http://slashdot.jp/developers/article.pl?sid=11/02/21/221210

といいつつ3系は全く知りません(キリッ
AppEngineなんて2.5だし、なかなか3を使う(学ぶ)気には・・

2011年2月19日土曜日

社内だとAndroidアプリは作りづらい

社内だとProxyを通さないと外部ネットワークにアクセスできないので
Androidだと今のところProxyを通すのをサポートするようなAPIはないのでなにかと面倒。

先日も音声認識を試してみようかとRecognizerIntentを使おうと思ったわけですが、
動かしてみるとエラーがでる。
どうも音声認識自体はGoogleのサーバー上で行っているようで、ネットワークエラーになっているのが原因だった。
確かに内部で音声認識するのはなにかと無理ありますよね。

ということで、サーバー経由でプロキシを通してGoogleAPIをたたこうかなと思ったんですが、
音声認識用のGoogleAPIは公開されていないみたいでお手上げ。

やはりなにかとAndroidだと社内ネットワークで使うには問題があります。
Googleはこの辺どうするつもりなんだろう。

Javaユーザーの取り扱いがめんどくさい

会社の若い衆はJavaをメイン言語として育ってきた連中が結構いるわけですが、
別の言語になってEclipseが使えなかったり、他の開発環境が推奨されていたりすると、
やれEclipseを使わせろ、だのEclipseと比べてどうのこうのなどと文句ばっかり言うのです。

まぁ私もJavaのときはEclipseを使っているので気持ちはわからなくはないのですが、
CやC++にはそこまでいらないだろと思うんです。
特に組み込みだとSTLは重いので使わないので、Javaのように豊富なライブラリが
あるわけではなく、開発者であれば記憶できるレベルの量なのでIDEに助けてもらう必要は
ほとんどないです。
個人的にはC,C++などはEmacsを使ってきましたが、JavaでEclipseに使い慣れたあとでも
C,C++ではEclipseを使いたいとは微塵も思いませんでした。
IDEでマウスでポチポチちんたらやるよりは、すべてホームポジションで完結するEmacsのほうが断然早いからです。

これについては好みの問題もあるので勧めはしませんが、言語とか目的によって道具は選んでほしいということです。
プログラマにとって道具選び、つまり開発環境の整備は重要です。
現時点では開発環境もすべての開発に対してパーフェクトな銀の弾丸は存在しません。

つべこべ言ってないで他のツールの使い方もちゃんと学習して、状況に応じてベストな道具を選んでほしいです。

そんなかたにはCodeCraftの第7章「プログラマーの道具箱」を読むことをおすすめします。

2011年2月18日金曜日

ものすごい勢いでタブレットが出ている件

タブレットすごいっす。
多くて見切れていないのでとりあえずリンクのみ。
まとめたいな

Sony
ソニーのAndroid 3.0タブレットは " S1 "、9.4型でQriocityやプレイステーション対応
http://japanese.engadget.com/2011/02/16/android-3-0-s1-9-4-qriocity/

HTC FLYER
フォトレポート:HTCがタブレット参入--Android搭載「HTC Flyer」発表
http://japan.cnet.com/news/service/20426316/
[MWC2011]HTC初のタブレット端末「HTC Flyer」,ペンでの手書き入力に対応

Sumsong GALAXY Tab 10.1
[MWC2011]サムスン、Android 3.0を搭載し画面を大型化した「GALAXY Tab 10.1」を発表
フォトレポート:サムスン、デュアルコア搭載タブレット「Galaxy Tab 10.1」を発表--MWCで
写真で見るサムスンの新タブレット「Galaxy Tab 10.1」http://japan.cnet.com/news/service/20426452/

HP TouchPad
HP、WebOS搭載の「TouchPad」を公式アナウンス
HP、「TouchPad」タブレットを発表--「webOS」はPCにも搭載へ
HP、ディスプレイを60度倒せる一体型PC「TouchSmart」新モデルを発表
http://itpro.nikkeibp.co.jp/article/NEWS/20110208/356998/
日本HP、「TouchPad」と「webOS」の国内展開についてコメント
フォトレポート:HPの「TouchPad」「Pre 3」「Veer」をさっそくチェック
http://japan.cnet.com/news/service/20426107/

Motorola XOOM
「Android 3.0」搭載タブレット「XOOM」を触ってみた--「iPad」との違いもチェックhttp://japan.cnet.com/news/commentary/20425849/

東芝
[MWC2011]東芝がAndroidやWindows 7搭載タブレット端末、2011年前半に発売
http://itpro.nikkeibp.co.jp/article/NEWS/20110216/357246/

NEC LifeTouchNote
NEC、キーボード付きAndroid端末「NEC LifeTouch NOTE」発表
NEC、キーボードにこだわった7型ワイドのAndroid端末を発表--3月10日に発売
フォトレビュー:699gでAndroid 2.2搭載の「NEC LifeTouch NOTE」
NEC、フルキーボード付きのAndroid端末を発表

Acer
[MWC2011]台湾エイサー、デュアルコアCPU搭載Androidタブレット2機種をデモ展示

LG OptimusPad、Optimus3D
[MWC2011]「携帯性と操作性を両立」,LGがAndroid 3.0採用のデュアルコア・タブレットを発表
フォトレポート:3D撮影可能なHoneycomb端末T-Mobile G-Slate(Optimus Pad)
[MWC2011]3D表示機能搭載のAndroid 3.0タブレットやスマートフォン、LG電子が発表

TechCrunchの記事
MWC 2011カンファレンスに新型タブレット続々登場

2011年2月16日水曜日

NokiaがWindows採用 MeeGoは・・・

NokiaがWindows採用。
NokiaがMicrosoftと提携、Windows Phone採用
ということは、NokiaがIntelと組んでやっていたMeeGoはどうなるの??ってことなんですが

Nokia+Microsoftパートナーシップは、「3強3OS時代」の幕開けか

によるとソフトウェアの人員を削減するということでSymbianとかMeeGoの開発部隊はかなり削減されるみたいで、どうもMeeGoは終了のお知らせとなりそうな予感がびんびんしてきます。
OSC2011でMeeGoの講演を楽しみにしていたわけなんですが、どうなることやら。。

そんな中、開催中の2011 Mobile World Congress (MWC)でIntelがMeeGo搭載タブレット向けのUIを披露したそうです。

記事には全く肝心のUIが載っていないのですが、Nokiaに失望したということはとても伝わってきます。
タブレット向けのUIとはいかなるものか、気になります。

追記
Nokia に見捨てられようとも Intel は MeeGo 派を貫く姿勢をアピール

Android Patterns

百式でAndroidのUIを集めたAndroid Patternsというサイトが紹介されていました。
http://www.100shiki.com/archives/2011/02/android_patters.html

私もAndroidアプリを時々つくっていますが、
UIはこれまで作ったことがなく、どう作っていいものやらわからなかったのですが、
これは開発者にとっても、ユーザーにとってもUIがある程度統一するという意味で
役に立ちそうです。

しかしAndroidのAPIを使って単純に作ったUIはちょっと安っぽく見えるので
工夫は必要ですよね・・・

「アンドロイド・タブレットとデジタルサイネージへの応用」講座レポ

「アンドロイド・タブレットとデジタルサイネージへの応用」講座(横浜ストリーム主催)に参加してきました。

以下、感想やらメモ

・アンドロイド・タブレットの動向 丸山先生
  • アンドロイドタブレットをビジネスに使おうとする節もあるが、今のクローズドなビジネス環境での活用は難しいのでは。デバイス自体がビジネスのあり方を変えていく方法にいったほうがいいのでは。
  • タブレットは2014年には2億台を越えると予測されている
  • 2010年はほぼiPadだったが、2011年はアンドロイドの年になりそう。CES2011ではアンドロイドが山ほどでてた
  • ドイツ、インド、デンマークとかでもアンドロイドタブレットつくってる
  • Windows系のタブレットもいろいろあるがどこもキーボードに苦慮してる
  • ガラパゴスのOSはLinuxベース。
  • Courierっていうタブレットはボツになったけどおもしろかった
  • Tegra2くらいのパワーがタブレットには必要
  • IntelはNokiaと組んでMeeGoというOSを作ってる。そのタブレットにはOAK TRAILというCPU
  • HoneyCombのYoutubeはおすすめなので見たほうがいい
・中国におけるアンドロイド・タブレットの動向
  • 中国の携帯ユーザは5.4億人。そのうち3Gユーザは500万人程度。
  • 中国ではAndroidの人材育成を推進している
  • 中華Padはパワーアップしている。感圧⇒静電。Android2.2。しかも値段は同じ
・apad専門店
  • 実機がさわることができる
  • 今後は修理も行って良く予定
・デジタルサイネージ
  • デジタルサイネージに必要な機能
    • 通信、静動画、テロップ、スクロール、ズーム、マルチウィンドウ、自動ON/OFF、データアップデート、機器間同期、.NET対応、DLNA対応
  • デジタルサイネージでAndroidを使っているのは単に安いからという理由
  • 結論としてはAndroidはデジタルサイネージには向いていない
    • なぜなら業務用端末用につくられていないから
    • 業務用にはいたづらされないための仕組みが必要
  • FLASHはAdobeとライセンス契約しないと使えないのでどんなAndroidでも使えるわけではない。中華PadでFLASH使えるのはたいてい違法
Ustreamの中継もありました

2011年2月2日水曜日

タブレットやスマートフォンへの手書き入力デバイス

iPhoneの発表時にスティーブ・ジョブズはスタイラスなんてイラネ
指でいいじゃん的な事を言っていたかと思いますが、


でも結構みんなスタイラス使って書きたかったりペンで書きたい人もしぶとくいます。
そんな中、今日みかけたニュースで以下のようなものが紹介されていました。


まずは、スタイラス。

iPhoneやiPadは抵抗膜じゃないので一般的なスタイラスでの入力はできませんでした。
そこで魚肉ソーセージを使えばいけるよ!みたいな情報もありましたが、
いまはちゃんとしたものがでてるみたいです。

パワーサポート スマートペン:『史上最強のタッチペン』は軽くて、スラスラ!思いのままに書けてしまう。

AppBankさんの記事によるとかなり書き味がいいみたいです。


つぎにペンです。

これは紙にペンで書いたものをそのままデジタルとしても勝手に同期して保存してくれるすぐれものです。

MVPen EN301i: 紙のノートに書いた文字や絵が、iPhoneにすらすら転送!驚愕。

仕組みとしては、紙の上部にセンサーのついたクリップを設置して、そのクリップが
ペン先の動きを検知してデータを転送して、データの受信側で画像にするという仕組みみたいです。
たぶんペン先の位置は単純に三角測量で測ってるだけだと思いますので、ペンとセンサーの間に障害物はおいてはいけないはず。
このMVPen以外にも他のメーカーでも同じような仕組みのものを出しているみたいで
airpenといものもありました。(こちらには仕組みがわかりやすく説明されてました)
こっちのほうがBluetoothで転送できるので便利そうですがiPhoneやiPadには対応してないみたいです。(Bluetoothのプロファイルの問題かな・・)
また、色を変えたり背景変えたりとかアプリの機能としてはMVPenのほうがいろいろありそうです。

実際書いたものをデジタル化するというと、これまでは書いた紙をスキャンしたり、
写真にとったりして取り込んでいましたが、こういう使い方は結構便利かなと思いました。
機会があれば是非使ってみたい一品です。

Android 3.0 Preview SDK を使ってみた

Android 3.0 Preview SDK がリリースされているので使ってみました。

手順としてはSDKを更新するだけなんですが、私の場合は2.2の環境のままだったのでADBから更新しました。

Eclipseで
1. Help->Install New SoftwareでADBを更新
2. Window->Android SDK and AVD Manager

 2.3の環境からADBのPathが変わったみたいで、先にADBを更新してからSDKを入れないと失敗します。

あとはWindow->Android SDK and AVD ManagerでAndroid SDK and AVD Managerをたちあげて、Newで新たに仮想デバイスをTargetをAndroid HoneyComb(Preview)で作るだけ。

以下使った感想(説明などは面倒で読んでないので適当に操作してます)

起動時間は2分12秒くらいかかりました。2.2の起動だと33秒でした。
(環境:iMac OS 10.6.6 CPU 3.06GHz Core i3 Memory 4GB)

起動するといきなり画面が横にw
CTL+F11でとりあえず縦長に回転できます。

パッと見はいままでと違って、ちょっとかっこよくなってます。iPadを意識してでしょう。
第一印象はかなり良いです。

そして、あの微妙だった3つのハードボタンが消えました。
(かわりに左下に謎の3つのソフトボタンが)

以下のようにサイトにも言い訳注意書きがありますが、かなり動きはもっさりしてます。
画面の遷移はクリックして1〜2秒レスポンスが遅いです。

About emulator performance
Because the Android emulator must simulate the ARM instruction set architecture on your computer and the WXGA screen is significantly larger than what the emulator normally handles, emulator performance is much slower than usual.
In particular, initializing the emulator can be slow and can take several minutes, depending on your hardware. When the emulator is booting there is limited user feedback, so please be patient and continue waiting until you see the home screen appear.
We're working hard to resolve the performance issues in the emulator and it will improve in future releases. In the meantime, we wanted to give developers access to new APIs and an basic test environment as early as possible.
Keeping in mind that performance on the emulator does not reflect the speed or performance of apps on actual devices running Android 3.0, developing and testing on the emulator is still an important tool in evaluating your application's appearance and functionality on the new platform.
設定を変えると、言語を日本語にもでき、画面も横長になりました。

タブレットということで、ブラウザはタブが使えるようになってました。

タスクの切り替えは左下の3つのボタンの一番右のやつを使うのだと思いましたが、
それを押すとこのように左に開いているタスクの一覧がでて選ぶとタスクを切り替えれます。

あとは、右上の「Apps」の横にある「+」ボタンを押すと、以下の設定画面が出て、
ウィジェットとかアプリのショートカットを画面に追加したり、壁紙を変えられます。
画面の上部に出ている5つの枠は5つほど仮想トップ画面があるということだと思います。
(スライドすればもっとあるのかもですが、重くてわかりませんでした。)

試しにウィジェットを画面に追加してみると、このように時計を無駄に3つ置いたりすることができました。

以上使ってみた感想ですが、結構いい感じでした。
これまでのAndroidをタブレットを載せたものだと正直いくら安くても買う気は全く起こりませんでしたが、Android3.0だったら買ってもいいかもと思いました。
あとは実際に実機で触ってみて動きの滑らかさとかを確認する必要はもちろんあります。

結局3つのボタンのうち右のやつと真ん中のやつはよくわかりませんでした。。
たぶん真ん中は真ん中の画面に戻るとかじゃないかな・・

とにかく3.0の実物がでてくるのが楽しみです!

IPv4アドレス枯渇

これまで枯渇する枯渇すると言われてきましたが
あまり現実味は感じられなかったのですが、ようやく現実味を帯びてきた感じが。

IPv4アドレス枯渇問題に関する重大なアナウンス、関連4組織が2月3日に共同発表

続報:IPv4、IANAの中央在庫がとうとう枯渇

IANA の IPv4 のアドレス在庫が枯渇

IPv4アドレス枯渇。その意味と恐らくこれから起きること

といっても、もうIPv4のアドレスもうありません!ということではもちろんなく、
それを端的に表しているのがこれです。

IPアドレス、すっからかん 大元締めが在庫切れ発表

小売などの在庫がある限りはまだしばらくは大丈夫。
最近の製品はだいたいIPv6に対応したものを出しているのではと思っていますが
いざ以降となると結構混乱しそうな気が。
IPv6になることで別のネットワーク上の機器とかと繋げやすくなるなど便利なところが
ありますが、大きな力が働かない限りは、v6への移行は大きく進まず、
少しずつ広がっていくと憶測。
浸透するのにさて何年、何十年かかることやら