woshidan's blog

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

「はじめてのOSコードリーディング UNIX V6で学ぶカーネルのしくみ」を読みました

Javaの並行処理の後はこちらの本を読んでいました。 はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus)作者: 青柳隆宏出版社/メーカー: 技術評論社発売日: 2013/01/09メディア: 単行本(ソフトカバー)購入: 56人 クリ…

「Java並行処理プログラミング ―その「基盤」と「最新API」を究める」を読みました

去年の11月はブログを一切書けていなかったのですが、その間*1何をしていたかというと主に下記の本を読んでいました。 Java並行処理プログラミング ―その「基盤」と「最新API」を究める―作者: Brian Goetz,Joshua Bloch,Doug Lea出版社/メーカー: ソフトバン…

RackがよくわからなかったのでRackアプリケーションをUnicornで動かしてnginxからリクエストを転送してみた

この記事はRuby Advent Calendar 2017の23日目の記事です。 はじめに Webアプリケーションフレームワーク(WAF)といえば、 薄いアプリケーションをサクッと書くのに適しているsinatra なんでもあり気味なRuby on Rails など、rubyで有名なものだけでもぱっと…

Cocos2d-xの勉強会のスライドを一通り辿ってみたときの話

この記事は〇〇勉強してみた Advent Calendar 2017の19日目の記事です。 はじめに 現在お仕事で開発しているライブラリはiOS/AndroidだけでなくCocos2d-xやUnityなどのプラットフォームに対し、クロスプラットフォーム展開をしており、その一環としてCocos2d…

adbのCLIでAndroidのエミュレータを起動したりアプリの起動、テストの実行をしたりする

この記事はAndroid Advent Calender その2の15日目の記事です。 今回は https://developer.android.com/studio/command-line/adb.html https://developer.android.com/studio/run/emulator-commandline.html https://developer.android.com/studio/test/comm…

ライブラリ開発屋がAthenaを利用してログの収集分析をやりやすくした話

この記事はServerless Advent Calender 2017の16日目の記事です。 ライブラリ開発屋として仕事でAthenaを使ってログの収集分析をやりやすくした話をします。 はじめに 普段は開発者としてiOS/Android両対応のモバイルアプリ向けのライブラリの開発やテストを…

「テストも開発もするモバイルエンジニアのためのXCUITest/Espressoのすすめ」という題でLTをしました

testautomationresearch.connpass.com 要件の細かいことを突いたりテストケースの設計が大好物だったため、そういうのを本職としているテストエンジニアはどういう人たちなのかを知りたかったので「システムテスト自動化カンファレンス2017-2」に参加してき…

xcodebuild testのテスト対象のデバイスやテストケースをappiumぽく簡単に指定できるラッパースクリプトを書いてみた

この記事はiOS2 Advent Calendar 2017の3日目の記事です。 xcodebuild testのテスト対象のデバイスやテストケースをややappiumみたいに簡単に指定できるラッパースクリプトを書いてみました。 なお、CocoaPodsでライブラリ管理をしているプロジェクトを対象…

XCode Tools CLIのバージョンアップとビルドに必要なパラメータ、権限の変化について

お仕事の都合で古いOSに対してもXCode Tools CLIを使ってビルドする必要があって調べてみても要領を得なかったんだけど少しわかった気がするので、わかったところまで整理してみます*1。 アプリとして実機やシミュレータにインストールできるファイルの種類…

ERBとCSVを使って簡単な自分用ドリルを作る

最近シェルの勉強をしたいんですが、以前SQLを勉強した時のように基本的なシェルを反復して書くのが一番では? と思って、ドリルのようなものが欲しくなりました。 そこで、CSVにお題とお題の答えを書き連ねたらアコーディオンで答えを出したり隠したりしてく…

Cocos2d-x 2.2.6をMac OS Sierraで動くようにするまでのメモ

仕事でやってて面白かったので許可を取って公開。 環境 Cocos2d-x 2.2.6 Eclipse Oxygen.1a Release (4.7.1a) Android NDK, Revision 10e Android SDK & tools v24.0.3 のもの一式 Android Studioとは別に用意 Eclipseの環境設定で下図のように設定 メモ プ…

ウェブオペレーション サイト運用管理の実践テクニックを読んだ

ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE)作者: John Allspaw,Jesse Robbins,角征典出版社/メーカー: オライリージャパン発売日: 2011/05/14メディア: 大型本購入: 10人 クリック: 923回この商品を含むブログ (50件) を見…

Athenaでクエリの実行結果を使い回すために最近投げたクエリとそのquery_execution_idを記録する

Amazon Athena では S3上にあるファイルをスキャンした量に応じた料金 + S3をスキャンするためにGETしたリクエスト数(+ファイル容量) に応じて課金されます。 また、Athenaでは一回SQLを実行した時に query_execution_id が発行され、同じ query_execution_i…

AWS CLIでAWS Athenaのクエリがデータベースが見つからないためになんども失敗する場合は結果出力先のS3のバケットのregionを確認する

俺の屍を越えていけ、的なメモ。 require 'aws-sdk-athena' client = Aws::Athena::Client.new begin start_response = client.start_query_execution({ query_string: "SELECT * FROM samples limit 10", query_execution_context: { database: "mydatabase…

iOSにてzlibのdeflate()コマンドでファイルをgzip形式で圧縮する方法について

zlibについてコピペで使うのはいやだなと思ったのでちょっと調べてメモ。 比較的小さいファイルの圧縮を行うなど、圧縮前後のデータを全てメモリ上に展開できる場合は、 compress() を使って一気に圧縮できますが、今回はストリームから少しずつデータを出し…

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…