たごもりすメモ

コードとかその他の話とか。

AWS LambdaのRuby .zipパッケージでgitから取得したgemを使う

AWS LambdaでRubyランタイムを使っててzipアーカイブで関数コードをアップロードしてる人向け。 基本的にはGemfileに依存関係書いてbundle config set --local path 'vendor/bundle'してbundle installすればいい。以下のドキュメントを読もう。 docs.aws.am…

PathtraqというLifeLogサービスを作った

最近何をやっていたかというと、タイトルの通り、Pathtraqというサービス、iPhoneアプリを作っていた。どんなサービスかと聞かれるとLifeLogというのが一番適切だと思うけど、LifeLogにも種類があって、これは位置情報を記録して検索するサービスになる。 ht…

iOS17/iPhone15でPhotosPickerItem#loadTransferable(type: Data.self)が動かなくなっていた

まーいけるだろ、と自作アプリが動いていたiPhone14 Pro w/ iOS16をiPhone15 Pro w/ iOS17に移行したところ、ビルドしなおしてインストールしたら普通に動いてたっぽいから油断してたら、タイトルの通りPhotosPickerを使って写真データを取り出してるところ…

源泉徴収票シリアストーク: 情報の不均衡とうまくつきあう

TL;DR 自分の給与額が業界内で高いのか低いのか、知るのは難しい 似たような条件の人どうしでうまく匿名化して共有しあえばいいのでは? という欲求を満たす源泉徴収票シリアストークという試みを紹介する 実際の実行にはレギュレーションが重要です 給与に関…

Xcode上のSwift(iOS App)プロジェクトでTestsターゲットのみビルドエラーが起きる

iOSアプリを書いてるんだけどちょっと一部(データの変換とかで)ちゃんとユニットテスト書こうかなと思ったりしても、なんか変なエラーが起きてビルドできなかったりする。なんでだよ。 おそらくAWS Amplifyへの依存、およびその依存ライブラリaws-crt-swift…

TokyuRuby会議14に参加してしゃべってきた

久し振りに開催されたTokyuRuby会議14に参加した。LTも申し込んでいて通ったので、LTもやってきた。なんかTokyuRuby会議が行われると、イベントが戻ってきたなあ、という気がする。よかった。 しゃべった LTの内容は最近やっているNameSpaceまわりの話。 5分…

SwiftUI PhotosPickerで選択した項目からJPEG/PNGを取り出す

SwiftUIで作るiOSアプリで、画像を選択し、その画像をどこかにアップロードしたい。アップロード先がHEICに対応してないのでJPEG/PNGあたりのフォーマットでやりたい。 これを考えたとき、iOS 16.0+ ならPhotosPickerが使える。が、実際に選択したあとでどう…

RubyKaigi 2023に行ってきた

2020年に開催できなかったのち、3年を経て松本市で行われたRubyKaigiに行ってきた。自分は2020年のときはスポンサー企業の一人としてやることがある予定だったのが、3年経って、なんでもないいち参加者として行くことになったなど、いろんな変化を感じた。そ…

ご意見募集: Rubyに名前空間サポート的なものが欲しいという話

LFAを書いたときの話にあるKernel#loadの第2引数で名前空間的なものを作れるんだけど、loadした先のファイルでrequireされてたらダメなんだよね、という話の続き。ダメなんだよねー、で終わってたんだけどRubyKaigi2023で@shioyamaさんのMultiverse Rubyを聞…

sqldefをMySQLに対してAWS Lambdaから実行するパッケージを作った

k0kubun/sqldefはすばらしいプロダクトで便利に使ってるんだけど、もちろんDBに接続できる場所から実行する必要がある。で、DBはAWSのprivate VPCにあるのでラップトップやCI環境からやるというわけにはいかない。しょうがないので、現在はEC2インスタンスを…

「研鑽Rubyプログラミング」はライブラリ作者の知識・技術の幅と深さを拡大する1冊

「研鑽Rubyプログラミング」を読んだので、その感想を書く。 届いた。研鑽を積むぞ! pic.twitter.com/YuL5WUyjap— tagomoris (@tagomoris) 2023年4月15日 なお本書の訳者である角谷さんに本をお贈りいただきました。が、その前から同書のβ版(電子版)を購入…

SwiftUIでNavigationStackを使っているとNavigation BarやBackボタンが隠せない? (そんなことなかった)

