woshidan's loose leaf

ぼんやり勉強しています

今日のAWS

terraform ちょっとだけ触りました qiita.com qiita.com resource "aws_s3_bucket", "woshidan-terrafom-test" { # 追加する種類のリソース, リソース名 # s3の場合 bucket = "woshidan-terrafom-test" path = "/" acl = "private" # acl = "..." で設定して…

Cocos2d-x用の日本語対応フォントファイルをGlyph Designer2を使って書き出し

Glyph Designer 2 の入手 Glyph Designer - A Bitmap Font Generator for Mac · 71Squared よりDLした後、ライセンス(月900円~)を購入してアクティベイトキーを入力。 日本語フォントの追加 【cocos2d/unity3d】簡単に日本語表示用のフォントが作れる「Glyph…

esaやGitHubに検証結果貼りつけたいが、 tableタグや img タグなど書くのが面倒な時用のスニペット

esaやGitHubに検証結果貼りつけたいが、 img タグなど書くのが面倒な時用のスニペット。 出力用コード require 'yaml' require 'erb' puts ARGV[0] file = File.open ARGV[0] raw_str = file.read @tests = YAML.load(raw_str) template_path = File.expand_…

XCodeのRun Scriptを試しに触ってみる

iOS用アプリケーション、ライブラリのビルド前後にちょっと作業がしたい場合、XCodeの Run Script でシェル(やシェル経由で起動できる各種言語のプログラム)を起動させることができます。 今日はちょっと試してみました。 簡単なスクリプトの実行 # hello.sh…

今日のAWS

AWS ELB オンプレでいうロードバランサ 配下のインスタンスのヘルスチェックやそれに基づいた振り分けの停止/再開・暗号化/復号化(SSL)機能あり ELBのメリット 複数AZに対して分散を行える。1つのAZがオフラインになった場合でももうひとつのAZで処理を続け…

iOSアプリをxcodebuildでビルドする(途中)

Appiumの前段階として、Simulatorなどにインストールするビルド済みのAppファイル 拡張子を変更したものが .ipa ファイル https://developer.apple.com/jp/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html ht…

今日のbash

& ... コマンドをバックグラウンドで実行する 参考: http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230589 例 $ heavy_command& case 文 ... 他の言語のswitch と同じ 参考: http://shellscript.sunone.me/case.html case 値 in パターン1 ) 処理1;;…

会社のrubyのバージョンが2.4.0以降にあげられないので `Array#-` と同等のスニペットをおいておく

irb(main):010:0> class Array irb(main):011:1> def - other irb(main):012:2> copy = self.dup irb(main):013:2> other.each do |other_array_item| irb(main):014:3* copy.delete other_array_item irb(main):015:3> end irb(main):016:2> copy irb(main)…

自作クラスのテスト用にComparableモジュールと宇宙船演算子を使って同じオブジェクトか比較しやすくする

rubyでちょっとした処理を担当する自作クラスのテストをするとき、同じオブジェクトがどうかの比較する際、 assert_equal expect_obj.hash_value, actual_obj.hash_value # hash_valueはオブジェクトのidではないオブジェクトに特有の値 というような式をよ…

rubyでライブラリなどを書くとき、Rakefileと相対パスのrequireを使ってクラスの取得やテストをやりやすくする

+---+ lib | +-+ some_module | +-+-- a_processor | | +-- order.rb | | +-- item.rb | +-- b_processor | | +-- order.rb | | +-- item.rb | +-- composer.rb # composerは a_processor, b_processor 以下のクラスを必要とする +---+ test # ここから一括…

gitのローカルリポジトリからお目当のタグを抽出する

今日は時間がないので渾身かも、と思ったコードに数行コメントつけてPOST! シェルは便利なんだけどシェルの結果の文字列を気軽に処理したい時、ruby書いたことある人にとってはrubyがとても楽 rubyだとシェルのコマンドを %x( command ) などで実行できる ru…

AWS CLIの設定ファイルにて名前付きプロファイルを利用して手軽にAWS CLIのIAMユーザを切り替える

普段業務でAWS CLIを使っているため、業務本番用のアカウントとちょっと個人の調査用のアカウントを分けて使いたいわけですが*1、 aws configure コマンドで設定できるアカウントは一つだけです。 これではちょっと調査をするたびにクレデンシャル情報を引っ…

AWSのCLIで各種リソースやサービスにアクセスするためにIAMでアクセスキーを発行する

AWSのAthenaクライアント aws-sdk-athena を使ってみようとしたら、Athenaクライアントは aws cli を利用していて、これを利用するために IAM でAWSアカウントにアクセスするユーザを作る必要があったので手順メモ。 ちなみに IAM は Identity and Access Ma…

整形されたJSON文字列を見たい時、minifyしたい時、jqコマンドがとても便利だったという話

昨日頑張って sed をかじったため sed -e '1,10s/\([}\]]\),/\1,\ /g' -e '1,10s/:{/&\ /g' -e '1,10s/e,/&,\ /g' test.json みたいな涙ぐましい事してたんですが、検索してたら jq ってコマンドで簡単にできるらしいです。 まずは単に整形する 例えばこんな…

いい加減わからない感じが強いのでsedについて少し調べてみた

sedとは sedは stream editor の略で、主にファイルかファイルの指定がなければ標準入出力を読んで何かしたら入力を修正したら標準出力へ書き込んでくれる、といった使い方が主なスクリプト言語です。 sedの記法 コマンドを一つだけ入力する場合とそうでない…

利用条件が緩いzlibライセンスについて

ライブラリのライセンス表記についてはアプリやライブラリを開発していると悩ましいところで、使ってはいけなさそうなLPGL系を避けながら雑にすべてのライブラリのライセンス表示ページを作ったりして誤魔化しがちです。 しかし、中には著作者の偽装はしては…

S3に入っているファイルの状況を調べるのにCloudWatchが便利、という話

S3に限った話ではないのですが、ちょっと追加で調べたいなというときにメトリクスやその間隔を調整できて便利でした。まる。 S3は上部メニューの分析から各バケットのメトリクスを確認できるのですが、このメトリクス表示する期間がかなり限定された相対期間…

配列の中のハッシュの要素で検索したい

cross join と UNNEST を利用する。 UNNEST はSQLの中では UNNEST 関数は、指定された配列の各エレメントにつき 1 行が含まれる結果表を戻す ものだそうです。 前に書いた Athenaの記事 で少し調べたのですが、覚えられてなかったので上記を踏まえてもう一回…

セマフォとロックとPauseからの復帰

セマフォは獲得してから解放するまでのコードを一つのスレッドしか通ってくれるなよ、的なもの 1つ、というのはコンストラクタの引数1から 同時に実行していい数が指定できるロック的な と現状理解している サンプル見てるとこのセマフォでCamera2 APIの利用…

回転が難しいというか、3つくらいこけてるとどこでこけてるかわからんね 2

純正のカメラアプリでもPORTRAITだけ対応だったりするので、回転してすぐカメラのプレビューが取れないとかはまあある話なのでは 単一方向で対応してその先はその後考えようか バッファとかの回転のマトリックスは固定値返したりとかあるみたいですね rotate…

回転が難しいというか、3つくらいこけてるとどこでこけてるかわからんね

Previewを表示するSurfaceの大きさは枠はViewのサイズ、画像の大きさはTextureView.setTransformで渡すMatrixで設定(っぽい) CameraSessionから飛んでくる元画像の大きさはSurfaceTexture.setDefaultBufferSize でここでは向きの調整は入れられないっぽい Te…

CameraDevice closeのタイミングとCameraCaptureSession closeのタイミングについて

https://github.com/googlesamples/android-Camera2Basic のサンプルから確認してメモする。 まとめ CameraDevice は CameraDevice.StateCallback のコールバックの中でcloseする onDisconnected と onError の中でclose セマフォのロックを解放しながら処理…

リリースについてのetc.

なんかあったら追加する。 Android ベータ版リリースはクローズドベータで指定したメアドのGoogleアカウントでのみインストール、アップデート可能に ベータ版リリースは2回目以降は 更新に~1h程度かかる 同じVersionCodeのものは出せない その辺はアルファ…

アプリで決めたActivityの向きがLANDSCAPEの時、Camera2のCameraDeviceから受け取るカメラのプレビューの向きがずれる

昨日のImageReaderのメモで プレビューの向きがおかしいのが気になる、という話を書きました。 その件について調べると https://stackoverflow.com/questions/34536798/android-camera2-preview-is-rotated-90deg-while-in-landscape などどうもアプリの画面…

View AnimationとProperty Animationの違いについて

View Animation Animationクラスのサブクラス Viewの見た目の特徴のうち一つをいじるアニメーションのクラス 具体例: TranslateAnimation ScaleAnimation RotateAnimation AlphaAnimation 変化するのはrenderの結果だけで本当の値は変化していない(出典: htt…

ImageReaderクラスを触ってみた

今日はまとめる余裕がないのでこっちにおくんじゃ。 ImageReaderはAPI19で追加された、他のSurface(入力元=カメラなど)から画像を読み取る & 読み取ったコールバックで加工して他の部分へ流す(たとえばBitmapにしてImageViewに渡す)という使い方ができるSurf…

Camera API(カメラ関係の古い方)を使ってみる件

まとめ カメラ撮影中の写ってる範囲を表示している部分はプレビューと呼んで SurfaceView で扱う Camera.setParametersでプレビューの時の画像サイズや、プレビュー後(撮影後)の画像サイズが指定できたはずなのだが、compileSDKVersion 25以上で新規プロジェ…

ボタンのタッチ領域を広げる

iphone - How to expand the hitTest area of a UIButton without extruding it's background image? - Stack Overflow CGRectInset - Core Graphics | Apple Developer Documentation @implementation MyButton : UIButton - (UIView *)hitTest:(CGPoint)po…

Error:Could not get unknown property 'compile' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

というエラーメッセージが出てビルドができなくなりました。 Android Studioを起動した時に、build.gradleの文法に修正が入っていたようで、その修正を元に戻したらいけた。 具体的には、 compile'com.android.support:appcompat-v7:22.2.1' compile 'com.pa…

ブロックの中でローカル変数を変更したい

ローカル変数は何も修飾子をつけていないとブロックの中で参照はできても変更はできない。 // ダメな例 int count = 0; [Util executeSomeBlock:^{ count += 1; // ビルドできない }]; これだとちょっとしたことを他のスレッドに投げてその結果を受け取りた…