アジャイルジャパン2011に行こう!

今年も実行委員やってるので告知します!

4/15(金)に、「Agile Japan 2011」が開催されます。

Agile Japan 2011

海外からリンダ・ライジングさん、USP研究所の當仲さんを招いた基調講演に始まり、
実際の開発現場からの事例セッション、体験型のワークショップと、充実した内容になっています。

今回のテーマは「広がる、つながる、動き出す」です。
一般からの公募セッションや、全国の事例を集めたポスターセッション、IT業界で働く女性のワークスタイルに焦点を当てた「WOMAN'S セッション」など、新しい取り組みを取り入れています。
その中でも特にすごいのが、全国のサテライト開催です。
本会場は東京なのですが、同じ日に、北海道、仙台、富山、名古屋、大阪、島根、岡山、愛媛、福岡、沖縄で各地方の特色を出した、サテライトイベントが開催されます。
基調講演(リンダ・ライジングさん、USP研究所の當仲さん)は中継で共有するものの、その後の時間は、各サテライトの特色を出したイベントが企画されています。

私は大阪サテライト会場の企画を担当しました。
関西でアジャイルの活動に取り組んでいるみなさんから、「この人の話を聞いてみたい!」「あのワークショップを大阪でやってほしい!」という推薦がすぐに集まり、東京に負けないぐらい、充実したセッションが用意できました。
地元でがんばってるみなさんの事例は、一味違ったものになると思っています。また、今後の交流を考えても良い機会になるはずです。関西近辺の方はこの機会に是非お越しください。

ここで大阪サテライトのプログラムを紹介します。

アジャイルジャパン2011大阪サテライトプログラム紹介

  • 「プラクティス・技法を洗練しうまく伝えるためのコンテキスト記述〜 Continuous deliveryを題材に実際に試してみませんか?」
  • アジャイルUX『ユーザテストもアジャイルに行こう!』〜開発者のための"DIY"ユーザテスト入門講座 with マインドリーディング・ワークショップ〜
    • 樽本徹也さん(利用品質ラボ代表,アジャイルUCD研究会)
  • 「『超』ふりかえり 〜 Agile なう #aj11 〜」
    • OsakaStudyNetwork

大阪サテライトの申し込みはこちらです。



僕は自分自身はもちろん、開発者、マネージャ、顧客も巻き込んで、ソフトウェア開発の未来を作っていきたいと思っています。そう考えている人たちは、”アジャイル”というキーワードに可能性を感じていて、社内外の勉強会や、こういったカンファレンスへの参加を通じて、ゆっくりではありますが、実際の開発・ビジネスにつなげてきています。

「日本のアジャイル」を知り、自分で考え、現場で実践する。

アジャイルジャパンに集まり、その流れを参加者全員で作っていきましょう!

Kindle 3 ソフトウェア更新方法

Kindle3Gが最近不安定なので、安定化の期待も込めてversion 3.1 (Early Preview Release) にアップデートしてみました。
「Public Notes」という本の中で気に入った文を選択し、コメントを追加してtwitterFacebookで共有できる機能も追加されてるみたいです。

メモ程度に手順を残しておきます。

更新前のファームウェアバージョン

Home→Menu→Settingsの画面の一番下に書いてあります。
更新前は”3.0.1”でした。


ファームウェアをダウンロード

このページでファームウェアのイメージをダウンロードします。
 http://www.amazon.com/gp/help/customer/display.html/?nodeId=200529700#download

私のKindle3はWiFiモデルなので、これをダウンロードしました。

  • Kindle Wi-Fi: Download 3.1 (Early Preview Release)
    • Your serial number will start with "B008"

シリアルナンバーは、Home→SettingsのDeviceInfoにありますので、対象の機器かどうかを確認しましょう。

ファームウェアイメージをKindleにコピー

PCにKindle3を接続し、ファームウェアイメージをコピーします。

コピーが完了したら、Kindle3をPCから取り外します。

アップデート開始

Home→Menu→Settingsで設定メニューに入り、
さらにMenuキーを押すと、メニューに「Update Your Kindle」が表示されます。

これを選択すると更新処理が開始します。

あとは待つだけ。

アップデート中は何回か再起動をしたりしてますが、放置しておけば終わりました。


バージョン確認

Home→Menu→Settingsの画面の一番下のバージョン番号が新しくなってることを確認します。


Public Notes

更新して、追加されたPublic Notesを試してみました。
英語版の書籍なら、文字列を選択して「Alt+Enter」で、選択部分にコメントを沿えてtwitterFacebookにそのまま投稿できます。
日本語の自炊コンテンツだと、テキスト埋め込みPDFでもダメでした。残念。

全体的に

一日使ってますが、いまのところ安定してます。
本を読むだけのシンプルな端末なのに、こうした細かいアップデートが用意されているのがいいですね。
今後の機能追加も楽しみです。

T-mobile G2はbusyboxが標準で入っている。

T-mobileG2はルート書き換えがちょっとやっかいそうなのですが、busyboxが標準で入っているため、adbのシェル操作や基本的なコマンドは普通に使えます。

