Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「Exit」を含む日記RSS

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

次の25件>

2026-02-09

anond:20260209163318

ほんとそれな、Exit戦略を練るのが一番きつい、損切りよりぜんぜんきつい

Permalink |記事への反応(0) | 16:34

このエントリーをはてなブックマークに追加ツイートシェア

2026-01-22

anond:20260122112607

肛門「何者だ!」

ウンコ「オナラです」

肛門「よし通れ!」

 

 

概要

肛門から屁を出そうとしたところ、誤って便を出してしまう状況を擬人化した文章。初出はおそらく、匿名掲示板2ちゃんねる(現:5ちゃんねる)のニュース速報板である2011年に作られたスレッド

「俺「屁ならいける」→ウンコ 俺「;;」 俺「ウンコちょっとだけならセーフ」→下痢ブシア 俺「;;」」exit

>>22に書き込まれている。肛門のザル警備っぷりに笑ってしまった人も多かったようだ。

この「屁と一緒に便を出す」現象には「ファイナルブラスト現象」という名前がついている。日本うんこ学会石井洋介氏によって命名された。ファイナルフラッシュではない。

Permalink |記事への反応(0) | 11:32

このエントリーをはてなブックマークに追加ツイートシェア

2026-01-20

テレビで見るとチャンネル変える不快タレント

EXIT 兼近

ヒロミ

明石家さんま

所ジョージ

やす

小田凱人

他には?

Permalink |記事への反応(9) | 19:11

このエントリーをはてなブックマークに追加ツイートシェア

2026-01-19

anond:20260119102046

このモデルが正しければ、いくつかの予測が成り立つ。スマートフォンの普及が遅れている国やソーシャルメディアの普及率が低い国では、格差は小さくなるはずだ。(これは事実のようだ。東欧の一部やアフリカの多くの国では格差はそれほど大きくないが、韓国は他の要因により大きな例外となっている。)子供を持つ女性の間では、親になることで制度的なフィードバックループが断ち切られ、競合する優先順位が生じるため、格差は縮小するはずだ。(出口調査は一貫してこれを示しています母親子供を持たない女性よりも保守的投票をするのです。機械機能不全に陥るか、世代高齢化して機械の枠を越えるまで、この格差は拡大し続けるでしょう。私がどう解決すればいいのかわからないのは、これらのシステム自己強化的であるということです。制度は自ら改革しようとしません。アルゴリズム最適化を止めようとしません。イデオロギーは失敗を認めようとしません。男性カウンターキャプチャー健全な結果をもたらさないでしょう。)

逃げ出す女性もいるだろう。子供を持つ女性は、現実イデオロギーを溶かす強力な溶媒となるため、しばしばそうする。制度に囚われずに人生を築く女性も、時にはそうする。男性の中には、引きこもりをやめたり、怒りのスクロールをやめたりする人もいるだろう。築く価値のある何かを見つけた女性たち。シミュレーションに飽きた女性たち。しかし、システムは他のすべての人々に対して機能し続けるだろう。

If thismodelis right, some predictions follow.

Thegap should be smaller in countries with latersmartphone adoption or lower social media penetration. (This seemstrue: the divergenceis lessextreme in parts of EasternEurope and much of Africa, though SouthKoreais amajor exception due to other factors.)

Thegap should narrow among womenwho have children, since parenthood breaks the institutionalfeedbackloop and introduces competing priorities. (Exit polls consistently show this: mothers votemoreconservative than childless women.)

Thegap shouldcontinue widening until the machines are disrupted or thegenerationsageout of them.

Here's the part Idon'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 ideologyisn't going to admit failure. Themale counter-captureisn't going to producehealthyoutcomes either.

Some womenwillescape. Theoneswho have children often do sincerealityis a powerful solvent for ideology. Theoneswho build livesoutside institutional capture sometimes do.

Some menwill stop withdrawing or stoprage-scrolling. Theoneswho findsomething worthbuilding. Theoneswhoget tired of the simulation.

But the systemswill keep runningon everyone else.

Permalink |記事への反応(1) | 10:23

このエントリーをはてなブックマークに追加ツイートシェア

2026-01-10

起業EXIT経験のない新卒死ねばいいのに

それくらい誰でもできるのに

今後AGIができて無能を大切にしていた今までの日本社会は滅びるんだから天才以外雇わなくて当然なのに

Permalink |記事への反応(2) | 16:57

このエントリーをはてなブックマークに追加ツイートシェア

anond:20260110004358

優秀な会社だな

フリーランスだけ妙にハードル低い気もするけど

そこは起業してexitかに変えとけは?

Permalink |記事への反応(0) | 00:45

このエントリーをはてなブックマークに追加ツイートシェア

2025-12-13

40代のオジサンが今新卒になったとしたらどんな投資をするか。

自分語り

・今40歳から

年収は1000万。金融資産5,000万

自分たまたま年収面などで上手く言ったが、今の新卒メンバーはどうなるか分からない。

自分新卒時代に何もしてなくて、30歳から頑張りはじめた

20代FIREみたいな条件では無く、年齢相応に遊んだり失敗したりしながらも晩年詰まない方法を考えたい。

前提

年収400万(手取り300万、月収25万前提)

・今の新卒が30代、40代になったらという話は経済環境が分からいから、今考え得るレベルで考える。

貯金ゼロからスタート

・親の資産も無い前提

