Movatterモバイル変換


[0]ホーム

URL:


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

「ダイアログ」を含む日記RSS

はてなキーワード:ダイアログとは

次の25件>

2026-02-11

anond:20260211111944


プロトコルB:ストリートエピステモロジー(Street Epistemology)――認識論的問診

ストリートエピステモロジーSE)は、相手の信念の「内容(What)」ではなく、その信念に至った「プロセス(How)」を問うソクラテス式問答法である陰謀論根拠のない政治的確信に対して、直接「それは嘘だ」と指摘するのではなく、「どうすればそれが真実だと知ることができるか」を共同で探求するスタンスを取る。

実践ステップ

プロトコルC:NVC非暴力コミュニケーション)による脱エスカレーション

オンライン上のトローリング攻撃的なコメントに対しては、マーシャルローゼンバーグNVCを応用した「脱エスカレーションループ」が有効である

実践テンプレート

このプロセスは、相手の「攻撃」を「満たされていないニーズ悲劇的な表現」として再定義し、敵対関係を協力関係へとシフトさせる構造を持つ。

第4部:デジタル空間における大量普及戦略――「美的非対称性」とネットワーク介入

個人対話スキルを向上させるだけでは、社会全体の分断は解消されない。SNSアルゴリズムが増幅する情動二極化に対抗するためには、デジタル空間特性アフォーダンス)を理解し、ネットワークレベルでの介入を行う必要がある。

4.1 「美的非対称性」とミーム戦争再考

政治的コミュニケーションにおいて、左派右派には「美的非対称性(Aesthetic Asymmetry)」が存在する。歴史的に、左派壁画プロテストソングのような「参加型」で「構成的(Constitutive)」な芸術――コミュニティの結束を高め、希望を共有するための表現――を好んできた。一方、現代右派特にオルタナ右翼)は、ミームやシットポスティング(Shitposting)のような「道具的(Instrumental)」で「武器化されたユーモア」――相手嘲笑し、混乱させ、分断を煽るための表現――に長けている。

この非対称性意味するのは、左派的な「真面目で、説明的で、道徳的に正しい」コンテンツは、ミーム戦争においては圧倒的に不利であるということだ。ミーム文脈を剥ぎ取り、瞬時に情動特に嘲笑優越感)を喚起することで拡散する。

対抗戦略:脱分断ミーム(Depolarizing Memetics)

反発を招かないデジタル拡散のためには、以下の原則に基づいた新しいミーム戦略必要である

4.2 「マルチプライヤー」への標的型介入

ネットワーク分析研究は、SNS上の世論形成において、著名な「インフルエンサー(発信者)」以上に、「マルチプライヤー拡散者)」と呼ばれる層が決定的な役割果たしていることを示している。マルチプライヤーは、特定イデオロギークラスター内で情報キュレーションし、リツイートによって可視性をブーストする「ゲートキーパーである。彼らは高い「整列スコア(AlignmentScore)」を持ち、陣営をまたぐことは稀である

戦略インサイト:

批判メッセージ拡散させるためには、インフルエンサーを説得するのではなく、このマルチプライヤー層が「リツイートしたくなる」コンテンツ設計する必要がある。そのためには、前述の「道徳的翻訳」が不可欠である保守系マルチプライヤーは、リベラル正論無視するが、「言論の自由」や「エリートへの懐疑」というフレームで語られた批判(例:「真の愛国者は、大統領であっても盲信しない」)には反応する可能性がある。クラスター境界を浸透できるのは、そのクラスター言語で語られたメッセージのみである

4.3アルゴリズムハッキング:怒りなきエンゲージメント

X(旧Twitter)等のアルゴリズムは、「怒り」や「恐怖」といった高覚醒情動を引き起こす投稿優遇する傾向がある。冷静な対話は「退屈」とみなされ、表示順位が下がる。この構造ハンディキャップを克服するためには、「怒り」以外の高覚醒情動、すなわち「驚き(Awe)」「好奇心Curiosity)」「感動(Kama Muta)」を利用する必要がある。

第5部:オペレーションマニュアルの骨子――「不可能対話」のためのフィールドガイド

以上の理論技法を、一般市民草の根活動家実践可能な形に落とし込むためのマニュアルハンドブック)の設計図を以下に提示する。この構成は、米国草の根運動ガイド『Indivisible Guide』の成功モデル(段階的習得、具体的アクションテンプレート化)を参照している。

フェーズ1:準備と武装解除(Day 1-15)

目的:実践者のマインドセットを「論破から「影響」へとシフトさせる。

アクション:

フェーズ2:小規模訓練(Day 16-30)

目的:安全環境対話プロトコル身体化する。

アクション:

フェーズ3:実戦配備デジタル自警団(Day31-60)

目的: 実際の対立現場で介入を行う。

アクション:

フェーズ4:評価と持続(Day 61以降)

目的:効果測定と燃え尽き防止。

