2013年8月29日木曜日

IBM WebSphere MQ管理コマンド一覧(チートシート)

引っ越しました

2013年8月27日火曜日

pebbleからの手紙(発送完了の連絡)

その後、再びpebbleからメールが届きました。
発送連絡のようです。


==========================================================================
Your Pebble has shipped!

Hello kokoro,

Your Pebble eSmart Watch has shipped! The tracking number is XY012345678AB. To lookup the status of your shipment, visit singpost.com/, select "Track Item" on the left menu and enter the tracking number. If the status shows as having left Singapore, select your destination country from the drop down menu and re-enter your tracking number on the website you're re-directed to.

NOTE: Not all countries have door to door tracking available. Please allow approx. 24 hours for SingPost to start populating the tracking information.

Get started with your Pebble at go.getpebble.com. If you have any questions, or need help, visit help.getpebble.com.

Please email us at order@getpebble.com with any questions about your delivery. For technical questions about Pebbles that have been delivered, contact Support from the Pebble app or email support@getpebble.com. We apologize for any delayed responses as we are experiencing higher than normal email volumes.

Thank You,
 Pebble Team

******************

こんにちは ココロ!、

あなたのペブルeSmartウォッチは出荷しています!
追跡番号がXY012345678ABです。
あなたの郵送物の状態を検索するには、続きはWEBで!
ステータスがシンガポールを去ったと表示されている場合は、ドロップダウンメニューから目的地の国を選択し、あなたがにリダイレクトしているウェブサイトにあなたの追跡番号を再入力します。


あなたの配信についてのあらゆる質問にorder@getpebble.comメールでお問い合わせください

ありがとうございました
 ペブルチーム
******************

追跡を早速WEBで見てみたのですが、まだ記録がない。。
更新が遅いのかな。。

それにしても到着が楽しみ~ ^^
早く到着しないかな。。

IBM Java : heapdumpを任意のタイミングで出力する

引っ越しました

IBM Javaでプロファイリングツールを使うには

引っ越しました

http://kokorona.com/wp/it/ibm_java_profiling_tool/

2013年8月22日木曜日

pebbleの 発送準備完了メールがキター!

pebbleから、発送準備完了メールが来ました!
待ってました! 嬉しいっ!!

【メール原文】
We held your spot in line. But we can't hold it for long.
kokoro, you displayed impeccable taste reserving a Pebble, the original smartwatch. It's been a long wait and we're thrilled to announce a fresh cache of Pebbles newly arrived from our watchery.
There are only 5000 Pebbles left in reserve, but you get first dibs! Pebbles do come to those who know a good thing when they see it.
Click the button below to claim your Pebble — bragging rights are on us.

【かなり意訳】
pebbleができたよ~ん! でもね、早く注文しないと、すぐなくなっちゃうよ。
その数 5000 !
今回も、pebbleは、すんごい いい出来だよ。
早く買って、友達に自慢なんかしちゃってよ!


・・・そういうわけで、すぐに注文しちゃいました。
予約したのが 6月上旬で、発送準備完了が 8月下旬。
2か月半かかった計算ですね。
本当に待ちました。

早速クレジットカードで決済。
早く届かないかなぁ。。

DB2でGRANTするときの注意事項

DB2で、テーブルに対するselect権限を付与しようとして、以下のSQLを発行
GRANT SELECT ON view_dept_201 TO mgr200;

でも、エラー・・↓

DB21034E  コマンドが、有効なコマンド行プロセッサー・コマ
ンドでないため、 SQL
ステートメントとして処理されました。 SQL
処理中に、次のエラーが返されました。
SQL0104N  "grant to " に続いて予期しないトークン "view_dept_201"
が見つかりました。 予期されたトークンに "<space>"
が含まれている可能性があります。  SQLSTATE=42601

1時間以上調べ、ようやくたどり着いた答えがコレ。


GRANT SELECT ON view_dept_201 TO USER mgr200;

ハイ、USER のキーワードが抜けていました。

Oracleでは要らないオプションなのに・・。
これだからDB2はキライです。

でも、お仕事なので頑張りましょう。

2013年8月4日日曜日

Google Play Game Servicesに自分のアプリを対応する

今年に入って、Googleが、ゲームのランキングや達成(アチーブメント)などを管理するAPIを公開してくださったようです。

Google Play Game Services - Take your games to the next level
https://developers.google.com/games/services/

嬉しいっ!

過去にも(今でも)こんなサービスやってる会社がいくつかありましたが、どっかに統合されたり、広告が出たりいろいろ問題ありました。

天下のGoogleが無料でこれを公開してくれれば鬼に金棒です。


そういうわけで、早速組み込みを行いました。



「論よりRUN(プログラムを実行)」といいます。(・・と最近は言いませんが)
まずはサンプルの実行です。
https://developers.google.com/games/services/android/quickstart

これは、それほど問題もなくできました。
基本的に英語力だけはそれなりに求められますが、最近は日本語の情報もあちこちあるので、そちらに譲るとします。

でも、、、

これを自分のアプリケーションに組み込むとなると、話は別でした。
Google Play Game Servicesに、自分のアプリケーションを対応させるのは、私はそれなりに苦労しました。


基本的なやりかたは、以下の通りなんです。

組み込み手順(英語)
Initializing Your Games Client in Android
https://developers.google.com/games/services/android/init


