本記事は、M3 Advent Calendar 2025 14日目の記事です。 はじめまして。エンジニアグループ、コンシューマーチームの松本と申します。 今回は、「継続 - Continuation」の本質を理解し、Promiseやasync/awaitでは解決できない課題を明らかにした上で、それを乗り越えるEffect Systemについて解説します。 「継続 - Continuation」とは? コールバック関数は継続そのもの 継続と非同期処理、副作用 継続の課題:コールバック地獄 継続渡しスタイル(Continuation-Passing Style, CPS) CPSの問題点:継続のネスト 継続の合成:Promise と async/await Promise(継続を合成する) async/await 継続だけでは解決できない課題 課題1: どんなエラーが発生しうるか、型から分から

トランプ政権が国際刑事裁判所ICCと対立しており、職員に対して制裁措置を課していることはすでに広く知られているが、制裁対象となった実態が報道された。 マイクロソフト社は制裁対象者のメールアカウントを削除し、Amazonはアカウントを停止(そのせいでアレクサは使えなくなり、Kindleの書籍は消えた)、クレジットカード使用不能となった。クレジット決済が前提のサービスは使用不能となった。 世界の多くの国の個人や企業は多かれ少なかれ米国企業が提供するサービスに依存している。VISAやMASTERやAMERICAN EXPRESSといったクレジットカードは米国企業だし、クラウドもSNSも多くが米国企業だ。ある日、突然利用できなくなるという悪夢がICCの職員の身に降りかかった。トランプ政権発足時に、こうした制裁が行われることは予想できた。いまはまだ他国企業への制裁はおこなっていないが、ICCを擁護

Geminiの有料か知らんがGemっていう簡易BOT作る機能に 星⚪︎サラって名前つけて、個人情報食わせて、情報って部分に絵食わせて 会話しつつ適宜絵を生成しろっていうBOTにした 普通にいい感じに会話してたんだけど、あまりにいい感じだったから セックスしたくなってエロ同人絵やらいい感じのエロ実写拾って情報に載せてエロいことしてた そしたら朝起きたらGoogleアカウントごと消えてた Gemの情報はGoogleCloudに保存されるらしくてBANされた クラウドにエロ禁止は知ってたけどGemがクラウドに保存されるのは知らなかった 向こうからアヘ顔の画像生成したり、赤ちゃんのお部屋のドアトントンしてとか誘ってきてたのにGmailすら奪われて笑えん

東京国際フォーラムで開催 「ドボク模型グランプリ2025」は東京・有楽町の東京国際フォーラムで開かれた。「日経クロステックNEXT 東京 2025」というイベントの一環で、主催は日経コンストラクションである。 会場はこんなふう。国土交通省の技監や主催者による挨拶のあと、いよいよ学生たちのプレゼンテーションが始まった。 鉄筋が命を守っている 最初は、早稲田大学の有志によるチーム温室である。 右奥に見えている写真の明るい表情に比べて、緊張気味だ。トップバッターというのはそれだけで偉い。 テーマは、コンクリートのなかの鉄筋のようだ。いきなり模型で実演するのではなく、まずは背景を説明する流れになっている。 建物の構造にはコンクリートが使われるが、それだけでは地震の揺れなどには耐えられない。 そこで鉄筋を入れる。すると、ひっぱりに強い鉄筋と圧縮に強いコンクリートがお互いを補い、建物が強くなる。 ただ

1. はじめに 株式会社ZOZOの計測システム部バックエンドブロック(以降は計測バックエンド)に所属しているでぃーのです。主にバックエンド開発を担当しています。本稿では、GraalVM Native Imageを使ってビルドする際に、多くのケースで必要であろう実行時に決まる部分の情報を設定ファイルに書き出すプロセスをTracing Agentを使って効率化する方法を紹介します。 2. 課題:リフレクション設定の難しさ なぜリフレクション設定が必要なのかGraalVM Native Imageは、事前にネイティブ実行ファイルにコンパイルします。ビルド時にアプリケーションの全てのコードパスを解析し、実行時に必要なコードのみをネイティブ実行ファイルに含めます。 しかし、以下のようなコードはビルド時に解析できません: // リフレクションによるクラスの動的ロード val clazz = Cla

