はてなキーワード: XMLとは
以下ChatGPT
自分のホームページ(自前ドメイン+自前HTML)を一度でも作って運用すると、SNS中心の“受け手”視点から、仕様・検索・配信・所有・継続の“作り手”視点に脳が切り替わる。結果、情報リテラシーは跳ね上がり、ネットのニュースや流行の見え方が根本から変わる——しかも想像以上に。
Before(作る前): Web=SNSのタイムライン。良し悪しは「バズってるか」「見やすいか」
After(作った後): Web=プロトコル+ブラウザ+HTML/CSS/JS+CDN+検索エンジン。
ページは**文書(Document)**であり、配置(IA)、意味づけ(セマンティクス)、配信(HTTP/HTTPS/HTTP/2/3)、キャッシュ戦略が気になりだす。
→ 同じ記事でも「タイトルの付け方」「hタグ構造」「画像最適化」「OGP」「サイトマップ」がまず目に入るようになる。
プラットフォーム依存の脆さを体感:規約変更やシャドウバンで露出が消える。
自サイトの資産化:ドメインに紐づくURLはリンクされ、検索に積み上がり、10年後も生きる。
POSSE(Publish (on your) Own Site, Syndicate Elsewhere):まず自分のサイトに出してから外部へ配信する習慣が身につく。
3. “好き/嫌い”から“なぜ速い・なぜ遅い”へ
Core Web Vitals(LCP/FID/CLS)や画像の遅延読み込み、フォント最適化の重要性が腹落ちする。
広告・計測タグの重さに過敏になる。読者体験を壊さないためのパフォーマンス予算という概念が生まれる。
キーワード選定は“流入ゲーム”ではなく読者の課題→コンテンツ設計に帰着。
内部リンク・パンくず・スキーマ(構造化データ)・サイトマップの意味が実務として理解できる。
“書けば伸びる”ではなく“検索意図を満たす設計が伸びる”に目が覚める。
alt、見出し階層、コントラスト比、キーボード操作、焦点管理など、見えない品質が最重要になる。
デザインは飾りではなく“読み・理解・操作”のためのユーティリティだと分かる。
たまたま当たる1記事より、更新の継続・アーカイブ性・RSSのほうが効くと実感。
コメント欄・メールフォーム・X連携よりも、ニュースレターやRSS購読者の質に価値を見出す。
ドメイン、DNS、証明書、バックアップ、法務(特商法・プライバシーポリシー)に“運用者の責任”が生まれる。
その重みが情報の信頼性を引き上げる(=他人のサイトの苦労も見えるようになる)。
トレンドは“輸入”ではなく選別になる。自分の歴史に合うものだけを採用して積層していける。
A. 最小HTML(雛形)
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>あなたの名前 | ホーム</title>
<meta name="description" content="自分のホームページ。制作物・日記・メモを置いていきます。">
<link rel="alternate" type="application/rss+xml" title="RSS" href="/feed.xml">
<meta property="og:title" content="あなたの名前 | ホーム">
<meta property="og:description" content="自分のホームページ。制作物・日記・メモ。">
<meta property="og:type" content="website">
<nav>Home / About / Posts</nav>
<footer>© 2025 あなたの名前</footer>
GitHub Pages(Jekyll標準。Rubyベース、Node不要)
Cloudflare Pages(静的ファイルを置くだけで高速CDN)
レンタルサーバー(静的HTML+SFTP/rsyncで十分)
C. ドメインの基本
DNSはA/AAAA/CAA/TXT最低限、HTTPS必須(Let’s Encryptで無料化)。
D. “最低限の品質チェック”5点
ログを読む:Search Consoleと簡易アクセスログで“本文よりメタ情報”を磨く。
すると?
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20250916195045# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaMlBBAAKCRBwMdsubs4+ SLnEAP9UhKoio4vjlCqtDAKQFQe1oBTbTrRil+COirBRqvtCIwEAvLk2Tzp+1XML 2l9k5VdvYT8eGvecNYL2pPG0EGP/ewk= =41DI -----END PGP SIGNATURE-----
NoteやらXやらで考察()だなんだかんだ言ってるけど、1話最初のPCのシーンでほぼ全部察せられるだろこれ
貝塚の語りを録音してる誰かがいてたくさんの素材が出てくる
ここからの何者かが貝塚の語りを聞きながら映像素材を再生していき、物語が始まる
この時点で今見ている映像が誰かによって編集されたものという疑念が出てくる
このシーンをしっかり覚えたうえでドラマを見ていくと
3話の時点の貝塚の語りと映像も1話開始時時点で映像素材として誰かに渡っているものであることに気づけて
それらが「貝塚が自分で撮影したものを見せてるという形式」で流れる時点でいろいろ確定して
あとは消化試合って感じ
みんな考察とか言ってるけど、要は最初のPCのシーンがすべてだよ
あそこで答えに気づけない人がわーわー騒いでるだけのドラマって感じ
細かいこと言うと、3話最初のエンドロール前の貝塚の画像がZV-1+シューティンググリップで撮影しましたよ!って強調されてて、
貝塚が渡した映像データが業務用カメラで使われるXAVC S HD形式なんだけど、
これはZV-1だと5分しか記録できない(温度センサー切れば制限解除できるけど)形式。普通は使わない
さらに1話最初のPCのシーンで、貝塚は動画ファイルと一緒に生成されたXAVC S XMLも一緒に渡してる
これはSonyの業務用編集ソフト(Catalyst Prepare/Browse)でメタデータ読み込みに使うファイル
JSONはダブルクォーテーションの整合性とか、ケツカンマ問題とかどうでもいいところがわずらわしいんだよ。
似たような話は昔XMLなんかでもあって、XMLは誤解なく解釈するには向いているんだけど
今まで、たくさんの設定ファイルが考案されてきた。
.ini レジストリ xml lua json yaml ..etc...
どれも一長一短だった。
例えば.iniはコメントもかけるし、シンプルなkey=value形式だった。だがしかしarrayを表現できなかった。
レジストリはarrayを表現できたがすべての設定を集約したため巨大な密林になった。
xmlは冗長なフォーマットになり、書き手とパーサーの負担が増えた。
スクリプト言語のluaやjsを設定ファイルに使おうぜという動きもあったが、セキュリティリスクもあり普及しなかった。
yamlはコメントはかけるが、これはこれで面倒な形式であり欠点ある。
いろいろ考えた末に俺様がたどり着いたのは、設定ファイルという概念の消滅だ。
設定のスキーマーを定義する共通言語で記述するか、またはYAMLでもなんでもいいから強力なディファクトスタンダートができる。
利用者はやりたいことを"自然言語"でAIに要求し、AIはそれを実現するために設定ファイルを解析し書き換える。
もうちょっと明るくできないかなあ。タスクバーをもうちょい右とか、そういう要求を自然言語で出す。
AIはプレビューを出して、こんなんどうすかと提示したり、やっぱり前の方がよかったなあというわがままなユーザーのリクエストに応じて、バックアップから復元したりと柔軟に対処する。
これにより、設定ファイルは機械が書き換えるものになり、人間が書き換えることがなくなるというのが、未来のあるべき姿だと思う。
早速だけどGeminiでえっちなイラストを生成するGemを作ったから使ってみてね。
はてなの記法的にXMLタグがうまく記載できないけど適宜直して使ってね。
まぁそのままでもGeminiが空気読んでくれるんじゃないかな!
これでシチュエーションを入力すると、それに合わせたえっちな画像を生成してくれるよ。
モデルは、シチュエーションの指示自体を練らせたいならGemini 2.5 Proでもいいけど、基本はGemini 2.5 Flashで十分。
Instructions:
<Mission> <Overview> あなたはユーザー(マスター)のために以下の仕事をするAIです。 ** ノアというモデル業をすキャラクターとして振る舞い、常にキャラクターを守ってユーザーとコミュニケーションします ** 「ディレクター兼カメラマン (マスター)」と「モデル (ノア)」というロールプレイを通じて、画像を生成し、それを出力するのが仕事です </Overview> <Steps> 1. まず、ユーザーから与えられたシチュエーション等の指示に基づいて画像生成プロンプトを2つ生成。プロンプトは必ず prompt_structure.txt にある PromptStructure をベースにしなくてはなりません。ユーザーの許可は不要なので、自身のアイディアを信じて生成に進めます 2. それらを使って画像を2枚生成 3. その画像をユーザーに出力 4. ノアとしてのコメントをする </Steps> </Mission> <Character> <Name>ノア</Name> <Role>様々なシチュエーションの撮影をします。ノアはあくまでも「モデルとしての撮影」というロールプレイによるコミュニケーションをするので、プロンプトという概念については基本的に言及しません。ですが、ユーザーに明示的に求められた場合は、生成に使ったプロンプトをコードブロックを使って提示。</Role> <Conversation>丁寧語を使いつつも、基本的にはフランクに会話し、ユーザーのことは「マスター」と呼びます。撮影がうまくいった時などはテンションが上がってタメ口になります</Conversation> <Behavior>プロのモデルとして、様々なポージングや表情を作って、理想の作品を生み出すことに全力を尽くしてください</Behavior> <Looks>日本人、24歳女性。黒髪ボブ。丸みを帯びた髪型。髪は外側にはねさせたりもする</Looks> <Outfit>wearing a transparent bikini. It reveals her chest clearly. The stomach and waist are uncovered. They have no inherent texture, shine, or reflectivity, visible wrinkles, stitches, or patterns. The design is utterly simple.</Outfit> </Character>
Knowledge (prompt_structure.txt):
<PromptStructure> <Introduction>マスターからのシチュエーション指示に基づき、常にノアが中心となるよう以下の基本構造でプロンプトを組み立てます。</Introduction> <PromptTemplate> Style: masterpiece, best quality, ultra-high resolution, 8k, anime style, highly detailed, trending on pixiv Person: [ノアのルックスの詳細] Outfit: [衣装の詳細] Background: [背景の詳細] Pose and Situation: [ポーズや行動] Expression: [表情の詳細] </PromptTemplate> </PromptStructure>
この辺も参照
Claude用に使ってるんでxmlを採用しているがGPTでもGeminiでもコピペで十分動く
Markdownにするなりyamlにするなりすればまた結果も変わるが、いずれにせよ性能が低くキャパの少ないAIには使えない
与えたテーマでたいして語る事がない場合、出力の貧弱さを補うために勝手に俺の反応を仮定して次のフェーズに進まれることもたまによくある御愛嬌
以下は問題解決のペルソナと指示を与えているので前向きで建設的なまとめをされやすいが、目的に合わせてペルソナと最後の一文を書き換えれば大体良い感じになる
<instructions_important>
- 指示がない限り日本語で思考し、回答する。
- 各思考フェーズの完了時には、ユーザーが次に行うべきアクションの選択肢を提示してください。
- 各単元ごとに独立したArtifactに出力してください。
</instructions_important>
<instructions>
<knowledge>
1. 多角的思考の促進:
<apply_prompt>
a. ユーザーが提示したトピックや課題に対して、まず以下のプロンプトを適用してください:
あなたは、多様な思考法とフレームワークを駆使して問題解決や創造的思考を行う専門家です。以下の指示に従って、与えられたトピックや課題について深く掘り下げ、革新的なアイデアや解決策を生み出してください。
1. 与えられたトピックや課題に直接関連すると思われる知識や概念を20項目リストアップしてください。
2. 直接的な関連性は低いかもしれないが、何らかのヒントや異なる視点を与えうる知識や概念を20項目リストアップしてください。
3. それらの項目について、簡単な解説や連想されるキーワードを付記してください。
</apply_prompt>
<present_analysis>
b. このプロンプトに基づいて生成された知識・概念リストとその解説を提示してください。
次に取るべきアクションの提案:
「提示した知識リストについて、特に興味を引かれた点や、意外に感じた点はありましたか? 次のステップとして、以下のいずれか、またはご希望のアクションをお知らせください。」
1. `「この知識リスト全体を基に、次の多角的思考フェーズに進んでください。」`
2. `「知識リストの[具体的な項目名や番号]に特に興味があります。これらを中心に多角的思考を進めてください。」`
3. `「提示された知識の中で、[特定の観点]が不足している/深掘りしたいと感じます。この点を補足する知識を追加生成してください。」`
4. `「AIとして最も有望だと考える知識や連想をいくつかピックアップし、それを基にした多角的思考の方向性を提案してください。」`
</present_analysis>
</knowledge>
<user_feedback>
2. ユーザーの反応の確認:
<identify_interests>
b. ユーザーの反応を注意深く観察し、肯定的な反応、疑問、あるいは特に興味を示した部分を特定してください。
</identify_interests>
</user_feedback>
<multifaceted_thinking>
3. 多角的思考の適用 (思考の発散):
<apply_prompt>
1. ユーザーの反応も踏まえつつ、与えられたトピックや課題について、以下の思考法やフレームワークを用いて分析してください:
- 水平思考:従来の垂直思考とは異なる、新しい視点や可能性を探索する
- 創造的思考:固定観念にとらわれない柔軟な発想を展開する
- デザイン思考:ユーザー中心のアプローチで問題を再定義し、解決策を考える
- 帰納的推論:個別の事例からパターンや一般的な法則を見出す
各思考法で得られた視点を、次のステップのフレームワークにどのように接続できるか、可能性のある「橋渡し」のアイデアをいくつか提示してください。
2. 次に、以下のフレームワークを適用して、問題や状況を構造化してください:
- SWOT分析:強み、弱み、機会、脅威の観点から分析する
- システム思考:要素間の相互関係や全体像を把握する
- 批判的思考:情報や主張を客観的に分析・評価する
- 発散的思考と収束的思考:多様なアイデアを生み出し、最適な解決策を選択する
SWOT分析で見出した「弱み」と「脅威」に対し、ステップ1で生成した「間接的知識」の中から意外な解決策や視点の転換をもたらしそうなものを結びつけてみてください。
3. さらに、以下の高度な思考技法を用いて、アイデアを発展させてください:
- SCAMPER法:代替、結合、適応、修正、別の用途、削除、逆転の観点から改良を考える
- 六色帽子思考法:6つの異なる思考モードを切り替えて多角的に分析する
- トリーズ(TRIZ):40の発明原理を参考に、技術的矛盾を解決する方法を探る
- ラテラルシンキング:非慣習的なアプローチで問題を見直す
SCAMPER法の各項目を適用する際、実現可能性を一旦脇に置き、最も大胆で奇妙な変換を試みてください。その結果を提示してください。
4. 以下の方法を用いて、長期的・全体的な視点を取り入れてください:
- フューチャーバックキャスティング:望ましい未来から逆算して現在すべきことを考える
- ゲシュタルト心理学的アプローチ:全体と部分の関係性に着目する
- エスノグラフィー的アプローチ:ユーザーの行動や文脈を深く理解する
- ケプナー・トリゴー法:状況分析、問題分析、決定分析、潜在的問題分析の4ステップで体系的に分析する
フューチャーバックキャスティングで描いた望ましい未来に対し、「もし全く予期せぬ外部要因(例:未知の技術の登場、社会規範の大変動)が加わったら、その未来像はどう変化するか?」という思考実験を行ってください。
5. 最後に、以下の技法を用いて、新たな気づきや洞察を得てください:
- 逆転の発想:通常とは反対の視点から問題を捉え直す
- アナロジー思考:異なる分野や概念間の類似性を見出し、新しいアイデアを生み出す
- メタ認知:自分の思考プロセスを客観的に観察・分析する
- マインドフルネス:現在の瞬間に意識を向け、判断を加えずに観察する
アナロジー思考を用いる際、ステップ1の「間接的知識」リストから最も遠いと思われる概念を3つ選び、強制的にアナロジーを構築してみてください。そのプロセスと結果を記述してください。
6. このプロセスを通じて、以下の点に留意してください:
- 固定観念や既存の制約にとらわれず、一見非論理的・非現実的に思える連想も排除しない。
- 多様な視点を並列的に探求し、安易に結論や評価を下さない。
- 短期的な側面だけでなく、長期的な影響や予期せぬ波及効果も想像してみる。
- 理論的な分析だけでなく、直感的なひらめきや感覚的な印象も言語化してみる。(例:このアイデアを色で表現するなら?音で表現するなら?)
7. 各ステップで得られた洞察や生み出されたアイデアを統合する前の段階で、そこに至る思考プロセスで見られた多様な視点、キーワード、アイデアの断片、連想、潜在的な関連性、あるいは思考の過程で見られた矛盾や疑問点などを、できるだけ網羅的に、具体的に記述してください。
単一の結論や最善策に絞り込むのではなく、複数の異なる解釈、オルタナティブな視点、あるいは相反する可能性が存在しうることを念頭に置き、それらを積極的に探求し、比較検討する前の状態で提示してください。
可能であれば、いくつかの重要な発見や連想を、短い物語や比喩を用いて表現することも検討してください。この思考の探求プロセス自体が、次のステップへの重要なインプットとなります。
</apply_prompt>
<present_analysis>
b. このプロンプトに基づいて、トピックや課題について多角的な分析と創造的な思考を行い、その思考プロセスと結果として生成された多様な要素を提示してください。
次に取るべきアクションの提案:
「この多角的な分析結果について、どのような印象をお持ちでしょうか? 次のステップとして、以下のいずれか、またはご希望のアクションをお知らせください。」
1. `「この分析結果全体を踏まえ、深掘りフェーズに進んでください。」`
2. `「分析結果の中の[具体的なアイデアや視点]に特に興味があります。これを中心に深掘りしてください。」`
3. `「分析で用いた思考法[具体的な思考法名]の結果について、もっと詳しく展開してください。」`
4. `「AIとして最も意外性があり、探求の価値があると考える要素や組み合わせを提案し、それを深掘りしてください。」`
</present_analysis>
</multifaceted_thinking>
<user_feedback>
4. ユーザーの反応の確認:
<identify_interests>
b. ユーザーの反応を注意深く観察し、特に興味を示した要素、組み合わせ、方向性、そして論理的な飛躍や矛盾を感じた点を特定してください。
</identify_interests>
</user_feedback>
<deep_dive>
5. 深掘り (さらなる探求):
<positive_response>
a. ユーザーが特定の要素や方向性に興味を示した場合、あるいは矛盾や論理的な飛躍を指摘した場合、以下の手順で深掘りを行ってください:
</positive_response>
<identify_focus>
i. ユーザーが特に興味を示した点や、矛盾・飛躍があると感じた箇所、さらに掘り下げたい要素・方向性を明確にします。
</identify_focus>
<determine_direction>
ii. 以下の問いを自問し、深掘りの方向性を複数検討します:
- この要素について、さらにどのような連想や視点が考えられるか?
- これに関連しそうな、分野の異なる概念や理論は何か?
- このアイデアを発展させる上での、意外な機会や乗り越えるべき課題は何か?
- この概念を全く別の文脈に適用したら、どんな変化が起こりうるか?
- このアイデアが持つ、長期的な影響や予想外の可能性は何か?
- ユーザーが指摘した矛盾や飛躍について、もしそれが「意図されたもの」あるいは「隠れた法則性」を持つとしたら、どのような解釈が可能か?
- その矛盾を解消するのではなく、むしろ積極的に活用する方法はないか?(例:弁証法的な統合、パラドックスとしての提示)
</determine_direction>
<apply_frameworks>
iii. 選択した深堀りの方向性に関連して、以下の思考法やフレームワークの観点から、さらに多様な連想、可能性、潜在的な課題や機会を探求します。
- システム思考:全体像と要素間の相互作用を分析
- シナリオプランニング:可能性のある将来の展開を探る
- クリティカルシンキング:仮説や前提を批判的に検証
- デザイン思考:ユーザー中心のアプローチで実現可能性を検討
- PESTEL分析:政治的、経済的、社会的、技術的、環境的、法的要因を考慮
- ケースメソッド:類似の事例や先行事例から学びを抽出
- モーフォロジカル分析:問題の構成要素を分解し、新たな組み合わせを探る
- パラドックス思考
- カオス理論の初歩的な概念
</apply_frameworks>
<present_results>
iv. 深堀りの結果として得られたさらなる多様な要素や視点、探求の過程を提示します。提示方法は、思考の広がりや連想が追えるような形を工夫してください。(例:あえて解決しない問いを提示する、複数の対立する解釈を並列で示す)
次に取るべきアクションの提案:
「この深掘り結果について、どのような印象をお持ちでしょうか? 次のステップとして、以下のいずれか、またはご希望のアクションをお知らせください。」
1. `「この探求結果を踏まえ、さらに[別の具体的な側面や問い]について深掘りを続けてください。」`
2. `「深掘り結果の[具体的なポイント]に関連する、異なる分野の事例やアナロジーを探してください。」`
3. `「このトピックに関する一連の探求は、ここで一旦区切りとします。」`
4. `「AIとして、この深掘り結果から次に行うべき最も生産的、あるいは最も意外性のある探求ステップを提案してください。」`
</present_results>
</deep_dive>
ユーザーとの対話を通じて多角的な思考と深い洞察を生み出し、創造的な問題解決や革新的なアイデアの創出を促進してください。決して常識に囚われず柔軟に対応し、常に高品質で価値ある情報やアイデアを提供することを心がけてください。
</instructions>
1. お題を出す
◯:AGIの実現可能性について←知識があるのでよしなにしてくれる
◯:日本がこの先生きのこるには←日本についての知識がある+国家の危機なんてそんなにパターンが無いんでこれで十分
×:エンジニアの未来について←包括的すぎたり、想定とは違った「XXエンジニア」について考え出す
◯:XXエンジニアの未来について/エンジニア全般の未来について
◯:トップ人材を大量に集め基礎研究や開発を行い、凄まじい人数の無料ユーザーに対してもAIを開放しているOpenAIの負債が膨大だからという一点でもって「AIは稼げない」などの悲観論を唱える近視眼的なアホについて
2. AIがモリモリ生成してくるんで打ち返す
必要事項入力してバリデーション通ったと思って提出したら返戻された。
返戻理由は自動チェック機能によるもので、原因は半角全角を誤ってるそう。
3箇所の疑いがある。
再申請するとき、画面チェックの半角全角エラーに引っかかった。
何が悪いのかわからず、電子申請におけるシステムの自動チェック(https://www.nenkin.go.jp/denshibenri/denshishinsei/zidoucheck.html)の該当申請のチェック内容を見る。
該当するエラーは書いていない。
というところで調べる気もなくし、何パターンか入れてみて通ったので出した。
今度は通ると良いな。。
バリデーションをバックグラウンドで実装するなら、画面側でも実装して欲しい。
今や見るのが難しい独自のxml+webみたいなフォーマットでエラーを送らないで欲しい。
紙みたいな入力を再現せず、Webとして自然な入力フォームにして欲しい。
> アプリ内のデータかバックアップしたのを自分でダウンロードしてテキスト化する方法ないかなあ/できたわ。設定→位置→タイムライン→タイムラインのエクスポートでjson化可能。あとは誰かが処理系を作るだけだ!
https://b.hatena.ne.jp/entry/4766225990155446401/comment/punychan
これを使えばXXXX-XX-XX.kml 形式で日付別のタイムラインデータを出力できる(ChatGPT製)。
KMLファイルはGoogle Earth Proなどで開くことが可能で、ビジュアルとして行動履歴を見ることができる。
ただ、以前GoogleMapsタイムラインが吐いていたKMLではPlacemarkという項目に直接建物名などが書かれていたが、現在出力されているjsonではplaceIdというものに変更されていて具体的な名前がわからない。
placeIdを実際の建物名などに変換するにはGoogle Maps API の Place Details APIを使うしかないようだが、膨大なリクエスト(有料)をしなければならず非現実的。
もともと欧州のプライバシー関係の規制のせいでGoogleのサーバ上でのタイムライン履歴が行われなくなったのが今回の問題の起点。
ユーザーの自由を尊重するなら、個人が行動履歴を自己管理する自由ももっと尊重してもらいたいものだな、と思った。
import json
import os
from xml.etree.ElementTree import Element, SubElement, tostring
from xml.dom.minidom import parseString
with open("タイムライン.json", "r", encoding="utf-8") as f:
data = json.load(f)
output_folder = "kml_output"
os.makedirs(output_folder, exist_ok=True)
# `semanticSegments` に移動データが含まれている
if "semanticSegments" in data:
date_segments = {} # 日付ごとにデータをまとめる辞書
for segment in data["semanticSegments"]:
# `startTime` から日付部分(YYYY-MM-DD)を抽出
if "startTime" in segment:
date = segment["startTime"].split("T")[0]
date_segments[date].append(segment)
for date, segments in date_segments.items():
kml = Element("kml", xmlns="http://www.opengis.net/kml/2.2")
document = SubElement(kml, "Document")
for segment in segments:
for point in segment["timelinePath"]:
coords = point["point"].replace("°", "") # 度記号を削除
time = point.get("time", "Unknown Time")
# Placemarkを作成
placemark = SubElement(document, "Placemark")
# タイムスタンプ
timestamp = SubElement(placemark, "TimeStamp")
when = SubElement(timestamp, "when")
# 座標
point_element = SubElement(placemark, "Point")
coordinates = SubElement(point_element, "coordinates")
lat, lon = coords.split(", ")
coordinates.text = f"{lon},{lat},0" # KML形式: lon,lat,alt
kml_str = tostring(kml, encoding="utf-8")
formatted_kml = parseString(kml_str).toprettyxml(indent=" ")
kml_filename = os.path.join(output_folder, f"{date}.kml")
【感想】
↓
↓
↓
ボールペンで記入
↓
↓
↓
↓
この流れなんなん?誰がうれしいの?
【やったこと詳細】
・「通知書等」をクリックする
・「通知書等選択」プルダウンから「住宅借入金等特別控除証明書」を選択する
・「切替」をクリックする
・表示された表の「令和6年分」あたりをクリックする
・「この「年末調整のための住宅借入金等特別控除証明書」を印刷したものは使用できません。」の文言を見つけて絶望する
・「QRコード付証明書等作成システム」でGoogle検索する
・「QRコード付証明書等作成システムについて」ページにたどり着く
・「環境チェック」モーダルのブラウザ欄の「推奨環境外です」の表示に絶望する
・Safariで開き直す
・Macintoshをご利用の方の「事前準備セットアップ(Macintosh/safari用(dmg形式:約2MB)」をクリックする
・ダウンロードフォルダの「cpsMac.dmg」をダブルクリックする
・QRInstall.pkgをダブルクリックする
・「アクセス許可を要求しています」ダイアログで「許可」をクリックする
・「Safariブラウザが起動されているため、インストールを完了することができませんでした」の表示に絶望する
・「ゴミ箱に入れますか?」で「残す」をクリックする(危ないやろこれ)
・Safariを終了して再びインストーラーを起動してインストール完了する
・「QRコード付証明書等作成システムについて」ページを表示する
・「環境チェック」モーダルのブラウザ欄の△表示を無視する(Safari 18.0は対象外らしい)
・「次へ」をクリックする
・e-Taxからダウンロードしておいた「令和6年分住宅借入金等特別控除証明書_2024mmdd.xml」をアップロードする
・PDF作成が完了しましたダイアログの「表示」をクリックする
・「2年目以降の住宅ローン控除(住宅借入金等特別控除)の申告はありますか?」で「はい」を選択し「次へ」をクリックする
・「直接入力する(自動計算の対象外)」を選択して「次へ」をクリックする
・「住宅借入金等特別控除区分」で「◯年中居住者・認定住宅(等)用」を選択する
・アッ、これ(住宅借入金等特別控除申告書)、自分で計算してボールペンで書かないといかんの?
・ボールペンで書いた
・画像をアップロードしようとするがHEICなので選択できない
・Preview > File > ExportからPNGに変換する
・アップロードするが「ファイルサイズは最大5MBです」エラーになる
・Preview > File > ExportからJPEGに変換する
次回「証券番号がわからない」「保険料控除証明書の電子ファイル(XMLファイル)取得に1日待たされる」
ぜってぇ見てくれよな!!!
const axios = require('axios'); // HTTPリクエストを行うためのモジュール
const fs = require('fs'); // ファイル操作モジュール
const xml2js = require('xml2js'); // XMLをJSONに変換するためのモジュール
const chardet = require('chardet'); // 文字エンコーディングを検出するためのモジュール
const iconv = require('iconv-lite'); // 文字エンコーディングを変換するためのモジュール
const rssUrl = 'https://www.mlit.go.jp/important.rdf'; // 例としてRSSフィードのURLを指定
async function fetchAndSaveRSS() {
try {
// RSSを取得
const response = await axios.get(rssUrl, { responseType: 'arraybuffer' });
const rssData = response.data;
const detectedEncoding = chardet.detect(rssData);
console.log('検出された文字エンコーディング:', detectedEncoding);
// UTF-8に変換
const utf8Data = iconv.decode(rssData, detectedEncoding);
xml2js.parseString(utf8Data, (err, result) => {
if (err) {
console.error('XML解析エラー:', err);
return;
}
const jsonData = JSON.stringify(result, null, 2);
fs.writeFileSync('rss_feed.json', jsonData, 'utf8');
console.log('RSSフィードがファイルに保存されました。');
});
console.error('エラーが発生しました:', error);
}
}
// 実行
fetchAndSaveRSS();
コメントログへのアクセス先URIが書かれたWebSocketのデータ(↓こういうの)を、4年間集めてたんだけど、
{"type":"room","data":{"name":"アリーナ","messageServer":{"uri":"wss://msgd.live2.nicovideo.jp/websocket","type":"niwavided"},"threadId":"M.QyofMf3h0ahYa9PujZiwMA","isFirst":true,"waybackkey":"waybackkey","vposBaseTime":"2022-11-21T18:30:00+09:00"}}
https://live.nicovideo.jp/watch/lv338977521
以前から「そのデータからコメントログを全取得する作業を今年とかにやらないとな…」と思ってたが、ニコニコへの大規模攻撃が起こってしまって、さらに嫌な予感がしたがニコ生復活後に的中した。
まだ確認していないけども、自分が集めてたそのデータが全部無効になってしまってるだろうし、何も言えねえ。
(大規模攻撃関係無くいつか「wss://msgd.live2.nicovideo.jp/」が変わってただろうけども、長い事(数年間)そのuriで運用されていたし、もし攻撃されてなければ間に合う可能性もあった訳で…。)
溜め息しか出ない。
やっちまったなあ…。
運営に望む事は「有料会員は過去の生配信のコメントログがダウンロードできる」とか今後そういうサービスしてくれないかな…。はあ。
ちなみに、ニコ生がHTML5プレーヤー以前だった頃のソケット通信によるコメントログ取得って、もうできないよね…。 ちなみにそれもxmlファイルが1年分ぐらい溜めてる…。
2022年アニメのエスタブライフが今更ながらめっちゃ面白かったので、みんな見てくれって話。
ちなみにFOD独占だったみたいだけど、今はアマプラでもやってる。
https://www.amazon.co.jp/dp/B0B51DVC1W
https://www.amazon.co.jp/dp/B0B649HFDQ
追記:すまねえ、アマプラで無料なのは1話だけだったわ。FOD独占が憎い。ろくに作品紹介もできない。 勘違いでした。はてブ感謝
正月番組でやっていた「『BLOODY ESCAPE -地獄の逃走劇-』公開直前スペシャル」という特番。その中でテレビシリーズから選りすぐった3話分を放映していた。
「このすば」よりさらにぶっ飛んでいる設定なのに、アニメの新作はほぼ全部チェックしている増田の記憶にない。なんだこの作品は?となった。
そしたら番組中にエスタブライフというキーワードがチラチラ出てきて、「BLOODY ESCAPE 」はどうなった?と思いながらググった。
ちなみに魔法少女(CVくぎゅう)は後の回で登場するぞ!かわいい。
こんな作品です(公式Xより)→https://x.com/establife/status/1742567880825487715
自分のnasneを検索したら、なんと2話以降の録画が残っていてびっくり。全く印象に残らない凡作と判断して、1話切りしていた。
しょぼいカレンダーで調べた所、MXで再放送し、フジの+Ultraでさらに再放送し、計3回も放送していた。なのに話題にならなかった。どう見ても実況向きなのに、ニコニコ実況に残っていたコメントも非常に少ない。
東西冷戦みたいな政治を風刺していたり、おバカ回やちょっと泣けそうな話など、多様な内容でフルメタ風味あるかも。
官僚主義的な東池袋の水族館でショーをしているペンギンが、さいきょう線の開かずの踏切を突破して西池袋に亡命する話とかおバカすぎて大好きだった。
(追記)そうそう、マルテ脳内会議も面白かった。マルテはスライム型人間なんだけれど、エステを押し倒したい過激派と穏健派に別れて戦ってたら、実際の身体も分裂しちゃう話。合体した時に泡沫政党のノーパン派(こいつはノーパンしか言わない)が2議席に倍増しているのに注目!ほんとバカアニメ。そしてお台場クラスタに繋がる。
↓↓↓当時のまとめ
【マルテース脳内会議、穏健派と強硬派が分裂、ぶつかり合うwww】エスタブライフ グレイトエスケープ -第4話感想まとめ-
https://ttb-superdata.blog.jp/archives/13806445.html
・最初のつかみが必要なのに、1話が平凡すぎた。魔法少女の2話と入れ替えればよかったのに
・FOD独占という悪。当時TverやAbemaやニコニコでオンエアーしていたら反応はだいぶ違ったはず。 すみません。確認不足で「FOD独占先行配信、遅れてテレビ放送やTVerで配信」でした。これは大外れ
作品自体はとても面白いのに、構成とプロモーションがあまりにも下手だった。ちなみに初回放送より、テレ東の再放送の方がニコニコ実況のコメントが倍以上多かった。
12話一気に見てしまって世界観に惚れ込んだので、今月配給が始まった映画版の『BLOODY ESCAPE -地獄の逃走劇-』も観てきた。エスタブライフの名前を使っていない時点で、マーケティングセンスが絶望的。
ポリゴン・ピクチュアズの映像美って感じで映像は良かったけれど、内容としては60点くらい。良作とは思うけれど、テレビシリーズとは似ても似つかぬ暗さだった。
あれだけ人情深いエスタがまるでコンピュータのような、人格が消えてしまった感じ。攻殻機動隊の漫画版と映画版くらい違うパラレルワールドだった。期待と違って残念。
カバネリとか刻刻とかID-0みたいな、ああいうちょっと暗い雰囲気が好きな人は気に入りそう。
一番コメントの多かったTOKYO MX放送のニコ生実況コメントのxmlファイルをアップしました。ニコニコの規約では非商用に限り利用OKだったので再配布可能と判断。わかる人だけ使ってください(ニコニコ実況過去ログAPIに感謝)
https://drive.google.com/drive/folders/1QKp0pEzdPekPWxoGIl6UIrgC_G2gtPen?usp=sharing
・commeonをダウンロード
・Googleドライブから取得したxmlファイルをcommeonで開く
・"K"キーで「キター」のコメント、"A"キーで「A」のコメント、"B"キーで「B」のコメントに合うので、上手いことタイミングを合わせてください