ホーム

きままな日記帳

GingerbreadとICSでのAsyncTaskの挙動の違い

元ネタはこちら。正確にはAPI level 1113以上から違うらしい。

API LEVEL 11以上のAsyncTaskの振る舞いについて – Google グループ

お試しソース。名前とか超適当なのはご勘弁を。

package net.swingingblue.andorid.asynctaskics;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class AsyncTaskIcsActivity extends Activity {

	private static final String LOG_TAG = "AsyncTaskIcsSample";

	private AsyncTask<Void, Void, Void> task1 = new SampleAsyncTask();
	private AsyncTask<Void, Void, Void> task2 = new SampleAsyncTask2();

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		Button button = (Button)findViewById(R.id.button1);
		button.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				task1.execute();
				task2.execute();
			}
		});
	}

	private class SampleAsyncTask extends AsyncTask<Void, Void, Void> {

		@Override
		protected Void doInBackground(Void... params) {
			Log.d(LOG_TAG, "SampleAsyncTask#doInbackground entered.");

			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}

			Log.d(LOG_TAG, "SampleAsyncTask#doInbackground go out.");
			return null;
		}

	}

	private class SampleAsyncTask2 extends AsyncTask<Void, Void, Void> {

		@Override
		protected Void doInBackground(Void... params) {
			Log.d(LOG_TAG, "SampleAsyncTask2#doInbackground entered.");

			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}

			Log.d(LOG_TAG, "SampleAsyncTask2#doInbackground go out.");

			return null;
		}
	}
}

結果。タイムスタンプとスレッド番号に着目。

Gingerbread(API level 10)

01-24 17:39:21.384   340   349 D AsyncTaskIcsSample: SampleAsyncTask#doInbackground entered.
01-24 17:39:21.424   340   350 D AsyncTaskIcsSample: SampleAsyncTask2#doInbackground entered.
01-24 17:39:22.398   340   349 D AsyncTaskIcsSample: SampleAsyncTask#doInbackground go out.
01-24 17:39:22.474   340   350 D AsyncTaskIcsSample: SampleAsyncTask2#doInbackground go out.

ICS(API level 15)

01-24 17:34:51.124   730   743 D AsyncTaskIcsSample: SampleAsyncTask#doInbackground entered.
01-24 17:34:52.179   730   743 D AsyncTaskIcsSample: SampleAsyncTask#doInbackground go out.
01-24 17:34:52.185   730   744 D AsyncTaskIcsSample: SampleAsyncTask2#doInbackground entered.
01-24 17:34:53.190   730   744 D AsyncTaskIcsSample: SampleAsyncTask2#doInbackground go out.

ふむふむ。

ICSではdoInBackground()の中でwaitとかやってたりすると、他のAsyncTaskをexecute()しても動かない、と。まぁ複数スレッドの待ち合わせにAsyncTaskは使わずにExecutors.newCachedThreadPool()とかしろってことですね。

(追記)

task1.execute();

の代わりに

task1.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

とすればlevel 12以前の動作と同じになるみたい。
(追記おわり)

まぁGingerbread上で作ったソースをそのまま持って来てあっさり動くと思ってるとダメなケースがあると。使い方の問題でもあるのだけど。

手軽に自転車が使える、横浜のコミュニティサイクル baybike

オフの日に山下公園を歩いていたら、レンタサイクルのポートを見つけた。

2012-01-16 15.49.03

見ると、ドコモなどが実証実験をしている横浜コミュニティサイクル baybikeというものらしい。

2012-01-16 15.49.31

おお、自転車でブラブラしたかったのでこれは!と思ったのだけど、

・おサイフケータイ持ってない(おサイフケータイがあればその場で登録してスグに使えるらしい)
・会員登録場所がちょっと遠い(馬車道)
・契約形態が月額しか無い(ように見えた。実際は1回105円からのプランもあるようだ)
・横浜にいる間に1度使うか使わないか(休み取れなさそうだったから。何回か使う予定あるなら登録行こうかと思ったけど)
・30分210円って少し高い?(2~3時間乗ると…短時間向けかな)

ということで使わなかった。でもこういうの良いなぁ。実際、説明書きを呼んでる間に、サラリーマンぽい感じの人が乗って行ってたし。

横浜はほかにもレンタサイクルはあるけれど、ちょっとした時間に使うにはこういうののほうが気楽でいいかも。借りた場所で返さなくてもいいし。

オフ日

16日の月曜日、3連休明けにようやく一日オフの日が取れた。

寝不足だったので昼過ぎまで寝たあと、外へ出る。休みと言ってもオンコール待機だったのでとりあえず夕方くらいまでは会社からあまり離れていないところしか行けないなぁと、山下公園あたりをブラブラと散歩。この日は風が強くて寒く、寒い日にわざわざ海辺に来ることもなかったなと後悔。

2012-01-16 15.42.12

ブラタモリに出ていた象の鼻パークも人影も無く…。

2012-01-16 15.57.30
2012-01-16 15.56.59

赤レンガ倉庫も、思ったより小さく中に入っている店も特に珍しいところもなく、ちょっとガッカリ。

2012-01-16 16.03.04
2012-01-16 16.13.07

適当に近場をバスに乗ってみたりして夜になり、さすがにこの時間から呼び出されることも無いだろうと横浜に移動して食事。横浜駅ポルタの「匠~Jang~」で麻婆豆腐麺。そこそこ辛いけど、旨かった。

2012-01-16 19.07.51

さて、ここからどうしよう?と考える。夜から都内に出ても廻れそうなところは多くない。電車もいいけど、バスもまた違う景色が見れるだろうと、適当に乗り物に乗って移動するのが好きなのでYCATから羽田空港行きのバスに乗る。羽田は国際線ターミナルに行ったことが無いので行ってみようと。

展望デッキやショップモールを見て回ったり。第2ターミナルも綺麗で好きだけど、あまり頻繁に飛行機を使わない自分にとっては空港はまだちょっと非日常空間な感じがある。

DSCF1788

DSCF1784

実質半日くらいの休みではあったけど、もう少しのんびりブラブラしたかった…。ちょうど寒い日に当たったのも残念。

出張先で体重計を買う

買ったのは先週だけど。

横浜に出張に来て約半月。毎日の外食、コンビニ飯と会社に缶詰めで運動しないことで順調に太ってきた。

自宅にいるときはほぼ毎朝、体重を量って記録していたので、どれくらい太った痩せたがわかるのだけど、こうして長期出張に来てると何キロ増えたのかが分からなくて気持ち悪かった。

本当は出張前に買っていこうかと悩んでて結局やめたのだけど、やっぱり体重が分からないとせっかく半年かけて10キロ痩せたのが水の泡になりそうだったので、けっきょくヨドバシ横浜で体重計を購入。タニタのスモールスケール、3600円。箱からして小さい。

2012-01-16 02.11.29

持ち運びを考えてのケース付き。

2012-01-16 02.12.10

人が乗れるのかと思うくらい小さい。実際、足の大きな自分は乗ったときにかなり体重計からはみ出るので、バランスに気をつける必要があるけど、もちろんちゃんと計れる。

2012-01-16 02.15.07

計ってみると出張前に比べて3キロちょっと増えてた。半月で3キロ…。外食、運動不足、そして何より食べることしか楽しみがない状況なのが痛い。会社とホテルと往復だけでせっかく関東に来ているのに休日も無いと、食べるくらいしか気分が変わらないんだよね…。

せめてこれ以上は太らないようにして、福岡帰ったらまた減量するようにしないとな。

でもこの体重計は小さいし、重さもなく荷物の中に入れてもかさばらないし、表示も見やすいしけっこう良い買い物だったかも。

疲労蓄積

いやー、しんどい。

風邪が流行っている中でも体調を崩したりはしていないのだけど、体力的に辛くなってきた。

外食やコンビニ飯でついつい食べ過ぎるのもあるせいか、毎日起きると身体が重い。今は食べる以外に楽しみないしなぁ。

朝から深夜まで会社にいるからホテル帰っても食事して風呂入ったら午前2時過ぎとかで睡眠不足ぎみ。じわじわと体に来てる感じ。

予定ではあと1週間のはずだけど、今度の土日も休めるかどうか。もう少し寝る時間が欲しいね。こんなに楽しくない出張も初めてだ。会社から見える景色だけは綺麗なんだけど、実際に足運んだりできないのが悲しすぎる。

DSCF1790

横浜出張が延長

2012-01-13 13.38.54

21日に福岡に帰る予定が28日に延びるのが確定しそう。プロジェクトのキリが悪いから。

横浜に来たときから21日に帰れる状況じゃ無いだろうなとは思っていたけど。1ヶ月くらい滞在することになりそうだ。まぁ自分は特に福岡に無理してでも帰りたいわけでも用事があるわけでもないし、出張生活はスキマ時間を見つけて大したことはしてないけどそれなりに気分転換できているので、延びるには構わないのだけど。

