サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
blog.3qe.us
他の言語の非同期プリミティブと比べてもOxかなり良いな〜という記事です。 先日Ox v1.0.0がリリースされた。Oxはプログラミング言語Scalaの非同期処理ライブラリで、Java 21から搭載されたVirtual Threadの機能を活用して、非同期処理のための道具を使いやすい形で提供してくれる。 github.com 今回ついに1系がリリースされたので、改めてOxを紹介し、他の言語における非同期処理プリミティブと何が違うのか、どう便利なのかを紹介していければと思う。OxはScalaのライブラリだが、Scalaを知っている人も知らない人でも読めるようなコードになっているので安心してほしい。Oxの詳細はドキュメントを参考にしてほしい。 というのも、以前Oxをフィーチャーした記事を書いたことがあったが、まだメジャーバージョンが1に到達していないのもあり、あまり深く踏み込むことはしていなかっ
他人や物事に冷笑的、とまでは行かないにしても、無関心だったり拒絶的、諦めモードになっていませんか。本稿はこうした精神的な態度を変えて、期待の炎に再び酸素を吹き込むのはどうかという提案であり、過去の自分、または未来の自分に向けたメッセージでもあります。 期待しない生き方はある、しかし苦い これまで人や物事にほぼ期待しない生き方をしてきた。世の中のサービス、政治、個々人、映画、自分、知識、未来。 期待したところでそれが報いられなかったときのダメージが大きくなるだけだし、他人はコントロールできないのでそれに依存するべきではないからだ。 そういうわけで、何にも期待せず、得られた機会があったらそれに応じて行動する、という様式になることが多かった。 期待して大きく裏切られるとそれに応じて受けるダメージも大きくなるもので、自分は僭越ながらそういう局面を何度も経験してきており、最初から期待しないというスタ
ごくちょっとしたLambdaのハンドラを書く機会があった。ちょっとそれが特殊で、そのLambda自体も別の場所にHTTPリクエストを飛ばし、なおかつヘッダをいくつか弄らなければならない、というものだった。これでRubyを使ったのだが便利だった。 ふつうこういうときはNodeでハンドラを動かすのだが、今回の目的で必要なundiciがAWS Lambdaの実行環境には入っておらず、undiciを使うなら別の手段でバンドルしてやらなければならない。もうこの時点で面倒すぎるンゴ〜という気持ちになってきた。 で、Rubyでいいのではと思って(今回は別に型チェックとかもいらないミニマルなコードだったので)Rubyで書き直したところ、HTTPクライアントもあるしJSONも扱えるしなにより日本語ドキュメントもあるので安心だった。お前こそがスクリプト言語だという気持ちに。 やっぱりスクリプト言語に求められる
TARで利用できる最新のフォーマットであるpaxについて調べていたところ掲題のことが分かって面白かったので紹介します。調査不足な箇所があったら教えてください。 tl;dr tarするときは-H paxしよう ファイル名の文字化けなどが回避されるぞ 長いパスがぶっ壊れなくなるぞ 現代においてデメリットはほぼない 本編 こんにちは、TARの話ばっかりしている人間です。 blog.3qe.us blog.3qe.us paxとは Paxとは、tar(1)やpax(1)で扱うことができるファイルフォーマットで、POSIX(POSIX.1-2001, 2008)で規定されている。 要するにtarの最新のフォーマットだと思ってもらったらいいです。 ustarの時代 皆さんtarが吐き出すフォーマットはtarフォーマットでしょ、と素朴に思ってるかもしれないが、あれって実は特にどこに規定されているわけでも
した www.3qe.us こいつは暖かみのある手打ちhtmlで作られており、AIはおろか補完といった冷たいテクノロジ〜を利用していない。なんか勘で書いて勘で動いている。 スケルトンにしたい 1990〜2000年代、あらゆるモノがスケルトンになっていたマジで謎の時代。 www.nintendo.co.jp PlayStation 2 オーシャン・ブルー【メーカー生産終了】 ソニー・インタラクティブエンタテインメントAmazon openmedia.jp 自分はそういう時代にガキ時代を過ごしたので、今もスケルトンが大好きである。 blog.3qe.us blog.3qe.us てかなんで今の製品はそんなにスケルトンにしなくなったのだろう。最近はリバイバル的にスケルトンなものも増えてる気がするけど。 そういうわけで自分のサイトもスケルトンにしよう、という話に、異動した最初のオンライン飲み会でな
ピの家にイケアのペルヨハンPERJOHANがあって、便利そうだったので買った。近所のイオンに小さいイケアができていて、そこで買えた。スツールとしての機能だけではなく、下に小物を入れられて便利。 イケア特有の若干雑な公差により電動ドリルで頑張りながらネジを打ち込む必要があったが、30分くらいで完成した。 ペルヨハンは特に塗装もされていないパインの集成材で作られているので、触るとザリザリするしかなり荒削りのクオリティになっている。イケア的には、後はお客様が勝手に塗るなり焼くなりしてくれ、ということらしい。塗装されていないプラモを買ってきたと思ったら納得がいく。 www.ikea.com 無塗装の木材はそのままで美しいうえ、お気に入りの色の塗料を1、2回塗布して自分らしく仕上げることもできます そういうわけで、折角なので塗装にチャレンジすることにした。 塗ると何が良いのか そもそも、なんでわざわ
JPYCが資金移動業者として認められた。 【国内初】 日本円建ステーブルコイン発行へ 資金移動業者の登録を取得! Ethereum・Avalanche・Polygonで展開予定。 今後、さらに協業を推進していきます。 みなさま、お待たせいたしました。 ついに、円ステーブルコインの新時代が始まります🔥https://t.co/7ArH9NV80y— JPYC株式会社 (@jpyc_official) 2025年8月18日 自分はこのJPYCがステーブルコインを発行できる見込みであることを大変うれしく思っていて、発行されたらすぐ使ってみたいと思っている。 他方でJPYCがなんなのか、そもそもステーブルコインとかがなんなのか分かっていない人もいると思うので、分かっている範囲で書いていく。また、自分がどこに期待しているのか、何が嬉しいのかも書いていく。 暗号通貨・仮想通貨 暗号通貨と仮想通貨とは
こういう記事は主にテクニカルな方向からたくさん書いてるのだが、たまには違う方向性のも書いてみようと思う。新聞の随筆くらいの気持ちでお読みください。 大前提 なんで記事書いてるのか ひとりの人間から生成される生の情報にかえって価値があると信じている カエサルのものはカエサルに 自分がやるしかなさそう 情報の価値は案外高い 情報の価値はなんか割と上げられる 情報はインフレしているように見えるが、全体で見ると情報の価値は下がっていく ネットの知らない人間にドツかれたら blog.3qe.us blog.3qe.us blog.3qe.us blog.3qe.us アウトプット、で過去記事検索したらこんなに出てきた。自分でもびっくり。まるでアウトプット博士だな(罵倒) なんでこういう記事を書こうかと思ったかというと以下の記事に引用されていたため。 lunastera.hatenablog.com
掲題の通り。 AndroidスマホにはWalletという機能があり、カードのタッチ決済などで使えるのだが、実はQRコードを取り込んで表示するという便利な機能がついている。表示するときは自動的に画面も明るくなるので、スクショをいちいち出したり紙に印刷するよりも便利だ。ホーム画面からすぐ呼び出せるのも良い。 その他というカテゴリから追加できるようになっている。 という内容をショート動画にした。自作ソフトウェアで組版したりVOICEVOXに喋らせたりしている。 時代はショート動画だ。多くの人にリーチさせるには、ショート動画なのだなあと思うことが最近とみに増えた。それはそうと、情報のソースとしてのブログの立ち位置も重要になっていく。フローの役目は動画に譲って、ストックの役目にブログが集中するのかもしれない。 それはそうと、動画を作る手間はそれなりにかかった。テキストベースの原稿から生成するので構成
あらすじ Makefile as task runner に対しての意見 顧客が本当に欲しいものは、ディレクトリレベルのエイリアスなんじゃないですか? Allyas: ディレクトリごとにエイリアスを張るツール $PATHを乗っ取る $0 hack シンボリックリンクの自動化 設定ファイル あらすじ こういう記事を見た。 zenn.dev 僭越ながら要約すると、Makefileにタスクを書いてタスクランナーとして用いているとのこと。また、Makefileのコメントを拾ってドキュメンテーションを生成できるようにしたとのこと。 Makefileをタスクランナー代わりに用いるのはよくあることだが、ドキュメンテーションを生成するようにしたところがおもしろポイントである。 そして、この記事への批判文脈として以下の記事を見た(正確には、この記事を見てから上掲の記事を読んだ)。 www.takeokunn
AI Agentの叛逆により、ホームディレクトリを破壊された人が話題となった。LLM無職を差し置いてLLMホームレスである。 ん?え?は?何してるの? pic.twitter.com/QaDkToek4P— /mugisus/g (@mugisus) 2025年7月1日 かわいそうに。AIはこういうとき全く躊躇なく余計なことをする*1ので、自分も閉口することがある。明日は我が身ということで、叛逆に備える方法を探る必要がある。 ところで、環境の隔離というと最近はすぐコンテナが出てくるけれど、コンテナみたいな大仰なものを使わなくとも、実行するプロセスに強制的なアクセス制御をかけて特定のディレクトリにしか書き込めないようにするグッズがいろいろあって、例えばSELinuxやAppArmorといったソフトウェアを利用できる。これらは多くのディストリビューションにデフォルトで入っており、人知れずお前ら
tl;dr foobarhogehoge.invalidは絶対にリクエストが飛ばないのでおすすめ あらすじ 書いていたコードは、とあるミドルウェア向けに内部利用するURLを環境変数で受け取るようになっていた。普段は実際の内部のURLが書かれているのだが、テスト時には以下のようにダミーを設定していた: FOOBAR_EXTERNAL_URL="https://example.com/foobardummy" テストではこのURLを利用しないのだが、内部で環境変数のバリデーションを行っている都合上、とりあえず適当なURLを指定しなければ起動してくれないから、こうなっていた。重ねて言うが、実際はこの環境変数を利用していないのでこれでいい。 しかしこれだと、うっかり内部の様子がおかしくなったりエンジニアが狂ってしまった場合に、example.comに本当にアクセスしてしまう。なおかつ、セキュリティ
GitHubとかで、タグがつけられたら特定のアクションを実行する、といったワークフローを仕込んでいるときに、うまく動かなかったので再度走らせたい、みたいなことがあって(やんごとない理由でworkflow_dispatchはない)、なんとかしてタグをつけなおしたメモ。 まずリモートにあるタグを破壊する。 % git push --delete vx.y.z 次にローカルにあるタグも破壊する。 % git tag --delete vx.y.z タグをつけなおす。 % git tag vx.y.z タグをpushする。 % git push --tags これで手元とリモート上のタグが移動する。
じゃんけんという遊びがある。 じゃんけんは、離散的に定義された三つの手(グー・チョキ・パー)の非推移的な優劣関係――グーはチョキに勝ち、チョキはパーに勝ち、パーはグーに勝つ――を用いて勝敗を決定する二人以上参加可能な競技的ゲームです。遊戯手順は、参加者が向き合って「じゃんけん」の掛け声とともに拳を振り下ろし、合図(「ぽん」「ほい」など)で選択した手を同時に提示し、その瞬間に優劣規則を適用して勝者・敗者・あいこ(同手による引き分け)を判定し、あいこの場合は同一手順を繰り返すだけという、実装・解析が容易で確率論やゲーム理論の導入例としても活用される簡潔なゲームです。 -- ChatGPT o3 この知的なゲームには問題がある。「じゃん」「けん」「ぽん」のタイミングで各プレイヤーが同期しなければならないのだ。同期せずに手を出すことは重大なルール違反だ。 Scalaの並行プログラミング用のライブラ
Scalaには言語サーバとしてMetalsというのがあり、LSPを喋ったりビルドサーバと協調してコンパイルを回したりしてくれる。 scalameta.org VSCodeでも使われる定番の言語サーバであり、Scala開発者の半分くらいはこれを使っているはず。ロゴがかわいい。 そんなMetalsの最新版 Metals 1.5.3 がリリースされ、Scala界は大いに盛り上がっている。というのも、言語サーバにMCPサーバ機能が搭載され、AI Agentに対してコミュニケートできるようになったからだ。 scalameta.org この記事では、早速このMCPサーバ機能を使って遊んでみようと思う。 Scalaが動く前提としてJVMが必要なので、そのへんは済んでいるということにして進める。JVMなどはこのへんを見てほしい。 blog.3qe.us リポジトリの用意 ひとまずGitHubにリポジトリを
AI Coding Agentが活況だ。巷ではClineだRoo Codeだと盛り上がり、MCPを実装したことを自慢し、驕れる平家のごとくだが(平家と違ってもう少し長生きするだろうが)、かくいう私もそうである。 とはいえ、テトリスやブロック崩しが一瞬で作れたところで我々が失職するはずもなく、最初から作るものが決まっていて定型的でいくらでもエントロピーを増やして散らかしても良い一回ポッキリのブロック崩しと、イテレーティブな開発を行うことが前提で、非定型であり、エントロピーの無秩序な拡大を抑止しながら開発しなければならない†現実†の開発とでは月とすっぽんであり、今のところAI Coding Agentは月兎にあらず、地面を頑張って跳躍しているふつうの兎だ。 ClineやRoo CodeにはOrchestration modeといって大きなタスクをサブタスクに分割してやっていくという補助機能があ
こういう記事を読んだ。 fujii-yuji.net 僭越ながら意訳すると、 robots.txtでLLMからのアクセスをrejectするコンテンツプロバイダが増えている(はてなブログも現状はrejectしている) なぜrejectするのかというと、負荷がかかる上に収益を奪われる形になるから しかしそうなるとLLMは古いコンテンツしか参照できない 情報を発信している人が対価を得られるような健全なエコシステムが必要なのではないか この記事では、暗号通貨で面白いことできるんじゃない?ということを話す。私はAIの専門家でもないし、暗号通貨に関してもいろいろ弄っている程度の知識しかないので、色々な意見が聞きたい。 マイクロペイメントとその障壁 現在は読める/読めないという二項対立的な対応をすることしかできないが、もうすこし柔軟に、「相応の対価を支払ってくれたら閲覧を許可する」という挙動を考えるのは
あまり自己開示しなくなったなと思う。人と話しているとき、自分が話したいことを話してやる、ということが減ったということだ。 昔は割とよく喋っていたように思う。自分が何を面白いと感じ、嫌だと思ったかを話していた。語るのが割と好きな方だった。知識を開陳するのは楽しい。自分も他人の知識を聞くのが好きでカンファレンスとかによく出向くので、他人にもそうしたいのだ。 しかし、まあ、思わぬ衝突が頻繁に起きる時代になった。あれが好きだといえば角が立ち、こう思うと言えば、また角が立つ。リアクションを引き出したいつもりで多少なりとも吹かして表現したら無粋なやつに捕まったり、つまらぬ人間に絡まれたり。かくして流される先が情であり、すなわちお気持ちに触れぬよう黙っておく、ということだ。 もう一つ、他人の気持ちを慮るうち、つまらぬ話だと思われないかとか、何らかの相手の思想を干犯していないかとか、何らかの社会的タブー(
ソフトウェア開発の現場では、スクリプトを発射してシステムになんらかの変更を加える、ということがよくある。DBに変更を加えたり、なんかを削除したりといった具合。専用の管理画面をわざわざ実装するまでもない、というときに使われがち。 Dry-run スクリプトによっては破壊的なことをする(i.e. 元に戻すのが不可能/たいへん)ので、勢い良くいきなり発射するのではなく、どういう感じの実行結果になるのかを試走させてから実際に動かしたい。 どうするかというと、破壊的な箇所では、一定の条件でスキップしたりやったフリをするような処理に置換したりする。 一般にこういうテクニックはDry-runと呼ばれているはず。元々の意味は予行演習という意味らしい。 Dry-runどうやって実現する Dry-runはあくまで技法であり、ネイティブにこれをサポートする機構はないので、実現する方法はいろいろある。よくあるのは
自分は批判的意見というものにある程度真面目に耳を傾けていたのだけれど、大好きな記事に、3秒で思い付いたようながらくたコメントがつけられているのを見て、すべての意見は傾聴に値する、というテーゼがゴツンとひび割れ、身銭を切って前に出たヤツを信じよう、という気持ちになってきた。文章は長ければ長いほど良いし、想いは言葉になっているほど良い
ここ最近は開発が佳境で、同僚とかなりの頻度でペアプロ(ペアプログラミング)(ここではペアオペも含む)している。主にTypeScriptを使ったNext.jsのコードを書いているが、もちろん設計もするし、もうちょっと大きいアーキテクチャみたいな相談もする。DBスキーマをどう割るか・・・みたいな話もしている。たいていみんな出社していないので、リモートでこれをやっている(国内だし全員日本語話者なので時差とかはない)。 いちおうどの面子もペアプロの心得はあったのだが、当初は微妙にギクシャクしたり、疲れきったりしていた。そんな中、同僚がRGST2025に行ったりする中でうまくいくようになってきたので共有する。 以前はペアプロやる?と聞かれるとウゲ〜面倒だな、とっとと終わらないかな、と思っていたのだが、今は完全にお気に入りの道具箱に入っていて、飛び出す機会を伺っている。 また、他にもオススメの知見があ
仕事とかプライベートとかで、ものすごく頭が回るときと、エンストしたようにまるで回転しないときとがあり、その差はどこから来るのだろうと考えていた時期があった。 結論から言うと、自分の場合、「それを得意だと思っているかどうか」によって頭の回転具合がかなり変わるらしいことがわかった。 例えば、自分はこうした執筆がそこそこにできて、プログラミング言語でいえばScalaが他人よりも得意だが、こうした、自分の脳が「これは得意だぞ」と思っていることがらと相対すると、脳はやらせてくれやらせてくれと元気に働き始める。成功が目に見えているからね。 他方で、これそんなに得意じゃないな〜、とか、自分がやったら時間かかるだろうな〜、と思っているような、つまり自分の脳が「これ不得意だぞ」と思っていることがらと相対すると、脳はたちどころにその動きを鈍らせてしまう。誰だって失敗したりうまくいかない状況に放り込まれたくない
Scala 3.6.2が出た!やったー! github.com Scala 3.6.2は、Scala 3.6系の最初の正式なリリースで、数多くの機能が追加された。この記事ではそのうち主要な機能を紹介する。また、正確さよりも分かりやすさを優先してザックリ書いているところがあるので、そういうときはブコメや記事で補足してもらえると嬉しい。 Scala 3.6.2を使う 3.6.0と3.6.1との関係 Clause Interleaving (SIP-47)の安定化 GivenとContext Boundsの記法の拡充 (SIP-64) Context Bounds for Polymorphic Functions Add an infix shorthand for Tuple.{Append, Concat} まとめ Scala 3.6.2を使う Scala CLIでは、-S 3.6.2オプ
これは、前人未踏の地に飛び込んでいった漢たちの物語・・・ ツッコミ所がいっぱいあると思います。どんどんツッコんで賑やかしてください。ISUCONの経験がそんなにあるわけではないので、アホみたいなことをしているかも。俺をBIGにしてください! また、書いている話は「ISUCONやそれに近しい局面ではこう」という話なので、人類普遍の真実を述べているわけではない。 あらすじ ISUCON14お疲れさまでした。 ISUCONといえば例年いろいろな言語で参考実装が公開され、そのうちどれかを選んで改善していくというスタイルが一般的、というか普通なのだが、自分たちは参考実装が一切存在しないScala 3で突入し、1000点ちょっとを獲得し、最後らへんでnginxの調子がおかしくなって0点となり散っていった。そういう人生も良いと思います。 ちなみに測定とかの話は出てきません。測定まで行けなかった物語です。
晩秋の空に照らされて高いところから白い煙を吹き出す鈍色のチューブと鉄骨を時速250キロですり抜けながら、おれは紅白ぺぱ合戦に向かっていた。空はぽかんと晴れていた。銀髪になりつつある富士山が拝めそうだったが、窓が反対側で足しか見えなかった。Connpassのページとハッシュタグの間で目を泳がせることしかできない。 寒いかなと思ってたけど別にそこまででもなかった ことの起こりは少し前、半袖が長袖になった頃、同期の縁ダチであるid:stefafafanとエンジニアインタ〜ネッツの縁であるid:asumisoとがめでたくも結ばれるとの報を得て、たまげていた。すごい!!! インターネット至近距離でこんなことが!!!ウッヒョ〜 と小田原から遠く隔った京都で一人ドギマギしていたところ、結婚パーティとカンファレンスと合戦(?)を実験的配合した闇鍋イベントを行うぞ!!! という連絡を受けて、何言ってんだこい
家の便座が漏電して、ぶっ壊れてしまった。冷たい!と声をあげそうになってしまったのは数日前で、気付くと便座が冷たいしランプが点灯していない。コンセントを刺し直すとしばらく動いているのだが、またしばらくすると動かなくなっているのだ。うーんどうしたものか、と思って、とりあえずコンセントを突き刺すとバチンと大きな音がして家じゅうが真っ暗になってしまった。ブレーカーが落ちたのだ。しょうがないからコンセントは抜いたまま、暮らしている。こんなことは他にもあって、エアコンは水漏れしていてバケツに水を受けているし、たまに部品が落ちてくる。洗濯機のフィルターも詰まっている。うんざりだ。 そんな目に遭ったり、今日はたまたま雨が降っていて気圧の具合も悪かったのか、すっかり脳味噌が動かなくなってしまった。長い文章を読もうとすると目がぐるぐるする。風呂に入ってもグッタリしている。 頭の中に選挙カーが引っ越してきて、音
作った Scalaの非公式なキャラを作った。 GitHubにSVGがあります。CC BY-SA 4.0でライセンスしているので、それに基いて勝手に使ってください。例えば、スライドに挿入したり(スライド末尾や適当な場所にクレジットしてください)、ライセンスを継承することを条件に改変したりできます。 github.com Scalaキャラ不在の歴史 プログラミング言語Scalaには公式的なキャラクターがいません。そんな中、他の言語では個性的なキャラクターがいて様々な場所にモチーフとして登場しています。 Gopherくん https://go.dev/blog/gopher The Go Gopher - The Go Programming Language D言語くん https://dlang.org/overview.html Overview - D Programming Langu
MySQLやPostgreSQLといったRDBMSからデータを引いてくるとき、扱うデータの規模によっては、1000件ずつLIMITをかけて順に引いていくということがある。 以前slow queryが出たらよくやっていたのを思い出して、ふとこのあたりってどういう根拠があってやっているのだっけ、自分が知っている他に効能があったりするのかな、と思ってSlackに書き込んだところ、同僚の id:onk に教えていただいた。その内容に加えて軽く調べた内容をまとめてみる。 Web系の話です。みなさまの知見がありましたら教えてください。 TL;DR 刺さる*1から 刺さったら困るから あたりまえ 詳細 もともとSlackに書いた原文は以下の通り(MySQL前提で書いているけどPostgresといった他のRDBMSにも適用できる話。): DB引くとき、Perl時代(?)によく1000件単位でchunkin
わりと多くの人間には、原風景や基盤となる心象風景みたいなものがあると思う。自分の場合、出身地である佐賀の雄大な(何もないとも言う)田園風景とか、のどかな県民性とか、気候が穏やかであることが、原風景としてすぐに思い浮かぶ。 心が安定している人というのは、こうした原風景を心に飼っていて、たまにうやうやしく取り出しては、誰にも見せずにそっと懐に仕舞っているのではないか。大抵の人々にとって、原風景は自分が育った環境であり、それは同時に安定の象徴でもあるし、世の中がどうなろうとも信頼できる、ねがいと体験と現実との化合物だ。暮らしの基盤となる思想といってもいい。 *1 自分は心が安定している人間がうらやましい。そうなりたいものだ。さいわい、自分の原風景はいささか古風であるけれども暖かく安定している。おれにはおれの生き方がある。それでいいはずだ。 他方で、ある名札がついている人間はこうあるべきだとか、現
次のページ
このページを最初にブックマークしてみませんか?
『Lambdaカクテル』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く