Lambdaカクテル

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

Invite link for Scalaわいわいランド

技術

ポン付けで何か動かしたいときにRubyが便利

ごくちょっとしたLambdaのハンドラを書く機会があった。ちょっとそれが特殊で、そのLambda自体も別の場所にHTTPリクエストを飛ばし、なおかつヘッダをいくつか弄らなければならない、というものだった。これでRubyを使ったのだが便利だった。 ふつうこういう…

LinuxディストリビューションごとのTARがデフォルトで吐くフォーマットを調べた

先日、TARにはpaxフォーマットがあるからこれを使おうという記事を書いた: blog.3qe.us ところで、自分のマシンではGNU TARが入っていて、デフォルトでpaxを使う設定になっていた(これはコンパイルタイミングで設定される)。自分はopenSuSE Tumbleweedを利…

TARで使われるpax formatはパスのエンコーディングをUTF-8で規定していて偉い

TARで利用できる最新のフォーマットであるpaxについて調べていたところ掲題のことが分かって面白かったので紹介します。調査不足な箇所があったら教えてください。 tl;dr tarするときは-H paxしよう ファイル名の文字化けなどが回避されるぞ 長いパスがぶっ…

自分のWebサイトをスケルトン仕様にする

した www.3qe.us こいつは暖かみのある手打ちHTMLで作られており、AIはおろか補完といった冷たいテクノロジ〜を利用していない。なんか勘で書いて勘で動いている。 スケルトンにしたい 1990〜2000年代、あらゆるモノがスケルトンになっていたマジで謎の時代…

YubikeyをGPGが認識しないときはlsusbして犯人を探すんじゃ

tl;dr pcscdがうまくデバイスを掴めないとYubikeyをGPGが認識できない systemctl status pcscdで様子を見よう lsusbとlsofでUSBデバイスを使用中のプロセスを特定せよ snapなどで起動したyubioath-desktopがUSBデバイスを奪っていることがある あらすじ gpg …

zypper で libgpgme error in 'gpgme_ctx_set_engine_info': <GPGME> 無効な暗号エンジンです と表示される場合は libgpg-error も更新すると良い

openSUSEを利用している。ある日gpgの調子が悪くなってしまい、zypperなどがうまく動かなくなってしまった。 % sudo zypper refresh ... libgpgme error in 'gpgme_ctx_set_engine_info': <GPGME> 無効な暗号エンジンです % /usr/libexec/scdaemon /usr/libexec/scd</gpgme>…

JPYCなんなのか、自分がJPYCに何を期待しているか / 決済業者に検閲されない自由なプラットフォームの誕生へ

JPYCが資金移動業者として認められた。 【国内初】日本円建ステーブルコイン発行へ資金移動業者の登録を取得!Ethereum・Avalanche・Polygonで展開予定。今後、さらに協業を推進していきます。みなさま、お待たせいたしました。ついに、円ステーブルコインの…

Gnomeで通知の順序が不正になる場合はアニメーション機能を有効化するとよい

前提 Gnomeにはアクセシビリティ機能としてアニメーションを無効化する設定が存在する。 アニメーションを無効化すると若干動作が軽くなるようなので自分は無効化していた。 事象 ところが、この状態では一定の場合に通知の順序がおかしくなる(1つ前の通知…

RE: アウトプットができない若者(アウトプット的サムシングを支える技術)

こういう記事は主にテクニカルな方向からたくさん書いてるのだが、たまには違う方向性のも書いてみようと思う。新聞の随筆くらいの気持ちでお読みください。 大前提 なんで記事書いてるのか ひとりの人間から生成される生の情報にかえって価値があると信じて…

ECMAScriptでもgroupBy()が使えるようになっていて嬉しい

ScalaユーザにはおなじみのgroupByメソッド。 val xs = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) xs.groupBy(_ % 2) // => Map(0 -> List(0, 2, 4, 6, 8), 1 -> List(1, 3, 5, 7, 9)) 所与の関数を使ってコレクションを走査し、その返り値によって値を分類してマ…

万博のチケットはGoogle Walletに取り込んだほうが便利

掲題の通り。 AndroidスマホにはWalletという機能があり、カードのタッチ決済などで使えるのだが、実はQRコードを取り込んで表示するという便利な機能がついている。表示するときは自動的に画面も明るくなるので、スクショをいちいち出したり紙に印刷するよ…

みんなが本当に欲しかったのはMakefileじゃなくてディレクトリレベルで管理できるエイリアスなのでは

あらすじ Makefile as task runner に対しての意見 顧客が本当に欲しいものは、ディレクトリレベルのエイリアスなんじゃないですか? Allyas: ディレクトリごとにエイリアスを張るツール $PATHを乗っ取る $0 hack シンボリックリンクの自動化 設定ファイル …

Scala Nativeで実行ファイルのパスを得るには scalanative.runtime.filename

import scalanative.runtime.filename filename // => "./target/scala-3.3.6/foobar" いわゆる$0が得られる。 (環境 Scala Native 0.5.7)

Claude Code くんのホームディレクトリ破壊を AppArmor で阻止する

AI Agentの叛逆により、ホームディレクトリを破壊された人が話題となった。LLM無職を差し置いてLLMホームレスである。 ん?え?は?何してるの? pic.twitter.com/QaDkToek4P— /mugisus/g (@mugisus) 2025年7月1日 かわいそうに。AIはこういうとき全く躊躇な…

テスト用に適当なドメインを注入したいときは .invalid を使うとよさそう

tl;dr foobarhogehoge.invalidは絶対にリクエストが飛ばないのでおすすめ あらすじ 書いていたコードは、とあるミドルウェア向けに内部利用するURLを環境変数で受け取るようになっていた。普段は実際の内部のURLが書かれているのだが、テスト時には以下のよ…

