Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

Flock of Pull Request / AI Agent時代における型チェックの重要性 / AIにホームディレクトリをぶっ壊されないようにする

最近は業務でもプライベートでもすっかりLLMにコードを書かせるのが日常の風景になって、部下の決裁稟議に淡々とハンコを押す課長みたいな気持ちで"コーディング"している。 ところで、最近大きめのタスクを開発していて、もちろんそれにもLLMを――――Claude C…

ピを広めたい

私は対外的に私のパートナーのことを「ピ」といったり書いたりしている(それが可能な場合)。パートナーというとなんだか堅苦しい役所的な感じがする一方、ピは愛情豊かである。たった一文字なので、これも便利である。 ピには、インターネットや現実世界で…

筋トレをするように時間管理をしろ、なぜならノートレで大会出てもお遊戯会にしかならないしお遊戯会だと分かっているから辛くなるだろう

気を抜くとすぐ風呂上がりにYouTubeを見て午前2時とかになってしまう。 やりたい事ややらなくてはならない事はいくらでも思い付くのに、割とこうなってしまう。買い物リストは?NTTのカード払いを切り替えるのは?病院の予約をやり直さなきゃ・・・ なんなの…

Scalaでsbt 2で遊ぶときの手順メモ

メモです project/projectを削除する sbt 2に対応していない古いbloopを読み込もうとしてコケるため metals.sbtで最新のbloopを指定してやる project/build.propertiesで最新のsbt 2を指定する

推測するな、計測せよ / 引っ越しました

先日引っ越した。本当は引っ越してすぐ書かないと記憶が薄れて記録の旨味が無くなってしまうのだが、大規模な引っ越しだったのでとにかくやることが多くてそれどころではなかった。とうとう一ヶ月経過してしまった。長袖で活動していたのが、いつのまにか半…

炊飯器のキャッチコピーがインフレしすぎている件

先日引っ越した。引っ越したはいいが炊飯器を持っていないので、これを機に購入することにした。 ひとまず店頭で機能や選び方の雰囲気をつかむのが良いと思ったので、近所のヨドバシに行ったところ、怒涛のキャッチコピーに襲われた。 CGの気合いが入りまく…

Git worktreeをfzfとtmuxで縦横無尽に移動するためのコマンド

