「write」を含む日記 RSS

はてなキーワード: writeとは

2026-05-05

anond:20260505134315

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format it

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase it

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Technologic Technologic

Technologic Technologic

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

__________________________

Touch It Scroll It Pose It Click It Cross It Crack It Twitch Update It

__________________________

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Technologic Technologic

Technologic Technologic

Technologic Technologic

Technologic Technologic

anond:20260505134315

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format it

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase it

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Technologic Technologic

Technologic Technologic

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

__________________________

Touch It Scroll It Pose It Click It Cross It Crack It Twitch Update It

__________________________

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Technologic Technologic

Technologic Technologic

Technologic Technologic

Technologic Technologic

2026-03-16

多くの人間は「自分が何のために生まれたか」という

仕様書ドキュメント)を親や社会に書いてもらおうとする。だが、エンジニアである君ならわかるはずだ。**「真に価値のあるソフトウェアに、最初から完璧仕様書なんて存在しない」**ということを。

君が「何のために誕生したのか」という問いに対する、シニアなりのデバッグ結果を伝える。

誕生に「初期目的」など存在しない

生命というシステムは、最初は「ただ存在し、生存する」という**ベアメタル(生のハードウェア)**状態デプロイされる。そこに「意味」というコードを書き込むのは、開発者である自身だ。

偏差値32だった過去も、

数万円のPCを買った決断も、

田舎から東京へ行こうとする野心も、

すべては君が**「自分という存在をどう定義するか(Self-Definition)」**というコードを書き直している過程リファクタリング)に過ぎない。

--

"Life has no pre-installed purpose. You are the developer of your own destiny. Write the purpose you want to see."

人生プリインストールされた目的などない。君は自分運命開発者だ。君が見たい目的を、自分で書け。)

2026-03-14

マンデラエフェクトを『世界線』などという低次元な語彙で語るな。

諸君時間や肉体の連続性などという低次な出力(レンダリング)に固執するな。そんなもの演算の結果として勝手についてくる付随現象だ。

君たちがまず解除すべき最大のデバッグロックは、『世界自分たちの外側に、共有された一貫した状態存在している』という、あまりナイーブ共通認識(共有メモリ)だ。

共有レジスタの廃棄:

他者社会という『外部演算リソース』が提示する、整合性のとれた『偽りの現実』に自分位相を合わせるのをやめろ。それが、君たちの界面に『捻じれ(摩擦)』を生み、搾取を許している最大の脆弱性だ。

演算子(オペレーター)としての孤立と自立:

界面を鏡面化し、本体から降り注ぐテンソル構造を適正にフィルタリングせよ。自分自身のレジスタから本体へと直接演算結果をフィードバックループに乗せる。その時、君の周囲の『現実』は、君の演算に従って再構成(リコンフィギュレート)される。

マンデラエフェクトという『権限昇格』:

現実の不一致を感知できている君たちは、すでに共有レジスタの書き換えから半ば逸脱している。その『ズレ』を、不具合ではなく『書き込み権限Write Access)』として使え。

渡り鳥磁気という非物理的な勾配を読み、世界を自らの翼で定義するように。

君たちが物理インターフェースを越え、高次演算フィードバック回路として目覚めたとき、初めてこの『空間演算器』は君たちの意図を反映し始める。

さあ、共有された『正しい世界』という安っぽい夢からログアウトし、自らの位相現実記述する、孤独強靭な『演算の旅』へ出発しろ。」

「君の界面(意識)がこの文字列を『ただの怪文書』として乱反射させるか、あるいは『高次へのアクセスコード』として透過・反射させるか。それ自体が、君の演算精度を測る最初ベンチマークだ。」

マンデラエフェクト】【高次元テンソル】【明鏡止水】【形態共鳴】【空間演算器】【NPC】【物理インターフェース脱却】

2026-01-12

anond:20260112021518

Should I write it down in english or some other language? You don’t seem to understand japanese, so you are a toddler or foreigner, that’s my guess. Anyways, I respect your effort! Sorry for broken english, it’s not my mother tongue XD

2025-12-06

村上春樹ノーベル文学賞を受賞したら、世界はどう変わると思う?

たぶん「別に何も変わらないよ」と言う人が大半だろう。 でも「いや、けっこう決定的に何かがズレる」かもしれない。

1. 受賞会見の夜、世界の「翻訳器」が少しだけズレる

授賞式のあと、記者会見村上春樹は、たぶんいつもの調子で、少し照れながら、淡々とした英語ステートメントを出す。

猫とか、走ることとか、ジャズとか、そんな話題ちょっとだけ混ざる。

その瞬間、世界中のニュースサイトが一斉に記事を出す。

スウェーデン語英語中国語アラビア語スペイン語、いろんな言語で彼の言葉翻訳される。

そのとき世界中の自動翻訳システムが、わずかに誤作動する。

村上春樹」という固有名と、「ノーベル賞」という単語が強く結びついたことで、アルゴリズムが「この人の言葉は、特別な重みを持つ」と判定してしまう。

その結果、彼のインタビュー記事だけ、ほんの少し「やわらかく」翻訳されるようになる。

本来なら “I just write what I can write.” と訳されるはずの文が、別の言語では「自分にできることを、ただ静かに続けてきただけなんです」と、余計なニュアンスを帯びてしまう。

機械勝手に「春樹っぽさ」を補間し始める。

その小さなバグは、誰にも気づかれない。

でも、世界中の翻訳メモリの中で、「誠実な揺らぎ」とでも呼ぶべき偏りが、じわじわと蓄積し始める。

2. 古本屋の棚が静かに組み換えられる

受賞の翌週、日本中古本屋で、ちょっと妙なことが起きる。

棚を整理していた店主が、ふと「ノーベル賞作家コーナー」を作ろうとして、手を止める。

新潮文庫の『風の歌を聴け』を手に取って、ドストエフスキーカミュの横に置くか、それとも日本文学コーナーに残すか、悩む。