ただ、いまは土日も出勤しているので、もう少しだけ自由時間が欲しいところ。仕事の状況とプロジェクトのコストをかけて出張してることを考えると仕事第一なのはそうなんだけど。もう少し落ち着けば…。

しかし、食事が困る。こんな↓ものやカップラーメン、コンビニ飯ばかりなので身体壊しそうなのは分かってるんだけど、遅い時間に開いてて手軽に食べられるところって限られる…。生魚とか食べたい。

2012-01-14 00.15.01

2012-01-14 23.45.54

まぁローソン100とドンキが徒歩圏内にあるので、小腹が空いたときはカロリー低めのものを食べたり、

2012-01-13 01.59.46

野菜不足をジュースでなんとかならないかなぁと野菜ジュースは常備するようにしたり、栄養サプリメントを飲んだりはしているのだけど。

2012-01-13 02.17.58

あとは運動不足。通勤1分、深夜まで仕事で少しコンビニや食事に寄ってホテルに帰るだけなので運動量が少ない。それで色々食べるものだから太る。福岡なら空き時間に自転車乗り回していたけど、こちらだとそうも行かず。今いるのは桜木町なので関内や横浜まで徒歩で移動するようにしたりしているけど…。

横浜1週間目

横浜出張に来て1週間。

オフの日も無く、朝から晩まで作業。ちょっとした時間を見つけて関内と横浜で出たくらいでほとんど桜木町周辺で生活中。

食べることくらいしか気分転換がないから、外食とコンビニ飯を繰り返してたら早速太ってきたし、いいことないなぁ。帰る時間が遅いので食べるところも限られるし。

こちら横浜は少し寒いものの毎日ほぼ良い天気。ブラブラするには格好の天気ではあるけど、仕事がそれどころじゃないという。予定ではあと1週間滞在だけど仕事にキリが付くのかも含めて、どうなることやら。

2012-01-10 23.20.33

2012-01-09 22.58.27

2012-01-09 00.03.34

会社に缶詰め

年始からの横浜出張も5日間が過ぎる。連休も関係無く仕事。

だいたい半径150mの範囲内にある、以下の場所をグルグル回ってるだけの5日間。それ以外の場所には行けてない。

・会社
・ホテル
・松屋
・ココイチ
・コンビニ
・ダイソー
・ドンキ

会社の窓からは、みなとみらいの景色やら夜景が見えるもののそっち方面へ足を伸ばすこともできず、朝は9時や10時から夜12時近くまで会社に缶詰め。会社からホテルまで1分なので通勤の負担が無いだけマシだろうけど、ホテル暮らしも制約多くて快適とは言いがたい。

プロジェクトの状況が、とても休みを取れるような状態じゃないので分かってはいるのだけどねぇ。天気も良いし、世間的には連休なんだけど、福岡帰るまでオフの日は無いような気がしてきた。

2012-01-07 00.06.38

横浜出張

プロジェクト終盤の追い込みのため、遠隔地で開発していたメンバーが集まることになったので新年早々、今日から横浜に移動しての作業。

休み明けに早朝から移動かつ、そのまま遅い時間まで仕事して初日にして疲れ気味。でも最低3週間はここに留まって作業の予定。ホテルから会社まで徒歩1分で近いのは嬉しいけど、食事が太りそうな物ばかりが周りにあるので困ったところ。

発熱問題

発熱問題の詳細を確認:ARROWS Z ISW11Fは温度が上昇しやすい仕様 – ITmedia +D モバイル

温度上昇それ自体は、おそらくどのメーカーの端末でも多かれ少なかれあるはずだし温度上昇した時に端末の一部機能が制限されるのも存在するけど、簡単に高温になってしまうのはどうなんだろう。

ハード設計側としてはソフトウェア側でクロックの動的制御などでできるだけ回避して欲しかったというのが本当のところかも。Wimaxを絡めた時だけ温度情報が激しそうなところを見ると

温度が上昇しやすい“仕様”であるため、ソフトウェアアップデートなどで改善されることもないとのこと。

というのもあながち間違いでは無いと思う。CPUの高負荷が原因での温度上昇なら一時的にCPUクロックを落としたりして何とかアプリが動くように倒すことができるはずだけど、通信系の場合はそうもいかなさそうだし。

筐体設計とか回路は素人だけど、熱設計とかどうしようも無かったのかなぁ・・・。兄弟機種と筐体をできるだけ共通化するような指示が出ていて、やりたくてもやれなかったのかもしれないけど。

