woshidan's blog

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

AWS SQSのvisibility timeoutとdelay queueのdelayの違いについて

今週の復習です。 consumerがキューからメッセージを受信するリクエストを送った後、 通信の問題で結局受け取れなかった consumer側で処理中にエラーになって結局最後まで処理できなかった などの事態に備えるため、SQSのキューにあるメッセージはconsumerが…

ECSのタスク、サービス、クラスタ、コンテナインスタンスの意味についてまとめました

ECSのタスク、サービス、クラスタ... といった言葉の意味がいまいちよくわからなかったので、それぞれの言葉が指すインスタンスを作成するときに何を設定するかに基づいてまとめたメモです。 もとの説明をいい感じに引用して... とかの時間がなかったのでひ…

APNsのプッシュ通知で利用するプロバイダ証明書関連の各種ファイル形式について調べてみたメモ

前の記事では、APNsとプロバイダの間の接続信頼の話をしました。この記事では、接続信頼の確認に使う証明書関係のファイルの話をします。 複数の鍵や証明書をまとめて扱うための個人情報交換( .p12 ) まず、Push通知の証明書関連で調べているとよく出てくる …

APNsを利用する際に必要な2種類の接続信頼について

APNsを利用する際に必要な2種類の接続信頼 APNsを利用する際には証明書やトークンが必要ですが、それは認証のためです。 ドキュメント*1には、暗号化されたデータが正しく復号できるか、途中で改ざんされていないかみたいな確認にあたる暗号化検証とあわせて…

EMRのHiveのドキュメントを読むのが不自由だったので読み方からメモ

仕事で若干AWS EMR上のHiveにさわったので少しだけメモ。 ドキュメントの読み方とか頭いっぱいになってるとすっこ抜けて死んでいますが、EMRの他のサービスについても似たような感じに気をつければいいはずだ。。 マネージドサービスとはいえ、設定できる項…

Appleの証明書関連を調べるときに公式ドキュメントの「証明書」ページを読んでおくととても捗る

Appleの証明書関連を検索するとき、かなり検索しにくく感じるときがありますが、 証明書 - サポート - Apple Developer のページに目を通しておくと公式ドキュメントのググラビリティが非常に上がります。というか、先に読んでおくもののはずなんですが、グ…

RSpecでクラスの挙動や定数をテスト用のダミーにする、見慣れなかったマッチャ、普段は実行しないテストのスキップ、などの話

参加しているプロジェクトのRSpecを見ていたら見慣れないことがいろいろあったので、復習しておきます。 RSpecでクラスの挙動をダミー用のものにする target_obj = double("target_obj") # initializeの文字のほうに深い意味はないらしい target_obj.stub(:s…

インフラエンジニアの教科書2を読みました

DockerとかAWSとか色々勉強しなければいけない感じなのですが、DockerやAWSの説明に出てくる用語がわからないということで、その辺りの基本的なことが載ってそうだし、薄いし、ということで「インフラエンジニアの教科書2」を読みました。 さらっとわかりや…

mysql2のgemのインストール時にchecking for mysql_query() in -lmysqlclient... no が出ていたらC言語版のMySQLのクライアントライブラリがない

mysql2のgemをインストールするときに、 checking for mysql_query() in -lmysqlclient... no ... のエラーが出て失敗する場合、C言語版のMySQLのクライアントライブラリがないです。 なので、たとえばMac OS X(10.11.6)の場合、 $ brew mysql でC言語版のMy…

RailsのFormクラスについて

Railsでバリデーションを書くケースといえばビジネスロジックで場所はModel(ActiveRecord)が多いのではないかと思います。 これは、たとえばRails Tutorialで扱うような、フォームで扱うModelが一つかつ単純な場合には特に迷う必要はありません。Railsのフォ…

fluentdについてのメモ

fluentdとは 参考: https://docs.fluentd.org/v0.12/articles/quickstart 基本Cで書かれていてRubyの薄いラッパーがあるログ収集用のライブラリ。 Fluentdは入ってきたログをJSONとして扱う。 インプットプラグインとアウトプットプラグイン 参考: https://d…

ウィンドウ関数に触ってみる

下準備 http://sqlfiddle.com/ の Postgress SQL 9.6 でテスト。 CREATE TABLE books ( id int, name varchar, author varchar, price int ); INSERT INTO books VALUES ( 1, 'Introduciton For Dog', 'Pochi', 200 ); INSERT INTO books VALUES ( 2, 'High …

「パスを通す」とは何をしているのか

ここ3年くらい恐る恐る export PATH="$PATH:additional_path" のような行を .bash_profile に追加する日々を生きていたのですが、ようやくなんとなく意味がわかったのが嬉しかったのでメモ。 「(お目当てのコマンドへの)パスを通す」というときは、お目当て…

Gradleのユーザーガイドの12章まで読んでいたログを投下

たまにはWeb日記っぽく、 http://gradle.monochromeroad.com/docs/userguide/userguide.html をしばらく読んでいたのでそのログを投下。 2018/02/12 タスクのグラフ構造 マルチプロジェクトのビルド サブプロジェクトごとにビルドしなおすかが決められるのは…

「DataBindingのコードを読む」のスライドが面白かったのでDataBindingについて少しまとめました

speakerdeck.com 上のスライドが面白かったため、DataBindingについてスライドを読んでわかったことや追加で調べたことをメモしました。 時間が足りず、書いて動かしたわけじゃないし雑なのですが、自分用のメモとしてはないよりましでしょう*1。 Androidア…

マーケティングオートメーションツールとアプリエンジニア ~プッシュ通知・お知らせダイアローグの運用自動化のためのお仕事~という題で発表しました

ふだんやっているお仕事の中から印象的だった事柄をオムニバス方式でお話しさせていただく体の発表をさせていただきました。 speakerdeck.com 技術的にはGradle入門とGCM, FCMを使うとプッシュが届くけど何が起こっているのか、みたいなお話がありますがお仕…

Media Streaming on Androidを見て面白かったので細々調べたメモ(動画のストリーミング配信プロトコル周り)

speakerdeck.com このメモはセッションで話された内容の書き起こしではなく、上記のスライドの内容が面白かったので自分で勝手に調べたメモです。 調べた結果とセッション中と用語のずれがある場合は、Abema TVのCode IQのプレス記事*1を優先させていただき…

「はじめての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…