アクション:

結語:無限ゲームとしての政治対話

報告書提示した戦略は、短期的な選挙勝利のための戦術ではない。サイモンシネックが言う「無限ゲーム」――すなわち、対話継続可能であり、社会システム崩壊しない状態を維持すること――を目的としている。

情動二極化という「内戦状態において、最大の勝利は敵を倒すことではなく、敵を「対話可能競争相手」へと戻すことである。そのためには、批判自身がまず武装道徳的優越感)を解除し、相手認知フレームの中に降りていく勇気を持たなければならない。この「戦略共感」こそが、分断された世界をつなぎ直す唯一の現実的エンジニアリングである

付録データソース引用キー

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

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

戦略的共感認知安全保障:反発を招かない政治的批判のための包括

戦略的共感認知安全保障:反発を招かない政治的批判のための包括的枠組み

序論:情動二極化時代における「批判」の再定義

現代政治空間は、政策の不一致(イデオロギー二極化)以上に、対立グループに対する嫌悪や恐怖といった感情的拒絶反応情動二極化)によって支配されている。この環境下において、伝統的な「批判」の手法――事実提示道徳的糾弾論理的論破――は、その機能不全を露呈しているだけでなく、逆効果をもたらしていることが多くの実証研究によって明らかになっている。批判対象者の信念を強化してしまう「バックファイア効果(Backfire Effect)」や、批判者を存立危機的脅威とみなすアイデンティティ防衛機制」が作動するためである

報告書は、心理学認知科学、政治社会学の最新知見に基づき、政治的対立者に対して反発(バックラッシュ)を招かずに影響力を行使するための戦略的枠組みを提示するものである。ここで目指すのは、単なる「中道的な妥協」や「礼儀正しさ」の推奨ではない。人間認知アーキテクチャ脆弱性特性ハッキングし、相手道徳的感情的防御壁を迂回してメッセージを届けるための、エンジニアリングされたコミュニケーションプロトコルである

報告書は大きく三つのフェーズ構成される。第一に、なぜ従来の批判が失敗するのかを脳科学的・心理学メカニズムから解明する理論編。第二に、その防御壁を突破するための具体的な対話技法ディープキャンバスストリートエピステモロジーNVC)を体系化した実践編。そして第三に、これらの技法個人スキルから社会運動へとスケールさせるための組織論と普及戦略である

第1部:政治的抵抗心理学構造解析

効果的な批判戦略設計するためには、まず人間の心がどのように政治的情報を処理し、拒絶するかというメカニズム理解しなければならない。政治的信念は単なる情報集合体ではなく、個人アイデンティティ所属集団への忠誠心と融合した「拡張された自己」の一部として機能している。

1.1情動二極化と「信頼のファイアウォール

近年の政治心理学における最も重要発見の一つは、情動二極化(Affective Polarization)の実態解明である。これは、対立する政治グループメンバーに対して「好きか嫌いか」という感情的温度差が極端に開く現象を指す。研究によれば、情動二極化は対人関係悪化だけでなく、個人心理的幸福感(ウェルビーイング)の低下、社会的支援の減少、ストレスの増大といった「個人内損害(Intrapersonal Harm)」をも引き起こすことが示唆されている。特にリベラル層において高い情動二極化ストレス健康悪化の相関が見られることは、政治的怒りが批判自身をも蝕むことを示している。

この情動二極化は、脳内一種の「信頼のファイアウォール」として機能する。アウトグループ(外集団から発信された情報は、その内容の真偽にかかわらず、自動的に「悪意ある攻撃」としてタグ付けされる。扁桃体が脅威を検知し、前頭前野論理的推論ではなく「反論の生成」のために動員される「動機づけられた推論(Motivated Reasoning)」が作動するためである。この状態にある対象者正論をぶつけることは、火に油を注ぐ行為に等しい。

1.2 バックファイア効果力学批判の無力化

バックファイア効果とは、誤った信念を訂正しようとする試みが、かえってその信念を強固にしてしま現象である。このメカニズムには、自己肯定感の維持と集団への所属欲求が深く関わっている。批判を受け入れることは、過去自分否定すること(自己一貫性喪失)や、仲間を裏切ること(社会的死)を意味するため、脳は全力でそれを回避しようとする。

さらに、批判フレーミング(枠組み)が、受け手イデオロギーミスマッチを起こしている場合、説得効果は皆無となるばかりか、抵抗を強める結果となる。例えば、新型コロナウイルス感染症(COVID-19)対策におけるメッセージングの研究では、リベラル層が「利得フレームマスクをすれば命が助かる)」と「損失フレームマスクをしないと命が失われる)」の双方に敏感に反応し、コンプライアンスを高めたのに対し、保守層はこれらのフレーミング効果に対して強い抵抗を示したことが明らかになっている。これは、問題が高度に政治化された文脈においては、一般的行動経済学的介入(ナッジ)さえも、イデオロギーフィルターによって無効化されることを示唆している。