zsh向けですが、だいたいどのシェルでも動くと思います。claude --worktreeを使っているときに便利だと思います。 W() { local selected selected=$(git worktree list --porcelain \ | awk '/^worktree /{path=$2; name=path; gsub(/.*\//, "", name); prin…

Claude Code Opusはデバイスドライバも作れる / VAIO SX14-Rのキーボードバックライトを点灯させよ

先日業務マシンを変えた。VAIO SX14-Rである。もともとプライベートで持っていたのだが、かなり出来が良かったので業務PCとしても採用したのだ。 blog.3qe.us で、一つ問題があった。キーボードバックライトが点灯しないのだ。 バックライトを点灯させる旅 …

Scalaコードを最速でCloudflare Workerにデプロイする

以前、ScalaのコードをScala.jsを使ってCloudflareにデプロイした。 blog.3qe.us 上掲の記事を書いた時点では、Scala CLIにまだ慣れていなかったため使っていなかったが、現在はちょっとしたコードのビルドにはScala CLIのほうが便利なので、これを使ってみ…

Waylandでtmuxのコピーが使えなくなっていたがwl-copyで治った

業務PCを入れ替えたところ、tmuxのコピー機能が使えなくなっていた。 元々の.tmux.confは以下のような感じになっていた: setw -g mode-keys vi bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi y send-keys -X copy-pipe…

ANA Payを人力(+Cloudflareパワー)でマネーフォワードに連携する

最近よく旅行に行くようになったので、マイルをしこしこ貯めている。普段の買い物でもマイルを貯めたいが、航空会社のカードを作るほどでもない(というかもうカードはたくさんある)ので、ANA Payというスマホ決済サービスを使っている。 www.ana.co.jp 普…

Git Worktree上でDocker Composeのポートが衝突するのを防ぐツールを書いた

Git Worktreeが便利だ。最近はClaude Codeがネイティブに--worktreeオプションを提供するようになったため、単一のリポジトリで同時並行的にAI Agentを活用した開発ができている。 git-scm.com そこで、Git Worktree環境下においてdocker composeの各サービ…

Scalaでテストにタグ付けして、特定のタグのテストだけ実行したりしなかったりする

Scalaのsbtなどでテストを実行していて、特定のテストだけ実行したりしなかったり、ということをやりたい、という状況は多い。その方法を解説する。 復習: Scalaでのテスト テストにタグをつける タグの定義 タグをつける 実行するテストを選別する カスタム…

Scalaの複数変数定義とjava.util.Scannerを組み合わせると一気に値を読み取れて便利でかなりUNIX哲学を感じる

昨日、FOLIOさんのオフィスでイベントがあった。めちゃくちゃ行きたかった!!! くやしい!!! のだが、資料がアップされてきているのでホクホクだ。ありがたい。 そんな中でこのような資料があった: #FOLIO_Meetup 登壇させていただきました!こちら登壇資料で…

AIとどう付き合っているか

人々がAIとの付き合い方を模索している様子がネットに流れてくる。 文脈: tanishiking24.hatenablog.com uiuret.hatenablog.com 自分はLLMの専門家でもなければ、脳が沸騰してメルトダウンする程AIで加速している訳でもない。まあそれなりにAIに物事を調査さ…

Scala 3.8が出たので紹介します

Scala 3.8.1がリリースされた。 scala-lang.org このリリースのお知らせが出た時点で3.8.1が出ているのだが、なぜ3.8.0のときにリリースノートが出なかったかというと、3.8.0にはバグがあったため、それが修正されてからリリースノートが出たためだ。 www.sc…

開発環境現状確認 2026

ネットの知人がやっていたので自分も現状どうなっているかを紹介したいと思う。 OS Linux、FreeBSDが中心になっている。macOSはプライベートでは全く利用していない。Windowsはもっぱらゲーミング用途だが、最近はLinuxでもまともにSteamのゲームが動くよう…

Element / Matrixをインストールしてプラットフォームに検閲・AI学習されないコミュニティを作ろう

Elementというアプリがある。これはプライバシーを強化したDiscordやSlackみたいなもので、検閲や監視、そしてAI無断学習を受けずにコミュニケーションをとり続けることができる。これは通信が暗号化されて届くため、運営からは画像が見えないのだ。 あいに…

買ってよかったもの 2025

今年もなにやら散財する一年だった。 玄米茶 ドライレイヤー タニタの温湿度計 in.T Jackery SolarSaga 100 ランドリーラック スチール引き出し アイマスク キューピーコーワヒーリング AirTagのパチモン スマホストラップ コロンビアの手袋 Ready or Not 靴…

sbtで衝突している依存性を検出するにはevictedを利用する

掲題の通り。evictedはプロジェクトの依存性を全て確認し、依存性が衝突していたりbinary incompatibleの可能性があるものを検出できる。 手元にあった古いプロジェクトで試してみた様子: % sbt > evicted [warn] Found version conflict(s) in library depe…

HNSWのビジュアライザを作成した

この記事ははてなエンジニアアドベントカレンダー2025の15日目の記事だ。遅くなってすみません。 qiita.com HNSWというデータ構造がある。 en.wikipedia.org このデータ構造は、あるクエリした点からの(近似的な)近傍のデータを求めるのに最適化されている…

Scalaのアーティファクトの公開を楽にするツールscala-pgp-bootstrapを作成した

Maven Centralへのアーティファクト登録の際に必要になるPGP鍵の生成と公開、そしてGitHub Actionsシークレットへの登録を同時にやってくれるツールとして、scala-pgp-bootstrapを書いた。 github.com 使い方は簡単で、Coursierを持っているならcs launch de…

mdocのCLI版コマンドをScala 3で動作させるにはcs launchを使うと便利

mdocというツールがある。 scalameta.org MarkdownにScalaのコードを書くと、自動的にこれをコンパイルして値が埋まった状態にしてくれるというもので、ドキュメンテーションに非常に便利だ。 例えば以下のようなコードスニペットがあるとする: ```scala mdo…

薬がねぇ

前回はこちら。 blog.3qe.us 先日定期通院した。アトモキセチンを30mg飲んでいるが、若干?調子が良いこと、試しに40mgにしてみて様子を見ること、などを話した。 薬局に行って処方箋を出すのだが、しばらくするとなにやら薬剤師がウ〜〜ムという表情をして…

Goroutineよりも高級で、Async/Awaitほど世界を分断しない、Oxという選択肢

他の言語の非同期プリミティブと比べてもOxかなり良いな〜という記事です。 先日Ox v1.0.0がリリースされた。Oxはプログラミング言語Scalaの非同期処理ライブラリで、Java 21から搭載されたVirtual Threadの機能を活用して、非同期処理のための道具を使いや…

Scalambroll: Lambroll + Scala.js + Scala CLIでらくらくFaaSしよう

LambrollというOSSがある。 github.com AWS Lambdaのデプロイを簡単にしてくれるツールで、非常に使い勝手が良いので仕事で愛用している。 そんなLambrollと、同様に簡単にScalaを書けるようにしてくれるScala CLIとを組み合わせてみたらどうなるだろう、と…

「期待する」生き方の提案

他人や物事に冷笑的、とまでは行かないにしても、無関心だったり拒絶的、諦めモードになっていませんか。本稿はこうした精神的な態度を変えて、期待の炎に再び酸素を吹き込むのはどうかという提案であり、過去の自分、または未来の自分に向けたメッセージで…

GNOME 49でX11のサポートがドロップされるので対応した

GNOME 49が出た。 japan.zdnet.com 自分が普段使っているopenSuSE Tumbleweedもこれに追従してGNOMEのバージョンが上がった。いつものようにzypper updateして再起動したところGNOMEが起動しなくなってしまった。しょうがないのでrecovery modeで起動してroo…

セルフケアへたくそ

セルフケアが下手くそすぎる。セルフケアとは自分の面倒を自分で見るということに尽きるのだが、部屋は散らかってしまうし、風呂に入る気力が出なかったり、入ったら疲れ果ててしまったり、とにかく目先の利益に揺らいで失敗してしまう。 失敗してしまうので…

ScalaのupickleでオプショナルなフィールドをパースするにはNone defautを設定しておくと良い

tl;dr deserialize serialize デフォルト値がある フィールドがない場合はデフォルト値にフォールバックする 値がデフォルトと同じならフィールドごと削除する デフォルト値がない フィールドがない場合は例外を投げる 値をセットする //> using dep com.lih…

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?