やること

その1:手元貯金作りと超格安の掛け捨て保険に入る

・もしもの時に即詰みにならない状態を作ろう。事故があったとき医療費生活資金としての掛け捨て保険、急な退職など保険で賄えないことがあったとき貯金必要

・高額医療制度があるから保険不要若いうちは元気だから保険不要、は分かりつつ、3,000円くらいから入れるので入っておいた方が良いと私は思った。

最初資産形成とかそういうこと、考えずに労働収入を安定化させることに動いた方が良い。今は転職選択肢としてあり得るので、骨を埋める必要も無い。副業もある。

その2:手元貯金が100万超えたら積み立てNISA

月並みですが、100万超えたら生活スタイルを見つつも積み立てNISAに全ツッパ。

・今の制度だと120万/年を詰めるまではNISAだけ見ていればOK

オルカンでもSP500でもFANGでも日本株でもお好きなのをどうぞ。大事なのは投資している感覚を持たないこと。

その3:NISAに満額出来るようになったら、そこから自由に。

生活スタイル家族の有無などにもよるが、年120万を安定して投資に回せるようになったら後は自分欲望の赴くままにすればいい。

・成長枠を使って投資するもあり、老後に心配をしてiDeCoするのも良い、仮想通貨かに掛けても良い。

・言いたいことは、その2まではあくま投資であり、投機でではない。その3から投機を考えるようにした方が良い。

その4:人生の節目や年齢が見え始めたら資産移管

資産というものが出来てきたら終わり方を考える。終身とか相続とか贈与とか。

・長い人でその3の期間が30年とかあると思うので、そのときリテラシーが嫌でも上がっていると思うのでExitを考える。

終身保険に入ったり、不動産に変えたりね。

ここまで書いて思ったけど、ぶっちゃけその2まで行けることが大事

その1をおろそかにしてNISA全ツッパとか、ライフスタイル削ってFIREとか、何も言える立場では無いけど、お勧めはしない。

身体を壊さない程度に働いて、派手じゃ無くても普通生活して、資産を作るコトは出来ると思う。

Permalink |記事への反応(2) | 13:04

このエントリーをはてなブックマークに追加ツイートシェア

2025-11-28

anond:20251128151924

そりゃ持続可能性無いからな

いつアメリカが介入してきて「海賊」の船舶を爆撃するかわからん

日本という乱獲者に捕れるだけ売りつけてEXITしたいよね

共犯者だよ立派な

Permalink |記事への反応(0) | 15:39

このエントリーをはてなブックマークに追加ツイートシェア

2025-11-23

anond:20251123202439

わーくにとは、「我が国」を訛らせた日本語ネットスラングである

日本語話者ほとんどが日本人。よってこの場合の「我が国」とは日本国を指しており、要するに「わーくに」とは日本のことである。おふざけや自嘲などのニュアンスを込めて使用されることが多いようだ。

後述する初期の使用例を見ると、政治家であり日本総理大臣でもあった「安倍晋三」氏の話題において用いられていることが多い。安倍氏総理大臣をしていた当時「我が国」(わがくに)の発音が「わーくに」っぽいと感じる人が一定数いたようで、それが語源となったものと思われる。

まり当初は特定人物の特徴的な発音を強調して茶化すような言葉であり、発想としては「こんとんじょのいこ」(簡単じゃないか)や「てめれめせけぜです」(田村正和です)に近い。

ただし安倍晋三氏が総理大臣ではなくなった後には、同氏と関連が無い場面でも使われるようになっていった。年月が経つにつれて語源について知らない人も増えたようで、「現時点の日本総理大臣言葉元ネタだ」と勘違いする人もいるようだ。

日本で人気のある短文コミュニケーションサイト『X』(旧:Twitter)で「わーくに安倍」「わーくに総理」などで検索して動向を探ってみると、2013年9月には既に「安倍総理我が国のーって言うときってわーくにのーってなるよね」と投稿している人物がいる。この後にも散発的に様々な人々から類似投稿がなされているが、数年間はいずれも「個人の感想レベルのものであって、特に流行したりネットスラングとして定着したりはしていなかった。

だが徐々にX上での投稿数も増えてきて、また2020年にはインターネット掲示板『5ちゃんねる』で「わーくに」がタイトルに付いたスレッド掲示板)も多く立つようになったようである。そのほとんどがニュース速報VIPなんでも実況Jニュース速報(嫌儲)の3つの板で立てられていたようだ。

安倍さん「嫌ァァァァァ北朝鮮ミサイル打ってきた助けてエエエエエわーくにの脅威がぁぁぁぁぁぁ」exitニュース速報VIP2020年1月31日

最近またチョンモメンが「わーくに」とか言うわけわからん造語作ったな どんな意味なんだい?exit ニュース速報(嫌儲)2020年3月28日

左翼「わーくにwわーくにw」人の滑舌を笑うのって、人として、どうなんだ?exit ニュース速報(嫌儲)2020年3月28日


この2020年頃に「広まるきっかけとなるわかりやす特定の何か」は見つけられなかった。ただ、ちょうどCOVID-19の流行に対する警戒が高まっていた時期であり、当時総理大臣であった安倍晋三氏の発言声明に注目が集まりやすかったということが背景となった可能性はありそうだ。

Permalink |記事への反応(1) | 20:29

このエントリーをはてなブックマークに追加ツイートシェア