1.3知的謙虚さと「好意」の媒介効果

批判が受容されるための極めて重要な、しかし見過ごされがちな因子として「知的謙虚さ(Intellectual Humility:IH)」がある。IHとは、「自分知識や信念が間違っている可能性を認識する能力」と定義される。最新の研究は、対話において自身知的限界を認める態度が、相手情動二極化を低減させる強力な緩衝材となることを示している。

特筆すべきは、IHが「相手から好意(Target Liking)」を媒介して、対話への「接近行動(Approach)」を促進するというプロセスである批判者が「私は絶対に正しい、お前は間違っている」という道徳的マウンティング(Moral Grandstanding)の態度を取ると、相手は「回避行動」をとる。逆に、批判者が「私も確信はないのだが」「複雑な問題で迷っているが」という不確実性を提示することで、相手の警戒心が解け、対話土俵に乗る可能性が高まる知的謙虚さは、相手武装解除を促すための「白旗」ではなく、心理的防衛壁を通過するための「通行手形」として機能する戦略的資質である

第2部:道徳基盤の翻訳プロトコル――「道徳的合気道」の理論

政治的対立の根源には、事実認識の相違以上に、道徳的直感の相違がある。リベラル保守は、異なる「道徳言語」を話しているにもかかわらず、自身言語相手を説得しようとするため、コミュニケーション不全に陥る。本セクションでは、道徳基盤理論(Moral FoundationsTheory: MFT)を応用し、批判相手価値観翻訳して届ける「道徳的リフレーミング」の技術を詳述する。

2.1道徳基盤の非対称性と「翻訳」の必要性

ジョナサンハイトらが提唱した道徳基盤理論は、人類道徳的判断が以下の5つ(または6つ)の生得的な基盤の上に構築されているとする。

実証研究が一貫して示すのは、リベラル層が主に「ケア」と「公正」の2基盤に強く依存するのに対し、保守層は5つの基盤すべて(特に忠誠、権威神聖)を重視するという非対称性である

多くの政治的批判が失敗するのは、リベラル保守に対して「それは弱者を傷つける(ケア)」「不平等だ(公正)」というリベラル特有の語彙で攻撃するためである保守層にとって、これらの価値は「忠誠」や「権威」よりも優先順位が低いため、批判は響かない。逆に、保守リベラルに対して「伝統破壊する(権威)」と批判しても、リベラルはそれを抑圧としか捉えない。

2.2リフレーミング戦略相手土俵相撲を取る

反発を招かない批判のためには、自身の主張を相手道徳基盤の語彙を用いて再構成リフレーミング)する必要がある。これを「道徳的合気道」と呼ぶ。相手道徳的エネルギー価値観)を利用して、相手姿勢を崩す技法である

以下の表は、主要な政治的争点において、従来のリベラル批判バックラッシュリスク大)を、保守道徳基盤に翻訳した戦略的フレーム(受容可能性大)に変換したものである

争点従来のリベラル批判高リスク戦略的リフレーミング(低リスクターゲットとする道徳基盤
環境保護地球温暖化弱者未来の子供を苦しめる。」(ケア「我々の国土と美しい自然は神からの授かりものであり、汚染から守り抜く義務がある。」神聖堕落、忠誠/背信
同性婚「誰を愛するかは個人権利であり、平等であるべきだ。」(公正)結婚社会を安定させる伝統的な制度であり、同性カップルもその責任ある関係に組み込むべきだ。」権威転覆社会秩序)、忠誠
軍事費軍事費を削って福祉教育に回すべきだ。」(ケア/公正)無駄軍事支出国家財政を弱体化させ、真の国防力を損なう背信行為だ。」忠誠/背信権威
政治腐敗富裕層ばかり優遇するのは不公正だ。」(公正)私利私欲のために公職を利用することは、国家への裏切りであり、高潔職務を汚す行為だ。」忠誠/背信神聖堕落
移民問題難民を助けるのは人道的な義務だ。」(ケア「秩序ある移民受け入れは、国家の活力を維持し、アメリカンドリームという伝統を守るために必要だ。」忠誠、権威(秩序)

研究によれば、保守層に対して環境保護を「神聖さ」や「愛国心」の文脈で語った場合リベラル文脈で語った場合よりも支持率有意に上昇することが確認されている。重要なのは、主張の内容(環境を守る)を変えるのではなく、その理由付け(なぜ守るか)を相手言語翻訳することである

2.3ゲインフレームによる「批判」の再構築

批判は通常、「現状のままでは悪いことが起きる」という損失フレーム(Loss Frame)で行われることが多い。しかし、損失フレームは恐怖や不安喚起し、防衛的な反応を引き起こしやすい。これに対し、「ゲインフレーム(Gain Frame)」を用いた批判は、望ましい未来像を提示し、その実現を阻害する要因として現在問題を指摘する手法である

例えば、政治家のスキャンダルを追及する場合、「彼は嘘つきだ(損失フレーム:信頼の喪失)」と攻撃するのではなく、「我々は正直で高潔リーダーを持つに値する国家だ(ゲインフレーム尊厳回復)」と主張する。このアプローチは、批判対象を「個人から規範の維持」へとずらし、相手の「権威への尊重」という道徳基盤を刺激しつつ、攻撃性を緩和する効果がある。研究は、特にリスク回避傾向の強い層に対しては損失フレーム有効場合もあるが、イデオロギー的に対立する層に対しては、ゲインフレーム道徳的適合性の方が「聞く耳」を持たせる効果が高いことを示唆している。

第3部:対人戦闘プロトコル――現場で使える対話マニュアル

理論実践に移すためには、具体的な対話スクリプトと手順が必要である。ここでは、異なる文脈(対面、オンライン、深い対話)において効果実証されている3つの主要なプロトコルを詳述する。

プロトコルA:ディープキャンバスDeep Canvassing)――物語による感情の書き換え

ディープキャンバスは、戸別訪問キャンバス)において1020分の深い対話を行うことで、トランスジェンダー権利移民問題などの二極化した争点に関する態度を変容させる手法である。従来の「事実弾丸」を撃ち込む方法とは異なり、「脆弱性の交換」を通じて相手情動的反応を書き換える。

