2011年9月8日木曜日

かっぱ巻きLTの作り方メモ

かっぱ巻き行ってきた。
楽しい読書会と言うか、勉強会と言うか、まぁ、すごく楽しかった。

最終回ということもあって、ちょっと調子にのってLTしてみた。
立候補さ、ふふん

で、LTねたを作ってたとき、ちょっと気づかされたことがあったので、まとめておこうかな。
ちなみに、作ったスライドはこっちねw
興味があったらどぞ
https://docs.google.com/present/edit?id=0ASkUIbcN-11GZGdjN3htM3JfMjloZjlya3ZkMw&hl=ja


ねた作りにマインドマップを使ってみた。
久しぶりに書いてみたけど、面白いねぇ。
絵かいたり、色ぬったりはしなかったけど、シナプスつなげていくのは面白い。
考えていたことの再現が簡単だったような気がするね。

いま、マインドマップはブラウザでかけちゃうんだけど知ってた?
EasyStepってゆーんだけど、興味があったらどぞ


本番前々日

LTは5分
最初は思いつくままに広がっていった
まぁ、ここで制限すると、小さな話になっちゃいそうだったんでとにかく広げた
最初に選択するサイズを間違っちゃって、おおきくとびだしたけどねw

頭のなかにあったねたを書いていくと、追加ねたが出てくる
メモ代わりに追加

LTには自己紹介があったっけ、とゆーことで、自己紹介も追加
導入部なんで、軽めに、ちょっと面白いのとかいれて

この時点で、ストーリーはまったくできてなくて、ちょっと不安だったりした。

とりあえず、一晩寝かせた。


本番前日

前日に作ったマインドマップを開いて俯瞰してみた
前日考えていた内容がおおよそロードされる

全体を見て、どんな順番で、どの辺を話していくか検討

最初の自己紹介は決まっているので、ここは迷わず
自己紹介で剣道やってることを伝えて、剣道の話にもってく
「こわい」をキーワードにして、プロジェクトの話につなげて

・・・オチがない

けど、スライドは作っちゃお
とにかくスライド作り

実はLTはこれが初めてなんだけど、プレゼンはしたことが無いわけではない。
ここでは通常のプレゼン資料的な作り方をした
1枚のスライドに、たくさんしゃべる内容を書いてくっていうやつ
なれてる方でやって、とにかく考える方に重点をおきたかったので
書きやすさ優先で、LTにこだわらず作ってみた

でもオチが・・・

不安を抑えつつ、スライド作り
頭にあるものをとりあえず書き出していくんだけど、
フシギなもんで、スライドを作っているうちに、ストーリーが浮かんできた
ストーリーがあれば、オチも考えやすいってもんさ

手を動かすって重要!
  • ストーリーにあわせて、スライドの移動
  • 足りないスライドを追加
  • いらないスライドの削除
  • まよったら、マインドマップを俯瞰
こんな感じでサイクルしてたら、初版完成!

オチもきれいにまとまって、これなら安心

あ、でも、あんまり剣道寄りなのはどうかな、とか、これじゃあきれいすぎるとか、なやみも尽きず

ちょっと無理やりつながってる部分もなくはないけど、いったん完成


本番当日

寝て起きると、本番当日
いやいや、緊張しますなw

頭の片隅にずっとLTが張り付いている感じ
ちょっと時間があると、ねたについて考えてるの、ちょっとわらったwww

で、ひらめきますよ、そんなときは!
前日作ったLT、全体的にぼやっとしてる、と思った。
内容がプロジェクト全体に広がっていて、聞く人がどういう場面を想像するかが想定しにくものになっている気がした。

そこで、見直し

もっと場面を絞ることにした。
剣道ねたは、怖い瞬間を打ち込まれるときに限定
プロジェクトねたは、進捗失敗のときの報告に限定

そうすると、全体がきゅきゅっとしまる感じがして、良いのではないかと

このとき、スライドをLTっぽくしていった
分割して、文字を大きくして

5分で話せるボリュームになっているか、最終確認
よし!ぴったり
いや、ほんとに、ぴったりだったんだって。

発表のこととか、反省とかは、また次回で。

2011年9月5日月曜日

第3回スマドラ会議

月に一度の開催となってきましたが、どうにか参加してきました。

今回は、リアルなお知り合いがゲスト参加しました。
のに、遅刻しました。すいませんm(_ _)m

ゲストは帰るころには正式に加入しました。


パッケージ変更

前回からかなりクラス構成がかわったBump Recorderですが、さらにパッケージが変更になりました。
コアの計算部分は、やはり簡単には手を入れられないので、コアな部分とその他の部分をきっちりわけて、パッケージ化しました。
これでUI部分とかアップロード部分とか、機能単位でソースに手を入れることが簡単になりました。


画面への要求固まる

今回は画面への要求がはっきりとした形になったところが大きな前進でした。
前々からグラフ表示したいよね、と語られていたものの、イメージが固まらなかったのですが、画面のイメージと要求がドキュメントになりそうなところまで到達です。
お仕事のときには、吸収して書き出すだけなので、あまり大変だとおもったことがないのですが、自分たちで作っているときって、結構ドキュメントになりにくいのね。