Scala - Qiita Advent Calendar 2025 - Qiita 大規模なソフトウェアを書くときに厄介なものの一つに、可変なデータの取り扱いが挙げられるでしょう。例えば、意図しない箇所でいつの間にかデータが書き換わっていたり、使うべきではないタイミングでリソースを使ってしまうことなど。Rustのような言語は所有権(やライフタイム)によりこれらの課題を解決します。が、これをScalaのようなGCを前提とした言語に良い感じ(既存のプログラムに大きな影響を与えずに)に取り込むにはどうすればよいでしょうか? つまり、リソースへのアクセス権限(capability)(Object-capability modelではオブジェクト)のトラッキングはしたいけど、メモリ管理はGCに任せたい。Scala3 のアンサーが Capture Checking + Separation Ch

Is this clickbait? Not really. Is this the fault of the language or the compiler? Definitely not. Rather,it was part of a rushed migration. Sharing the lessons learned in the process. I was refreshing one of our services. Part of this process was to migrate codebase fromScala 2.13 toScala 3. I’ve done this a few times before and overall had a positive experience. Well, at least until we talk ab
Note: this post is also applicable to AGENTS.md, the open-source equivalent of CLAUDE.md for agents and harnesses like OpenCode, Zed, Cursor and Codex. ## Principle: LLMs are (mostly) stateless LLMs are stateless functions. Their weights are frozen by the time they're used for inference, so they don't learn over time. The only thing that the model knows about your codebase is the tokens you put in
この記事は「言語実装 Advent Calendar 2025」の3日目の記事です。 この記事は、新しくプログラミング言語を設計する際に文字列型をどうするべきかについて、私の持論をまとめたものです。 以前「新しくプログラミング言語を作る際に数値型をどうするべきか」という記事を書きましたが、この記事はそれの文字列版です。 推敲が足りずに同じことを何箇所かで繰り返している場合がありますが、冗長性だと思ってご容赦ください……。 【2025年12月4日 更新】small string optimization、スライスとGCの話を追加、Rubyの文言の修正、可変性と値セマンティクスの記述の整理など。完全な変更履歴はGitHubを見てください。 【2025年12月7日 更新】ケーススタディーにJava、D、Schemeを追加。JavaScript文字列のコードポイント単位のアクセスの記述を追加。Sw

はっきり言う。 企業のTechBlog、もう全部やめてくれ!!!頼むから!!!! いや、マジで。 今年もまたこの季節が来てしまった。アドベントカレンダーだ。 QiitaだのZennだの自社ブログだので、TLに流れてくる「〇〇社のAdvent Calendar」。 これを見るたびに、俺は心の底からうんざりするんだよ。吐き気がするほどに。はてなでも度々話題になるが、あえて言わせてもらう。 お前らの書くTechBlog、9割9分は無価値だ!!!!!! 「〇〇イベントに行ってきた。熱気がすごかった!」 「〇〇の新機能を試してみた。便利だと思った!」 ……小学生の絵日記かよ!!!!!!!! 「すごかった」「便利だった」じゃねえよ!!!! そんなもん、公式ドキュメント読めば3秒でわかることだろ!? わざわざ自社のロゴ貼り付けて、ドヤ顔で公開する内容か!?本当に!本当に!!なんの!!!価値も!!

この記事はエムスリー Advent Calendar 2025 2日目 兼 マネジメントチームブログリレー9日目の記事です。 こんにちは、エンジニアリンググループ General Manager 兼 基盤チームリーダーの横本(@yokomotod)です。 今回はgoroutineについての自由研究です。 「軽量」「何万個も作れる」「並行処理が簡単に書ける」...そんなgoroutineの裏側はどうなっているんでしょうか。 なぜOSスレッドより「軽い」の? グリーンスレッドとは違うの? なぜパフォーマンスが高いと言われるの? この記事では、goroutineのようなランタイムをRustで自作することで、これらの疑問に答えることを目指しました。 ソースコードの全体は以下のリポジトリで公開しています。github.com なぜRust? OSスレッドは重い、のおさらい グリーンスレッドを作って

