2011-10-30

BootCamp 2011 (Tokyo GTUG 主催) に参加しました

昨日 (2011-10-29) 、グーグル東京オフィスにて Tokyo GTUG 主催の BootCamp 2011 Japan が開催されました。 で、今回は開催に気がついて (去年は気がつかなかった…) 参加しました。「ブログを書くまでが BootCamp です」という訳で。

会場名で言うと、 Hanabi / Kabuki / Bar の三トラックに分かれていました。私は終始 Kabuki に陣取ってました。 Kabuki はもっぱらハンズオン。また、 Bar では App Engine コーナーということでしたが、結局行かずじまい。

残る Hanabi では、各種セッションが行われていました。 近日中にビデオも公開されるはずです。おそらくは YouTube でしょうが、どこに上がるのかな。 GoogleDevelopersJA でしょうか。 twitter の hash tag を追ったり、公開された資料を参照したりで、多少は内容に触れられるかと。とりあえず、わかっている範囲で資料等のリンクを置いておきます。

Hanabi 会場の資料など

セッション: Fragmentを使ってみよう

#an1 あんざいゆきさん (@yanzm) 資料

セッション: Google SketchUp モデリングの初歩

#sk1 田中雅子さん

セッション: はじめての Chrome Extension

#chr1 吉川徹さん (@yoshikawa_t) 資料

セッション: App Engine 倹約のすゝめ

#gae1 小川信一さん (@shin1ogawa)

ハンズオン: 新聞風の1ページを作ってみよう!

#chr2 一條美和子さん (@ichijo3) 資料

Kabuki 会場のハンズオン

で、自分が参加したのは Kabuki 会場の三つのハンズオンです。なんだかんだで、一日同じ席を確保してのハンズオン三昧。

ハンズオン: Google Apps Script

#gas1 中村敦さん (@atusi) 小川信一さん (@shin1ogawa) Yoshifumi YAMAGUCHI さん (@ymotongpoo) 伊藤千光さん (@webos_goodies) 資料: [入門編] [基礎編 Plan A] [基礎編 Plan B]

まず、朝一は Google Apps Script のハンズオン。 Google Apps Script は GDD 2011 の DevQuiz の問題にもあったし話は聞いていたのですが、使ったことはなかったのでした。 DevQuiz でもその問題は解かなかったし (スライドパズルにかまけてた) 。

ぶっちゃけ、 Excel のマクロの Google Docs 版? みたいな認識でした。

VBA の Google 版的な見方はあるのですが、他のサービス (Google Sites とも) と連携ができるとか、 JavaScript でかけるのはありがたい点ですねぇ。まだできないことも多いし、 GUI エディターにも制限がある様ですが、その辺は順次改善されていくでしょうし。

話に出たデメリットや制限等は、

  • GUI Builder で GUI リソースを開いたときにエラーが出て編集できなくなることがある!? そして、そうなったらもう二度と開かない!?
  • GUI リソースはスクリプトに付随するけど、スクリプトをコピーしても GUI リソースはついてこないらしい。
  • GUI はコピーしたスクリプトに対して再度作る必要があるとか。
  • ソースコード管理システム無いし、大規模開発に不向き。

などなど。他はスライド参照。

Google Sites の Gadget として、ちょっとした機能を追加してみたりできたり、 spreadsheet, document を連携しての作業の自動化とかがちょちょいとできる感じ。いろいろ工夫の使用はありそう。

ハンズオン: Spike WebView & Tough ICS

#an2 江川崇さん (@t_egg) 資料

最初、通りがかりの ICS ユーザー (謎) による Galaxy Nexus を用いた Ice Cream Sandwich の紹介がいろいろと。

で、 WebView を使ってのハンズオンは、ソースを読むと挙動がわかるよ、というのが名んかしら。確かに WebView に限らずドキュメントだけだとちょっと謎な振る舞いに感じられること、多々ありますしね。おや、って思ったらソースを読むのが近道だったりします。ドキュメントだけで事足ればそれが一番なのでしょうが。