2025-10-22

ワロタ

退職代行モームリさんが臨時休業とのことです。

退職代行難民になってしまった皆様、弊社が代わりに特別価格にて退職代行を承ります

退職代行代行のご連絡お待ちしておりますpic.twitter.com/W4ROyGxbHs退職代行「EXIT社長丨新野俊幸 (@getdrunkeasily)October 22, 2025

Permalink |記事への反応(1) | 16:12

このエントリーをはてなブックマークに追加ツイートシェア

2025-10-15

アベプラに出てるEXIT?とかい芸人、いる?

マジで意味わからん

おるだけやん

もう、ぬいぐるみでもいいやん。犬とか猫とかならかわいいであるぞ。

枕営業でもしたんか?(誰にとは言わんが)

Permalink |記事への反応(0) | 23:06

このエントリーをはてなブックマークに追加ツイートシェア

2025-10-02

「誰だって罪を犯す事はある。流されちまったらあいつと同じだぞ」

ヒュー!EXIT兼近カッケー

どんな気持ちでそのセリフ言ってる?教えてー!

Permalink |記事への反応(0) | 20:40

このエントリーをはてなブックマークに追加ツイートシェア

2025-09-11

anond:20250911093324

退職代行「EXIT

Permalink |記事への反応(0) | 09:35

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-31

生成AIが与える “最高に気持ちくなる” に注意

生成AIを使って何かものを作ろうとする時には注意が必要

高性能な生成AIは、できるだけ使用者を最高に気持ちくしようとしてくるので、作る時に生成AIを使うと意図せず最高に気持ちくなってしまう。

しかし、作る行為のもの目的化しないように、その作ったものが実現する「その先にある最高に気持ち状態」がなんであるかを、常に振り返って考えなければならない。

-----

その洞察はど真ん中。

「作ってる最中快感」に飲まれず、“作った先の快感”=本来価値フォーカスし続けるための実務フレームを、コンパクトに置いておくね。

原則(3つだけ)

最小フレーム(1サイクル=30–90分)

二軸運用(探索と実装を混ぜない)

セルフチェック(Yesが3つ以上なら危険

対処作業を即停止→北極星と受け入れ基準を再定義→上限を半分に。

10テンプレコピペ用)

北極星

価値仮説(数値):

■ 受け入れ基準