Gitのタグをこっそりずらす

GitHubとかで、タグがつけられたら特定のアクションを実行する、といったワークフローを仕込んでいるときに、うまく動かなかったので再度走らせたい、みたいなことがあって(やんごとない理由でworkflow_dispatchはない)、なんとかしてタグをつけなおしたメモ…

Deno みたいに Scala を書く: Scala CLI 1.8.1 の using file ディレクティブの新機能

Scala CLI 1.8.1がしばらく前にリリースされていた。このリリースの主な変更は、using fileディレクティブで URL を展開する機能が利用できるようになったことだ。 github.com この記事ではこの機能について紹介する。 Scala CLI とは Scala CLI とはVirtusL…

Cyclic Barrierで安全なじゃんけんを実装する feat. Scala + Cats Effect

じゃんけんという遊びがある。 じゃんけんは、離散的に定義された三つの手(グー・チョキ・パー)の非推移的な優劣関係――グーはチョキに勝ち、チョキはパーに勝ち、パーはグーに勝つ――を用いて勝敗を決定する二人以上参加可能な競技的ゲームです。遊戯手順は…

Cats Effect 3でセマフォを使うときの便利なイディオム

Redditを見ていると便利そうな記事を発見した。 lukastymo.com この記事では、MutexやSemaphore、そしてCyclic Barrierの使い方について解説している。 セマフォとは同時に一定数のみがリソースにアクセスできるようにする、つまり「いくつまでなら同時に使…

ulimitに死す / ScalaのHTTPクライアントsttpではバックエンドを都度作らずに1つだけ作って使いまわしましょう

ここではsttp4前提で書くがsttp3でもたぶん同じ。 sttpについて説明しておくと、Scalaで利用できるHTTPクライアント実装で、操作体系がシンプルで簡単であり、なおかつ複数のバックエンド(JDK標準のクライアントを使うものとか、もっと並行性制御を強化され…

同僚とFigJamでお絵描きしながら仕事している

同僚と込み入った仕様を詰める作業をしないといけなくて、いくつかの疎結合なコンポーネントをネットワーク越しにデータが飛び交ったり、コンポーネントの中の状態が遷移していったりして、お盆と正月が同時に到来したような感じ。こういうとき、これまでは…

温湿度計を買ったところオブザーバビリティが向上した

先日また風邪を引いたので、温湿度計を買うことにした。部屋の過ごしやすい環境が分かれば安定して体調を管理できるだろうという魂胆。 タニタ Tanita 温湿度計 一目で室内環境がわかる 温度 湿度 アナログ 壁掛け 卓上 グレー マグネット TT-587-GYタニタ(T…

『はじめてのScala3』書評

この書評は、掲題書についての一個人の考えを述べ、改善に資せんとするものである。つまりここから先に書かれていることの冒頭には遍く「私見では」と見えない文字で書かれているということだ。 この本は初学者向けの教科書または副読書として不適切であり、…

ibus-skkでキーリピートが暴走する問題の解決策

Standard NotesをLinuxから使うと、Key Repeat機能が暴走して、手を放してもずっとカーソルが移動し続けたり、さらに悪いことには、バックスペースが外れなくなってどんどん文字列を削除していくことがあった。確かにこれはある意味セキュアだが、そういうこ…

Zshでスラッシュ単位で移動・削除できるようにするには$WORDCHARSを設定する

tl;dr 以下の通り.zshrcに追記する # '/' を単語の境界として認める typeset -g WORDCHARS=${WORDCHARS:s@/@} 登場人物 typeset シェル変数を書き換える -g グローバルに適用する $WORDCHARS 「ここに入った文字は単語境界とはみなさない」というリスト :s@/…

Devin 感想 (驚かない)

最近Devinを使っていて、試しに色々やらせている。印象や、こういう局面で強そう、といったことをメモしておく。 印象 それほどAIが賢いわけではない。Claude Sonnet 3.7を使ってるのと同じような感じ。たまに筋違いなPRを作ったり、古い作法でコードを書い…

Redacted: Scalaのcase classの特定のフィールドを隠すコンパイラプラグイン

Redditを見ていたところ面白いコンパイラプラグインを発見したので紹介する。 Redacted Redactedは、case classの特定のフィールドをtoString()から除外し、***で塗り潰して見えなくできるコンパイラプラグインだ。 polentino.github.io github.com Redacted…

Scalaの言語サーバMetalsがMCPに対応したのでRoo Codeで使ってみた / 型やシンボル情報をMCPが渡してくれる時代の到来

Scalaには言語サーバとしてMetalsというのがあり、LSPを喋ったりビルドサーバと協調してコンパイルを回したりしてくれる。 scalameta.org VSCodeでも使われる定番の言語サーバであり、Scala開発者の半分くらいはこれを使っているはず。ロゴがかわいい。 そん…

AI Coding Agent を使うことで、怒り狂い、視座が上昇する話

AI Coding Agentが活況だ。巷ではClineだRoo Codeだと盛り上がり、MCPを実装したことを自慢し、驕れる平家のごとくだが(平家と違ってもう少し長生きするだろうが)、かくいう私もそうである。 とはいえ、テトリスやブロック崩しが一瞬で作れたところで我々が…

Scala 3でMCPサーバとフレームワークをフルスクラッチした

だいたいタイトルの通り。最近MCPサーバ書くのが流行っており、実は自分はけっこう前にサーバ自体は書いてしまっていたのだが、記事にする元気がなかったので放置していた。しかし冷静に考えるとけっこう学びがあったので記事として残しておく。 記事書いた…

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