もう文庫化か…「これからの「正義」の話をしよう」マイケル・サンデル

ハードカバー買ったまま読んで無いのに、もう文庫化されてた。

買っても読めそうに無いときに本を買わないほうがいいのかもしれないな。

これからの「正義」の話をしよう (ハヤカワ・ノンフィクション文庫)
マイケル サンデル
早川書房
売り上げランキング: 731

あけましておめでとうございます

2011年のふりかえりエントリも書いたことなので、新年のご挨拶。

去年は公私ともども右肩下がり気味の年で、振り返ってみると何も成果を出せずに時間だけが過ぎていったような一年でした。

今年は自分も35歳という節目を迎え、さすがにもう若いという年齢でも無くなってくるので20代の頃からあまり生活パターンなど変わっていないものを少し変えていこうかと。人生70年として約半分過ぎることにもなりますしねぇ。

そんなこんなで今年もよろしくお願いします。

2011年振り返り(生活編)

2011年振り返り、プライベート編。

・身体
良かったこと:10キロ減量できたこと。7月半ばあたりから4ヶ月くらいで10キロ減。食事と間食をコントロールしたのと、自転車に乗る量を増やしただけ。特にそれ以外の運動やエクササイズはしてない。でも標準体重と比べるとまだ5キロくらい多いらしいのでもう少し頑張るか。12月は食欲復活したりして体重横ばいだったので気を抜かないように。
あとは大きな病気をしなかった。仕事もこの1年は病欠は無かったはず。忙しいプロジェクトほど、突然の病欠で誰か欠けると仕事が回らなくなるので気をつけないと。

悪かったこと:身体のあちこちを痛めたこと。くるぶし(アキレス腱)、肩、首、ひざ・・・。減量始めてから痛めたような気もする・・・筋肉とかも落ちてるのかも?年齢のせいもあるんだろうけど、治りにくい怪我が増えた印象。まぁ30代半ばに差し掛かろうかって年齢だし。

・住居
11月に部屋を借りて、少しずつ荷物を移動中。いちおう暖房と布団はあるのでこの季節でも寝ることくらいはできる。時間のあるときはそこで過ごしたりしてるものの、生活にはほど遠い。本格的に移行するのは春くらいかなぁ・・・その前に家族に言わないとだけど。

・家族
両親の不仲はおそらく手の付けようが無い感じかなぁ。母親のヒステリーも酷くなったし、子供の私がこういうことを言ってはいけないのだけど、親孝行以前に少し距離を置きたい・・・。そういうのもあって2012年は独立、かな。まぁ私のこの年齢で自活して無いのかよって話に尽きるんだけど。

・金銭
大きな買い物もしていないけど、いろいろトータルで計算すると細々とした出費が意外と重なっている。ケチになるわけでは無いけど、使うところ、使わないところを意識するようにはなった。衝動買いとかモノが増える系の買い物はだいぶ減らせた。2012年は貯めることを意識するようにしよう。投資系はやり方が悪いせいもあってか、どうにも上手くいかないので何に手を出すべきか、手を引くべきか検討。

・コミュニティ
仕事が忙しくてほどんと春以降はほぼ参加できず、ネタも提供できず。周りの人たちがいろいろ面白そうなことをやっているのを眺めるだけだったなぁ。Android Make Daysは一参加者だったし、OSCは単にブース番してただけだったし。そんな何も無い自分でも良く接してくれる人ばかりなのが本当に有り難いし、申し訳ない気持ちになる。

・技術スキル
自作Androidアプリを作って公開するつもりが全く手つかず。一応今でもあまり強い競合の無い分野なのでちゃんと作れば使ってくれる人はいるかもだけど、全くスタートラインにも立ってないので口だけ。仕事もAndroidなので仕事に関係しそうなネタはいろいろ収集しててそれなりに生かせたとは思う。でもプライベートからすると、手を動かして何か作った人が偉いのは当然なんで、そこの仲間入りができなかったのは反省点。

Android以外にも目を向けようと、Web技術なども少しだけ囓ったりした。Androidもコモディティ化したので、エンジニアとして生きて行くにはそろそろ他の事も知っておかないと。ただそうは言っても現時点の自分の強みはAndroid周りの知識なので、他の技術との組み合わせとか、あるシステムをAndroid上で実現するとしたらどうすればいいか?などAndroidをベースに他の分野と組み合わせた時にスムーズにアドバイスや設計検討ができるだけの知識を持っておくようにしたい。

