Git tutorial

– How to clone
git clone <repository>

– How to make a branch
git branch <branch-name>

– How to switch to your branch
git checkout <branch-name>

– How to add commit list
git commit .

– How to ommit
git commit -m “<comment>”

– How to switch to master
git checkout master

– How to update master
git pull

– How to send pull request to my branch
git push origin <branch-name>

– How to remove my local branch
git branch -D <branch-name>

– How to remove remote branch
git push origin :<branch-name>

– How to merge from master
git merger origin/master

San Francisco report #1.

会社の研修でサンフランシスコ2ヶ月半の旅にやってきて、やうやう10日が経過しました。というわけで雑感を箇条書きで。

いきなりPick upに失敗
– 飛行機の旅自体は、マヌーさんアドバイスによる「非常口席を選べ」のおかげでかなり快適。
– 空港で案内役に会えず、ドライバーに連れられるまま滞在先に到着。雨の中待ちぼうけ。
– あとでお小言をいただく。
– ドライバーに自分がくるまで待っててって言っておいてくれれば(ry

雨期
– 雨の中、近いというスーパーまで行く。
– 傘が$48という高級品。
– やむなくヒョウ柄の折りたたみ傘$18を購入。
– SF人、傘を差さないらしいことを発見。
– スーパーの袋は紙袋
– 帰り道で雨のため破れる。
– 日本のスーパーの袋最強。
– 寒い。

居住環境
– でかい
– 築100年
– 上司に”Ahaha, その家は haunted だぜ!”とか言われる。
– セントラルヒーティングが動かず寒い
– 午前4時に突然金属のぶつかり合う音とともに起動(2日連続2回目)
– SFでも有数のお金持ちエリア
– 鍵がドアに二個あるが、ひとつはダミー
– ありとあらゆる鍵がかかりにくい。
– 部屋は広いし住み良い。
– でも6部屋しかない。
– ステキな部屋をありがとうございます。
アメリカ人の Cool なパーティションは役に立たない。

お仕事環境
– オフィスまでバスで20〜30分。すわれるので楽。
– でもバスがいつくるのかよくわかんない → Google mapで調べられることを発見。
– 必ず何か食べ物(の残りかす)が落ちている。ex) ナッツ、バナナの皮、ヒマワリの種、チップス
– 最初は通りを示す、電光掲示板が命綱 → でも壊れていることもあるので、リスニング重要。
– オフィス広い。
– コーヒー飲み放題
– 水曜日は朝食パン食べ放題
– みんな親切。とても話が長い人もいる。
– とりあえず Cool が合い言葉。わかったら Make sense ってキメる。
– わかんなかったら単語を繰り返す。またはひたすら Sorry? っていう。
– 近くにフードコートがあるのでごはんには困らない。でもそんなに安くない。$8~$10.

お仕事スタイル
– いわゆる Scrum.
– Scrum master は大変温和。だが英語がネイティブすぎて聞き取れない。
– メッセの代わりにみんな Skype.
– JIRA 便利だけどとっつきにくい。
– Git かっこいいけど、とっつきにくい。
– まあだいぶなれてきました。
– 週の初めにPlanning meeting やって、あとは各自タスクをこなしていくスタイル。
– あんまし日本でやってたことと変わんない気もする。
– Node.js わかんなすぎてごめんなさい。
– Overestimate するな、が自分を過信するな、だったのか、タスクに対して大きく見積もりすぎるな、だったのかいまいち不明なのであとで確認したい。
– Scrum って小さなウォーターフォールってイメージ。
– なので、結局下手すると気合いと残業でカバーみたいになってる。
– そこをフォローするのが Scrum master の仕事なのか。結局エンジニアが自分でなんとかするのか。その辺が不明。
– 気がつくとオフィスに日本人しかいないことがしばしば。
– でもみんな家で仕事してる。のでついついPC起動するともう高度な趣味は仕事と…(ry

勉強会
– MSのmeetupに参加してきた。Roboticsがテーマ。
– 家族連れとかで来てたりする人もいた。
– geek っぽい人たちもいた。
– 前半ちょっと寝そうになった。
– 後半始まる前におフランスの方とお話ししてみた。
– CTOっすかっって驚いたらいや、Founderでねって言ってた。AIがご専門だそうで。
– こっちってとってもエンジニアは学歴社会。法学部出身のエンジニアなんていねーよって会社のひとにもいわれてちょっとへこむ。
– MSのひとのプレゼン、Kinnect を使って、パーティで自動で写真を撮りまくるマシーン。いろいろクレイジーで面白かった。
– 質問力のある人が多い。講演中にも質問をかます。
– みんな講演中はほとんどPC開かない。まじめにきいてる。あれは大事かもと思った。

雑感
– ホームレスの人がアグレッシブ
– 夜はちょっと怖い
– 昼もときどき怖い(単なるびびり)
– 食事のボリュームがでかすぎて、見るだけでちょっと胸焼け。
– Japan town の Daiso まじ最強
– Nijiya のおにぎりおいしい。
– Japanese Curry うまいよやっぱり。
– というわけでそろそろ食事はやられてきております。
– 日本を発ってから -2kg。 SFダイエットに成功。
– 充実野菜($2.5)が命綱の予感。Buy.com でまとめ買いしたい(売ってれば)。
– FaceTime 最強。

落ち込んだりもしたけれど、私は元気です(おおむね)。

How to publish / upgrade Android application on Google Play( former Android Market )

* 日本語版は別途。

Publishing on Google Play ( Android Market ) is very easy. I thought to write knowledge of how to release, but Google has already perfect documents.

@see
Android Developers – Publishing overview

Thus I’ll talk about some check points and my failure story.

1. NEVER lose your keystore file!

As you can read Signing your applications section, ALL Android application must be digitally signed with a certificate whose private key is held by the application’s developer.
And if you want to upgrade your application, new .apk must be signed with a same key.

Unfortunately, my application’s keystore file was override by new one by myself…

It was a simple mistake. When I did upgrading operation, it seemed to be unsuccessful. But in fact, the reason was simply I didn’t put “Upload” button(I was satisfied just upload app on the server. Since I have no friends who has experienced upgrade Android application. During trying some operation, accidentally override old keystone file(Yes I did it!).

As a result, my first application was destined to being version 1 forever…

It was sad result. But fortunately, the number of active installs was only 50.
Then I made a new key, changed package name and released new one immediately.
That’s a my first and biggest failure story.

Of course, I commit the file it to repository and changed owner to root and “sudo chmod 644 hoge.keystore”.
I strongly recommend you to do it immediately if you have not done it.

2.Versioning

As you read Versioning Your Application section, we have to versioning each release in AndroidManifest.xml

Google says first versionCode should be 1. versionName is String, so you can naming it as you like.
And when we upgrade, versionCode have to be larger than before.
If current version is 1, next version is higher than 2. 2 is natural, but you can versioning 200 is also OK. Then when you upgrade next time, the versionCode should be higher than 201.

3. App Install Location

Android devices internal memory is very small. So if your devices are higher than Android 2.2(Currently major version is 2.3.3),
you can install application in SD card.
If you want to allow it you have to change AndroidManifest.xml

@see
App Install Location

Currently my application’s setting is

android:installLocation="preferExternal"

But I think “auto” is more better. I will change it, if it is no problem…

I wil write other tips.

But as Google says, “Before you distribute your application, you should thoroughly test the release version on at least one target handset device and one target tablet device.” it is basically but very important.

At first I have to learn Android Testing framework.

Thanks for reading!