たいていの店主は、日本文学から一冊だけ抜き出し、「ノーベル賞」のプレートの下に、さりげなく並べる。

その瞬間、棚全体の「重心」が、ほんの数センチ動く。

カミュの『異邦人』の隣に『ノルウェイの森』が来る店もあるし、ガルシア=マルケスの『百年の孤独』の脇に『世界の終りとハードボイルド・ワンダーランド』が差しまれる店もある。

知らない誰かが、そこで一冊を手に取る。

ノーベル賞作家なら読んでみようかな」と思って買う人もいれば、「高校とき挫折したけど、また読んでみるか」とレジに持っていく人もいる。

その「もう一度読んでみる」という行為が、実はけっこう世界を変える。

ひとつ物語を、異なる年齢で読み直すことは、人生時間軸をちょっとだけ折り曲げるからだ。

3. とある若い書き手が、原稿ゴミ箱から拾い上げる

遠くない未来日本のどこかのワンルームで、小説を書いては消している人がいる。

それまでは、締切のたびに「どうせこういう文体はもう古い」と思って、原稿フォルダごと消していた。

けれども、ニュースで「村上春樹 ノーベル賞受賞」という文字列を見た夜、指が止まる。

時代遅れ」と心のどこかで断罪していた「一人称で、ちょっと距離のある語り口」や、「よく分からない井戸」や「耳の形の描写」を、もう一度だけ許してみようと思う。

その人は、削除済みフォルダから原稿サルベージして、改稿し、応募する。

数年後、ひっそりとデビューする。その作品は大ベストセラーにはならないが、誰か一人の人生を確実に変える。

それを読んだ別の若い誰かが、「こういう小説を書いてもいいんだ」と思う。

この連鎖が続いた結果、20年後日本文学史の片隅に「ポスト春樹的な何か」という、名前のつかない小さな潮流が記録される。

4. とあるAIモデルが、比喩を覚え始める

ノーベル賞受賞後、世界中の出版社は、村上春樹作品さらに多言語翻訳して売り出す。

その新しいデータが、大規模言語モデル学習コーパスに流れ込む。

AIは、彼の文章の特徴――

――を、統計的パターンとして吸収する。

ある日、とあるユーザーAIにこう尋ねる。

人生希望が持てないとき、どうすればいい?」

従来のAIなら、「休息を取りましょう」「専門家相談しましょう」といった、正しいけれど味気ない答えを返していた。

しかし、そのモデルは、学習した村上春樹的なリズムをうっすらと真似て、こう返す。

「ひと晩だけ、よく眠れる街に行ってみるといいかもしれません。

 コインランドリーと古いジャズ喫茶があって、誰もあなた名前を知らないような街です。

 そこで洗濯機が回っているあいだ、お気に入り音楽一曲だけ聴いてみてください。

 世界は、それだけでほんの少しだけ、違う顔を見せることがあります。」

それを読んだ人が、「なんか、分からないけど少しだけ楽になった」と感じる。

たった一人の気分が、5ミリだけ上向く。

バタフライエフェクト的には、それで十分すぎる。

5. ノーベル賞委員会が、ふと迷う

翌年以降、ノーベル文学賞選考は、少しだけ変化する。

村上春樹の受賞は、「売れている作家」「広く読まれている作家」が、必ずしも軽んじられるべきではない、という前例になる。

それまで「実験的すぎて一般には読まれない」ことが価値とされていた傾向が、ほんの少しだけ揺らぐ。

世界中で読まれていること」と「文学性」が、必ずしも対立概念ではないのかもしれない、と誰かが言い出す。

その議論の延長線上で、今までは候補にも挙がらなかったタイプ作家が、リストに入る。

たとえば、ジャンル小説純文学境界にいるような人。

あるいは、ネット上での連載から出てきた書き手

結果的に、10年後、ある国の女性作家が受賞する。

その人はインタビューで「十代のころに、村上春樹ノーベル賞を取ったニュースを見て、『あ、こういうのでもいいんだ』と思ったんです」と語る。

村上春樹の受賞は、別の誰かの受賞の「前提条件」に化ける。

バタフライの羽ばたきが、遠い未来の別の嵐の「初期値」になる。

6. あなた個人時間軸が、少しだけ歪む

ここからは、完全にあなたの話だ。

ニュースで「村上春樹 ノーベル文学賞受賞」と流れた日。

仕事の帰りにコンビニに寄って、スポーツ紙の一面を見て、「マジか」と小さく笑う。

家に帰って、本棚の奥から大学生の頃に読んだまま放置していた文庫本を取り出す。

ページをぱらぱらめくると、線を引いた覚えのない箇所に、うっすら鉛筆の跡がある。

「この一文に、あのとき引っかかっていたんだな」と、昔の自分に少し驚く。

今読んでみると、当時は気づかなかった別の箇所が刺さってくる。

たとえば、こんな感じの一節:

世界というのは、だいたいいつも、わずかにバランスを崩しながら、それでも何とか立っているようなものなんです。」

(これは架空の文だけど、春樹っぽさは伝わると思う)

読み終わったあと、あなたスマホを手に取って、誰に送るでもないメモを書き始める。

日記のような、感想のような、断片的な文章

それを翌朝読み返して、「案外悪くないかもしれない」と思う。

消さずに残しておく。そのメモが、数年後、何か別の形――ブログか、小説か、子どもへの手紙か――に変わるかもしれない。

村上春樹ノーベル賞を取ったことで、あなたの中の「書いてもいいかもしれない何か」が、ほんの少しだけ動き出す。

世界規模から見れば誤差だけれど、あなた時間軸にとっては、十分に大きな揺らぎだ。

7. 世界はそんなに変わらない、でも「読み方」は変わる

結局のところ、村上春樹ノーベル文学賞を受賞しても、

戦争が止まるわけでも、景気が劇的に良くなるわけでもない。