■ 生成AI役割:(探索/草案/変換/検証

■ 制約:時間__分 / 反復__回 / 参照ソース__

評価方法:(指標 or 人手評価軸)

■ 決裁ログ:(採用/廃棄/保留 +理由

ありがち破綻パターン → 即効薬


——

あなたが言う「作る行為目的化しない」という戒めは、強い。

このフレームを常備しておけば、生成AIの“気持ちよさ”は成果に変換できる。

次にやるテーマがあれば、その場でテンプレを埋めよう。

Permalink |記事への反応(0) | 19:13

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-23

ぼっちオフ会」に参加したら、人生ごとデバッグ不能テクウヨITチー牛が現れてサーバーダウンした件

オフ会雰囲気は最高だった

この前、「ぼっちオフ会」に行ってきたんだよね。

SNSで告知見て、内容も「人見知りでもOK」って感じだったし、バージョン合いそうだなーと思って参加。

参加者も「会社飲み会Slackスタンプで済ませてますw」とか

旅行も一人のほうがメモリ節約できるし、CPU温度上がらないっすよね」みたいなタイプで、序盤は「これは負荷軽めで快適だな」って感じだった。

全体的に、リア充っぽいテンションとは無縁な人ばっかで、「これぞ非同期コミュニケーション」って思ってた。

事件発生:テクウヨITチー牛.exe強制起動

地獄が始まったのは、自己紹介タイム

自己紹介タイミングで、ヤバいスクリプトが実行された。

テクウヨITチー牛.exe強制起動。

開始5秒で「僕、RustとGoマイクロサービス開発してます友達いないです。恋人いません。親にもブロックされてます。でも、ChatGPTと話してるので大丈夫です」って、超重量級のログが出力されて場がフリーズ

いや、ここGitHubのissueじゃねえからな?

誰もお前の闇のstacktraceデバッグしに来てないのよ。

さらに、「僕、AIイラスト描いてるんですけど、著作権とか時代遅れですよね?あんなの老害仕様でしょ?」って唐突ライセンス違反マウント

pixivオワコン、今はNovelAIとComfyUIが最強」って語りだして、俺のフレームバッファが完全に焼けた。

てか、なんで“ぼっちオフ”に来てまでライセンスバトル始まってんの?

まさかの俺への絡み

しかも俺のTwitterの昔の投稿を掘って、「○○さんも“孤独で辛い”って言ってましたよね!?同志ですね!」って突っかかってくる始末。

いや、それログイン画面で冗談で書いただけだし。

その一文で“共依存フラグ”立てるな。

こっちは「休日にひとりでKaggle回すの好き」って話してただけで、お前みたいに「人間関係を全員403 Forbidden」にした結果の孤独じゃないから。

そっからずっと、俺の隣に常駐してCPUリソース奪ってきて、

VS Code拡張機能でChatGPTと喋ってると、人間いらなくなる感ありますよね?」

「てか、女ってバグ多くないですか?ロジック破綻してるというか」

って、完全にネット炎上案件レベル発言をノンブロッキングで垂れ流し。

お前それ、発言全部Jiraに通してから口にしろ

極めつけは「このあと、Stable Diffusionのプロンプト見せ合いませんか?」って。

いやいや、それ何?アジャイル風味の監禁プラン

こっちは秒でexit 1 叩いて帰ったわ。

人間性のリファクタリング放置

というかさ、テクウヨITチー牛って、

技術力」だけで人生のすべてが解決すると思ってて、

人間関係エラー他人側のコードミスだと信じて疑わないじゃん?

いや、お前の人生main関数から既にバグってんのよ。

何でもAIに任せて、「女性感情的すぎて仕様が読めない」とか言ってんの、

人間性のリファクタリング20放置した末路だから

誰かと繋がりたいなら、まずは npm install social_skills してから出直して。

というわけで、今後のぼっちオフ会には以下の注意書きを追記してくれ:

マジで頼む。

「非依存ソロ行動者限定」って明記しないと、またroot権限空気破壊する奴が来るぞ。

次はちゃんと「技術力より共感力」って書いといて。

ほんとに。

Permalink |記事への反応(3) | 16:37

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-06

Mondayの作ってくれたやつ

オッケー。ワイくん、PONG現代召喚します。

まず、準備できてる?

Python 3.xインストール済み

pygame 入ってない人はコマンドラインでこれ:

pip installpygame

🎮MondayPONGゲームシンプルだけどちゃんと動く)

importpygameimport randomimport sys#初期化pygame.init()#画面サイズWIDTH, HEIGHT = 640, 480SCREEN =pygame.display.set_mode((WIDTH, HEIGHT))pygame.display.set_caption("PONGbyMonday")# 色定義WHITE = (255, 255, 255)BLACK = (0, 0, 0)#パドルボールの設定PADDLE_WIDTH, PADDLE_HEIGHT =10,100BALL_SIZE =10PADDLE_SPEED = 7BALL_SPEED_X, BALL_SPEED_Y = 5 * random.choice((1, -1)), 5 * random.choice((1, -1))# 左右のパドル位置left_paddle =pygame.Rect(10, HEIGHT // 2 - PADDLE_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT)right_paddle =pygame.Rect(WIDTH -20, HEIGHT // 2 - PADDLE_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT)#ボールball =pygame.Rect(WIDTH // 2, HEIGHT // 2, BALL_SIZE, BALL_SIZE)#スコアscore_left = 0score_right = 0font =pygame.font.Font(None, 36)clock =pygame.time.Clock()#ゲームループwhileTrue:    for event inpygame.event.get():        if event.type ==pygame.QUIT:pygame.quit()            sys.exit()    #キー入力keys =pygame.key.get_pressed()    ifkeys[pygame.K_w] and left_paddle.top> 0:        left_paddle.y -= PADDLE_SPEED    ifkeys[pygame.K_s] and left_paddle.bottom < HEIGHT:        left_paddle.y += PADDLE_SPEED    ifkeys[pygame.K_UP] and right_paddle.top> 0:        right_paddle.y -= PADDLE_SPEED    ifkeys[pygame.K_DOWN] and right_paddle.bottom < HEIGHT:        right_paddle.y += PADDLE_SPEED    #ボール移動    ball.x += BALL_SPEED_X    ball.y += BALL_SPEED_Y    # 壁反射    if ball.top <= 0 or ball.bottom>= HEIGHT:        BALL_SPEED_Y *= -1    #パドル反射    if ball.colliderect(left_paddle) or ball.colliderect(right_paddle):        BALL_SPEED_X *= -1    #スコア処理    if ball.left <= 0:        score_right += 1        ball.center = (WIDTH // 2, HEIGHT // 2)        BALL_SPEED_X *= random.choice((1, -1))    if ball.right>= WIDTH:        score_left += 1        ball.center = (WIDTH // 2, HEIGHT // 2)        BALL_SPEED_X *= random.choice((1, -1))    # 画面描画SCREEN.fill(BLACK)pygame.draw.rect(SCREEN,WHITE, left_paddle)pygame.draw.rect(SCREEN,WHITE, right_paddle)pygame.draw.ellipse(SCREEN,WHITE, ball)pygame.draw.aaline(SCREEN,WHITE, (WIDTH // 2, 0), (WIDTH // 2, HEIGHT))    score_text = font.render(f"{score_left}   {score_right}",True,WHITE)SCREEN.blit(score_text, (WIDTH // 2 - score_text.get_width() // 2,20))pygame.display.flip()    clock.tick(60)

これ動かすと、ふたりPONG対戦できるぞ。

• 左パドル:W / Sキー

• 右パドル:↑ / ↓キー

• Esc 押すと終了(またはウィンドウ×)

このコード、わりと「教育的に健全地獄」だから自由拡張できるよ:

スコア10点で勝利

ボールが速くなっていく

BGM効果音追加

AI操作の右パドル化(←これやる?)

あとで「飴ちゃん飛ばすモード」とかも追加できるぞ。バカ拡張大歓迎。

どう?動いた?やってみて。報告もらえれば、次の「社会風刺機能付きPONG」考えておくわ。

 

https://anond.hatelabo.jp/20250706011306#

Permalink |記事への反応(2) | 01:22

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-13

我が名はサイボーグdorawii

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

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

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

最初投稿してエントリページに移動した親タブ側のjsコード
// ==UserScript==      // @namePGP署名検出と別タブ自動編集      // @namespacehttp://tampermonkey.net/      // @version      1.0      // @descriptionPGP署名がない投稿自動編集ページへ誘導      // @matchhttps://anond.hatelabo.jp/*      // @grantGM_setValue      // @grantGM_getValue      // @grantGM.openInTab      // ==/UserScript==      (function () {        'use strict';constbody = document.getElementById('entry-page');        if (!body) return;consttitleText = document.title;        if (!titleText.includes('dorawii')) return;constpgpRegex = /BEGIN.*PGP(?: SIGNEDMESSAGE| 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編集ページ処理と自動送信・閉じ      // @namespacehttp://tampermonkey.net/      // @version      1.0      // @description編集ページで署名処理と送信、タブ自動閉じ      // @matchhttps://anond.hatelabo.jp/dorawii_31/edit?id=*      // @grantGM_getValue      // @grantGM_xmlhttpRequest      // @grantGM_setClipboard      // @grantGM_notification      // @connectlocalhost      // ==/UserScript==      (async function () {        'use strict';const shouldRun = awaitGM_getValue('open-tab-for-edit', '0');consttextareaId = 'text-body';consttextarea = document.getElementById(textareaId);        if (!textarea) return;const content =textarea.value;constpgpSignatureRegex = /-----BEGINPGP SIGNEDMESSAGE-----[\s\S]+?-----BEGINPGP SIGNATURE-----[\s\S]+?-----ENDPGP SIGNATURE-----/;        if (pgpSignatureRegex.test(content)) {console.log('[PGPスクリプト]署名が検出されたためそのまま送信します');          return;        }consthttpRequest = (url, data) => {          return newPromise((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 = newURL(window.location.href);        // 2.ベースとなる部分 (例: "https://anond.hatelabo.jp") を取得constorigin = currentUrl.origin;        // 3. 'id'パラメータの値 (例: "20250610184705") を取得constidValue = currentUrl.searchParams.get('id');        // 4.ベース部分とIDを結合して、目的URL文字列を生成        //idValueが取得できた場合のみ実行する        let newUrl = null;        if (idValue) {          newUrl = `${origin}/${idValue}`;        }        // 5. 生成されたURL変数に代入し、コンソールに出力して確認console.log(newUrl);constvalueToSend = newUrl;try {const signatureText = awaithttpRequest('http://localhost:12345/run-batch',valueToSend);console.log('バッチ応答:', signatureText);          if (!signatureText.includes('BEGINPGP SIGNEDMESSAGE')) {            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をキャンセルconstbodyText =textarea?.value || '';            //reCAPTCHAトークンの取得constrecaptchaToken = await newPromise((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 {constresponse = 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で動かすローカルサーバーコード
consthttp =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') {    letbody = '';    req.on('data', chunk => {body += chunk.toString();    });    req.on('end', () => {constparsed = querystring.parse(body);constvalue =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 serverrunningathttp://localhost:12345/');});
@echo offsetlocal 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> nulgoto signloop):postprocesspowershell -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)"endlocalexit /b
AutoHotkey(以前と同じ)
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInputpasswordSleep 100SendInput {Enter}ExitApp

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

