Infinito Nirone 7

白羽の矢を刺すスタイル

岐阜について feat. 田舎fm

田舎fm の出演回で自分の出身地である岐阜について話しました。 komatatsu.github.io そして現在の最新回でまたまた岐阜の話題がでました。 komatatsu.github.io 自分は岐阜の西の方で、最新話では岐阜の東の方の話がでてきて、岐阜の東西と北の認識に分かり…

Firebase Storage にある複数の Bucket の Rules を Git で管理するための手順

Firebase Storage には Firestore や Realtime Database のようにルールの設定があり、JSON でパスやファイルごとに読み書きの権限設定を変更できます。 Firebase Storage は複数のバケットを作ることができます。おそらくは保管するファイルの用途ごとに使…

初キャンプ@ふもとっぱら

つい最近はやった某キャンプアニメにあやかって、ゆるくキャンプしようぜ!と知人と話しをしていて、ふもとっぱらキャンプ場でキャンプをしてきました。 ふもとっぱら - fumotoppara.net - ふもとっぱらは、本栖湖の南、富士山麓のなかでも静岡県側にありま…

Mirage Solo で開発者オプションをいじるときは「ポインタの位置」を有効にしない

そろそろ自分も VR デバイスを一個くらい手元において遊べるようにしておこうとおもって、先週末 Mirage Solo を注文しました。Amazon 先生がサッと発送してくれたので週末にシュッと受け取れました。 開発者なので電源投入してすぐ開発者オプションを ON に…

箱根を登ってインターハイしてきた

先週は金精峠に行ったので、今週は箱根です。 はじめての箱根、聞いていたとおりのキツさで、かつ距離を勘違いしていて終盤ヘタってしまいました…… 国道1号最高地点の標識を見てだいぶ満足しましたが、芦ノ湖に降りてからは「このまま小田原に降りてしまって…

GWのシメに日光から金精峠を登ってきた

ゴールデンなウイークの間にどこかへ輪行して山に行こうという計画は前々からしていて、本当は渋峠に行きたかったんですが、火山活動の関係で長野県側からしか登れなくなってしまいました。長野側から登るのもいいんですが、ゴールデンなウイークでみんな電…

桜のAACR完走

今年はじめて桜の AACR(Alps Azumino Century Ride)に参加しました。 これまではヒルクライムが中心だ、長距離ライドのイベントはツールド東北以来ということになります。 車で行くか電車で行くか悩みましたが、150km走ったあとに運転するのはヤバそうだな…

Robolectric を offline mode で動作させる

Robolectric でテストを実行すると、初めの方のテストでなにかを Maven Central からダウンロードしているログが出力されることがあります。これは Robolectric がテスト実行時に必要な依存をダウンロードしているもので、Android SDK のなかのクラスを JVM …

Android Plugin for Gradle 3.1.0 で The SourceSet 'xxx' is not recognized by Android Gradle Plugin

Android Studio が 3.1.0 になったのに合わせて Android Plugin for Gradle も 3.1.0 が出ました。 Android Plugin for Gradle Release Notes | Android Studio リリースノートには記述がありませんが、alpha のころから存在する問題として、3.1.0 にあげる…

割とよくあるパターンでリアディレイラーを壊す実績を解除した話

おそらくスポーツ自転車を買った人なら誰もが、納車のタイミングでお店の人に説明を受けるであろう「ディレイラーハンガーが曲がる」パターンでリアディレイラーが昇天してしまう体験を通勤チャリに乗って帰宅している最中に体験したのでメモしておきます。 …

29歳になったので

いえーい!🍖たべるぞ! 干芋のリストはこちらです。https://www.amazon.jp/gp/registry/wishlist/2Y880HXG49I0M

CircleCI 2.0 で GCR に置いた private な Docker イメージを使ってビルドする

今日は Wercker がビルドキューを無限に積んでビルドしてくれなくなってしまったので、急遽 CircleCI 2.0 を試すことにしました。 メモリが足りずに OOM Killer にデーモンが殺されたり、desugar 中になにかが失敗しているようですが、とりあえず一番大事な…

DroidKaigi 2018 やっていきed