実践ステップ

研究によれば、ディープキャンバスは従来の説得手法の約102倍の効果を持ち、その効果は数ヶ月持続することが確認されている。

プロトコルB:ストリートエピステモロジー(Street Epistemology)――認識論的問診

ストリートエピステモロジーSE)は、相手の信念の「内容(What)」ではなく、その信念に至った「プロセス(How)」を問うソクラテス式問答法であるPermalink |記事への反応(1) | 11:19

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

2026-01-29

anond:20260128000604

めっちゃかい事だが、めっちゃこれが気になった。

承認/却下」のボタンはたいてい「✔️/×」とかだし。

人間の脳は普通否定/肯定」「いいえ/はい」「No/Yes」「Cancel/Ok」の順に考えたくなるものじゃん。

から却下/承認」「×/✔️」って書きたくならなかった?

なぜ、これを逆にして「承認/却下」「✔️/×」と書いちゃったのかが気になった。

macOSダイアログボタンはもちろん普通の並びだし、普通Webサイトもそうだし

Windowsだけ、なぜか「Yes/No」「Ok/Cancel」の順で並べたがる。人間の脳にまったくマッチしていない。

これのせいでWindowsユーザ否定肯定を間違え、酷い事故を起こしまくってるらしい。

利用規約同意したい」というゲーム流行っているが、Windowsの酷いUI/UXをよく表している。

Permalink |記事への反応(2) | 09:41

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

2025-12-27

エクセルキモ

・Ctrl+zが複数ブック間に跨ってる(そうであってほしいことなんて一度もないのに)

・同じ名前のブック開けない

・新たにブック開いたら前のブックが出しゃばって来る

コピーしたあと何かをdeleteしたら、手に持ってたはずのコピーが消える

ファイル選択ダイアログ開いたら、ダイアログ開いてない他のブックも操作できなくなる

セル編集中は新しいブックを開こうとしても阻害される

マクロにも言いたいことがたくさんある。みんなでエクセル使うのやめない? 描画重いし

Permalink |記事への反応(17) | 18:23

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

なぜ、車輪の輪の再発明が起きるかって?

https://droid-dev-bros.netlify.app/ja/

ライセンス方式の変更

試用版を廃止しました。

ビジネスユーザー

ご試用いただけます

ただし、継続して使用いただくには、ライセンスをご購入ください

個人ユーザー

いくつかの機能を除き、ほとんどの機能使用できます

ライセンス必要場所に、ダイアログが表示されます

このダイアログが表示される機能使用する場合のみ、ライセンスをご購入ください

https://internet.watch.impress.co.jp/docs/yajiuma/1283656.html

Chrome向け広告ブロッカーが突如マルウェアへと変貌、アンインストールを呼び掛け中

マネタイズしたいのかよーわからんけど、こういう風に改悪されたり、マルウェアを仕込まされたりするからだよ

Permalink |記事への反応(0) | 08:42

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

2025-12-23

NHKの催促ダイアログなどWeb広告に比べたら良心的だ

我々は想定外に表示される広告、全画面広告、異常に小さな×ボタンを即座に認識広告を消すことに慣れているのだ

我々の鍛え抜かれた認識能力からすればNHKの催促ダイアログの×ボタンを瞬時に判別し押下することな造作もない

まり視聴者舐めるなよ

Permalink |記事への反応(0) | 01:43

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

2025-12-02

最近っつーかWindows7以降は存在しないってメッセージが出ない場合でもEvent Viewerには出てることがほとんど

