することがすくない

消内の実習中なのですが、先生にすら「3週間…長いねぇw GFとかCFなんて1週間見たら十分なのにw」と言われる始末。
あとはちょいちょいUSとか見させてもらう程度、残りは担当症例のレポート作って終わり。
先生方も忙しいからこちらに構ってる暇もないのだろうけど、それならそれで曖昧な扱いされると宙ぶらりんでつらい。
自分で何とかやること見ること探して細々とやっていく日々。

流される

誰かが「○○したい!」って言ったのに、誘われて、なんとなく乗っかる、そういうのが最近常態化しつつあります。
こいつは誘ったらまあ来る的な評価がついたのは、誘われやすくなったという点で良いとは思うのだけど、少々の不都合があっても目を瞑られることも同じくらいよくあることで、それはあまり宜しくは無いことで。
自分の小さな都合か、複数の他人の都合か、どちらを優先した方が良いのだろうな。ケースバイケースといえばそうなんだろうけど。
現状の道を選択したのは自分で、そうあるべきと思っているけど、たまに少し、立ち止まって考える。心から納得はしていないんだろうな。
いつか、本当に納得できるように、論点を整理してきっちり考えたいです。

あうぢえんせ

昨日は部のライブでした。
俺は出なかったのだけども、観客として盛り上げる、ってのをやってみて、これ大事なんだなあ、って思った。特にこういう小規模な場合は。
ライブにおいては、バンドメンバーは演奏陣だけじゃなくて、観客もそうであるのだろうなあと。

お作法

オープンソースなプログラムを書くときは勿論必須なんだろうけど、知っといたらよりソースを読みやすいだろうなと思って、Androidのコーディング規約を勉強中。


textdrop.net - このウェブサイトは販売用です! -  リソースおよび情報


これまでは自分向けのものばかり作ってるし、分かりにくいポイントだけ「//ここでこんな処理をする」とかコメントつけてるだけだったんだけど、ある程度共通した書き方を知っておけば、整理しやすいのかなと思った。
多少労力がかかるかも知れないけど、こういうスタンダードをちゃんと知っておくのは将来的に大事だと思う。


まず、一番基本となるJavaコーディング規約について。
大元はSunのCode Conventions for the Java Programming Languageなんだけど、いかんせん古いので、比較的最近にできたJavaコーディング規約2004年版を参考にしました。

http://www.objectclub.jp/community/codingstandard/JavaCodingStandard2004.pdf
電通版。一つ一つにサンプルがついてて分かりやすいけど量が多い。
http://www.smg.co.jp/seminar/techsquare/SMG_JavaCodingStandard.pdf
エスエムジー株式会社の製作。上のものと多少違う点がある。ループ変数はi,j,kでやっちゃいかんとか。

賛否両論あるのだろうけど*1、概して合理的なものなんだと思う。まずはこれ読んでから。


Androidコーディング規約では、これに加えていくつかルールを追加してる。多少2004年版と被るところもあったり。
少なくとも、フィールド名とかエラーレベルの項は、読んで知っておいて損はないと思う。

Androidの測位方法について

Android Developerサイトの説明書読んで少しテストしてまとめ。正確なソースや検証ではありません。
基本的な流れは、requestLocationUpdates()を呼んで測位を定期的にチェックさせ、その結果をlocationListenerに返す。
locationListenerは、位置情報が得られた時点で何度でも呼び出される。
requestLocationUpdates()では更新間隔と測位方法を選択することが出来る。以下の三つ。

LocationManager.NETWORK_PROVIDER
WifiとかCell-IDを使った、比較的精度の低い測位。
LocationManager.GPS_PROVIDER
GPSを使った、比較的精度の高い測位。
LocationManager.PASSIVE_PROVIDER
他のアプリとかで測位された場合に、その位置情報を流用。

PASSIVE_PROVIDERは、他のアプリでNETWORKもしくはGPSで測位された場合に、同じ位置情報を貰って返すっぽい。
バックグラウンドで動くアプリで、測位回数を減らして電池を節約したい時に使えそう。


また、NETWORKを使うにはandroid.permission.ACCESS_COARSE_LOCATIONが、
GPSを使うにはandroid.permission.ACCESS_FINE_LOCATIONのUses Permissionが必要です。
FINEのUses Permissionがあれば、GPSもNETWORKも両方使えます。
PASSIVEはGPSの方が要らなくてもFINEの許可が必要らしい。providerはgpsもnetworkも両方返す可能性があるから、getProvider()でどちらかを判別する処理が場合によっては必要かもしれない。


また、どのproviderを使うか自分で選択する以外に、criteriaを指定してgetBestProviter()を使うことも出来る。
こっちのほうが、各機体・状況に応じて最適なproviderを選択できる気もする。ただ、選定に必要な時間とパワーがまだ不明。