「やっていき」だと未来の話だけど、やっていきが完了した話はどうやって言うのがいいか分からなかったので、edをつけてみました。 はい。DroidKaigi 2018 が無事に終わりました。自分の参加歴はスピーカーとしては 2 回目・スタッフとしては 4 回目(フル参…

DroidKaigi 2018 Day 2 Room 5 で"詳解 Android Auto"という発表をします

droidkaigi.jp 気がついたら仕様の総ページ数が 200 を超えていて、超大作でお送りいたします。 Android Auto という取っ掛かりではありますが、幅広く応用の効く話を中心に据えていて、というか Android Auto の実体がほぼそういう潰しの効くフレームワーク…

ProductFlavor ごとに apply from で読み込む外部 Gradle ファイルを切り替える

flavor1 と flavor2 という 2 つの productFlavor があり、flavor ごとに名前が同じで値の異なる変数を使いたいとき、flavor1 向けの変数を定義した flavor1.gradleと flavor2 向けの変数を定義した flavor2.gradleを用意したとして、どのように apply from …

BuildType と ProductFlavor のマトリクスで BuildConfigField や ManifestPlaceholders を生成したい

BuildConfigField は、BuildConfig という自動生成されるクラスに定義する定数をビルドスクリプトから制御する仕組みです。 そしてもうひとつ、ManifestPlaceholders は AndroidManifest のプレースホルダーに放り込む値をビルドスクリプトから制御する仕組…

あけましておめでとうございます

今年も例によって浅草寺へおみくじを引きに行ってきました。 何一ついいこと書いてないのに凶じゃないのかよ!!

2017年振り返り

はやりのビッグウェーブ*1に乗って2017年を振り返りたいと思います。 ちなみに、1月のツイートを遡るだけでも随分な数になったし、何を思ってそれを言ったのかよく覚えていないものもたくさんあってちょっと後悔しています。 1月 Android でうるう秒見てみよ…

RxEither を RxJava2 に対応してみた

もともとのモチベーションとして、Java で Either を扱いたくて色々探していました。 そのなかで RxJava との運用もカバーしてくれている RxEither を見つけたのですが、あいにく RxJava 1.x で止まっていたので RxJava 2.x に対応させてみることにしました…

C93 Android モダンプログラミングに RTL 対応の章を書きました

明日から C93 が始まりますね。TechBooster から Android モダンプログラミングという新刊が出ますが、そのなかにある RTL 対応の章を担当しました。 techbooster.github.io この章を見れば RTL 対応に必要なことが大体網羅できるはずです。よくあるレイアウ…

諸君、私はAndroidが好きだ

諸君、私は戦争が好きだ: wids.net 作ってみました。 諸君、私はAndroidが好きだ 諸君、私はAndroidが好きだ 諸君、私はAndroidが大好きだ クラッシュが好きだ ANRが好きだ 機種依存問題が好きだ 激安端末が好きだ 売れないタブレットが好きだ アメリカで 日…

Canon EOS 6D MarkII を持って散歩した

前まで使っていた EOS Kiss X3 が天寿を全うしまして、新しいのほしいなと思っていたときに神楽坂つむりさんのブログ記事を読んでフルサイズよさそうだな?と思っていたところ、フルサイズはいいぞという声をTwitterでも頂いたので、自転車もあることだしあ…

SparseArray から要素を取り出したときに ClassCastException が発生するパターン

SparseArray は Android のフレームワークにあるコレクションの一種で、Integer を key にした HashMap よりもメモリ効率がよいとされるコレクションです。 SparseArray には 2 通りの値を取り出すメソッドがあります。一つはSparseArray#get(int)もう一つは…

例外をネストしたクラスとして定義するときは必ず static なネストしたクラスにする

いい具合にトラブってしまったのでメモです。 クラスの定義にはいくつかの種類がありますが、あるクラスの内部にネストした(入れ子になった)クラスを定義することができます。このとき、修飾子として static をつけたネストしたクラスと、それがないネスト…

RxJava1 から RxJava2 へ移行する時に nullable な値とうまくつきあう

次のような RxJava1 のコードを RxJava2 に移行することを考えます。 import rx.Observable; // RxJava1 private Value nullableValue; public Observable<Value> observeValue() { return Observable.fromEmitter(emitter -> emitter.onNext(nullableValue)) .filt</value>…

自転車でめぐる SHIROBAKO の聖地

この記事は SHIROBAKO Advent Calendar 2017 の 17 日目の記事です。 adventar.org SHIROBAKO には木佐さんという自転車が趣味のアニメーターさんがいます。えくそだすっ!のときには、落合がカナンの人と話をしているところを目撃したり、8 カット上げたこ…

甘い口溶けのスタウトビールを飲みました

この記事はBeer Advent Calendar 2017の9日目の記事です。 adventar.org きっかけ なにがきっかけでチョコレートビールの存在を知ったのかは忘れてしまいましたが、その後たまたま見かけたアニメでも取り上げられていて、なるほどこれは良さそうと思いアドベ…

potatotips #45 で発表してきた

potatotips #45 にて WebView と題して発表してきました。 speakerdeck.com 概要 ChromeCustomTabs の登場で使い所が限られてきている WebView ですが、法的情報(プライバシーポリシーや規約など)の簡素な静的 HTML を表示するために手軽に使えるため、意外…

RTL かどうかを判定する

RTL(Right To Left; アラビア語などの右から左へテキスト等をレイアウトする必要のある環境)対応にはいくつかのステップがあります。 単にレイアウトの属性を RTL に対応したもの(gravity や margin、padding や RelativeLayout の各種属性を Left/Right で…

StateListDrawable の子にあたる Drawable の背景色を Animator で変えてみる

概要 Android Framework に数ある Drawable のなかでも、View の状態に応じて使う Drawable を切り替えることのできる StateListDrawable は多くの人が使っていると思います。ListView のアイテムの背景、ボタンの背景などインタラクションをする View に対…