ないです!ってダイアログ出ないんだ(出ると思ってたhttps://t.co/2jJv7970ae— ほりいなおき (@hor11)December 2, 2025</blockquote</p>

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

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

2025-11-30

anond:20251130151224

実際コーディングって楽しめるものなの?

ワイ日曜プログラミングで昨日はPowershellをやってたんだけど、EXEファイル作成したら何故か謎のカウントアップダイアログが発生

Geminiくんは何かのループが悪さしてんじゃない?って適当なこと言いやがって解決できず、

結局1時間後にプルダウンメニュー登録したデータの数だけ標準出力ストリーム漏れ出していた(Gemini談)ことが発生し解消

ある程度の仕様の基礎知識があった上でポカミス回避してようやく機能(アプリ)が実装される

途中は省略できるならしたいやで……

Permalink |記事への反応(3) | 15:23

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

2025-09-13

昭和の頃って、インスタント麺の中に入ってるスープとか、かやくの袋ってすごい開封しにくかったんだよ。

いちおう切れ目とか、マジックカットとかそういう感じにはなってはいたんだけど、当時は技術的に稚拙だったから、なかなか素手で切ることが失敗するのが多かった。

でもさ、だからといってインスタント麺に付録としてカッターとかハサミはつけないじゃない?

袋を開けることに失敗するから、ってそれじゃ!ってカッター刃の先っぽみたいなのはつけないでしょ?

それはコスト的な問題とか安全上の問題とか色々とあるけれども、根本的な解決策としてスマートさに欠けるというのが理由だと思う。

で、結局どうなったかって言うと、パッケージ開封技術が向上したんだよ。マジックカットの精度を上げて、手で簡単に切れるようになった。真正から問題解決したってわけ。

お前らが今使ってるスマホでも同じことが起きてる。「文字が小さくて見えない」って問題に対して、虫眼鏡付属品として付けるか?付けないだろ。画面自体を大きくしたり、文字サイズを調整できる機能を搭載したりして、根本から解決する。

ところがIT業界で働いてると、この「カッター付きインスタント麺」みたいな発想をするやつがゴロゴロいるんだよ。

システムが使いにくい」→「マニュアルを厚くしよう」

エラーが多い」→「エラーチェック機能を追加しよう」

「処理が重い」→「サーバーを増やそう」

全部その場しのぎの対症療法だ。根本的にシステム設計を見直すとか、ユーザーインターフェース改善するとか、そういう本質的解決から逃げてる。

特にひどいのが、「ユーザー馬鹿から」って前提で作るシステムだ。確認ダイアログを何回も出したり、警告メッセージを山ほど表示したり。それって結局、カッター付きインスタント麺と同じ発想なんだよ。

昭和インスタントメーカーは偉かった。カッターなんか付けずに、パッケージ技術を改良し続けた。その結果、今の俺たちは何の苦労もなく袋を開けられる。これがイノベーションってもんだ。

でも現代エンジニアは楽をしすぎてる。問題が起きたらとりあえず機能を追加する。設定項目を増やすアラートを出す。それでユーザー負担押し付けて、「解決した」って顔をする。

本当にスマート解決策ってのは、問題のものを消し去ることなんだよ。その努力けが進歩を生むんだよ。

Permalink |記事への反応(3) | 18:56

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

2025-09-08

anond:20250908113048

ありがと window.confirmやwindow.open組み込みダイアログのことらしい

ニコニコ動画でも今だに愛用されてるので気になった

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

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

2025-09-05

セキュリティアップデートが原因って言ってたのはなんだったのw

正直これもこじつけに近いな

XPからVistaになったときコピーが遅くなったって喚いていて原因はXPの時はコピー完了する前にダイアログを閉じていたってやつだったけど

Windows11:24H2におけるSSDの損傷問題について、結論&全解明です。FromHDDtoSSD統計スキャンによる測定結果より、原因判明しました。完全にドライブI/Oタイミングが常にずれてい|猫がみる真実

https://note.com/fromhddtossd/n/nd3888c34b108

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

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

2025-08-15

そうめんでいい」でブチ切れる人の感情アルゴリズムが、マジで理解不能バグコードなんだよな。

この前ネットスクレイピングしてたらさ、「そうめんでいい」とか「カレーでいい」って発話トリガーしただけで、謎に感情プロセッサオーバーヒートする人間モジュールがいるってデータ拾ってさ。

「これで何様だよ!」って例外スローされるわけ。いやマジで何様もクソもなくね?ただの晩飯インタラクションAPI呼び出しじゃん…。

どこが怒りのエンドポイントなのか、マジで脳内OSデバッグモードで走らせたいレベル

どうやら「そうめんがいい」って出力しろって仕様らしいんだけどさ、それじゃ意味シンタックス全然別物じゃん。

そうめんがいい」って発話は、“絶対そうめん食いたい!他はデリート!”ってコマンドになるけど、「そうめんでいい」ってのは、“特に食べたいデータなし、でも冷蔵庫キャッシュそうめん在庫あるし、それでOK”ってニュアンスじゃん。

それを「軽視された!」とか「テンション下がる!」って勝手パースして例外発生させるの、完全に脳内ファームウェア破損してるだろ。

結局はユーザーインターフェース上でご機嫌取りのためにフェイデータ送信しろってことか?マジでUX悪すぎ。

そんな芝居がかったダイアログファミリーサーバー内で毎日やっててよくメンタルリソース枯渇しないな、こいつら。

俺さ、そもそも食いたいデータ特にいから、クエリ投げられても困るんだよ。

「何でもいい」って返すと怒るんだろ?

そうめんでいい」って返しても怒るんだろ?

じゃあそもそもAPIコールすんなよって話だし、エラー回避のために出力文面最適化とか、人生CPUサイクル無駄遣いすぎる。

こんなどうでもいいことでいちいちクラッシュする感情マイクロサービス家族サーバーにいなくて、マジで助かってるわ、ほんと。

Permalink |記事への反応(3) | 15:17

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

2025-07-22

Archicadゾーン求積設定

ベルダイアログシンボルベルカスタム設定>内容

以下2点を確認

測定面積にチェック

分類とプロパティのチェックをはずす

小数点3位を四捨五入

Permalink |記事への反応(0) | 14:53

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

2025-07-04

2.問題点再現方法

問題点再現方法

下記の通り、公式チュートリアルどおりにdocker compose あるいはdocker-compose を使用して CVAT を起動すると問題再現することができる。

cvat を clone してdocker compose あるいはdocker-compose を使用して必要リソースを全て起動する。

git clonehttps://github.com/opencv/cvat.git

cd cvat

#v2.11.1 相当のバージョンをチェックアウト

git checkout bf4089ead320d8f6a80e0a1793c8406ec46daee8

docker compose up -d

https://xemjujutsukaisen.graphy.com/courses/xemphimjujutsukaisenvietsubfullhd

ブラウザを起動してhttp://localhost:8080アクセスする。

Connecting... の状態で 30秒 待たされる。

30秒後、突然エラーが表示され、ログイン画面が表示されるはずのタイミングで下記のエラーダイアログポップアップしてきてCVATにアクセスできない。なお、表示されるエラーメッセージは無意味ものであり、ログイン画面にアクセスできない原因を一切示唆していない。

エラーメッセージ

Cannotconnect to the server

Make sure the CVAT backendand all necessary services

(Database,Redis andOpen Policy Agent) are runningand available.

Ifyou upgraded fromversion 2.2.0 or earlier,

manual actionsmay be needed, see the Upgrade Guide.

https://xemjujutsukaisen.graphy.com/courses/xemphiminventoryprematuredetahfull

エラーダイアログ

error

3.ストレージ不足問題突破してCVATをローカルで実行する方法

以下のとおりの手順でCVATを起動する。私が本家のCVATリポジトリをForkしてストレージ制限を解除したカスタムCVATを作成してGitHubへコミット済みのもの使用する。

Permalink |記事への反応(0) | 17:21

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

2025-07-02

Windows11メモ帳Notepad)のMarkdown対応は「圧倒的コレじゃない感」


