2015年7月2日木曜日

[Android] GCMの導入方法

GCMのsampleを試してみました。
下記参考に実施。
http://yuki312.blogspot.jp/2015/05/google-cloud-message-30-quick-start.html
https://developers.google.com/cloud-messaging/android/start

基本的にはYukiさんの説明通りの手順でAndroidでGCMが動くところまで
確認できました。
下記個人的に少し引っかかったところをメモ。
▼一点目
$ git clone https://github.com/googlesamples/google-services.git
上記実施した後にAndroid StudioではFile>Import Projectにて下記を指定。
google-services/android/gcm

▼二点目
Configurationファイルは
https://developers.google.com/cloud-messaging/android/start
から入手。

以上です。

2015年6月12日金曜日

[Android] Crittercismの導入方法

クラッシュログ解析ツールCrittercismを利用してみました。
下記参考に実施。
http://docs.crittercism.com/ln/jp/quickstart.html#quickstart-jp
http://codenote.net/android/2128.html
http://masterka.seesaa.net/article/420356373.html
導入は本当に簡単でした。

唯一つまったのが下記くらい。
Crittercism.initialize(getApplicationContext(), "CRITTERCISM_APP_ID");
上記の
CRITTERCISM_APP_IDは
https://app.crittercism.com/developers/crash-summary/XXXXXXXXXXXXX
の場合XXXXXXXXXXXXXに置き換えるようにすること。

以上です。

2015年6月5日金曜日

gradlewコマンドで> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable. が出たときの対処法

android studioのgradlewコマンドで
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
が表示されエラーとなった。

対処として下記サイトが参考になった。
http://android.benigumo.com/20130816/android-studio-0-2-4-%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%A7%E3%80%8Csdk-location-not-found-define-location-with-sdk-dir-in-the-local-properties-file-or-with-an-android_home-e/

基本的に記載してある通りだが、
sdk.dir=/Applications/Android Studio.app/sdk
上記赤字部分はandroidSDKの配備場所を設定しないと私の場合はエラーが解消しなかった。

以上です。

2015年6月4日木曜日

2015/7/1 うるう秒への対応

2015/7/1のうるう秒挿入に向けていろいろ調べました。

下記サイトが大変参考になった。
http://www-06.ibm.com/jp/linux/tech/doc/0019db89.html
筆者が重要に感じたポイントは赤で記しておきます。

▼『うるう秒』が発生するという情報はNTPプロトコルによりLinux Kernelに伝えられる。
▼NTP パケットに含まれる LI(Leap Indicator)が『うるう秒』に関する情報を示す。
▼LIの値は下記のいずれか。
00 『うるう秒』調整は発生しない
01 正の『うるう秒』調整が発生
10 負の『うるう秒』調整が発生
11 『うるう秒』についての情報を持っていない
▼Leap Indicator の値は NTP プロトコルに従って、
上位の NTP サーバーから下位の NTP サーバーへと自動的に伝達されていきますので、
通常は最上位(Stratum 1)の NTP サーバーに対してのみ、手動で Leap Indicator を設定される
▼Linux で使用されている NTP デーモンは、上位の NTP サーバーから受け取った Leap Indicator を Linux Kernel に伝達する。
『うるう秒』の調整が実際に行われるのは、1月1日もしくは7月1日と定められているため
Leap Indicator が 01 もしくは 10 であったとしても、
受け取った日付が1月1日もしくは7月1日の前日でなければ、Linux Kernelには伝達しない。
一方下位の NTP サーバーには、受け取った日付に関係無く、Leap Indicator の値は配信される。 
NTPデーモンがstepモードの場合、Linux Kernel は Leap Indicator に応じて、当日の 23:59:58 ~ 00:00:00 の間のシステムクロックを以下のように変化させる。
Leap Indicator が 01 の時 23:59:59 → 23:59:59 → 00:00:00(23:59:59 が2秒間続く)
Leap Indicator が 10 の時 23:59:58 → 00:00:00(23:59:59 がスキップされる)
NTPデーモンがslewモードの場合、うるう秒の到達はシステムクロックに通知されず、ゆっくりと時刻の修正が実施される。
ただし一部の古いバージョンのntpでは、slewモードでも、stepモードと同様にうるう秒の挿入を実施するため1秒以下の単位では時刻の逆進が発生する場合があります。
修正の詳細に関しては下記のBugzillaをご参照ください。該当の修正は、ntp-4.2.2p1-9(RHEL5.2相当)に対して適用されています。
https://bugzilla.redhat.com/show_bug.cgi?id=431729