やることリスト作成

みんなで進めていくには、やっぱり必要かな。
今回の打合せで出てきた要求をまとめて、担当者を振ってみました。
だんだんシステム開発的な感じになってまいりました。
トラッキングできると良いのですが、XP-Devであとからトラッキングを追加する術がみつからず、あえなく断念。一旦エクセルで管理することにしました。


横で表示すると起動しないバグ修正

これは初参加の方が発見したバグですが、タブレットで横表示している状態でBump Recorderを起動させると起動しないというバグです。
これは結構苦労したみたいですが、なんとか修正されました。
これも大きな成果です。

ちょっとよくわかっていないのですが、onCreateイベントが横方向のときに限って2度発生していることが原因のやうでした。
では、なぜダブってイベントがコールされたのか?

理解していることを列挙すると、

  1. 横方向でアプリが起動する
  2. onCreateが発生する
  3. その後、onPauseが発生する
  4. 別アプリが立ち上がったときのために、ここでfinish()していた
  5. またonCreateが発生
onPauseでfinish()したのがいけなかったようで、この処理をなくしたら、縦と同じように動作しました。
横にしていると、どこかでonPauseが呼ばれるのかしら?
難しいですね。


スマドラの情報はこのページを見てくださいね。
https://sites.google.com/site/smartdrivemeter/home
   
それではぁ~

2011年9月2日金曜日

eclipseの謎

もしかしたら、簡単なことなのかもしれないけど、ちょっとなぞな現象が発生したので、めも。
だれか同じことで困ってっかもないからさ。

現象

  • インポートしたプロジェクトがコンパイルできない
  • type java.lang.Object cannot be resolvedとか出る


原因

  • これっていうのはないけど、エラーが出る前にやったことは以下の通り
  • eclipseのworkspaceに設定されているディレクトリを~/workspace/eclipseにしたままで、対象のプロジェクトの格納ディレクトリを~workspace/androidにリネーム
  • その後、~/workspace/eclipseを新たにmkdirしたことが原因ではないかと思われる。

全然違うかもしれないけんど


対応

  • 新しいプロジェクト(JavaでOK)を作って、コンパイルして実行した


本当に治っているのかどうかは不明
とりいそぎ、メモってことで

2011年8月31日水曜日

[Android]Local Service

ああ、またブログかいてない・・・orz

気を取り直していきましょう!

今回はAndroidねた。しかもサービス。
これ、よくわかんないんだよね。なので、自分まとめ。

そもそも、ServiceはLocalとRemoteとあって、Remoteはいろいろ面倒らしい。
Serviceがよくわかってないので、簡単なほうから着手。

Serviceの特徴?
  • 状態は3つ
    • onCreate
    • onStartCommand
    • onDestroy
  • 生きている期間は、動き始めるときの号令の掛け方によって違ってくる
  • 号令の掛け方は2つ
    • startService
    • bindService
  • startServiceで始まった場合は、
    • 起動後はActivity側からの口出しはお断り
    • 号令をかけたActivityがいなくなったて平気
  • bindServiceで始まった場合は、
    • bindでつながってる
    • つながってるから、Activityから口出しできる
    • つながってる間だけ生きられる。
    • つなりが切れちゃうと死んでしまうなぁ
  • Service -> Activity の口出しはいつでもできるけど、Intent使ってね

サンプルないとだめかな?

2011年8月17日水曜日

64bit ubuntu adbが動かなかった

いつまでも古いPCでAndroidでもないので、新しいPCにAndroid環境構築。
新しいPCは64bit。
ま、あまり影響ないよね、と油断してたら、adbまわりでエラーがでた。

ADTインストール中にも、adb kill failureとか見たような気が・・・
すんだ事を気に病んでもしかたがない、ポジティブシンキングで行こう!

症状は、エミュレータ作成しようとするとエラーになって作れない。


tools/mksdcard: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Failed to create the SD card.
Failed to create sdcard in the AVD folder.

libstdc++.so.6?

ldd adb 実施。なにが足りないのか、分かるかな。

linux-gate.so.1 =>  (0xf779a000)
librt.so.1 => /lib32/librt.so.1 (0xf7781000)
libncurses.so.5 => not found
libpthread.so.0 => /lib32/libpthread.so.0 (0xf7767000)
libstdc++.so.6 => not found
libm.so.6 => /lib32/libm.so.6 (0xf7741000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7725000)
libc.so.6 => /lib32/libc.so.6 (0xf75ca000)
/lib/ld-linux.so.2 (0xf779b000)

libncurses.so.5
libstdc++.so.6

両方分かりませんが。
ググったら、g++-multilibが必要らしい

インストールした。

Ubuntu ソフトウェアセンターで、「g++」で検索したら、いくつか出てきた。
ぐぐる先生の言う通りに g++-multilibと書いてあったものをインストールした。

ldd adb よもう一度。