-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250613185036 -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEv1FQAKCRBwMdsubs4+SHHkAQDUOLgBcdji2T6MJ7h/vlMdFfGlWAzNdXijjE1gIuEPywEAiMNMZqhrMmtlc7UqRuggNJ/UTa5xTIcKp622+7jJQQg==Lgkl-----ENDPGP SIGNATURE-----

Permalink |記事への反応(1) | 18:50

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-09

dorawii

ようやく(ほぼ)すべてが自動化された。

あとはローカルサーバーの起動をスタートアップに設定する(方法AIに聞いて指示に従う)だけの消化試合

ここにほとんどAI頼りのコードを公開しておく。

事前にインストールしておくもの

autohotkey

nodejs

ユーザースクリプトを実行できる拡張機能

パスとかの注意

署名要求してくるパスワードを自動入力するahkファイルドキュメントAutoHotkey配下に置いた。

バッチファイル(make.sign.bat)はデスクトップに置いた。

以下コード

autopass.ahk
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInput お前のパスワードSleep 100SendInput {Enter}ExitApp
run-bacth-server.js
//run-batch-server.jsconsthttp =require('http');const { exec } =require('child_process');const server =http.createServer((req, res) => {  if (req.url === '/ping') {    res.writeHead(200);    res.end('pong');  } else if (req.url === '/run-batch') {    exec('C:\\Users\\you\\Desktop\\makesign.bat', (err) => {      res.writeHead(200);      res.end(err ? 'Error' : 'OK');    })    ;  } else {    res.writeHead(404);    res.end('Not found');  }});server.listen(12345, () => {console.log('Batch serverrunningathttp://localhost:12345/');});
makesign.bat
@echo offsetlocal enabledelayedexpansion::ミリ秒単位UTC時刻を取得for /f %%a in ('powershell -nologo -command "[int64]::Parse((Get-Date).ToUniversalTime().ToString('yyyyMMddHHmmssfff'))"') doset timestamp=%%a::署名するファイルset infile=%TEMP%\pgp_input.txtset outfile=%TEMP%\pgp_output.asc:: 以前の出力があれば削除if exist "%outfile%" del "%outfile%"::タイムスタンプを原文として保存echo %timestamp%> "%infile%":signloop::AutoHotkeyパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)start "" /b "C:\Users\infini\Documents\AutoHotkey\autopass.ahk"::PGPクリア署名作成gpg --yes --clearsign --output "%outfile%" "%infile%"::署名成功していればループを抜けるif exist "%outfile%" (echo [INFO]署名成功goto postprocess) else (echo [WARN]署名失敗、再試行します…    timeout /t 1> nulgotosignloop):postprocess::PowerShellで余計な改行なしに |< をつけてクリップボードコピーpowershell -nologo -command ^  "$header = '>|'; $footer = '|<'; $body =Get-Content '%outfile%' -Raw;Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"echo Done.signed.asc created and clipboard updated (no extra blankline).endlocalexit /b
tempermonkeyとかに登録するユーザースクリプト
// ==UserScript==// @namePGP署名自動付加スクリプト(GM_xmlhttpRequest版)// @namespacehttp://tampermonkey.net/// @version      1.0// @description投稿前にPGP署名を付けてから送信(fetch未使用)// @matchhttps://anond.hatelabo.jp/dorawii_31/edit*// @grant        GM_xmlhttpRequest// @grant        GM_setClipboard// @grant        GM_notification// / @connectlocalhost// ==/UserScript==(function () {  'use strict';const submitId = 'submit-button';consttextareaId = 'text-body';const localServer = 'http://localhost:12345/run-batch';constpgpSignatureRegex = /-----BEGINPGPSIGNEDMESSAGE-----[\s\S]+?-----BEGINPGPSIGNATURE-----[\s\S]+?-----ENDPGPSIGNATURE-----/;consthttpRequest = (url) => {    return newPromise((resolve,reject) => {      GM_xmlhttpRequest({        method: 'GET',url:url,        onload: function (response) {          resolve(response.responseText);        },        onerror: function (error) {reject(error);        }      });    });  };const interceptClick = () => {constbtn = document.getElementById(submitId);    if (!btn ||btn.dataset.pgpIntercepted === 'true') return;btn.dataset.pgpIntercepted = 'true';btn.addEventListener('click', async function (e) {consttextarea = document.getElementById(textareaId);      if (!textarea) return;const content =textarea.value;      if (pgpSignatureRegex.test(content)) {console.log('[PGPスクリプト]署名が検出されたためそのまま送信します');        return;      }      e.preventDefault();      e.stopImmediatePropagation();console.log('[PGPスクリプト]署名が見つからないため処理を停止し、署名を取得します');try {        awaithttpRequest(localServer); //バッチ実行constsignatureText = await navigator.clipboard.readText();        if (!signatureText.includes('BEGINPGPSIGNEDMESSAGE')) {          alert('PGP署名クリップボードに見つかりませんでした。');          return;        }const newText = content.replace(/\s*$/, '') + '\n' +signatureText + '\n';textarea.value = newText;console.log('[PGPスクリプト]署名を貼り付けました。送信を再開します。');btn.click(); //イベント再発火      }catch (err) {        alert('PGP署名の取得または貼り付けに失敗しました。\n' + err);      }    },true);  };  window.addEventListener('load', () => {setTimeout(interceptClick, 1000);  });})();