ハンズオン: Google+ APIの体験とHangoutsの紹介

#ggp1 田中洋一郎さん (@yoichiro) 伊藤千光さん (@webos_goodies) 中嶋信博さん (@nakajiman) 小川信一さん (@shin1ogawa) 資料 blog

最後のハンズオンは Google+ の API を使ってみようというもの。ちょうど前日に品川の Microsoft で Windows Azure AppFablic ACS の話を聞いてきたので、 OAuth 2.0 で云々の話はわかりやすかったかも。 Google+ の API も OpenSocial 系の仕様にそったものになってたのね。現状は情報の取得のみ (それも public なもののみ) で追加/更新/削除系は利用できないので、できることは限られています。そのうち、機能は追加されるでしょー、多分。

後半は Hangouts を実際に試してみたり。テーブル毎で Hangouts を行い、 Hangouts の extension を使ってみたりというのは、かなり盛り上がってました。というか、部屋の中が超騒がしい状態に。

Google Hangouts API を使っての Hangouts extension は Google Gadget と同じ仕組みとなり、作り安いかも。マイクからの入力を拾うこともできるようで、拾った音の音量にあわせて画面上のキャラクターを動かしたりとか、いろいろいろいろ。

懇親会 & クロージング

一日終了したのちは、同じフロアで懇親会。

今回は丸一日ハンズオンに参加した訳ですが、手を動かしてのセッションは、聴くだけのセッションよりも面白いですよね。部屋ががやがやしてると質問もなんとなくしやすいしね!

GTUG と Google とボランティアで運営に当たってくださった方に感謝しつつ、せきとばらないように帰路についたのでした。

2011-10-24

VMware Player 4.0 上に ubuntu 11.10 の環境を作る


ここのところ、 ubuntu 11.10 の (android 用) 環境を作ったりこわしたりしているので、最低限の初期設定の自分用メモ。多分、誰の役にも立たないけど。
VMware Player 4.0 と ubuntu 11.10 (64bit, desktop) の iso file を用意して、フツーに仮想マシンを作って簡易インストール。インストール後 X が起きない状態で login prompt が出るので、 login して以下を実行。これは、 Ubuntu Japanese Local Community Team の web にあるものと、 source.android.com にあるものを持ってきただけ。ただ、 lib32readline5-dev は無いぞって言われるので lib32readline-gplv2-dev に置き換えてあります。
sudo dpkg-reconfigure tzdata

## http://www.ubuntulinux.jp/products/JA-Localized
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/oneiric.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install ubuntu-defaults-ja

## http://source.android.com/source/initializing.html
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get -y update
sudo apt-get -y install sun-java6-jdk
sudo apt-get -y install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils

dpkg -l > installed_package.`date +%Y%m%d%H%M%S`
# sudo shutdown -r now
再起動すると X が起きてくるので、ログイン。 “Language Support” の “Install / Remove Languages...” で日本語を追加。 “User Accounts” で自分の “Language” を “Japanese” に変更。 /var/lib/AccountsService/users/hoge が書き換わるはず。
ここまでで、一度 reboot して日本語環境を生かします。起動してログインすると、標準フォルダの名前を変更するか、って言われるので、次回から表示しないにチェックを入れて、古い名前のままにするをクリック。 (このあたりは好みなんだろうけど)
何はともあれ Chrome をインストールします。 http://www.google.co.jp/chrome/ から拾ってきて
sudo dpkg -i google-chrome-stable_current_amd64.deb
で、インストール。依存関係が云々言われるので、
sudo apt-get check
してみて確認の上、
sudo apt-get --fix-broken install
で完了。
google-chrome-stable をインストールすると、 /etc/apt/sources.list.d/google-chrome.list が生えるので、
sudo apt-get install google-chrome-unstable
などとすれば google-chrome-beta とか google-chrome-unstable に入れ替えも可能です。
他、適当にいつも使うものをインストール。私はこんな感じ。
sudo apt-get -y install aptitude
sudo apt-get -y install procinfo
sudo apt-get -y install vim
sudo apt-get -y install emacs
sudo apt-get -y install tmux
sudo apt-get -y install cvs
sudo apt-get -y install subversion
sudo apt-get -y install mercurial
sudo apt-get -y install lv
sudo apt-get -y install lynx
sudo apt-get -y install nautilus-dropbox
sudo apt-get -y install python-sphinx
...
あとは、 eclipse 入れたり、 android-sdk 入れたり、 source.android.com から色々持ってきたり、といういつも通りのことをしてふにふにしてやるだけ。