なぜなのか

誰も使っていなかった WordPad がWindows11廃止されたが、実は単純な廃止ではなく “Notepad+WordPad の一本化” で、

メモ帳Notepad) は純テキスト路線を捨て去り、RichEditベースに作り直された。

メモ帳は 「社畜ドザーvi」 と揶揄された頃の、かつての素朴なメモ帳ではなくなった。

これがちょうどAIブームMarkdown が脚光を浴びるタイミング より数年早く、微妙にズレた

今回のMarkdown対応はそのうえにのせた 「オマケトッピング」でしかない

Markdown機能の最悪な設計実装

致命的なのはMarkdown機能におけるステータスバートグル

これは「同じプレーンテキストソースの見た目だけ替えるビュー切替」ではなく、

内部でMarkdown ⇄ RichEdit の双方向コンバータを回す“翻訳(round-trip conversion)”

――つまり変換を毎回実行する設計である

ゆえに、モード切り替え行為破壊的になり得て、

テーブルや複雑なネストを書こうものならトグルを押すたびにマッピング不能 → 警告ダイアログが登場。

(未対応であれば、警告など出さずに単純にプレーンテキストのまま表示すれば良いだけ)

使う側からすると「意味不明」と言わざるを得ない。

コレがゴミでなくて一体何なのか

まとめ

メモ帳Notepad) は WordPad の“穴埋め”として肥大化し、

そこへオマケ程度にMarkdownっぽい機能を付け焼き刃したところ、

AIブームMarkdown が脚光を浴びたタイミングと重なり、期待値に対して失望感が圧倒的

