woshidan's blog

そんなことよりコードにダイブ。

Heartbeatとブロックデバイスについて

短いですが、一応何かしら書くぞということで、本を読んでいたら「Heartbeatがスタンバイしたサーバを有効にする」「ブロックデバイスをレプリケーション」と出てきたのが意味がわからなかったのでメモ。 Heartbeat関連 クラスタに関することでハートビート…

Amazon Athenaについて少し調べたのでメモ

まとまってないですが、忘れる前にメモ。 Amazon Athena とは Amazon S3に入ったCSVやJSONをAthena上で定義したスキーマに沿ってSQLで検索できるようにしてくれるクエリサービスです。 Athenaはサーバーレスのサービスで、利用するまでに最低限必要なステッ…

「ライブ配信のなかみ[あれくま]」を読んだ

春の技術書典で手に取った時から、勝手にこの本は自分のための本だ、と思っていたのですが、仕事でバタバタしていまして昨日ようやく読みました。 読み終えてやっぱり自分にとってめちゃくちゃ面白かったので自己満足に感想をおいておきます。 この本を読む…

インテントフラグとActivityStackのふるまいについていくらか

Android の Activity のスタックの振る舞いを設定するものとして、 AndroidManifest.xml に記述する activity 要素の launchMode 属性 Activity を立ち上げる時に使う Intent に付与するインテントフラグ があります。先日、launchModeの話をしたので、今日…

AndroidのCamera2 APIを触ってみた

ちょっと面白そうだったので調べました。 概要 https://developer.android.com/reference/android/hardware/camera2/package-summary.html からざっくり読み取った結果、Camera2 APIでカメラ経由で画像を取得したりする流れをかなり大雑把にいうと CameraMan…

Activityの起動とlaunchModeについて

ActivityのlaunchMode の違いが気になっていたので、公式で推奨されている standard, singleTop についてざっくり整理しました。 launchMode=“standard"、あるいは指定がない場合 Androidのシステムは常に、ターゲットタスク*1内で新しいActivityのインスタ…

NoSQLデータベースファーストガイドを読んだ

NoSQLデータベース ファーストガイド作者: 佐々木達也出版社/メーカー: 秀和システム発売日: 2015/04/14メディア: Kindle版この商品を含むブログを見る 春先にRDBMSの勉強を少ししたのでNoSQLの話も少し覗きました。2011年発行とやや古いのですが、その分一…

Androidの通知チャンネルの振る舞いをプロジェクトのtargetSDKVersionを変えて少し試してみた

Android OのEaster Eggはoctopusでした*1が、OのコードネームはOreoでしたね。さて、Android Oではユーザーが通知をより便利に管理するために通知チャンネルが導入されました。 通知チャンネルがなんたるかや主要な扱い方については公式他に任せるとして、こ…

Android SDK Toolsのバージョンを25.2.xから25.3.xにあげたらcocos runコマンドが実行できなくなった

症状 Android SDK Toolsのバージョンをあげて cocos runコマンドを実行した際、以下のメッセージが出てビルドできなくなりました。 $ cocos run -p android --android-studio Building mode: debug Using Android Studio project : /Users/woshidan/path/to/…

ソフトウェアテスト技法ドリルを読んだ

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際作者: 秋山浩一出版社/メーカー: 日科技連出版社発売日: 2010/10/01メディア: 単行本購入: 7人 クリック: 153回この商品を含むブログ (19件) を見る Web系のソフトウェアエンジニアだとある程度TDDの…

API19, API21のAndroid端末で透過GIFを表示すると、透過色の部分が真っ黒になることがある

stackoverflow.com stackoverflow.com API19とAPI21のNexus 5のエミュで再現。API18以下、API23以上のエミュでは未確認。 透過色を決めておいて、その色の部分を後から透明にするという対応もありますが、他の画像形式を用いてもよいのではないでしょうか。 …

NSURLSessionを使って通信処理を書いてみる

http://woshidan.hatenablog.com/entry/2017/06/18/014734 の記事の続きで、先の記事の中の 2. Foregroundでダウンロード処理を開始する場合は、ダウンロード中にアプリが停止ないし終了してもよいようにそのダウンロード処理の管理をシステム側へ手渡すこと…

Android 4.0, 4.1の対応がまだ必要なので、adb shellを使ってAndroidのUIの手動確認自動化について調べてみた

AndroidのUITest(手動)と自称していた手動の確認作業を自動化したかったのですが、UITest用ツールないしフレームワークで現在有力な選択肢と思しきEspressoやAppiumはAPI18以降対応です。そのため、まだ4.0, 4.1系でのテストが外せない自分の仕事の環境では…

データベーススペシャリストの試験を受けて面白かったのでどんな試験だったか呟いてみる 

こないだデータベーススペシャリストに合格して、解いてる間は自分が冗談を本気に受け取る性質なところもありIPAの試験は受けることすら揶揄される感じがあってつらかったのですが、年度によっては偏ったものもあると思ったものの全体として解いたり調べたり…

iOSでアプリがバックグラウンドへ遷移してもタスクが終了するまではアプリのプロセスをkillさせないようにする

AndroidではAndroid Oからバックグラウンド処理の実行制限が厳しくなることが話題ですが、iOSでは以前から基本的にはバックグラウンド処理はアプリがバックグラウンドに回った時点で停止させられます。 実際にはiOS側の判断で止めるので、タスクがすぐにkill…