2011-10-23

「ブック40」が届いたよ

ブック40 という格安の書籍裁断機があるという話を Google+ で聞きまして、ちょっと悩んだもののとりあえず買ってみようということで。注文後、五日ほどで届きまして、そのふぁーすといんぷれっしょんというか、開封の儀っぽいのをば。

ちなみに価格は本体と替刃一枚のセットで一万五千円でした。


箱。化粧箱は有りません。これがブック40の箱。直接送り状が貼られてました。
箱を開け説明書を取り除くと、こんな感じ。
刃には「上海なんたら有限公司」の文字が。というわけで、上海モノらしい。届くまでは、大阪の町工場が集まって作った製品なのかなー、とか思っていましたが違ったようです。って、いまよく見たら「輸入品のため、箱および本体に若干の汚れや傷がございます。」ってしっかり書いてあった…。
アマゾンなどでよく似た格安裁断機のレビューにも有りましたが、このブック40も刃のあたりに油が付いているので拭き取る必要があります。刃は鋭いので、十分に注意が必要。 ちょっと拭いても、手の入らないところから染み出してきたりするので、しばらくは断裁前にチェックする必要あるかも。じゃないと、紙にシミが出来てしまいます。
箱から出したところ。レンチ等の工具がついてきます。写真右側の裁断機のコア部分がやたらに重い。重い上に刃があり、さらには油が垂れてきたりするので、取り扱いには十分に注意。
付属のスパナとレンチで、ネジ止め。
ハンドルを取り付けて、黒い金具を穴に打ち込み固定します。金槌はさすがに付属しないので、別途用意する必要があるのと、細かいところに細いものを打ち込むので、この工程が一番難易度高そう。
貫通するまで打ち込まないとダメだよと説明書には書かれていますが (じゃないとハンドルの取り付け部分が破損する恐れあり、とのこと) 完全に貫通させるまでには至りませんでした。
このハンドルを回して本を固定するのですが、がっちがちに固定する必要は無く、紙がたわまない程度まで固定すれば良いと説明書に書かれていたので、無茶に力を入れなければ破損することもないだろうということで、ちょっと様子見。
レバーは挿し込むだけ。スポンとね。
完成 (ハンドルの取っ手を付け忘れたまま写真を撮ってしまった…)
刃は、まっすぐ下にではなく、微妙に斜めに落ちてきます。じゃないとスパッとは切れなさそげ。
このあたりでは、結構斜めになっています。
刃が降りてくるにつれ、水平に。
このあたりでは、ほぼ水平。
とりあえず、試し切り。
ズッパシ!
油シミができているのがわかるかも。しばらくは油と対決しないといけないっぽ。
断面は本の最初のページから最後のページにかけて微妙に斜めになりますが、端が糊止めされているところをぶっとい刃が通るので、これは仕方ないところ。気になるほどのズレは生じませんでした。
どうしてもまっすぐに切りたい場合は、二段階裁断をすればよいとのことです。 一度目の裁断で糊付け部分をカット。 二度目の裁断でまっすぐにカット。
このあたりは、ブック40のウェブにも説明があります。
ビスがにょきにょき生えていて、民生品っぽくはないですね。
重たいのと、カドが綺麗に処理されているとは言いづらいので、組み立てるときには作業場所に注意しましょう。特にフローリングなどでは何か下にひいて作業したほうが吉。
ダンボールひいておいたのだけど、一箇所引っ掻いてしまった…。
結構でかいので置き場所に困るかも。分解して箱に戻せば良いよ、ってなことが FAQ に書かれていたような気がしますが、分解組み立てが一仕事なので…。

