おでーぶでおでーぶ

いろいろ書く。いろいろ。

Javaからの利用を視野に入れたKotlinコードで何をするべきか

(2015年に書いたものをコピペ) Kotlin Advent Calendar 2015 10日目. TL; DR Javaからの見た目を考慮して,アノテーションと修飾子を使って整形しましょう @file:JvmName,@JvmStatic,@JvmOverloadsをつけよう const,open 修飾子は適切に interfaceのdefa…

Cron で動かすスクリプトの開発方法例

(2015年に書いたものをコピペ) 普通の使い捨てスクリプトと同じ作り方をしてませんか? そういう人がよくぶち当たるのが,cronで実行したらコマンドが見つからないだとか環境変数が設定されてなくてもうダメという状況. そんな状況を回避するには以下の2つの…

劇場版SHIROBAKOを見た

不要不急の外出がどうだの色々言われているけれど、これくらい行っていいはずだよ経済は回していこうなと自分に言い聞かせて見てきた。 こんふぁーさんにほとんど言われてしまったのウケるけど、雑に感想を書く。もちろんネタバレがあるので注意。 konifar-z…

App Shortcuts の targetPackage/targetClass に string resource も manifest placeholder も使えない

DroidKaigi 2020 アプリで App Shortcuts を設定する際、色々と試行錯誤をしてくださった方がいたんですが、僕の理解が足りずに手を煩わせてしまったのでざっと調査しました。 github.com 当然ハードコーディングすれば起動しますし、string resource を使え…

Keynote のテキスト貼り付けがストレスすぎるので、Karabiner Elements の complex modifications 機能を使って解決する

2020/01/08 追記: 結局以下のようになった。 もう令和も2年となるというのに、Keynote で資料を作るときのスタイル維持テキストペーストがストレスすぎる。スタイルマッチテキストペースト*1もできるけれど、押しづらいなぁ・・・と思ったので、Key Mapping …

Beer Advent Calendar Day 9: Gruut & BrewDog Brussels

Beer Advent Calendar Day 9、完全に投稿を忘れていました。2019年もいっぱい飲みましたね。 adventar.org 2019/12/09 はベルギーはブリュッセルとゲントからお届けしたかった。 ゲント Brouwerij Gruut というめちゃくちゃ有名な醸造所にいきました。ツアー…

知らなかったことを知るのが好きなんです!

SHIROBAKO Advent Calendar Day4 です。もう5年目の Day4 なんですね、正直ウケる。 adventar.org 知らなかったことを知るのが好きなんです! 第14話、りーちゃんこと今井みどりのセリフです。この言葉はストーリーに対して大きく影響を与えるというものでは…

飲酒プログラミング in Tokyo, Brussels, Madrid, Tel Aviv and London

adventar.org 飲酒プログラミングカレンダー2日目。現在海外出張中なので、ラウンジや機内などで飲酒プログラミング祭りをしました。なおプログラミング風景の写真等は一切ありません。 Tokyo 羽田のラウンジでカレーとビールを片手に terraform をモリモリ…

ダイエット

またダイエットしました 2019/7の中頃から一念発起しました。 一番の理由はこのままだと早死にしそうだったからです、まじで。自律神経とかが明らかにおかしくなってたんですが、原因特定が難しいのでとりあえず身体的な原因の可能性を取り除くことにしまし…

v1 scheme 互換の v2 scheme 署名 apk を手動で作成する

source.android.com モチベーション 今更なんでそんなことを手動で・・・と思うかもしれませんが、AndroidStudio 3.5 かつ minSdkVersion 24 以上の場合、署名 scheme が自動で判定されるようになりました。 v2 scheme は Android N、つまり API 24 から動作…

Kotlin Fest 2019 で Deep Dive into Kotlin DSL という発表をした

Kotlin Fest 2019 - connpass 「Kotlinを愛でる」をビジョンに、Kotlinに関する知見の共有と、Kotlinファンの交流の場を提供する技術カンファレンスです。 というカンファレンスで、45分枠「Deep Dive into Kotlin DSL」を英語でやりました。 speakerdeck.co…

新しいベッドマットレスを買ったら快眠マンになったので買った方がいいよという話

今の家に引っ越して約4年。そのときに買ったニ○リのベッドマットレスを使ってきた。 購入当初はしっかりした作りで超快眠だったけれど、さすがにへたってきたのか、最近はマットレスの中央(ケツの部分)が沈みやすくなってしまった。 そのまま仰向けで寝ると…

internal app sharing と DeployGate の機能差早見表

この記事は DeployGate 社員としてではなく、アプリ開発者の見解として書いています(おわりに、を除く)。また Beta などの他のサービスとの比較は入っていないので、internal app sharing または DeployGate の2択として記述しています。 20200427 in-app-up…

CircleCI (Workflow) の tags filter でドキュメントを誤読してハマった

CircleCI (Workflow) の tags filter で document を読み違えてハマったのでメモ。 Configuring CircleCI - CircleCI CircleCI では filters 機構を用いて、tag/branch ごとに job の実行を制御することが可能。*1 例えば master branch のみで実行したい場…

KotlinFest 2019 CfP に応募した

Deep Dive into Kotlin DSL DSL の話から Kotlin DSL (Gradle Kotlin DSL じゃないよ)について触れ、自分たちでも DSL を構築する方法を知る・構築できるようになることを目的とした発表です。 日本語で出したんですが、英語発表でもいいよと書いておきまし…