java.util.TimerをAndroidで使ってみた場合

以前気になったので素振りした時のメモ。AndroidのバージョンはAPI 21です。 まとめ Timer.schedule(TimerTask task, long delay, long interval)はdelay秒後から、前回のタスクと今回のタスクの実行開始時間の間隔がなるべくintervalになるように定期的にta…

コードでボタンのStateによって色を変えるようにする

前回の続き的なノリで、コードでボタンのStateによって色を変えるように指定するコードを書いてみます。 API21以上の場合 API21以上の場合は、以下のように記述できます。 Button button = (Button) findViewById(R.id.button_bg_code); // 角丸の設定 int r…

ShapeDrawableのRoundRectShapeとGradientDrawableをそれぞれ使って角丸ボタン作ってみた

ShapeDrawableのRoundRectShape、あるいは、GradientDrawableを使うとコードからフチの余白や色を指定できる形で角丸四角形の背景を持つボタンが作ることができます。 もともとShapeDrawableで書いていたのですが、こちらの記事でShapeDrawableのリソースをG…

AndroidのNDKやABIについてのメモ

はじめに C系の言語で動いているクロスプラットフォームのブリッジを作成するには、そのコンパイルなどの過程でNDKに関する知識があるとトラブルシューティングやテストケースの設計に役立つことがあります。 なので、ここではその概要をまとめておきます。…

COUNT関数の引数にNULLが入る場合について

SQLで行数を数える時に利用する COUNT 関数で一番使い慣れているのは COUNT(*) なのですが、 COUNT(col) や、COUNT(1かNULLになる式)といった形を見かけたのでメモ。 COUNT(*) は行数をカウントする refs: https://dev.mysql.com/doc/refman/5.6/ja/counting…

iOSのProvisioning Profile周りについてざっくり確認するシートを作りました

iOSのProvisioning Profile周りについて毎回ハマっているような気がしていたので、どのファイルをいつ用意して用意した後どうすればいいのか、といったことを手短に確認するために 主になんて呼ばれているか 代表的なファイル名 主にいつ作成するか、どう作…

ObjCで戻り値以外にNSErrorのポインタを出しているのが面白かった話

NSErrorの使い方というよりはNSErrorが使われる場面についての話で、 C言語をはじめとした関数やメソッドの戻り値は基本的に1つになります。 複数の値を返したい場合、構造体を作ったり、オブジェクトを使ったり、といった方法がありますが、基本的にメソッ…

iOSでファイルにオブジェクトの状態を保存する/.plistとは

ObjCのコードを読んでいた時に書いたメモを放流。 アーカイブとは プログラムで使われている複数のオブジェクトを、その属性値や相互の関係も含めてファイルに保存したり、他のプロセスに渡したりしたい場合があります。 そのために、互いに関連するオブジェ…

ideviceinstallerで「Could not connect to lockdownd. Exiting.」と出てアプリのインストールに失敗する

$ ideviceinstaller -u b93fd1bed1bbdf952070fa4160a34510efbe71ee -i /Users/woshidan/to/app/dir/iOSApp/build/sym/Release-iphoneos/iOSApp.app Could not connect to lockdownd. Exiting. github.com Mac OS X El Captain以降のバージョンだと、iOSアプ…

NoSQLの種類とNoSQLのアプリケーションの例について

NoSQLは、一人のユーザーが書き込んでから他の人が参照するデータに反映される間には少し時差があるけどいいだろうというゆるい整合性(結果整合性)で動いているんだ、といった話をこちらあたりで読んでなんか面白かったので少しだけメモします。 RDBMSとNoSQL…

データベースのデータのバックアップの種類について

データベーススペシャリストの問題を見ていて、データの更新範囲や内容によって、差分バックアップと増分バックアップの使い分けを検討する話が面白かったのでメモ。 なお、最初に断っておきますが、リストア周りについて実際業務で担当したことはなく、興味…

emulator: ERROR: This AVD's configuration is missing a kernel file!

エミュレータネタ連発。上記エラーが発生した時に確認することを順にメモ。 エラーメッセージ全体 Cannot launch AVD in emulator. Output: emulator: ERROR: This AVD's configuration is missing a kernel file! Please ensure the file "kernal-qemu" is …

ERROR: resizing partition e2fsck failed with exit code 8

stackoverflow.com Androidのエミュレータの設定をいじっている最中、上図のエラーダイアローグを稀によく見かけていたような気がするのですがいままで原因がわからないうちになんか回避してしまっていたのでした。その原因と対応がなんとなくわかったのでメ…

AppiumでiOSのテストのサンプルを動かすところまで

iOSやAndroidのUIテストをSeleniumのように書くことができるAppiumというものがあるそうですが、 説明を見ていてもさっぱり挙動がわからなかったので、動かしてみたメモです。 各種のバージョンは Appium 1.5.3 maevn 3.3.9 です。スクショにAviraが映ってい…

iOSのidentifierForVendorとadvertisingIdentifierについて

iOS

お仕事で調べる必要があったのでメモ。 identifierForVendor https://developer.apple.com/reference/uikit/uidevice/1620059-identifierforvendor?language=objc アプリのベンダー(開発元)ごとにデバイスが一意に見えるように発行されるアルファベットと数…