woshidan's loose leaf

ぼんやり勉強しています

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; // ビルドできない }]; これだとちょっとしたことを他のスレッドに投げてその結果を受け取りた…

マルチスレッドプログラミングのレビューにて

先輩に言われてひぎゃーって叫んだ本日のNG集的な。 別スレッドの処理を待って次の処理を実行する方法 コールバック コールバック地獄とはなんたるや GCDのdispatch_sync 使う dispatch_sync はキューに入れたタスクのデッドロックに注意 別スレッドの処理を…

ブロックを引数にして関数を書く素振り

ブロックはObjective-Cではなく、Mac OS X 10.6, iOS4 以降にC言語の機能として実装されたもの。 他の言語の機能でいうとクロージャ。 試しに書いてみる // ブロックオブジェクトの定義 // ^(引数列) { 本体 } // int型の引数を一つ取り、値を返さない関数へ…

とりあえず今日はセマフォを使ってみたい

Javaでよくあるインスタンスによるロックしか実はまだよくわからない感じなので*1、とりあえず叩いてみますね。 セマフォを使わない場合 // エキスパートObjCからの引用 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAUL…

UIImageViewはデフォルトだと正方形になるのとNSConstraintは親Viewに対して親Viewと子Viewないし子View同士の関係を指定する

NSConstraintは親Viewに対して親Viewと子Viewないし子View同士の関係を指定する これが独学Androiderに理解できなくて理解できた瞬間うぉぉたぁああって感じだった UIImageViewはデフォルトだと translatesAutoresizingMaskIntoConstraints = YES Autoresizi…

GCDでちょっと遊ぶ

バックグラウンドスレッドに非同期で実行したい処理を投げる memo dispatch_async(タスクを入れるキュー, ^{ // タスクの処理内容を表すブロック }); 例 dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); di…

iOS9で追加されたMultiTaskはiOS11で下からスライドでDockが出るようになったらしい

iPadのMultiTask概要 iOS9から実装されている iPadで画面右端からスライドさせると、 Slide Over のアプリ選択のUIかすでに起動された二つ目のアプリの画面が出てくる Split Viewが実装されているアプリを起動している時に Slide Over のビューを出すと2つの…

\[LayoutConstraints\] Unable to simultaneously satisfy constraints. のログを確認する

コードで NSLayoutConstraint を追加してレイアウトを記述していると、 2017-08-23 20:08:37.967040+0900 TestApp[19312:543735] [LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the foll…

_Pragma演算子と#pragmaディレクティブを使ってObjCで書いたコードの警告を抑制する

仕事で触っているソースコードの中に #define SOME_WARNING_PROCESS_START _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wpartial-availability\"") #define SOME_WARNING_PROCESS_END _Pragma("clang diagnostic pop") のような…

型が指定できないフォーマットのデータに入っている値の型を信用しない。フォールバック処理をデフォルトで動くからで止めずに確認する

こないだ、JavaScriptのコードからJavaのコードへ値を引き渡すとき、JSONの文字列にして渡すことがありまして。 そのときに受けたレビューで、Javaが期待している型が String だけど、JavaScriptからは Array だって Int だって入れられるのでは、という指摘…

Webサーバのkeepaliveとは

久々に書いておいて、めっちゃざっくりした感じででかく出たタイトルだな、と思ったんですが、まぁここloose leafですしね。 この記事では、「keepalive」という言葉が、webサーバの設定でどう言う意味を指すか、みたいなところを確認します。 TL;DR TCP/IP…

$ANDROID_HOMEってどこさ

環境変数 JAVA_HOMEとANDROID_HOMEと、時々、PATH Android SDKのパスのことで、ここだ。 なお、$NDK_ROOTなどを聞かれた場合は、$ANDROID_HOME/ndk-bundleであることが多い。 sdk$ ls add-ons docs lldb platform-tools sources tools build-tools extras nd…

Xcode Command Line Toolsのインストール

Apple IDでサインインして下記URLへ。 Sign in with your Apple ID - Apple Developer 利用するバージョンのCommand Line Toolsを探してDL(いくつかツール種別のチェックを外した方が探しやすい). あとはDLしたインストーラをぽちぽちすればOK.

Homebrewでgitのバージョンを上げた後、実行されるバージョンを変える

本当は、 brew uninstall git brew update brew install git すればいいんだけど、慌てて後者だけやって、Homebrewの管理するディレクトリが二つできて、名前順で古い方が優先されてどうしようかな、ということに(なぜだ)。 もう少し状況をまとめると 新しい…

使い道がよくわからなかったのでScaleDrawableで遊んでみた

楽しい。 FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int i = new Random(System.currentTimeMillis()).nextInt(8000);…

Rubyのgemをインストール際に要求されるnative extensionとは何者か

stackoverflow.com gemのnative extenstionは、それの事前インストールを必要とする別のライブラリ(gem)とリンクさせてもよいRubyが動く環境(rbenvなどの管理下ではなくPCなど)に入っている、主にCやC++などで書かれるライブラリ。 それの事前インストールを…

StoryBoardを使わない方法 at Swift

qiita.com 上記の記事をSwiftでやりました、というお話です。 import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOpti…