Android14の「写真と動画を選択」

Android14で端末中への画像アクセスが「OS側でユーザに画像を選ばせてアプリはその範囲しかアクセスできない」件、 他アプリはどうなのだろうと思って調べてみたらTwitter(X)はまだtargetSdkVersion33で未対応だった。ThreadsはtargetSdkVersion34で一応対応…

rsync のmanual の"Include/Exclude Pattern Rules" の日本語訳

原文: "Include/Exclude Pattern Rules" section in https://linux.die.net/man/1/rsync +、-などのフィルター・ルールを使ってパターンを指定することで、ファイルをインクルードしたり、除外したりすることができます(上記の「フィルター・ルール」のセク…

element-matrix.juggler.jpの見た目を軽く変えてみる

Matrixの Element-web を動かしている element-matrix.juggler.jpの見た目を軽く変えてみる。 別におしゃれにしたい訳ではなく、Google Safe Browsing の フィッシングサイト誤検知にひっかかってしまったから。 とりあえず素のElement-webと区別できるよう…

PostgreSQL 15 で pg_basebackup したデータの復旧テスト

pg_basebackupしたデータからの復旧テスト バックアップしたデータ base.tar.gz backup_manifest pg_wal.tar.gz package_versions package_versions は dpkg -l |grep postgres を記録したもの。 残り3つは pg_basebackup が出力したファイル。 package_vers…

matrix.juggler.jp

Juggler.jp Matrix サービスについて MatrixはOSSのメッセージサービスです。 分散型、非中央集権型 強力な暗号化機能があります。 Juggler.jp Matrix サービスは以下の2つを提供しています。 matrix.juggler.jp でMatrixサーバが動いてます。 https://matr…

Huawei端末の「デフォルトの保存場所」と externalCacheDir と FileProvider.parsePathStrategy

Huawei端末はデフォルトの保存先をSDカードにすることができる。私の手元では以下の2機種にその設定があった。 Huawei P9 lite VNS-L22 (Android 7) Huawei P30 lite MAR-LX2J (Android 9-10) その設定により、context.externalCacheDir は SDカードのパスを…

Android Emoji Policy と DefaultEmojiCompatConfig と Playサービス依存の罠

PlayストアでAndroid Emoji Policy なるものが要求されるようになりました。 Developer Program Policy: October 27, 2021 announcement - Play Console Help 「Apps running on Android 12 and above must comply with the latest Unicode version within 4…

アプリのAndroid 11対応で行ったこと

okhttpのバージョンを上げた 上げないとsetSocketFactoryできない https://gist.github.com/tateisu/51d20ef6aa6c813fab5635f33880bdfb ToastCompatを書き直した Android 11でToastにカスタムビューを設定できる場所が制限され、またカスタムビューを設定し…

Kotlin の apply{…} の速度

次のような単純なコードがあったとする。 // Something like HashMap<String,String> class Holder { @Volatile private var value :String = "" operator fun set(@Suppress("UNUSED_PARAMETER") key:String, value:String){ this.value = value } } class PrefKey(private</string,string>…

Debian 9のisc-dhcp-serverがNot configured to listen on any interfaces!というエラーを出す