linux-gate.so.1 =>  (0xf7728000)
librt.so.1 => /lib32/librt.so.1 (0xf770f000)
libncurses.so.5 => not found
libpthread.so.0 => /lib32/libpthread.so.0 (0xf76f5000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf760a000)
libm.so.6 => /lib32/libm.so.6 (0xf75e4000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf75c8000)
libc.so.6 => /lib32/libc.so.6 (0xf746d000)
/lib/ld-linux.so.2 (0xf7729000)

libncurses.so.5が相変わらずない。

普通にncursesをインストールしてもダメ。
上のldd結果をよーく見ると、/lib32というのが見えますね。
32bit版が必要なのです。

そこで、32bit版のncurses5を探します。

Ubuntuソフトウェアセンターにはありません。
探し方が悪いかもしれませんが、ないのでコマンドで。

apt-cache search ncurses

おぉ!たくさんある。

apt-cache search ncurses | grep lib32

これでOK
見つかったncursesの32bit版をインストール

sudo apt-get install lib32ncurses5

linux-gate.so.1 =>  (0xf774f000)
librt.so.1 => /lib32/librt.so.1 (0xf7736000)
libncurses.so.5 => /lib32/libncurses.so.5 (0xf76fd000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf76e3000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf75f8000)
libm.so.6 => /lib32/libm.so.6 (0xf75d2000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf75b6000)
libc.so.6 => /lib32/libc.so.6 (0xf745b000)
/lib/ld-linux.so.2 (0xf7750000)

お、全部埋まった。

エミュレータ作成・・・成功!
動くかな
エミュレータ実行・・・まさかの失敗。

SDL init failure, reason is: No available video device

なんと!
しらべていったら、32bit版のライブラリがいろいろ足りないらしい。
そんなときは、ia32なんていう便利なものがあるので、いれるといいよ。

sudo apt-get install ia32-libs

よし、エミュレータ実行

動いた!
64bitっていろいろこまかく発生するねぇ

動いてよかった。


2011年8月11日木曜日

LogCatにログが表示されていなければDevices

あるとき、ログがLogCatに表示されていないことに気づいた。

サンプル作りばかりやっているので、基本的にToastを使っていたので気づかなかった。
めずらしくLogを使ったので、ログ表示したら、こんなことになっていた。

あら?

Google先生に聞いてみました。

解決方法は、Devicesでエミュレータを選択する、とのこと。
あー、選択するとは思ったけど、LogCatにそんなのないなぁと思っていたら、Devicesかぁ・・・

Devicesは、メニューバーの Window -> Show View でダイアログを表示、それから、Androidカテゴリをクリックすると、出てきます。
なれないうちは、便利機能を見逃すよねぇ


2011年8月8日月曜日

AmaterasUML

チンさむアプリソースから、現状をクラス図とシーケンス図におとした。
前々から使用しているツールを使った。
とっても使いやすいし、コード読みながら書くと、けっこうちゃんと読むので重宝している。
文章とか絵とかからモデリングしていくのも好きなんだけど、コード読みながら書いていくのも好きなんですよ。

ところで、チンさむは個人のものではないので、UMLなんてやってない方もいらっしゃるかも知れない。
それに、正確に詳細にしようとすると、手作業は面倒だ。

せっかくeclipse使ってるわけだし、プラグインでも探すか!

で、やってきました。

とりあえず、みんな使ったこと無いので、フリーの先頭のものをチョイス。
スケッチ的に使えるみたいなのも好みなので。

さっそくインスコ・・・と行きたいとこですが、ちょっと手順あり。

1.GEFインストール

AmaterasUMLはGEFが必要とのこと。
GEFはGraphical Editing Frameworkのことらしい。
まずは、こいつをインスコ!

いつも通り、Installダイアログを召還

Help -> Install New Software...

Installダイアログをだしたら、すべてのサイトを選択して、GEFをみつけるべし!

[Work with:]--All Available Sites--
[Name]Graphical Editing Framework GEF SDK


2.AmaterasUMLインストール

ご本尊です。拝んでくださいw

これは、ここからダウンロード。
ページ前半にあるダウンロードのところから、AmaterasUML_1.3.2.zip(2011/8/7現在)をダウンロードする。
解凍すると3つファイルがあるので、eclipseのdropinsへコピー。
直下でも良いけど、気持ち悪いって人はフォルダを掘ってちょうだい。
たとえば、AmaterasUML_1.3.2/eclipse/plugins とか。
eclipse/pluginsは必須なので、お忘れなく

コレでいんすこ完了っす。


使い方を簡単にめも

File -> New -> Other といって、AmaterasUMLからダイアグラムを選択して、UML開始!
ここにAmaterasUMLがないというあなた!
いんすこ失敗です。
失敗の原因になりそうなのを列挙しましたが、nouzui2007は失敗しなかったので、想像です。
  • GEFいんすこしましたか?
  • dropinsフォルダにjarをコピーしましたか?
  • dropinsフォルダ下に、フォルダ掘った人は、eclipse/pluginを掘りました?
楽しいUML Lifeを