
はてなキーワード:testとは
Hash: SHA512
https://anond.hatelabo.jp/20251001170238#
iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaNzgHwAKCRBwMdsubs4+
SEkQAP46nKlZ/cLh0l2iM/XUrKy+sk/xSI2/DOwCP2oAPrDJ2AD+JAitesEA1bdQ
/aHw2ahphzPH5LZqYcD5i9f7RlrsRQo=
=1UF+
元の主張は「人手不足ではなく“給料不足”。時給を3,000円にすれば学生・主婦・高齢者で十分まかなえる。移民は不要」という趣旨ですが、これは現実の日本経済と制度・人口動態を正確に踏まえていません。
実務の現場では、①国内の可動労働力の“量”が足りない、②制度上フルに働けない層が多い、③一部の産業は価格規制や労働時間規制で“賃上げだけでは人が埋まらない”、④それでも需要は拡大している――ために、たとえコスト高でも外国人材を雇わざるを得ない、というのが実態です。
日本の15~64歳の生産年齢人口は長期低下トレンドで、足元まで減少が続いています。
労働需給はこの「分母」の制約を強く受けます。賃上げで労働参加が多少増えても、人口要因は跳ね返せません。
日本銀行や総務省系の統計系列でも、働き手の確保難が慢性化していることが示されています。
加えて、有効求人倍率は総合で1倍超を維持(=仕事の数が人の数を上回る)。産業別では建設・介護・運輸・宿泊飲食などで特に逼迫が続きます。
学生:在留資格(留学)で働けるのは学期中28時間/週が上限。そもそもフルタイムの穴は埋められません。
既婚女性:社会保険の“年収の壁”(106万円・130万円など)が就業調整を誘発。政府自身が壁対策を進めていること自体が、制度が労働時間拡大のボトルネックである証拠です(2025年法改正で要件撤廃方向)。
高齢者:在職老齢年金の仕組み( earningstest )は一定の閾値で年金が減るため労働供給を抑制し得る、との実証研究が内閣府エコノミストから出ています。体力面の制約も大きい。
つまり、“賃金さえ上げればみんなフルタイムで働く”という前提がまず成り立ちません。
介護:介護報酬という公定価格の枠内で賃金原資が決まるため、事業者単独の賃上げ余地には限界があります。一方で必要人数の見通しは2026年度+約25万人、2040年度+約57万人の不足と厚労省が公表。足元から構造的な人手不足です。
物流(トラック):2024年の残業上限規制で運転時間そのものが物理的に縮小(いわゆる「2024年問題」)。賃上げしても“時間の空白”は埋まらず、輸送能力は落ちます。
建設:国土交通省の調査でも技能労働者は恒常的に不足。工期や安全規制の制約下で、賃上げだけでは直ちに人が湧いてくる構造ではありません。
インバウンドは2024年にコロナ前を超えて過去最高を更新、2025年も過去最速ペース。
宿泊・飲食・小売・交通で人員需要は増え続けています。国内で必要人数が増える一方、供給側の人口・制度制約は緩まない――ミスマッチが拡大しています。
「移民(外国人材)は安い」というのも誤解です。企業側には日本人採用にない追加コストが確実に乗ります。
代表例:
手続・支援コスト:在留資格(特定技能)で雇う場合、受入企業には生活・日本語・行政手続の支援10項目が義務化され、外部の登録支援機関へ委託するなら1人あたり月2~3万円程度の委託料が相場と公的団体が解説。
初期費用:採用・渡航・住居手配・日本語/技能訓練などの初期費用は1人70~100万円程度を見込むケースが一般的に紹介されています(実務ガイド)。
コンプライアンス・監督:技能実習/特定技能は監督官庁・監理団体の関与が強く、違反時のリスクも高い(制度目的や保護規定も法令で明記)。
つまり、日本人採用より“高コスト”で“手間も大きい”のが普通です。
それでも企業が外国人材を選ぶのは、国内だけでは必要数を確保できないからにほかなりません。
政府もこの現実を踏まえ、特定技能の対象分野拡大・受入れ拡大方針を明確にしています。
公費・補助で狙い撃ち賃上げをしても、介護のように公定価格産業では結局“国民負担”(介護保険料や税)に跳ね返ります。
物流は労働時間規制がボトルネック、建設は養成に時間がかかる。
加えて、女性・高齢者の就業拡大は政府も推進中ですが、制度壁の撤廃や保育・介護の家事外部化には時間がかかり、直近の欠員は埋まりません。
MHLW白書も、近年の人手不足は「長期的・粘着的(persistent)」だと総括しています。
人口の分母が縮んでいるので、賃上げだけでは全体の穴は塞がらない。
外国人採用は日本人より“高コスト”だが、それでも需要を満たすために必要。
「時給3,000円にすれば国内だけで回る」は、人口・制度・規制・需要の四つ巴の現実を見落としています。
現場では、外国人採用は“安いから”ではなく、“高コストでもそれしか選択肢がない場面が増えているから” 進むのです。
日本の賃金水準引上げや制度改革(年収の壁の撤廃等)は重要で、同時並行で進めるべきです。ただ、それらの効果が出るまでのタイムラグと、そもそもの人口制約を考えれば、移民・外国人材受入れ、国内の省人化投資、労働参加促進の“三本立て”以外に現実解はありません。
必要なら、あなたの想定する具体的な業種・地域を教えてください。その条件で、どれだけ国内人材で埋められ、どこから外国人材が不可欠になるか、数字で試算します。
政府「女性に子供を産ますには、どうしたらいいの…」 [782667645]
https://greta.5ch.net/test/read.cgi/poverty/1757688660/
ttps://greta.5ch.net/test/read.cgi/poverty/1757688660/190
190番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 5b3d-W5w5)sage 2025/09/13(土) 04:08:17.05ID:r67/HxiM0
女性の場合セックスを不特定多数とする方が、社会に出て働くより給料が高くなればいい
この流れをもう少し強化し、売春の合法化とセックス文化の形成を進める
男性が収入で脚切りをされるのなら、女性はセックスをより多くする人がモテるように
セックスが無ければ男女共に惚れるなんてことはありえない、そこから結婚にも繋がらない
セックスできる場の提供(公民館や専用施設でもセックスしていい場所を作る)
セックスしていないと生きていけない、セックスをある程度していればそこそこ裕福に生きていけるような社会であれば調和が取れる
ttps://greta.5ch.net/test/read.cgi/poverty/1757688660/192
192番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 5b3d-W5w5)sage 2025/09/13(土) 04:21:44.44ID:r67/HxiM0
今の社会は女性は自分が結婚市場のどの立ち位置にいるかランクが分からない
男性の高い高いランクと自分が釣り合っていると錯覚し、それが男女共に不幸を呼んでいる
また、女性は男性に優しくするとレイプされるとの危険性から男性に親切にすることを控えている傾向がある
また今のフェミニズムは、実際には向かう方向性を失っているのにも関わらず、今後女性の一方的なファンタジーが夢物語のように展開されると今も信じ続けられている
ttps://greta.5ch.net/test/read.cgi/poverty/1757688660/197
197番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 5b3d-W5w5)sage 2025/09/13(土) 04:31:01.10ID:r67/HxiM0
そもそも男性側が優しさや女性相手に気を使うのは、その女性とセックスできる可能性があると男性側が思うからだ
男性があらゆる努力を行うのは、それが社会的価値の向上に繋がり、女性に選ばれる確立が高くなるからだ
セックスは、すればするほどお互いの親密度が高くなる行為である
日本はセックスを軽視し過ぎた、そして、女性とセックスが出来るなら、と、女性の言い分を通し続けてきた
結婚はセックス許可証のようなものである。セックスレスが離婚の理由になるのだから
セックスするために男性側は人生の大多数のものを捨てなければならない。人権を捨てなければならない
そんな墓場に首を繋がれる契約、その代わりにセックスを「させてあげますよ」としているのが今の女性の言い分である
1度子どもが出来てしまえば、子どもを脅しに使い、養育費の無限搾取を行える(それが実際に子どもに使われる事は限らないのに)
ttps://greta.5ch.net/test/read.cgi/poverty/1757688660/201
201番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 5b3d-W5w5)sage 2025/09/13(土) 04:45:52.59ID:r67/HxiM0
ならば現実をどう変えていくか
女性が男性の性欲を満たして余りあるようにしなければ釣り合わない社会に
女性でセックスできる人口は限られてくる。妊娠でセックスが出来ない時期の人を除くと、もう既に男性余りが起こる。そして年齢が高くなると、男性側が「この人とセックスしたい」と希望する事も少なくなる
望まれない男性とセックスを一定回数、不特定多数の人と一定人数する
そうすれば毎年1000万円を最低支給、生涯支給されるようにすればいい
人数や頻度や回数によって段階的に支給すれば良いと思う
セックスの計測時期は排卵の適齢時期で考え、妊娠できる年齢までにセックスの基本的なことを教え、セックスをすることをメイン収入として、後は研究機関や会社に入社、セックスしながら雑事をこなすような生活であればいい
ttps://greta.5ch.net/test/read.cgi/poverty/1757688660/202
202番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 5b3d-W5w5)sage 2025/09/13(土) 04:50:48.29ID:r67/HxiM0
参政党はもう既にロリコンの許容や弱者の立場の男性の耳障りの良い発言をしている
だからこそ本当に危ない
ttps://greta.5ch.net/test/read.cgi/poverty/1757688660/207
207番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 5b3d-W5w5)sage 2025/09/13(土) 05:15:38.65ID:r67/HxiM0
勿論避妊の技術をもっと発展させ、男女共に身体により少ない影響で避妊が出来る技術を開発しなければならない
そして性病の撲滅にも全力で取り組まなければならない
これを徹底的に行なったうえで、国民全員、男女共に長期間避妊ピルを配布し、全力でセックスさせる
このようにすれば望まない妊娠は防げるし、政府の側にとっても、効力解除ピルを配布するのに制限をするなどで人口調整機能が働いて将来の人口爆発も防げる
男性はセックスした人の中から、この人なら生涯添い遂げても良いという人を選べば良い
女性も充分にセックスをしていれば収入は申し分ないし子育て費用もセックスで稼げているので、男性に収入を求めることなく経済的自立が出来る
ttps://greta.5ch.net/test/read.cgi/poverty/1757688660/210
210番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 5b3d-W5w5)sage 2025/09/13(土) 05:29:52.35ID:r67/HxiM0
そもそもセックスが不浄なこと、隠すべきこと、辛いこと、忌避すべきことという概念自体が間違いなのだ
現在の性教育を教えた結果セックスを危ないもの、暴力であることとしか認識していない
概念は適切に教えるべきだ
この人はイヤではないという男性にはビキニラインを隠すのではなく積極的に見せるべき
そこに魅力の8割があるのだから
男性にとってセックスに繋がるものは全て報酬である、だから性的表現やフェティッシュなものはより過激であるほど人気が上がる
幼少時に大事な場所を見せてくれた、初体験をさせてくれた女性であったら、男性であれば現在のどんなに好条件の女性とでも天秤にかけて釣り合ってしまうもの
ttps://greta.5ch.net/test/read.cgi/poverty/1757688660/212
212番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW a3e0-pgBA)sage 2025/09/13(土) 05:32:09.55ID:OV8Lxe+e0
210
ttps://greta.5ch.net/test/read.cgi/poverty/1757688660/217
217番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 5b3d-W5w5)sage 2025/09/13(土) 05:55:01.88ID:r67/HxiM0
統一教会のやり方は自身を悪しき共産主義として悪魔化させたような構造になっていた
所有の概念は一夫一妻制の広がりと同時期に起こっていると考えている
合同結婚式では結婚する人を選ぶ権限は組織に決定権があり、国籍もミックスさせていた
このやり方は共産主義の所有がないという概念を悪魔化して支配しようというやり方から発想しているものであると考えている
女性には個々人とセックスをしない権利は残っているし、誰とでも絶対に拒むなというわけでもない
その結果望まれない人とセックスをせず将来貧乏になったとしても自己決定権の行使をしていてそれは自由だ
誰の子どもを産むかも男女の自己決定権があり、それを国が承認し子どもを妊娠できる
統一教会と一緒にしないでほしい
ttps://greta.5ch.net/test/read.cgi/poverty/1757688660/222
222番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 5b3d-W5w5)sage 2025/09/13(土) 06:13:26.24ID:r67/HxiM0
統一教会とは異なることを明言した上で、それでもセックスの普遍化には宗教が必要だと思う
カトリックのように、性行為の様式や作法などを細かく決め、その方式を時に柔軟に変化させながら守り続けることがやはり必要だと考える
性行為そのものが宗教行為ならば、尊いものとして捉えやすいし、作法や様式を広めればレイプまがいの乱暴な相手の承認な暴力的セックスを行う人も減るだろうと思う
宗教施設として誰でも使用できるセックス部屋を提供し、カップルはそれを使用し、男性一人でも相手してくれる女性と宗教行為を行い、お布施を支払う
こうすることで
地位の高い人は「最も多くの恵まれない人とセックスした女性」であり、その人は多くの男性から望まれた人でもある
だからこそ男性のことが分かりつつ宗教の方向性が決められるし、男性の勘所が分かるからこそその宗教は支持されていく
宗教の献金で避妊ピルや性病撲滅資金も出せるし、コンドームの設置、全国配置も可能
女性が宗教をセックスのために行うことで、男性にレイプされる危険も下がるし、教義を守り続ければ望まないセックスをすることもなく、望まないセックスという概念が無くなりセックス行為は尊敬されるものという共通認識がなされれば、社会に我々は充分貢献しているんだ、という考えが芽生え、今の女性の社会的進出という実質的な男性の領分への侵食を考える事もないと考えるから
585:名無しですよ、名無し!(ワッチョイ 6f5a-kgbi)sage2025/09/04(木)23:03:36.86ID:heblLwM90
やっぱりわくわくさんのお鼻なんか変に見える
改造組に唆されたのかな?
586:名無しですよ、名無し!(ワッチョイ e3cc-AgOB)2025/09/04(木)23:06:20.04ID:XiVTv2Ay0
変わってないのに毎回言う人おるな
588:名無しですよ、名無し!(ワッチョイ33e0-9S2+)sage2025/09/04(木)23:28:44.23ID:h2YTAid70
やっぱりって言ってるあたりいつものと同じだろ
590:名無しですよ、名無し!(ワッチョイ 6f52-I9TG)2025/09/05(金) 01:04:43.53ID:i6ak8J6H0
逆に変わってないように見える人って何も見えてなすぎて怖いんだが……
591:名無しですよ、名無し!(ワッチョイ33e0-9S2+)sage2025/09/05(金) 01:09:54.17ID:bJjI9Xgt0
変わったとしても具体的にどう変わったか言われないとわからないレベルなんだろ
頑なにどう変わったか言わないじゃん
592:名無しですよ、名無し!(ワッチョイ 6f52-I9TG)2025/09/05(金) 01:15:02.49ID:i6ak8J6H0
言わせんなよ
7月の上海イベント前後で比べたらそれ以降で鼻が豚っ鼻みたいになってるやん
これを何も変わってないように見えるというのは信じられない
593:名無しですよ、名無し!(ワッチョイ33e0-9S2+)sage2025/09/05(金) 01:17:05.46ID:bJjI9Xgt0
594:名無しですよ、名無し!(ワッチョイ 83b9-P3Uo)2025/09/05(金) 01:18:55.88ID:i6ak8J6H0
すまんもうやめるわ、心配だねのつもりで言ってるのにこんな感じになるならもう触れないわ
怖いよ
595:名無しですよ、名無し!(ワッチョイ33e0-9S2+)sage2025/09/05(金) 01:25:37.80ID:bJjI9Xgt0
いやお前の杞憂なんて知らんけど…
水着わくわくで抜いとけ
596:名無しですよ、名無し!(ワッチョイ 731a-x240)sage2025/09/05(金) 01:31:32.30ID:duDWMHrK0
結婚を前提としたお付き合いがしたくなる
597:名無しですよ、名無し!(JP 0Hc7-lzig)sage2025/09/05(金) 01:52:17.20ID:mLreVhZrH
わくわくしすぎだろ
600:名無しですよ、名無し!(ワッチョイ 6f85-vFDw)sage2025/09/05(金) 06:46:33.41ID:XycXooUQ0
601:名無しですよ、名無し!(ワッチョイ 73b2-RKbS)sage2025/09/05(金) 07:38:12.97ID:uEOZjBgK0
602:名無しですよ、名無し!(ワッチョイ 93b3-tb1g)2025/09/05(金) 07:42:34.34ID:kAA2SHee0
まぁ確かに何か違和感あるのは事実だけど愛でるスレなのでシコれない話題はNG
604:名無しですよ、名無し!(ワッチョイ 13a2-xBTm)sage2025/09/05(金)12:36:21.04ID:ndlaUTO60
俺は前の鼻の方が良かったなと思いながらゆうちゃんりおリリイベに申し込んだよ
確かに使ってた。使ってはいるけど解凍を使ってるのは自己解凍のところだけで、e,xオプションのところでは「ファイルを取り出す」表記。凍結表記もaオプションのところだけ。
(LHAになる前のバージョンだけど)LHarcソースコード内の日本語版の使い方
char use[] =
"LHarcversion 1.13cCopyright(c) H.Yoshizaki(吉崎栄泰), 1988-89.\n"
"============================================================= 1989 - 5 - 21 ===\n"
" <<< 高圧縮書庫管理プログラム>>>\n"
"===============================================================================\n"
"使用法:LHarc [<命令>] [{/|-}{<スイッチ>[-|+|2|<オプション>]}...] <書庫名>\n"
" [<ドライブ名>:|<基準ディレクトリ名>\\] [<パス名> ...]\n"
"-------------------------------------------------------------------------------\n"
" 《命令》\n"
" a:書庫にファイルを追加 u:書庫にファイルを追加(日時照合付)\n"
" f:書庫のファイルを更新 m:書庫にファイルを移動(日時照合付)\n"
" d:書庫内のファイルの削除 e,x:書庫からファイルを取り出す\n"
" p:書庫内のファイルの閲覧 l,v:書庫の一覧表示\n"
" s:自己解凍書庫の作成 t:書庫内のファイルのCRC チェック\n"
" 《スイッチ》\n"
" r:再帰的収集を行う w: ワークディレクトリの指定\n"
" x:ディレクトリ名を有効にする m: 問い合わせを行わない\n"
" p:名前の比較を厳密に行う c: 日時照合を行わない\n"
" a: 全属性を凍結の対象とする v: 他のユーティリティでファイルを閲覧\n"
" n: 経過表示をしない k:自動実行のキーワードの設定\n"
"===============================================================================\n"
"転載・再配布などは自由です。Nifty-Serve PFF00253\n"
英語版の使い方
char use[] =
"LHarcversion 1.13cCopyright (c) Haruyasu Yoshizaki, 1988-89.\n"
"================================================================ 05/21/89 ===\n"
" <<< High-Performance File-Compression Program>>>\n"
"===============================================================================\n"
"usage:LHarc [<command>] [{{/|-}{<switch>[-|+|2|<option>]}}...] <archive_name>\n"
" [{<drive_name>:}|{<home_directory_name>\\}] [<path_name> ...]\n"
"-------------------------------------------------------------------------------\n"
" a:Add files to archive u: Update files to archive\n"
" f: Freshen files in archive m:Move new files into archive\n"
" d:Delete files from archive e,x: EXtract files from archive\n"
" p: disPlay files in archive l,v:View List of files in archive\n"
" s:make a Self-extracting archive t:Test integrity of archive\n"
" r: Recursively collect files w: assign Work directory\n"
" x: allow eXtended file names m: noMessage for query\n"
" p: distinguish fullPath names c:skiptime-stamp Check\n"
" a: allowany Attributes of files v:View filesbyanother utility\n"
" n: display No indicator k:Keyword for AUTOLARC.BAT\n"
" t: archive'sTime-stamp option\n"
"===============================================================================\n"
"Youmay copy or distribute withoutany donation to me.Nifty-Serve PFF00253\n"
" (See theUser'sManual for detailed descriptions.)ASCII-pcspcs02846";
https://profile.hatena.ne.jp/dorawii_bukuma/
はてなのサイト側で読み込まれているはずのrksトークンを生成する関数を直接叩く方法がどうしても分からず結局request処理を自分で書く方法ではなく自動でUI側の保存ボタンをクリックするという無難な方向に落ち着いた。
最初から後者の方法をとっていればもっと全然早く作れたのにというは所詮言い訳か。
とにかくスクリプトを公開しておく。
@echo off
cd /d "C:\Users\user\Documents\jsscript"
:: Nodeサーバーを別ウィンドウで起動
start /min "" noderun-batch-server.js
::Pythonサーバーを別ウィンドウで起動(hatenaserver配下)
start cmd /k ""python hatenaserver\server.py
{
"username": "",
"password": ""
}from flask import Flask, request,jsonify
importjson
importos
from hatena_client import HatenaClient
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
config_path =os.path.join(os.path.dirname(__file__), 'config.json')
withopen(config_path, encoding='utf-8')as f:
config =json.load(f)
@app.route('/bookmark', methods=['POST'])
def handle_bookmark():
data = request.json
url = data.get("url")
if noturl:
returnjsonify({"error": "MissingURL"}), 400
client = HatenaClient(config["username"],config["password"])
client.start_browser()
if notclient.login():
client.quit()
returnjsonify({"error": "Login failed"}),403
success =client.add_bookmark(url)
client.quit()
returnjsonify({"status": "ok" if success else "fail"})
if __name__ == "__main__":
app.run(port=12347)
// ==UserScript==
// @name自動セルクマ送信
// @namespace tampermonkey.net/
// @version 2025-08-07
// @descriptiontry totakeoverthe world!
// @authorYou
// @matchanond.hatelabo.jp/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
consturl = location.href;
if (!/^https:\/\/anond\.hatelabo\.jp\/\d+$/.test(url)) return;
const editLink = document.querySelector('a.edit');
if (!editLink) {
// 既に編集ページなので処理をスキップ
console.log('編集リンクが存在するため、スクリプトを終了します。');
return;
}
fetch('localhost:12347/bookmark', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body:JSON.stringify({url:url })
}).then(r =>console.log("通知成功")).catch(e =>console.error("通知失敗", e));
})();
-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250821192753# -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaKb0qwAKCRBwMdsubs4+SHfiAQDcXmTHBaZ5Zzr1KI/OxZ0xl69oevOdy1FXJYwYvsmo5AD/ZPtZiO1JgTDjm+27iymlkdzIXOIGWfC82UTr1mJ7EwU==YoV+-----ENDPGP SIGNATURE-----
もう少ししたら自動ブクマするコードができそうなんだけど、そのうえでコード公開に便利なように事前にpre記法に囲まれた部分はその外部の文字を適切にエスケープするコードをchatgptに指示して作ってもらった。
ぶっちゃけなんでこれで動くのかはわからないので動くからゴーサインを出したというだけなのが情けない所。flushってなんだ?
使うときはchatgptにこのコード丸ごと書いて「ブックマークレット用に一行にして」と丸投げするのを要推奨。
https://anond.hatelabo.jp/20240820150546#
javascript:(function () {
function escapeHtml(text) {
returntext.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
vartextarea = document.querySelector('textarea#text-body');
if (!textarea) return;
varlines =textarea.value.split(/\r?\n/);
varout = "";
var inPre =false;
var preLines = [];
function flushPre() {
// pre範囲の中身を 1 本の文字列にまとめ、\n→<br>(末尾行は <br> なし)
varraw = preLines.join("\n"); // ここに物理改行は入るが…
var escaped = escapeHtml(raw); // 先にエスケープ
varhtml = escaped.replace(/\n/g, "<br>"); //物理改行を <br> に置換(末尾に \n が無ければ末尾 <br> は付かない)
out +=html; //out には改行を入れない
preLines = [];
}
for (var i = 0; i <lines.length; i++) {
varline =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;
})();
-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250819202540# -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaKRfOwAKCRBwMdsubs4+SI5UAQDcNiyv5qUuMej1VLkGz4F5WyHeU1AIm7nUVHlx/gicnAEAgP07dK14IuTuW3ZO7PRR71ENq9lJjYtawIYyMOc2cQk==okE4-----ENDPGP SIGNATURE-----
出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。記事の信頼性向上にご協力をお願いいたします。(2015年8月)
ミハイ・チクセントミハイのフローモデルによるメンタルステート図。チャレンジレベルとスキルレベルの二軸で表される[1]。
フロー(英:flow)とは、人間がそのときしていることに、完全に浸り、精力的に集中している感覚に特徴づけられ、完全にのめり込んでいて、その過程が活発さにおいて成功しているような活動における、精神的な状態をいう。一般的には、フロー体験(Flow Experience)、フロー状態(FlowState)、フロー理論(FlowTheory)などという言葉で使用される。
日本では、スポーツの分野において一般的に「ゾーン」と呼ばれることが多いが、その他にも類語としては「ピークエクスペリエンス」「無我の境地」「忘我状態」とも呼ばれ、最適状態または最適心理状態(Optimal PsychologicalState)と呼ばれる研究分野のひとつである。心理学者のミハイ・チクセントミハイによって提唱され、その概念は、あらゆる分野に渡って広く論及されている。
ジェーン・ナカムラとチクセントミハイは、フロー体験の構成要素を6つ挙げている[2]。
専念と集中、注意力の限定された分野への高度な集中。(活動に従事する人が、それに深く集中し探求する機会を持つ)
活動に本質的な価値がある、だから活動が苦にならない。(報酬系)
さらに心理学作家のケンドラチェリーは、チクセントミハイがフロー経験の一部として挙げている3つの構成要素について言及している[3]
直接的で即座のフィードバック[3](活動の過程における成功と失敗が明確で、行動が必要に応じて調節される)
成功する可能性があると信じる(明確な目的, 予想と法則が認識できる)
フローを経験するためにこれら要素のすべてが必要というわけではない。
フローはチクセントミハイの1975年のインタビューにおいて、幾人かが彼らの「フロー」体験を、ずっと彼らを運んでいる流れという隠喩を使って描写したために名付けられた。「活動に没入する」という「フロー」の心理学的な概念は、「時代の流れに従う」という意味の「ゴー・ウィズ・ザ・フロー」という従来の慣用句とは無関係である。
チクセントミハイは、集団が全体として作用して、個々のメンバーがフローに達するようないくつかの道筋を示した。このような集団の特徴には、以下のものが含まれる。
創造的空間配置:椅子、コルクボード、図表。机は置かない。そうすれば立って動きながらの活動が主体となる。
活動の場のデザイン:情報を書き込む図表、流れ図、企画の概要、熱狂(ここでは熱狂も場所を占める)、安全な場所(ここでは他に何が考えられるかを誰でも言うことができる)、結果掲示板、オープントピック
観光分野への応用
近年、欧米では観光旅行中に発生する「楽しさ」や「感動」「ワクワク」「満足」などの言語化されたポジティブな感情の根源は、心理学上のフロー状態から発生しているのではないかという研究が多く行われている[4]。フロー状態は、チクセントミハイによって、その発生のプロセス(フローモデルによるメンタルステート図)がある程度提案されていることから、観光における満足を人為的、意図的に発生させることも可能ではないかとの考えられ、日本国内でもこれに言及する主張が増えている[5]。また「思い出に残る旅行体験(MTE:Memorable Tourism Experience)」の指標に関する研究では、フロー状態とMTEの関連性について言及するものもある[6]。
アウトドアレクリエーション、音楽活動、趣味、ゲームの楽しさとフロー
スキー、スノーボード、サーフィン、カヤック、乗馬、パラグライダーやダイビングなどのアウトドアレクリエーション、オーケストラや吹奏楽、合唱などの音楽活動、模型製作や生け花、洋裁などの趣味、テレビゲーム、スマホゲームにおける「楽しさ」や中毒性についても、フロー状態がその楽しさの根源ではないかという研究も数多く存在し、近年「楽しさ」の構造やその原理が明らかになってきている[7]。
隣接分野
この概念は西欧心理学の中ではチクセントミハイによってはじめて示したと言える。しかし、彼はこの心理現象に気づき、それに基づく技術を開発したのは、ほぼ間違いなく彼が最初ではないと、彼自身、躊躇なく認めている。
2500年以上前、仏教や道教といった東洋の精神的な伝統の実践者は、この訓練を彼らの精神開発の非常に中心的な部分として磨いた。日本の実践者は、そのような禅の技術を、彼らの選んだ、剣道から生け花までを含む、芸術の形式(芸道など)を習得するために学んだ。
あまりに使われすぎた慣用句「ビーイング・アット・ワン・ウィズ・シングス」(物と一体化する)も、この概念を説明するのに使われる。
教育にあっては、過剰学習の概念があり、これは、この技術に重要な要素となっているように思われる—少なくとも肉体的な技能を学んでいる場合には。それに加えて、多くの現代のスポーツ選手は、よくこの「ゾーンに入る」(何もかもがうまくいく)という現象を経験する。
基本的な発想が東洋と西洋とで同じであったり自然科学者、霊的指導者、スポーツ選手の間で共有されているということに価値があるわけではない。チクセントミハイは、他の者が精神的な発展や肉体的な熟達や他の自己改善の形式の発展性に集中している一方で、活動の場のデザインのような現代西洋文化要素の改良について、これから結論を描いただけであろう。実際、東洋の精神的な実践者は、現在の科学的な心理学者たちが用いようと試みてきた組織的な厳密さや制御とは異なる方法で試験し改善してきたにしても、この主題を中心にして、非常に徹底的で全人的な理論の集成を発展させてきた。
ソフトウエア開発者は邪魔されないフロー状態に入ることを、"wired in"、TheZone,[8][9]hack mode,[10]、softwaretimeに入る[11]などと呼んでいる。株式市場取引者は "in the pipe" という用語を、取引量の多い日や市場の修正時に取引する際のフロー状態を表すのによく使う。プロのカードプレイヤーは、集中力と戦略的認識が最高となったときを "playing the A-game" と呼んでいる。
フローはポジティブ心理学にとっても重要である。目の前のことに夢中になり、我を忘れることで、幸せや健康、長寿につながるのである[12]。
新世紀GPXサイバーフォーミュラ -近未来を舞台にしたカーレースアニメ(作中ではゼロの領域の名で登場する)
Dreams -マガジンSPECIAL連載中の野球漫画
flOw - thatgamecompany制作のビデオゲーム
ベイビーステップ -週刊少年マガジン連載中のテニス漫画(作中ではゾーンの名で登場する)
黒子のバスケ -週刊少年ジャンプ連載中のバスケットボール漫画(作中ではゾーンの名で登場する)
風が強く吹いている -新潮社出版の三浦しをんによる箱根駅伝をテーマにした小説(作中ではゾーンの名で登場する)
^ Csikszentmihalyi, M., FindingFlow, 1997.
^ Nakamura, J.; Csikszentmihályi, M. (20December2001). “FlowTheory and Research”. In C. R. Snyder Erik Wright, and Shane J. Lopez. Handbook of Positive Psychology. OxfordUniversity Press.pp. 195–206.ISBN 978-0-19-803094-22013年11月20日閲覧。
^ a b “WhatisFlow?”. AboutEducation.2015年3月30日閲覧。
^ “Flow Experience in TourismActivities”.20250317閲覧。エラー: 閲覧日が正しく記入されていません。(説明)
^ “フロー理論から考える観光やツアーの楽しさ・満足度の研究”.20250317閲覧。エラー: 閲覧日が正しく記入されていません。(説明)
^ “Once-in-a-lifetime leisureexperiences (OLLE): The role ofFlow, novelty, and interpersonalinteractionon tourists’satisfaction andmemories”.20250317閲覧。エラー: 閲覧日が正しく記入されていません。(説明)
^ “Flow Experience in TourismActivities”.20250317閲覧。エラー: 閲覧日が正しく記入されていません。(説明)
^ Michael Lopp (12June2007), “Chapter 25: ANerd in aCave”, Managing Humans: Biting and Humorous Tales of aSoftware Engineering Manager, Apress, p. 143,ISBN 978-1-59059-844-3, "[TheZone]is a deeplycreative space whereinspirationis built.Anything whichyou perceiveas beautiful, useful, orfun comes fromsomeone stumbling through TheZone."
^ Joel Spolsky (9August2000), The JoelTest:12 Steps to Better Code, "Weall know that knowledge workers work bestbygetting into 'flow', also knownasbeing 'in thezone' (...) Writers, programmers, scientists, and even basketballplayerswill tellyou aboutbeing in thezone."
^ “Hack Mode”.Jargon File.2013年11月閲覧。エラー: 閲覧日は年・月・日のすべてを記入してください。(説明)
^ Scott Rosenberg (2007), Dreaming in Code:Two Dozen Programmers, Three Years, 4,732 Bugs, andOne Quest for TranscendentSoftware, "When thingsgo well,you can lose track of passing hours in thestate psychologists call "flow." When thingsgo badly,youget stuck, frozenbetween dimensions, unable tomove or see a way forward. Either way,you've left the clock far behind.You'reonsoftwaretime."
^ “Positive Psychology: Harnessingthe power ofhappiness, mindfulness, and inner strength” (英語).Harvard Health.2022年11月15日閲覧。
参考文献
Csikszentmihalyi, Mihaly (1990).Flow: The Psychology of Optimal Experience.New York: Harper and Row.ISBN 0060920432
Csikszentmihalyi, Mihaly (1996). Creativity:Flow and the Psychology ofDiscovery and Invention.New York: Harper Perennial.ISBN 0060928204
Csikszentmihalyi, Mihaly (1998). FindingFlow: The Psychology ofEngagement With EverydayLife.Basic Books.ISBN 0465024114 (a popular exposition emphasizing technique)
Csikszentmihalyi, Mihaly (2003).Good Business: Leadership,Flow, and the Making of Meaning.New York: Penguin Books.ISBN 014200409X
Langer, Ellen J. (1989). Mindfulness. Reading, Mass: Addison Wesley.ISBN 0201523418
関連項目
サマーディ
外部リンク
ミハイ・チクセントミハイ:フローについての講演映像 -TEDカンファレンス、2004年2月、18分55秒。
test.py
#! /usr/bin/envpython
import torch
import torchvision
weights = torchvision.models.MobileNet_V3_Large_Weights.DEFAULT
model = torchvision.models.mobilenet_v3_large(weights=weights)
model.eval()
onnx_file = f'mobilenetv3_large_pytorch.onnx'
SIZE = 128
x = torch.randn((1, 3, SIZE, SIZE))
torch.onnx.export(
args=(x),
f=onnx_file,
opset_version=11,
input_names=[
'input',
],
output_names=[
'output',
],
)
import onnx2tf
onnx2tf.convert(
input_onnx_file_path=onnx_file,
output_folder_path='saved_model',
copy_onnx_input_output_names_to_tflite=True,
)
importtime
importtensorflowas tf
interpreter = tf.lite.Interpreter(
model_path="saved_model/mobilenetv3_large_pytorch_float32.tflite"
)
tf_lite_model =interpreter.get_signature_runner()
time_total = 0.0
kaisu =10
for i in range(kaisu):
inputs = {
'input':np.random.randn(1,SIZE,SIZE,3).astype(np.float32),
}
tf_lite_output = tf_lite_model(**inputs)
elapsed_time =time.time() - start_time
print("[TFLite]Model Predictions.shape:", tf_lite_output['output'].shape)
print("[TFLite]AVG elapsedtime:",time_total / kaisu)
https://github.com/aankhon-ki-gustaakhiyan-firmytt-hqq
日中の生産性は、夜の過ごし方、特に「就寝」というクリティカルなタスクをいかに成功させるかにかかっている。本記事では、つい夜更かししてしまうエンジニアのために、早寝を「技術」として体系化し、再現性のある形で実践するための具体的な手法を探求する。これは精神論ではない。あなたのQoLと生産性を向上させるための、実践的なスリープエンジニアリングだ。
我々エンジニアにとって、夜は不思議な魅力を持つ時間だ。日中の喧騒から解放され、思考は冴えわたり、ゾーンに入りやすい。しかし、その魅力的な時間は、往々にして「早寝」という、人間の生存に不可欠な基本プロセスを犠牲にすることで成り立っている。
「リファクタリングが楽しくなってきた」
これらの探求心はエンジニアの美徳であるが、同時に我々を「睡眠負債」という深刻な技術的負債へと導く。本稿は、この負債を返済し、持続可能な開発(と生活)を実現するための「早寝」という技術に焦点を当てる。
早寝を実装する前に、まずは現状のアーキテクチャに潜むアンチパターンを特定しよう。
就寝前のスマートフォンは、まさに同期的なブロッキングI/Oだ。SNSの無限スクロール、動画プラットフォームの自動再生、チャットアプリの通知。これらは我々の意識というシングルスレッドを完全に占有し、本来実行されるべきsleep()プロセスへの遷移を妨げる。
深夜まで続くコーディングや問題解決は、脳を極度の興奮状態にする。ベッドに入っても、アドレナリンやコルチゾールといったホルモンがCacheに残り続け、CPUがクールダウンしない。shutdown -hnowを叩いても、プロセスが終了しないのだ。
「夜更かしの供」として注入されるカフェインやアルコールは、一見するとパフォーマンスを向上させるように見える。しかし、これらは睡眠の質という重要なmetricsを著しく劣化させる、誤った依存関係だ。特にアルコールは、入眠を助けるように見えて、実はレム睡眠を阻害し、睡眠のアーキテクチャ全体を不安定にする。
不規則な就寝・起床時間は、体内時計という最も重要なCronジョブを破壊する。毎日異なる時間に実行されるジョブが安定した結果をもたらさないのと同様に、不規則な睡眠スケジュールは、日中のパフォーマンスを予測不可能なものにする。
では、どうすればこれらのアンチパターンを排除し、安定した早寝pipelineを構築できるのか。ここではSleepas Codeの概念に基づき、具体的なプラクティスを紹介する。
毎晩、同じ手順で就寝プロセスを実行することで、入眠を自動化する。
-PC/スマホのシャットダウン: 最も重要なステップ。物理的に電源を落とすか、手の届かない場所(別のコンテナ)にdeployする。
- 入浴: 38〜40℃のぬるめのお湯に15分ほど浸かる。これにより深部体温が一時的に上昇し、その後の下降とともに入眠が促される。これはHot-swapならぬHot-bathによるクールダウンだ。
静的コンテンツの消費: 激しい思考を伴わない、静的な情報(紙の読書など)に切り替える。電子書籍ではなく、紙媒体が望ましい。
ストレッチ: 軽いストレッチで、日中のcommitで固まった体をreleaseする。
すべての準備が整ったら、ベッドという本番環境にデプロイする。余計な思考はgitclean -fdで強制削除し、呼吸に集中する。
例:「夕食後のコーヒーが原因だった」→「カフェインの摂取は15時までというSLAを設ける」
早寝は、単に体を休める行為ではない。日中の高いパフォーマンス、明晰な思考、そして創造性を維持するための、最も効果的で再現性の高い「技術」だ。
我々はインフラをコードで管理し、CI/CDでデプロイを自動化するように、自身の睡眠もまた、技術と工夫によってコントロールできる。今夜、あなたのwhile(true)なループをbreakし、持続可能なパフォーマンスを手に入れるための第一歩を踏み出してほしい。
Happy sleeping!
日中の生産性は、夜の過ごし方、特に「就寝」というクリティカルなタスクをいかに成功させるかにかかっている。本記事では、つい夜更かししてしまうエンジニアのために、早寝を「技術」として体系化し、再現性のある形で実践するための具体的な手法を探求する。これは精神論ではない。あなたのQoLと生産性を向上させるための、実践的なスリープエンジニアリングだ。
我々エンジニアにとって、夜は不思議な魅力を持つ時間だ。日中の喧騒から解放され、思考は冴えわたり、ゾーンに入りやすい。しかし、その魅力的な時間は、往々にして「早寝」という、人間の生存に不可欠な基本プロセスを犠牲にすることで成り立っている。
「リファクタリングが楽しくなってきた」
これらの探求心はエンジニアの美徳であるが、同時に我々を「睡眠負債」という深刻な技術的負債へと導く。本稿は、この負債を返済し、持続可能な開発(と生活)を実現するための「早寝」という技術に焦点を当てる。
早寝を実装する前に、まずは現状のアーキテクチャに潜むアンチパターンを特定しよう。
就寝前のスマートフォンは、まさに同期的なブロッキングI/Oだ。SNSの無限スクロール、動画プラットフォームの自動再生、チャットアプリの通知。これらは我々の意識というシングルスレッドを完全に占有し、本来実行されるべきsleep()プロセスへの遷移を妨げる。
深夜まで続くコーディングや問題解決は、脳を極度の興奮状態にする。ベッドに入っても、アドレナリンやコルチゾールといったホルモンがCacheに残り続け、CPUがクールダウンしない。shutdown -hnowを叩いても、プロセスが終了しないのだ。
「夜更かしの供」として注入されるカフェインやアルコールは、一見するとパフォーマンスを向上させるように見える。しかし、これらは睡眠の質という重要なmetricsを著しく劣化させる、誤った依存関係だ。特にアルコールは、入眠を助けるように見えて、実はレム睡眠を阻害し、睡眠のアーキテクチャ全体を不安定にする。
不規則な就寝・起床時間は、体内時計という最も重要なCronジョブを破壊する。毎日異なる時間に実行されるジョブが安定した結果をもたらさないのと同様に、不規則な睡眠スケジュールは、日中のパフォーマンスを予測不可能なものにする。
では、どうすればこれらのアンチパターンを排除し、安定した早寝pipelineを構築できるのか。ここではSleepas Codeの概念に基づき、具体的なプラクティスを紹介する。
毎晩、同じ手順で就寝プロセスを実行することで、入眠を自動化する。
-PC/スマホのシャットダウン: 最も重要なステップ。物理的に電源を落とすか、手の届かない場所(別のコンテナ)にdeployする。
- 入浴: 38〜40℃のぬるめのお湯に15分ほど浸かる。これにより深部体温が一時的に上昇し、その後の下降とともに入眠が促される。これはHot-swapならぬHot-bathによるクールダウンだ。
静的コンテンツの消費: 激しい思考を伴わない、静的な情報(紙の読書など)に切り替える。電子書籍ではなく、紙媒体が望ましい。
ストレッチ: 軽いストレッチで、日中のcommitで固まった体をreleaseする。
すべての準備が整ったら、ベッドという本番環境にデプロイする。余計な思考はgitclean -fdで強制削除し、呼吸に集中する。
例:「夕食後のコーヒーが原因だった」→「カフェインの摂取は15時までというSLAを設ける」
早寝は、単に体を休める行為ではない。日中の高いパフォーマンス、明晰な思考、そして創造性を維持するための、最も効果的で再現性の高い「技術」だ。
我々はインフラをコードで管理し、CI/CDでデプロイを自動化するように、自身の睡眠もまた、技術と工夫によってコントロールできる。今夜、あなたのwhile(true)なループをbreakし、持続可能なパフォーマンスを手に入れるための第一歩を踏み出してほしい。
Happy sleeping!
一度投稿したうえで別タブを開いてプログラム的(fetch)に送信してその別タブが閉じられる仕組み。
// ==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 }); })();
// ==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); } })();
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
#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-----
ようやく(ほぼ)すべてが自動化された。
あとはローカルサーバーの起動をスタートアップに設定する(方法をAIに聞いて指示に従う)だけの消化試合。
署名時要求してくるパスワードを自動入力するahkファイルはドキュメントのAutoHotkey配下に置いた。
バッチファイル(make.sign.bat)はデスクトップに置いた。
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInput お前のパスワードSleep 100SendInput {Enter}ExitApp
//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/');});
@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
// ==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-----
この前、職場の事務職(月23.7万円)の面接に無職のおっさん(46)が来たんだが
そのおっさんが「パソコン得意です。Excel、VBAできます」ってドヤ顔で言ったんだよね
そこで俺は「それAIでもできるよね?じゃあパワーBIやPythonできる?」って聞いたら
おっさんが「できません…」って言い出して呆れた😅
ExcelなんてそれこそパワーBIやPythonできてなんぼそれ以外はAIで十分なのに
じゃあ何ができるんですか?って聞いたら関数とかマクロとか…って言い出してドン引きしたわ
そんなん教えたら誰でもできるもんやん
パソコンのテスト一応やらしたけど、関数でT.Test関数の2番を使ってて実務経験ないの丸わかりで
これはないなあって思って落としたわ
So,the Expo 2025is actually happening,like, rightnow.Itstarted a week ago. They'vegot this massive woodenringstructure that's apparently thebiggest inthe world orsomething. Looks kind ofcool in the pictures, I guess,likesomethingout of an old temple buthuge.
The themeis "Designing FutureSociety for Our Lives". Sounds ambitious. Lots oftalk about saving lives, empowering lives, connecting lives...all thatjazz. They wantit to be a "People's Living Lab" where they show off new tech for thingslikecarbon neutrality andnext-gen mobility.Over 160 countries are supposed tobe there, showing off their ideas forthe future.
But honestly? I keep reading about problems. Heard thetest runs had massive lines, which soundslike a nightmare, especially worrying about heatstroke insummer. Ticket sales seemed slow beforeit opened, with lots of companies buying them up instead of regular people. Makesyou wonder how excited the average person reallyis. Plus, the costs ballooned, almostdouble what they first thought.
And apparently, they plan to tearmost ofit down afterwards? Seemslike ahuge amount of effort and money forsomething temporary. Though they say they'll reuse materials.Still, feels abitweird.
Willit actually be good? Or justanotherbig, expensive event that causes traffic jams? Guess we'll see. Just feelslike there's not muchbuzz compared to thelasttimeOsaka had anExpo way back when.