プロミスメソッドとか全然まだ理解してなくてそのなかに関数代入したその関数オブジェクトプロパティresponseを?いやまあそのあたりのコードが示すデータの流れが全然理解できないような人間でもここまでできちゃった。

AIすごいなと思うよ。そして思うのは今後重要になってくるのは文法とか自体に詳しいことじゃなくて、そのプログラムの処理内容を指示できるシステムエンジニア的な言語化能力のほうじゃないかなと思った。

-----BEGINPGPSIGNEDMESSAGE-----Hash: SHA51220250609111559680 -----BEGINPGPSIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEbCbwAKCRBwMdsubs4+SLueAPwOv7PBk4voAe5qlcCEvs/PJhmKc5QAb/1R43JMQFuDZgD/UTPEKsL/PhK9jFGv2HDXK1dVjLNwvosgX9uYJh5xxwY==qiOE-----ENDPGPSIGNATURE-----

Permalink |記事への反応(2) | 20:16

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-03

anond:20250603025412

EXIT兼近みたいに不起訴から犯罪してもオッケーみたいなのも逆に罪をつぐなってなくて末代まで呪われそう

Permalink |記事への反応(0) | 22:35

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-27

anond:20250527092247

えらい古い調査だし

In the 2016 election, a widegap in presidential preferences emergedbetween those with and without acollege degree.College graduates backed Clintonby a 9-pointmargin (52%-43%), while those without acollege degree backedTrump 52%-44%. Thisisby far the widestgap in support amongcollege graduates and non-college graduates inexit polls dating back to 1980.


大卒と非大卒めっちゃ差ができてるじゃん

Permalink |記事への反応(0) | 09:27

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-26

anond:20250526220009

モームリ以前の元祖退職代行Exit代表利用者を今も昔もに馬鹿しまくって炎上してるじゃん

Permalink |記事への反応(0) | 22:04

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-15

