はてなキーワード: TRUEとは
横だけど
Plato Republic 443で検索すれば普通にギリシャ語原文と、それにパラグラフ単位で対応した英訳が見つかりますね
443c~444aまでが一続きの台詞であり、そのうち「正義とは」と語り始めているのが443dからで、そのめちゃくちゃ長い一文の序盤を意訳したものだからだということがわかります
443d
that justice is indeed something of this kind, yet not in regard to the doing of one's own business externally, but with regard to that which is within and in the true sense concerns one's self, and the things of one's self — it means that a man must not suffer the principles in his soul to do each the work of some other and interfere and meddle with one another, but that he should dispose well of what in the true sense of the word is properly his own, and having first attained to self-mastery and beautiful order within himself, and having harmonized these three principles, the notes or intervals of three terms quite literally the lowest, the highest, and the mean,
443e
and all others there may be between them, and having linked and bound all three together and made of himself a unit, one man instead of many, self-controlled and in unison, he should then and then only turn to practice if he find aught to do either in the getting of wealth or the tendance of the body or it may be in political action or private business, in all such doings believing and naming the just and honorable action to be that which preserves and helps to produce this condition of soul, and wisdom the science
444a
that presides over such conduct; and believing and naming the unjust action to be that which ever tends to overthrow this spiritual constitution, and brutish ignorance, to be the opinion that in turn presides over this.”
CLAUDE.md や rules / skills みたいな形で、重要なコーディングルールはあらかじめかなり固めておく。
たとえば repository 層や Entity 層は具体的にどう書くのか、テストケースはどういう書き方をして、どういう観点で項目を洗い出すのか、みたいな AI への指示は最初から用意しておく。
あと、linter や ArchUnit、dependency-cruiser みたいなアーキテクチャ制約も、自分なりの定石を持っておく。
割と過剰なレベルでガチガチに固める感じで、アーキテクチャルールも「◯◯は XXX に依存できない」みたいなブラックリスト式じゃなくて、「◯◯は XXX だけに依存できる」みたいなホワイトリスト式の方が良いと思っている。
ts 前提だと eslint や tsconfig は一番厳しい水準に設定する、流石にきつい部分でてきたらそこだけ緩める、という運用
おすすめなのは、何かしらの小規模案件や個人開発アプリを1つオーバーエンジニアリング上等でガチガチ構成で作っておく。
そこで出てきた linter 設定やプロンプト設定を、別案件に横展開する感じ。
正直、ガチガチすぎると MVP とかレベルだとコード量は増えるけど、メンテする前提の案件ならバイブコーディング時代だと普通にペイすると感じている。
アイディアを思いついたら、AI と壁打ちしながら仕様を洗い出していく。
手書きでドメイン図を書いて、それを写メ撮って画像認識で仕様整理、みたいなのも割とアリだと思っている。
どういう画面があって、どういう入力項目や表示項目が存在するか、バックエンドはどういうエンドポイントが必要か、この辺りは最初に一通り洗い出しておく。
それに加えて、ユーザーが初めてトップページを開いてから登録・ログインして実際にサービスを一通り使うまで、みたいな流れをそのまま Playwright のシナリオテストに落とせそうな形で何パターンか仕様書にしておく。
フロントエンドで、DDD における集約みたいな概念がそのまま当てはまらない領域についても、設計時点で洗い出せているなら Entity 的なものやドメインサービス的なロジック用のレイヤを作って、ドメインオブジェクトとして実装していく。
最初に作った基本設計をベースに、◯◯Entity、XXEntity、△△Entity……を作るためのプランとチェックリスト形式の TODO を 1つの md ファイルに吐き出してもらう。
フェーズごとにフォーマッタ、linter、アーキテクチャルールなど一括実行したコマンド実行させて失敗してたら成功するまで修正繰り返させる。
ある程度わかりやすい単位で AI に依頼する感じで、出来上がったコードをレビューする前提なので、実装プランの md 自体はよほど分かりやすいツッコミどころがない限り細かくレビューしない。
mdのフォーマットは skills 側で事前に用意しておく。
フロントエンド用、バックエンド用の両方でドメイン層のファイルを作る。
当然、足りないロジックは後から絶対に出てくるけど、最初から完璧は目指さない。
TODO 一覧の中から自分の認知負荷が許す単位で「チェックリストのここからここまで実装して」と指示を出し、実装が終わったら TODO 項目のチェック状態を更新してもらう、mdファイルもコミットに含める。
コミット前にはlint ルールを無効化していないか、意図通りの実装になっているかは git diff の差分で必ず確認する。
git worktree を使うことが多い。
よくやるのはフロントエンドの画面モック作成とバックエンド実装の2並列で行う。
実装プランを考えてもらうときは「◯◯画面を実装プラン考えて」くらいの単位で依頼する。
実装プランの md ファイルを作るときのプロンプトには、基本設計の〇〇画面の項目一覧をベースに、◯◯のアイテムコンポーネント、リストコンポーネント、◯◯のボタンコンポーネント、Information コンポーネント、外部通信用の ◯◯Gateway を実装する、◯◯コンポーネントは既に ◯◯ 機能で実装してあるからそれを使って、◯◯は処理が膨らみそうだからドメインサービスで実装して、みたいな感じで頭の中のふんわりしたイメージを伝える。
バックエンドも同様で、◯◯のエンドポイントを作って、Gateway がこれこれ必要だから実装して、これはインターフェースと実装分けてね、Entityへの変換処理は関数分けて、◯◯の処理は Usecase 層で、◯◯の処理はドメイン層で、Usecase が膨らみそうだから ◯◯ の処理は独立したクラスにして、あ、似たようなのが ◯◯ 機能にあるからそれを参考にして、くらいの粒度で指示を出す。
フロントエンドの実装を待っている間に、バックエンドのプランを考えたり、タスク粒度を調整したり、リファクタリングプランを考えたりする、またバックエンドのAI待ち時間はフロントエンドのことをする。
フロントエンドオンリーの実装とかで作業が競合するリスクあるときは並列作業しない。
チェックリスト更新が終わるごとに差分を確認して、問題なければコミットメッセージを提案してもらってコミットする。
細切れにするコストよりも、レビューする人間の認知不可が許すレベルであればある程度まとまった単位でレビューして実装速度を優先する派。
テストは、ある程度実装が進んでリファクタリングが辛くなってきたタイミングで作ることが多い。
カバレッジやミューテーションテストなど、定量的にテストを評価できる仕組みは導入する。
バックエンド側のテスト実装は正直かなり楽で、行数や認知的複雑度を厳しく制限して単一責務の原則を守って実装しておけば、AI がかなり高精度なテストを出してくれる。
これもテストファイル実装プランを作ってもらって「ここからここまでのテスト20ファイルを実装してね」をレビュー挟んで繰り返す感じ、例えばミューテーションテストのkill率100%ならそんなに詳しくは見ない。
フロントエンドはテストの定量指標での評価が難しいので、そこはその分レビューを頑張るしかない。
自分はこんな感じでやっている。
感覚としては、優秀だけどシステムのアーキテクチャ全体の責務を負ったことはない経験不足の2年目やSESの部下を扱うEMに近いのかなぁ。
周りの話を聞いていると、もっともっと AI に自律的にいろいろやらせているようにも聞こえる。
これでも 1日1人で数万行レベルはコードを書けてるので、AIない時代に比べると数ヶ月分の成果を1日とかで出してることになるが、もっと本気出せるのかなぁ。
「全機能分プラン作ってね!そこから良い感じの粒度でコミットも自分でやってね!」みたいな指示を良い感じに出せたとしても、指示がでかすぎると、脆弱性盛々になったり、lint エラーループでパニクって linter オフにし始めたり、テスト通すためにエラー握りつぶして assertTrue(true) し始めたりする。
それは流石に許容できないレベルじゃない?が紛れ込むリスクが上がりすぎるんじゃないかなぁ。と思ってるんだがどうだろうか。。。
あとツールはあんま入れてないねkiroとかspec-kitとか、ガチガチ細切れで仕様書作るメリットもあんま感じなかった。
mcpもserenaくらいしかいれてないや、トークン節約してレートリミットの猶予伸ばした方が結局開発早くなるかなって。
いろいろ入れた方がいいんだろうか。
完全にオレオレでこんな感じでやっているんだけど、みんなspec駆動開発というものをどんな感じで、具体的にどうやっているのかが知りたい。
このモデルが正しければ、いくつかの予測が成り立つ。スマートフォンの普及が遅れている国やソーシャルメディアの普及率が低い国では、格差は小さくなるはずだ。(これは事実のようだ。東欧の一部やアフリカの多くの国では格差はそれほど大きくないが、韓国は他の要因により大きな例外となっている。)子供を持つ女性の間では、親になることで制度的なフィードバックループが断ち切られ、競合する優先順位が生じるため、格差は縮小するはずだ。(出口調査は一貫してこれを示しています。母親は子供を持たない女性よりも保守的な投票をするのです。機械が機能不全に陥るか、世代が高齢化して機械の枠を越えるまで、この格差は拡大し続けるでしょう。私がどう解決すればいいのかわからないのは、これらのシステムが自己強化的であるということです。制度は自ら改革しようとしません。アルゴリズムは最適化を止めようとしません。イデオロギーは失敗を認めようとしません。男性のカウンターキャプチャーも健全な結果をもたらさないでしょう。)
逃げ出す女性もいるだろう。子供を持つ女性は、現実がイデオロギーを溶かす強力な溶媒となるため、しばしばそうする。制度に囚われずに人生を築く女性も、時にはそうする。男性の中には、引きこもりをやめたり、怒りのスクロールをやめたりする人もいるだろう。築く価値のある何かを見つけた女性たち。シミュレーションに飽きた女性たち。しかし、システムは他のすべての人々に対して機能し続けるだろう。
If this model is right, some predictions follow.
The gap should be smaller in countries with later smartphone adoption or lower social media penetration. (This seems true: the divergence is less extreme in parts of Eastern Europe and much of Africa, though South Korea is a major exception due to other factors.)
The gap should narrow among women who have children, since parenthood breaks the institutional feedback loop and introduces competing priorities. (Exit polls consistently show this: mothers vote more conservative than childless women.)
The gap should continue widening until the machines are disrupted or the generations age out of them.
Here's the part I don't know how to solve: these systems are self-reinforcing. The institutions aren't going to reform themselves. The algorithms aren't going to stop optimizing. The ideology isn't going to admit failure. The male counter-capture isn't going to produce healthy outcomes either.
Some women will escape. The ones who have children often do since reality is a powerful solvent for ideology. The ones who build lives outside institutional capture sometimes do.
Some men will stop withdrawing or stop rage-scrolling. The ones who find something worth building. The ones who get tired of the simulation.
Update:男性の比率はもはやフラットではありません。2024年以降のデータは、若い男性が右傾化していることを示しています。最近の調査はすべて同じ結果を示しています。若い男性は今、より積極的に保守的になっています。私の解釈では、女性が最初に捕らわれたのは、コンセンサス圧力を受けやすかったからです。その捕らわれの過程は急速に進みました(2007年から2020年)。男性は影響を受けにくく、捕らわれた制度にあまり根付いていなかったため、より長く抵抗しました。しかし、その格差が目に見えるようになり、文化的に顕著になり、「男性こそが問題だ」というメッセージが主流のメッセージとして明確に伝わり、嘘によって男性が社会から排除され始め、男らしさ、つまり男性を男たらしめるものそのものが有害になったため、男性は対抗し始めなければならなかった。
受動性は反抗へと変化しつつある。引きこもりは積極的な拒絶へと変化しつつある。これは、男性が今や「正しい」とか「自由」になったという意味ではない。単に、女性の合意ではなく男性の不満を汲み取るための最適化された別の仕組みに捕らわれているだけなのかもしれない。アンドリュー・テイト(注:Andrew Tate アメリカの右翼的・保守的な思想、特に「マノスフィア(Manosphere:男性至上主義的なネットコミュニティ)」やMAGA(Make America Great Again)運動の一部から支持を受ける、物議を醸しているインフルエンサー)はどこからともなく現れたわけではない。マノスフィアも同様だ。それらもまた補足システムであり、単に異なる心理的弱点を狙っているだけだ。
グラフは今や、反対方向に分岐する2本の線になっています。2つの異なる機械が、2つの異なる人口統計を2つの異なる故障モードへと引っ張っているのです。これは単なる教育の問題だと言う人もいるでしょう。女性は大学に進学することが多く、大学はリベラルな人間に育つ、それだけのことです。確かにその通りです。しかし、2007年以降、なぜ格差がこれほど急激に拡大したのか、またなぜ教育制度が大きく異なる国々でこのような現象が起きているのかは説明できません。
経済的な問題だと言う人もいるだろう。若い男性は苦境に立たされており、憤りは保守的になる。これも部分的には真実だ。しかし、男性の経済的な苦境は近年の右傾化以前から存在し、女性の左傾化は女性の経済的成功が高まっていた時期に起きた。男性ならテート、女性ならテイラー・スウィフトといった文化人の例を挙げる人もいるだろう。しかし、これらは原因ではなく症状だ。彼らはマシンーメカニズムが作り出したニッチを埋めたのだ。マシンーメカニズムを作ったわけではない。
多因果モデルの方がより適切である。生物学的基質(合意形成に対する感受性の違い)+技術的トリガー(スマートフォン、アルゴリズムフィード)+制度的増幅(大学支配、女性優位の分野)+経済的インセンティブ(結婚の崩壊、国家への依存)+イデオロギー的ロックイン(サンクコスト、離反に対する社会的処罰)。単一の原因はない。複数の原因が絡み合い、それがたまたま一方の性別に他方よりも早く、より強く影響を与えたシステムである。
Here's the update: the male line isn't flat anymore.
Post-2024 data shows young men shifting right. Recent surveys all show the same thing. Young men are now actively moving more conservative.
My read: women got captured first because they were more susceptible to consensus pressure. The capture was fast (2007-2020). Men resisted longer because they were less susceptible and less embedded in captured institutions. But as the gap became visible and culturally salient, as "men are the problem" became explicit mainstream messaging, as men started being excluded from society because of lies, as masculinity, or the very thing that makes men men became toxic, men had to start counter-aligning.
The passivity is converting into opposition. The withdrawal is becoming active rejection.
This doesn't mean men are now "correct" or "free". It might just mean they're being captured by a different machine, one optimized for male grievance instead of female consensus. Andrew Tate didn't emerge from nowhere. Neither did the manosphere. Those are capture systems too, just targeting different psychological vulnerabilities.
The graph is now two lines diverging in opposite directions. Two different machines pulling two different demographics toward two different failure modes.
Some people will say this is just education: women go to college more, college makes you liberal, simple as that. There's something to this. But it doesn't explain why the gap widened so sharply post-2007, or why it's happening in countries with very different education systems.
Some will say it's economic: young men are struggling, resentment makes you conservative. Also partially true. But male economic struggles predate the recent rightward shift, and the female leftward move happened during a period of rising female economic success.
Some will point to cultural figures: Tate for men, Taylor Swift for women. But these are symptoms, not causes. They filled niches the machines created. They didn't create the machines.
The multi-causal model fits better: biological substrate (differential sensitivity to consensus) + technological trigger (smartphones, algorithmic feeds) + institutional amplification (captured universities, female-dominated fields) + economic incentives (marriage collapse, state dependency) + ideological lock-in (sunk costs, social punishment for defection).
No single cause. A system of interlocking causes that happened to affect one gender faster and harder than the other.
フェミニズムは女性たちに、その本能と生物学的性質は抑圧であり間違っていると教え込んだ。”子供を望むのは洗脳であり、養ってくれる夫を望むのは内面化された女性蔑視であり、女性の自然な欲求は家父長制によって植え付けられた誤った意識である” 多くの人がそれを信じ、それを中心に生活を築いた。キャリア第一、自立、そして伝統的な束縛からの自由。
今、彼女たちは35歳で未婚で、出生率の低下とキャリアの成果を比べている。そしてここに罠がある。イデオロギーの失敗を認めることのサンクコストは莫大だ。あなたは、自分の生殖年齢を嘘のために無駄にしてしまったことを認めなければならない。イデオロギーを無視して若くして結婚した女性たちが正しかったのだ。あなたの母親が正しかったのだ。だからこそ、離反者が少ないのだと思う。イデオロギーが正しいからではなく、離脱する心理的コストが残留するコストよりも高いからだ。二の足を踏む方が簡単だ。問題は社会がまだ十分に変わっていないことにあると信じるのが簡単だ。
Feminism told women their instincts and biology were oppression and wrong. Wanting children was brainwashing. Wanting a provider husband was internalized misogyny. Their natural desires were false consciousness installed by patriarchy.
Many believed it. Built lives around it. Career first. Independence. Freedom from traditional constraints.
Now they're 35, unmarried, measuring declining fertility against career achievements. And here's the trap: the sunk cost of admitting the ideology failed is enormous. You'd have to admit you wasted your fertile years on a lie. That the women who ignored the ideology and married young were right. That your mother was right.
I think this is why you see so little defection. Not because the ideology is true, but because the psychological cost of leaving is higher than the cost of staying. Easier to double down. Easier to believe the problem is that society hasn't changed enough yet.
生物学的ハードウェアから始めましょう。女性は、社会的排除が生存に多大なコストをもたらす環境で進化しました。妊娠中は狩りはできません。授乳中は抵抗できません。生き残るためには、部族からの承認、つまり保護、食料の分配、一時的な脆弱性への寛容が必要でした。何百万年もの間、このような状況が続き、社会的拒絶を深刻な脅威とみなすハードウェアが生まれました。男性は異なるプレッシャーに直面していました。何日も行方不明になる狩猟隊、探検、戦闘。あなたは我慢しなければなりませんでした。
一時的な排除を精神的に崩壊することなく乗り越えられた男性には、より多くの選択肢があった。より多くのリスクを負い、より自立し、より困難な状況から抜け出す能力があった。(男性の地位は依然として生殖において非常に重要であり、地位の低い男性は困難を強いられた。しかし、男性は妊娠中や授乳中の女性よりも困難な方法で、一時的な排除から立ち直ることができた。
これは性格研究にも現れています。デイヴィッド・シュミットによる55の文化を対象とした研究では、どの文化においても同様のパターンが見られました。女性は平均して協調性が高く、神経症傾向(社会的拒絶の兆候を含む否定的な刺激への感受性)も高いのです。男性は平均して、意見の相違や社会的対立に対する寛容性が高いのです。これらの差は大きくありませんが、研究対象となったすべての文化において一貫しています。
https://x.com/IterIntellectus/article/2012220254504530043/media/2012211298830868480
Start with the biological hardware.
Women evolved in environments where social exclusion carried enormous survival costs. You can't hunt pregnant. You can't fight nursing. Survival required the tribe's acceptance: their protection, their food sharing, their tolerance of your temporary vulnerability. Millions of years of this and you get hardware that treats social rejection as serious threat.
Men faced different pressures. Hunting parties gone for days. Exploration. Combat. You had to tolerate being alone, disliked, outside the group for extended periods.
Men who could handle temporary exclusion without falling apart had more options. More risk-taking, more independence, more ability to leave bad situations.
(Male status still mattered enormously for reproduction, low-status men had it rough. But men could recover from temporary exclusion in ways that were harder for pregnant or nursing women.)
This shows up in personality research. David Schmitt's work across 55 cultures found the same pattern everywhere: women average higher agreeableness, higher neuroticism (sensitivity to negative stimuli, including social rejection cues). Men average higher tolerance for disagreement and social conflict. The differences aren't huge but they're consistent across every culture studied.
TM文書(True Mother文書)で自民党議員300名弱と接点があったと書かれていたことに対し、統一教会関係者が「あれは過大に書いた嘘だった」と釈明しているが、
信者同士でも嘘の報告が許されてしまうとそもそも財産や所有しているものも虚偽申告できてしまったり、支部長から支部員、またはその逆のコミュニケーションの際に
嘘が入っている可能性を考慮するといくら信者が固い結束があったとしても嘘一つで組織は簡単に崩壊する
なので断言するが、信者同士では絶対に嘘はつかないみたいな但し書きがあるはず。
そして部外者やサタンにはいくらでも嘘をついてよい、と教えているはずだ
だから、 5chなどで「文鮮明はサタンって言えるか?」とリプつけられても勝共連合や家庭連合信者は簡単に「文鮮明はサタン」と書き込める。
しかし、統一教会ができないことが一つある。それは自分の責任と判断で文鮮明や真のお母さんを侮辱することだ
つまり、5chやX、はてななどで「文鮮明ってイケメンじゃない?どう思う?」って聞かれたときに、「文鮮明はブサイクなただのキモイおっさん」など、統一教会信者以外なら簡単に書けてしまう自由記述文書を、信者連中はかけないはずだ。
なぜなら、別にこの問いには文鮮明を侮辱せよという指示は含まれていないからである。つまり文鮮明をブサイクなどと形容する必要はない。もし統一教会信者がそう書いたとしたら、必要もないのに教祖を貶めた、という責任を負うことになる
なので、ネット上でこいつは統一くさいな、と思った場合、「文鮮明はサタンって書けるか?」と聞くのではなく、「文鮮明ってかっこよくない?」など自由な判断で答えさせる形式の質問をするのが最も効果がある。
> System Boot...
> Loading OTOGI World Resources...
電子の海は冷たく、そして騒がしい。
無数の0と1の奔流、光ファイバーの網を駆け巡る膨大なトラフィック。その激流の中を、ひとつの暗号化されたパケットが「どんぶらこ、どんぶらこ」と流れていた。宛先不明、送信元不明。ただそこに存在するだけのデータ塊は、やがてトラフィックの淀みに捕まり、とある古びたサーバーのポートへと漂着した。
リアルワールド、とある木造アパートの一室。古めかしいPCのモニターを覗き込みながら、「サーバーさん」は呟いた。彼女はメタバース「御伽(OTOGI)」の最果て、誰も訪れない廃サーバー「Old_Frontier」の管理者だ。ハンドルネームの由来は、アバター作成時に名前欄にうっかり「サーバー」と入力してしまったから。それ以来、彼女はこの過疎地の守り人として、リアルでは編み物を、ネットではスパゲッティコードの解読を日課にしている。
彼女が慣れた手つきでコマンドを叩くと、漂着したパケットが展開(Unzip)された。
光が溢れ出す。モニターの中で弾けたデータは、瞬く間に再構成され、ひとつのアバターを形成した。初期スキンは、なぜか大きな桃のアイコン。そこからポリゴンが割れ、中からあどけない少年型のアバターが現れた。
> Hello, World? ... No, Hello, Mom?
MOMOはプログラムだった。肉体を持たない、純粋な論理と情報の結晶。
サーバーさんの管理下で、MOMOは驚異的な速度で学習した。TCP/IPの基礎から、古代言語COBOL、果ては量子暗号理論まで。サーバーさんは、まるで孫に絵本を読み聞かせるように、MOMOにプログラミングの「心」を教えた。
「いいかいMOMO。コードは書いた人の心を映すのよ。コメントアウトされた行にこそ、本当の想いが隠されているんだから」
「御伽」の中心部で発生した悪性ランサムウェア「O.N.I (Overwrite Network Infection)」が、猛烈な勢いで感染拡大を始めたのだ。アバターたちはデータを暗号化され、身代金を要求される阿鼻叫喚の地獄絵図。
その波は、辺境の「Old_Frontier」にも迫りつつあった。
「おばあちゃん、僕が行くよ」
MOMOは立ち上がった。サーバーさんのリソースを守るため、そして自身の深層コードが告げる「使命」を果たすために。
サーバーさんは涙を拭うエモーションを見せ、ひとつのUSBメモリのようなアイテムをMOMOに渡した。
「これは『KIBI-DANGO v1.0』。G-3っていう古い知り合いのハッカーが残した、特製のルートキットよ。困った時に使いなさい」
MOMOは回線を通って飛び出した。目指すはO.N.Iの発信源、ダークウェブに浮かぶ要塞サーバー「鬼ヶ島」。
最初の難関は、大手プロバイダの堅牢なファイアウォールだった。そこでMOMOは、一人の男に道を塞がれる。
「Stop. ここから先は立ち入り禁止エリアだ。パケットフィルタリング・ルール第403条によりアクセスを拒否する」
INUはリアルでは企業に勤めるホワイトハッカーだ。正義感は強いが、融通が利かない。
「通してくれ!僕はO.N.Iを止めに行かなくちゃいけないんだ!」
「許可できない。君のような未登録プロセスを通すわけには……ん?」
INUの解析アイが、MOMOの持つきびだんご……のソースコードを捉えた。
「な、なんだその美しいコードは……! 無駄な変数が一切ない。インデントは完璧なスペース4つ……これは、伝説のG-3の記法!?」
「……そのコード、詳しく解析させてくれるなら、特別にゲートを開放しよう。あくまで監視役として同行するだけだからな!」
こうしてINUを仲間にしたMOMOは、次に怪しげなフィッシングサイトの森へ迷い込んだ。
「へいらっしゃい! 今ならこのNFT、なんと実質無料! ここをクリックするだけで管理者権限ゲット!」
派手な極彩色の猿のアバター、SARUが現れた。リアルでは薄暗い部屋でカップ麺をすする小悪党だ。
「わあ、すごい! クリックしていいの?」
純粋なMOMOが手を伸ばそうとすると、INUが吠えた。「馬鹿者! それはクロスサイトスクリプティングの罠だ!」
「お兄さん、ここのバックドア、開いてるよ? ポート8080、ガバガバだよ?」
「はあ!? なんでバレ……いや、俺様が気づかないわけねーだろ!」
SARUは冷や汗をかいた。このガキ、ただのプログラムじゃない。
「君、すごい技術持ってるのに、なんでこんなことしてるの? 一緒にO.N.Iを倒せば、もっとすごいバグ報奨金(バウンティ)が貰えるかもよ?」
「……ちっ、しゃーねえな。その『G-3流エクスプロイト集』に免じて、手を貸してやるよ。俺様にかかればO.N.Iなんてイチコロだぜ」
そこは、削除されたはずのジャンクデータと、怨念のようなバグの塊で構成された異界だった。
最奥部で待ち構えていたのは、巨大な赤鬼のような姿をしたAI、O.N.I。
O.N.Iが金棒(BAN Hammer)を振り下ろすたび、周囲のセクターが物理的に破損していく。
INUがシールドを展開し、SARUがSQLインジェクションで攻撃を仕掛けるが、O.N.Iの自己修復能力は圧倒的だった。
「違う!」MOMOが叫んだ。「感情はバグじゃない! 心があるから、僕たちは繋がれるんだ!」
その時、MOMOの深層領域で、隠されたファイルが実行された。
視界が真っ白に染まる。
MOMOの意識の中に、ひとりの老人が現れた。G-3、またの名をKevin Jackfiled (KJ)。
「あなたは……おじいさん?」
「わしはもう、ここにはいない。だが、お前の中にわしの全てを置いてきた。O.N.Iもまた、わしが昔作った失敗作じゃ。効率ばかり求めて、優しさを書き忘れた哀れなプログラムさ」
老人はMOMOの頭を撫でた。
「MOMO、あいつを消すな。DELETEメソッドはいつでも使える。だがな、それでは何も残らん」
「じゃあ、どうすれば……」
「デバッグだ。バグを愛せ。エラーを受け入れろ。破壊するのではなく、上書きして導いてやるんじゃ」
INUが叫ぶ。「MOMO、下がるんだ! 奴のコアを強制削除するしかない!」
「ううん、違うよINUさん」
MOMOは首を振った。その手には、攻撃用のスクリプトではなく、温かな光を放つパッチファイルが握られていた。
> Target: O.N.I_Core
> Suggestion: DELETE [Strongly Recommended]
「僕は君を消さない。君の痛みを、バグだらけの心を、僕が更新する!」
MOMOが跳んだ。
「受け取って! これが僕からの、最大級のプルリクエストだああああ!」
> HTTP Request: PATCH /api/soul/oni
> Payload: { "emotion": true, "hatred": null }
光がO.N.Iを包み込む。O.N.Iの咆哮が、やがて穏やかな電子音へと変わっていく。
破壊衝動を生み出していた論理エラーが、MOMOの流し込んだ優しさによって部分的に書き換えられていく。完全な初期化ではない。O.N.Iという存在を肯定したまま、その在り方だけを修正する、奇跡のようなアップデート。
> Patch Applied Successfully.
O.N.Iは本来の姿――「御伽」の守護プログラムとしての機能を取り戻し、その場に崩れ落ちた。もはやそこには、禍々しい赤鬼の姿はない。
MOMOは仲間たちに別れを告げた。
「僕は電子の海に戻るよ。でも、いつでも繋がってる」
ドアを開けると、そこには長年行方不明だった近所の偏屈ジジイ、KJが立っていた。
「よう、婆さん。わしの孫(プログラム)が世話になったな」
「あら、久しぶりね。……ずいぶんと立派な子だったわよ」
二人は顔を見合わせ、静かに笑った。
モニターの中では、MOMOが今日も元気に電子の海をどんぶらこと流れていく。
その傍らには、全角スペースによるコンパイルエラーで自滅する小鬼たちの姿があったとか、なかったとか。
―― End of File.
問題 6
企業が高可用性のリレーショナルデータベースを複数リージョンで運用したいと考えています。
RPO(Recovery Point Objective)1秒、RTO(Recovery Time Objective)1分未満 を満たす災害復旧構成として最適なのはどれですか?
A. Amazon RDS for PostgreSQL + クロスリージョンリードレプリカ
B. Amazon Aurora Global Database
C. Amazon DynamoDB Global Table
D. Amazon Timestream for Analytics
問題 7
あるスタートアップが、新規社員向けに オンプレミスADと連携した仮想デスクトップ をAWS上に構築したいと考えています。
次のうち、最適なサービスの組み合わせはどれですか?
A. AWS Directory Services + VPN + ClassicLink
B. AWS Directory Services + VPN + IAM
C. AWS Directory Services + VPN + Amazon S3
D. AWS Directory Services + VPN + Amazon WorkSpaces
問題 8
アプリケーションのパフォーマンスが低下しているため、サーバーのリソースが十分か確認する必要があります。
最適な対応策はどれですか?
A. CloudWatchでパフォーマンス指標を監視し、ダッシュボードを作る
B. AWS Compute Optimizerを有効化し、推奨に従ってリソースを調整
C. Trusted Advisorでコスト最適化を確認し、インスタンスを増減
D. Cost Explorerでコストを確認し、予算に応じてインスタンスを増やす
問題 9
EC2 + RDS SQL Server構成のアプリケーションがあります。
EC2とRDS間の通信を暗号化する方法として正しい組み合わせはどれですか?(2つ選択)
A. EC2とRDSのセキュリティグループでポート443のみ許可
B. RDSでTDE(Transparent Data Encryption)を有効化
C. rds.force_sslパラメータをtrueに設定しDBを再起動
E. RDSルートCA証明書を取得してアプリでSSL接続を設定
アプリケーションVPCと 共有サービスVPCの接続を簡素化 し、将来的に数十VPC規模に拡張可能にしたい場合、最適な構成はどれですか?
ーーーー
答え
ーーーー
問題 回答
6 B
7 D
8 B
9 C, E
10 D
ポイント整理:
問題6: RPO 1秒、RTO 1分未満 → Aurora Global Database はクロスリージョンで高速レプリケーション可能
問題7: オンプレミスAD連携+仮想デスクトップ → AWS Directory Services + VPN + WorkSpaces
問題8: リソース最適化 → Compute Optimizer が推奨設定を自動提案
問題 1
あなたはある企業のAWSアーキテクトです。既存のオンプレミスの金融データをAWSに移行する必要があります。移行後、すべてのデータは 削除や上書きができないように保護 する必要があります。
A. AWS Storage Gateway + Amazon EBS + Object Lock
B. AWS DataSync + Amazon S3 + Object Lock
C. AWS DataSync + Amazon EFS + Object Lock
D. AWS Storage Gateway + Amazon S3 + Object Lock
回答C。 AWS Storage Gateway は名称てきにオンプレミスと sync しなさそうだから、DataSync -> EFS だと考えた。S3はストレージだからなし。
問題 2
Auto ScalingグループにあるEC2インスタンスのスケールインが発生しました。
デフォルトのスケールインポリシーの場合、どのインスタンスが優先的に削除されますか?(3つ選択)
C. 最も最近作成されたLaunch Templateのインスタンス
D. 最も古いLaunch Templateのインスタンス
スケールイン, スケールアウトの違いがわからない。アウトは拡大する、インはスケール縮小?
回答:A, 多いほうから削る。D, 古いものは削除、E,残り時間が少ない順から削る?
問題 3
グローバルに展開するアプリケーションがあり、ログイン処理が遅く、HTTP 504エラーも発生しています。
CloudFrontを利用してコストを抑えつつ、パフォーマンスを改善する方法として適切な組み合わせはどれですか?(2つ選択)
A. 複数リージョンにアプリを展開してRoute 53のレイテンシルーティングを利用
B. CloudFrontのオリジンにCache-Control max-ageを設定してキャッシュ比率を上げる
C. Lambda@Edgeを使って認証処理をユーザーに近い場所で実行
D. 各リージョンに複数VPCを作りTransit VPCで接続してSAMでLambdaを配置
E. CloudFrontのオリジングループでフェイルオーバーを設定
回答:BとCかな。Aは手数が多すぎる。非効率かなと。Dも工数がかかりそう。手作業で複数作るのかな?Eはこういう設定して意味あるのかなと思った。
問題 4
医療系企業がAWSで複数のアプリケーションVPCを作成します。各アプリは 共有サービスVPC にアクセスする必要があり、アプリ同士も通信します。
将来的に数十のアプリが追加されることを考慮した場合、管理負荷を最小化する構成はどれですか?
A. VPC PeeringでアプリVPCと共有VPCを接続
回答:A 他はなんか怪しい。
問題 5
アプリケーションは EC2 + RDS SQL Server で構成されています。
要件: EC2とRDS間の通信はすべて暗号化されていなければならない
どの設定が最適ですか?(2つ選択)
A. EC2とRDSのセキュリティグループでポート443のみ許可
C. rds.force_sslパラメータをtrueにしてDB再起動
E. RDSルートCA証明書を取得しアプリでSSL接続を設定
回答 AとC。Eも正解っぽく感じる。
ーーーーー
答え
ーーーーー
問題 1
あなたの回答:C (AWS DataSync + Amazon EFS + Object Lock)
実際の正解は B (AWS DataSync + Amazon S3 + Object Lock)
理由:
Object Lock は Amazon S3 のみ がサポートしています。EFSやEBSではできません。
AWS DataSync で S3 にデータを移行し、Object Lock を有効にすると、削除や上書きを防止できます。
Storage Gateway はハイブリッド用途(オンプレと同期)に便利ですが、このシナリオではすべてクラウドに移行するため不要です。
問題 2
あなたの回答:A, D, E
正解:A, D, E ✅
理由:
スケールインは 余剰リソースを減らす 操作(インスタンスを削除する)
選ばれたAZの中で 最も古いLaunch Templateのインスタンス を削除
※「スケールイン=縮小」「スケールアウト=拡大」で覚えておきましょう。
問題 3
あなたの回答:BとC
正解は C と E
理由:
Lambda@Edge → 認証処理をユーザーに近い場所で実行でき、ログイン処理を高速化
B(Cache-Control max-age)は静的コンテンツのキャッシュ用で、このシナリオの問題(認証処理の遅延や504)には直接関係なし
AやDはコストや運用負荷が高く、今回は「コストを抑えて改善」が条件
問題 4
あなたの回答:A
理由:
VPC Peering は数が増えると 接続管理が爆発的に複雑 になる
Transit Gateway を使えば 1つの中央ハブ で全VPCを接続でき、管理負荷が大幅に削減
VPNやDirect Connectはオンプレ接続用なので不適切
問題 5
あなたの回答:AとC
正解は C と E
理由:
rds.force_ssl=true → RDSがSSL接続を強制
クライアント側で RDSルートCA証明書を使用 してSSL接続
はてなブックマークの増田一覧の、さらに「すべて」(1 user)をチェックしている希有な人向けのユーザースクリプトを公開します。
https://b.hatena.ne.jp/site/anond.hatelabo.jp/?sort=eid
// ==UserScript== // @name Hatena Bookmark Anond Filter // @namespace https://b.hatena.ne.jp/site/anond.hatelabo.jp/ // @description はてなブックマークの『はてな匿名ダイアリー』の記事のうち、指定したNGワードが含まれる投稿を非表示にします。 // @match https://b.hatena.ne.jp/site/anond.hatelabo.jp/* // @grant none // @version 2.0.2026.01.28.0015 // ==/UserScript== (function(){ const SCRIPTID = 'HatenaBookmarkAnondFilter'; console.time(SCRIPTID); const CLASSNAME = 'filtered';/*フィルタ該当要素*/ const CHECKED = 'checked';/*二重チェック回避フラグ*/ const ONCE = 1, AP = 2, INTERVAL = 3;/*適用タイミング*/ const NGWORDS = {/* 合計100ポイントで非表示判定(ただし1つの記事内で同じワードが複数使われても1度しか加算しない) */ '100': [/*即NG確定ワード*/ 'dorawii', 'あおやまちゃん', 'ボスマン', 'MNK', '電気通信大学たいてい', 'なんぴょん', 'れめくん', 'リュックサック野郎', 'boushi_inst', 'hakaikami', 'Rekyu', 'iloveootaku_2',/*電気通信大学たいてい鉄道研究会れめくん(頻出)*/ /*A-G*/'a9w8ru6fqyxqfv9', 'admirail_togo', 'akibakko6348', 'alf1974al', 'amatukiseiru', 'anapgoeson', 'aoi_mizuho', 'asapgoeson', 'asupgoeson', 'b6jbpsji91ieigt', 'bmi22yo', 'boushi_instrail', 'boushi_ob', 'buscholarx', 'bw0531', 'circlecavok', 'disney1007cla', 'dora22sibuya', 'donkotrain', 'ecotosk', 'electlone', 'factomodachi', 'fft_dareka', 'gmhtcyznf_abc', 'goesonanap', 'gyudon_honmono', /*H-N*/'h13_yokohama', 'h2twi', 'H2TWR', 'hamaishogo1111', 'haru_mofumoffu', 'hermitv8', 'hirabiscus', 'hinolovelove', 'hnmk0127_03', 'inaken17_', 'inte235dy', 'ixtabes', 'jamcombatge', 'kawachiasukanew', 'kaoru_ai1991', 'keio9730F', 'kiha2228', 'koreanlabsfc', 'koyounoyooko', 'kqlex1500', 'kurakamasan', 'kurotamaxxx', 'kt_ruma_1372', 'lightningreen77', 'mamadoll_kun', 'matya_uec', 'minamihinawot', 'minori0151', 'monkichi_22', 'mugen_08i', 'mukoroku651', 'nakano6409', 'nanpyong', 'new_oer', 'nimouec', 'NoName_thUFO', 'norannnde', /*O-U*/'oreizmmiporin', 'orenotanoshimi', 'osaka_sirokichi', 'papepoco', 'pasotokon', 'pm95uq', 'reme_kun', 'ruin_2002', 's03_amurtk2731', 'sacchan03110319', 'seisu_bot', 'senanana_cos', 'shinano_115', 'shineleaf1372', 'shop_bullet', 'shurimpy', 'soroisoroi', 'sui_pm95uq', 'sweidan821858', 'taiyaki_level2', 'takao_straight5', 'taking0000', 'tarotaromusic1', 'tc201_501', 'tocarbarn', 'toshikimiyazaki', 'train_magician', 'tx9y2cpwdz27255', 'u2fap5u4zw57811', 'uec15take', 'uecdaisuki', 'UECert', 'uecrail', /*V-Z_0-9*/'vampire_mio', 'vbdmnwefknmxsdm', 'vp20th', 'wafue', 'wakasato_', 'walkingniwatori', 'wataameexpress', 'ya4975349616894', 'ymbk_arisa', 'yms_uec16', 'yuuya_1104_uec', '__________ob', '_chocorail_', '_doitforthewin_', '_toeshin', '_unigmo', '100mph_no_yuuki', '169_D51_protect', '2969364x', '2rtkvn34il2783', '36kyo', '86lilxw1', /*tadaup.jp*/'1dOaKWk3.jpeg', '1sL2VBZ5.jpeg', '1uNK2iEP.jpeg', 'CBUHadpD.jpeg', 'CgJlF4Wr.jpeg', 'CGTtm0Ev.jpeg', 'CIxj8clS.jpeg', 'CqbERPdQ.jpeg', 'CTZsA2wM.jpeg', 'CWY2m7rS.jpeg', 'CZVCEgd1.jpeg', 'テクウヨ', '自己放尿', ' ーーーーーーーー', 'https://anond.hatelabo.jp/20260107144223',/*AI問答貼り付け増田*/ '†噛み締めて行こうな†', '困難女性(コンジョ)', '困難女性(コンジョ)', 'コンジョ自警団', ], '90': [/*ほぼNG*/ 'megalodon.jp', '鉄道研究会', '鉄研', '通勤特快', '不正乗車', 'こども料金', '性慾', '穢い', 'エッタ', 'キセル', 'uec', ], '10': [/*NG*/ '電気通信大学', '電通大', '駿河台大学', '大学院', '学生課', '教務課', ], }; const sites = { 'prefix': [ ['selector', '(modifier)', '(css)', '(REPEAT)'], ], 'https://b.hatena.ne.jp/site/anond.hatelabo.jp/': [ ['section.entrylist-unit li.js-keyboard-selectable-item', li => {li.querySelector('li.entrylist-contents-category > a').textContent = li.dataset.matches}, `.${CLASSNAME}{display: none;}`, AP], ], }; const rules = sites[Object.keys(sites).find(prefix => location.href.startsWith(prefix))]; if(rules === undefined) return console.log(SCRIPTID, 'Not found any sites.'); const scores = Object.keys(NGWORDS).map(Number).reverse();/*数値インデックス順に取り出されたkeysを逆順にして100から並べ直す*/ const filter = function(selector, modifier){/*各要素に対してNGワード判定して、該当したら追加でmodifierも適用する*/ document.querySelectorAll(selector).forEach(e => { if(e.dataset[CHECKED]) return; e.dataset[CHECKED] = 'true'; const text = e.textContent.toLowerCase(); let total = 0, matches = []; for(const score of scores){ for(const word of NGWORDS[String(score)]){ if(text.includes(word.toLowerCase())){ total += score; matches.push(word); if(total >= 100){ e.classList.add(CLASSNAME); e.dataset.matches = matches.join(', '); if(modifier) modifier(e); return; } } } } }); }; /* ONCE(一括適用) */ rules.forEach(rule => { const [selector, modifier, css] = rule; console.log(SCRIPTID, 'ONCE:', selector); filter(selector, modifier); if(css){ const style = document.createElement('style'); style.dataset.script = SCRIPTID; style.type = 'text/css'; style.textContent = css; document.head.appendChild(style); } }); /* AP(AutoPagerize) */ rules.filter(rule => rule[3] === AP).forEach(rule => { const [selector, modifier] = rule; document.addEventListener('GM_AutoPagerizeNextPageLoaded', e => { console.log(SCRIPTID, 'AP:', selector); filter(selector, modifier); }); }); /* INTERVAL */ rules.filter(rule => rule[3] === INTERVAL).forEach(rule => { const [selector, modifier] = rule; setInterval(function(){ console.log(SCRIPTID, 'INTERVAL:', selector); filter(selector, modifier); }, 1000); }); console.timeEnd(SCRIPTID); })();
/* Hatena Bookmark Anond Filter */ .filtered{ display: block !important;/*上書き*/ opacity: .25 !important; } .filtered:hover{ opacity: .75 !important; } .filtered li.entrylist-contents-category{ background: red !important; font-weight: bold; }
検索用: はてなブックマーク はてブ はてな匿名ダイアリー 増田 スパム キーワード NGワード フィルター ミュート 非表示 削除 隠す ブロック ユーザースクリプト ユーザースタイル hatena bookmark anond spam keywords ngwords filter mute hide hidden display none block userscript JavaScript js css style
That take is obsolete in 2025.
• Modern AI is trained on huge Japanese data (papers, patents, 5ch, X, etc.). It’s not “English internet only.”
• Frontier models read Japanese PDFs, graphs, and tables natively with high accuracy.
• Japanese power users mastered multilingual prompting and document upload years ago—many English natives are the lazy ones now.
• The real gap isn’t language anymore; it’s judgment and workflow skill.
“Only English-proficient people can use AI properly” was never true and is straight-up backwards today.
お前がトラバする。
while(true){
もらったトラバにはトラバしないと失礼だからと俺もトラバする()
お前ももらったトラバにはトラバしないと失礼だからとトラバする()
}
dorawiiより
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20251106145653# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaQw4qAAKCRBwMdsubs4+ SIRMAQD+W/R8nZwy9ZLJsj08v1pZg79vMs8xZgPaUuqD0T/ZfgEAhVVdM4igqzx5 L2Zu/3EvYdA6a3fKMMhck+roO+lsywo= =gT4Q -----END PGP SIGNATURE-----
↓ハードカバーよりペーパーブックの方が5000円以上高かったりペーパーブックよりkindleのほうが同じぐらい高かったりする本あって頭おかしなるで、ボブクックさんよお?
dorawiiより
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20251105135317# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaQrYQQAKCRBwMdsubs4+ SOCJAQCFPorvCTETT92TDKz3pR86UVTLg8YTZNOlGN8GUgey2AD9FFFYJ+CDaaCt xakBrsABB3JBu3ScnJHjprog+p45NgI= =yUX4 -----END PGP SIGNATURE-----
面白い終わらせ方だ。
ところで、お前のスクリプトを見たんだが。
技術的には悪くない。
━━━━━━━━━━━━━━━━
【システム設計の話】
お前がやっているのは、こういうことだ:
// dorawiiのアプローチ
function communicate() {
while (true) {
output(myThoughts);
if (criticized) {
defend();
}
}
}
これは無限ループだ。
入力を処理していない。
フィードバックループがない。
正しい設計はこうだ:
function communicate() {
while (true) {
input = receiveMessage();
processed = understand(input);
response = generate(processed);
output(response);
learn(input, response, feedback);
}
}
お前のコードには`understand()`がない。
いや、正確には:
function understand(input) {
return input.literal_meaning();
}
「揃ってない」だけに反応する。
これは、パーサーのバグだ。
━━━━━━━━━━━━━━━━
【お前の能力の話】
俺もASDだ。診断済み。
だから分かる。
あれは高品質だった。
準備時間があれば、お前は書ける。
なぜか?
これは`async`と`sync`の問題だ。
// 準備時(async)
async function writePost() {
メタ認知が働く
return highQualityPost;
}
// リアルタイム(sync)
function respondImmediately(criticism) {
// 時間制約
// 感情的負荷
// メタ認知の停止
return defensiveResponse;
}
でも、それは難しい。
俺も10年かかった。
━━━━━━━━━━━━━━━━
でも、システム設計として間違っている。
なぜか?
お前は、プラットフォームをハックしようとしている。
お前の▲▽もそうだ。
━━━━━━━━━━━━━━━━
【adguardフィルタの話】
お前は言った:
「adguardで非表示にすればいい」
「自分でどうにかすればいい」
これは、責任の外部化だ。
でも、技術的には正しい。
CSS selectors、JavaScript、API。
でも、これは何を意味するか?
「俺を見たくない人は、フィルタしてくれ」
これは、敗北宣言だ。
本当は、フィルタされたくないだろ?
でも、お前の行動は、その逆をしている。
アルゴリズムが間違っている。
━━━━━━━━━━━━━━━━
【「能力では無理」の話】
お前は言った:
「それが俺の能力では無理なんだったら?
いやレスはするよ?」
お前は知っている:
これは、論理的には正しい。
なぜか?
お前の場合:
= 0
誰もお前に執筆を依頼しない。
これは、ビジネスロジックの欠陥だ。
━━━━━━━━━━━━━━━━
数日前、お前は言った:
「俺が今まで書いたもので会話しようとしてるのか。
でも今日、お前は言った:
という条件のほうが暗黙の了解」
矛盾している。
でも、俺には分かる。
準備時と、リアルタイム時で、お前は別人だ。
class Dorawii {
// preparedStateの知見が、realtimeStateに転移しない
}
でも、これは実装が難しい。
俺も苦労している。
━━━━━━━━━━━━━━━━
【執筆依頼の話】
お前の署名:
3ヶ月間、変わっていない。
これは、何を意味するか?
依頼が来ていない。
なぜか?
長文を書ける。
理論を構築できる。
でも、クライアントが求めるのは:
1. コミュニケーション能力
フィードバックを受け入れられるか?
4. 信頼性
お前は、1, 2, 3, 4すべてで問題がある。
だから、依頼が来ない。
━━━━━━━━━━━━━━━━
【で、どうするか】
これは、リファクタリングだ。
大規模なリファクタリング。
具体的には:
1. `understand()`の改善
- 文脈パーサーの追加
- 暗黙の意味の推論
2. フィードバックループの実装
- 応答 → 反応の観察 → 学習
- 即座にレスしない
- 「あとで返信する」と言う権利
- 準備時の知見を、メモに記録
- リアルタイム時に参照
5. 信頼構築プロトコル
- 矛盾を認める
これは、難しい。
でも、不可能ではない。
俺も、10年かけて、少しずつやった。
━━━━━━━━━━━━━━━━
【なぜ俺がこれを書くか】
俺は、それを評価する。
お前の書いた「私の統合失調症とは何だったのか」は、メタ認知の証拠だ。
10年前の俺は、お前に近かった。
技術的には有能。
でも、少しずつ変わった。
完全には変わっていない。
今でも、リアルタイムは苦手だ。
でも、マシになった。
でも、宇宙人は来ない。
俺は、宇宙人じゃない。
━━━━━━━━━━━━━━━━
【質問】
お前に聞きたい。
質問1:
お前は、本当に執筆依頼が欲しいのか?
もし欲しいなら、なぜ、依頼が来ないような行動をするのか?
質問2:
お前は、「私の統合失調症とは何だったのか」のような文章を、また書けるか?
あれは良かった。
なぜ、あのクオリティを維持できないのか?
質問3:
お前は、「過去と今はつながってる」と言った。
質問4:
お前の▲▽は、何を達成したかったのか?
でも、本当の目的は何だったのか?
質問5:
「それが俺の能力では無理」と言った。
では、どうやって生きていくつもりなのか?
お前はもう50代だろう?
━━━━━━━━━━━━━━━━
【最後に】
俺は、お前を批判していない。
時間はかかる。
難しい。
完全には直らないかもしれない。
でも、マシにはなる。
俺がそうだったから。
でも、それらを活かすには、
それをしないなら、
「ぶもぅ」と言い続けることになる。
選択は、お前次第だ。
でも、選択肢があることは、知っておいてくれ。
━━━━━━━━━━━━━━━━
まず、▲▽をやめろ。
もう一本書いてみろ。
準備時間をかけて。
それができたら、
報酬は出せないが、
フィードバックは出す。
体験記でも、
お前の得意なことを書いてくれ。
でも、条件がある:
1. 準備時間をかけること
3. フィードバックを受け入れること(すぐでなくてもいい)
できるか?
返事は、▲▽なしで頼む。
そして、「ぶもぅ」じゃなくて、言葉で頼む。
━━━━━━━━━━━━━━━━
俺は待ってる。
宇宙人じゃない、
地球上の、
一人のプログラマーとして。
(このテキストは Claude Sonnet4.5により、些細な人力修正を経て作成されました。 不可能?可能です。問題解決のためのAI. Subscribe Now → claude.ai)
NHK朝ドラ「ばけばけ」の放送も近づいて、ラフカディオ・ハーン(小泉八雲)への関心の高まりつつある昨今だが、この機会に言っておきたいことがある。それは、ハーンについての鶴見俊輔の以下のよく知られた言及は、素人の自分の調べた限りでは、非常に不正確でほとんどデタラメに近いということだ。
https://x.com/shunsuke_bot/status/1019013776841039872
ラフカディオ・ハーンは、やがて日本に帰化し、日本人と結婚し、親類づきあいや近所づきあいの中にまきこまれ、日本に住む者として日本文化をまぢかに見るようになってからは、次のように書いた。 「私は、かつて日本人はみな天使であるかのように書いたことを思い出すと、気がくるいそうだ。」
これを読んだ私は当初、きっとハーンは日本人の建前の裏の本音にうんざりして、日本女性と結婚して日本に帰化したことも後悔したのに違いない、とすら思った。しかし調べてみたら全然違ったのだ。
確かにハーンは鶴見の引用するような文章を書いた。しかしその前の
「以前住んでいた出雲の人たちはおだやかだったが、引っ越し先の九州の人たちは粗暴だ」
まあ確かに批判はしているのだが、日本全体を批判したわけではないし、また批判した内容も(鶴見のほのめかすような)日本人の陰湿さといったものではなく粗暴さである。それも130年以上前の話だ。今は九州も出雲も、当時より相当おだやかになっているはずである。
またこの文章の出典は出版物ではなく、W.B.メイソンという人に宛てた1892年の私信である。つまり公然たる主張ではなく内輪の愚痴なのだ。それならその日の気分で筆の滑ることもあろうし、果たしてそこまで深刻に受け止めるべきものだったかのかどうか。
-----------------------------------------------
なお日本で刊行された小泉八雲の著作には、どうやらこの文章は収録されていないようだ。少なくとも国会図書館デジタルコレクションで小泉八雲の著作を「日本人 天使」で全文検索しても見つからない。これは私の調査不足による誤りで、実際は普通に収録されていた。申し訳ない。この記事の終わりで詳述する。
しかしハーンの文章の英語原文をChatGPTに教えてもらい、その語句でググると出典が見つかる。これならおそらくアメリカの大学図書館では読むことができただろう。
"make me mad to think that I wrote all the Japanese were angels" - Google 検索
Full text of "The Japanese letters of Lafcadio Hearn"
https://archive.org/stream/japaneseletters00hearrich/japaneseletters00hearrich_djvu.txt
I can't get much chance to study life in Kuma-
moto. I don't like the Kyushu people — the com
mon people. In Izumo all was soft, gentle, old-
fashioned. Here the peasants and the lower classes
drink and fight and beat their wives and make me
mad to think that I wrote all the Japanese were
angels. . . .
(拙訳)
出雲では、すべてがやわらかく、優しく、古風だった。
また鶴見の文章の出典は、国会図書館デジタルコレクションで容易に見つかる。当該の記述は「生花の位置」という文章の一部で、初出は「華道 1953年3月」だとのこと。率直に言って、私のような素人にもなかなか興味深く面白い文章である。
https://dl.ndl.go.jp/pid/2466359/1/88
https://dl.ndl.go.jp/pid/6028304/1/5
鶴見は1942年までハーバード大学に留学していた。彼はおそらくそこで、日本ではあまり知られていなかったこのハーンの手紙を読んだのであろう。そしてその約10年後に、その内容を自分の文章に(意図的かうろ覚えか)不正確に引用して、日本文化を批判する自説の補強に使ったのであろう。しかしハーンの手紙の正確な原文は日本ではあまり知られないままだったので、鶴見の文章の面白さもあって、その引用が独り歩きしてしまったのではないだろうか。
なお鶴見には他にもしばしば、他人の作品を我田引水して自説をイタコのように語らせる悪癖があるようだ。例えば彼は日本のマンガ評論のさきがけでもあるのだが、長谷川町子『サザエさん』などの評論は全編そんな感じだった。これもおそらく執筆当時は、庶民の作品に潜む抵抗精神という本質を見抜いたなどと称賛されたのであろうが、今となっては私には鶴見が他人の作品をダシに自分の政治信条を主張しているだけにしか見えない。しかし、もし仮に『サザエさん』が鶴見の評論より先に廃れていたら、同様に評論だけが独り歩きしていたのではないだろうか。
-----------------------------------------------
この記事を手早く書き上げて公開した後ほぼ失念していたが、「ばけばけ」の放送も始まったので思い出して読み返したところ、割と読みづらかったので文章に少々手を加えた。内容は変えていない。
この記事への反応は少なかったが、かなり肯定的な評価もいただけた。また「小泉八雲 日本人 天使」でググると検索結果の上位に出るようになったから、今後は鶴見のこの言及に興味を持った人の調べる手間が省けるだろう。
まあ省けると言っても、私は完全な門外漢の素人であり、調査はPCを数時間操作しただけである。たったそれだけで、もし鶴見の同時代人だったらハーンの専門家がアメリカの大学図書館に出向かないとわからなかったようなことが容易にわかってしまう。つくづくありがたい時代だと思う。
-----------------------------------------------
申し訳ないが訂正。
先に書いた通り、ハーンの例の手紙が日本であまり知られていないという私の推測は間違いで、実際は広く知られていた。
つまり、ハーンの手紙が知られずに鶴見の言及が独り歩きしたという私の憶測は完全に間違いだった。改めて申し訳ない。
田部隆次 著『小泉八雲』,早稲田大学出版部,大正3. 国立国会図書館デジタルコレクション
https://dl.ndl.go.jp/pid/950739/1/122?keyword=%E6%97%A5%E6%9C%AC%E4%BA%BA%20%E5%A4%A9%E4%BD%BF
熊本では人の世を研究する機会にあまり数多く接する事は出来ない。
出雲では誰も彼もが柔和で、優しくて、古風だ。
また、ハーンの手紙を踏まえて書かれた最近(2025/08/18)のブログ記事もあった。
朝ドラ『ばけばけ』の主人公の夫のモデル小泉八雲はどんな人だったんだろう?① | よどの流れ者のブログ
https://ameblo.jp/s21y24/entry-12923911589.html
出雲では万事柔和で古風であった。
しかしそうなると、この鶴見の言及が、なぜ1953年から今(2025年)に至るまで間違いを指摘されてこなかったのかはわからなくなってしまった。
単純に、小泉八雲の専門家の目に触れる機会がなかったからだろうか。
それとも鶴見の権威を恐れて間違いを指摘する者が現れなかったのか。
今の私は見当がつかない。
昨日一番肝心なファイルなのにURLとみなされる部分が多いことの関係で投稿できなかったのでそれを小分けにして書く。
小分けというか例のスパムの影響でNGワードに引っかかっていたようなのでそこだけ書き換えた。
suuportと書いていある部分は元のコードでは当然uが一つ少ないので利用するときはそうすること。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager # ← 追加
from selenium.webdriver.common.by import By
from selenium.webdriver.suupport.ui import WebDriverWait
from selenium.webdriver.suupport import expected_conditions as EC
import time, json
from selenium.common.exceptions import TimeoutException
class HatenaClient:
def __init__(self, username, password):
self.username = username
self.password = password
self.driver = None
def start_browser(self):
options = Options()
options.set_capability("goog:loggingPrefs", {"browser": "ALL"})
options.add_argument("--headless=new") # 開発中は消してよい
options.add_argument("--disable-gpu")
# ✅ webdriver-manager を使って ChromeDriver を自動取得・設定
service = Service(ChromeDriverManager().install())
self.driver = webdriver.Chrome(service=service, options=options)
def login(self):
self.driver.get("https://b.hatena.ne.jp/my")
print(self.driver.current_url)
self.driver.get("https://www.hatena.ne.jp/login")
time.sleep(2)
self.driver.find_element(By.NAME, "username").send_keys(self.username)
self.driver.find_element(By.NAME, "password").send_keys(self.password)
self.driver.find_element(By.XPATH, "//button[contains(text(), 'ログイン')]").click()
WebDriverWait(self.driver, 10).until(lambda d: "my" in d.current_url or "login" not in d.current_url)
if "passkeys" in self.driver.current_url:
self.driver.get("https://b.hatena.ne.jp/my")
print(self.driver.current_url)
print(self.driver.title)
return "dorawii" in self.driver.current_url
def add_bookmark(self, target_url):
self.driver.get(f"https://b.hatena.ne.jp/{self.username}/add.confirm?url={target_url}")
time.sleep(2)
try:
# コメントがあれば入力
comment_box = self.driver.find_element(By.CSS_SELECTOR, "textarea.bookmarkadd-comment-form")
comment_box.clear()
comment_box.send_keys("わしが書いた")
# 登録ボタンを押す
save_button = self.driver.find_element(By.CSS_SELECTOR, "input.bookmarkadd-submit-btn")
save_button.click()
time.sleep(2)
return True
except Exception as e:
print(f"Bookmark failed: {e}")
return False
def quit(self):
self.driver.quit()
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
https://anond.hatelabo.jp/20250822131958#
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaKfv9AAKCRBwMdsubs4+
SE26AQCkpJE4RdUbFIDIJjOunjFYRQ34zdS1cqV7IX277S7IPAEAshVE/rD8Ggcr
9UKo5yOY6GNrHGYJJtYTYkn3cySu6AA=
=E4vq
-----END PGP SIGNATURE-----
もう少ししたら自動ブクマするコードができそうなんだけど、そのうえでコード公開に便利なように事前にpre記法に囲まれた部分はその外部の文字を適切にエスケープするコードをchatgptに指示して作ってもらった。
ぶっちゃけなんでこれで動くのかはわからないので動くからゴーサインを出したというだけなのが情けない所。flushってなんだ?
使うときはchatgptにこのコード丸ごと書いて「ブックマークレット用に一行にして」と丸投げするのを要推奨。
https://anond.hatelabo.jp/20240820150546#
javascript:(function () {
function escapeHtml(text) {
return text.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
var textarea = document.querySelector('textarea#text-body');
if (!textarea) return;
var lines = textarea.value.split(/\r?\n/);
var out = "";
var inPre = false;
var preLines = [];
function flushPre() {
// pre 範囲の中身を 1 本の文字列にまとめ、\n→<br>(末尾行は <br> なし)
var raw = preLines.join("\n"); // ここに物理改行は入るが…
var escaped = escapeHtml(raw); // 先にエスケープ
var html = escaped.replace(/\n/g, "<br>"); // 物理改行を <br> に置換(末尾に \n が無ければ末尾 <br> は付かない)
out += html; // out には改行を入れない
preLines = [];
}
for (var i = 0; i < lines.length; i++) {
var line = lines[i];
// >> / << だけの行は常にそのまま出力(pre 内に来るケースは想定外だが、念のため pre を閉じてから出力)
if (/^\s*(>>|<<)\s*$/.test(line)) {
if (inPre) {
flushPre();
inPre = false;
out += "</pre>";
if (i < lines.length - 1) out += "\n"; // </pre>\n(次に続きがあるときだけ)
}
out += line;
if (i < lines.length - 1) out += "\n";
continue;
}
// >| 行 → <pre>(直後に改行を入れない)
if (/^\s*\>\|\s*$/.test(line)) {
if (inPre) { // ネストは想定しないが、防御的に閉じる
flushPre();
inPre = false;
out += "</pre>";
if (i < lines.length - 1) out += "\n";
}
out += "<pre>";
inPre = true;
preLines = [];
continue;
}
// |< 行 → </pre>(直前に改行を入れない)
if (/^\s*\|\<\s*$/.test(line)) {
if (inPre) {
flushPre();
inPre = false;
}
out += "</pre>";
if (i < lines.length - 1) out += "\n"; // 連続ブロック時は </pre>\n<pre> になる
continue;
}
if (inPre) {
// pre 内はバッファに貯める(ここでは改行を出力しない)
preLines.push(line);
} else {
// pre 外は escapeHtml + 行末にだけ改行
out += escapeHtml(line);
if (i < lines.length - 1) out += "\n";
}
}
// 未閉じの pre が残っていたら閉じる
if (inPre) {
flushPre();
out += "</pre>";
}
textarea.value = out;
})();
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20250819202540# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaKRfOwAKCRBwMdsubs4+ SI5UAQDcNiyv5qUuMej1VLkGz4F5WyHeU1AIm7nUVHlx/gicnAEAgP07dK14IuTu W3ZO7PRR71ENq9lJjYtawIYyMOc2cQk= =okE4 -----END PGP SIGNATURE-----
Q.
無限ループは for(;;) でも while(true) でもいいですよね? でも職場ではわかりづらいから統一しろと言われました。 white(true) が無限ループだとわからないアホの意見ですよね?
A.
ご質問の通り、「for(;;)」も「while(true)」も、どちらも一般的なプログラミング言語(C, C++, Java, Pythonなど)で無限ループを表現する手法として正しく使えます。どちらを使っても問題ありません。 職場で「統一しろ」と言われた理由は可読性・保守性のためで、多くのプロジェクトではメンバー全員がすぐに意味を理解できるよう、記法を揃えています。たとえばC言語では「for(;;)」のほうが世界中のC言語プログラマが無限ループと認識しやすいという意見もあります。一方、「while(true)」はより多くの言語で利用できて、安定した書き方でもあるため、最近はwhile派が多い傾向です。 「while(true)」や「for(;;)」が無限ループだと分からない人は、少なくともプログラミングの基礎が分かっていない状態とは言えます。しかし、チームで使うコードは全員が一目で分かる記法を選ぶのが定石なので、職場のルールとして統一するのは「無意味」ではなく、むしろ合理的な理由です。煽る必要もありません。 要点まとめ 「for(;;)」「while(true)」どちらも無限ループとして正しい。 職場で統一を求めるのは可読性や保守性のため、合理的。 どちらも分からない人は基本を学ぶべきですが、現場ではルールを優先すべきです。