OSレベルのコンフィグとしてKernelのバージョンを確認の上、
slewモードにしておくのが安全なようです。


以上です。

2013年12月16日月曜日

自動テストプロジェクト 1

目指す環境
jenkins+selenium+uiautomaterでスマホの操作とブラウザでの操作を自動化する。

今回はselenium rcでwebの操作を自動化する話。

以下手順
①selenium IDEでシナリオの作成を行い、htmlで書き出す。
②selenium rcで書き出したファイルを実行する。

①をするにあたりツマッたところ。
・最新のselenium rcのjarファイル(selenium-server-standalone-2.38.0.jar)
だとテスト結果を書き出すファイルを作成できない。
下のやり取りもあるし、バグみたい。
https://code.google.com/p/selenium/issues/detail?id=6704
2.38はダメだよ!って書いてる。

したがい一つ前のversion(selenium-server-standalone-2.37.0.jar)を利用する。

②をするにあたりツマッたところ。
selenium IDEからの実行だと実行スピード調整できるからいいけど
rcだと早すぎてボタン見つからない、ってエラーが出る。
表示に時間がかかるところは

コマンド:pause
対象:3000

とか書いてwaitさせるようにする。



---その他---

はじめ、selenium builderを利用しようとしたが、自分の環境(windows 8 + firefox 25.0.1)だと
selenium builderが起動しなかった。
環境要因??
webdriverが使えて便利みたいだから、またしばらくしたら試してみたい。

以上です。

制御文字、ascii文字のテスト

0x00-0x1Fの範囲および0x7Fはutf-8,shift_jis,asciiともに同じ制御文字を表す。
また0x20-0x7Eは同じascii文字を表す。

mysqlで
SHOW VARIABLES LIKE 'character\_set\_%';
した結果は以下。

+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | utf8   |
| character_set_connection | utf8   |
| character_set_database   | utf8   |
| character_set_filesystem | binary |
| character_set_results    | utf8   |
| character_set_server     | utf8   |
| character_set_system     | utf8   |
+--------------------------+--------+

各テーブルのカラムはutf-8であることが分かる。

IFについてはshift_jisだが0x00-0x7Fについては
utf-8、shift_jisともに同じ文字列なので
正常に処理されるかどうかの確認は0x00-0x7Fを直接挿入すればよい。

したがい下記のようなupdate文をmysqlに対して実施後、
IFをたたけばよい。

UPDATE <テーブル名> SET <フィールド名> = CAST(0x<HEXの値> AS BINARY) WHERE ~

以上です。

jenkins(windows8)でhello world!

windows8でjenkins導入の際にハマったのでメモ。


jenkinsの導入はこのあたり参考。
http://appkitbox.com/knowledge/test/2012/11/12/jenkins-first

導入したのはjenkins-1.542

ツマッたところはシェルの実行をするところ。
上記ページ通りに実行すると下記のようなエラーが表示される。

windows環境だから/bin/shってないんだよね。
設定画面の中ほどに[ビルド]という欄の[ビルド手順の追加]ボタンをクリックし、
[シェルの実行]ボタンではなく[Windowsバッチコマンドの実行]
を選択し、コマンド欄に
echo "hellow world"で保存、実行で正常に挙動しました。



以下参考になりそうなサイトの覚書。

http://dev.classmethod.jp/tool/jenkins/jenkins-refactoring-jobs/
http://qiita.com/mechamogera/items/f689b95670127d5bf046

以上です。