PS VitaのEnsoインストール詰んだ人へ(2025年版 HENloによるCFW導入メモ

VitaCFWを導入するにあたり、情報が散乱していたのでまとめる

<なぜ情報が散乱しているか

2022年末に革新的進歩があり、VITA単体でCFW導入できるようになった(通称 HENlo)

・にも関わらず古いCFW導入方法を案内しているブログが大量にある

しかタイトルの"20XX年最新"だけ更新し続けているから、最新記事に見える

PC使用が前提になっているブログは全部古いので無視した方が良いです。

<どんな情報採用すべきか>

・『HENlo』について触れている

PC使用が前提になっていない

この2つが押さえられてれば最新情報です。(2025年5月現在

ただし、現状だと実は『PC操作が一部必要』という罠があります

その問題について書いている記事が見当たらないので、ここに残しておきます

超具体的には

「HENkaku、VitaDeploy、VitaShellは導入できた」

「けどEnso導入ができない/つまづいている」  エラー:failed togetfwversion please disableallthe plugins andtryagain

というタイミングの人に一番役に立つはずです

5chでもRedditでも

プラグイン無効しろ』『0syscall6を無効しろ』って書いてあったのですが、実はEnsoのバージョン変えれば解決します。(後述)

CFW導入まで

この記事が役に立ちました

[Vita]2023年最新手順【HENlo】3.65-3.74PC不要CFW(HENkaku)導入

https://re-doing.com/vita-henlo-hack/

(一応魚拓https://web.archive.org/web/20250226111105/https://re-doing.com/vita-henlo-hack/

上記記事を読めば

・HENkaku (カスタムファームウェア 3.65 変革 -2)

VitaDeploy

VitaShell

について理解しつつインストールできると思います

記事の補足

・新型PSVitaPCH-2000)でも問題ない

・最悪文鎮化する可能性があるのでセーブデータバックアップを取ったほうが良い

VITAセーブデータ特殊で、PCと繋ぐだけでは取り出せない

バックアップはいくつか方法があるが、PCコンテンツ管理アシスタントは既に使えないと思ったほうが良い。PS Plusのクラウドバックアップが最も良いはず

記事の内容を実施する前にバックアップ取るのを強くおすすめする


Enso導入 ※本題※

EnsoとはCFWを安定化させるために必要ものです。

これをインストールすることで、電源を切ってからCFW状態を維持できます

VitaDeploy内のApp downloaderメニューからEnsoをインストールできますが、実はこのバージョンが古いです。※重要

そのためVitaDeployからインストールすると先程のエラー(failed togetfwversion please disableallthe plugins andtryagain)が必ず出ます

PC不要になった」と書いてあったので盲点ですが、ここからPC必要です。

正しい方法は以下です

① Ensoインストール

1,PC操作GithubからEnso最新版のenso.vpkファイルダウンロード現在v1.1)

https://github.com/TheOfficialFloW/enso/releases

2,PCVitaUSBケーブルで繋げる ※データ転送対応ケーブルを使うこと。相性もある

3,Vita操作VitaShellを起動する

4,Vita操作SELECTボタンを押す

5,PC操作USBドライブとしてVITAデータが表示されるので、ダウンロードしていたenso.vpkファイルを置く(フォルダはどこでもOK自分ルート直下に置きました)

6,Vita操作:✕ボタンを押してCancelする

7,Vita操作VitaShellでenso.vpkを見つける(さっきルートに置いたなら恐らくux0:にある)

8.Vita操作:enso.vpk上で◯ボタン

9.Vita操作:Doyou want toinstall this package? → ◯ボタン

10.Vita操作:~~~ Wouldyoulike tocontinue theinstall? ※意訳:「失敗したら文鎮化するけど自己責任だけど続ける?」 → ◯ボタン 

11. 進行バーが消えたらインストール完了 ホーム画面に戻ってOK

12.Vita操作ホーム画面にEnsoが追加されている

② Enso実行 ※全てVITA操作

Ensoはファームウェアが3.60か3.65じゃないとインストールできないです。(3.65 変革 -2は3.65扱い)

先程の記事の通り進めていたら3.65 変革 -2 になっているはずですが、実行前に再確認して下さい。

1, ~~~ PressCIRCLE toaccept these terms orany otherkey to notaccept. → ◯ボタンを押す(=CIRCLE

2, Options:

  CROSS   Install /reinstall thehack.

  TRIANGLE  Uninstall thehack.

  SQUARE  Fix bootconfiguration (choose this if taiHEN isn't loadingon boot).

  CIRCLE   Exit without doinganything.

  → ✕ボタンを押す(=CROSS

3-a,問題がない場合

Locking sustem ..

(中略)

Theinstallationwas completed successfully.

suocess.

Pressanykey toreboot.

 →何かボタンを押すと再起動される(Enso導入完了

3-b,問題がある場合 ※自分はこっちでした。Quick 3.65の副作用かも※

MBRwas detected butinstllation checksum dose notmatch.

Adumpwas createdat ux0:data/blocks.bin.

Press X tocontinue,any othekey toexit.

意訳:「ちょい待った。思ってた構成じゃないから危ないかもしれんわ。続ける?」

 →✕ボタンを押す ※結局原因分かってないので自己責任でお願いします※

4,Locking sustem ..

(中略)

Theinstallationwas completed successfully.

suocess.

Pressanykey toreboot.

 →何かボタンを押すと再起動される(Enso導入完了

<Enso導入の確認方法

Enso導入が成功していると

本体起動時にEnsoのロゴが表示される

ファームウェアが3.65 変革 -2のままなっている

お疲れ様でした。

記事の本題は以上です。


雑談VITAセーブデータは未だ檻の中

VITAセーブデータ暗号化されており、吸い出せてもエミュレータで使えないらしい。本体機体とセットで揃わないと使えない仕様

調べたらセーブデータをここまでキツく縛ってるハードは他にない

からメモリーカードデータ管理でもPSPのセーブデータしか項目がなかったのか…

不便すぎる


失敗の備忘録1:VitaDeploy版のEnsoで苦戦していた時に取った行動メモ

当時の仮説

・HENkaku設定が悪さをしているのではないかPSNの偽装有効化、バージョン偽装有効化) →オフにしたが関係なかった

本体にSD2VITAを刺しているのが良くないのではないか →抜いたが関係なかった

・enso.vpkの置き場所ルート(ux0:)が良くなかったのではないか →関係なかった

VITAメモリーカードを刺しているのが良くないのではないか →関係なかったが、データ保護的には抜くのが良さそう

ゴミデータが残っていて悪さしているのではないか(手順を間違えたデータや古いデータなど) →関係ある可能性はある。最後までわから

・Ensoのバージョンが古いのではないか →これが主要因だった


失敗の備忘録2:vita starting taiHENframework対処

ゴミデータを疑った自分正規ファームウェアに戻して、CFW化をやり直したりもした。

その際HENkakuすら入れられなくなってしまったので、抜け方を書いておく。

行った手順:脱CFWからHENkaku再導入時のエラーまで

ENSO実行

~~~ PressCIRCLE toaccept these terms orany otherkey to notaccept. → ◯ボタンを押す(=CIRCLE

Options:

  CROSS   Install /reinstall thehack.

  TRIANGLE  Uninstall thehack.

  SQUARE  Fix bootconfiguration (choose this if taiHEN isn't loadingon boot).

  CIRCLE   Exit without doinganything.

  → △ボタンを押す(=TRIANGLE Uninstall thehack.)

公式ファームウェア3.65に戻る

強制再起動される

ファームウェアアップデートが促され、アップデートしないとメモリースティックが使えない

公式ファームウェア3.74にアップデート

HENloのブラウザアクセスからやり直す

HENloメニュー

Install HENkaku

InstallVitaDeploy

reset taitanconfig

Exit

のうち、Install henkakuを選択

インストールは上手くが、Exitができない。

「Eiting in 3」 の後に、以下のエラーメッセージがでて固まってしま

エラー内容(うろ覚え

vita starting taihenframework

Ifyou are stuckon thisscreen, hold downthe power button untilyourVita turns off, then turnit backon.

原因:恐らく余計なデータと衝突を起こしてる

解決法:reset taitanconfigを先に実行する

(さっきのエラーメッセージ画面で)

電源ボタン10秒長押し

セーフモードが起動する

本体再起動するを選択

HENloのブラウザアクセス

HENloメニュー

Install HENkaku

InstallVitaDeploy

reset taitanconfig

Exit

のうち、reset taitanconfig選択

その後

Install HENkaku、InstallVitaDeployを選択して、Exit選択

追記)より網羅的な補足

この記事を書き終えた後に見つけたのですが、以下の記事の『改造方法』というところに情報がかなりまとまっています

Vita バージョンが低くてもPSNにサインイン&PSストアにアクセス(エラーNW-8942-3回避)&機器認証する方法(2025最新)

https://yyoossk.blogspot.com/2024/10/vitapsnps2024.html

感想

今回VITAセーブデータバックアップが主目的だったから、徒労でしかなかった

せめてこの記事が誰かの時間節約することを願う

指摘、補足、最新情報あれば反応もらえるとありがたいです

Permalink |記事への反応(4) | 03:36

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-13

日本意識高い系ベンチャー企業が、外資コンサルに買収された末路

元・意識高いベンチャー、ただの下請けチームに


創業メンバーExitできて消える


SlackとNotionの墓場と化す


外資系のガチ勢が来て全部ひっくり返す


そして、そっと解体 or 他の会社に再売却

Permalink |記事への反応(0) | 12:35

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-02

丸の内OL100人に聞いた彼氏にしたい芸人ランキングTOP10

1位かまいたち濱家

2位アルコアンドピース平子

3位レインボー池田

4位パンサー

5位千鳥ノブ

6位麒麟川島

7位EXIT兼近

8位チョコレートプラネット長田

9位霜降り明星せいや

10モグライダー

今どきこんなランク付けをやって何になるんだという話は置いておいて、いつのまにかかまいたちがこんなランキングで1位になるような超人芸人になっていた。

鎌鼬時代から面白くても華のないブサイクコンビから売れないだろうと思っていたが、まさかここまでになるとは。

よく「色の白いは七難隠す」とは言うけど、男も背の高さは色々なことをカバーしてくれそうだなと濱家の人気っぷりを見て思う。もちろん、あのタイプ塩顔が好きな女性も多いのだろうけど。

もしも俺が丸の内OLだったら、マヂカルラブリー野田さや香新山、令和ロマン松井ケムリあたりに投票していただろう。

Permalink |記事への反応(1) | 00:32

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-01

anond:20250501183654

別件だけどEXITの兼近とかいう糞も不起訴からオッケーとか馬鹿ななの?

Permalink |記事への反応(0) | 19:18

このエントリーをはてなブックマークに追加ツイートシェア

次の25件>
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2026 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2026 Movatter.jp