追記 NavigationViewで一度動くコード作ってからNavigationStackに戻してみたらうまく動いて、期待通りに遷移先でBackボタンがない状態が作れた。 NavigationStack(path: $path) { SplashView() .navigationDestination(for: SigninState.self) { state in G…

amplify-swiftを使ってAmazon CognitoでFederated Loginするときにクライアント設定で不必要なIdentity Providerを有効にしない

ていうか有効にしていたつもりもなかったんだけどamplify-swiftがそう動いてしまう、そしてエラーになる、という話。 結論としては、iOSアプリ側にあるamplifyconfiguration.jsonにおいて不必要なキーCredentialsProviderが存在すると自動的に使われてしまい…

EmacsでTypeScript/React開発する2023

世間に死ぬほど色々な方法があるのはわかっているがとにかくまっさらな状態から最短手順でEmacsでJSX/TSXが書けるようになりたい! という話。VSCodeとかそういう話には目を背ける。 tsxファイルはweb-modeで起動するようにすればシンタックスハイライトとイ…

象印の加湿器が最高で当面これしか使いたくないという話

ちょっとTwitterに書いたら食い付いてくる人が多かったので、ではアピールしとこうと思った。 象印の加湿器、とにかく手入れが簡単でこれ以外の加湿器はもう二度と買う気がないというくらい最高— tagomoris (@tagomoris) 2023年1月7日 TL;DR 衛生面などを考…

XcodeがMain.storyboardを見付けられずiOSアプリが落ちる

……ことがたまにあって、なんでかなと思ったけどgit checkoutなんかでstoryboardのリビジョンをXcode外部から操作してると起きるのかなという気がする。アプリが起動しかけてから以下のようなエラーメッセージ出して落ちるのがタチ悪い。 "Could not find a s…

LFAというAWS API Gateway用Lambdaをそのまま動かすRuby用Web frameworkを作った

この記事はRubyアドベントカレンダー2022の15日目の記事です。 以下のような話をお送りします: AWS Lambda + API Gatewayを使ってる話 LFAというWeb frameworkをガッと書いた話 LFAでLambdaの手元開発が楽になるのではという話 Ruby 3.1で導入されたKernel#l…

Fluentdのflush_mode immediateはいつ使うのか

Fluentd実践入門をあらためて手元でぱらぱらやってたら、しまった! この話をどこかにちょっとでも書こうと思ってたのに忘れてた! という話が出てきたので、忘れないうちに書いて放流する。 flush_modeとはなにか FluentdのOutputプラグインには<buffer>セクションで</buffer>…

「Fluentd実践入門」を10月8日に出版します

Fluentd実践入門 Fluentdの現バージョン(v1.15)について世界で一番詳しい本です。というか、Fluentdそのものだけについての、おそらく世界で唯一の技術書です。 出版社は技術評論社です。電子版もGihyo.jpやKindleはじめ各社で出ます。買ってね! gihyo.jp TL…

React appを手元でProduction modeで動かす

react-scripts startで使えるDevelopment modeだとなんか変なことがちょいちょい起きるので、動作確認をProduction modeでやりたい。 ところでこのアプリからはCORSリクエストを送りまくるのでHTTPSのサイトとしてlocalhostにアクセスしたい。Development mo…

@react-google-maps/apiでの描画地図にPolylineで線を描くと消えなくなる

という問題が起きてあれこれやってた。React難しいの巻。たぶんnpm startで起動できるDevelopment modeでだけ起きる問題。 問題 @react-google-maps/apiでReactアプリ上にGoogle Mapsを表示*1し、そこに好き勝手にマーカーとか線を描きたい。以下のような感…

RubyKaigi Takeout 2021でしゃべった

RubyKaigi Takeout 2021の途中ではあるけど、とりあえず自分の発表終わったのでメモ。 Ractor's speed is not light-speed from SATOSHI TAGOMORI Ractorをワーカーとして使うアプリケーションサーバを作ったよ! という話なんですが、まあこれは話の入りとい…

Amazon SESのメール受信は特定のリージョンでしか使えない

メモ。ap-northeast-1のコンソールでSES開いてても"Email Receiving"の"Rule Sets"が灰色になった(gray outした)ままで選択できなくて、ドメインのverifyとかIAMとかで何かうまくいってない? と調べてまわってた。結論としては特定のリージョンでしかサポー…

退職します2021

TL;DR 現職のTreasure Dataを本日を最終出社として退職します しばらくは休みをとりつつ次に何をやるかを考えるつもり 次は自分でビジネスを立ち上げるか、それともエンジニアリングチームを作るところにフォーカスするか、これから考える 技術顧問業もはじ…

Gradle経由でのテスト実行時、コンソールに失敗したテストケースの情報を出力する

`./gradlew test`とか`./gradlew build`とかしたときに失敗したテストの情報はこの`index.html`を見てね! っていうのがめんどくさくて、なんでデフォルトで失敗したテストの情報を出してくれないんだっけ、と思っている人、主に俺の問題を解決する。 ていう…

macOS Big Sur なM1 MacのEmacsでDocuments以下のファイル(など)を開く

M1 mac (macOS Big Sur)買ってからまだちゃんと開発とかに使えてなくてちょっとずつセットアップ進めてるんだけど、Emacsで ~/Documents 下とかが読めないことに気付いた。以前のバージョンで指摘されてた解法であるところの以下の方法もダメ: M-x ns-open-f…

Dropwizard ValidatorがListに対して正常に動かない

Kotlinが悪いのかListはそもそもダメなのか既知の問題なのかなどはまだ確認してない。追記: この問題っぽい。JVMのオプション追加でどうにかなるケースと、いややっぱダメみたいな話もあるのかな。トップレベルにListを使わないのが結局のところいちばんよさ…

DropwizardとShadow jarの話

AWS Lambda用にshadow jarをビルドしてたリポジトリで、別のデーモンプロセス*1をDropwizardベースにすることにして依存関係やビルド方法などを書き換えていったところ、設定ファイルに書かれてるLog appenderが見えない、みたいなエラーが出て起動に失敗す…

GradleプロジェクトでArtifactoryに依存ライブラリを置くときのKotlin DSLでの記述

なんかちょっとハマってたのでメモ。要するに公式ドキュメントのをどう書くか、だけなんだけど。Gradle Artifactory Plugin - JFrog - JFrog Documentation結果的にはこのissue commentを読んでやった。 // build.gradle.kts plugins { // ... others id("co…

コロナ禍の最中にグランツーリスモSPORTで10kg痩せた話

TL;DR 2019年11月末 73.9kg → 2020年8月末現在 64.2kg になるまで痩せた 原因がグランツーリスモSPORT*1しか思い付かない 食事制限などは一切なし、普段からそんなに食生活が偏ってはいないと思う、が、毎晩ビールは飲んでるぞ (追記) プレイ中の心拍数が100…