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

以上です。

2013年11月26日火曜日

eclipseでプロジェクトフォルダに赤いビックリマークが出たときの対処法

eclipseでプロジェクトフォルダに赤いビックリマークが出たときの対処法

※筆者はdropboxでプロジェクト共有を試みた際に当該エラーが出ましたが
単純にプロジェクトのインポートでも同様のエラーが出ることがあると思います。
ソースコードに問題がない場合【対策】で記載している手順を一度確認してみてください。

【目的】
開発用PC:Aと開発用PC:B間でdropboxを用いてプロジェクトの共有を行う

【事象】
開発PC:Aで作成したプロジェクトをdropboxにコピー後
開発PC:Bにて下記手順実施
ファイル -> インポート -> 既存プロジェクトのインポート
上記を実施し、dropbox上のプロジェクトを指定

このときパッケージエクスプローラ上、
インポートしたパッケージに赤のビックリマークが表示される

【対策】
当該プロジェクトを右クリック -> プロパティ ->javaのビルドパス
上記移動すると外部jarのパスが開発用PC:Aの状態になっていた。
新たに開発用PC:Bのパスを設定することで解決

以上です。