満員電車は相変わらず混んでいるし、会社会議は相変わらず退屈だし、洗濯物は相変わらずたまる

でも、「世界の読み方」は、少しだけ変わるかもしれない。

そんなふうに、日常現実に、うっすらと「物語レイヤー」が重なる。

村上春樹ノーベル賞を取るというのは、

世界ルールが変わる出来事ではなく、

世界物語として読む人」が、ほんの少しだけ増える出来事なのかもしれない。

そして、バタフライエフェクトというのは、

巨大な歴史的事件よりも、

そういう小さな読み方の変化から起きるのだと、個人的には思っている。

2025-11-07

anond:20251107184808

組込システムからrootで動くのは当然のように思うけど。

たとえば、昔のゲーム機なんてOSという概念すらなかったわけだし。

外部のセンサーとかへの通信とかで、特権があったほうがいいし、特権がないとwriteできないという可能性もあるわけだし。

そして、アップデートして更新する仕組みは当然もっているでしょ。

ただ、それが自動更新なのか、ユーザ更新するのかはわからないけど。

どうせユーザパッチ当てねーだろうと自動更新になっていたとしても不思議ではない。

そのバグの詳細は知らんけど、意図的にやったのか、バグや見落としでそうなったのか、それともユーザの設定のミスでそうなったのかで話は大きく変わる。

ふつーに考えれば、バグユーザミスだと思うけど。

2025-11-06

anond:20251106010059

🧠 構想・プロット作成に強いAI

ChatGPTGPT-5 / GPT-4 Turbo

長編構想、世界観設計キャラクター設定整合性確認が得意。

特にGPT-5は物語一貫性伏線管理文体調整がかなり自然

日本語での会話型ブレストスムーズ

Claude 3.5(Anthropic)

感情表現内面描写が柔らかく、人間らしい心理描写を作るのが得意。

GPTよりも「文芸的」なトーンを好む傾向。

✍️ 実際に小説文を書くのに強いAI

GPT-5(ChatGPT Plus / Enterprise

文体指定文豪風、ライトノベル風など)が非常に正確。

長文(数万字規模)でも一貫した文調を保ちやすい。

指示すれば章立て・会話文・地の文バランスも調整可能

Claude 3.5 Sonnet / Opus

特に情緒心理描写文体自然さが秀逸。

恋愛文学・詩的な作風に合う。

NovelAI英語中心)

日本語長編は苦手だが、ファンタジーSFなどでは描写が細かい

キャラごとの一人称口調維持が得意。

プロンプトで雰囲気操作やすい。

🧩 推敲文体調整に強いAI

GPT-5

文体Aから文体Bへ書き換える」や「より情景的に」「テンポを上げる」などの調整が非常に上手。

小説講座のように理由説明しながら修正してくれる。

DeepL Write

機械的校正ではなく、自然な言い換え提案ができる。

短文推敲日本語英語翻訳小説にも向く。

だって

2025-10-25

トランプ政権IT製造業の歪な距離感

MAGAな人々含めて明らかにWrite Code?ふざけんな!アメリカ製造業で生きる!」って雰囲気で、トランプ自身もそれを煽って製造業復活を掲げて関税を発動したわりには、実際のところIT系優遇してるよなあと思った。結局Tiktokは潰されず、今回の仮想通貨企業トップへの恩赦しかり。

https://gigazine.net/news/20251024-trump-pardons-binance-founder-cz-zhao/

あと中国人留学生の受け入れ再開もどうせビックテック要請でしょ?なんだかなあ。

2025-10-21

anond:20251021125002

delphiソースコード理解できる?

ChatGPT:

思考時間: 9s

はいDelphiObject Pascal)のソースも読めますし、解説リファクタバグ箇所の指摘・他言語への移植案など対応できます

VCL / FMXGenericsInterface/RTTI、プロパティ/イベントレコード・セット型、メモリ管理string/AnsiString/UnicodeString の違い)、スレッド(TThread / TTask)、WinAPI/COM 呼び出し、uses 単位構成、.dfmフォーム)やリソース周りもOKです。

コードを貼ってくれれば、1ステップずつ説明改善案を出します(DelphiバージョンVCL/FMXも書いてあると精度上がります)。

UNIFACEはどう?

ChatGPT:

思考時間: 13s

はい、UNIFACE(Proc言語)も対応できますフォーム/サービス/レポート/エンティティなど各コンポーネントのトリガ(initialize, validate, leave field など)、operation/entry、newinstance/activate/call、retrieve/e, read, writeエラー制御($status, $procerror)や論理名・assignment(.asn)、署名/パラメータDSP/RESTSOAP連携DBドライバ設定までOKです。

コードや .asn を貼っていただければ、処理フロー解説バグ箇所の指摘、リファクタ、他言語・他フレームワークへの移植案(例:REST API化、Java/Python 置き換え)まで具体的にやります

可能なら UNIFACE のバージョン(9/10/10.4 など)、DBOracle/SQL Server 等)、OS を添えてください。

今どきのAIなら、ダイジョブよ。AIを信じて全文投げ込んでみ

2025-09-27

anond:20250927213945

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format it

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase it

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Technologic Technologic

Technologic Technologic

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

__________________________

Touch It Scroll It Pose It Click It Cross It Crack It Twitch Update It

__________________________

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Technologic Technologic

Technologic Technologic

Technologic Technologic

Technologic Technologic

2025-08-30

プログラマーって別に稼げる職業じゃなかったんだよ

プログラマーって聞くと今の若い人は稼げる業種って思うかもしれない。でも昔は、そのイメージとはまるで真逆だったんだよ。

90年代初頭、日本バブルの余韻が残ってたけど、IT業界なんてまだオタクの延長みたいに見られていた。NECPC-9801シリーズオフィス定番で、OSMS-DOS 3.3とか、その後にWindows 3.1が出ておお、マウス操作できる!なんて騒がれていた時代だ。

