カルボナーラ街道

計測と観察

iOSDC Japan 2024にて、『メインスレッドをブロックさせないためのSwift Concurrencyクイズ』で登壇した

物理カンファレンス参加・物理登壇が初めてでした。発表はオンラインと比べてレスポンスをいただけたのでさほど緊張しませんでした。質疑応答は緊張しました。 イベントURL iosdc.jp 会社の記事 developer.hatenastaff.com iOSDCチャレンジのためのトークン…

Google Domains時代のドメイン転送機能がうまく移管できていなかったので、Honoでリダイレクタを書いた

ちょうど一年前に以下のような記事を書いたが、今日までの間にGoogle Domains終了*1があり、Cloudflare Registrarに移管していた。 tokizuoh.hatenablog.com 移管はしていたものの、Google Domains時代のドメイン転送機能がうまく移管できていなかった。http…

macOSのアップデートができない時は容量が足りていないことが原因かも

macOSのアップデートをしようと思っていつものようにSystem Settingsからアップデートをかけたところ、ダウンロード中に再起動がかかり、起動後はOSのバージョンが変わっていないということがあった。これはSystem Settings > General > Storageの空きが足り…

dotfiles盆栽記7: デフォルトブランチ名を知らない状態でgit switchする

一年ぶりの盆栽。 github.com 実行環境 $git --version git version 2.45.1 モチベーション 普段、デフォルトブランチ名が異なるリポジトリ間を行き来している。git switchする時にデフォルトブランチ名を思い出す必要があって非効率。エイリアスを作成しよ…

Swift Concurrency メインスレッドクイズ(3) 1問

実行環境 > swift --version swift-driver version: 1.90.11.1 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4) Target: arm64-apple-macosx14.0 > xcodebuild -version Xcode 15.4 Build version 15F31d モチベーション コードを書いてい…

Swift concurrency: Behind the scenes(WWDC21)を見ることでTask.yield()を使う必要性を理解できた

要約 今まで Task.yield() を積極的に使わなくても特に問題は無いと思っていたけど、以下の考えに落ち着いて積極的に使おうという考えに変わった。 Swift ConcurrencyではCPUコアと同数のスレッドが作成される タスクが完了するか、 Task.yield() を使ってス…

Swift Concurrency メインスレッドクイズ(2) 2問

実行環境 >swift --version swift-driver version: 1.90.11.1 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4) Target: arm64-apple-macosx14.0 >xcodebuild -version Xcode 15.3 Build version 15E204a モチベーション まだまだSwift Con…

Swift Concurrency 何秒かかる?クイズ 3問

実行環境 >swift --version swift-driver version: 1.90.11.1 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4) Target: arm64-apple-macosx14.0 >xcodebuild -version Xcode 15.3 Build version 15E204a モチベーション tokizuoh.hatenabl…

Swift Concurrency メインスレッドクイズ 5問

実行環境 >swift --version swift-driver version: 1.90.11.1 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4) Target: arm64-apple-macosx14.0 >xcodebuild -version Xcode 15.3 Build version 15E204a モチベーション コードレビューを…

Apollo iOSの @defer ディレクティブの実装を見る

モチベーション Apollo iOSのリリースページを見ていたら、preview-defer.1 というものがあった。 github.com 実験的に @defer ディレクティブの実装が行われている。v1.9.2時点のロードマップにも書いてある。 https://github.com/apollographql/apollo-ios…

transformPreference(_:_:) を使った子要素からの値伝搬

開発環境 $xcodebuild -version Xcode 15.2 Build version 15C500b 動作確認したシミュレータ: iPhone 15 Pro Max(iOS 17.2) モチベーション SwiftUIでviewの親と子それぞれに preference(key:value:) を指定すると、親のPreference値だけがその上位存在の o…

Hatena Engineer Seminar #28 個人開発編 にて、『運動モチベーション継続のためのiOSアプリ開発』で登壇した

イベントURL hatena.connpass.com 会社の記事 developer.hatenastaff.com 発表者のスライドも載っている。 発表ネタ 以下の記事がベース。登壇用にストーリーを考えてまとめた。 tokizuoh.hatenablog.com 今回は、id:onk さんからエンジニアセミナーどう?と…

Xcode 15.1でswift runの実行時間が元に戻っていた

モチベーション 以前『Xcode 15 で swift run が遅い』というタイトルで登壇したが、今日Xcode 15.2がリリースされたので様子を見た。 speakerdeck.com というのも、Xcode 15ではswift runの内部で(おそらくbetaの名残で)visionOSのSDKを探す処理が入って…

2023年を振り返る

去年 2022年を振り返る - カルボナーラ街道 去年のTry iOS関係で登壇を目指す。ネイティブアプリケーション開発が今年でかなり好きになったし、ビルドやテスト周りなどの日々の開発体験の向上に興味がある。そういった方向では今年はCircleCIを使った内容で…

2023年12月を振り返る

今月は同僚に会いに行く目的とJALのスカイメイトがそろそろ使えなくなるので使っておこう目的を叶えるために弾丸で大阪・京都に半日ほど滞在した。 りんくう公園 普段滅多に外出しないせいか、一日にありったけの予定を詰め込む関係で京都には二時間ぐらいし…

小粒な Tips の共有をしていきたい: 2023年にメモした iOS アプリ開発 Tips 3選

