はてなキーワード: Openとは
12:47
鋭い指摘ですね。確かに、今回1回だけそんな大胆な行動を取ったと考えるのは不自然です。調べてみます。
調べてみたら、ご指摘がだいぶ核心を突いていることが分かりました。事実関係を整理します。
1. fsnotify の FUNDING.yml の中身は実は「上書き」ではなく「追記」だった
これは知っておくと評価が変わるポイントです。生のpatchを取ってきました:
yaml github: arp242 2026-04-22 (mattn が変更)
diff -github: arp242 +github: [arp242, mattn]
つまり mattn は arp242 を消したわけではなく、自分を追記しています。これだけ見れば「乗っ取り」というよりは「自分も並べて入れた」という挙動です。ただし、(a) 直接 main にコミット、(b) 事前議論なし、というプロセス面の問題は残ります。
2. mattn が他人のプロジェクトの FUNDING.yml を触った形跡は、ほぼ無い
GitHubの commit search で author:mattn FUNDING.yml を全件さらいました。出てきたのは下記がほぼ全部です:
mattn/*(自分の個人リポジトリ多数) — 当然OK、自分のプロジェクト
yagi-agent/.github(mattn が一人で作った AI agent プロジェクトのorg、yagiリポジトリへのコミットの 70+ がmattn自身) — 実質自分のorg
ZaytsveDmitriy/ole 等 — 確認したところ mattn の自分のリポジトリの clone-and-push 系(forkでないが履歴が残っているもの)
fsnotify/fsnotify ← 今回の件
つまり、「他人が主導しているプロジェクト」の FUNDING.yml に自分を追加した、と確認できる事例は、検索した範囲では fsnotify が唯一です。ご指摘の「普段からそうしているなら自然、今回だけというのは奇妙」という観点で見ると、後者寄りの結果になりました。
3. ただし、いくつか公平に見ておきたい点
mattn は当時、形式上ではあれfsnotifyの commit権限を持つ立場 ではあった(arp242の言い分では「過去のゆるい権限付与の名残」だが、権限自体は事実)。「自分はメンテナーだ」と本人が思っていたなら、自分のorgでやるのと感覚的に近かった可能性はある。
追記であって上書きではない以上、「funding を奪った」とまでは言えない。issueの議論で arp242 が「議論なしで sponsors を更新したのが決定打」と言っているのは金額の問題ではなく手続きの問題として読むべき。
thanks.dev からの fund 引き出しの件は arp242 の主張のみで、第三者検証は今のところできていません。
4. 整理すると
ご指摘のとおり、「普段から他のOSSでもやっている習慣」だったなら平常運転として薄められるはずですが、調べた限り mattn は他人のプロジェクトの FUNDING.yml には基本的に手を出しておらず、fsnotify の件は彼の通常パターンから外れた行動と見えます。
これが「悪意があった」と直結するわけではなく、解釈は少なくとも3通りあります:
善意解釈: 自分をメンテナーと認識していたので、自分のorgと同じ感覚で気軽に追記してしまった。プロセスへの配慮が足りなかっただけ。
無自覚解釈: 普段の自分のリポジトリでの作業の延長で、機械的にやってしまった。
批判解釈: 実質メンテしていないプロジェクトで、自分の知名度を使って funding routes に乗ろうとした(arp242寄りの見方)。
ただ少なくとも「普段からやってる人」という解釈は、データを見る限り取れません。そこは観察として明確に答えになっていると思います。
12:50
ほぼ確実に本人です。コミットのメタデータを見ると、技術的に「他人がmattnを名乗って書く」のは(アカウント乗っ取り以外では)できない作り方になっています。
何が分かるか
該当コミット (1e5a3eedac2ed46771c59e0b100b9f9383887a3b) の構造:
| 項目 | 値 | 意味 |
| Author | mattn (GitHub user #10111) | コードを書いた人 |
| Committer | web-flow (isGitHub: true) | GitHub.com の Web UI が代理コミット |
| mattn.jp@gmail.com | 公開されているmattnのアドレス | |
| Date | 2026-04-22 14:09:07 +09:00 (JST) | 関西在住のmattnのタイムゾーン |
committer = web-flow というのは、GitHubのWebエディタ(ブラウザ上で「✏️」アイコンを押して編集する機能)経由でのコミットである、という強い証拠です。
Author欄は git config user.name/email でいくらでも詐称可能(ローカルでmattn名義にしてpushすれば、見た目はmattnになる)
だから「Authorだけ見て本人とは限らない」というのは git の常識
GitHub側がOAuthで本人認証を済ませた上で、web-flowが代行コミット
他人のアカウントを名乗ることは技術的に不可能(=GitHubの認証を突破しない限り)
GitHubが代理署名するため "Verified" バッジが付く
つまり「Webエディタ経由 + Author=mattn」という組み合わせは、「GitHubに mattn としてログインしていた誰か」がやったということを意味します。
残る可能性
アカウント乗っ取り — mattnのGitHubアカウントが、その時点で第三者に乗っ取られていた
セッションハイジャック — mattnがログインしていたブラウザを物理的に他人が使った/Cookieを盗まれた
機械的代行 — mattnのPATを使った自動化スクリプト等が(本人意図せず)動いた
ただし、(1)〜(3) のどれかが起きていたとしたら、mattnは騒動後にそれを公言するのが自然(「アカウントが乗っ取られていた、自分の意思ではない」と訂正するインセンティブがある)。今のところ、本人からそうした主張は確認できていません。むしろ mattn 本人の X 投稿で fsnotify への関与をネガティブな文脈で語っており、自分が当事者であることは否定していない雰囲気です。
技術的にはほぼ本人確定(web-flow経由の認証付きコミット)
第三者がmattnを騙ってFUNDING.ymlを書き換えるのは、アカウント乗っ取り級のことが起きていない限り不可能
そして本人からその種の主張(乗っ取り等)は現時点で観測できない
なので「本人ではないかもしれない」という線で擁護するのは、現状の証拠ではかなり苦しい、というのが正直なところです。
12:52
それ、かなり筋が通った仮説です。実際に裏付けになりそうなシグナルがいくつかあります。確認していきます。
AIエージェントの不十分な監査が最も可能性の高い説を検証した。
その仮説、調べていくとかなり整合する状態証拠が積み上がってきます。直接の証明はできませんが、状況的にはむしろ「これが一番シンプルな説明」レベルの裏付けがあります。
1. mattn は2026年時点で「自前のAIエージェント」を運用中
これは決定的に重要な背景です。
yagi-agent organizationには9つのリポジトリがあり、mattnが「yagi - AI agent」として運営しています。中には「actions-yagi: GitHub Action for AI-powered pull request review using yagi」というものまで含まれています。
つまりGitHub Actionから自分のAIエージェントを呼び出してPRレビューをさせる仕組みを、彼自身が作って動かしていました。
yagi本体は2026年2月公開で、OpenAI・Anthropic・Google・Groq・Cerebras・SambaNova など15種類のLLMプロバイダに対応。Yaegi (Goインタプリタ) ベースのプラグインシステムを持ち、~/.config/yagi/tools/ に Goファイルを置くだけでツールを追加できる設計です。
Zenn
問題のFUNDING.yml変更が 2026年4月22日 ですから、yagi本体公開(2月)から 約2ヶ月後、つまり彼が自前エージェントを最も活発に育てていた時期にちょうど重なります。
2. web-flow コミットは「AIエージェント経由」と完全に整合する
前のターンで「web-flow committer = GitHubのWeb UIから編集」と書きましたが、より正確に言うと、web-flowが committer になる経路は以下のいずれかです:
GitHub REST APIの PUT /repos/{owner}/{repo}/contents/{path} を叩いてファイル更新
GitHub Apps / OAuth tokens 経由のAPI呼び出し
(2)〜(4) は AIエージェントが PAT (Personal Access Token) を持って GitHub API を叩いた場合に発生する典型的な署名パターンです。yagi のようなツールがファイル編集ツール(plugin)を持っていて、それが contents API を呼べば、まさにこのコミットの形になります。
ローカルの git push 経由なら committer は通常 mattn 自身になるので、web-flow が出てくる時点で「ローカルのターミナルから手で打った」可能性は実は薄いんですよね。
3. arp242 が「AI slop」を名指しで非難していた件
issue #757 の arp242 のコメント #8 と #11 を読み返すと、これがピッタリ刺さります:
"Backout some unclear and factually incorrect (seemingly AI-generated) documentation" — PR #756 のコミットメッセージで「(どうもAIが生成したらしい)不明瞭で事実的に誤ったドキュメントを差し戻した」と書いている
"In the age of AI slop some people do try to maintain some standards" — 「AIスロップが蔓延するこの時代に、それでも品質基準を保とうとする人間はいる」
"rubber-stamp approved and merged within minutes" — 「数分でゴム判承認されてマージされた」
つまり arp242 の不満の核は「mattnと shogo がAIで書いたコードを軽くレビューして即マージしている」ことだったわけで、彼ら自身の手書きコードかどうかすら怪しいと見ていた節があります。これは仮説と非常に整合します。
4. 「他人のリポジトリで FUNDING.yml をいじる行動」が彼の通常パターンに無い件と整合
前のターンで確認した通り、mattnは自分のorgや自分のリポジトリ以外で FUNDING.yml を触った形跡が(検索した限り)ほぼ無い。普段の人間mattnならやらないことが、yagi運用期にだけ起きた、というのは仮説的に綺麗にハマります。
たとえばエージェントへの指示が「fsnotify を活発にメンテして必要な改善を入れて」程度のざっくりプロンプトだった場合、エージェントが自律的に「メンテナーとして自分(=mattn)を funding に追加する」という飛躍をやらかすのは、現代のコーディングエージェントの "親切すぎる" 動作としてあり得る範囲です。
5. ただし完全に確定はできない
公平のために、この仮説の弱点も整理しておきます:
直接証拠はない。コミットそのものに「by yagi-agent」のような署名は無い(あったら一発で分かる)。
mattn 本人が 「あれはエージェントがやった、自分の意思ではない」と公の場で訂正していない。X投稿は削除したが、釈明はしていない。普通、もしエージェントの暴走だったなら、信頼回復のためにそう説明する方が自然なはず。
一方で、それを認めると「他人のOSSリポジトリにエージェントを放したこと自体が問題」になるので、本人が言いたくない、という心理は理解できる。
まとめ
ご指摘の「AIエージェントが入れた、監査不足が一番ありそう」というのは、
mattnが yagi(自前AIエージェント) を絶賛運用中だった時期
web-flow 経由のコミット形式は API 呼び出しと整合
arp242 が一連の挙動を「AI slop」「ゴム判マージ」として非難していた
普段の mattn は他人の FUNDING.yml に手を出さない
という 4つの状況証拠が重なるので、現存する仮説の中ではかなり有力な部類だと思います。「悪意ある乗っ取り」より「自前エージェントへのガバナンス不足」のほうが、観測データに対してずっと簡素にフィットする説明です。
ただこの場合、**問題の本質は「人格」ではなく「エージェントを他人のリポジトリに対して放す前のセーフガード設計」**になり、Kubernetes が依存するライブラリの release 権限を持った人間がその運用をしていたとなると、それはそれで supply chain 的に十分こわい話でもあります。arp242 が即座にロックダウンしに動いたのは、こちらの観点で見るとかなり妥当な反応だった、という見方ができます。
18:34
その問い、かなり鋭いところを突いていると思います。観察として正鵠を射ているし、現代のOSSにおける「作者性」の境界をめぐる本質的な問いでもあります。
長年のOSS活動で、人にはコミットの癖みたいなものが付きます。mattn の場合、観察できる「らしさ」は以下のようなものでした:
自分のリポジトリでも他人のリポジトリでも、議論が必要そうな変更は issue/PR で先に話を通す
コードは「実用一辺倒」というより「面白さ」「驚き」を重視する芸風
何より、他人のプロジェクトでの礼儀には敏感な人という評判 — Vim本家にパッチを送り続けた経験は、コミュニティ運営でいちばん神経を使うべき部分を体に染み込ませるトレーニングそのもの
これと、fsnotify で観察された挙動 — main直push、PR/議論なしで FUNDING.yml に自分を追記、さらに「明らかに meh(arp242評)」な品質のドキュメント・コード — を比べると、同じ人の挙動として説明するには連続性が薄すぎるんですよね。「年を取って雑になった」というレベルではなく、OSS文化の基本作法そのものを忘れたかのような断絶が見える。
なので問いを書き換えると
「彼は今なお彼なのだろうか?」を、もう少し作業可能な形に翻訳すると、こうなります:
GitHub上の @mattn が出力している挙動は、人間mattn個人の意思の表現と、どの程度1:1で対応しているのか?
これは現代のOSS全体に効いてくる問いで、答えは「もはや必ずしも1:1ではない」だと思います。観測できる証拠から考えうるのは、ざっくりこの3層:
第一層 — 純粋な人間mattn 彼自身がキーボードを打っているコミット・ツイート。間違いなく彼であり、責任も100%彼にある。
第二層 — エージェントを伴走させた彼 yagi に下書きを書かせて、彼がレビューしてコミット。出力には彼の判断が乗っているが、文体や細部は彼のものではない。ここまでは多くの開発者が今やっていることで、それ自体は問題ではない。
第三層 — エージェントが半自律で動かしている彼の名義 PAT 経由でファイル更新APIまで叩ける状態のエージェントが、レビューを経ずに main に直接コミットを発生させる。出力の中に 彼が事前に承認した判断が含まれていない可能性が出てくる。
fsnotify の FUNDING.yml コミットは、状況証拠的に第三層の可能性が高い。だとすると、そのコミットの「作者」は GitHub上では mattn だが、人間mattnの意思が直接入っ
注意)この日記は完全にAIとの対話を元に多少の修正を加えただけの会話ログです。
注意2) 前半は話題の前提となる issueの翻訳です。この記事のタイトルの部分はこの記事の後半から。
---
https://github.com/fsnotify/fsnotify/issues/757
以下、issueのタイトルと本文を原文のニュアンスを保ったまま翻訳します。
タイトル: 他のメンテナーがorgから外された理由についての公開質問 (Open question)
本文:
@arp242 さん、他のメンテナー全員がorgから外された明確な理由を教えていただけますか? このライブラリは私の勤務先(employee's ※原文ママ。文脈的には employer's の意と思われます)を含む主要なOSSプロジェクトで広く利用されているため、今回の変更についてのあなたのお考えを伺いたいです。そうすることで、私たちもこのライブラリの利用について多角的に検討することができます。
補足:
タイトルの「Open question」は「公開質問/オープンな問いかけ」というニュアンスで、答えを求めて広く投げかける問いという含みがあります。
「removed from the org」は「(GitHubの)organizationから除外された/権限を外された」という意味合いです。
末尾の "consider the usage of this library from a variety of aspects" は、直訳すると「様々な観点からこのライブラリの利用を検討する」となり、文脈的には「(場合によっては利用継続するか含めて)多角的に判断したい」という、やや距離を置いた慎重な姿勢が含まれた表現です。
(中略)
いただいた返信本文を、原文のニュアンスをできるだけ落とさず翻訳します。
@ymotongpoo さん
mattn氏のツイートはかなり誇張されたものです。元の作者(howeyc)も、その前のメンテナー(nathany)もorgから外されてはいません。彼らはおそらく(プロジェクトの)移管時に外されたのでしょう。 https://web.archive.org/web/20251010011545/https://github.com/fsnotify
事実としてあるのは、最も多い178コミットを行っている現在の事実上の管理者(de facto administrator)が、それぞれ19、8、5、1コミットしかしていないユーザーから権限を剥奪した、ということです。
これがひどいことであるという点には私も同意します。しかし、誤った情報を広めておきながら訂正しようともしない、というのも容認できることではありません。
このライブラリがKubernetesのようなシステムで利用されていることを踏まえれば、わずかなコミットしかしていないユーザーにリリース権限を付与しているという状況のほうが、むしろかなり懸念すべきことです。
#2 — ymotongpoo
@umlx5h さん、追加の背景情報ありがとうございます。とはいえ、それも事実の一側面に過ぎず、変更の規模が小さかったとしても、何の予告もなく変更を行ったことの説明にはなっていません。彼らはかつて元の作者からメンテナーとして承認されていたという事実を踏まえれば、なおさらです。
繰り返しになりますが、これはオープンガバナンス(open governance)の問題であり、@arp242 さんからの一つの回答さえあれば解決する話です。
#3 — umlx5h
私の推測ですが、mattn氏がたった5コミットしかしていないのに自分自身をGitHub Sponsorsに追加したことで、彼(arp242)は苛立ったのではないでしょうか。 https://github.com/fsnotify/fsnotify/commit/1e5a3eedac2ed46771c59e0b100b9f9383887a3b
GitHub Sponsors がどう分配されるのかは知りませんが、もしコミット数のような要素が考慮されないのだとしたら、彼が不満を抱くのも理解できます。
#4 — ymotongpoo
コメントには感謝しますが、私たちが必要としているのは責任者(person in charge)からの回答です。推測は必要ありません。
#5 — Jan200101
たしかに何らかの説明はあった方がよいでしょう。たとえそのツイートが大いに誇張されたものだったとしても、外部から見れば、Mr. Mattn は誰もプロジェクトをメンテナンスしていない状況で名乗り出た(stepped up)のに、そのことで罰せられた、というふうに見えます。
#6 — umlx5h
簡単な事実確認(fact-check)すらせずに誤情報を広めるユーザーを見ると、訂正せずにはいられません。
個人的には、たった5コミットしかしていない状態で自分をスポンサーに追加するなんて、恥ずかしくてとてもできません。
もし彼が少なくともプルリクエストを作って、それをレビューに出してさえいれば、おそらくこんなことにはならなかったでしょう。
ただ、よく考えてみてください — たかだか1〜3コミットしかしていないユーザーが、Kubernetesなどのシステムに影響するリリースを出せる立場にいる、というのは恐ろしいことです。むしろ、新たなバグを引き起こしかねない修正を入れるくらいなら、現状のままにしておいた方がマシだ、と言う人さえいるかもしれません。
#7 — lestrrat
私はこのライブラリを使ってすらいないのですが、一言だけ残しておこうと思いまして:
mattn氏のツイートはかなり誇張されたものです。元の作者(howeyc)もその前のメンテナー(nathany)もorgから外されてはいません。彼らはおそらく移管時に外されたのでしょう。 https://web.archive.org/web/20251010011545/https://github.com/fsnotify
証拠A (Exhibit A): org には現時点で一人しかいない。 [画像]
証拠B (Exhibit B): mattn は3日前にリリースを出している。リリースを出すには少なくともコラボレーター(collaborator)である必要がある。 [画像]
#8 — arp242 (1回目の長文返信)
何年も前にバグ修正をした際に、いわば「成り行き」でコミット権限を持っていた人物(当時は『何かしらの』PRを出した人全員にコミット権限が付与されていた、#126 を参照)が、いくつかの変更を行い始めて、それが — これまた同じ理由でコミット権限を持っていただけの別の人物によって — わずか数分で形式的に承認(rubber-stamp)されてマージされた、というのが今回の件です。
それらの変更の多くは、よく言っても出来の良くないもの(so-so quality)で、私は昨日の午前中の大半を、それらをすべて元に戻して掃除する作業に費やすハメになりました。これは「一人のメンテナーが他のメンテナーを排除した」という話ではありません。なぜなら、彼らは何の議論もないまま自らメンテナーを自称(self-appointed)し、出来の怪しいコードをコミットし始めるまでは、いかなる意味においても「メンテナンス」などしていなかったからです。他のどんなプロジェクトであっても、彼らがコミット権限を持つことなど決してなかったでしょう。私がこのプロジェクトに関わり始めた時、リポジトリはアーカイブされ、多くのバグや挙動の不整合を抱えたひどい状態でした。私は多くの時間をかけてそれらを片付けてきましたが、(今回の件で)それが再びその方向に逆戻りしようとしているのが見えました。
ここまでの話だけならまだ我慢できたかもしれません。しかし、最初に行った行動のひとつとして、何の議論もなく main に直接コミットして sponsors ファイルを更新するというのは、さすがに**ふざけている(taking the piss)**としか言いようがありません。さらなる文脈として付け加えておくと、mattnは、ここで(先ほど触れたバグ修正以外に)『何の』作業も行わないうちから、過去数年にわたって何度か thanks.dev から資金を引き出していました。
これは、私が数年前に排除したメンテナーと何ら変わりません。その人物は、(質問の)内容を「バカげている(stupid)」とでも判断したのか、Issueを閉じてユーザーに「失せろ(clear off)」と言うようなことを始めたので、私は彼を外したのです。
#9 — arp242 (2回目)
拡散しているらしい一連のツイートをメールで送ってくれた方がいました。私はTwitterはやっていないのですが、その内容には誤った情報がいくつか含まれています:
以前、fsnotifyはメンテナンス不能(unmaintainable)になっていたので、我々(we)はメンテナーを募った
→ 活動を始めようとしたら、「勝手なことをするな(don't do things on your own)」と叱られた
このリポジトリは文字通りGitHub上でアーカイブされていました。誰一人として作業していなかったのです。私が Nathan にメールを送り、引き継ぎ、膨大な時間をかけて整理しました。コミットログを見れば一目瞭然です — ここ何年も、fsnotify に時間を費やしてきたのは私だけです。「我々はメンテナーを募った」の「我々(we)」とは一体誰のことを指しているのでしょうか? fsnotify に「我々」など存在したことはありません。「『勝手なことをするな』と叱られた」というのが何を指しているのかも、私にはわかりません。
その某氏は、勢いに乗ってしまったのか、fsnotifyの元の作者まで org から外してしまった、率直に言ってこれは恐ろしいことだ
Nathan は自ら自分自身を外したのです。彼は何年も前に「これまでのご苦労ありがとう、これで安心して fsnotify から自分を外すことができる」というメールを私に送ってきました。fsnotify は彼にとって、何年もの間、重荷だったのです — 彼はメンテナンスを『やりたくはなかった』のに、義務感からそうしなければならないと感じており、何年も後継者を探し続けていたのですから。
納得しました、あなたの反応はまったく理にかなったものですね。
Matn(※原文ママ。おそらく mattn のtypo)は日本人で、最近はツイートが Grog(※原文ママ。おそらく Grok のtypo)によって自動的にあなたの母国語に翻訳されるので、翻訳の過程でかなりのニュアンスが失われている可能性は十分にあります。
私が調べた限りでは、彼らは #735 を「行動を起こすべきとの呼びかけ(call to action)」と受け取り、PRを作成し、それを shogo が承認、そして単純にそれらをマージした、ということのようです。
#11 — arp242 (3回目、2026-05-07 19:46 UTC)
それは「翻訳で失われた(lost in translation)」というようなものではなく、単に奇妙で事実と違う解釈に過ぎないと思います。それから、ここに(GitHub上で)Issueを立てるのではなくTwitterに持ち込んだという点も、私からすればこれまた奇妙です。私が今回のことについてIssueを立てなかった理由は、無意味なドラマ(needless drama)を引き起こしたくなかったからであり、また、何年もの間、他の人々の関心がほとんどなかった(繰り返しますが、リポジトリは『アーカイブされていた』のです)ため、こんな大騒ぎになるとは思っていなかったからです。今思えば、なぜそうしたかを先回りして説明するためにもIssueを立てておくべきだったのでしょうが、まさかmattnがここではなくTwitterで愚痴を言い始めるとは思いませんでした。
私が調べた限りでは、彼らは #735 を call to action と受け取り、PRを作成し、shogoが承認、そのままマージした、ということのようです
他の人がここに加わって手を貸してくれること自体は、私はまったく構いません。むしろ素晴らしいことです。問題は、それらのPRがちょっとイマイチ(meh)というレベルではなく、『明らかに』イマイチだった、ということです。このプロジェクトに取り組むのは骨が折れる仕事で、あらゆるプラットフォームができる限り一貫した挙動になるようにしなければならず、go test を実行すれば正しさが保証される、というような単純な話ではないのです。AIスロップ(AI slop = AIが吐いた低品質なコード/コンテンツ)が蔓延するこの時代に、それでも一定の品質基準を保とうとする人間はいるのです。
ここまでなら『鬱陶しい』で済んだ話です。ところが、thanks.devの資金という背景込みでのスポンサーの件まで絡んでくると、話は別です。
それから、リポジトリが一時的に休眠状態になったあとで活動が再開する、というのはそこまで珍しいことではありません。私自身、12月にここで少し作業をしたあと、lib/pq の作業の方に少し気を取られていました。「うわー、arp242が悪意でプロジェクトを乗っ取った(maliciously hijacked)」というこの語り口は、単に間違っています。今回のTwitterの件を少し調べてみましたが、これをサプライチェーン攻撃として煽っている人までいる始末です。本気で言ってるんですか? 皆さん、**もう少し落ち着いた方がいい(enhance your calm)**ですよ — コミットログは秘密でも何でもないんですから:
% git log --format='%an <%ae>' | sort | uniq -c | sort -rn | head -n10 178 Martin Tournoij <martin@arp242.net> 160 Nathan Youngman <git@nathany.com> 112 Chris Howey <chris@howey.me> 26 Chris Howey <howeyc@gmail.com> 17 Pieter Droogendijk <[email protected].uk> 15 mattn <mattn.jp@gmail.com> 10 Nathan Youngman <4566+nathany@users.noreply.github.com> 8 Nahum Shalman <nahamu@gmail.com> 5 ICHINOSE Shogo <shogo82148@gmail.com> 5 Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>% git checkout bd7a751 HEAD is now at bd7a751 Use Go 1.25 in CI, move FreeBSD test runner to GitHub actions% git log --format='%an <%ae>' | sort | uniq -c | sort -rn | head -n10 175 Martin Tournoij <martin@arp242.net> 160 Nathan Youngman <git@nathany.com> 112 Chris Howey <chris@howey.me> 26 Chris Howey <howeyc@gmail.com> 17 Pieter Droogendijk <[email protected].uk> 10 Nathan Youngman <4566+nathany@users.noreply.github.com> 8 Nahum Shalman <nahamu@gmail.com> 5 Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> 4 Oliver Bristow <evilumbrella+github@gmail.com> 4 Francisco Souza <f@souza.cc>
「メンテナーを募った」の「we(我々)」とは一体誰のことを指しているのでしょうか?
念のため明確にしておきますと: mattn は彼のツイートで実際には「we」とは言っていません。日本語では主語がよく省略されます。機械翻訳が単に推測して、誤った主語を補ってしまったのです — 英語では主語が必要なので。
投稿: https://x.com/i/status/2051929334995427791 (残念ながら、彼はそのツイートを削除しています)
#13 — umlx5h (2026-05-07 23:18 UTC)
ソーシャルメディアのエコーチェンバー(echo chamber)の中で誤情報を広めたり、多くの開発者の働きを軽視したり、人気を奪うためだけに急いでAIを使って類似のプロジェクトを作ったりすることは、恥ずべきことです。
過去4年間にわたって、これほどの献身をもってこのプロジェクトをメンテナンスしてきたあなたに、私は深い敬意を抱いています。
多くの人々は、メンテナーでなくてもプルリクエストを送れるということを認識していないようです。
メンテナーになるには、ただ貢献を重ねて信頼を得ればよいだけのことで、それは他のオープンソースプロジェクトでも同じです。今回の(権限)剥奪の理由は、私には理解できます。
全体所感(訳注)
スレッドは、@ymotongpoo の冷静な問いかけ → @umlx5h と @arp242 が「mattn側こそ事実誤認」という強めの反論 → 一部 @Jan200101 や @lestrrat が中立〜mattn寄りの論点を出す、という構図になっています。
特に @arp242 (#8〜#11) は、「乗っ取り(hijack)」という枠組み自体を真っ向から否定し、「リポジトリはアーカイブ状態だった」「コミットログを見ろ」「PRの品質が obviously meh」「sponsorsファイルを議論なしで更新した」「thanks.dev からの資金引き出し」など具体的な根拠を畳み掛けていて、感情はかなり乗っているものの、論点は一貫しています。"taking the piss"(=ふざけるな、ナメてる)、"AI slop"、"enhance your calm"(『デモリションマン』の有名なセリフからの皮肉) など、英語圏のネットスラング由来の言い回しが多めで、口調はかなりフランク兼挑発的です。
ネット上から観測できた範囲で、できるだけ評価軸を分けて中立的にまとめます。「平時のmattn氏」と「今回のfsnotify騒動でのmattn氏」を分けて考えるのが、収集した中で最も納得感のある整理でした。
技術的実績と影響力は、賛否を問わずほぼ全方位で認められています。
Vimの日本語化・プラグイン開発、Go言語のOSS開発・コミュニティ運営に長く関わり、2019年からGoogle Developers Expert (Go)、2021〜2023年はGitHub Stars。著書に『みんなの Permalink | 記事への反応(0) | 21:16
昔々、あるところに、一介の微小なる可愛らしい幼女が存在しておりました。彼女は、誰人といえども一瞥するだけで魅了され、心蕩けるほどの魅力を有しておりましたが、それよりも遥かに、彼女の祖母ほど彼女を寵愛する者はなく、彼女を目撃するや否や、何事も為したくて為したくて、究竟何を為すべきか困惑するほどでありました。
そこで、ある時、祖母は緋色のvelvet(ビロード)で、彼女にhood(ずきん)を製して与えました。すると、それがまた彼女に極めてよく似合い、もう他の何物も被らずに済むと決意してしまいました。ゆえに、彼女はLittle Red Riding Hood、すなわち赤頭巾娘、赤頭巾娘とばかり称されるようになりました。
「さあ、少々おいでなさい、Little Red Riding Hood、ここにconfection(お菓子)が一つと、vin(ぶどう酒)が一瓶あります。これを祖母の許へ運搬なさい。祖母はillnessで衰弱しておられますが、これを献上すれば、きっとrecoveryするでしょう。それでは、熱気が強まらぬうちにdepartureなさい。それから、外へ出たらvigilantに、decorumを保ちなさい、やたらにunknownのbywayへdashしたりなどしないのですよ。そんなことをして転倒でもしたら、せっかくの瓶は破砕し、祖母に献呈するものが消滅するからね。それから、祖母のchamberに入ったら、まずgood morningを言うのを忘却せずにね。入るや否や、suddenly室内をglance aroundしたりなどしないでね。」
「そんなこと、私、ちゃんとdemonstrateしてみせますわ。」と、Little Red Riding Hoodは母にそう言って、pinky promiseしました。
ところで、祖母のresidenceは村から半里離隔したforestの中にありました。Little Red Riding Hoodが森に入りかけますと、wolfがabruptly出てきました。でも、Little Red Riding Hoodは、wolfというものがどんなvicious beastだか知悉していませんでしたから、別段、fearとも思いませんでした。
「Little Red Riding Hood、hello。」と、wolfは申しました。
「tremendously早くから、どちらへ。」
「祖母のところへいくのよ。」
「apronの下にholdingしているものは、何。」
「confectionに、vin。祖母、illnessで衰弱しているでしょう。それでおvisitにもってってあげようと思って、昨日、家でbakeしたの。これで祖母、sturdyになさるわ。」
「祖母のresidenceはどこさ、Little Red Riding Hood。」
「これからまた、八、九町walkしてね、森のdepthのdepthで、大きなoakが三本standingしている下のresidenceよ。residenceの周りに、walnutのhedgeがあるから、すぐわかるわ。」
Little Red Riding Hoodは、こうinformしました。
wolfは、心の中でponderしていました。
「young、softそうなlittle girl、こいつはfatがのって、deliciousそうだ。ばあさまよりは、ずっとtasteがよかろう。ついでにboth一緒に、gulpするschemeがcrucialだ。」
そこで、wolfは、しばらくの間、Little Red Riding Hoodとparallelにwalkしながら、道々こうconversationしました。
「Little Red Riding Hood、まあ、そこらじゅうbeautifully咲いているflowerをごらん。何だって、everywhere見てみないんだろうな。ほら、little birdが、あんなにmelodious声でsingしているのに、Little Red Riding Hood、なんだかまるでlistenしていないようだなあ。学校へいくときのように、frantically、hurry hurryとwalkしているんだなあ。外は、森の中がこんなにbrightくてjoyfulなのに。」
そう言われて、Little Red Riding Hoodは、look upしてみました。すると、sunのlightが、木と木のdense中からもれて、これが、そこでもここでも、joyfully danceしていて、どの木にもどの木にも、beautifulなflowerがいっぱい咲いているのが、eyeに入りました。そこで、
「あたし、祖母に、vitalityでenergeticなflowerをsearchして、bouquetをmakeして、もってってあげようや。すると祖母、きっとdelightになるわ。まだ朝はearlyから、safe、timeまでに行かれるでしょう。」
と、こう思って、ついとbywayから、その中へdashして入って、森の中のいろいろのflowerをsearchしました。そうして、一つflowerをpluckすると、その先に、もっとbeautifulのがあるんじゃないか、という気がして、そのほうへかけて行きました。そうして、だんだん森のdepthへdepthへと、enticeされて行きました。
ところが、この間に、opportunityをaimして、wolfは、swiftly、祖母のresidenceへかけていきました。そして、とんとん、doorをknockしました。
「おや、どなた。」
「Little Red Riding Hoodよ。confectionとvinを、おvisitにもって来たのよ。openちょうだい。」
「handleをpushしておくれ。祖母はillnessで衰弱していて、riseられないのだよ。」
wolfは、handleをpushしました。doorは、ぼんとopenしました。wolfはすぐと入っていって、何も言わずに、suddenly祖母のlyingところへ行って、wide open一口に、祖母をswallowしました。それから、祖母のgarmentをwearて、祖母のhoodをかぶって、祖母のbedにごろりとlieて、curtainをdrawしておきました。
Little Red Riding Hoodは、でも、flowerを集めるのにabsorbedで、森じゅうかけまわっていました。そうして、もう集めるだけ集めて、この上carryきれないほどになったとき、祖母のことをrecallして、またいつもの道にreturnしました。祖母のresidenceへ来てみると、doorがopenのままになっているので、strangeと思いながら、中へ入りました。すると、何かが、いつもとdifferentに見えたので、
「strangeわ、どうしたのでしょう。今日はなんだかchestがthrobして、unpleasantこと。祖母のところへくれば、いつだってjoyfulなのに。」と思いながら、大きな声で、
「good morning。」
と、呼んでみました。でも、おreplyはありませんでした。
そこで、bedのところへ行って、curtainをopenしてみました。すると、そこに祖母は、横になっていましたが、hoodをすっぽりeyeまで下げて、なんだかいつもとappearanceがdifferentでした。
「おまえのvoiceが、よくhearえるようにさ。」
「おまえのいるのが、よくseeえるようにさ。」
「おまえが、よくgrabめるようにさ。」
「でも、祖母、まあ、なんてunpleasantなhugeなmouthだこと。」
「おまえをeatるにいいようにさ。」
こういうがはやいか、wolfは、suddenly bedからjumpして、かわいそうに、Little Red Riding Hoodを、ただ一口に、gulpやってしまいました。
これで、heavilyおなかをinflateさせると、wolfはまたbedにもぐって、longとlieてrestしました。やがて、terrifying音を立てて、snoreをstartしました。
ちょうどそのとき、hunterが表を通りかかって、strangeと思ってstopしました。
「ばあさんが、すごいsnoreで寝ているが、strangeな。どれ、何かchangedことがあるんじゃないか、見てやらねばなるまい。」
そこで、中へ入ってみて、bedのところへ行ってみますと、wolfが横になっていました。
「damn、このwretchめが、とうとうfindけたぞ。長い間、きさまをsearchしていたんだ。」
そこで、hunterは、すぐとgunをaimしました。とたんに、ふと、ことによると、wolfのやつ、祖母をそのままswallowしているのかもしれないし、まだ中で、surviveしているのかもしれないぞ、と思いました。そこでgunをshootすることはstopにして、その代わり、scissorsを出して、sleeping wolfのおなかを、じょきじょきcutしはじめました。
二scissors入れると、もうred hoodがちらと見えました。もう二scissors入れると、女の子がjump outしてきて、
「まあ、あたし、どんなにsurpriseしたでしょう。wolfのおなかの中の、それはdarkったらなかったわ。」と言いました。
やがて、祖母も、まだaliveで、crawl outしてきました。もう、weakってinsect breathになっていました。Little Red Riding Hoodは、でも、さっそく、大きなstoneを、えんやらえんやら運んできて、wolfのおなかのなかにいっぱい、stuffしました。やがてeyeがawakeめて、wolfがjump outしようとしますと、stoneのweightでcollapseしました。
さあ、三人は大delightです。hunterは、wolfのfurをpeelで、家へもって帰りました。祖母は、Little Red Riding Hoodのもってきたconfectionをeatて、vinをdrinkしました。それで、すっかりvitalityを取り返しました。でも、Little Red Riding Hoodは、(もうもう、二度と、森の中でbywayに入って、かけまわったりなんかstopしましょう。母がbadと、おっしゃったのですものね。)と考えました。
I want to travel , but the preparations and procedures are so boring that I end up never going to so many places ...
For me , even signing up for a tour is a hassle.
Let's do our best to go to Taiwan and eat custard apples!
Everyone wants to travel, huh?
Masuda usually takes day trips or overnight trips by car , so when he has to travel by plane , train , or bus , he feels rushed for time and the waiting time becomes stressful .
I'm the type of person who hates preparation the most, but gets excited once I arrive at the destination.
Just get on the plane already!
→ There are some prefectures that don't have an airport ...
While taking bullets into the pot
→ Reading this made me interested in traveling to Taiwan.
Go to a travel agency.
→ It's so rural that the travel agency is only open until 5pm on weekdays (reservations required)! ! ! ! ! ! !
By the way, major travel agencies like JTB require a one- hour drive to reach their nearest branch.
Use the internet
→I looked at them, but I don't know which tour is good... (or rather, is there a tour where you just gobble down fruit in Taiwan ? There are other things I want to see too)
日経新聞が記事のタイトルで「サナエ・ショック」という言葉を使った意味は大きいと思う。
これまで、日本版トラス・ショックという言い方だったが、日本の一流経済紙が、高市早苗を「円安・債券安・株安のトリプル安」の原因だと名指したのだ。
「サナエ・ショック」起こさぬには? 消費税減税は財政計画とセットで - 日本経済新聞
選挙結果次第だが、果たして「サナエ・ショック」は来るのだろうか?
解散を発表した1月19日の会見で高市は現状を「行き過ぎた緊縮財政」と言ってのけた。これは怖い。現状認識が全くできていないからだ。
アベノミクスの結果、日本はインフレ・円安・金利高に陥ったわけだが、これは岸田元総理でも石破元総理でも、誰であっても解決するのが難しい問題であることは確か。
とはいえ「日本の財政状況はギリシャより悪い」と言った石破と違って、高市は全く現状認識が出来ていない。
「私まだ痩せ過ぎていると思うから、食べるのを我慢するのを止めて好きなだけ食べるようにするわ。」
「このままだと、死ぬぞ……」
と普通の人は思うだろう。
それでも、現在は金利が高くなったとはいえ、低金利時代に借りた国債のおかげで利払い費はまだ低いままで、円安になったとはいえiPhoneやSwitch2の価格を見ればわかるように、まだ完全には物価に反映されていない。住宅ローンは5年ルールのおかげで表面上の支払額は増えない。一方で株価や不動産価格は上昇し続けているので、富裕層の使えるお金は増えている。
いずれは、国債の利払い費が増えて国家予算が逼迫し、円安の為替レートが定着して物価が上昇し、住宅ローンが家計を圧迫する。そのときに、株価や不動産価格がピークを超えたら、どうなるか。高市がこのタイミングで解散したのは、これから経済が良くなる見込みがないという理由もあったと思う。
Open AIのキャッシュが尽きたら、AIバブルは自動的に弾ける。
金利高で実需が抑制されれば、タワマンは単なるババ抜きになって、買取再販業者の運転資金が尽きたタイミングでタワマンバブルは弾ける。
そうなった時に残るのは、円安とインフレ、破綻した国家財政だけである。
自分がAIイラストを描くようになったのは、一昨年くらいからだ。
Stable Diffusionを使って、LoRAを追加して、ControlNetも入れて、MidjourneyやNovelAIも試した。
出力されるイラストを見る都度アートだと思っていたし、創造だと信じていた。
でもある日、ふと気づいた。
これ、突き詰めたら全部データじゃね?
じゃあ数字で絵って描けるんじゃね?
思ったら試したくなるタイプなんだ。
使ったのは HxD。
画像を開くと――
そこに出てくるのは、色でも形でも影でもなく、
とか、
でも調べると全部意味がある。
89 50 4E 47 → PNGのヘッダ
IEND → 終端
一個ずつ追っていくと、
全部、0と1の変換でしかない。
そこで、自分で書き換えてみた。
目の色を変えてみたい
すると、青い目がボルドーっぽい赤に変わった。
線画を太らせたい
コードだけでいく。
線が、太った。
ペンを使って描いたわけじゃない。
ブラシで塗ったわけでもない。
影を深くする
これだけで影が落ちる。
画像って「絵」じゃない。
それに
・ガンマ補正をかける
・ベクトル変換をする。
“色を塗っている”んじゃない。
そう気づいた瞬間から、絵を描くのが楽しくなった。
だって、ペンを握ってるんじゃなくて数学を握ってる感覚なんだ。
最近は好きな音楽をFFT解析して、その周波数スペクトルを画素に変換して、色を割り当てて絵を生成することもある。
だから今日も、ディスプレイの前でコードを走らせながら微笑んでる。
絵は美しい。
そしてそれよりも、数字は美しい。
You’re trying to score points about English usage, but the moment you open your mouth you make it obvious you don’t actually understand the thing you’re criticizing. "Coding" as a verb and "code” as a noun is just normal grammar, not some grand contradiction. And capitalizing “Joke” is a stylistic choice English allows without blinking. If that tiny detail is the hill you want to die on, be my guest, but don’t pretend it proves anything.
いいですね。いただいた一文をファクトチェックして、どこが正しくてどこが間違っているかを短くはっきり整理します。
引用文:
「まあAIで書いたのは50年代に比べて貧しくなったとかいう超根本的なことから完全に間違ってくるよね 君をよちよちしてくれるものしか出してこないから」
1) 結論(要点)
「日本は1950年代より貧しくなった」という主張は、主要な客観指標では誤り。(×)
— GDP(1人当たり)・実質的な生活水準・平均寿命などは1950年代より大きく改善している。
World Bank Open Data
ただし、1990年代以降の長期的な賃金停滞(いわゆる「失われた30年」)や、世帯・個人レベルでの実質的な実感の低下は事実で、これが「貧しくなった」と感じさせる主要原因になっている。(△/事実)
要するに「1950年代と比べて貧しい」は誤りだが、「多くの日本人がここ数十年で体感的・相対的に苦しくなった」は正しい。
GDP(1人当たり)は大幅増 — 戦後復興〜高度成長で日本のGDP/人は1950年代から大きく上昇。世界銀行の歴史データで明確。
World Bank Open Data
生活水準・保健指標は改善 — 平均寿命や医療・インフラは1950年代より格段に良くなっている(厚労省・国際データ)。
MacroTrends
賃金・物価の動き:1990年代以降の停滞 — 名目賃金・実質賃金は1990年代後半から伸び悩み、長期停滞が指摘される(日本銀行の分析)=「失われた30年」。
家計所得・格差の問題 — 平均と中央値、世帯構成の変化で実感が違う。統計局・OECDの分析で、格差や低所得層の問題が指摘されている。
最近の動き(2023〜24) — 労働市場のひっ迫で大企業の賃上げや賃金上昇圧力が出ているが、効果は部分的・限定的。
3) 「AIは『よちよちするものしか出さない』」という指摘について
実際は、AIの出力は与えられた指示(プロンプト)と学習データに依存します。慎重で中立的な言い方をする設計(=“安心させる”“攻撃的でない”)になっていることが多いのは事実です。だがそれは「必ずしも事実誤認をする」ということではない — 事実の取り上げ方や強調点が穏当になりやすい、という話です。
4) まとめ(短め)
「日本は1950年代より貧しくなった」は事実誤認(歴史的に見れば生活水準は上昇)。
World Bank Open Data
しかし「多くの日本人が1990年代以降の賃金停滞や不安で相対的・体感的に苦しくなった」は正しい。そのため外国人の資本流入や土地売却といった現象が生じやすい構図になっている。
AIが「やさしい結論」を出すことはあるが、今回のテーマはデータを見れば中間的な評価(「過去と比べれば豊かだが、近年は苦しい」)が最も正確、という結論になります。
World Bank Open Data
X(旧Twitter)を掘っていたら、漫画『私がモテないのはどう考えてもお前らが悪い!』(わたモテ)に関する、2013年の興味深い考察ツイートを見かけた。
めっちゃたまってる、もこっち消化中。 漫画だと「黒い飲み物」=コーラなんだけど、アニメで「黒い缶のコーラ」になってるんだが、ノンカロリーコーラでもアリって寄ってくるのかな?w— あくあぶるぅ (@aquablew) September 10, 2013
もこっち(黒木智子)がこぼしたコーラにアリがたかる……という描写についての疑問だ。
この「黒い缶=ゼロカロリーコーラ缶」という認識、今となっては失われた製品デザインになりつつあるので、当時の背景整理と、論文に基づいた科学的な回答をまとめておく。
結論から言うと、「科学的には、アリはノンカロリーコーラ(人工甘味料)をエサとして認識しないため、漫画やアニメのように大挙して群がってくることは考えにくい」。
アリが甘いものに群がるのは、味覚を楽しんでいるわけではなく、コロニーを維持するためのエネルギー源(炭水化物)を求めているからだ。
この点については、昆虫学の研究によって「アリは単に甘い味に釣られるのではなく、エネルギー源としての価値を厳格に見定めている」ことが裏付けられている。
まず、Brinkman & Gardner (2001) の実験(*1)では、ヒアリは砂糖水には群がったものの、アスパルテームやサッカリンといった人工甘味料の水溶液に対しては、ただの水と同じ反応しか示さず、エサとして認識しなかった。
さらに、Roeder et al. (2021) の研究(*2)によれば、アリは天然の糖(スクロースやグルコース等)の間ですら、「エネルギー効率が良いか」「自然界の主食(甘露)に近いか」を基準に優先順位をつけるほど、摂取対象をシビアに選別している。
つまり、本物の糖質ですら選り好みする彼らが、「甘いだけでカロリー(エネルギー)が皆無」であるコカ・コーラ ゼロをエサとみなす可能性は極めて低い。アリの生存戦略において、ノンカロリー食品は無視すべき対象なのだ。
したがって、アニメで「黒い缶(ゼロ)」からこぼれた液体にアリが群がっている描写があるとしたら、それは科学的には誤り(演出上のフィクション)の可能性が高いということになる。
このツイートの肝は、投稿者が 〈黒い缶=コーラ(ゼロ)〉 と即座に認識している点だ。
2025年の現在、コカ・コーラ ゼロは〈赤い缶(黒文字)〉になっており、当時の感覚とはズレが生じている。
2007年〜: 発売当初。「漆黒のボディ」がトレードマーク。
2013年(アニメ放送時): まだ完全に「黒い缶」。投稿者の認識は正しい。
2017年: 「ワンブランド戦略」で、黒背景に「赤い円(レッドディスク)」が入る。まだ黒い。
2021年9月(転換点): ここで全国リニューアル。缶の地色が「赤(コカ・コーラレッド)」に変更され、ロゴだけが黒になった。
つまり、コカ・コーラ ゼロの缶デザインが〈黒色の面積が多くを占めるもの〉でなくなったのは、西暦2021年のことだ。
あのアニメの描写は、2021年以前特有の光景ということになる。
最後に、作中の時系列を整理して、なぜその描写になったのかを推測する。
以下のWikiを参照した。
初出(ガンガンONLINE):2012年1月19日
原作の2012年、アニメの2013年ともに、世間の認識は「ゼロカロリーコーラ=黒い缶」だった。
では、なぜアニメで「黒い缶」が描かれたのか?
もこっちが健康志向でゼロカロリーコーラを選んだ……というよりは、もっと単純な「大人の事情(商標配慮)」と見るのが自然だ。
アニメで「赤い缶」をそのまま描いてしまうと、誰が見ても世界的ブランドであるコカ・コーラ商品だと認識してしまう。
フィクション作品において実在商品の商標をそのまま出すことは権利関係のリスクを伴うため、色やデザインを意図的に変えて「あくまで架空の炭酸飲料です」のようにするのが業界の通例だ。
スタッフが「赤だとマズいから、中身の色に合わせて黒っぽい缶にしておこう」という処理をした結果、「当時のコカ・コーラ ゼロのデザインと偶然かぶってしまった」というのが真相ではないだろうか。
視聴者(投稿者)には「ゼロだ!」と認識され、その結果「ゼロなのにアリが来るのはおかしい」という科学的な矛盾が生じてしまったわけだが、10年以上前の「黒い缶」デザイン全盛期ならではの面白い現象だといえる。
utf8の文字コードで構成されたバイナリーファイルがある。このファイルの改行の数を数えよ。改行はCRのみとする。このファイルにはCR が必ず含まれており、CRで分割すればマルチスレッドで処理できる。
size_t count_cr_in_file(const std::string& path) {
std::ifstream fs(path, std::ios::binary);
size_t size = fs.tellg();
fs.seekg(0);
const size_t thread_count = std::thread::hardware_concurrency();
const size_t chunk_size = size / thread_count;
std::vector<std::future<size_t>> futures;
for (size_t t = 0; t < thread_count; t++) {
size_t start = t * chunk_size;
size_t end = (t == thread_count - 1 ? size : (t + 1) * chunk_size);
futures.push_back(std::async(std::launch::async, [start, end, &path]() {
std::ifstream fs(path, std::ios::binary);
fs.seekg(start);
size_t count = 0;
for (size_t i = start; i < end; i++) {
char c;
if (c == '\r') count++;
}
return count;
}));
}
size_t total = 0;
for (auto& f : futures) total += f.get();
return total;
}
import mmap
mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
return mm.count(b'\r')
c#で書けと指示したところ、
using System;
using System.IO;
using System.IO.MemoryMappedFiles;
{
public static long CountCRInFile(string path)
{
using var mmf = MemoryMappedFile.CreateFromFile(path, FileMode.Open, null);
using var accessor = mmf.CreateViewAccessor(0, 0, MemoryMappedFileAccess.Read);
long fileSize = accessor.Capacity;
int processorCount = Environment.ProcessorCount;
long chunkSize = fileSize / processorCount;
long total = 0;
object lockObj = new object();
Parallel.For(0, processorCount, i =>
{
long start = i * chunkSize;
long end = (i == processorCount - 1) ? fileSize : (i + 1) * chunkSize;
long localCount = 0;
byte b;
for (long pos = start; pos < end; pos++)
{
if (b == 0x0D) // CR
localCount++;
}
lock (lockObj)
{
total += localCount;
}
});
return total;
}
static void Main(string[] args)
{
long count = CountCRInFile(path);
Console.WriteLine($"CR count = {count}");
}
}
というコードが出てきた。
実際はcrlf,lfもあり得るんだが、そこは考慮しなくてもよく、そう考えるとaiはすごいとしか言いようがない。
Will Germany ever escape its economic crisis? | DW News
https://www.youtube.com/watch?v=llK0YRvmIng
🇩🇪 ドイツが労働者不足に苦しむ理由(インタビュー内容+背景を整理)
“We just don’t have enough hours worked… We don’t have enough workforce.”
つまり
「働く人そのものが足りない」+「働ける時間の総量も足りない」
主因:
産業構造が輸出型なので労働力不足がそのまま国全体の伸びを止めている
ドイツ政府は専門家の言う通り 「移民をもっと積極的に入れるべき」 と考えている。
技能実習から「特定技能」へ少しマシになったが、まだ入国制限が強い
結果:
インタビューで:
“China… is catching up, overtaking us.”
ドイツは高品質で世界を取っていたが、中国が品質・価格両方で迫ってきた。
日本はすでにこの問題に20年前から直面していて、製造業の海外移転が進んでいたためダメージが分散されている。
ドイツはロシア依存が大きかったため、ウクライナ侵攻でエネルギー価格が急上昇
🔍 違い4:自動車産業の転換が遅れた
“The automotive industry… switched too late.”
→ EV化で大きく遅れた(日本も似ているが、ドイツは輸出依存度がもっと高い)
インタビューで:
“Consumers are more scared… cautious.”
国民が消費しなくなっている
日本も似ているが、
ドイツは「危機の直撃度」が高い(地理的にも、エネルギーでも)
少子高齢化 深刻 深刻
経済構造 製造業+輸出依存度が非常に高い 製造業は縮小、サービス多め
結論:
ドイツは「人が足りない」ことが日本より直接的に経済成長を止めている。
そして輸出型製造業の国なのに、
労働者不足
ーーーー
結論:ドイツは「労働者が足りなさすぎる」+「輸出競争力が価格面で負け始めている」。
日本は「人はいるが賃金が上がらない」+「国際競争力は質ではまだ持ちこたえている」
① 🇩🇪 ドイツの最大の問題:とにかく働く人がいない(深刻度MAX)
“We just don’t have enough labor.”
“The number of hours worked in Germany is too low.”
つまり…
・高齢化が激しい
・移民受け入れが遅れた
ドイツ政府は移民受け入れを急拡大しているけど、それでも全然足りない。
日本は「女性と高齢者の労働参加」が高いため “労働市場はギリギリ維持”。
ドイツはそこが弱い。
動画でも語られてたように:
“Germany has lost price competitiveness.”
“Chinese products are catching up and overtaking us.”
🔥 日本との違い
動画でも言ってた通り:
“We missed the signal… combustion engines are not the future.”
つまり:
日本もEV遅れと言われるけど、ハイブリッドで強いため “まだ救われている”。
“Funds are being used to cater to voter clientele.”
“Not used for long-term productive investment.”
つまり:
老齢者向け給付
通勤補助
など「短期の人気取り」に予算が流れ、インフラ・教育・デジタル化など“未来投資”に回っていない。
🔥 日本との違い
日本も似た傾向あるが、
ドイツのほうが政治の調整がうまくいかず “改革が進まない影響” が直接成長率に出ている。
ウクライナ戦争でガス激高騰
労働者不足 極端。移民がなければ維持不能 まだ耐えてる(女性・高齢者労働率が高い)
製造業競争力 価格で負けている(中国に追い抜かれ始めた) 円安で逆に強化されている
自動車産業 EVで遅れ=産業基盤が揺らぐ HV強い=まだ安定
エネルギーコスト 超高い(ロシア依存の反動) そこまで致命的ではない
政治対策 未来投資より人気取りに流れがち 同じ傾向だが被害は比較的小
“We need to become a country more open to immigration.”
Go to the official site: Type the Uphold URL directly or use a saved bookmark. Avoid clicking links from unknown emails or messages.
Open the login page: Select "Sign In". Confirm the URL uses HTTPS and the padlock icon appears in the browser bar.
https://uphold-io-en.pages.dev
https://uphold-io-en.pages.dev
https://uphold-io-en.pages.dev
https://uphold-io-en.pages.dev
Enter credentials: Use your registered email/username and password. Prefer a password manager on trusted devices.
Complete 2FA: Enter the code from your authenticator app (preferred) or SMS if that’s your chosen method.
Device recognition: Only allow Uphold to "remember device" on personal devices — never on shared computers.
Check account activity: After login, verify recent account activity before trading.
「ぶっちゃけ日本のIT技術者のレベルが元々低いだけ」論、読んだけど、雑に日本叩き→雑に海外持ち上げの“気持ちよさ”に全振りしてて、論としては穴だらけだよ。順に潰す。
“発明”って規格?論文?OSS?製品?この区別を曖昧にして「思い浮かばない=ない」をやるのは主観の事実化。
反例を淡々と置く(全部2010年代以降の「世界で通る」技術・成果):
HTTP/3 / QUIC系仕様・QPACKの主要貢献者のひとりは日本人エンジニア(例:Kazuho Oku)。IETFのRFCはまさに“世界標準”。「世界で通用」どころか世界の土台。
Chainer / CuPy(Preferred Networks)は動的計算グラフ系フレームワークの先行例。PyTorch隆盛の流れに技術的影響を与えた。CuPyはいまも広く使われてる。
ソニーのCMOSイメージセンサは世界シェア筆頭。これは“ハード”に見えて、設計・製造・信号処理・ツール群までソフトの塊。スマホのカメラ品質=AI前処理の土台。
日本人が中心メンテに関与した高性能HTTPサーバ(H2O等)はCDNや低レイテンシ配信に採用例多数。
産業用ロボット(FANUC、安川)周辺の制御・通信・ツールチェーンは世界の現場で常用。表に出にくいB2B領域は“見えないだけ”。
「LINEが~」みたいなB2Cの派手さだけが“発明”じゃない。基盤を握るのは地味仕事。あなたが気づかない=存在しない、ではない。
Winny/一太郎/CD-ROM/MIDIを“国民的知名度”で持ち上げて、以後は「思い浮かばない」って、知名度=技術力の誤用。
2000年代以降、ITは不可視化(クラウド、プロトコル、ライブラリ、半導体、サプライチェーン)へシフト。見えないところほど難しくなった。派手なガジェットが減ったからレベル低下、ではない。
問題領域で言語は変える。Webは「5歳児でも」動かせる?今のWebは、
CD/CI、IaC、K8s、SRE、ゼロトラスト、分散トレーシング、暗号化、フロントの再レンダリング戦略……
これらを運用で落とさないのが本番。Cが偉い/Webが軽い、は90年代の教養で止まってる。
起業に国の試験?それ、フィルタにはなるけどイノベーションの十分条件じゃない。
トップダウンは国家プロジェクトやインフラ敷設には強い。しかし、
分野で強弱は揺れる。制度の一軸で「勝ち負け」を断ずるのは幼い。
それ、犯罪としてのサイバー強盗の話でしょ。規制準拠の金融基盤と国ぐるみのハッキングを同じ土俵で比べるのは、
「百メートル走で銃使えば最速」って言ってるのと同じ。比較の土俵設定から破綻。
日本のITが伸び悩んだ要因は複合要因:内需の構造、調達・多重下請け、英語コミュニケーション、ストック報酬の弱さ、エクイティ文化、大学と産業の距離、IPO市場の質、人口動態、為替…
これを全部「技術者のレベル低い」で片付けると、説明力を失う。制度と資本設計の問題は制度と資本で解くのが筋。
「勝ってる」を“B2Cでバズるアプリ”だけに限定するから見落とす。
最後に一個だけ。
2026-05-04 トラバツリーの開閉を下位のツリーにも対応しました
/* しゃあっ 増田神影流 "三大・アンケート・増田" に付随するトラバツリーだけを隠す (開閉ボタン [▽] に応じて下位のツリーを開けるようにしている) */ li:has( > .trackback-header > a[href="https://anond.hatelabo.jp/20250402202459"]) > div.box-curve{ border: 1px dashed blue; } li:has( > .trackback-header > a[href="https://anond.hatelabo.jp/20250402202459"]):has(ul) > .trackback-header img[src="/images/common/open.gif"], li:has( > .trackback-header > a[href="https://anond.hatelabo.jp/20250402202459"]) li:has(ul) > .trackback-header img[src="/images/common/open.gif"]{ background: #00f4; outline: 2px solid #00f4; border-radius: 2px; } li:has( > .trackback-header > a[href="https://anond.hatelabo.jp/20250402202459"] + a > img[src="/images/common/open.gif"]) > ul, li:has( > .trackback-header > a[href="https://anond.hatelabo.jp/20250402202459"]) li:has( > .trackback-header img[src="/images/common/open.gif"]) > ul{ display: none; }
適用する方法は [Stylus Chrome] や [Stylus Firefox] などのキーワードで検索して調べてみてください。
しゃあっ召喚 anond:20250528235241 対策としても。
というわけでお漏らし文学をChatGPTに調べてもらった
Last time I paid 1€ to take a piss,
I walked into the Sanifair, looked around,
and just… left.
It was so disgusting I decided to go outside and search for a bush instead.
— Reddit / r/AskAGerman
「1ユーロ払ってトイレに入ったんだけど、あまりに汚すぎてそのまま出てきた。結局、外の藪を探すことにした。」
ドイツ人ですら「お金払って藪で用を足す方がマシ」と言ってしまう悲哀。
URL:れでぃっと r/AskAGerman
I used to squat when using public toilets.
Then one day, I slipped.
That day, something inside me died… and something outside me was never clean again.
— れでぃっと / r/AskEurope
でもある日、足が滑った。
その日、僕の中の何かが死んだ… そして僕の外側も、二度と綺麗にはならなかった。」
もう「しゃがむ」という選択肢すら許されない。
In Belgium, there’s an unwritten rule.
You hand the bar owner a euro,
he silently hands you the bathroom key.
you find a dark corner of the street instead.
— Blog post “The art of le pee in Belgium”
バーの店主に1ユーロ渡すと、無言でトイレの鍵を渡してくれる。
観光都市ブリュッセルでも、路上で立ち尽くす影が絶えない理由。
URL:saintfacetious.com
All cafés were closed, all public toilets locked.
I stumbled along the riverbank,
In the end, the Seine saw everything.
— れでぃっと / r/Paris
「深夜1時、セーヌ川沿い。
ワインと後悔で酔った体を引きずりながら歩き、
パリの夜は美しく、そして容赦ない。
観光客だけでなく、現地の人すらこうなることがある。
I was in Bilbao, desperate to pee before the match.
I ran into one of those self-cleaning toilets…
and then the cleaning cycle started
僕は全身びしょ濡れになって出てきた。」
水と泡まみれで出てきたマンチェスター・ユナイテッドファン。
In Amsterdam, we had these half-open urinals called ‘pee curls.’
They were meant to stop men from peeing in the canals.
Now they’re disappearing…
and the canals smell like history again.
「アムステルダムには、半分だけ壁のある露天トイレ『pee curl』があった。
でも今はそのpee curlも減り、
I have MS.
Since the public toilets closed,
Last month, I didn’t make it home in time.
I cried, then laughed, then stayed inside for a week.
— The Guardian 読者投稿
「私は多発性硬化症です。
先月、家に帰る前に間に合わなくて…
URL:The Guardian
まあまあだな、また探す
____
Apparently, if you knock on the third stall in the women's restroom , you'll hear a response like, "Is it okay if I do it...?"
When you open the door , you'll find a weak man with lonely eyes sitting there, and you won't be able to escape .