で、この通りやったのですが、なかなかうまくいきません。

自分のアプリの MainActivity.java の継承元クラスをActivity から BaseGameActivityクラスに変更するだけで、アプリの起動ができなくなってしまいます。

私は少しずつ修正して問題ないのを確認しながら進めていくタイプなので、ここで止まっていたのですが、他の設定を行わなければ起動できないという状況は改善されないことが、あとになってわかりました。

私の場合は、Google Play Game Services をEclipseにインストールした際、各種ライブラリがアップグレードされ、既存アプリのライブラリのバージョンの不一致による問題と、xmlファイルの設定不足が足かせだったみたいです。


私と同じようにうまくいかない方は、以下を参考に、ひとつずつ確認してみることをオススメします。
ほとんど自分用のメモですが、参考になれば幸いです。


■ビルドパスの調整
Eclipse パッケージエクスプローラで、自分のアプリのプロジェクトを
右クリック - プロパティ - Android
画面下部の「ライブラリ」に google-play-services、 BaseGameUtils  を追加
(Is Libraryにチェックをつけない)


■MainActivity.java に importを追加

import com.google.example.games.basegameutils.BaseGameActivity;


■MainActivity に、参照するクラスを追加

// 継承クラスを変更
before : public class MainActivity extends Activity
after  : public class MainActivity extends BaseGameActivity {


■必須メソッドの自動生成

  1. @Override
  2. public void onSignInFailed() {
  3. // TODO Auto-generated method stub
  4. }
  5. @Override
  6. public void onSignInSucceeded() {
  7. // TODO Auto-generated method stub
  8. }


■以下メソッドも追加
  1. // サインインチェック処理
  2. protected boolean isSignedIn() {
  3. return mHelper.isSignedIn();
  4. }
  5. // googleサインインボタン押下時
  6. @Override
  7. public void onSignInButtonClicked() {
  8. // start the sign-in flow
  9. beginUserInitiatedSignIn(); // サイン・イン
  10. }
  11. // googleサインアウトボタン押下時
  12. @Override
  13. public void onSignOutButtonClicked() {
  14. signOut(); // サインアウト
  15. }
  16. // ゲームクライアント取得
  17. protected GamesClient getGamesClient() {
  18. return mHelper.getGamesClient();
  19. }
  20. // 順位表示ボタン押下時処理
  21. @Override
  22. public void onShowLeaderboardsRequested() {
  23. if (isSignedIn()) {
  24. startActivityForResult(getGamesClient().getAllLeaderboardsIntent(), RC_UNUSED);
  25. } else {
  26. showAlert(getString(R.string.leaderboards_not_available));
  27. }
  28. }
  29. // 達成度表示ボタン押下時処理
  30. @Override
  31. public void onShowAchievementsRequested() {
  32. if (isSignedIn()) {
  33. startActivityForResult(getGamesClient().getAchievementsIntent(), RC_UNUSED);
  34. } else {
  35. showAlert(getString(R.string.achievements_not_available));
  36. }
  37. }

■AndroidManifest.xml の修正

 application セクション内
        <meta-data android:name="com.google.android.gms.games.APP_ID"
            android:value="@string/app_id" />


■ids.xml を記載(そういえば、私はこのファイルを今回初めて作りました)

app_id(Developer Consoleで確認) を、ids.xml に記載します。
その他、必要な値を設定します。
TypeANumberをコピーしてきて修正するのがオススメです。

 values\ids.xml を準備
    <string name="app_id">789779522XXX</string>


■android-support-v4.jar の最新化
既存のアプリに Google Play Game Services を組み込む場合、ライブラリのバージョンが上がっている場合があります。
その場合、ライブラリを新しくする必要があります。
私の場合、android-support-v4.jar が新しくなっていたので上書きコピー。

■レイアウトにログイン・ログアウトボタンを追加
これも TypeANumberを参考にするのがオススメです。
<!-- sign-in button -->
<com.google.android.gms.common.SignInButton
    android:id="@+id/sign_in_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<!-- sign-out button -->
<Button
    android:id="@+id/sign_out_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sign Out"
    android:visibility="gone" />   

■■■
ここまでで、ビルド・実行して、今までの処理が問題なく動くことを確認します。
動いたら、Developer Console の ゲームサービスから、自分のアプリを登録します。
登録の手順は、やっぱり TypeANumberを参考に。

そして、ようやくメインの処理の追記に入ります。

■スコア送信処理の追加
myLeaderBoard_ID : Developer Console の ゲームサービスで登録したときに取得したリーダーボードのID
myScore : 送信したい点数

  1. if (isSignedIn()) {
  2. getGamesClient().submitScore(myLeaderBoard_ID), myScore);
  3. }

■リーダーズボードの表示処理
  1. if (isSignedIn()) {
  2. startActivityForResult(getGamesClient().getAllLeaderboardsIntent(), RC_UNUSED);
  3. }

健闘を祈ります!


蛇足ですが、

私の場合は、project.propertiesも調整しました。手動編集しちゃいけないっぽかったですが、TypeANumberが動いたときの設定と比較した結果、差異があったので、直しちゃいました。

【修正前】
android.library.reference.1=../google-play-services_lib
android.library.reference.2=../BaseGameUtils

【修正後】
android.library.reference.1=../google-play-services_lib
android.library.reference.2=..\\BaseGameUtils