この記事は はてなエンジニア Advent Calendar 2023 の19日目の記事です。昨日は id:onk さんによる『「キャッシュは麻薬」という標語からの脱却 - id:onk のはてなブログ』でした。普段よく使っている Apollo Client では頻繁に更新するデータに関しては更…

はてなブログのデザインCSSをChrome DevToolsを使って微調整してリニューアルした

id:cateiru さんの記事を見て良いなと思ったので自分もカスタマイズした。 blog.cateiru.com デザインCSS デザインCSSを記述する - はてなブログ ヘルプ 今まで Life - テーマ ストア 素朴なデザインで今も気に入っている。今回はこのテーマをベースにデザイ…

2023年11月を振り返る

運動 GKPT 前回のTry ✅ 野菜ジュースだけではなく生の野菜を5回食べる 気がついたら90%くらいは食前にサラダを食べるようになった ✅ ストレッチ20回やる → 30回 ✅ 屋内自転車マシン13回乗る → 13回 月の後半からは習慣化したストレッチの直後にやることでセ…

YUMEMI.grow Mobile #8 にて、『Xcode 15 で swift run が遅い』で登壇した

イベントURL yumemi.connpass.com 発表資料 speakerdeck.com 発表ネタ Xcode 15 同梱の Swift でインタプリタを作っていた時に、明らかに swift run が遅くて原因を探したことがきっかけ。 github.com たまたま Swift Forums を見ていたら同じような投稿があ…

2023年10月を振り返る

運動 GKPT 前回のTry ✅ 散歩: 20km歩く ✅ ストレッチ: 20回やる 散歩20kmはリモートワーク生活ではかなり厳しかった。朝始業前に散歩して距離を稼いだ。 ストレッチは機能的筋力トレーニングでカウントしている。朝と夜にやった。 Good 自分用アプリのページ…

2023年9月を振り返る

下から見る明石海峡大橋 リフレッシュをしに船に乗った。海は良い。いつか海が近い県に引っ越したい。 運動 ノーマル。 柔軟剤 www.lenorjapan.jp 気分転換にコロコロ柔軟剤を替えていて、久々にドンピシャなものを見つけたのでメモ。匂いが柔軟剤柔軟剤して…

運動を継続するために自分用のiOSアプリを作っている

Apple Watch Series 6をつけて運動している id:tokizuoh です。 要約 二年前まで運動が三日坊主で続かなかった 継続するためにアプリを作り始める 今後 要約 二年前まで運動が三日坊主で続かなかった 継続するために運動のログを可視化するアプリを作り始め…

コード上の複数行コメントを翻訳用に一行に変換するツールを作った

モチベーション /// Custom scalars defined in a schema are generated to conform to the ``CustomScalarType`` /// protocol. By default, these are generated as typealiases to `String`. You can edit the /// implementation of a custom scalar in …

2023年8月を振り返る

運動 GKPT 前回のTry ✅ 散歩20km → 21km 月の中旬に体調を崩していて達成できるか微妙だったが回復した直後に猛烈に歩いた ✅ 朝に1回以上散歩する → 1回 朝は寝ていたい Good 今月は自然とブログネタが浮かんで記事数が思いの外多かった Keep Scrapboxにメモ…

非同期コミュニケーションで情報の出し惜しみをしない

非同期コミュニケーションで同期的なコミュニケーションをシミュレートしようとすると、コミュニケーションミスが発生する可能性があるので、出せる情報は思いついた時点で出す。 「これって◯◯ですよね?(心の中: この時点で自分の中で答えはあるが、相手の…

技術的なインターネットサーフィンをする時はScrapboxにメモを残している

tl;dr 技術的なインターネットサーフィンをする時は記事に対するメモと自分の考えをセットでメモしている。自分の考えを書くことで流し見するよりは記憶に定着しやすく、メモをすることで社の雑談や1on1でサッと出せるようになって便利。 Scrapbox scrapbox.…

「実践 Svelte入門」を読み終え、info.tokizuoh.devにWebアプリケーションを公開した

gihyo.jp モチベーション Gihyo Digital Publishing*1を眺めていた時に見かけたことがきっかけで、JavaScript文脈でコンパイルという概念が出てきて興味が出た。Svelteという名前は聞いたことがあったので触ってみたかった。 読んでどうだったか 普段Webアプ…

前のブログを削除し、跡地から今のブログに誘導

放置していた前のブログ(https://tokizuoh.dev)を削除した。跡地にアクセスした際はGoogle Domainsのウェブ転送機能を使って https://good-bye.tokizuoh.dev に転送されるようにした。これを書いているうちに転送する必要性は無い気がしてきた。 前のブロ…

電子書籍を読むオーバーヘッドをmacOSのショートカット.appとRaycastで削減する

電子書籍を読むオーバーヘッド 電子書籍を読むオーバーヘッドとは、デバイスの起動時間だったり、リーダーにたどり着くまでの時間のことを指す。勝手に決めた。 本を物理で読むか電子で読むかは、本当に悩ましい話題。 自分は流派を数年ごとに変えているが、…

「土台からしっかり学ぶ── ソフトウェアテストのセオリー」を読んだ

https://www.ric.co.jp/book/development/detail/2395 モチベーション 一度体系的にテストの種類や手法について学びたい 日頃からユニットテストは書いているがそれ止まりなので手札を増やしたい 読み終えてどうだったか テスト全般に対して超カッチリとした…