現状、まだ油シミができるので雑誌類しか裁断していませんが、かなり楽に切れますね。

今まではカールのローラーカッターを使っていましたが、このブック40ではそこそこの厚みのものでも一発で裁断できるので良いかも。また、ローラーカッターだとどうしても出てしまう、細かな切りくずも出ないしね。

難点はやはり収納でしょうか。床面積的には A3 対応のローラーカッターとあまり変わりませんが、重量が 10kg オーバーなので。あとは油。油に関してはそのうち気にならない程度になると思いますけど。

ともあれ、切り刻みまくりだだだ。

ブック40

2011-10-21

eclipse で android.jar の source を参照したいぞ

というわけで、 framework の source を拾ってきて eclipse から普通に見れるようにしましょう、という話。これに関しては Browsing Android Source in Eclipse およびその他いろいろな所で説明がなされていると思いますが、自分用のメモということで。

細かな説明は端折って、まずは android.googlesource.com から git clone してきます。 kernel.org の方に戻るってことは無いのかしら、とか思いつつ。

$ git clone https://android.googlesource.com/platform/frameworks/base.git

タグ一覧をチェック。

$ git tag -l

でもって、適当なものを checkout して、 android-sdk/platforms/android-nn/sources に copy 。 symbolic link でも良いでしょうが複数の version を参照したいと思ったら copy するしかないかなー。

$ git checkout android-2.3.3_r1.1
$ cp -a core/java ~/android/android-sdk/platforms/android-10/sources

$ git checkout android-2.2_r1.3
$ cp -a core/java ~/android/android-sdk/platforms/android-8/sources

$ git checkout android-2.1_r2.1s
$ cp -a core/java ~/android/android-sdk/platforms/android-7/sources

honeycomb や ice cream sandwich はまだ公開されていないので、とりあえず gingerbread まで。

2011-10-08

VMware Player で Windows 8 Developer Preview

VMware Player 3.x で動かなかった Windows 8 Developer Preview だけど、 VMware Player の 4.0 では動作可能になった模様。でも何も考えずに動かせるというわけではないみたい。

新規 VM を作るときに install 用の iso を最初から指定していると何故か途中で止まるという現象が発生したので、まずは空の「後で OS をインストール」を選択して空の仮想ハードディスクを作ります。ゲスト OS の選択では Windows7 x64 とかでよさそう。 VirtualBox 4.1.4 だと Windows 8 も選択肢に現れるのだけれど VMware Player 4.0 では Windows 8 は選択肢に無いので。

後は、ハードウェアのカスタマイズでメモリーの割り当て等適当に設定たのちに、仮想マシンの再生を実行。当然、 OS が無いよと言われるので、「CD/DVD の設定を変更」で ISO image file を指定して、「仮想マシンを再起動」。後は言われるがままというか、普通にインストールするだけ。アカウント情報は local のものを作成するか live ID を使うか、現状はどちらでも大した違いはないのかな。

うちの環境 (iMac で bootcamp の Windows 7) だけかもしれないのだけれど、 VMware tools をインストールすると Windows 8 に login した後に画面がブラックアウトしてしまいます。ディスプレイドライバー周りでしょうけど。

以下、適当に取ったスクリーンショットをペタペタ

2011-10-05

PhoneLauncher と COMException とID_CAP_PHONEDIALER

.NET の開発に慣れている人だったら、考えるまでもないことなのだろうけど、 PhoneLauncer.Show() で COMException が throw され落ちてしまい、なんでかなと少し悩んだ。

おそらくはパーミッション (Capability) 関係だろうというのはわかっていたので、 WMAppManifest.xml の <capabilities> を眺めて結局は <capability name="ID_CAP_PHONEDIALER"> を追加することで動作するようになった。

それは良いとして、もう少し直接的なエラーメッセージなりログなりを取得することってできないものかしらん。例外の詳細を見てもよくわかんないのよねー。