自宅でDHCP鯖に使ってるRaspbianをjessie(8) から stretch(9)に上げたらisc-dhcp-server がエラーを出すようになった。/var/log/syslog から適当に抜粋するとこんな感じ。 Launching both IPv4 and IPv6 servers (please configure INTERFACES in /etc/defau…

okhttpのCacheControl.Builder.maxStale()

okhttpのCacheControl.Builder.maxStale()の挙動を勘違いしてた。たとえばこんなコードを書いたとする。 val CACHE_CONTROL = CacheControl.Builder() .maxAge(5, TimeUnit.MINUTES) .maxStale( Integer.MAX_VALUE, TimeUnit.SECONDS) .build() val call = o…

Toastの再利用

Androidで、サービス等のUIを持たないコンポーネントから画面にテキストを表示するToastというAPIがある。割と昔からあるものなので挙動も同じだろうと思っていたら、某社の端末(未発売)でトラブルがあった。 その端末のバグっぽい印象だったので割と邪道な…

KotlinのCoroutineScopeのメモ

やっとexperimental が外れたのでボチボチ使っていきたい。https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md や http://kotlinlang.org/docs/reference/coroutines/exception-handling.html を読みながら理解しようとしたが、…

Docker構成のMastodonに組み込んだpgbouncerの監視をmuninに追加する

「Docker構成のMastodonに後からpgBouncerを組み込む http://d.hatena.ne.jp/tateisu/20170418/1492457904 」の続きです。https://github.com/munin-monitoring/contrib/blob/master/plugins/postgresql/pgbouncer_ を使ってみたというただそれだけの記事で…

Docker構成のMastodonでImageMagickのポリシーを変えてGhostscriptの脆弱性に対応する

Ghostscript に緊急レベルの脆弱性、悪用攻撃も発生 https://japan.zdnet.com/article/35100535/MastodonではImageMagick経由でGhostscriptが呼び出される場合があります。今回はImageMagickの設定ファイルを変更することでGhostscriptの呼び出しを回避しま…

Subway Tooter

Subway Tooter https://play.google.com/store/apps/details?id=jp.juggler.subwaytooterAndroid用のMastodonクライアントアプリです。 2017年4月23日に Playストアで公開しました。 (某所の「アプリを最速でリリースした話」よりさらに早い&速い) 当時の痕…

Docker構成のMastodonに後からpgBouncerを組み込む

背景 mastodon.juggler.jp はここ数日はサーバの人数1100〜1050、1日間のアクティブユーザ270人くらいで人数はあまり変わってません。しかしユーザ間のフォローが増えるにつれて、発言、ブースト、お気に入りで発生するFan-outが大量にsidekiqのキューに積ま…

Mastodonを設置したときのメモ

Mastodonは公式ドキュメントが比較的充実しているので設置そのものは簡単な部類です。mastodon.juggler.jpは4/12に稼働開始しました。特に人を増やす予定もなかったのですが、当時の日本サーバ群は色々と不安定だったので避難所的な使われ方をして人数が増え…

DHCPを使わずに無線LANに接続する

普通はDHCPクライアントが自動的にIPアドレスを取得してくれるが、今回はDHCPサーバにしたかったので dhcpcd5 と isc-dhcp-client をpurge してから以下の方法でネットワーク情報を設定した。 resolvconf のインストール 「dpkg -l |grep resolvconf」で確認…

java.net.PlainSocketImpl.finalize() timed out after 10 seconds

java.util.concurrent.TimeoutException: java.net.PlainSocketImpl.finalize() timed out after 10 seconds at libcore.io.Posix.close(Native Method) at libcore.io.BlockGuardOs.close( BlockGuardOs.java:101) at libcore.io.IoBridge.closeAndSignalBl…

back stack を保持したまま現在のfragmentを入れ替える

素直に入れ替えると「back stackに記録された最後のフラグメントとcontainerに現在保持されているフラグメントがマッチしない」という問題が発生します。back stack の内容を書き換えるのは難易度が高いので、別の対応を考えてみましょう。 back stack をpop…

Androidの通知アイコン

2.3から5.0までの端末で表示確認を行ってみました。 画像が多いので別ページで http://juggler.jp/tateisu/android/notification_looks/

Nexus 7 (2013)からの動画キャプチャ

ゲームの録画をしたくなったので動画キャプチャ環境を整えたなど。最初はChromecastの出力をHDMIスプリッターに繋いだけど、やはり帯域の問題で、Chromecast に出力した時点で画質が結構劣化してた。有線のHDMI出力アダプターの方が明らかに鮮明だった。録画…

irc.juggler.jp のサービス障害と irc2.juggler.jp の追加

irc.juggler.jp は2014年10月9日17時45分頃から翌日2時30分頃まで停止していました。リレーサーバなしだと障害時にチャンネルを維持できないので、対策として irc2.juggler.jp を用意して irc.juggler.jp とリレーさせました。 使っているIRCサーバソフトは6…

irc.juggler.jpの2ch@IRC脱退について

http://irc.juggler.jp/ の告知の詳細です。2014年4月に Jim が irc.2ch.net をDNSから消しちゃった件について、2014年9月に Jim と色々交渉した結果、彼のネットワークポリシーだと irc.juggler.jp が再度 2ch@IRC とリレーできる可能性はほとんどないとい…

Android アプリの間違った作り方 の続き

ずっと前に「Android アプリの間違った作り方」という記事を書いたけど、 見なおしてみると色々アレだったので、今ならこうするというのを書いておく Activity の初期化と終了処理 Activityはバックグラウンド状態になったり画面を回転させたりすると一時的…

PENTAX K-3用のカメラプレート(Lブラケット)

カメラを縦位置で三脚に固定する際、アルカスイス型雲台の信者はカメラにL字型のプレートを取り付けるのですがRRSもKirkもK-3用のLブラケットを出す予定はないそうですorz We have no plans to create custom plates for the K-3 camera at this time. Unfor…

PENTAX K-5, K-3 のACアダプタ

ペンタックスのデジタル一眼レフに装着するACアダプタは二種類あります。 K-AC50J (D-AC50とメガネケーブルのセット)(対応機種 645D/ K-5/ K-7/ K10D/ K20D ) K-AC123J (D-AC120とメガネケーブルのセット) (対応機種 K-5II / K-5IIs / K-3 ) 実際に両方買っ…

Android Walkman NW-F807

今まで NW-X1050 を使ってたんですが、容量16GBだとロスレスの曲を入れるには厳しかったので10月20日発売の NW-F807 を調達してみました。2chのNW-F800シリーズスレに書いたことや指摘された問題を以下に書いておきます。 プレイヤーアプリの選択 Google Pla…

Windows Phone の WebRequest のキャンセルとタイムアウト

Windows Phone の WebRequest にはタイムアウトの設定がありません。 タイムアウト機構は呼び出し側が独自に実装する必要があります。