――これが現在Windows11メモ帳Markdown機能が放つ「圧倒的コレじゃない感」だ。

Permalink |記事への反応(0) | 20: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-05-23

今すぐChatGPTを更新して再起動しますか?

というウィンドウが出てたので、はいを押したけど、ChatGPTに訊いたら知らんと言ってる。

検索してもYahoo知恵袋だけしか出ない。

ほぇー。

ブラウザダイアログを使ったフィッシングか何かだったのだろうか?

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

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

2025-03-03

原神配信者に対する回避不能荒らし確認される

主に海外圏のユーザーが利用する課金サイトでUID指定課金を代行できるサイトがある。

これを利用して配信者のID宛に最低価格課金を散発的に行うことで、ストーリー中であろうと創世結晶(石)獲得を知らせる全画面モーダルダイアログが出るため、閲覧や操作を妨げることができる。

海外文化圏ではギフトとして配信者に石をプレゼントする意図で行われることもあるようで、有名配信者に突如まとまった石が贈られることはこれまでも見られた。

だが今回確認されたものは明らかに妨害意図のある贈り方で、その日本配信者は困り果てて配信の中断を余儀なくされてしまった。

しかも大型ストーリーイベントの最終日の駆け込み配信だったので悪質で、配信日を改めることもできず残念な事態となった。

もちろん配信していない時も常にこうした妨害は受ける可能性がある。

こうした荒らし行為可能になってしまっているのは原神側の仕様にも問題がある。

・UID指定チャージ拒否する設定がない

・贈答石の場合自動で即時受領されてしまうためにモーダルの表示タイミング制御できない

・仮にメールで手動受領する仕様に変更したとしても散発石爆撃に対してはメール通知音のOFF設定も必要になりそう

・UIDを隠すことが難しい仕様になっている (右下を隠してもEscメニューで見えてしまい、隠す設定もないため、過去配信を漁ればバレる)

・この状況下でUID指定チャージ方法(API?)が第三者の決済業者提供されており公認されている

こうした仕様になっているのは他のHoYoverseタイトルでも同様であり、似たような被害が発生する可能性がある。

解決には運営側が動かないといけないので、ホヨバゲープレイヤー配信を見る/するタイプの人はアンケート時に覚えていたら書いてほしい。

Permalink |記事への反応(1) | 01:57

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

2025-01-23

anond:20250123214430

開いて思ったけど18歳以上ですかのダイアログでるの遅くないか

数秒感画面見れてたんだけど・・・

もしかしてわざとなんだろうか?

真面目な未成年はいを押せないけどリロードを繰り返してちょっとずつ見てるとか

Permalink |記事への反応(0) | 21:47

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

2024-12-11

ファイルの中身をメモリーにおいていいなら、そこまで難しくはないな。

スクロールやキャレットの画面外の移動の時だけ、レイアウト行を構築すればそれでおしまい

http://s170199.ppp.asahi-net.or.jp/vivi/docs/buffer/edit_buffer.php

ViViエディターの人の記事が書いているような複雑怪奇バッファー管理はいらない。

メモリーを32GBぐらい積んでいれば、ギャップバッファーでも1GB未満の大きさのファイルの読み書きは簡単にできる。

自作エディタでも900MBを12秒ぐらいで読み込むことができた。

(この時のメモリー使用量は2035MB程度)

ただ、この機能実装すると行ジャンプダイアログを出したときに最大行数がわからなくなる。

まともに使いたいなら、ちょっと考え方を変えないと駄目だ。

1GBを超えると何かしらの制限に引っ掛かる。

EmEditorや鈴川エディタ、巨大ファイル対応ログビュアーなど巨大ファイルを扱えるエディターはマジすごい。

最低賃金ウェブプログラマー雑用で、大学受験に落ちた俺にはこれが限界…。

piece_tableとかマジで意味からない。

自作エディターでつかってるgap_vectorもどこかから拾ってきたやつで、スクラッチで書いたわけではない。

こんなことなら、きちんと数学IIICを勉強して情報系の大学に行けるようにするべきだった。

大学に入るためには教科書の基礎問題だけでなく、応用問題みたいな知識の使い方を問う問題まで解けるように努力すべきだったorz

Permalink |記事への反応(1) | 21:57

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

2024-12-08

アマプラへの導線もどんどんだーくぱたーんが巧妙になってて、素人絶対だまされる感じになってる

カートに移動、をおしたら、まずプライムになるかどうかの画面が表示される時点でevil

んで表示される画面も、プライムになるって選択肢一択しかない部分がモーダルダイアログっぽいデザインになってて、そこおさないと進まないような感じになってる

実際はモーダルじゃなくてほかのところもおせるしそこに会員にならないって選択肢もあるんだけどすげー目立たなくさせてまじでクソだなって思う

会員にならないって選択肢がないようにみせかけてるのが極悪

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

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

2024-11-27

