タグ

ブックマーク / cockscomb.hatenablog.com (18)

  • Apple Vision Pro故障録 - cockscomblog?

    お盆前、Apple Vision Proを着けると、左目の視野の下方に黄色い横線が見えた。図示すると次のようになる。 左目の視野下方に黄色い横線 もちろん現実に黄色い線があるのではなく、Apple Vision Proを介した視野にだけ黄色い線がある。嫌な汗が出てくるのを感じつつ、問題を切り分けていく。 右目を閉じたり左目を閉じたりして、左目の視野にだけ表示されることを再確認 再起動を試してみるが、改善しない 「環境」を使うと表示されない 空間写真を撮ると、写真の下方にも写り込んだ この時点で、ビデオパススルー用の左のカメラモジュールに発生した不具合である蓋然性が高い。ディスプレイの問題なら「環境」でも表示されるだろう。ということでGenius Barの予約を取った。 Genius Bar 土曜日にGenius Barへ行った。担当してくださるジーニアスの他に、「後学のため」ということで別

    Apple Vision Pro故障録 - cockscomblog?
  • XCFrameworkをSwift PackageとしてGitHubでリリースする - cockscomblog?

    以前、XCFrameworkをバイナリターゲットとしてSwift Packageに埋め込んだライブラリを作った。 これを容易に利用するためには、ビルド済みのXCFrameworkをどこかにアップロードして、それを参照するSwift Packageを公開するとよい。XCFrameworkはGitHubリリースに成果物として置いておくことにする。 ということで、前回は概ねこれを手作業でやったのだけど、手作業したくないのでGitHub Actionsにした。 リリースが自動化されているソフトウェアは信頼性が高い。 GitHub Actionsでバイナリターゲットを含むSwift Packageをリリース 自動化にあたって手順を書き出してみると、次のようになる。ややこしい。 XCFrameworkをビルドしてアーカイブする XCFrameworkのチェックサムを計算 バージョン番号を決める Pac

    XCFrameworkをSwift PackageとしてGitHubでリリースする - cockscomblog?
  • 1Password CLIで.env.localを作る - cockscomblog?

    1PasswordにはVS Code拡張があって、.env ファイルなどにハードコードされたシークレットを1Passwordに保存して、secret reference というURL形式に置き換えてくれる。 ちなみにコミュニティ製のJetBrains IDE用の拡張もある。 これを使って .env.local.template を作る。 TWITTER_CONSUMER_KEY='op://Private/Twitter/API Key/consumer_key' TWITTER_CONSUMER_SECRET='op://Private/Twitter/API Key/consumer_secret' op:// のところがsecret reference。 .gitignore ファイルでは .env.local は無視しているけど、.env.local.template はリポジトリ

    1Password CLIで.env.localを作る - cockscomblog?
    yutailang0119
    yutailang0119 2022/12/27
    よさそう!
  • ショートカット.appでjq - cockscomblog?

    jq jqはJSONをいい感じにクエリできるやつで、広く使われている。 $ echo '{"foo": "bar"}' | jq '.foo' "bar" 例えばGitHub Actionsのランナーにもデフォルトで入っている。 あるいはGitHubのCLIツール gh にも --jq オプションがあって、統合されている。 つまりソフトウェアエンジニアにとっては、jqはJSONを触るときのデファクトスタンダードツールと言える。 ショートカット.app iOS/iPadOS/macOSには、ショートカット.appがある。特に説明は不要と思う。 ショートカットでなんらかのJSON APIを利用したい場合、「URLの内容を取得」アクションでデータを取得して、「辞書の値を取得」(あるいは「リストから項目を取得」)アクションで情報を取り出す。 これでいいといえばいい。が、やはりjqを使いたい。 Sw

    ショートカット.appでjq - cockscomblog?
    yutailang0119
    yutailang0119 2022/12/23
    gomobileって実用できるんだ
  • ソフトウェアエンジニアとしての最初の10年 - cockscomblog?

    働き始めてから丸10年経った。 2012年、僕は北海道に住む大学院生で、趣味としてプログラミングを楽しんでいた。Appleのファンだから、macOSやiOSのアプリケーションを開発して、ちょっとでもAppleに近づいたような気持ちになっていた。その夏1ヶ月のインターンシップに参加した。インターンシップで、それまで趣味だったプログラミングが突然違った価値を持ち始めて、これを仕事にしないといけないと思うようになった。それで、両親や先生に謝って、大学院を退学して、インターン先の会社に正社員として入社した。それが2012年11月のことで、それから10年間、株式会社はてなで働いている。 この業界では、10年同じ会社で働いているというと、ちょっと珍しい部類なのかなと思う。とはいえ社内ではそれほど珍しくもなくて、あまり気にならない。いろいろなプロダクトを夢中になって開発していたら、いつの間にか10年経っ

    ソフトウェアエンジニアとしての最初の10年 - cockscomblog?
  • ステージマネージャの使い方 - cockscomblog?

    macOS VenturaおよびiPadOS 16で導入されたステージマネージャだけど、どうやって使うのか段々わかってきた。 ステージマネージャのコンセプト ステージマネージャは、ウインドウのセットを作る機能だ。タスクに合わせてウインドウのセットを作れば、複数のタスクを行ったり来たりする場合に、ステージマネージャの切り替えをするだけでよくなる。 例えば、Webサービスを作っているとき、筆者の場合、Visual Studio CodeとTerminalGoogle Chromeを使う。これをひとつのセットにまとめておく。iOSアプリを作っているときは、XcodeとSimulatorをセットにする。同僚とのコミュニケーションや通知を受け取るのに、Slackとメールもセットにしておく。作業内容に応じてこれらを切り替えながら仕事を進めていくイメージだ。 ステージマネージャの使い方 Appleのド

    ステージマネージャの使い方 - cockscomblog?
    yutailang0119
    yutailang0119 2022/10/28
    macOS Ventura便利
  • SwiftUIでSFSafariViewControllerを使う手法の探求 - cockscomblog?

    SwiftUIからSFSafariViewControllerを使いたい場面は多い。 SafariView SFSafariViewControllerはビューコントローラーだから、UIViewControllerRepresentableを使ってSwiftUIのビューにしてしまうのが簡単か。 import SwiftUI import SafariServices struct SafariView: UIViewControllerRepresentable { typealias UIViewControllerType = SFSafariViewController typealias Configuration = SFSafariViewController.Configuration private let url: URL private let configuratio

    SwiftUIでSFSafariViewControllerを使う手法の探求 - cockscomblog?
    yutailang0119
    yutailang0119 2022/10/04
    よさそう
  • 東京に引っ越しました - cockscomblog?

    はてなのインターンシップに参加した2012年の夏から、10年弱、京都で暮らした。その間に結婚もしたし、二人の子供にも恵まれた。京都では2Kの賃貸住宅に住んでいて、ひどく手狭だった。上の子は来年度から小学生になる。その前に引っ越しておきたい。 勤務先の株式会社はてなは、フレキシブルワークスタイル制度というので、だいたい全国どこに住んでもよくなった。オフィスに出社することも稀なので、通勤時間を気にする必要もほとんどない。ということで、京都にこだわらず、どこにでも引っ越せる。 いろいろ合理的に考えると、東京近郊がいいということになった。そもそも僕は北海道出身、は静岡出身であるから、帰省などに都合がいいのは関東だ。家賃が高くなるのを心配したけど、地域によっては京都の街中より安いくらいだった。 ということで、先月末に引っ越してきた。 部屋が広くなったおかげで、以前は部屋の狭さから我慢していたいろい

    東京に引っ越しました - cockscomblog?
    yutailang0119
    yutailang0119 2022/07/14
    寂しくなります
  • Swift ConcurrencyのwithTaskCancellationHandlerとSendable - cockscomblog?

    Swift 5.5がリリースされた。おめでとうございます。 Swift 5.5の目玉はもちろんSwift Concurrencyだ。言語機能として並行処理がサポートされた。async/awaitの構文だけでなく、Structured Concurrencyとしての整理や、actorの導入など、野心的な取り組みと言える。 Swift Concurrency Swift Concurrencyに直接関係するSwift Evolutionの提案はこれだけある。 SE-0296 Async/await SE-0297 Concurrency Interoperability with Objective-C SE-0298 Async/Await: Sequences SE-0300 Continuations for interfacing async tasks with synchronou

    Swift ConcurrencyのwithTaskCancellationHandlerとSendable - cockscomblog?
    yutailang0119
    yutailang0119 2021/09/27
    まだまだ大変
  • WWDC21大夢想 - cockscomblog?

    毎年この時期になると、毎日のようにWWDCのことを夢想している。 去年はSwiftUIのアップデートApple Silicon搭載のMac、ホーム画面のウィジェットに期待していた。 去年の期待は、いろいろなことをうまく言い当てているようにも見えるし、少し過剰なところもあった。WWDC20では叶わなかったいくつかの部分については、引き続きWWDC21でも期待している。 ではWWDC21では何が発表されるのか。 Swift 2014年にSwiftが発表されてから7年になる。SwiftはOSSで開発されているので、次にどのようなアップデートがあるか、事前に窺い知ることができる。 swift-evolutionによると、次のバージョンはSwift 5.5となり、特に並行処理の言語的なサポートに注力されている。async/awaitの構文や並行処理の単位としてのTask、actorモデルの導入が決

    WWDC21大夢想 - cockscomblog?
  • SwiftUIのDynamicPropertyを試す - cockscomblog?

    SwiftUIにはDynamicPropertyというprotocolがある。 これを使ってみようという趣旨の記事を見かけた。 ので、私も試してみました。 @Now import Combine import SwiftUI class Clock: ObservableObject { @Published private(set) var date: Date = Date() init() { Timer.publish(every: 1, on: .main, in: .default) .autoconnect() .assign(to: &$date) } } @propertyWrapper struct Now: DynamicProperty { @StateObject private var clock = Clock() var wrappedValue: Date

    SwiftUIのDynamicPropertyを試す - cockscomblog?
  • 子供にアプリを作る - cockscomblog?

    3歳の息子にiPad Proを与えている。2018年の11インチのiPad Proで、僕のお下がりだ。Apple Pencilも与えてあるが、こちらは1歳になったばかりの娘が狙っているため、恐れた息子はApple Pencilをなるべく片付けておく。 自由に使っていい iPad Proを与えたからといって、3歳の息子がそれで何か大層なことをするということはない。退屈なときにYouTube Kidsで何かを見ていることが多い。ときどきGarageBandとiRig Keys 2で音を出して遊んだり、ProcreateとApple Pencilで謎の絵を描いたりしている。こういうのは大人も一緒にやってあげると喜ぶ。Smart Keyboardをくっつけて「ブログを書いてる」と宣ったりもする。あとは週末に祖父母とFaceTimeをする。 とにかくiPadを自由に使わせている。自由に使えない道具に

    子供にアプリを作る - cockscomblog?
    yutailang0119
    yutailang0119 2020/12/16
    いい話
  • WWDC20ファーストインプレッション - cockscomblog?

    WWDC20のKeynoteをみて、ドキュメントを乱読し、Platforms State of the Unionをみて、ちょっと寝て、仕事をしている。今はめちゃくちゃ眠たい。仕事休んだらよかった。 予想の振り返り 一昨日、ちょっとふざけた感じで、各メディアの予想と筆者の考えをまとめて公開した。 今年はiOS 14の早期ビルドがリークしていたと言われている。そのせいか、各メディアの予想はかなり網羅的だったと言える。筆者の予想も全体的にはいい線だったと思う。 ほぼ正解で震えてる https://t.co/HqYkEARRC9— giginet (@giginet) 2020年6月22日 「SwiftUI 2」と書いた内容は、ウインドウをSwiftUIで作れるとか、穏当に実現している。SwiftUIのパラダイムにはあまり大きな変化がないが、それでも注目すべきことがあるので、いずれ紹介したい。

    WWDC20ファーストインプレッション - cockscomblog?
    yutailang0119
    yutailang0119 2020/06/23
    最高
  • SwiftUIではSingletonの代わりにEnvironmentを使うことができる - cockscomblog?

    ここで言うSingletonというのは、ある種のグローバル変数を指している。そもそもクライアントアプリケーションの開発においては、実質的なグローバル変数が出現しやすい。環境にたった一つしか存在しない、存在すべきでない、というものが見出せる。例えばタイムゾーンがそれである。アプリケーション内のタイムゾーンはシステムに合わせるのが自然であり、アプリケーション中で複数存在することはほとんど起こり得ない。 iOSやmacOSでは、タイムゾーンを表すのはFoundation frameworkのTimeZoneである。システムのタイムゾーンはTimeZone.currentで取得できる。これはSingletonパターンのインターフェースに近い(当にインスタンスが一つであるかどうかをここでは問題にしない)。 このように環境中で存在する個数が限定されるような値を表すのに、Singletonパターンが用

    SwiftUIではSingletonの代わりにEnvironmentを使うことができる - cockscomblog?
  • 紛らわしい文字列をもっと紛らわしくする - cockscomblog?

    同僚にid:yashigani_w(ヤシガニ)とid:yigarashi(ワイイガラシ)がいる。いかにも似ているが、あるとき一緒に仕事をすることになって、紛らわしさが限界を超えた。 yashigani yigarashi そうとわかって見たら、なるほど「y」で始まって「i」で終わるのが似ているね、くらいに思うかもしれない。しかし不意にSlackGitHubで見かけると、一瞬どちらかわからない。 この紛らわしさをより俯瞰してみるため、画像にしてみました。 Photoshopで作った どうだ紛らわしいだろう。全体的な形がなんだか似ている。 ところでこの画像はPhotoshopで作った。テキストにガウシアンぼかしをかけて、その後から二値化した。なかなかかっこいいから、もっといろいろ試してみたい。 前置きが長くなったが、テキストにガウシアンぼかしをかけて、その後から二値化 するのを、macOS

    紛らわしい文字列をもっと紛らわしくする - cockscomblog?
  • マツコの知らない State Restoration の世界 - cockscomblog?

    慣れない街へ出かけるとき、電車の中で目的地までの道のりを「地図アプリ」で検索しておいて、駅を出てから地図を見て移動したことはありますか。あるいは「ネットショッピングアプリ」で欲しいものが見つかって、衝動買いするにはちょっと高価だったときに、レビューを読んだりネット上での評判を確かめたりしたことはありませんか。もしそんなとき、地図アプリやネットショッピングアプリを離れて他のことをして、また戻ってきたときに、そのアプリは元の画面のままですか。それともアプリの最初の画面に戻ってしまっていますか。 iOS の State Restoration という機能は、アプリを元の状態に復元するための仕組みを提供します。メモリが不足してバックグラウンドのアプリが終了した後、次に起動したときに、アプリを元の状態に戻すことができます。地図で見つけた道順や、検討中の商品、または入力中のメッセージや、さっき見ていた

    マツコの知らない State Restoration の世界 - cockscomblog?
  • Swiftにおけるclassとstructの使い分け - cockscomblog?

    新年あけましておめでとうございます。 class, struct Swiftにはclass (class)の他にstructure (struct)があり、どちらもよく似た機能を提供する。しかしそれぞれ参照型 (reference type)と値型 (value type)という違いがあり、このことはパラダイムの違いをもたらす。そこで多くのSwiftプログラマーは、classとstructのどちらを採用するべきか迷いがちである。記事ではこの問題について議論を深めたい。 structはカッコいい classについてはなじみ深いと思うので、structの特徴を整理する。はじめに述べたようにstructは値型である。値型であることがstructを大きく特徴付けている。 structはデフォルトで不変である。var, mutating, inoutのキーワードを用いることで、この不変であるという

    Swiftにおけるclassとstructの使い分け - cockscomblog?
  • Flutterを試した - cockscomblog?

    flutter.io 先日なんとなく物見遊山的にFlutterを試してみた。特に事前の知識もなく数時間で試した程度で、全体に不案内ではあるから、それなりの感想であることを先に断っておく。 (当方はiOS/Androidのネイティブアプリの開発や、Reactを使ったWebフロントエンド開発の多少の経験を有しています) 開発環境 IntelliJ IDEAのFlutter開発環境 セットアップ Get Started: Installにしたがって環境を構築した。Homebrewなどでインストールできるようにしようという動きもあるが、現時点では手でSDKを配置する必要があるなど、少し手間がかかる。経験がないと少し難しいかもしれないが、時間が解決するだろう。 エディタ IDEとしてIntelliJ IDEAにDartプラグインとFlutterプラグインをインストールした。プラグインのできがよく、筆

    Flutterを試した - cockscomblog?
  • 1