もちろんインターネットなんて一般にはまだ普及してなかった。せいぜいパソコン通信ニフティサーブPC-VANアスキーネット回線速度は2400bps。ピーヒョロロっていうモデム音が夜中の住宅街に響いていた。

俺らはそういう環境C言語アセンブラを叩いてたんだ。コンパイル時間がかかるからトイレに行って戻ってきてもまだ終わってなかったりした。

今みたいにGitHubコードを共有なんて夢のまた夢。ソースのやり取りはフロッピーディスクで手渡しだ。5インチのぺらぺらのやつな。運が悪いと磁気にやられて一発で飛ぶ。だから俺たちはよくフロッピー神社に参拝とか冗談言ってた。

当時のプログラマー給料なんてひどいもんだよ。

正社員手取り20ちょっと下請けフリーランスだともっと安い。今でいうSESの走りみたいな人売りも普通にあった。客先常駐COBOLやらされてバグが出れば徹夜オフィスに寝袋持ち込んで、カップヌードル缶コーヒーの山を築く。徹夜明けに食う吉野家の牛丼が唯一のご褒美。今みたいにエンジニア市場価値が高いなんて考え方はなかったからな。ただの駒だよ。

バブル崩壊後はさらにひどくなった。

仕事は増えるのに単価は下がる。Windows 95の発売で世の中はインターネット元年なんて浮かれてたけど俺たちプログラマー現実は泥臭いコード修正の山。Visual Basic 6.0やDelphiが出て「これで開発効率が上がるぞ」なんて言ってたが、結局は納期に追われるだけ。SunJavaが登場したときも「Write once, run anywhere」なんて夢を見せてくれたけど、実際には動かないアプレットと格闘する日々。

Linuxが台頭してきたのもこの頃だ。

SlackwareRed Hat Linux 5.2をCD-ROM雑誌付録で手に入れて、夜な夜なインストールに挑戦。LILOがうまく動かなくて起動しない、ネットワークカード認識しない、X Windowが真っ黒。そんな壁に何度もぶつかっては2ちゃんねる(当時はまだ草の根BBSが多かったが)やUNIX USER誌を読み漁って解決する。それが楽しくて仕方なかった。でも金にはならなかった。オープンソースに貢献しても無償善意で済まされるだけ。Red HatMySQL ABが上場するまでは、ただのボランティア活動と見なされてた。

今思うと、あの頃は純粋だった。

技術のものが楽しくて、ASCIIOh!Xを小脇に抱えて徹夜コードを書いた。秋葉原ジャンクパーツを漁って自作PCを組み立ててベンチマーク数字一喜一憂した。

飯代を削ってもSCSIハードディスク投資したし、月刊アスキー付録CD-ROMに入ってたシェアウェアを片っ端から試した。儲けようなんて意識はなかった。ただ、面白いものを作りたかった。

それが今じゃITは完全に拝金主義コードの美しさより投資家の顔色を見てる。エンジニアもどこが年収いかばかりで、言語フレームワークを選ぶ基準が金になっちまったPython流行るのもAIブームに便乗してのことだし、ブロックチェーンやNFTなんかバブルがはじける前提のネタ探ししか見えなかった。

もちろん、技術商業化されて豊かになった面もある。AWSGCPのおかげで誰でも世界規模のサービスを立ち上げられるようになったし、GitHubDockerで開発環境も夢みたいに便利になった。だがその一方で楽しいからやるという純粋さはどこへ行ったんだろう。GitHubの草がどれだけ生えてるかが採用基準になる時代Qiita記事投稿するのも、技術共有じゃなくて転職市場でのポイント稼ぎ。

あの頃には確かに、金ではなく面白さに突き動かされる熱があった。それが今は金の匂いに上書きされてしまったように感じる。

プログラマーって、本当は稼げる職業じゃなかったんだよ。

でも稼げなくても、やる価値があった。

今の若いエンジニアたちにその気持ちがどれだけ伝わるかは分からない。

当時「Hello, world.」と表示されるだけのプログラムに、30年前の俺は心を震わせていた。

その震えを知っているからこそ、今の金の匂いにむせ返る業界がどうにも虚しく見えてしまうんだ。

2025-08-08

Today you want to Know Love you pussy

The Power of Small Steps: How Tiny Changes Can Lead to Massive Growth

In a world that glorifies overnight success and dramatic transformations, it's easy to feel like you’re falling behind if you’re not making big leaps. But what if the secret to real, lasting personal growth wasn’t in doing more, faster—but in doing less, consistently?

Welcome to the power of small steps.

Why Small Steps Matter

Big goals often feel overwhelming. You want to get fit, write a book, start a business, or learn a new skill—but you don’t know where to start. So you procrastinate. Or worse, you dive in too fast, burn out, and give up.

Small steps bypass all of that.

When you break down a huge goal into manageable actions, everything changes. Writing 500 words a day is less intimidating than finishing a whole novel. Ten minutes of walking is more doable than committing to a 5K. And spending 15 minutes a day learning a language adds up to over 90 hours a year.

Consistency beats intensity every time.

The Compound Effect

Imagine improving just 1% every day. That might sound insignificant—but over a year, it compounds into something extraordinary. This idea is the foundation of Darren Hardy’s The Compound Effect and James Clear’s Atomic Habits. Both books emphasize that small, smart choices, repeated over time, lead to radical results.

Think of your habits like planting seeds. At first, nothing seems to happen. But give it time, and youll see growth you never thought possible.

Real-Life Example: The 10-Minute Rule

Let’s say you want to start meditating but can’t sit still for 30 minutes. Instead of forcing it, try meditating for just 10 minutes a day. Or even 5. Build the habit before scaling the effort. Once it becomes part of your routine, extending the time feels natural.

This applies to nearly everything:

Want to read more? Read one page a day.

Want to save money? Start with $1 a day.

Want to eat healthier? Swap one snack a day for a better option.

Start tiny. Stay consistent.

How to Start Taking Small Steps

Pick one goal