GitHubなどで Issue/PR ごとに情報を読み書きする

GitHub などを使っていると PR Review だのなんだのを自動化したくなりますよね。 ただ GitHub Issue などには Issue ごとの metadata attachment みたいなものがなく、何かしらの方法で情報を保存する必要があります。 CI のキャッシュを用いて、キーを PR …

フィルターコマンドと組み合わせると幸せになれるコマンド集 その1

fzy, fzf, peco などなど様々なフィルターコマンドがこの世にはあるけれど、結局それで何をすれば DX があがるのか・・・と言われたので、よく使うやつを羅列しました。とりあえずその1ということで。 GitHub - jhawthorn/fzy: A better fuzzy finder GitHub…

git git status がつらいと聞いて

最近某社の人と、「そういうコマンドあったんだ」みたいな話ってあんまり外に出てこないし、無駄なことしてる可能性あるよね(意訳)みたいな話をした。 ということでそういうコマンドをどんどん書いていきたい。 1個目は git git 問題。 git まで打って、少し…

コマンドのマニュアル・サンプルで使う記法について

よくコマンドの実行例で以下のような記法を見ることがあると思う。 $ git add <file>... これは man で使ってる記法を元にしてることが多い。ただ「コマンドのサンプル(マニュアル)はこう書け」という厳密な構文が存在するわけではなく、MicrosoftやIBM始め、ある</file>…

Kotlin DSL を考慮した Gradle Plugin を記述するために必要だったこと

とある Gradle Plugin を 2.0.0 に移行する際、v1 から Kotlin DSL を使っていた人の環境でちょっと問題が発生したというツイートを見たので、Kotlin DSL がどうやって DSL Marker なしに lambda で書けるようにしてるのかちょっと調べてみた。ここで記述し…

DroidKaigi 2019 スタッフ業

今年もスタッフでした。昨年の致命傷はこちら。 jmatsu.hatenablog.com 今回は 採択後のスピーカーとの各種やり取り タイムテーブル周り アプリなどで使うAPIの作成 公式アプリのメンテナー(特にCI) 前日設営配送周り Day1 のホール周りの下拵え(圧倒的 keim…

buildSrc や Gradle Plugin の開発のために Debugger を当てる

buildSrc 内のソースや Gradle Plugin の開発中でも Debugger を当てたいときはあると思う。 ./gradlew <any task> -Dorg.gradle.debug=true --no-daemon 非デーモンのデバッグモードで Gradle を立ち上げると、Debugger Attach 待機状態になる。デフォルトのポートは </any>…

pre-Lolipop でも TextView に icon tint を書けたい

MaterialComponent 対応をしていて、menu iconなども全部 theme baseのカラーリングにリファクタリングしている。 その中に pre-Lolipop でも TextView のicondrawable にtintが効かないというものがあったので、以下の方法で対応した。 import android.cont…

2018 年の振り返り

自分用のメモも兼ねて 人生 月 内容 1月末 Quipper を退職 2月頭 DroidKaigi 2月~ スノボいきまくる 2月~ 業務委託を2件持ってみて、忙殺される 4月頭 DeployGate に入社 5月 会社のお金で I/O 8月 KotlinFest のお手伝い 8月 我が家納骨所になる*1 10月頭 …

2019年を振り返って

セブンからの帰り道、しほちゃんちの鍵を自分の家のオートロックに差し込もうとして刺さらなくて困惑しながら2019年を迎えた。 上の階の人がハッピーニューイヤー!おやすみ!って叫んでた。 完

むしろ食われろ、餃子に

http://www.anime-line.com/animes/156/stories/2982 今年もやってまいりました、SHIROBAKO Advent Calendar 2018 4日目です。 adventar.org さて、SHIROBAKO 第12話、「えくそだす・クリスマス」の回を覚えているでしょうか? 作中で制作されているアニメ「…

2018年に開拓したオススメのビアバー or 醸造所

完全に忘れてた Beer Advent Calendar 2018 2日目です。 adventar.org もちろんこの日もビールを飲んだんですが、一枚も写真を撮ってなかったので、今年新しくいった国内外のビアバーや醸造所 *1 の中でもオススメをペタペタ貼っていきます。*2 ベルギー Bre…

静的解析(Lint等)に頼らず、ViewModelに載ってる LiveData を ViewModel 外で更新させないようにすることを考える

これはまだプロダクションで動かしてないので気をつけてください AAC ViewModel に生えた LiveData を外に出すとき、フィールドの重複宣言は面倒だし、だからといって直接 expose はしたくないし、それに MutableLiveData や MediatorLiveData を返してしま…

Kotlinの拡張関数を使って、Cursor#use すると ClassCastException で落ちる

現象 Fatal Exception: java.lang.ClassCastException: android.content.ContentResolver$CursorWrapperInner cannot be cast to java.io.Closeable 原因 Cursor が Closeable を継承するのは API 16 から。ContentResolver の返す Cursor が custom cursor …

Android app の versioning と naming

弊社ァでは今までリリースごとに1つずつバージョンを上げていたけれど、以下の問題点が存在した。 meaninglessなバージョンなので「それはアプリのx.y.zバージョンだとどれなのか」が分かりづらい。 e.g. SDK とのやり取り Internal Trackテスト版ではログが…