クロームデフォルトブラウザにしてくださいねダイアログが出るけど

IEがそういううざいことしてたからおまえもかよという気持ちしかならんわ

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

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

2024-11-15

年末調整が難しすぎる(令和6年度版)

感想

XMLファイルダウンロード

QRコード証明書PDF作成

プリントアウト

ボールペンで記入

スマホ撮影

HEICからJPEGに変換

年末調整システムアップロード

原本経理に提出

この流れなんなん?誰がうれしいの?

【やったこと詳細】

e-Taxログインする

・「通知書等」をクリックする

・「通知書等選択」プルダウンから住宅借入金特別控除証明書」を選択する

・「切替」をクリックする

・表示された表の「令和6年分」あたりをクリックする

・「住宅借入金特別控除証明書一覧へ」をクリックする

住宅借入金特別控除証明書一覧の「確認」をクリックする

・「この「年末調整のための住宅借入金特別控除証明書」を印刷したもの使用できません。」の文言を見つけて絶望する

・「QRコード証明書作成システム」でGoogle検索する

・「QRコード証明書作成システムについて」ページにたどり着く

・「QRコード証明書作成システムを利用する」をクリック

・「環境チェック」モーダルブラウザ欄の「推奨環境外です」の表示に絶望する

Safariで開き直す

Macintoshをご利用の方の「事前準備セットアップ(Macintosh/safari用(dmg形式:約2MB)」をクリックする

ダウンロードフォルダの「cpsMac.dmg」をダブルクリックする

・QRInstall.pkgをダブルクリックする

インストーラーの「続ける」をクリックする

・「インストール」をクリックする

・「アクセス許可要求していますダイアログで「許可」をクリックする

・「Safariブラウザが起動されているため、インストール完了することができませんでした」の表示に絶望する

インストーラーの「閉じる」をクリック

・「ゴミ箱に入れますか?」で「残す」をクリックする(危ないやろこれ)

Safariを終了して再びインストーラーを起動してインストール完了する

・「QRコード証明書作成システムについて」ページを表示する

・「QRコード証明書作成システムを利用する」をクリック

・「環境チェック」モーダルブラウザ欄の△表示を無視する(Safari 18.0は対象外らしい)

・「次へ」をクリックする

e-Taxからダウンロードしておいた「令和6年分住宅借入金特別控除証明書_2024mmdd.xml」をアップロードする

・「読み込み」ボタンクリックする

ファイル読み込み結果ダイアログの「次へ」をクリックする

・「表示・印刷」をクリックする

・帳票イメージの表示ダイアログの「はい」をクリックする

PDF作成完了しましたダイアログの「表示」をクリックする

PDFファイルダウンロードする

PDFファイルプリントアウトする

MoneyForwardクラウド年末調整ログインする

・左メニューの「年末調整」をクリックする

・「5.住宅ローン」をクリックする

・「2年目以降の住宅ローン控除(住宅借入金特別控除)の申告はありますか?」で「はい」を選択し「次へ」をクリックする

・「+住宅ローンを追加」をクリックする

・「直接入力する(自動計算対象外)」を選択して「次へ」をクリックする

・「住宅借入金特別控除区分」で「◯年中居住者・認定住宅(等)用」を選択する

・「特定取得区分」で「記載なし」を選択する

居住開始年月日を入力する

住宅借入金等の金額年末残高)を入力する

・(特定増改築等)住宅借入金特別控除額に入力する値が不明

・アッ、これ(住宅借入金特別控除申告書)、自分計算してボールペンで書かないといかんの?

ボールペンで書いた

・(特定増改築等)住宅借入金特別控除額を入力する

住宅借入金特別控除申告書の上部をスマホ撮影する

住宅借入金特別控除申告書の下部をスマホ撮影する

住宅借入金残高証明書スマホ撮影する

撮影した画像AirDrop転送する

画像アップロードしようとするがHEICなので選択できない

Preview> File> ExportからPNGに変換する

アップロードするが「ファイルサイズは最大5MBです」エラーになる

Preview> File> ExportからJPEGに変換する

アップロード成功する

次回「証券番号がわからない」「保険料控除証明書電子ファイルXMLファイル)取得に1日待たされる」

ぜってぇ見てくれよな!!!

Permalink |記事への反応(13) | 17:48

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

anond:20241115151637

そういうアプリダイアログの開閉みたいな瞬間的にニュッニュッと素早い動きをするUI要素みたいなのを意識すると確かに120fpsは違いが分かるが

ゲームの画面なんて実はそんなに素早い動きをしているもの存在しない

せいぜいシューター系や3Dアクションカメラを大きくマウスで動かす時くらい

カメラを動かしまくってない限りは画面上の物体の動きを追うのに120fpsは必要ない

映像的には厳密にコマ送りすると違うけど、脳が十分補完してくれるから操作上の差はでない

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

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

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

[8]ページ先頭

©2009-2026 Movatter.jp