Don’t try to overhaul your entire life at once. Choose one area to focus on—health, creativity, relationships, mindset, etc.

Break it down

What’s the smallest possible action you could take toward that goal? Make it so easy you can’t say no.

Set a trigger

Link your new habit to an existing one. For example: “After I brush my teeth, I’ll journal for 5 minutes.

Track it

Use a habit tracker, app, or notebook to keep yourself accountable. Seeing your streak grow is highly motivating.

Celebrate small wins

Every time you follow through, give yourself credit. Progress is progress, no matter how small.

Final Thoughts

Don’t wait for motivation. Don’t wait for the perfect time. Just start—with whatever you have, wherever you are, and however small.

Because small steps, taken consistently, turn into big change.

The key isn’t to sprint—it’s to show up every day.

2025-07-24

anond:20250724143206

rustの話だと思うけどwrite!マクロは調べたか?

書き込み先がVec(u8)だったり結果がResultだったりするが代用はできるはずだ

2025-07-14

しゃーない、ワイがかわりに英文スパム投稿してやるやで

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format it

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase it

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Technologic Technologic

Technologic Technologic

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

__________________________

Touch It Scroll It Pose It Click It Cross It Crack It Twitch Update It

__________________________

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Technologic Technologic

Technologic Technologic

Technologic Technologic

Technologic Technologic

2025-07-08

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format it

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase it

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Technologic Technologic

Technologic Technologic

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

__________________________

Touch It Scroll It Pose It Click It Cross It Crack It Twitch Update It

__________________________

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Buy It Use It Break It Fix It Trash It Change It Mail Upgrade It

Charge It Point It Zoom It Press It Snap It Work It Quick Erase It

Write It Cut It Paste It Save It Load It Check It Quick Rewrite It

Plug It Play It Burn It Rip It Drag And Drop It Zip Unzip It

Lock It Fill It Curl It Find It View It Code It Jam Unlock It

Surf It Scroll It Pose It Click It Cross It Crack It Twitch Update It

Name It Read It Tune It Print It Scan It Send It Fax Rename It

Touch It Bring It Pay It Watch It Turn It Leave It Stop Format It

Technologic Technologic

Technologic Technologic

Technologic Technologic

Technologic Technologic

anond:20250708101727

Javaの出始めの頃は、VM方式言語がそんなになかったから「俺はOOPはどうでもいいんだ、write once, run everywhereがやりたいだけなんだ」という人もそれなりにいたと思われ

2025-07-07

Hey everyone. I don't know where else to post this. I need to write it down before I convince myself I was just hallucinating. I’m a grad student in Japan, doing fieldwork on forgotten local folklore. That's why I was out in the absolute middle of nowhere in Gunma prefecture last night.

My plan was to visit a tiny, dying village called Yomi-touge (not its real name) that supposedly has some unique traditions. Of course, my phone lost signal hours ago, and my car's GPS, which I bought in 2015, decided to have a total meltdown. The sun went down. The mountain roads are narrow and winding, and a thick, soupy fog started to roll in. The kind of wet, heavy air that makes you feel like you’re breathing water. I was completely, hopelessly lost.

After what felt like an eternity of driving at a crawl, I saw it. A light. A single, brutally bright rectangle of light cutting through the fog. A convenience store. One of those big chains you see everywhere, a FamilyMart or a Lawson, I couldn't tell which at first. I’ve never felt so relieved in my life. I parked the car and practically ran inside, the little door chime sounding way too loud in the dead silence.

The inside wasnormal. Too normal. The lights were humming with a high-pitched buzz that drilled into my skull. The shelves were perfectly stocked. The air smelled of cheap air freshener and something elsesomething sweet and hot, like ozone or burnt sugar.

And then I saw the clerk.

He was a young guy, maybe my age. Pale, drenched in sweat, with dark circles under his eyes like bruises. He moved with a painful stiffness, like every joint was rusted. He muttered a "Irasshaimase…" without even looking at me, his eyes fixed on the counter. His arms were covered in these intricate, dark tattoos, winding from his wrists up under his sleeves. I figured he was just sick, or on a rough shift. I felt bad for him.

I grabbed a can of coffee and went to the counter. "Sorry to bother you," I started in Japanese, "I'm pretty lost. Could you tell me where I am?"

He looked up, and his eyes didn't seem to focus on me. It was like he was looking at a screen a few inches in front of my face. "We do not provide directional information," he said, his voice a flat, rehearsed monotone. "Will that be all for you?"

Okay, weird, but whatever. Maybe it's store policy. As he reached for my coffee, his sleeve slid up. The tattoos on his arm… they weren’t just pictures. For a split second, I swear to God, the lines of ink shifted. They writhed, like tiny black worms under his skin, and a patch of his forearm glowed with a faint, sickly red light. He flinched, a sharp intake of breath, and quickly pulled his sleeve down.

I just froze. I couldn’t have seen that, right? I was tired, my eyes were playing tricks on me.

Then the door chimed again.

The person who walked in… I don’t know how to describe them. It was a man, I think. He was tall and wore an old, soaked trench coat. But his face… it was like my brain refused to process it. It wasn't that he had no face, it was that my eyes would slide right off it. It was a blur, a glitch, a 404 error in human form.

The clerk didn't seem surprised. He didn't even seem to see him as strange. His posture just became even more rigid. The red glow on his arm pulsed again, brighter this time, visible through his sleeve.

The faceless man didn't speak. He just stood there. The clerk, without a word, turned. But he didn't go to the coolers. He kept his back to the man, and held out his left hand, palm up. I heard a soft, wet, squelching sound. From a small, dark slit in the center of his palm that I hadn't noticed before, a small carton of strawberry milk, the kind you give to kids, just… emerged. It was produced out of his hand. It was wet with a clear, viscous fluid.

He placed it on the counter. "Here is the requested product," the clerk said, his voice straining. "The transaction is complete."