2011年ふりかえり(仕事編)

2011年ふりかえり、まずは仕事面。2011年中に書こうと思って気がついたら年を越してた。

1月~3月は…すでに何やっていたか思い出せない。自分のブログ記事を読んでも、長崎でAndroidセミナーの講師をやったの以外にもう一つやっていた案件が思い出せない。読み返すとけっこう忙しい状況だったようだけど…。

2月にやったAndroidセミナーの講師の仕事、1日半くらいずっと人前で話すという初めての経験。事前のセミナー配布用テキスト、当日説明用のパワポと一人で作成・準備することになって、1日半分のボリューム…と思って作ったらけっこうな量に。受講者は企業から有料で来ているという以外スキルレベルも分からない状態だったので、とりあえず実用的なサンプルアプリを作ってもらおうと題材を選んだけれど、実際にやってみると少し難しかったよう。時間はなんとか納めたものの、人に教えたり説明したりすることの難しさを感じた。

これから先、同じような仕事はおそらく無いと思うけど、喋りが下手な自分でもある程度周到に準備すればなんとか最低限の形で振る舞えそうだということは分かった仕事。

3月から先は、今も続く案件。今度の春にサービス開始のとあるものを作っている。

プロジェクト開始前に話を聞いたときから、作るもののボリュームに対してのスケジュールがタイト過ぎるのと、実際に提示された要件定義書などを読むにつれ「やりたい事てんこ盛り」のシステムに寒気がしたのを覚えている。そして3社での分担開発だったり社内でも遠隔地どうしの開発だったり、それぞれの担当分が自分の所を守ろうとしすぎて、誰がどのAPIを呼んでも微妙に使いづらい(=余計な実装が増える)全体構成になったあたりから既に破綻していたのかもしれない。外部にAPIを提供するときに「使う側が使いやすい」設計では無く「自分のところがいかに楽に実装できる」設計にしてしまったのが誤り。

そんな今でもまだトラブル気味のプロジェクトで自分は後方支援的な立ち位置で、調べ物とかアドバイザーとか現場と管理者側の間に立ったりなど。基本設計の途中で各チームリーダーに委譲したあとのフェーズでプロジェクト内の立ち位置が微妙になった感はあるので自分の振る舞い方を失敗したのかもしれない。かといってスペックマネージャになろうとしても仕様が膨大すぎて一人でカバーできる量じゃなかったしな・・・。

しかし、すっかり仕事でコードを書かなくなった。それに伴ってコードを書く感覚は鈍ってきている感じがしてる。コードレビューで人のソースを見てもピンと来るのが鈍かったり、問題を見つけられなかったりとかエンジニアとしてそれはどうなの、という場面もチラホラ。Androidを昔からやってた分、そのノウハウを今は切り売りしてる感じだけど、いつまで潰しが効くんだろうとは感じてる。

そこら辺の穴埋めというか、新しいことの吸収とかいろいろとプライベートな時間を割いてやらないととは思っていたけど、3月からデスマ気味な状態がずっと続いてて時間だけが過ぎてる。

このままだと年齢も上がるし社内的な立場も厳しくなってくるしねぇ・・・。ということで2012年は少しでも挽回したいところ。

デスマは残業代が多少増える以外、人生の時間泥棒だよなぁ。歳取ると本当に実感する。

仕事納め

今日で仕事納め。

会社的には28日で終わりだったのだが、炎上気味なうちのプロジェクトだけ今日まで。年内に必達の指示が出ていた品質目標を達成するために昨日から徹夜で対応したメンバーもいたようだ。

それもこれも開発している物の品質がプロジェクトの進捗に比べて悪いからで要因は内的外的いろいろあるのだけど、納期があと1ヶ月しかないので商用品質まで上げてリリースすることができるかが1月の課題だな…。

まぁ一昨年は大晦日まで仕事をしていたことを思えば、というのはあるのだが、まったくと言っていいほど年末・正月気分じゃ無い。街に出るとなんとなく買い物の人の多さとか店の飾り付けなんかで正月が来るんだなぁというのは分かるのだけど、なんか人ごとっぽく捉えてしまうのね。年始は4日から仕事だし、4日間くらいじゃあんまり休んだ気にならないかもと思いつつ、とりあえず一息つけるか。4日からしばらくは関東で仕事だし。

今年のまとめなどは、また別途。

Page 1 of 23012345...102030...Last »

ホーム

検索
フィード
メタ情報

ページの上部に戻る