入ってるbusyboxのバージョンとサポートメソッド(コマンド)はこちら。

# busybox
BusyBox v1.15.2 (2009-11-27 10:38:30 GMT) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
or: function [arguments]...

BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as!

Currently defined functions:
[, [[, addgroup, adduser, adjtimex, ar, arp, arping, ash, awk,
basename, beep, blkid, brctl, bunzip2, bzcat, bzip2, cal, cat, catv,
chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, chvt,
cksum, clear, cmp, comm, cp, cpio, crond, crontab, cryptpw, cttyhack,
cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, devmem, df,
dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, du,
dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid,
ether-wake, expand, expr, fakeidentd, false, fbset, fbsplash, fdflush,
fdformat, fdisk, fgrep, find, findfs, fold, free, freeramdisk, fsck,
fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep,
gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid, hostname, httpd,
hush, hwclock, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd,
init, insmod, install, ionice, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink,
iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd,
last, length, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap,
logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr,
lsmod, lzmacat, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev,
mesg, microcom, mkdir, mkdosfs, mkfifo, mkfs.minix, mkfs.vfat, mknod,
mkpasswd, mkswap, mktemp, modprobe, more, mount, mountpoint, msh, mt,
mv, nameif, nc, netstat, nice, nmeter, nohup, nslookup, od, openvt,
passwd, patch, pgrep, pidof, ping, ping6, pipe_progress, pivot_root,
pkill, popmaildir, poweroff, printenv, printf, ps, pscan, pwd,
raidautorun, rdate, rdev, readahead, readlink, readprofile, realpath,
reboot, reformime, renice, reset, resize, rm, rmdir, rmmod, route,
rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script,
scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont,
setkeycodes, setlogcons, setsid, setuidgid, sh, sha1sum, sha256sum,
sha512sum, showkey, slattach, sleep, softlimit, sort, split,
start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv, svlogd,
swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar,
tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout, top,
touch, tr, traceroute, true, tty, ttysize, tunctl, udhcpc, udhcpd,
udpsvd, umount, uname, uncompress, unexpand, uniq, unix2dos, unlzma,
unlzop, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock,
volname, watch, watchdog, wc, wget, which, who, whoami, xargs, yes,
zcat, zcip


たとえば、シェルをashにするだけでタブ補完や各種ショートカットは普通のbashっぽく使えますし、シェルスクリプトも基本的な処理は走ります。

  • シェルをashにする。

# busybox ash

その他、viでファイル編集したりはもちろん、httpd,ftpも使えるのでサーバーっぽく動作させるのも容易です。
SDカードやデータパーティションスクリプト置いておけば、起動も簡単でいろいろできそうです。

日本語設定とキーボード入力

日本語設定は無いですが、以下のアプリを入れると日本語環境が使えます。

  • MoreLocale2
  • Simeji

キーボード出したときも入力メソッドが生きます。
Shift+スペースで日本語/英語入力を切り替え。
日本語テキストもPC感覚で入力できます。


フォントの入れ替え

上記手順で日本語化しただけでは、フォントが中国っぽくて違和感があります。


(図1)デフォルトのフォント

いろんなサイトで紹介されていますが、
/system/fonts以下、

  • DroidSans.ttf
  • DroidSansJapanese.ttf
  • DroidSansFallback.ttf

というファイルを、好みのTrueTypeフォントに置き換えたらフォントが置き換わります。

T-mobileG2では、後で示す「VISIONary」という一時的なroot取得ツールで一時的にフォント置き換えはできます。

  • SDカードに、好きなTrueTypeフォントのファイルを保存。(例では、DroidSansJapanese.ttfとしています。)
  • 次のコマンドで置き換え。Zygoteを再起動。

$ su
# busybox ash
# mount -o rw,remount /dev/block/mmcblk0p25 /system
# cd /system/fonts/
# cp /mnt/sdcard/fonts/DroidSansJapanese.ttf DroidSans.ttf
# cp /mnt/sdcard/fonts/DroidSansJapanese.ttf .
# ls
DroidSans.ttf
DroidSansJapanese.ttf
DroidSansFallback.ttf
DroidSerif-Bold.ttf
DroidSerif-Regular.ttf
Clockopia.ttf
DroidSansMono.ttf
DroidSans-Bold.ttf
DroidSansArabic.ttf
DroidSansThai.ttf
DroidSerif-Italic.ttf
DroidSerif-BoldItalic.ttf
DroidSansHebrew.ttf

# kill -9 $(pidof zygote)


ただし、フラッシュファイルシステムへのwriteはキャッシュだけされて実際の書き込みが行われないサービスが走っているようで、電源を切ると元のフォントに戻ります。ファイルシステムにwriteされない分メモリ(RAM)が圧迫されますし、これ以上いじるにはリスクがありそうなので、デモ用途ぐらいで考えると良いでしょう。



(図2)日本語フォントに置き換え

T-mobile G2のadb接続(Linux)

T-mobile G2をLinuxに接続すると次のように認識されます。

makoto@makoto-macbook:~/android/T-mobileG2/report$ lsusb
Bus 001 Device 008: ID 0bb4:0c91 High Tech Computer Corp.


udevd設定して再起動。

makoto@makoto-macbook:~/android/T-mobileG2/report$ cat /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"

makoto@makoto-macbook:~/android/T-mobileG2/report$ sudo /usr/sbin/service udev restart
udev start/running, process 3580


あとは、Android-SDKのtoolにPATH通して、adb関連ツールが使えます。

  • adbシェル起動

$ adb shell

  • DDMS

$ ddms &

T-mobileG2のシステム情報

ダンプ情報いろいろ。

ビルド情報

[ro.build.date.utc]: [1288151710]
[ro.build.date]: [三 10月 27 11:55:10 CST 2010]
[ro.build.description]: [1.22.531.8 CL277427 release-keys]
[ro.build.display.id]: [FRF91]
[ro.build.fingerprint]: [tmobile/htc_vision/vision/vision:2.2/FRF91/277427:user/release-keys]
[ro.build.host]: [AA107]
[ro.build.id]: [FRF91]
[ro.build.product]: [vision]
[ro.build.project]: [155651]
[ro.build.tags]: [release-keys]
[ro.build.type]: [user]
[ro.build.user]: []
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [277427]
[ro.build.version.release]: [2.2]
[ro.build.version.sdk]: [8]

起動直後のmeminfo

# cat /proc/meminfo
MemTotal: 380192 kB
MemFree: 58928 kB
Buffers: 13280 kB
Cached: 169428 kB
SwapCached: 0 kB
Active: 164576 kB
Inactive: 122268 kB
Active(anon): 104284 kB
Inactive(anon): 2080 kB
Active(file): 60292 kB
Inactive(file): 120188 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 259072 kB
HighFree: 2040 kB
LowTotal: 121120 kB
LowFree: 56888 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 36 kB
Writeback: 0 kB
AnonPages: 104144 kB
Mapped: 68576 kB
Shmem: 2228 kB
Slab: 12288 kB
SReclaimable: 4720 kB
SUnreclaim: 7568 kB
KernelStack: 3016 kB
PageTables: 10104 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 190096 kB
Committed_AS: 3818384 kB
VmallocTotal: 778240 kB
VmallocUsed: 104944 kB
VmallocChunk: 636932 kB

パーティション構成

# mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
/dev/block/mmcblk0p25 /system ext3 ro,relatime,errors=continue,data=ordered 0 0
/dev/block/mmcblk0p26 /data ext3 rw,nosuid,nodev,relatime,errors=continue,data=ordered 0 0
/dev/block/mmcblk0p27 /cache ext3 rw,nosuid,nodev,relatime,errors=continue,data=ordered 0 0
/dev/block/mmcblk0p28 /devlog ext3 rw,nosuid,nodev,relatime,errors=continue,data=ordered 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/vold/179:33 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:33 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/block/dm-0 /mnt/asec/com.rovio.angrybirds-1 vfat ro,dirsync,nosuid,nodev,noexec,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/dm-1 /mnt/asec/se.illusionlabs.labyrinth.lite-1 vfat ro,dirsync,nosuid,nodev,noexec,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
none /system/xbin tmpfs rw,relatime,gid=10075 0 0
# cat /proc/emmc
dev: size erasesize name
mmcblk0p17: 00040000 00000200 "misc"
mmcblk0p21: 0087f400 00000200 "recovery"
mmcblk0p22: 00400000 00000200 "boot"
mmcblk0p25: 19fbfa00 00000200 "system"
mmcblk0p27: 0cccce00 00000200 "cache"
mmcblk0p26: 53200200 00000200 "userdata"
mmcblk0p28: 01400000 00000200 "devlog"

T-mobile G2レポート

Android Hacks ―プロが教えるテクニック & ツールの執筆にまで関わっていながら、特にアプリも作って無かったのと、カーネルやルートFSいじるのに便利ということで、ずっとgoldfish(エミュレータ)で遊んでたのですが、ついに実機を入手しました。

[rakuten:earth-mobile:10000257:detail]

高性能でキーボード付なのが購入の決め手です。
欧州版の「HTC Desire Z」(HTC Vision)と中のソフトやフラッシュの容量が違うものの、同等機種と考えられます。
実機の外観などはこちらのサイトが詳しいです。

2日ほど使ってみましたが、3.7インチ(800×480)液晶はきれいだし、タッチパネルの感度もこれまでさわったAndroid端末の中ではかなり良いように感じます。上記サイトのベンチマーク結果でも分かるように動作は軽快。GUIはなめらかで、ゲームも軽快に動きます。そして、キーボードは横長でキーとキーの間が広く、両手で持って親指でタイプするには十分なサイズ。キー配置もクセがなく、気持ちよくタイピングできます。やっぱり文字入力する場面でフルキーボードがあるのがうれしい。特にメールアドレスやパスワード入力場面では英字フルキーボードは強力です。

以下のエントリで開発環境の準備、システムハックまでいろいろ試した結果をメモ程度に残していきたいと思います。