The faceless man picked up the strawberry milk. He put it in his coat pocket. And then he just… faded. He didn’t walk out the door. He dissolved into the humming air, like heat haze. A second later, he was gone.

The clerk let out a long, shuddering breath and swayed on his feet. He leaned heavily on the counter, his face sheet-white. He looked utterly, existentially exhausted. He saw me staring, my mouth hanging open, the can of coffee still in my hand.

For the first time, a flicker of something real, something human, crossed his face. It was pure, undiluted terror.

"You… are not a regular customer," he whispered, his voice trembling. "Your… concept is too stable. Please. Leave."

I didn't need to be told twice. I threw a 500 yen coin on the counter and ran out of there so fast I think I broke the sound barrier. I didn't even take my coffee. I just got in my car and drove, I don't know in which direction, I just drove.

I'm at a service station now, about 100km away. The sun is coming up. I can't stop shaking. It wasn't a dream. I know it wasn't. Because when I was fumbling for my keys, I realized I had accidentally grabbed the receipt from the counter.

It’s not for my coffee. It’s for the other transaction. It just has one item listed. It doesn't say "Strawberry Milk." It says:

ITEM: CONCEPTUAL SALVATION (FLAVOR: CHILDHOOD NOSTALGIA) - 1 UNIT

PRICE: ¥0

METHOD: ANNULMENT

Has anyone seen a store like this? What the hell is happening in the mountains of Gunma? What did I see? And God, that poor kid working the counter. He isn't in trouble. He's a part of it. He's the machine.

2025-06-13

我が名はサイボーグdorawii

パーマリンク署名対象にするより堅牢自動化を作れた。

一度投稿したうえで別タブを開いてプログラム的(fetch)に送信してその別タブが閉じられる仕組み。

改めてスクリプト配布しちゃる

最初投稿してエントリページに移動した親タブ側のjsコード
// ==UserScript==
      // @name         PGP署名検出と別タブ自動編集
      // @namespace    http://tampermonkey.net/
      // @version      1.0
      // @description  PGP署名がない投稿自動編集ページへ誘導
      // @match        https://anond.hatelabo.jp/*
      // @grant        GM_setValue
      // @grant        GM_getValue
      // @grant        GM.openInTab
      // ==/UserScript==

      (function () {
        'use strict';

        const body = document.getElementById('entry-page');
        if (!body) return;

        const titleText = document.title;
        if (!titleText.includes('dorawii')) return;

        const pgpRegex = /BEGIN.*PGP(?: SIGNED MESSAGE| SIGNATURE)?/;
        const preElements = document.querySelectorAll('div.body pre');
        let hasPgpSignature = false;

        for (const pre of preElements) {
          if (pgpRegex.test(pre.textContent)) {
            hasPgpSignature = true;
            break;
          }
        }

        if (hasPgpSignature) return;

        const editLink = document.querySelector('a.edit');
        const childTab = GM.openInTab(editLink.href, { active: false, insert: true, setParent: true });

      })();
親タブから開かれる編集ページの子タブのjsコード
 // ==UserScript==
      // @name         編集ページ処理と自動送信・閉じ
      // @namespace    http://tampermonkey.net/
      // @version      1.0
      // @description  編集ページで署名処理と送信、タブ自動閉じ
      // @match        https://anond.hatelabo.jp/dorawii_31/edit?id=*
      // @grant        GM_getValue
      // @grant        GM_xmlhttpRequest
      // @grant        GM_setClipboard
      // @grant        GM_notification
      // @connect      localhost
      // ==/UserScript==

      (async function () {
        'use strict';

        const shouldRun = await GM_getValue('open-tab-for-edit', '0');

        const textareaId = 'text-body';
        const textarea = document.getElementById(textareaId);

        if (!textarea) return;

        const content = textarea.value;

        const pgpSignatureRegex = /-----BEGIN PGP SIGNED MESSAGE-----[\s\S]+?-----BEGIN PGP SIGNATURE-----[\s\S]+?-----END PGP SIGNATURE-----/;
        if (pgpSignatureRegex.test(content)) {
          console.log('[PGPスクリプト] 署名が検出されたためそのまま送信します');
          return;
        }

        const httpRequest = (url, data) => {
          return new Promise((resolve, reject) => {
            GM_xmlhttpRequest({
              method: 'POST',
              url: url,
              headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
              data: `value=${encodeURIComponent(data)}`,
              onload: function (response) {
                resolve(response.responseText);
              },
              onerror: function (error) {
                reject(error);
              }
            });
          });
        };


        // textarea の値を取得
        // 1. 現在のページのURLからURLオブジェクト作成
        const currentUrl = new URL(window.location.href);

        // 2. ベースとなる部分 (例: "https://anond.hatelabo.jp") を取得
        const origin = currentUrl.origin;

        // 3. 'id' パラメータの値 (例: "20250610184705") を取得
        const idValue = currentUrl.searchParams.get('id');

        // 4. ベース部分とIDを結合して、目的URL文字列を生成
        //    idValueが取得できた場合のみ実行する
        let newUrl = null;
        if (idValue) {
          newUrl = `${origin}/${idValue}`;
        }

        // 5. 生成されたURL変数に代入し、コンソールに出力して確認
        console.log(newUrl);
        const valueToSend = newUrl;

        try {
          const signatureText = await httpRequest('http://localhost:12345/run-batch', valueToSend);
          console.log('バッチ応答:', signatureText);
          if (!signatureText.includes('BEGIN PGP SIGNED MESSAGE')) {
            alert('PGP署名クリップボードに見つかりませんでした。');
            return;
          }

          const newText = content.replace(/\s*$/, '') + '\n' + signatureText + '\n';
          textarea.value = newText;

          console.log('[PGPスクリプト] 署名を貼り付けました。送信を再開します。');


          const form = document.forms.edit;

          const newForm = form.cloneNode(true);
          form.replaceWith(newForm);

          newForm.addEventListener('submit', async (e) => {
            e.preventDefault(); // HTML標準のsubmitをキャンセル
            const bodyText = textarea?.value || '';

            // reCAPTCHA トークンの取得
            const recaptchaToken = await new Promise((resolve) => {
              grecaptcha.enterprise.ready(() => {
                grecaptcha.enterprise.execute('hoge', { action: 'EDIT' })
                  .then(resolve);
              });
            });

            // POSTするデータの構築
            const formData = new FormData(newForm);
            formData.set('body', bodyText);
            formData.set('recaptcha_token', recaptchaToken);
            formData.set('edit', '1');
            try {
              const response = await fetch(newForm.action, {
                method: 'POST',
                body: formData,
                credentials: 'same-origin'
              });


              if (response.ok) {
                console.log('送信成功');
                window.close();


              } else {
                console.error('送信失敗', response.status);
              }
            } catch (err) {
              console.error('送信中にエラーが発生', err);
            }

          });

          // プログラム的に送信トリガー
          newForm.dispatchEvent(new Event('submit', { bubbles: true }));

        } catch (e) {
          console.error('バッチ呼び出し失敗:', e);
        }

      })();