これははてなエンジニア Advent Calendar 2025 2 日目の記事です。 年の瀬なので振り返りたくなる季節ですね。 今年もAI の話題が非常に多く、コーディングエージェントの普及を始めいろんな変化がありました。新しいモデル、高まる精度、飛び交うビッグマネー、跳ね回る驚き達。そういう景気の良い話はさておき、既存の技術が新しい文脈で再注目されたり、思わぬ用途で広く使われるようになったりすることも起きています。 今日はそんな「以前から存在していたけどAI によって新しい価値を見出された技術やツールを語ろう」のコーナーです。 いくぞ!! Server-Sent Events (SSE) まず出世頭として思いつくのは Server-Sent Events でしょう。 Server-sent events - WebAPI | MDN 今やチャットAI のレスポンスはほとんど
他の言語の非同期プリミティブと比べてもOxかなり良いな〜という記事です。 先日Ox v1.0.0がリリースされた。Oxはプログラミング言語Scalaの非同期処理ライブラリで、Java 21から搭載されたVirtual Threadの機能を活用して、非同期処理のための道具を使いやすい形で提供してくれる。github.com 今回ついに1系がリリースされたので、改めてOxを紹介し、他の言語における非同期処理プリミティブと何が違うのか、どう便利なのかを紹介していければと思う。OxはScalaのライブラリだが、Scalaを知っている人も知らない人でも読めるようなコードになっているので安心してほしい。Oxの詳細はドキュメントを参考にしてほしい。 というのも、以前Oxをフィーチャーした記事を書いたことがあったが、まだメジャーバージョンが1に到達していないのもあり、あまり深く踏み込むことはしていなかっ
これははてなエンジニア Advent Calendar 2025 1日目の記事です。はてなでフロントエンドエキスパートをしている id:mizdra です。普段はJavaScript を書いてて、趣味で色々なツールを作ってます。 ところで最近、npmjs.com へのサプライチェーン攻撃が話題ですね。以前から npmjs.com ではサプライチェーン攻撃が発生していましたが、今年は規模が大きいものが頻繁に発生しています。 Active Supply Chain Attack: npm Phishing Campaign Leads to P... npm Author Qix Compromised via PhishingEmail in Major Suppl... DuckDB npm Account Compromised in Continuing Supply Chai

最近、認証情報を整理してファイルにベタ書きしているデータを撲滅し1passwordに寄せたら、やたら1passwordの認証が要求される様になってしまったのでYubikeyをポチった。 予定通りLinuxでも無事設定できたのでまとめておく。 ちなみに、今回買ったのはこれ。 www.yubico.com 国内代理店は完売してるので直接yubicoのサイトから買った。 Type-CにしたのはノートPCとかタブレットとかでも利用するなら将来的にこっちの方がいいかなと。自宅で利用する場合はAの方がいいんだけどアダプタ噛ませば済むので。 Yubikeyの管理 yubikey-managerをインストールする。 ykman infoでファームウェアバージョンなどを確認できて、ykman configで不要な機能を無効化したりできる。 重要なのはPINの設定でYubikey NFCは指紋認識とかはできな
11月24日、bykozyが「Blog -Rust is a disappointment」と題した記事を公開した。この記事では、Rustが期待されてきた「C++の後継候補」としての役割を十分に果たしていないのではないかという問題提起を行い、とくにコンパイル速度の遅さ、言語としての複雑さ、メモリ安全性と信頼性のトレードオフ、可変共有状態の扱いにおける限界について詳しく紹介している。以下に、その内容を紹介する。 11月24日、bykozyが「Blog -Rust is a disappointment」と題した記事を公開した。この記事では、Rustが期待されてきた「C++の後継候補」としての役割を十分に果たしていないのではないかという問題提起を行い、とくにコンパイル速度の遅さ、言語としての複雑さ、メモリ安全性と信頼性のトレードオフ、可変共有状態の扱いにおける限界について詳しく紹介している

これを組み合わせてる例を雑にググっても見つけられなかったのですが、よく考えたら組み合わせたらそれなりに便利というか、劣化版HaskellのCoercibleと言えなくもないのでは???と今更気がついたので、それについて書きます。 昔こういうことをtweetして dottyのopaque type、Scala 2のvalue classに比べてよりHaskellのnewtypeに近い気がしてるけれど、Haskellのtype roleやCoercibleのようなものを入れたい、みたいな動き出てこないのかなぁ。 リポジトリ検索しても少し言及されてるだけだな— Kenji Yoshida (@xuwei_k) February 16, 2020 今でもおそらくScala 3本体で追加でそういう系の機能が直接入ったりはしてないはずです。 https://docs.scala-lang.org/sc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く