blurhash とは

blurhash という興味深い OSS を発見したのでメモ。

  • 「画像」から「ブラー画像」を作るための「ハッシュ値」を作成できる
  • ハッシュ値」から、ブラー画像を作成できる

f:id:daisuke-t-jp:20200222232438p:plain

イメージはこんな感じ。

で、これは何に使うかと言えば、たとえば「アプリがサーバから画像をダウンロードして表示」という場面だ。

具体的には↓

  1. サーバ側に画像を登録
    • このタイミングでサーバは、ブラー画像のハッシュ値も作成しておく
  2. アプリ側からサーバ側に画像要求リクエス
    • サーバ側は、アプリ側に「画像」と「ブラー画像のハッシュ値」を返す
  3. アプリ側は画像ダウンロードする
    • 画像ダウンロード中は「ブラー画像のハッシュ値」からブラー画像を作成し、表示しておく

これで、画像ダウンロード中は、一律に「Loading..」みたいな表示にならず、その画像を想起させるブラーの画像を表示しておけるってわけだ。


実際の動作は以下のサイトで確認できる

映画『たそがれ清兵衛』の感想

たそがれ清兵衛

たそがれ清兵衛

  • 発売日: 2013/11/26
  • メディア: Prime Video

なにか映画を流しながら PC 作業しようかなあ、と思い、チラチラみながらやってたのだが、だんだんとこれはちゃんと見たほうがよいんじゃないか?と思って、PC を閉じて、映画に集中した。

そのくらい良い映画だった。

まず最初の暗い葬式のような場面が、しんとしていて、悲しさがでていて、はじまりからこの映画の完成度を物語っている。

つぎに、宮沢りえが登場して、清兵衛との恋の予感がある。観ていて感情移入できて、最初の暗い葬式と比べてなごやかなシーンで、人間の感情の描き方の質の高さと幅広さがある映画だなと感じられる。

最初のふたつのシーンで出ているが、この映画は、未来の愛の希望と、過去と現実が示す哀しさを描いてる。

そのコントラストが淡く、非常に人間的で共感できる。

全体的にこの映画は淡々と進んでいき、コカ・コーラのような一瞬で頂点にいく爽快感みたいなものはないのだけど、じわじわとゆっくり惹きつけられる面白さになっている。それが、古き良き日本映画という風格を醸し出している。

最後のシーン。 愛する宮沢りえが待っているかもしれない自宅に帰る清兵衛。

ここはおなじ山田洋二監督の幸せの黄色いハンカチを彷彿とさせる切なさがある。

愛する人が待っているかどうかだ。

OSM データから POI データを抽出する

OSM データの読みだしには Overpass API というのがあり、それを介してデータを取得することができる。

手取り早くこれを試すには GUI で Overpass API を試せるサイトがあるので、これを使ってみる↓

https://overpass-turbo.eu/


この左側に以下のクエリを書く。

この例では "public_transport"="station" として、駅データを抽出しているが、条件を変更することで、いろいろなデータを抽出できるはずだ。 OSM の参考リンク

[out:json];
area["name"~"日本"];
node(area)["public_transport"="station"];
out body;


で「実行」ボタンを押すと、以下のように駅一覧が地図上にマークされる。

f:id:daisuke-t-jp:20200217224329p:plain

さらにこの結果を JSON で欲しければ、

メニューを「エクスポート」→「クエリ」と進んでいき

「OverpassQL (コンパクト) へ変換」をクリックする。

すると API にクエリがくっついた形のリンクがあるので、これを使用する。 たとえば、今回の場合だと

https://overpass-api.de/api/interpreter?data=%5Bout%3Ajson%5D%3Barea%5B%22name%22%7E%22%E6%97%A5%E6%9C%AC%22%5D%3Bnode%5B%22public%5Ftransport%22%3D%22station%22%5D%28area%29%3Bout%3B%0A

になり、駅一覧の JSON データが得られる。


プログラムやバッチ的にやりたい時は

たとえば Python の Overpass API ラッパーが用意されていたりするので、これを使うと良さそうだ。

https://github.com/mvexel/overpass-api-python-wrapper

SwiftUI の UIView を画像にして保存するサンプル

SwiftUI で UIView の内容を画像(UIImage)にして、アルバムに保存するサンプルを作った。

SwiftUI は現在の View を直接 UIView として扱うことは難しいので UIApplication 経由で UIView を取得する感じになる。

extension UIView {
    
    func image() -> UIImage {
        let renderer = UIGraphicsImageRenderer(bounds: self.bounds)
        
        return renderer.image { rendererContext in
            layer.render(in: rendererContext.cgContext)
        }
    }
    
}

extension UIApplication {
    
    static func image() -> UIImage? {
        guard let rootViewController = shared.windows[0].rootViewController else {
            return nil
        }
        
        guard let view = rootViewController.view else {
            return nil
        }
        
        return view.image()
    }
    
}

SwiftUI(iOS 13.3) / ScrollView 上に配置した List の項目選択が残る問題

SwiftUI iOS 13.3 で

  • ScrollView 上に List を配置する
  • その List から NavigationLink で遷移する

を試すと、項目の選択が残ったままになる。

再現させる最小限のサンプルを GitHub においた↓

iOS 13.2 の時点で発生していたんだけど、 iOS 13.3 になっても変わらず。。。

困ったもんだね。




似たような問題が StackOverflow でも上がっていた↓

非税理士が申告書などを作成するソフトを開発、販売することは禁止されているか?

税理士の業務は、独占業務なので、非税理士が事務をすると違法になる場合がある。

では、ソフトウェア・アプリで税理士に関連したものを開発するとどうなるのか?




https://www.nta.go.jp/taxes/zeirishi/zeirishiseido/ihan/qa02.htm

問2-3 他人の求めに応じ、業として、申告書等の作成ソフトを開発又は販売することは、非税理士により行うことが禁止されている税理士業務に該当しますか。 答 非税理士が申告書等の作成ソフトを開発又は販売することは、非税理士により行うことが禁止されている税理士業務のいずれにも該当しません(問2-1参照)。 【参考法令等】

法第2条、第52条

大丈夫そうである。