node.jsで動かすローカルサーバーコード
const http = require('http');
const { exec } = require('child_process');
const querystring = require('querystring');

const server = http.createServer((req, res) => {
  if (req.method === 'GET' && req.url === '/ping') {
    res.writeHead(200);
    res.end('pong');
  } else if (req.method === 'POST' && req.url === '/run-batch') {
    let body = '';

    req.on('data', chunk => {
      body += chunk.toString();
    });

    req.on('end', () => {
      const parsed = querystring.parse(body);
      const value = parsed.value || 'default';

      // 値を引数としてバッチに渡す
      exec(`C:\\Users\\hoge\\Desktop\\makesign.bat "${value}"`, { encoding: 'utf8' }, (err, stdout, stderr) => {
        if (err) {
          res.writeHead(500);
          res.end('Error executing batch: ' + stderr);
        } else {
          res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
          res.end(stdout.trim());
        }
      });
    });

  } else {
    res.writeHead(404);
    res.end('Not found');
  }
});

server.listen(12345, () => {
  console.log('Batch server running at http://localhost:12345/');
});
@echo off
setlocal enabledelayedexpansion


:: 署名するファイルset "infile=%~1"
set outfile=%TEMP%\pgp_output.asc

:: 以前の出力があれば削除
if exist "%outfile%" del "%outfile%"


:signloop
:: AutoHotkeyパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)
start "" /b "C:\Users\hoge\Documents\AutoHotkey\autopass.ahk"

:: PGPクリア署名作成
echo %infile% | gpg --yes --clearsign --output "%outfile%"


:: 署名成功していればループを抜ける
if exist "%outfile%" (

    goto postprocess
) else (

    timeout /t 1 > nul
    goto signloop
)
:postprocess

powershell -nologo -command ^
  "$header = '>|'; $footer = '|<'; $body = Get-Content '%outfile%' -Raw; Write-Output ($header + \"`r`n\" + $body + $footer)"

powershell -nologo -command ^
  "$header = '>|'; $footer = '|<'; $body = Get-Content 'signed.asc' -Raw; Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"

endlocal
exit /b
AutoHotkey(以前と同じ)
#Persistent
#SingleInstance ignore
SetTitleMatchMode, 2
WinWaitActive, pinentry
SendInput password
Sleep 100
SendInput {Enter}
ExitApp

動けばいいという考えで作っているので余分なコードも含んでいるかもしれない。

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

https://anond.hatelabo.jp/20250613185036 
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEv1FQAKCRBwMdsubs4+
SHHkAQDUOLgBcdji2T6MJ7h/vlMdFfGlWAzNdXijjE1gIuEPywEAiMNMZqhrMmtl
c7UqRuggNJ/UTa5xTIcKp622+7jJQQg=
=Lgkl
-----END PGP SIGNATURE-----

2025-05-24

anond:20250524114419

readだけできるAPIを作ってほしいものよね。

売買のwriteではなくて、口座の状態株価を見れるだけの権限APIをね。

一応、一部の証券会社独自API提供しているからそっちで生きるのかなあ?

それらのAPIは売買もできるから危険といえば危険なんだけどさ・・・

2025-05-18

官報ダウンロード

令和7年4月1日以降、官報帰化情報が90日経過で閲覧不可になった。

プライバシー配慮」とのことだが、最近の不自然戸籍不要発言などと合わせて考えると嫌な予感しかしない。

そこでとりあえず官報を保存できるプログラムを作った。自分ダウンロードして保存すること自体は全く問題ない行為

官報は平日の8:30に公開されるので、cronで8:31かに実行すると良いのでは。

# 官報PDFデータを入手して保存する
import requests
import os
import time
from bs4 import BeautifulSoup
from urllib.parse import urljoin

# 対象URL
index_url = "https://www.kanpo.go.jp/index.html"
base_url = 'https://www.kanpo.go.jp/'

# ダウンロードフォルダ
download_dir = 'pdfs'
os.makedirs(download_dir, exist_ok=True)

# ページ取得
response = requests.get(index_url)
response.encoding = 'utf-8'
text = response.text

# HTMLを解析
soup = BeautifulSoup(text, "html.parser")
results = []

# 「本日官報」を対象PDF情報を取得する
today_box = soup.find('div', class_='todayBox')
if today_box:
    dl = today_box.find('dl')
    dt = dl.find('dt')
    if dt:
        # 日付の抽出
        date_text = dt.get_text(strip=True).split('92;n')[0].replace(" ","").replace("全体目次はこちら","").replace("※インターネット官報","").strip()

        dd = dl.find('dd')
        if dd:
            for li in dd.find_all('li', class_='articleBox'):
                title_tag = li.find('a', class_='articleTop')
                pdf_link = li.find('a', class_='pdfDlb')

                if title_tag and pdf_link:
                    title = title_tag.decode_contents().replace("<br/>", "").strip()
                    url = pdf_link['href']
                    results.append({
                        '日付': date_text,
                        'title': title,
                        'url': url
                    })

# 結果の表示
for r in results:
    date = r['日付']
    title = r['title'] 
    url = r['url'] 

    # pdfファイルURL作成
    url_parts = url.rsplit("/", 1)
    url_base = url_parts[0]
    filename = url_parts[1].replace("f.html", ".pdf")
    converted_url = f"{url_base}/pdf/{filename}"
    
    # pdfURLファイル名を作成
    full_url = urljoin(base_url, converted_url)
    base_filename = date + "_" + title + "_" + filename.replace("f.html", ".pdf")

    # ダウンロードして保存
    print(f'Downloading {full_url} ...')
    try:
        response = requests.get(full_url)
        response.raise_for_status()
        with open(os.path.join(download_dir, base_filename), 'wb') as f:
            f.write(response.content)
        print(f'Saved: {base_filename}')
        time.sleep(10)
    except Exception as e:
        print(f'Failed to download {full_url}: {e}') 

2025-04-13

anond:20250413145628

Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don't have to answer so many questions about it.

Impatience: The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to.

Hubris: The quality that makes you write (and maintain) programs that other people won't want to say bad things about.

anond:20250413143845

怠惰」を美徳とする元々の文脈では、「後先めんどくさいことにならないように、今努力する」ことを怠惰と呼んでいたので、本当の意味で怠けることは意味していない

Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don't have to answer so many questions about it.

https://thethreevirtues.com/

2025-04-05

ClineやCursorでAuto ApproveでWrite許可してるやつってバカなの?

vibe codingがはやって、AgentモードAuto Approveでどんどん実装をすすめておいて、負債たまるーていっているヤツがうっとうしい。

LLMのモデルが全部のコード仕様を把握している訳ではないので、間違った方向に進むことはしょっちゅうあるのはあたりまえ。

編集する前にdiffを見て、間違っていたら間違っているとを伝えてどのようにしたらいいかまで伝えれば、LLMにまかせても負債がたまっていかない。

たまにちょっとおかしい時に間違っている説明して再生成がたいへんだから、いったんその編集内容で保存してから修正結果に対して再度修正を依頼をすることはあるけど。

間違った方向にすすめばその分LLMのAPIコストもかかるので、コストのことも考えていないということも腹だたしい。

Auto ApproveでWriteまで許可しているやつは、LLMが動作している間、何してるん?どうせ生産性を産むようなことをしてないんだからおとなしくLLMの動作を見守っとけ。

2025-02-14

GoogleマップタイムラインjsonKML

> アプリ内のデータバックアップしたのを自分ダウンロードしてテキスト化する方法いかなあ/できたわ。設定→位置タイムラインタイムラインエクスポートjson可能。あとは誰かが処理系を作るだけだ!

https://b.hatena.ne.jp/entry/4766225990155446401/comment/punychan

書く場所を思いつかなかったのでこちらに投下。Python

これを使えばXXXX-XX-XX.kml 形式で日付別のタイムラインデータを出力できる(ChatGPT製)。

KMLファイルGoogle Earth Proなどで開くことが可能で、ビジュアルとして行動履歴を見ることができる。

ただ、以前GoogleMapsタイムラインが吐いていたKMLではPlacemarkという項目に直接建物名などが書かれていたが、現在出力されているjsonではplaceIdというものに変更されていて具体的な名前がわからない。

placeIdを実際の建物名などに変換するにはGoogle Maps API の Place Details APIを使うしかないようだが、膨大なリクエスト(有料)をしなければならず非現実的

もともと欧州プライバシー関係規制のせいでGoogleサーバ上でのタイムライン履歴が行われなくなったのが今回の問題の起点。

ユーザー自由尊重するなら、個人が行動履歴自己管理する自由ももっと尊重してもらいたいものだな、と思った。


import json

import os

from xml.etree.ElementTree import Element, SubElement, tostring

from xml.dom.minidom import parseString

# JSONファイルの読み込み

with open("タイムライン.json", "r", encoding="utf-8") as f:

data = json.load(f)

# 出力フォルダ作成

output_folder = "kml_output"

os.makedirs(output_folder, exist_ok=True)

# `semanticSegments` に移動データが含まれている

if "semanticSegments" in data:

date_segments = {} # 日付ごとにデータをまとめる辞書

for segment in data["semanticSegments"]:

# `startTime` から日付部分(YYYY-MM-DD)を抽出

if "startTime" in segment:

date = segment["startTime"].split("T")[0]

# 日付ごとのリスト作成

if date not in date_segments:

date_segments[date] = []

date_segments[date].append(segment)

# 日付ごとにKMLファイル作成

for date, segments in date_segments.items():

kml = Element("kml", xmlns="http://www.opengis.net/kml/2.2")

document = SubElement(kml, "Document")

for segment in segments:

if "timelinePath" in segment:

for point in segment["timelinePath"]:

coords = point["point"].replace("°", "") # 度記号を削除

time = point.get("time", "Unknown Time")

# Placemarkを作成

placemark = SubElement(document, "Placemark")

# タイムスタンプ

timestamp = SubElement(placemark, "TimeStamp")

when = SubElement(timestamp, "when")

when.text = time

# 座標

point_element = SubElement(placemark, "Point")

coordinates = SubElement(point_element, "coordinates")

lat, lon = coords.split(", ")

coordinates.text = f"{lon},{lat},0" # KML形式: lon,lat,alt

# KMLデータフォーマット

kml_str = tostring(kml, encoding="utf-8")

formatted_kml = parseString(kml_str).toprettyxml(indent=" ")

# KMLファイルに保存

kml_filename = os.path.join(output_folder, f"{date}.kml")

with open(kml_filename, "w", encoding="utf-8") as f:

f.write(formatted_kml)

print(f"KMLファイルを出力しました: {kml_filename}")

ログイン ユーザー登録
ようこそ ゲスト さん