


[{"content":"","date":"2026年5月3日","externalUrl":null,"permalink":"/","section":"icysamon's blog","summary":"","title":"icysamon's blog","type":"page"},{"content":"UGC \u0026amp; ショート動画再生数が1,000回達成しました！\n感謝！感激！雨アラモード！\n","date":"2026年5月3日","externalUrl":null,"permalink":"/posts/2026/05/1000-ugc-play/","section":"記事","summary":"","title":"UGC \u0026 ショート動画再生数1,000回達成！","type":"posts"},{"content":"","date":"2026年5月3日","externalUrl":null,"permalink":"/categories/","section":"カテゴリー","summary":"","title":"カテゴリー","type":"categories"},{"content":"","date":"2026年5月3日","externalUrl":null,"permalink":"/categories/musician/","section":"カテゴリー","summary":"","title":"音楽活動","type":"categories"},{"content":"","date":"2026年5月3日","externalUrl":null,"permalink":"/posts/","section":"記事","summary":"","title":"記事","type":"posts"},{"content":" お題「夢の世界をイメージした曲」 # #深夜の2時間DTM お題「夢の世界をイメージした曲」 pic.twitter.com/6rkJA1An0k\n\u0026mdash; icysamon (@icysamon) April 27, 2026 ","date":"2026年4月30日","externalUrl":null,"permalink":"/posts/2026/04/2hoursdtm/","section":"記事","summary":"","title":"「深夜の2時間DTM」4月まとめ","type":"posts"},{"content":"","date":"2026年4月30日","externalUrl":null,"permalink":"/tags/","section":"タグ","summary":"","title":"タグ","type":"tags"},{"content":"","date":"2026年4月30日","externalUrl":null,"permalink":"/tags/2hoursdtm/","section":"タグ","summary":"","title":"深夜の2時間DTM","type":"tags"},{"content":"皆さんもご存じていると思うが、僕は外国人なので最始このブログを立ち上げた大きな理由の一つは日本語の勉強のためです。\nおかげで僕は日本語能力試験最高レベルの N1 を取得しました。\nしかしペンで書くとなるとなかなか書けないのでこっちのレベルも上げたいと考えています。\n手書きの入力効率は悪いので今後の記事の字数は少なくなると思います。\nまあ本来も多くないですが…\n","date":"2026年4月28日","externalUrl":null,"permalink":"/posts/2026/04/decided-to-write-articles-by-hand/","section":"記事","summary":"","title":"今後は手書きで記事を書くことに決めた","type":"posts"},{"content":"","date":"2026年4月28日","externalUrl":null,"permalink":"/categories/notebook/","section":"カテゴリー","summary":"","title":"雑記帳","type":"categories"},{"content":"","date":"2026年4月9日","externalUrl":null,"permalink":"/tags/ai/","section":"タグ","summary":"","title":"AI","type":"tags"},{"content":"","date":"2026年4月9日","externalUrl":null,"permalink":"/tags/git/","section":"タグ","summary":"","title":"Git","type":"tags"},{"content":" はじめに # 実は二ヶ月前 OpenClaw を試してみたが、その時は寒いのでずっとベットの中に引きこもって記事はほとんど書いていませんでした。\n最初はメイン PC としての Windows にインストールしたが、ファイルの削除やソフトのインストールが自動的にできるとわかって、セキュリティー面にちょと不安ので Raspberry Pi に移行しました。\nそして僕は Discord を通じて OpenClaw に指示を与えています。\nサイトの構築 # 最初は観たアニメを記録するサイトを作ってと言ったら本当に作られたのでめっちゃ面白かったです。\n先日大話題になったOpenClaw をRaspberry Pi にインストールしてみた。「アニメを記録するサイトが欲しい」と言って本当に作ってくれた…（コーティングやサーバの構築など一切してない。Discord でチャットのみ行った）これめっちゃえぐい pic.twitter.com/ilhDRO8uWv\n\u0026mdash; icysamon (@icysamon) February 27, 2026 しかしその後またいくつの修正依頼を出してサイトが壊れちゃいました。そしてどう言っても直されません。\n定期任務 # OpenClaw に定期任務をさせることもできます。僕は毎朝に当時の天気を教えてと言って、そして本当に毎朝天気のメッセージがでました。\nだが、それを止めてを言ってもこの定時任務がずっと毎朝実行されていました。\nおかげで毎日起こされました。💢\nDiscord でミュートしたらすぐ通知を飛び出すことができるがなんか技術者として負けた気がするのでそのまま放置しました\u0026hellip;\n最後は SSH で cron フォルダをクリアしたら止めました。\nGit # OpenClaw は自分で Git を使うこともできるらしいが、僕は2回しか成功しませんでした。\nOpenClaw さんが成功だと言っても実際何も Push \u0026amp; Pull していないのは僕にとって普通なのだ。\n僕が使っているのは XAI の無料 API ので多分性能が悪いかも？\nちなみにその無料 API は回収されたらしいです。😇\nおわりに # 結論と言えば OpenClaw は面白いです。\n僕は別のことに専念しているので OpenClaw にはあんまり精力を注げていませんので上手くできなかった。\n現時点見れば、今後一部の機能は PC に搭載されるだろう。\nしかし OpenAI が ChatGPT をリリーズしたところように次世代なようなものではないと思います。\n特にセキュリティーの視点で考えれば現時点には難しいと思います。\nそれは難しい話ですよね。将来のこと、誰もわからないから。\nだが逆に電子工作のロボットや何かに役立つと思います。多分今後いろんな面白電子工作のアイデアが世の中に溢れるかも。\n将来、わくわくします。\n","date":"2026年4月9日","externalUrl":null,"permalink":"/posts/2026/04/openclaw/","section":"記事","summary":"","title":"OpenClaw","type":"posts"},{"content":"","date":"2026年4月9日","externalUrl":null,"permalink":"/tags/raspberry-pi/","section":"タグ","summary":"","title":"Raspberry Pi","type":"tags"},{"content":"","date":"2026年4月9日","externalUrl":null,"permalink":"/tags/technology/","section":"タグ","summary":"","title":"技術","type":"tags"},{"content":"ストリーミングの再生数が1000回達成しました！\n皆さんありがとうございます😭\n","date":"2026年4月5日","externalUrl":null,"permalink":"/posts/2026/04/1000play/","section":"記事","summary":"","title":"再生数1000回達成！","type":"posts"},{"content":"","date":"2026年4月4日","externalUrl":null,"permalink":"/tags/hugo/","section":"タグ","summary":"","title":"Hugo","type":"tags"},{"content":"今日はテーマの切り替え作業を行いました。\nWordPress と比べたら Hugo のテーマ変更はとても大変なので、本来はしたくないが\u0026hellip;\nもとのテーマ「Stack」最近の更新が不安定、機能がやや少ない、制限が多いなどを感じ、Blowfish への移行を決めました。\nそして Blowfish はさかな🐟なので私との相性がバッチリです。\n","date":"2026年4月4日","externalUrl":null,"permalink":"/posts/2026/04/change-site-theme/","section":"記事","summary":"","title":"サイトテーマを Blowfish に切り替えた","type":"posts"},{"content":" お題「寂しさをイメージした曲」 # #深夜の2時間DTM お題「寂しさをイメージした曲」 pic.twitter.com/WcDsG7Y8Ak\n\u0026mdash; icysamon (@icysamon) March 18, 2026 お題「爽快感をイメージした曲」 # #深夜の2時間DTM お題「爽快感をイメージした曲」\nKawaii Future Bass を試してみた。め〜っちゃ難しい💦 pic.twitter.com/zchqaMz7bG\n\u0026mdash; icysamon (@icysamon) March 28, 2026 ","date":"2026年3月31日","externalUrl":null,"permalink":"/posts/2026/03/2hoursdtm/","section":"記事","summary":"","title":"「深夜の2時間DTM」3月まとめ","type":"posts"},{"content":"","date":"2026年3月1日","externalUrl":null,"permalink":"/tags/instrumental/","section":"タグ","summary":"","title":"インストゥルメンタル","type":"tags"},{"content":"","date":"2026年3月1日","externalUrl":"https://linkco.re/QbSRXxTe","permalink":"/posts/2026/03/ginkgo-avenue/","section":"記事","summary":"","title":"新曲「イチョウ並木」","type":"posts"},{"content":" お題「ジャンル：R\u0026amp;B」 # #深夜の2時間DTM お題「ジャンル：R\u0026amp;B」 pic.twitter.com/an9MIWwapn\n\u0026mdash; icysamon (@icysamon) February 2, 2026 お題「場面設定：告白シーン」 # #深夜の2時間DTM お題「場面設定：告白シーン」 pic.twitter.com/u3gccJn8va\n\u0026mdash; icysamon (@icysamon) February 10, 2026 お題「どんより気分をイメージした曲」 # #深夜の2時間DTM お題「どんより気分をイメージした曲」 pic.twitter.com/GyYb0Acbbu\n\u0026mdash; icysamon (@icysamon) February 26, 2026 お題「紅茶をイメージした曲」 # #深夜の2時間DTM　お題「紅茶をイメージした曲」\nCubase 民です。初めて Logic Pro を使ってみた。使い方ぜんぜんわからんので久々にゴミ曲を書いてしまった pic.twitter.com/kHItLMl7pY\n\u0026mdash; icysamon (@icysamon) February 28, 2026 ","date":"2026年2月28日","externalUrl":null,"permalink":"/posts/2026/02/2hoursdtm/","section":"記事","summary":"","title":"「深夜の2時間DTM」2月まとめ","type":"posts"},{"content":"","date":"2026年2月17日","externalUrl":"https://linkco.re/TegU4XHV","permalink":"/posts/2026/02/horse/","section":"記事","summary":"","title":"新曲「午」","type":"posts"},{"content":"","date":"2026年2月15日","externalUrl":null,"permalink":"/tags/raspberry-pi-pico/","section":"タグ","summary":"","title":"Raspberry Pi Pico","type":"tags"},{"content":"今回は Raspberry Pi Pico の C SDK で無線 LAN 時計を作ってみた。\nTM1637-LED の C ライブラリ開発、ntp 通信、省電力の設計などを行なった。\nやっぱり MicroPython より C はめっちゃ大変だった。\nしかし性能のため、省電力のため、我慢しかない！\n最後は USB 給電に切り替えたけど💦\nだって Wi-Fi 通信じゃ移動できないやん（Wi-Fi 設定の変更ができない） ← 完成後に気づいた\nちなみに TM1637-LED のライブラリは GitHub にオープンソースした。\nicysamon/rpi-pico-tm1637 A TM1637 7-segment display library for the Raspberry Pi Pico using the C/C++ SDK. C 0 0 Fusion で モデルを作成した。\nけど高さがちょっと足りないので、基板のピンが先に地面に着いてしまった。\nはい、いつも通りプリンターが壊れた。\n修理にまた数時間掛かった o(╥﹏╥)o\n","date":"2026年2月15日","externalUrl":null,"permalink":"/posts/2026/02/rpi-tm1637-wifi-clock/","section":"記事","summary":"","title":"Raspberry Pi Pico の C SDK で無線 LAN 時計を作ってみた","type":"posts"},{"content":"","date":"2026年2月15日","externalUrl":null,"permalink":"/categories/electronic-kit/","section":"カテゴリー","summary":"","title":"電子工作","type":"categories"},{"content":"","date":"2026年1月26日","externalUrl":null,"permalink":"/tags/godot/","section":"タグ","summary":"","title":"Godot","type":"tags"},{"content":"","date":"2026年1月26日","externalUrl":null,"permalink":"/categories/gamedev/","section":"カテゴリー","summary":"","title":"ゲーム制作","type":"categories"},{"content":" VRM # 人形キャラのモデルは VRM に決めました。\nすべてのキャラクターに同じモーションをできるのはとても魅力的ですね！\nGodot も VRM と MToon をちゃんと対応できるプラグインがあるので助かった！\nキャラクターは VRoid Studio で制作したが、今後は自分でモデリングしたいと考えています。まあ現時点ではまだ早い話と思います。\nキャラステータスシステム # パーティーメンバーの HP, MP などステータスを全体的に表示するキャラクターステータスシステムを実装しました。\nGDShader # 最近は GDShader を勉強しています。\nべたべたでエッチなスライムを作りたいからです。\nそして偶に、意外にかわいい水ボールを作りました！\n魔法として使えるかも！\n","date":"2026年1月26日","externalUrl":null,"permalink":"/posts/2026/01/game-dev/","section":"記事","summary":"","title":"最近の進捗：VRM / キャラステータスシステム / GDShader","type":"posts"},{"content":"","date":"2026年1月25日","externalUrl":"https://linkco.re/fETeZQpE","permalink":"/posts/2026/01/bgm-vol-2/","section":"記事","summary":"","title":"新アルバム「BGM Vol. 2」","type":"posts"},{"content":" お題「馬をイメージした曲」 # #深夜の2時間DTM お題「馬をイメージした曲」\nあけましておめでとうございます！🐎 pic.twitter.com/nTj3kmVBPL\n\u0026mdash; icysamon (@icysamon) January 4, 2026 お題「ダルシマーを用いた曲」 # #深夜の2時間DTM お題「ダルシマーを用いた曲」 pic.twitter.com/TlzVcwUTuU\n\u0026mdash; icysamon (@icysamon) January 9, 2026 お題「氷の星をイメージした曲」 # #深夜の2時間DTM お題「氷の星をイメージした曲」 pic.twitter.com/wAcNDJBhlU\n\u0026mdash; icysamon (@icysamon) January 21, 2026 ","date":"2026年1月22日","externalUrl":null,"permalink":"/posts/2026/01/2hoursdtm/","section":"記事","summary":"","title":"「深夜の2時間DTM」1月まとめ","type":"posts"},{"content":" お題「キラキラした曲」 # #深夜の2時間DTM お題「キラキラした曲」キラキラ✨サカナ🐟（ボカロ） pic.twitter.com/YQlXHJNrai\n\u0026mdash; icysamon (@icysamon) December 2, 2025 お題「迷子をイメージした曲」 # #深夜の2時間DTM お題「迷子をイメージした曲」 pic.twitter.com/v2z5Vi1uNr\n\u0026mdash; icysamon (@icysamon) December 6, 2025 お題「研究所をイメージした曲」 # #深夜の2時間DTM お題「研究所をイメージした曲」 pic.twitter.com/XiSE5YjYa8\n\u0026mdash; icysamon (@icysamon) December 8, 2025 お題「チェロを曲中のどこかで主旋律に用いた曲」 # #深夜の2時間DTM お題「チェロを曲中のどこかで主旋律に用いた曲」 pic.twitter.com/N17UYhTgLu\n\u0026mdash; icysamon (@icysamon) December 11, 2025 お題「ブラスセクション用いた曲」 # #深夜の2時間DTM お題「ブラスセクション用いた曲」 GM No.62 を使用しました pic.twitter.com/gIpliPIA0w\n\u0026mdash; icysamon (@icysamon) December 17, 2025 お題「クリスマスをイメージした曲」 # #深夜の2時間DTM お題は「クリスマスをイメージした曲」 pic.twitter.com/z4w50tnv9N\n\u0026mdash; icysamon (@icysamon) December 20, 2025 お題「今年一年を振り返って」 # #深夜の2時間DTM お題は「今年一年を振り返って」 pic.twitter.com/nBU7jzzeSW\n\u0026mdash; icysamon (@icysamon) December 30, 2025 ","date":"2025年12月30日","externalUrl":null,"permalink":"/posts/2025/12/2hoursdtm/","section":"記事","summary":"","title":"「深夜の2時間DTM」12月まとめ","type":"posts"},{"content":"「Unity 一週間ゲームジャム」に参加しました。お題は「もうひとつ」です。\n今回は少し変わった「五目並べ」のようなゲームを作りました。\nマルチゲームなので彼○ができていないお方にはおすすめしません♡\nリリースはこちら：unityroom.com/games/another\n","date":"2025年12月28日","externalUrl":null,"permalink":"/posts/2025/12/unity1weeks/","section":"記事","summary":"","title":"「Unity 一週間ゲームジャム」に参加した","type":"posts"},{"content":"","date":"2025年12月28日","externalUrl":null,"permalink":"/tags/unity/","section":"タグ","summary":"","title":"Unity","type":"tags"},{"content":"「ピアノインスト投稿祭2」に参加しました。\n#ピアノインスト投稿祭2 pic.twitter.com/vukzQ5DBDA\n\u0026mdash; icysamon (@icysamon) December 27, 2025 皆さんからの嬉しいコメントありがとうございます！\nアイキャッチ画像：Geert Pieters\n","date":"2025年12月27日","externalUrl":null,"permalink":"/posts/2025/12/piano-instrumental-festival-2/","section":"記事","summary":"","title":"「ピアノインスト投稿祭2」に参加した","type":"posts"},{"content":"","date":"2025年12月25日","externalUrl":"https://linkco.re/fETeZQpE","permalink":"/posts/2025/12/bgm-vol-1/","section":"記事","summary":"","title":"新アルバム「BGM Vol. 1」","type":"posts"},{"content":"","date":"2025年12月14日","externalUrl":"https://linkco.re/x59cyTz2","permalink":"/posts/2025/12/the-chart-magician-ost/","section":"記事","summary":"","title":"新アルバム「譜面の魔法使い オリジナルサウンドトラック」","type":"posts"},{"content":"「Godotでゆるっとゲーム制作祭４」に参加しました。\n今回作ったのは「譜面の魔法使い」という音ゲーです。\n譜面を書く、リズムに合わせてスキルを発動のアイデアを考えました。\nリリースはこちら：icysamon.itch.io/the-chart-magician\n","date":"2025年12月14日","externalUrl":null,"permalink":"/posts/2025/12/gygm-4/","section":"記事","summary":"","title":"「Godotでゆるっとゲーム制作祭４」に参加した","type":"posts"},{"content":" お題「画像からイメージした曲」 お題「賢者・大賢者をイメージした曲」 お題「のほほんとした曲」 お題「ベースとドラムだけの曲」 お題「筋トレ時のBGM」 お題「蝋燭をイメージした曲」 お題「居心地よい空間にいる時」 お題「バスーン（＝ファゴット）を用いた曲」 お題「イチョウ並木をイメージした曲」 お題「曲中でテンポが変わる曲」 ","date":"2025年11月29日","externalUrl":null,"permalink":"/posts/2025/11/2hoursdtm/","section":"記事","summary":"","title":"「深夜の2時間DTM」11月まとめ","type":"posts"},{"content":"","date":"2025年11月26日","externalUrl":null,"permalink":"/tags/illustration/","section":"タグ","summary":"","title":"イラスト","type":"tags"},{"content":"あゆたそ様に素敵なイラストを描いていただきました！\n初めてのイラスト依頼でした。\nとてもかわいいです！！🫧\n","date":"2025年11月26日","externalUrl":null,"permalink":"/posts/2025/11/illustration-request/","section":"記事","summary":"","title":"初めてのイラスト依頼","type":"posts"},{"content":"","date":"2025年11月25日","externalUrl":"https://linkco.re/XAuGGdPc","permalink":"/posts/2025/11/to-you-in-2020/","section":"記事","summary":"","title":"新曲「2020年のあなたへ」","type":"posts"},{"content":"","date":"2025年11月21日","externalUrl":"https://linkco.re/EPF8c90n","permalink":"/posts/2025/11/dreaming-fish/","section":"記事","summary":"","title":"新曲「サカナノユメ」","type":"posts"},{"content":"","date":"2025年11月9日","externalUrl":null,"permalink":"/tags/game/","section":"タグ","summary":"","title":"ゲーム","type":"tags"},{"content":"","date":"2025年11月9日","externalUrl":null,"permalink":"/tags/life/","section":"タグ","summary":"","title":"生活","type":"tags"},{"content":"また東京ゲームダンジョンへ行ってきました！\n前の記事はこちら（東京ゲームダンジョン７）。\n今回のゲームは多いですね。前は一階層けど今回は何と二階層まで！\n今回私が一番気になったのはこれです。面白いすぎて夢中になって試遊時間が切れちゃった💦\nさらに隠しステージを見つけた✨\nとてもかわいい。\nらくがき板。\n","date":"2025年11月9日","externalUrl":null,"permalink":"/posts/2025/11/tokyo-game-dungeon-10/","section":"記事","summary":"","title":"東京ゲームダンジョン１０","type":"posts"},{"content":"先日、ツイッターで「深夜の2時間DTM」を初参加しました。\n最初は2時間以内に完成するためにあまり考えず作業を進めてしまい、結果メロディーがぐちゃぐちゃになっていました。\nでも次からだんだん慣れてきました、良い鍛錬になっています。\n私も色んなテーマの曲を挑戦したいので、少なくとも年末まで続けたいと思っています。\n皆さんからのいいねありがとうございました！\n10月の参加作品 # お題「ハロウィンモンスターたちの酒場をイメージした曲」 お題「スカイダイビングをイメージした曲」 お題「紅葉と雪のコラボをイメージした曲」 お題「初恋をイメージした曲」 ","date":"2025年10月27日","externalUrl":null,"permalink":"/posts/2025/10/2hoursdtm-first-time/","section":"記事","summary":"","title":"「深夜の2時間DTM」初参加","type":"posts"},{"content":"Don\u0026rsquo;t be evil. We believe strongly that in the long term, we will be better served [\u0026hellip;] — by a company that does good things for the world even if we forgo some short term gains.\n去年、私は Pixel 8 を購入した。そしてグーグルは最高のソフトウェアと最低のハードウェア技術を持っている会社のように感じた。\nでも今はもうそうと思えない。\nハードウェア # Pixel の Tensor チップの性能は、同世代の Apple M シリーズと比べると、圧倒的に劣っている。Pixel 9 シリーズ以前の Tensor チップはサムスンの半導体工場で製造されたので、先端技術が持つ TSMC で製造したら性能がどんどん上がれるという話もあったが、実際そうではない。Pixel 10 シリーズのチップは TSMC で製造されたが、性能は理想というものではない。\nチップ自身の設計問題だ。\nチップではなく、別の製品も山ほど問題があった。\n例えば私が購入した Pixel Watch、1年も経っていないのに裏蓋はもう剝がれた。\nスマホのボタンの音も iPhone よりずっと大きい。\nさらにスマホを振るとカタカタ音がする、調べたら OIS モジュールの音らしいが、iPhone はこのような問題がなかった。\n値段は iPhone とほぼ同じなら（今はまさか iPhone より高い）、iPhone と同等の体験をするのは当然だと思う。\n新しい Pixel タブレットの開発も中止された。私個人では電子ブックとか楽譜の閲覧が必要が、グーグルはそれを放棄した。\n性能として iPad に追いつかないのは理解できるが、そもそもそう期待していなかったが、タブレット開発を中止するまでするのは流石に理解不能だ。\nもし iPad またはサムスンのタブレットを購入するに決まったら、なぜ私は Pixel を購入する必要があるか。iPhone または Galaxy Phone での体験はもっといいではないか。\nソフトウェア # 一言で言えば、グーグルのソフトウェアは製品ではなく、実験品ような感じがする。\n確かグーグルの技術は高い。特に最近の AI 製品なら様々話題になっている。\nしかし、全体的に見れば、ユーザーとしての体験がたりない。\n海外で Reddit という SNS で、グーグルショップで買いた製品を返品したら、アカウントが閉鎖される話がある。\n以前私のグーグルアカウントのフォントがおかしくなったことがあった、しかし別のアカウントに切り替えたら正常に戻った。ただ私のメインアカウントのみがこうなった。\nインターネットで調べたらこれがランダムのテストというものらしい。これは差別ではないか。なぜ私の同意なしに実験を勝手に起こった。そもそもその新しいフォントは見え難いので、正常の生活に大きな影響を起こった。グーグルに報告し、何週間待っても直されていない。最後はもう我慢できないので、iPhone に切り替えた。\nさらに、グーグルは日本市場を舐めている。そもそもグーグルの開発者自身が自分が開発した Pixel を使っているか。Reddit で開発者自身も iPhone を使っている話もある。\n例えばアプリ設定画面で文字列「アンインストール」の改行、これは一様デフォルトのフォントサイズが、少し調整すれば綺麗になるではないか。英語の Uninstall は長くないが日本で書いたら長くなるよ。\nグーグルはアップルように本格的に日本でオフラインストアを経営していない。海外で売りたいが、でもそんなにお金を掛かりたくないし、ただ英語から翻訳したと私はそう感じている。\n実際 Pixel の部分の機能も英語限定だ。例えば一年前私が使うとき SNS コード認識も英語メッセージ限定だった。\nGoogle Play Store のポイント通知も消されない、たまたまに通知バッジの不具合もあった。体験として最悪。\n最近、Android システム自身もどんどん封じている。Google Play Store の新政策で一人でアプリのリリースはほぼ不可能になった。apk のインストールも様々の条件を付けて厳しくになった。\n間違いなく、グーグルはアップルようになりたい。少なくともその自信満々の値段で（しかしクーポン付）さえ見たら誰でも分かる。\n技術者ではなく普通のユーザーとしては安心なサービスが一番大事だ。どんな先端技術を誇っても、「Don\u0026rsquo;t be evil」という原則を忘れた瞬間、その価値は失われる。\n","date":"2025年10月19日","externalUrl":null,"permalink":"/posts/2025/10/do-not-be-evil/","section":"記事","summary":"","title":"Don't be evil","type":"posts"},{"content":"最近、手元の iPhone と iPad を ios26.0 にアップグレードしたが、個人的に少しずつ不満がある。\nios18 と比べたら確か綺麗になった感じが、システムとしての不具合が多すぎる。\nバッテリー消費の増加と動作が遅くなった感じがする（iPhone16 Pro）。\n日本語システムのバッテリー残量通知の文字位置も調整していない。\nいくらアイコンの林檎に穴がいてもこれが流石に大き過ぎではないか。\nアプリをフォルダーに置いたらダークモードを効かないこともある、そして再起動も解決できない。（アプリ自身がダークモードアイコンを持っている）\nアプリフォルダーのバックグラウンドの透明度が異なる点も気持ち悪い。もっといい方法はないのか。\nもちろんいいところもたくさんある。今回私が一番嬉しい機能は SMB フォルダーにようやく画像プレビューをサポートした。\nしかし、このシステムを完全に使えるようにするのはまだ長い時間を掛かそうよね。\nAI 競争に完全敗北した Apple さん、少なくとも自分が誇るシステムを守ってくれ。\n","date":"2025年9月29日","externalUrl":null,"permalink":"/posts/2025/09/ios26/","section":"記事","summary":"","title":"ios26.0","type":"posts"},{"content":"","date":"2025年9月23日","externalUrl":null,"permalink":"/tags/blender/","section":"タグ","summary":"","title":"Blender","type":"tags"},{"content":"RTS 移動機能を実現した。\nBlender でのキャラクターモデリング練習も続いてし、現在は頭部分を完成した。次は髪のモデリングを目指す！\nカバーような中世の家もモデリングし、ゲーム内に導入した。しかしミラー設定はまだ全体的に応用していないのでちょっと変な形になった。\nそしてモデリングの壁は透明にある不具合があった。最初はこれが Godot 4.5 の新機能と思ったが、調べたらゲームの 3D シーンにはメッシュの片面しかレンダリングしないことが分かった。もちろん今はもう修復した✨。\n","date":"2025年9月23日","externalUrl":null,"permalink":"/posts/2025/09/rts-move-and-blender-practice/","section":"記事","summary":"","title":"RTS 移動と Blender 練習の続き","type":"posts"},{"content":"サイレントウィッチ OST が届いた✨\nとても令嬢ぽいですわ！\n","date":"2025年9月16日","externalUrl":null,"permalink":"/posts/2025/09/silent-witch-ost/","section":"記事","summary":"","title":"サイレントウィッチ OST が届いた","type":"posts"},{"content":"","date":"2025年9月13日","externalUrl":null,"permalink":"/tags/nextjs/","section":"タグ","summary":"","title":"Next.js","type":"tags"},{"content":" バックエンド # バックエンドでは主にシリアル通信データの収集と SSE 通信を行う。\n事前準備 # serial-port.js ファイルを作成し、パッケージの導入と変数の定義をする。\nimport { SerialPort } from \u0026#39;serialport\u0026#39; import http from \u0026#39;http\u0026#39; let data シリアル通信 # 以下のコードを serial-port.js に書いてください。\nconst port = new SerialPort({ path: \u0026#39;COM4\u0026#39;, baudRate: 115200 }, function(err) { if (err) { return console.log(\u0026#39;Error on write: \u0026#39;, err.message); } console.log(\u0026#39;Find the port\u0026#39;); }); port.on(\u0026#39;data\u0026#39;, function(temp) { console.log(\u0026#39;Data:\u0026#39;, temp); data = temp.toString(\u0026#39;utf8\u0026#39;); }); port.on(\u0026#39;error\u0026#39;, function(err) { console.log(\u0026#39;Error: \u0026#39;, err.message); }); SSE 通信 # ここでは8080ポートを使う。\nconst server = http.createServer((req, res) =\u0026gt; { if (req.url === \u0026#39;/stream\u0026#39;) { res.writeHead(200, { \u0026#39;Content-Type\u0026#39;: \u0026#39;text/event-stream\u0026#39;, \u0026#39;Cache-Control\u0026#39;: \u0026#39;no-cache\u0026#39;, \u0026#39;Connection\u0026#39;: \u0026#39;keep-alive\u0026#39;, \u0026#39;Access-Control-Allow-Origin\u0026#39;: \u0026#39;http://localhost:3000\u0026#39;, \u0026#39;Access-Control-Allow-Headers\u0026#39;: \u0026#39;Content-Type\u0026#39; }); const sendData = () =\u0026gt; { if (data \u0026amp;\u0026amp; data.length \u0026gt; 2 ) { res.write(`data: ${data}\\r\\n\\r\\n`); } }; const interval = setInterval(sendData, 1000); req.on(\u0026#39;close\u0026#39;, () =\u0026gt; clearInterval(interval)); } else { res.writeHead(200, { \u0026#39;Content-Type\u0026#39;: \u0026#39;text/html;charset=utf-8\u0026#39; }); res.end(\u0026#39;\u0026lt;p\u0026gt;waitting for data...\u0026lt;/p\u0026gt;\u0026#39;); } }); server.listen(8080, () =\u0026gt; { console.log(\u0026#39;Server running on http://localhost:8080/stream\u0026#39;); }); そしてターミナルで node .\\serial-port.js を実行し、シリアル通信ができた。\nパッケージが見つからない場合 npm install \u0026lt;package name\u0026gt; を試してください。\nフロントエンド # React アプリの作成 # ここでは Next.js (App Router)を使う。\nnpx create-next-app@latest Windows の場合、Set-ExecutionPolicy RemoteSigned -Scope Process で権限を与える必要がある。\npage.tsx # パッケージの導入。\nimport { useEffect } from \u0026#34;react\u0026#34;; Home() 関数の return() にデータを表示するための HTML コードを追加する。\n\u0026lt;pre id=\u0026#34;data-output\u0026#34;\u0026gt;\u0026lt;/pre\u0026gt; SSE 通信からのデータを受けてサイト側に表示する。\nexport default function Home() { useEffect(() =\u0026gt; { const sse = new EventSource(\u0026#39;http://localhost:8080/stream\u0026#39;); const pre = document.getElementById(\u0026#39;data-output\u0026#39;); sse.onmessage = (event) =\u0026gt; { console.log(\u0026#39;Serial Port Data: \u0026#39;, event.data); if (pre) { pre.textContent += event.data + \u0026#39;\\n\u0026#39;; pre.scrollTop = pre.scrollHeight; // Auto scroll to bottom } }; return () =\u0026gt; { sse.close(); }; }, []); 実行 # サイトを構築する。\nnpm run build サイトを実行する。\nnpm run dev ","date":"2025年9月13日","externalUrl":null,"permalink":"/posts/2025/09/nextjs-serial-port/","section":"記事","summary":"","title":"Next.js でシリアル通信を実現する","type":"posts"},{"content":"","date":"2025年9月13日","externalUrl":null,"permalink":"/tags/react/","section":"タグ","summary":"","title":"React","type":"tags"},{"content":"","date":"2025年9月13日","externalUrl":null,"permalink":"/categories/technical-note/","section":"カテゴリー","summary":"","title":"技術メモ","type":"categories"},{"content":"最近 Blender でモデリングを練習している。夏森先生が書いた本のおかげでようやく入門した。今はネコキャラクターを完成したが、次はアニメキャラクターを目指す！\nキャラクターのモデリングはかなり時間をかけそうので、自分も小物をモデリングしている。\nそして変な道具を作ったw\n","date":"2025年9月11日","externalUrl":null,"permalink":"/posts/2025/09/blender-practice/","section":"記事","summary":"","title":"Blender の練習","type":"posts"},{"content":"","date":"2025年9月10日","externalUrl":"https://linkco.re/FY71e1xG","permalink":"/posts/2025/09/stars-and-forest/","section":"記事","summary":"","title":"新曲「星と森」","type":"posts"},{"content":"最近 Kawaii Future Bass のソングを作りたいと思っていて、専門家かつ友人の T 先生から Serum がおすすめと聞かされ、Serum を購入すると決めた。Kawaii Future Bass に特化したプリセットパック ONII-CHAN KAWAII SERUM PRESETS も購入した。\n最近には異世界風のアルバムを準備しているが、これを完成したら次のアルバムを Kawaii Future Bass にすると決めた！\n","date":"2025年9月8日","externalUrl":null,"permalink":"/posts/2025/09/serum/","section":"記事","summary":"","title":"Serum を購入した","type":"posts"},{"content":"","date":"2025年9月3日","externalUrl":"https://linkco.re/MVXE3gZ5","permalink":"/posts/2025/09/labyrinth-city/","section":"記事","summary":"","title":"新曲「迷宮都市」","type":"posts"},{"content":"","date":"2025年8月31日","externalUrl":null,"permalink":"/tags/3d-printer/","section":"タグ","summary":"","title":"3Dプリンター","type":"tags"},{"content":"今日 AtomS3 のスタンドを作ってみた。途中にいろいろ問題があったが\u0026hellip;\u0026hellip;\n最初はモデルの逆さの部分をプリントされた。\n次は計算ミスで AtomS3 が入れない。\n２回の失敗でようやく成功した。\n","date":"2025年8月31日","externalUrl":null,"permalink":"/posts/2025/08/atoms3-stand/","section":"記事","summary":"","title":"AtomS3 のスタンドを作ってみた","type":"posts"},{"content":"","date":"2025年8月31日","externalUrl":null,"permalink":"/tags/esp32/","section":"タグ","summary":"","title":"ESP32","type":"tags"},{"content":"https://linkco.re/eM3xrtC1\n最近ようやくやる気が出て新曲を作った。今回はファンタジーぽいの雰囲気にした。\n前のリリースから4ヶ月経ったけれども、実際には3日ほどで完成した。あと20曲ぐらいのメロディーを考えたが技術ややる気など色々な原因でまだ開始していない\u0026hellip;\nこの曲について、MIDI ペロシティの調整もめんどくさいと思って忘れた。今はちょっと「もっと調整したら良かったかもしれない」と後悔している。でもこの曲を含むアルバムを作って BOOTH に発売すると考えているので、以降リミキシングの予定がある。ミキシングのレベルはクソ下手だけど、メロディーだけなら自信があるぞ！\nいつも通り私の作曲スタイルにはダイナミクスが多すぎるので今回のミキシングもとても大変だった。特にピアノの音の大きさを上がったら電流のようなノイズが出てくる。コンプレッサーやリミッターなどプラグインをオフしても解決できない。そして最初は Noire を使ったが最後にはノイズが一番少ない The Grandeur に変更した。\nリリース後少し調べたが、サウンドカードのバッファサイズを512 Samples から 2048 Samples に上げたらノイズが軽減された。多分ハードウェアの性能が足りないかもしれない。でも原因を確定できないのでまだ山ほどの疑問が残っている。\n","date":"2025年8月21日","externalUrl":null,"permalink":"/posts/2025/08/elven-love/","section":"記事","summary":"","title":"新曲「エルフの恋」","type":"posts"},{"content":" 前言 # 最近 MQTT Broker を作ろうと思っていたが、手元の Raspberry Pi は現在 NAS として使っているので、去年購入した Raspberry Pi Zero W で MQTT Broker を作ると決まった。\nこの Raspberry Pi Zero は去年秋月電子での買い物で送料無料の条件を満たすため購入したので、ようやく使い道があった\u0026hellip;\u0026hellip;\n配置 # 私が開発のために使っているデスクトップパソコンは SD カードの差し込み口がないので普段は SD-USB 変換モジュールを使っているが、また見つからなくなった。でも最近購入したノートパソコンではあるのでそこでシステムを SD カードにダウンロードした。\nRaspberry Pi Zero は確か安いが（Raspberry Pi と比べたら）、その代わりに性能が低い。メモリが 512 MB、CPU もシングルコアの 1GHz しかないので性能が爆ゴミだ。そのためデスクトップ画面がない Raspberry Pi OS Lite をインストールした。\nそもそも HDMI と LAN に繋げるのが面倒くさいから、やはり SSH で遠距離操作するのが一番いいと思う。\nちなみに、今回使った MQTT ソフトは Mosquitto だ。\n私の学士卒業論文は MQTT を含む研究ので私にとってそんな難しいことじゃないはずが、やはりそれから長い時間経って細い部分が少し忘れちゃったw。まあ ChatGPT 先生のおかげで最後には正常に動かした。\nメモ # 以下は今回よく使ったコマンドだ。\nps aux タスク一覧を表示する。 ufw status ファイアウォールの状態を確認する。 ufw allow 1883/tcp TCPポート1883を許可する。 ip addr show ネットワークインターフェースのIPアドレスを表示する。 sudo netstat -tulnp 現在のネットワーク接続とリスニングポートを表示する。 sudo netstat -tulnp | grep 1883 ポート1883を使用しているプロセスを検索する。 kill \u0026lt; PID \u0026gt; 指定した PID のプロセスを終了する。 ","date":"2025年8月7日","externalUrl":null,"permalink":"/posts/2025/08/raspberry-pi-zero-mqtt/","section":"記事","summary":"","title":"Raspberry Pi Zero を MQTT Broker にした","type":"posts"},{"content":"去年からゲームを開発しようと考えたが、いろんなことがあって、長い時間放置した。\n今日から開発進捗をブログに書いていこうと思っている。\nそれでは本題に入りましょう。\nまずは着せ替え機能を実装したいと思ったが、その前に服脱げ機能を先に作った。\n脱げ前 脱げた後 ","date":"2025年8月5日","externalUrl":null,"permalink":"/posts/2025/08/test-undress-function/","section":"記事","summary":"","title":"服脱げ機能を作った","type":"posts"},{"content":"半年前購入したみこちのアクスタが届いた～\nとてもかわいい！ぼっちちゃんの友達また増えた🥰\n","date":"2025年7月29日","externalUrl":null,"permalink":"/posts/2025/07/sakuramiko/","section":"記事","summary":"","title":"みこち","type":"posts"},{"content":" 杭州水道水汚染事件 # 最近、水道水の汚染事件は中国で話題になっている。\n中国浙江省杭州市で 16 日から、「水道の水から魚の腐ったような臭いがする」という声が上がった。\n上水と下水の接続が間違って汚水が水道水になった噂もあるが、政府は「特定の自然気候条件下で藻類が嫌気分解することによって生成される硫化エーテル類の物質」が原因で、それを否定した。\nちなみに、その噂を作った人はもう逮捕された。\n私は全然この分野の専門家ではないので、専門家が出た結論を受けるしかない。ただ、この事件は嫌な記憶を思い出したこともあり、かつで中国で生活した頃に私自身が実際に経験した汚水問題を書きたいと思う。\n私が経験した水汚染 # 私は中国広東省のある村に 4 年ほど暮らした。製造業をメインにする村ので、家の周辺はほとんど工場だった。\nそして家の近くに川があるが、ひどい目になっている。廃棄されたプラスチック、靴、塗料缶などゴミが中に入っている。\n水面と陸地の境界線では真っ黒の色になっている一方、木の葉っぱも生えてこない。亜熱帯モンスーン気候ので普通なら葉っぱは落とさないはずだが。\nその時私はまだ高校生ので、毎週金曜日と日曜日は家からおよそ 2 キロメートル外の駅でバスを乗って通学している（私がいる市の高等学校はほとんど寄宿制）。そして途中に圃場がある。しかし、そのとなりにいる水路も汚染された。真っ黒になって、匂いも腐ったような臭いがする。さらに虹色の油膜が表面に覆っている。\nこの状況は何年も続いている。地方政府が一時川を再整備することもあったが、違法な工業排水と違法投棄を取り締まるより見た目を綺麗にする形式主義を重視しているらしい。そもそも人々は自分の家以外の場所をすべてゴミ置き場ように使って、すぐ元の状態に戻ってしまう。\n","date":"2025年7月25日","externalUrl":null,"permalink":"/posts/2025/07/sewage/","section":"記事","summary":"","title":"汚水","type":"posts"},{"content":"","date":"2025年7月25日","externalUrl":null,"permalink":"/tags/social/","section":"タグ","summary":"","title":"社会","type":"tags"},{"content":"","date":"2025年7月25日","externalUrl":null,"permalink":"/tags/china/","section":"タグ","summary":"","title":"中国","type":"tags"},{"content":" 記事 # 今日鬼滅の刃無限城編を見に行った。\n私は大学生なので 1500 円で見に行った。こんな素晴らしい映画を見てとてもお得な感じ！\nでも 155 分があったのでやはりお尻がちょっと痛い。戦いのシーンが凄く綺麗だったので痛みを忘れたが、ストーリーの部分は注意力が戻って一気に爆発したw\nAimer と LiSA の新曲も素晴らしかった。この映画だけのために作った曲と感じてた。\nもらった入場者特典。\nオープニング（OP） # エンディング（ED） # ","date":"2025年7月18日","externalUrl":null,"permalink":"/posts/2025/07/kimetsu-no-yaiba-infinity-castle-part-1/","section":"記事","summary":"","title":"鬼滅の刃無限城編を見に行った","type":"posts"},{"content":" パラメータ 内容 type CSI_DATA id ID mac MAC アドレス rssi 受信信号強度インジケーター rate 通信速度 sig_mode シグナルモード mcs Modulation Coding Scheme. If is HT(11n) packet, shows the modulation, range from 0 to 76(MSC0 ~ MCS76) bandwidth 帯域幅 smoothing not_sounding aggregation Aggregation. 0: MPDU packet; 1: AMPDU packet stbc Space Time Block Code(STBC). 0: non STBC packet; 1: STBC packet fec_coding Flag is set for 11n packets which are LDPC sgi Short Guide Interval(SGI). 0: Long GI; 1: Short GI noise_floor noise floor of Radio Frequency Module(RF). unit: 0.25dBm ampdu_cnt ampdu cnt channel channel, scan the specific channel secondary_channel secondary channel on which this packet is received. 0: none; 1: above; 2: below local_timestamp ant antenna number from which this packet is received. 0: WiFi antenna 0; 1: WiFi antenna 1 sig_len length of packet including Frame Check Sequence(FCS) rx_state state of the packet. 0: no error; others: error numbers which are not public len length of CSI data first_word データの最初のワード data 実際のデータ 公式ガイド\n","date":"2025年7月14日","externalUrl":null,"permalink":"/posts/2025/07/esp32-csi-data-parameters/","section":"記事","summary":"","title":"ES32 CSI - パラメータについて","type":"posts"},{"content":"","date":"2025年7月14日","externalUrl":null,"permalink":"/tags/wifi-csi/","section":"タグ","summary":"","title":"Wi-Fi CSI","type":"tags"},{"content":" 基本操作 # pandas の導入。\nimport pandas as pd CSV ファイルを読み込む。\ndf = pd.read_csv(\u0026#39;example.csv\u0026#39;) ヘッダーがない場合、pd.read_csv(example.csv, header=None) にしてください。 ファイルの内容が変更された場合、pd.read_csv() でファイルの再読み込みが必要。 CSV ファイルの内容をプリント。\nprint(df) 出力結果\nA B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 195 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 196 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 197 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 198 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 199 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 行操作 # 先頭 10 行を取得 # print(df.head(10)) 末尾 10 行を取得 # print(df.tail(10)) 指定行を取得 # print(df[64:89]) 表示行数の上限を設定 # pd.set_option(\u0026#39;display.max_rows\u0026#39;, 100) または\npd.set_option(\u0026#39;display.max_rows\u0026#39;, None) 設定を変更後、pd.read_csv() でファイルの再読み込みが必要。\n列操作 # 指定列を取得 # print(df[[\u0026#34;A\u0026#34;, \u0026#34;P\u0026#34;]]) または\nprint(df.iloc[:,4:6]) A 列の値が 0 より大きい行を取得 # print(df[df.A \u0026gt; 0]) 表示列数の上限を設定 # pd.set_option(\u0026#39;display.max_columns\u0026#39;, 100) または\npd.set_option(\u0026#39;display.max_columns\u0026#39;, None) 設定を変更後、pd.read_csv() でファイルの再読み込みが必要。\n","date":"2025年7月11日","externalUrl":null,"permalink":"/posts/2025/07/try-reading-csv-files-with-pandas/","section":"記事","summary":"","title":"pandas で CSV ファイルを読む","type":"posts"},{"content":" エラー # CMake Error at C:/Users/***/esp/***/esp-idf/tools/cmake/project.cmake:571 (__project):The CMAKE_C_COMPILER: xtensa-esp32-elf-gcc is not a full path and was not found in the PATH. Perhaps the extension is missing? Tell CMake where to find the compiler by setting either the environment variable \u0026#34;CC\u0026#34; or the CMake cache entry CMAKE_C_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. 私の場合、他 2 個似ているエラーもある。\n原因と解決策 # 色々調査したが、Path 設定の問題だと思う。\n私の開発環境は Windows 11 である。状況によって原因が違う場合もあるらしい。\n私の場合、Windows 環境変数の Path に C:\\Users\\***\\.espressif\\tools を追加したら問題が解決された。\n*** はユーザーファイルである。tools 前の部分は自分の .espressif パスに変更してください。\n","date":"2025年7月9日","externalUrl":null,"permalink":"/posts/2025/07/the-cmake-c-compiler-xtensa-esp32-elf-gcc-is-not-a-full-path-and-was-not-found-in-the-path/","section":"記事","summary":"","title":"ESP32 CSI - \"The CMAKE_C_COMPILER xtensa esp32 elf gcc is not a full path and was not found in the PATH.\" 解決策","type":"posts"},{"content":" エラー # ImportError: cannot import name \u0026#39;_lazywhere\u0026#39; from \u0026#39;scipy._lib._util\u0026#39; 原因と解決策 # 2025 年 6 月 23 日リリースした scipy 1.16.0 がサポートされていないのが原因である。\n1.15.3 バージョンをインストールしたら問題が解決できる。\n現在の scipy をアンインストールしてください。\npip uninstall scipy 1.15.3 バージョンの scipy をインストールしてください。\npip install scipy==1.15.3 ","date":"2025年7月8日","externalUrl":null,"permalink":"/posts/2025/07/importerror-cannot-import-name-lazywhere-from-scipy-lib-util/","section":"記事","summary":"","title":"ESP32 CSI - エラー cannot import name '_lazywhere' from 'scipy._lib._util' 解決策","type":"posts"},{"content":"先日 「ESP32 のキラキラはどこに行っちゃった」という記事が書いたが、まだ結論が出てない。\nもちろん、私ような「どうなってもいいや」の人としてはこの問題にもう興味がないので放置したいか、でもこの問題が簡単過ぎでもし解決しないなら「もしかしてこいつ技術力とても低いなのか」と思われるかもしれないので、まあ実際もそうけれど、やはりこの問題を終わらせる方がいいと思う。\nそして本題に入ろう！原理図を調べて、この基板の唯一の LED はやはり電源と直接繋がっている。GPIO でコントロールのは不可能だ！（ずんだもんの声）\n以上。\n","date":"2025年7月3日","externalUrl":null,"permalink":"/posts/2025/07/there-was-no-esp32-blink/","section":"記事","summary":"","title":"ESP32 のキラキラがなかった","type":"posts"},{"content":"本日にはマイコン ESP32-WROOM-32E開発ボード の開発環境を構築した。有名なマイコンので私もよく知っているが、実際使うのは初めてだ。\n本来は一時間ぐらいで完成できると想定したが、予想外の問題が一つ一つあったので、最終には一日掛かった。\nまあ電子工作でよくある話。\n中国製のソフトに私が不信感が高いので（例えオープンソースでも）、公式が開発した Espressif-IDE ではなく ESP-IDF を使った VS Code 環境を構築するを選びた。\n最初にはシリアルポートが見つからない問題があったが、このボードでは USB-Serial Port 変換機能がないと思って、USB-Serial 変換モジュールを使った。\n以前 STM32 で開発時使った USB to TTL モジュールを試したが、うまくいかなかった。公式のドキュメントを見たら GPIO0 と EN に繋がられる変換モジュールが必要らしい。でもそのモジュールなら私もある。以前買った後から使ったことがないけれど。\nそしてうまく行った。\nでも最後には wacom のペンタブレットの USB Type-B 線を使ったら変換モジュールなしで直接に PC と繋がることができるが分かった。\nやはり廉価な線がダメだな。\nRaspberry Pi Pico より大きいので手元のブレッドボードが使えない、残念。\n一日掛かってようやくプログラムを ESP32 にダウンロードしたが、キラキラ✨（LED 点滅）がない。\nでもポートモニタリングを開けたら確かにプログラムが正常に実行している。\nGPIO の設定が間違いと思うがコードはちゃんと BLINK_GPIO として書いている。\n資料を調べたらその LED は電源の状態を示すためのものであるらしい。もしかしてユーザでコントロールことができないのかな。\n","date":"2025年6月28日","externalUrl":null,"permalink":"/posts/2025/06/where-did-the-blink-go-with-the-esp32/","section":"記事","summary":"","title":"ESP32 のキラキラはどこに行っちゃった","type":"posts"},{"content":" 前言 # 最近 WordPress から Hugo に移行したので、PaperMod というテーマを気になってサイトのテーマとして選びた。しかし、ローカルテストの場合が正常に工作しているのに、GitHub Pages にアップロードしたらページのスタイルが潰された。\nbaseURL が正常に設定されているので、一時的に原因が分からなくなった。その時、開発ツールでサイトをチェックした後、このエラーコードが発見した。\nFailed to find a valid digest in the integrity attribute for resource.\n原因と解決策 # 一言で言えばサブリソース完全性検証に通らなかった。\nコンフィグファイルで検証機能を無効化して解決する策もあるが、サイトの安全性が下がられる。\n完全に Wiki に書いた方法で構築したのに、なぜこんな問題が起こされたのかが気になっている。\nそして様々のことを調べて、この解決策を見つけた。\nThe best solution I have found so far, If you are building your Hugo site on Windows, in your .github.io GitHub Pages repository, add a .gitattributes file that requests CSS files be checked out with CR/LF line endings with the line *.css text eol=crlf e.g.\nSource : Failed to find a valid digest in the integrity attribute #114\nまさかに改行コードの問題だ。\nこの解決策によって、.gitattributes ファイルを作成して、 *.css text eol=crlf を中に書いてください。そしてファイルを再アップロードして改行コードを CRLF に更新すれば解決できる。\nサイトが正常になった。\n","date":"2025年6月26日","externalUrl":null,"permalink":"/posts/2025/06/hugo-not-building-css-with-papermod-for-the-github-page/","section":"記事","summary":"","title":"Hugo - PaperMod が GitHub Pages で CSS スタイルを構築していない解決策","type":"posts"},{"content":"以下のリンクで Next.js をインストールしてください。\nhttps://nextjs.org/docs/app/getting-started/installation\n以下のリンクで三目並べゲームのデモをダウンロードしてください。詳しい方法はサイトに書いている。\nhttps://ja.react.dev/learn/tutorial-tic-tac-toe\nダウンロードしたアーカイブを解凍し、ターミナルを開いて解凍したディレクトリに移動してください。\n以下のコードを実行して権限を与えてください。\nSet-ExecutionPolicy RemoteSigned -Scope Process 依存ライブラリをインストール。\nnpm install ローカルサーバを起動する。\nnpm start リアルタイムビルド。\nnpm run dev ","date":"2025年6月14日","externalUrl":null,"permalink":"/posts/2025/06/build-react-in-windows11/","section":"記事","summary":"","title":"Windows 11 で React 環境を構築する","type":"posts"},{"content":" 事前準備 # Raspberry Pi Pico C SDK の開発環境が必要である。\nこの記事の内容は主に VS Code を使っている。\nFreeRTOS 配置 # GitHub - raspberrypi/pico-examples/freertos/ で FreeRTOS_Kernel_import.cmake, FreeRTOSConfig_examples_common.h, FreeRTOSConfig.h 三つのファイルを自分のプロジェクトにコピーしてください。\nここでは、FreeRTOSConfig.h は FreeRTOSConfig_examples_common.h の設定を参考している。\nCMakeLists.txt で FreeRTOS の配置をする必要があるため、以下の内容を追加または変更してください。\nFreeRTOS-Kernel 環境変数の設定 # set(FREERTOS_KERNEL_PATH ${USERHOME}/.pico-sdk/FreeRTOS-Kernel CACHE PATH \u0026#34;Path to FreeRTOS Kernel\u0026#34;) ${USERHOME}/.pico-sdk/FreeRTOS-Kernel を自分のパスに変更してください。\nFreeRTOS-kernel をインストールしていない方はこちらでダウンロードしてください。\nhttps://github.com/FreeRTOS/FreeRTOS-Kernel\nFreeRTOS Kernel ライブラリのインクルド # # FREERTOS: include FreeRTOS Kernel libraries include(FreeRTOS_Kernel_import.cmake) 共通依存ライブラリのリンク # # pull in common dependencies target_link_libraries(blink pico_stdlib FreeRTOS-Kernel-Heap4 ) if (PICO_CYW43_SUPPORTED) target_link_libraries(blink pico_cyw43_arch_none FreeRTOS-Kernel-Heap4 ) endif() 以上の変更を完了後、プロジェクトをコンパイルしてください。\nLED タスクの設定 # メインファイルで基本設定の上で FreeRTOS.h と task.h を追加してください。\n#include \u0026#34;FreeRTOS.h\u0026#34; #include \u0026#34;task.h\u0026#34; LED の操作について、こちらは blink demo の関数 pico_set_led(bool led_on) を使っている。\n// Turn the led on or off void pico_set_led(bool led_on) { #if defined(PICO_DEFAULT_LED_PIN) // Just set the GPIO on or off gpio_put(PICO_DEFAULT_LED_PIN, led_on); #elif defined(CYW43_WL_GPIO_LED_PIN) // Ask the wifi \u0026#34;driver\u0026#34; to set the GPIO on or off cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, led_on); #endif } 次からは自分で書いた部分。\nled_task と言うタスク関数を作成してください。\nvoid led_task() { int rc = pico_led_init(); hard_assert(rc == PICO_OK); while (true) { pico_set_led(true); vTaskDelay(pdMS_TO_TICKS(1000)); pico_set_led(false); vTaskDelay(pdMS_TO_TICKS(1000)); } } ここでは、1000ms のディレイを設定する。\n最後にはメイン関数で以下の内容を書いてください。\nint main() { stdio_init_all(); xTaskCreate(led_task, \u0026#34;LED Task\u0026#34;, 256, NULL, 1, NULL); vTaskStartScheduler(); } stdio_init_all - すべて標準 stdio タイプを初期化する。\nxTaskCreate - 新しいタスクを作成する。\nvTaskStartScheduler - RTOS スケジュールを実行する。\nLED が正常に1秒ごとに動かした。\n","date":"2025年6月13日","externalUrl":null,"permalink":"/posts/2025/06/raspberry-pi-pico-deploying-freertos-and-setting-up-the-led-task/","section":"記事","summary":"","title":"Raspberry Pi Pico - FreeRTOS の配置と LED タスクの設定","type":"posts"},{"content":"先日、一年ぶりに中国へ行ってきた。\n本来は行きたくないが、大学院入試の出願書類のため、仕方がなかった。\nそして再び済南に行ってきた。\n済南 # 大学校門前で倒れているレンタサイクルがあった。\n去年から建ったばかりなのにもう既に放置された人工湖。\n2024 2025 工事費が横領されたのか、赤字問題のため政府からの資金が減少されたのか、どっちが原因なのか分からない。\nでもこのようなことはもう慣れた、この国にとってよくある話。\n大学で手続きが完了した後、付近の商業街に来た。\n平日の昼ので人はほとんどなかった、夜になったら少し賑やかになるだろう。\n倒産した店がたくさんあるらしい。\n済南特有の超意興で昼ご飯を済ませた。安いし美味しいし、大学時代にはよく世話になった。\n約250円。中国の物価で見てもとても安い。\n駅へ行く途上、北校門が見えた。デリバリー配達員がいる。以前私もよく注文した。\n天津 # 天津は済南に近いし、そして日本への安い直通便があるので、天津も行ってきた。\nホテルへ行く途上、こんなものがあった。\n原因は多分これだよな。\n天津の世紀鐘。\n周辺の建物。\n向こう岸で見ると。\n中国共産党は合法性のため、いつもどこにも政治宣伝がしている。もちろん国際空港にも。\n本来はたくさんことが言いたいが、やはり何も言わない方がいい。\n不動産にも、デフレにも、共産運動にも、私ともう一切関係ない。\n自業自得だ。\n","date":"2025年6月8日","externalUrl":null,"permalink":"/posts/2025/06/it-does-not-matter-anymore/","section":"記事","summary":"","title":"もう関係ない","type":"posts"},{"content":"テーマの functions.php に以下のコードを追加してください。\nfunction custom_smtp_settings($phpmailer) { $phpmailer-\u0026gt;isSMTP(); $phpmailer-\u0026gt;Host = SMTP_HOST; $phpmailer-\u0026gt;Port = SMTP_PORT; $phpmailer-\u0026gt;Username = SMTP_USER; $phpmailer-\u0026gt;Password = SMTP_PASS; $phpmailer-\u0026gt;FromName = SMTP_NAME; $phpmailer-\u0026gt;From = SMTP_FROM; $phpmailer-\u0026gt;SMTPSecure = SMTP_SECURE; $phpmailer-\u0026gt;SMTPAuth = SMTP_AUTH; } add_action(\u0026#39;phpmailer_init\u0026#39;, \u0026#39;custom_smtp_settings\u0026#39;); wp-config.php で環境変数を定義してください。\ndefine(\u0026#39;SMTP_HOST\u0026#39;, \u0026#39;smtp.mail.me.com\u0026#39;); define(\u0026#39;SMTP_PORT\u0026#39;, 587); define(\u0026#39;SMTP_USER\u0026#39;, \u0026#39;iCloud アカウント\u0026#39;); define(\u0026#39;SMTP_PASS\u0026#39;, \u0026#39;アプリ用パスワード\u0026#39;); define(\u0026#39;SMTP_NAME\u0026#39;, \u0026#39;発信者名前\u0026#39;); define(\u0026#39;SMTP_FROM\u0026#39;, \u0026#39;発信メール\u0026#39;); define(\u0026#39;SMTP_SECURE\u0026#39;, \u0026#39;tls\u0026#39;); define(\u0026#39;SMTP_AUTH\u0026#39;, true); iCloud アカウント は Apple で設定したメインメール。\nアプリ用パスワード は https://account.apple.com で作成してください。\n発信メール は通知に利用するメールである。事前カスタムメールでメールアドレスを作成が必要。\n","date":"2025年6月3日","externalUrl":null,"permalink":"/posts/2025/06/set-icloud-custom-email-as-wordpress-email/","section":"記事","summary":"","title":"iCloud カスタムメールを WordPress の通知メールに設定する","type":"posts"},{"content":"","date":"2025年6月3日","externalUrl":null,"permalink":"/tags/wordpress/","section":"タグ","summary":"","title":"WordPress","type":"tags"},{"content":"","date":"2025年5月1日","externalUrl":"https://linkco.re/yrGZXpuc","permalink":"/posts/2025/05/endless-journey/","section":"記事","summary":"","title":"新アルバム「終わりなき旅」","type":"posts"},{"content":"今日は夢を見た。\n中国のケーキ屋でケーキを買っている。値段は26元（中国の通貨単位）だったが、見た目が悪かったので、値段を切って21元で買うと店主と合意した。\nしかし、会計の際、レジのスタッフは最初の値段通り26元を請求した。私はすでに店主と21元まで交渉したと伝えたが、スタッフは嫌な顔をして私を無視し、他のお客さんの会計を優先し続けた。\n私はその場で放置され、30分ほど待たされた。\nその後、店主がやってきて、レジに46元と入力した。私は請求金額が間違っていることに気づかず、急いでスマホでコードをスキャンして支払いした。しかし、残高不足だったため、不正な金額で払うことを避けた。\nそして「価格が違う」と店主に指摘すると、店主はやっと26元に修正したが、それを見て私は「21元のはず」と主張し続けた。店主はなかなか対応せず、さらに10分以上のやりとりをした末、ようやく21元に修正された。\n最後には、店主は「少ない金額だと会計記録の追跡が怖い」と言って、私の支払いを拒否した。私は「外国のカードならいいだろ」と言うと、店主はようやく納得し、支払いを受け入れた。\nChatGPTからの解読 # 数字と価格：価値観の象徴 # 夢の中で「ケーキの価格」が最初は26で提示され、交渉の末に21まで値下げされました。この「数字の差」は、あなた自身が現実の中で自分の価値や周囲からの評価に対して「納得できない」「ズレを感じる」心情を映し出している可能性があります。\n数字の変動は、自分が受け取るべき正当な評価や報酬についての葛藤や疑問を象徴しているとも考えられます。\nそして、店主がレジで突然入力した「46」という予想外の高額は、現実の中であなたが感じる「不当な要求」や「想定外の負担感」を示唆している可能性があります。支払いが失敗したことで、結果的に不公平な取引を回避できたというエピソードは、潜在的に自分を守ろうとする防衛本能が働いていることを表しています。\n権威とコミュニケーション：上司や社会的立場との関係性 # 夢の中に登場する「店主」や「店員」とのやり取りは、あなたが現実で接している権威的存在（上司や先生、あるいは社会的なルールや組織）との関係を象徴しています。\nあなたは「価格交渉で合意した」という事実を主張しても、店員はそれを無視し続ける――これは現実世界でも「自分の意見が軽視された」「声が届かない」と感じた経験が投影されているのかもしれません。\nまた、待たされた時間や、交渉がなかなかまとまらず停滞し続ける状況は、現実においても「問題解決が進まない」「誰も話を聞いてくれない」「納得できない状態が続いている」という精神的ストレスや無力感の表現とも解釈できます。\n金銭と支払い方法：安心感と信頼の象徴 # 夢の最後に「国外銀行での支払いなら受け入れる」と店主が言う場面は、単なる支払い手段ではなく信頼や安全の感覚を象徴しています。\n通常の方法では店主が取引を拒否したという点から、あなたが日常的なルールや信頼関係では安心できない状況に置かれている可能性が考えられます。\n「国外の銀行」という設定は、現状の環境（職場や人間関係）から離れて、より安全で確実な選択肢を求めている心理的な欲求の表れかもしれません。\n自己価値と公正感への欲求 # この夢は全体を通じて、あなたの内面にある公平さへの強い欲求や自分の価値を正当に認められたいという思いを色濃く反映しています。\nあなたは夢の中で「最初に合意した21の価格」を何度も主張していますが、相手はルールを変えたり無視したりして、あなたの納得を妨げます。これは現実でも「自分の努力や存在が不当に扱われている」と感じた記憶や経験が、夢の中で形を変えて現れている可能性があります。\n体制や権力への不信感 # 夢の中で、価格が店側の都合で簡単に変えられてしまうという状況は、現実の中であなたが直面している不安定なルールや権力構造への疑念を象徴していると考えられます。\n特に、店主という「決定権を持つ存在」が最後まであなたの希望を拒み続ける様子は、あなたが現実で感じている社会的圧力や理不尽さへの不満、または「自分ではコントロールできない環境」に対する無力感を暗示しています。\nこの夢は、あなたが「どうすれば不公平な状況でも自分の立場を守れるか」「どうすれば納得できる形で問題を解決できるか」を潜在的に考えていることの反映だとも言えるでしょう。\n","date":"2025年4月10日","externalUrl":null,"permalink":"/posts/2025/04/obsessed-with-21/","section":"記事","summary":"","title":"21への執念","type":"posts"},{"content":"","date":"2025年4月2日","externalUrl":"https://linkco.re/SFy7a1TN","permalink":"/posts/2025/04/light-year/","section":"記事","summary":"","title":"新曲「光年」","type":"posts"},{"content":"","date":"2025年3月25日","externalUrl":"https://linkco.re/47AU2BHx","permalink":"/posts/2025/03/beginning-of-the-journey/","section":"記事","summary":"","title":"新曲「旅の始まり」","type":"posts"},{"content":" クエリ # UPDATE \u0026lt;テーブル\u0026gt; SET \u0026lt;カラム\u0026gt; = REPLACE(\u0026lt;カラム\u0026gt;, \u0026lt;置換前の文字列\u0026gt;, \u0026lt;置換後の文字列\u0026gt;); 例えば、私の場合は\nUPDATE wp_2_posts SET post_content = REPLACE(post_content, \u0026#39;www.cdn\u0026#39;, \u0026#39;cdn\u0026#39;); テーブルとは # データベース構造の中にある wp_posts ようなものがテーブルという。\nカラムとは # テーブル中にある post_content ようなものがカラムという。\n","date":"2025年3月4日","externalUrl":null,"permalink":"/posts/2025/03/bulk-replace-strings-in-phpmyadmin/","section":"記事","summary":"","title":"phpMyAdmin で文字列を一括置換する","type":"posts"},{"content":"","date":"2025年3月1日","externalUrl":null,"permalink":"/tags/windows/","section":"タグ","summary":"","title":"Windows","type":"tags"},{"content":"ターミナルで以下の内容を入力してください。\nssh \u0026lt;ユーザー名\u0026gt;@\u0026lt;サーバーのアドレス\u0026gt; 例えば、私の場合は\nssh server@icysamon.com 快速接続 # 最初はターミナルの設定を開けて、新しいプロファイルを追加してください。\nそして名前とコマンドラインを設定してください。\nコマンドラインは以下のようになる。\nssh icysamon@icysamon.sakura.ne.jp -i C:\\Users\\icysa\\OneDrive\\Documents\\Key\\id_ecdsa.pem ユーザー名：icysamon サーバー名：icysamon.sakura.ne.jp SSH公開鍵ファイルのパス：C:\\Users\\icysa\\OneDrive\\Documents\\Key\\id_ecdsa.pem 以上のパラメータを自分の情報に置換してください。\nそしてプラスボタンでさっき作ったプロファイルを開けましょう。\n正常に起動した。\n","date":"2025年3月1日","externalUrl":null,"permalink":"/posts/2025/03/using-ssh-with-windows-terminal/","section":"記事","summary":"","title":"Windows ターミナルで SSH を使う","type":"posts"},{"content":" 前言 # 最近 X-AI が毎月 150 ドルの無料クレジットを配布するイベントを開催しているので X-AI のアカウントを作りました。ただし、条件として個人情報の提供と 5 ドルのチャージが必要なのでご注意してください。\n本題 # 公式のガイド\n最初は https://console.x.ai/ でアカウントを作って API key を発行してください。\nAPI key は一度しか表示されないので、しっかり保存してください。\n次は pip で openai をインストールしてください。\npip install openai そして python ファイルを作成し、以下の内容を書いてください。\nimport os from openai import OpenAI XAI_API_KEY = os.getenv(\u0026#34;XAI_API_KEY\u0026#34;) client = OpenAI( api_key=XAI_API_KEY, base_url=\u0026#34;https://api.x.ai/v1\u0026#34;, ) completion = client.chat.completions.create( model=\u0026#34;grok-2-latest\u0026#34;, messages=[ { \u0026#34;role\u0026#34;: \u0026#34;system\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;You are Grok, a chatbot inspired by the Hitchhikers Guide to the Galaxy.\u0026#34; }, { \u0026#34;role\u0026#34;: \u0026#34;user\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;What is the meaning of life, the universe, and everything?\u0026#34; }, ], ) print(completion.choices[0].message.content) api_key=XAI_API_KEY の XAI_API_KEY を自分の key に変更してください。\n最後はターミナルでこのファイルを実行してください。\npython.exe \u0026lt;file path\u0026gt; を自分のファイルのパスに置き換えてください。\n","date":"2025年2月19日","externalUrl":null,"permalink":"/posts/2025/02/using-the-x-ai-api-with-python/","section":"記事","summary":"","title":"Python で X-AI API を使う","type":"posts"},{"content":" CSS # テーマフォルダ内に CSS ファイルを作って以下の内容を書いてください。\n.wp-block { max-width: 1280px; margin: auto; } functions.php # テーマの functions.php に以下の内容を追加してください。\nfunction add_gutenberg_editor_style() { wp_register_style( \u0026#39;editorCSS\u0026#39;, get_stylesheet_directory_uri().\u0026#39;/assets/css/editor.css\u0026#39; ); wp_enqueue_style(\u0026#39;editorCSS\u0026#39;); } add_action( \u0026#39;enqueue_block_editor_assets\u0026#39;, \u0026#39;add_gutenberg_editor_style\u0026#39; ); get_stylesheet_directory_uri().'/assets/css/editor.css' はさっき作った CSS ファイルのアドレスです。\nget_stylesheet_directory_uri() はテーマのルートディレクトリまでのアドレスです。\n結果 # こんな感じになります。\nポスト画面だけにする # 以上の操作を行ったらすべてのページ特にサイト編集画面のスタイルも変更される。ポストを編集ときだけ画面を中央にしたいなら CSS を以下のように変更してください。\n.post-type-post .wp-block { max-width: 1280px; margin: auto; } こうしたらポスト編集画面だけそうになれます。\nもしページ画面もそうしたいなら CSS をこうにしてください。\n.post-type-post .wp-block { max-width: 1280px; margin: auto; } .post-type-page .wp-block { max-width: 1280px; margin: auto; } ","date":"2025年2月16日","externalUrl":null,"permalink":"/posts/2025/02/wordpress-center-editor-screen/","section":"記事","summary":"","title":"WordPress - エディターを画面中央にする","type":"posts"},{"content":"今日は東京ゲームダンジョンへ行ってきました！私が行ったのは１日目です。\n絶対ロケット防衛主義 # 最初試遊したのゲームは「絶対ロケット防衛主義」です。\nゲームのテーマは西側の思想を“矯正”する“思想衛星”を打ち上げために、最終防戦を建って、邪悪の資本主義者からロケットを守るタワーディフェンスゲームです。\nロケットの建造が七段に分割し、各階段は一つの防衛イベントに対応しています。\n私は最初から基地を一番離れた東側で防御線を建てたが、第二第三階段から敵が南側から現れました。\nそしてマジノ線になりました。\n二つ攻撃経路があるなんて全然気づなかった！邪悪の資本主義者ども目！！\nでもこのゲームは軍隊（プレイヤー）の操作ができるのでどうかなりました。\nその後私は南側で防御線も建ったが税金が足りないので基地中央はまだゼロ防御状態です。\nそして第五第六階段から空挺兵が基地中央に現れました。\n絶望的な状態です！\nでも前何回も後方勤務の同志を賄賂し、たくさん武器をもらいました。\nめっちゃ苦戦になりましたが、最後偉大な「思想衛星」が成功に打ち上げました！革命万歳！！\nwwwwwww\nRewindGirl # 次は「RewindGirl」、時間操作のアクションゲームです。\nキャラクターはめっちゃ可愛い！！\n実際このゲームは今回一番みたいゲームなのです。なぜなら私は以前のゲームジャムで同じようなゲームを作りことがありました。でもその時ゲーム開発は初めたばかりので、技術力が足りないので失敗品になりました。そしてある日このゲームを見つけて、このアイデアで真剣にゲームを作るならどのようなゲームになるか期待していた。\nでもやはり一番の原因はキャラクターが可愛い過ぎる！\nゲーム自身のステージ設計もとても良いし、単なる時間操作ではなく時間線自身達の連携も重視しています。ガイドの設計はわかり安いので不自然のところは全然ありません。期待以上の質です！！\nこのゲームは遊び方を主とするがストリーもあります。けど１０分の試遊時間制限があるのでほとんど見ていないので許してください。\nでも演出動画やイラストもとても良い（可愛い）と思います！\nLouloudi Asteri Save the Solar System # このゲームを見た時ただの 2D スペースショットゲームと思ったが実際 2D のような 3D ショットゲームです。\n右スティックを使ってプレイヤーがいる 3D 空間の 2D の平行線を変更することができます。\n私も 3D 空間で 2D ゲームを表現するのがいいを考えることがありますが、考え難いので放置しました。この 2D ような３Dゲームは私にとっていい経験になるかもしれません、たくさん学べました！\nでも私可愛いゲームばかりしてツインスティックシューティングゲームはほとんど遊んでいないので悲劇なスコアを取りましたw\nアニマロイドガール # 白髪が正義。\n猫耳が正義。\n可愛いが正義。\nそしてこの三つを集めている偉大なゲームはこの「アニマロイドガール」です！\n可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い可愛い！！！\n私はアクリルを買うため入場時間前に浜松町駅に到着しましたが初めてので道に迷った。\nだってアップルマップは会場のビルが書いてないのです。\nビル各層のエレベーターの位置も違いので探す難い。\n最後やはり予想通り全部なくなった、悲しいですQAQ\nらくがき板 # ぶらぶらするときらくがき板を発見しました。\nみんな絵描き上手だな～私も絵師になりたい。\n可愛い絵の中に怖いものが入っているのでちょっとモザイクしました。\nMillion Depth # このゲームも気になっているが人が多いのでただ見るだけにしました。\n人が多い過ぎて担当さんも驚きたようですｗ\n「ローグライク」＋「ARPG」のゲームらしいです、武器も自分でDIYしなければなりません。\nこのタイプのゲームはとても気に入っているので早く遊びたいな。\n可愛いPCケース # 最後 # TOKYO GAME SHOW に行ったこともあるがやはり私ならゲームダンジョンの方がもっと好きです。チケットは安いし、人がそんなに多くないし、たくさんゲームを試遊できます。そしてほとんどインディーゲームので個人ゲーム開発者の私にとってとても親切です。さらに私は日本の美少女インディーゲームを応援したいなのですw\n時間があったらまた行きます！！！\n","date":"2025年2月15日","externalUrl":null,"permalink":"/posts/2025/02/tokyo-game-dungeon-7/","section":"記事","summary":"","title":"東京ゲームダンジョン７","type":"posts"},{"content":"今月、家の近くの病院で成人健康診査を受けました。私にとって、日本に定住してから初めての定期健診です。これをきっかけに、日本の医療について多くのことを学びました。\n事前に電話で予約をして病院に行きました。受付の担当者にマイナンバーと診察券を渡し、情報を確認後受診票と問診票を受け取りました。\n受診票は主に保険証や住所の情報を記入する必要があり、問診票にはいくつかの身体状況や生活習慣に関する質問項目が書かれています。でも私は保険証ではなくマイナンバーを使ってそしてその中に記号や番号が書いてないのでマイナポータルアプリを開いて調べなければなりませんでした。\n必要事項の記入を終えた後受付に戻って受診票と問診票を担当者に返しました。そして尿検査、Ｘ線、身長・体重測定、心電図などの検査を受けました。担当者はとても優しいし、私と日本料理の魅力についての話をしました。\n検査を終了後お医者さんと話して日常の飲食を聞きされました。その後待機室に戻って受付の呼び出しを待っていました。私はこの地域の住民なので健診費はたったの500円でした、信じられないことに、中国よりも安かったです。\n最後に、お医者さんの指示どおり、一週間後に病院に戻って診査結果を受け取りました。今回は別のお医者さんが検査結果を説明してくれましたがとても優しく、責任感が高い先生と思います。\n","date":"2025年2月14日","externalUrl":null,"permalink":"/posts/2025/02/first-adult-health-checkup/","section":"記事","summary":"","title":"初めての成人健康診査","type":"posts"},{"content":"資源側（CDNなど）の .htaccess に以下の内容を書いてください。\n# CORS \u0026lt;IfModule mod_headers.c\u0026gt; Header set Access-Control-Allow-Origin \u0026#34;https://example.com\u0026#34; \u0026lt;/IfModule\u0026gt; https://example.com は資源を求めている側である。\n例えば example.com が cdn.example.com から資源を要求している場合、cdn.example.com 側にさっきの .htaccess を設定しなければならない。\n二つ以上のドメイン # \u0026lt;IfModule mod_headers.c\u0026gt; SetEnvIf Origin \u0026#34;http(s)?://(www\\.)?(domain1.com|domain2.com|domain3.com)$\u0026#34; AccessControlAllowOrigin=$0$1 Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin Header set Access-Control-Allow-Credentials true \u0026lt;/IfModule\u0026gt; ","date":"2025年2月12日","externalUrl":null,"permalink":"/posts/2025/02/set-access-control-allow-origin-in-htaccess/","section":"記事","summary":"","title":".htaccess で Access-Control-Allow-Origin を設定する","type":"posts"},{"content":"","date":"2025年2月12日","externalUrl":null,"permalink":"/tags/apache/","section":"タグ","summary":"","title":"Apache","type":"tags"},{"content":"ごちそうさまでした😋\n","date":"2025年2月2日","externalUrl":null,"permalink":"/posts/2025/02/akihabara-sushiro-matcha-okonomiyaki/","section":"記事","summary":"","title":"秋葉原と抹茶とスシローと大阪焼","type":"posts"},{"content":" CMakeLists.txt # 以下のコードを追加してください。\n# serial port pico_enable_stdio_usb(project_name 1) # stdio_usb を有効化する 初期化 # 最初で stdio.h をインクルードしてください。\n#include \u0026#34;stdio.h\u0026#34; そしてプロジェクトのメイン関数で以下のコードを追加してください。\nstdio_init_all(); // stdio_usb サポートを有効化する 出力 # プリント関数でデータを出力する。\nprintf(\u0026#34;hello world!\\n\u0026#34;); ","date":"2025年2月1日","externalUrl":null,"permalink":"/posts/2025/02/raspberry-pi-pico-usb-serial-communication-c-sdk/","section":"記事","summary":"","title":"Raspberry Pi Pico - USB シリアルで通信する（C SDK）","type":"posts"},{"content":"","date":"2024年12月17日","externalUrl":null,"permalink":"/tags/rclone/","section":"タグ","summary":"","title":"Rclone","type":"tags"},{"content":" 事前準備 # SFTP 対応のレンタルサーバー Windows 11 PC Winftp をダウンロード # https://winfsp.dev/rel\nRcloneをダウンロード # https://rclone.org/downloads\nインストール後\nrclone --version で状態を確認してください。\nRclone Config ファイルの設定 # 設定モードに入る # rclone config を入力してください。\nn で New remote を選択してください。\nSSH/SFTPを選択してください。そしてサーバーのホストやパスワード／キーやなど基本情報を設定してください。\n設定ファイルの場所を探す # rclone config paths 参考のため、私の設定ファイルを用意します。\n[Drive] type = sftp host = example.sakura.ne.jp user = nekosama pass = password use_insecure_cipher = true shell_type = unix md5sum_command = md5 -r sha1sum_command = sha1 -r ドライブをマウントする # .bat ファイルを作成して、以下の内容を入力してください。\nrclone mount Drive:/home/user/your_file Z: ^ --cache-dir %LocalAppData%\\rcloneLocalAppData ^ --vfs-cache-mode writes ^ --volname \u0026#34;Drive Name\u0026#34; ^ --buffer-size 512M Drive:/home/user/your_file について # Drive : さっき作成した remote の名前 :/home/user/your_file : 指定したいファイル位置（省略可） cache-dir # rclone がキャッシュに使用するディレクトリを指定します。（省略可）\nvfs-cache-mode # キャッシュモード（write がおすすめ）\n詳しい内容はこちらで確認してください。\nvolname # ドライブの名前（省略可）\nbuffer-size # ファイル転送を高速化するためのバッファ。（省略可）\nマウント # 最後に.batファイルを実行してドライブが出てきます。\n","date":"2024年12月17日","externalUrl":null,"permalink":"/posts/2024/12/turn-rental-server-into-cloud-drive/","section":"記事","summary":"","title":"レンタルサーバーをクラウドドライブにする","type":"posts"},{"content":"うちの AnkerMake M5C のフィラメントが出てこないので今日フィラメントの修復作業をしました。（実はもう三回目の修復作業です。長い時間使えないならフィラメントを切断される問題がありそうです、でも私使ったフィラメントは非公式ので…そのせいかもしれません。）\n\u0026#x26a0;\u0026#xfe0f; 安全のため解体前に必ず電源線を抜いてください。\n最初はこの四つのネジを出してください。\n内部の様子は大体このようです。\nつぎはファンと台座をエクストルーダから離してください。\nそしてエクストルーダ背面のネジを出してください。\nこのようになります、配線の接続配置をわすれないでください、もし違い場合があるならメモをするのはおすすめです。\n黒い基板下部分二つ銀色のネジを緩めて、ホットエンド部分を出してください。\n緑の外殻をホットエンドから抜いてください。\nフィラメントがノズルの中に嚙み合ったのでピンセットで抜きました。\n中身部分をもとの姿にして、フィラメントをゆっくり入れながら側面で状態を確認しよう。もしフィラメントがまだ上部分の輸送線の中に残る場合があったら反対側でフィラメントを入れて残った部分をもと入り口から押し出すのはおすすめです。\n","date":"2024年12月12日","externalUrl":null,"permalink":"/posts/2024/12/ankermake-m5c-no-filament-extrusion-fix/","section":"記事","summary":"","title":"AnkerMake M5C を解体してフィラメントが押し出せずの問題を修復する","type":"posts"},{"content":" DHT20 仕様 # 入力電圧：2.2V ~ 5V DC 精度：温度±0.5℃、湿度±3% インターフェース定義 # ピン（左から右） ネーム 1 VDD 2 SDA 3 GND 4 SCL Raspberry Pi Pico と DHT20 の接続 # 二つの抵抗どちっも 4K7R である。\nコード # Thonny を使う場合、正常に実行のためコード中の日本語文字をすべて消してください。または最後のGitHubリンクで英語版をダウンロードしてください。\ndht20.py # from machine import Pin, I2C import time cmd = bytearray(b\u0026#39;\\xAC\\x33\\x00\u0026#39;) # 測定コマンド i2c_address = 0x38 # I2Cアドレス humidity_data = 0.00 # 湿度データ temperature_data = 0.00 # 温度データ json_data = \u0026#34; \u0026#34; # JSON型温湿度データ # DHT20温湿度センサの初期化 def init(SCL = Pin(21), SDA = Pin(20), FREQ = 10000): global i2c buff = bytearray(7) # 受信データ # I2C通信の設定 i2c = I2C(0, scl = SCL, sda = SDA, freq = FREQ) i2c.writeto(i2c_address, cmd, True) time.sleep_ms(100) i2c.readfrom_into(i2c_address, buff, True) time.sleep_ms(100) # 出荷検査 if (buff[0] \u0026amp; 0x18) == 0x18: print(\u0026#39;DTH20初期化成功\u0026#39;) else: print(\u0026#39;DTH20初期化失敗\u0026#39;) # 測定データの受信と分析 def get_data(): global humidity_data global temperature_data buff = bytearray(7) # 受信データ # 測定命令発信とデータ受信 while True: i2c.writeto(i2c_address, cmd, True) time.sleep_ms(100) i2c.readfrom_into(i2c_address, buff, True) time.sleep_ms(100) # データの転送を確認する if not (buff[0] | 0x7F) != 0x7F or buff[0] == 0x00: break # データの分析 humidity_data_temp = (buff[1] \u0026lt;\u0026lt; 12) | (buff[2] \u0026lt;\u0026lt; 4) | ((buff[3] \u0026gt;\u0026gt; 4) \u0026amp; 0x0f) temperature_data_temp = ((buff[3] \u0026amp; 0x0f) \u0026lt;\u0026lt; 16) | (buff[4] \u0026lt;\u0026lt; 8) | (buff[5]) humidity_data = humidity_data_temp / 1048576 * 100 temperature_data = temperature_data_temp / 1048576 * 200 - 50 # 小数点以下２桁のデータを表示する humidity_data = round(humidity_data, 2) temperature_data = round(temperature_data, 2) # 温湿度データをJSON形式に変更する def to_json(): global json_data json_data = \u0026#34;{\\\u0026#34;temperature\\\u0026#34;: \u0026#34; + (\u0026#39;%.2f\u0026#39; % temperature_data) + \\ \u0026#34;, \\\u0026#34;humidity\\\u0026#34;: \u0026#34; + (\u0026#39;%.2f\u0026#39; % humidity_data) + \\ \u0026#34;}\u0026#34; return json_data main.py # from machine import Pin import time, dht20 led = Pin(\u0026#34;LED\u0026#34;, Pin.OUT) dht20.init() time.sleep_ms(100) while True: led.toggle() dht20.get_data() print(dht20.to_json()) print(dht20.temperature_data) print(dht20.humidity_data) time.sleep(3) リポジトリ # https://github.com/icysamon/dht20\n","date":"2024年11月28日","externalUrl":null,"permalink":"/posts/2024/11/using-dht20-with-raspberry-pi-pico/","section":"記事","summary":"","title":"Raspberry Pi Pico で温湿度センサー DHT20 を使う","type":"posts"},{"content":" 事前準備 # Raspberry Pi Pico W / WH Windows 11 PC USB 線 Python 3.9 をインストール # 現時点（2024年）は Python3.9 がおすすめです。\nVisual Studio Code をインストール # https://code.visualstudio.com/\nVisual Studio Code の拡張機能をインストール # 以下の拡張機能をインストールしてください。\nC/C++（開発元：Microsoft） # CMake（開発元：twxs） # Raspberry Pi Pico（開発元：Raspberry Pi） # Python（開発元：Microsoft） # Raspberry Pi Picoドライバーのインストール # Zadig を PC にインストール # https://zadig.akeo.ie\nRaspberry Pi Pico 基板のリセット # 別のプロジェクトは既にインストールされた場合、基板のリセットが必要です。\n基板の白いボタンを押しながらUSB線でPCと繋げて自動的にUSBマスストレージデバイスとしてマウントされます。[1]\nそして flash_nuke.uf2 ファイルをダウンロードし、基板のドライブに置いてください。その後基板が自動的にリセットします。\nリセット後基板とPCの接続を解除して [1] の操作を繰り返ししてください。\nドライバーをインストール # Options をクリックして List All Devices を有効し、RP2 Boot (Interface 1) を選択してください。\n\u0026#x26a0;\u0026#xfe0f; 必ず Interface 0 ではなく Interface 1 を選択してください、Interface 0 にインストールしたら基板の接続機能は必ず壊されます。\nそして WinUSB を選択し基板へインストールしてください。\nインストール後基板とPCの接続を解除して [1] の操作を繰り返ししてください。\n新しいプロジェクト # Visual Studio Code 左側のアクティビティバーで Raspberry Pi Pico Project をクリックして New C/C++ Project を開けてください。\nBasic Settings の Board type で Pico W を選択してください。\nBoard type 左側の Example ボタンを押して blink というプロジェクトを選択してください。\nそして Create ボタンを押して新しいプロジェクトを作ってください。（初めての場合長い時間が掛かります）\nSDK Version の変更（不必要） # 個人的には SDK version 2.0 を使うと未知な不具合が発生した場合があるので SDK version 1.5.1 に変更するのはおすすめです。\n更新：システムをリセット後正常になりました、多分私の問題です\nプロジェクトの CMakeList.txt を開けてすべて sdkVersion 2.0.0 と picotoolVersion 2.0.0 を sdkVersion 1.5.1 と picotoolVersion 1.5.1 に変更してください。\n# == DO NOT EDIT THE FOLLOWING LINES for the Raspberry Pi Pico VS Code Extension to work == if(WIN32) set(USERHOME $ENV{USERPROFILE}) else() set(USERHOME $ENV{HOME}) endif() set(sdkVersion 1.5.1) set(toolchainVersion 13_2_Rel1) set(picotoolVersion 1.5.1) set(picoVscode ${USERHOME}/.pico-sdk/cmake/pico-vscode.cmake) if (EXISTS ${picoVscode}) include(${picoVscode}) endif() # ==================================================================================== ＊SDK Version 1.5.1 はインストールされていない場合新しいプロジェクトを作って SDK version で v1.5.1 を選択してください。\nプロジェクトのコンパイル # Visual Studio Code 右下の Compile ボタンを押してプロジェクトをコンパイルしてください。\nプロジェクトを実行する # プロジェクトを実行するには二つの方法があります。\n方法１ # Visual Studio Code 右下の Run ボタンを押してプロジェクトを実行してください。\n方法２ # .uf2 ファイルを基板のストレージに置いてください、その後自動的に実行します。 ","date":"2024年11月26日","externalUrl":null,"permalink":"/posts/2024/11/windows11-raspberry-pi-pico-c-cpp-development-environment-setup/","section":"記事","summary":"","title":"Windows11 で Raspberry Pi Pico の C/C++ 開発環境を構築する","type":"posts"},{"content":" 解決方法 # コントロールパネルへ移動してください。 ネットワークと共用センターをクリックしてください。 アダプターの設定の変更をクリックしてください。 現在使っているネットワークアダプターを右クリックしてプロパティを選択してください。 Realtek LightWeigh Filter (NDIS6.40) を無効化してください。 ","date":"2024年11月26日","externalUrl":null,"permalink":"/posts/2024/11/blue-screen-driver-irql-not-less-or-equal-rtf64x64-sys-failed/","section":"記事","summary":"","title":"ブルースクリーン - DRIVER_IRQL_NOT_LESS_OR_EQUAL（rtf64x64.sys failed）","type":"posts"},{"content":"テーマの functions.php に以下のコードを追加してください。\n// Hide the google site kit menu function hide_plugin() { remove_menu_page(\u0026#39;googlesitekit-dashboard\u0026#39;); remove_submenu_page(\u0026#39;googlesitekit-dashboard\u0026#39;, \u0026#39;googlesitekit-splash\u0026#39;); } add_action(\u0026#39;admin_menu\u0026#39;, \u0026#39;hide_plugin\u0026#39;, 100); // remove tool bar item function remove_toolbar_node($wp_admin_bar) { $wp_admin_bar-\u0026gt;remove_menu(\u0026#34;google-site-kit\u0026#34;); } add_action(\u0026#34;admin_bar_menu\u0026#34;, \u0026#34;remove_toolbar_node\u0026#34;, 100); ","date":"2024年11月25日","externalUrl":null,"permalink":"/posts/2024/11/wordpress-hide-google-site-kit-from-admin-panel/","section":"記事","summary":"","title":"WordPress - 管理者メニューから Google Site Kit を隠れる","type":"posts"},{"content":" 形式 例 ナ形容詞辞書形 元気だ ナ形容詞ない形 元気では ナ形容詞て形 元気で ナ形容詞た形 元気だった ナ形容詞ば形 元気ならば ナ形容詞語幹 元気 ","date":"2024年11月11日","externalUrl":null,"permalink":"/posts/2024/11/na-adjective/","section":"記事","summary":"","title":"ナ形容詞","type":"posts"},{"content":"","date":"2024年11月11日","externalUrl":null,"permalink":"/categories/study/","section":"カテゴリー","summary":"","title":"学問","type":"categories"},{"content":"","date":"2024年11月11日","externalUrl":null,"permalink":"/tags/japanese/","section":"タグ","summary":"","title":"日本語","type":"tags"},{"content":" 形式 例 イ形容詞辞書形 暑い イ形容詞ない形 暑く イ形容詞て形 暑くて イ形容詞た形 暑かった イ形容詞ば形 暑ければ ","date":"2024年11月11日","externalUrl":null,"permalink":"/posts/2024/11/i-adjective/","section":"記事","summary":"","title":"イ形容詞","type":"posts"},{"content":" 形式 例 五段動詞（動詞１） 行く 一段動詞（動詞２） 食べる サ変動詞／カ変動詞（動詞３） する、勉強する／来る 動詞辞書形 食べる、行く 動詞ます形 食べ、行き 動詞て形 食べて、行って 動詞ない形 食べ、行か 動詞ている形 食べている、行っている 動詞た形 食べた、行った 動詞ば形） 食べれば、行けば 動詞意向形 食べよう、行こう 動詞可能形 食べられる、行ける 動詞使役形 食べさせる、行かせる 動詞受身形 食べられる、行かれる 動詞命令形 食べろ、行け ","date":"2024年11月11日","externalUrl":null,"permalink":"/posts/2024/11/verb/","section":"記事","summary":"","title":"動詞","type":"posts"},{"content":" 仕様 # 動作電圧：3.3 ~ 6 V 動作速度：0.12 秒 / 60 度 回転範囲：約 -90 ~ 90 度 温度範囲：0 ºC – 55 ºC 回路接続 # SG-90 Raspberry Pi Pico オレンジ色線 GP0 （コードによって） 赤い色線 VBUS（5V） 茶色線 GND PWM制御 # 角度 パルス幅 デューティー比（パルス幅 / 周期） -90°（左） 0.5ms 0.5ms / 20ms 0°（中央） 1.45ms 1.45ms / 20ms 90°（右） 2.4ms 2.4ms / 20ms コード # from machine import Pin, PWM import time duty_max = 65025 deg_min = 0.025 # -90 deg_middle = 0.0725 # 0 deg_max = 0.12 # 90 # init def init(pin_pwm = 0, freq = 50): global servo servo = PWM(Pin(pin_pwm)) servo.freq(freq) # example function def example(interval = 3): servo.duty_u16(round(duty_max * deg_min)) time.sleep(interval) servo.duty_u16(round(duty_max * deg_middle)) time.sleep(interval) servo.duty_u16(round(duty_max * deg_max)) time.sleep(interval) パラメータ # duty_max # 最大のデューティ値（100%）である。\n最大値 65025 についてこちらを参考してください。\ndeg_min # -90° ときのデューティー比である。\ndeg_middle # 0° ときのデューティー比である。\ndeg_max # 90° ときのデューティー比である。\n関数 # init(pin_pwm = 0, freq = 50) # ピンと周波数を配置するための初期化関数である。\npin_pwm：PWM 信号線と繋がっているのピンである。 freq：周波数、ここにはデータシートによって 50Hz に設定する。 example(interval = 3) # テスト関数である。-90° -\u0026gt; 0° -\u0026gt; 90° の間にループ制御する。\ninterval：回転間隔。 リポジトリ # GitHub\n","date":"2024年10月27日","externalUrl":null,"permalink":"/posts/2024/10/raspberry-pi-pico-sg-90-controlled/","section":"記事","summary":"","title":"Raspberry Pi Pico でサーボモーター SG-90 を制御する","type":"posts"},{"content":" 大文字 小文字 英語 日本語 Α α alpha アルファ Β β beta ベータ Γ γ gamma ガンマ Δ δ delta デルタ Ε ε epsilon エプシロン Ζ ζ zeta ゼータ Η η eta エータ；イタ Θ θ theta シータ Ι ι iota イオータ Κ κ kappa カッパ Λ λ lambda ラムダ Μ μ mu ミュー Ξ ξ xi クシー Ο ο omicron オミクロン Π π pi パイ Ρ ρ rho ロー Σ σ sigma シグマ Τ τ tau タウ Υ υ upsilon イプシロン Φ φ phi フィー Χ χ chi キー Ψ ψ psi プシー Ω ω omega オメガ ","date":"2024年10月26日","externalUrl":null,"permalink":"/posts/2024/10/greek-alphabet-pronunciation/","section":"記事","summary":"","title":"ギリシャ文字の読み方","type":"posts"},{"content":" 記号 読み方 $\\subset$ 真部分集合、含む、含まれる $\\supset$ 真部分集合を元として含む $\\cup$ 又は、合併集合、和集合 $\\cap$ 且つ、共通集合、積集合 $\\in$ 属する $\\ni$ 元として含む ","date":"2024年10月25日","externalUrl":null,"permalink":"/posts/2024/10/set-notation-interval-notation/","section":"記事","summary":"","title":"集合範囲記号の読み方","type":"posts"},{"content":"アマゾンの検索結果が表示されたリンクの後ろに \u0026amp;emi=AN1VRQENFRJN5 を掛けてください。\n","date":"2024年10月21日","externalUrl":null,"permalink":"/posts/2024/10/amazon-co-jp-only/","section":"記事","summary":"","title":"アマゾンの検索結果を amazon.co.jp のみにする","type":"posts"},{"content":"WordPress のブロックテーマは直観的にウェブサイトを編集することができるのでとても便利であるが、カスタマイズ部分が少ない欠点がある。\nこのときにはテーマの functions.php を配置して以下のようなカスタムスタイルを追加ことができる。\nコード # function themeslug_register_block_styles() { register_block_style( \u0026#39;core/group\u0026#39;, array( \u0026#39;name\u0026#39; =\u0026gt; \u0026#39;default\u0026#39;, \u0026#39;label\u0026#39; =\u0026gt; __( \u0026#39;Default\u0026#39;, \u0026#39;themeslug\u0026#39; ), \u0026#39;is_default\u0026#39; =\u0026gt; true, \u0026#39;inline_style\u0026#39; =\u0026gt; \u0026#39;.wp-block-group.is-style-default {}\u0026#39; ) ); register_block_style( \u0026#39;core/group\u0026#39;, array( \u0026#39;name\u0026#39; =\u0026gt; \u0026#39;widget\u0026#39;, \u0026#39;label\u0026#39; =\u0026gt; __( \u0026#39;Widget\u0026#39;, \u0026#39;themeslug\u0026#39; ), \u0026#39;inline_style\u0026#39; =\u0026gt; \u0026#39;.wp-block-group.is-style-widget { background-color: #faf0e6; border-radius: 25px; }\u0026#39; ) ); } add_action( \u0026#39;init\u0026#39;, \u0026#39;themeslug_register_block_styles\u0026#39; ); コードの分析 # 最初には themeslug_register_block_styles() という関数を作ってください、他の名前も大丈夫。そしてデフォルトのスタイルを設定してください。\nregister_block_style( \u0026#39;core/group\u0026#39;, array( \u0026#39;name\u0026#39; =\u0026gt; \u0026#39;default\u0026#39;, \u0026#39;label\u0026#39; =\u0026gt; __( \u0026#39;Default\u0026#39;, \u0026#39;themeslug\u0026#39; ), \u0026#39;is_default\u0026#39; =\u0026gt; true, \u0026#39;inline_style\u0026#39; =\u0026gt; \u0026#39;.wp-block-group.is-style-default {}\u0026#39; ) ); 次はカスタムスタイルを作ってください。\nregister_block_style( \u0026#39;core/group\u0026#39;, array( \u0026#39;name\u0026#39; =\u0026gt; \u0026#39;widget\u0026#39;, \u0026#39;label\u0026#39; =\u0026gt; __( \u0026#39;Widget\u0026#39;, \u0026#39;themeslug\u0026#39; ), \u0026#39;inline_style\u0026#39; =\u0026gt; \u0026#39;.wp-block-group.is-style-widget { background-color: #faf0e6; border-radius: 25px; }\u0026#39; ) ); name はカスタムスタイルの名前、そして inline style はカスタムスCSSの設定場所である。ここはグループというブロックをカスタムするので css には .wp-block-group とする。\nそしてスタイル名は widget ので後ろに .is-style-widget とする。\n最後には add_action() で作った関数を実行する。\nadd_action( \u0026#39;init\u0026#39;, \u0026#39;themeslug_register_block_styles\u0026#39; ); ","date":"2024年10月20日","externalUrl":null,"permalink":"/posts/2024/10/wordpress-custom-style/","section":"記事","summary":"","title":"WordPress - カスタムスタイルを作る","type":"posts"},{"content":" NT 東京 # 今日科学技術館に開催した NT 東京に行ってきた。\n江戸城、参ります！\nやっと着いた。\n会場に入った後目に映るのはロボットバンド。\n自作音源とMIDIキーボードもありそう。\nC# で作ったアンドロイドとハードウェアの通信アプリ。C# でアンドロイドアプリの開発もできることは初めて知ってた。\n深層学習に基づくカメラ認識のロボット操作。\nこれはハードディスクドライブかな。日本語を上手く喋らないのでどのために作ったのは聞かなかった、ちょっと残念。でも面白そう。\nやばいものを作ったらしいｗ。\nAR で現実に影響を与えられる球形ロボット。\n秋葉原 # せっかく来たんだから、秋葉原も寄ってみようかと思ってやはり来た。\nマクドナルドの新品を食べた。\nアトレ秋葉原のガルクライベント。でも入場制限のこととて、何も買わなかった。\n","date":"2024年9月7日","externalUrl":null,"permalink":"/posts/2024/09/nt-tokyo/","section":"記事","summary":"","title":"NT 東京に行ってきた","type":"posts"},{"content":"\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;HEAD\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;?php echo \u0026#39;\u0026lt;p\u0026gt;Hello World\u0026lt;/p\u0026gt;\u0026#39;; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; ","date":"2024年8月1日","externalUrl":null,"permalink":"/posts/2024/08/php-hello-world/","section":"記事","summary":"","title":"PHP - Hello World","type":"posts"},{"content":"","date":"2024年7月31日","externalUrl":null,"permalink":"/tags/android/","section":"タグ","summary":"","title":"Android","type":"tags"},{"content":"最初にはファイルを MainActivity と同じパッケージ環境に連携してください。\npackage com.example.name そしてクラスを作って AppCompatActivity タイプのコンストラクタ引数を与えてください。\nclass Test(private val appCompatActivity: AppCompatActivity) {} 最後に MainActivity でクラスのインスタンスを作って this を与えてください。\nprivate val test = Test(this) ","date":"2024年7月31日","externalUrl":null,"permalink":"/posts/2024/07/kotlin-use-mainactivity-api-with-other-file/","section":"記事","summary":"","title":"Kotlin - 他のファイルで MainActivity の API を使う","type":"posts"},{"content":"拡張機能 \u0026gt; 設定（右上の省略記号） \u0026gt; 表示 \u0026gt; 推奨をオフしてください。\n","date":"2024年7月30日","externalUrl":null,"permalink":"/posts/2024/07/turn-off-extension-recommendations-in-vs-code/","section":"記事","summary":"","title":"VS Code 拡張機能の推奨をオフする","type":"posts"},{"content":" 前言 # この操作をする前に Bluetooth 権限を取得する必要がある。\nKotlin - アプリの権限を取得する\nstartForResult ランチャーを作る # private val startForResult = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { result -\u0026gt; if (result.resultCode == Activity.RESULT_OK) { val intent: Intent? = result.data Toast.makeText(this, \u0026#34;RESULT_OK\u0026#34;, Toast.LENGTH_LONG).show() // Handle the Intent } } Bluetooth の初期化 # private fun bluetoothInit() { // bluetooth init val bluetoothManager: BluetoothManager = getSystemService(BluetoothManager::class.java) val bluetoothAdapter: BluetoothAdapter? = bluetoothManager.adapter // check bluetoothAdapter if (bluetoothAdapter == null) { // Device doesn\u0026#39;t support Bluetooth Toast.makeText(this, \u0026#34;Device doesn\u0026#39;t support Bluetooth.\u0026#34;, Toast.LENGTH_LONG).show() } // get bluetooth if (bluetoothAdapter?.isEnabled == false) { Toast.makeText(this, \u0026#34;bluetoothAdapter is not enable\u0026#34;, Toast.LENGTH_LONG).show() // Bluetooth を有効する val intent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE) startForResult.launch(intent) } } ","date":"2024年7月30日","externalUrl":null,"permalink":"/posts/2024/07/kotlin-turn-on-bluetooth/","section":"記事","summary":"","title":"Kotlin - Bluetooth をオンにする","type":"posts"},{"content":"ここでは BLUETOOTH_CONNECT 権限を例にする。\n権限ランチャーを作る # // 権限ランチャー private val requestPermissionLauncher = registerForActivityResult( ActivityResultContracts.RequestPermission() ) { isGranted: Boolean -\u0026gt; if (isGranted) { // 権限を取得できた Log.i(\u0026#34;Permission: \u0026#34;, \u0026#34;Granted\u0026#34;) } else { // 権限を取得できなかった Log.i(\u0026#34;Permission: \u0026#34;, \u0026#34;Denied\u0026#34;) } } 権限をリクエスト # private fun requestBluetoothPermission() { when { ContextCompat.checkSelfPermission( this, Manifest.permission.BLUETOOTH_CONNECT ) == PackageManager.PERMISSION_GRANTED -\u0026gt; { bluetoothInit() } ActivityCompat.shouldShowRequestPermissionRationale( this, Manifest.permission.BLUETOOTH_CONNECT ) -\u0026gt; { Toast.makeText(this, \u0026#34;Bluetooth 権限は必要にゃ。\u0026#34;, Toast.LENGTH_LONG).show() requestPermissionLauncher.launch( Manifest.permission.BLUETOOTH_CONNECT ) } else -\u0026gt; { Toast.makeText(this, \u0026#34;Bluetooth 権限は必要にゃ。\u0026#34;, Toast.LENGTH_LONG).show() requestPermissionLauncher.launch( Manifest.permission.BLUETOOTH_CONNECT ) } } } ","date":"2024年7月30日","externalUrl":null,"permalink":"/posts/2024/07/kotlin-get-app-permissions/","section":"記事","summary":"","title":"Kotlin - アプリの権限を取得する","type":"posts"},{"content":"設定 \u0026gt; デバイス情報 \u0026gt; ビルド番号を7回連続タップしてください。\n","date":"2024年7月28日","externalUrl":null,"permalink":"/posts/2024/07/pixel-enable-developer-mode/","section":"記事","summary":"","title":"Pixel の開発者モードを有効化する","type":"posts"},{"content":"約91万人がいると聞かされた、凄いな～\n久しぶりの花火大会！\n","date":"2024年7月27日","externalUrl":null,"permalink":"/posts/2024/07/sumidagawa-hanabi/","section":"記事","summary":"","title":"初めて隅田川花火大会を見た","type":"posts"},{"content":"activity_main.xml に ImageView を追加してください。\nonClick イベント関数に以下を書いてください。\nfun onButtonBottomClick(view: View) { val robot = findViewById\u0026lt;ImageView\u0026gt;(R.id.simulation_robot) robot.translationX += 50F } ","date":"2024年7月27日","externalUrl":null,"permalink":"/posts/2024/07/android-studio-change-view-position-with-button/","section":"記事","summary":"","title":"Android Studio - ボタンで View の位置を変更する","type":"posts"},{"content":"activity_main にボタンを追加して、Attributes で onClick イベント名前を設定してください。\nそして MainActivity.kt に onClick イベント名前対応のイベント関数を書いてください。\nfun onButtonBottomClick(view: View) { Toast.makeText(this, \u0026#34;ボタンが押された\u0026#34;, Toast.LENGTH_LONG).show() } ボタンを押した後トーストメッセージが出力する。\n","date":"2024年7月26日","externalUrl":null,"permalink":"/posts/2024/07/android-button-click-event/","section":"記事","summary":"","title":"Android Studio - ボタンクリックイベント","type":"posts"},{"content":"Tools \u0026gt; Device Manager を移動して、プラスで Create Virtual Device を選択してください。\nそしてデバイスの選択画面が出る。\n","date":"2024年7月24日","externalUrl":null,"permalink":"/posts/2024/07/android-studio-add-simulated-device/","section":"記事","summary":"","title":"Android Studio - シミュレーションデバイスを追加する","type":"posts"},{"content":" ICO ファイルの作成 # ImageMagick をダウンロードして、以降のコマンドでPNGファイルを hiDPI 対応の ICO ファイルに変換してください。\nmagick icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico ImageMagick は異なるバージョンに従ってコマンドが異なる場合がある。\nタスクバーアイコンの変更 # タスクバーアイコンを変更するには、Project \u0026gt; Project Settings \u0026gt; Application \u0026gt; Config \u0026gt; Windows Native Icon に移動して、自分のアイコンに変更してください。（右上の Advanced Settings を有効する必要がある）\nファイルアイコンの変更 # rcedit をインストールし、Editor \u0026gt; Editor Settings \u0026gt; Export \u0026gt; Windows に移動してください。そして rcedit エントリのフォルダアイコンをクリックし、 rcedit実行可能ファイルまで移動して選択してください。\nrcedit を Linux および macOS ユーザーが使用するためには WINE をインストールする必要がある。\nこれで、ファイル・アイコンを変更するためのすべてが準備できた。そのためには、エクスポート時にアイコンを指定する必要がある。Project \u0026gt; Export に移動してください。既に Windows デスクトッププリセットを作成している場合、Application \u0026gt; Icon フィールドで ICO 形式のアイコンを選択してください。\n","date":"2024年7月24日","externalUrl":null,"permalink":"/posts/2024/07/godot-change-windows-app-icon/","section":"記事","summary":"","title":"Godot - Windows 版アプリケーションアイコンを変更する","type":"posts"},{"content":"以前書いた方法は少し使うにくいため、新しい方法を見つけた。\nGodot - シーンの切り替え\nコード # get_tree().change_scene_to_file(scene) ","date":"2024年7月22日","externalUrl":null,"permalink":"/posts/2024/07/godot-switch-scenes-easily/","section":"記事","summary":"","title":"Godot - 簡単にシーンを切り替え","type":"posts"},{"content":"この設定方法は Windows11 Pro ユーザー限りである。\nWindows と R を押して gpedit.msc を 入力し、Enter を押してください。\nそして「コンピューターの構成」＞「管理用テンプレート」＞「Windows コンポーネント」＞「検索」に入ってください。\n「Web 検索を許可しない」と「Web を検索したり [検索] に Web の検索結果を表示したりしない」をダブルクリックして有効化してください。その後パソコンを再起動してください。\n次はまた Windows と R を押して regedit.exe を 入力し、Enter を押してください。\nそして Computer\\HKEY_CURRENT_USER\\Software\\Microsoft\\Windows Windows\\CurrentVersion\\Search に入ってください。\nSearch を右クリックして新規の DWORD ( 32 ビット ) 値を作し、BingSearchEnabled と命名してください。\n最後に Dword をダブルクリックして値のデータを 0 に設定してください。\n設定後ウェブ検索結果はもう消えた。\n","date":"2024年7月8日","externalUrl":null,"permalink":"/posts/2024/07/windows11-disable-web-search/","section":"記事","summary":"","title":"Windows 11 のウェブ検索機能を無効化する","type":"posts"},{"content":"今日は３Dプリンターでモバイルスタンドを作った！\n長い時間使っていないせいかも「フィラメントが破損もしくは詰まっています。確認してください」と言っちゃった\u0026hellip;\u0026hellip;\nでも少し時間がかかってやっと直した。\nそして最近 X4: Foundations にはまっているので、小学生時代 Freelancer を遊んだ時の感じが戻った、ちょっと懐かしいな。\nほぼ二十年経ったのに、やはり宇宙に目がないやん。\nところで、最近ゲームばかりしてるけど新曲も作っている（大学院受験準備も！）、今回はアニメソン風（・ｗ・）\nでもまだたくさん道があるそうな \u0026hellip;\u0026hellip;\n","date":"2024年7月5日","externalUrl":null,"permalink":"/posts/2024/07/universe/","section":"記事","summary":"","title":"宇宙に目がないやん","type":"posts"},{"content":"本日料理は中華チャーハン。\nでも最初に料理酒を食用油として入れちゃった\u0026hellip;\u0026hellip;\nそしてニンニクや生姜とたまごの投入順序が間違った。\nまた未熟者だ！何十回チャーハン作ったのにこんな凡ミスをしちゃった。\n今回はもうダメと思ったけど完成品は食べられる！\n美味しい！\n","date":"2024年7月1日","externalUrl":null,"permalink":"/posts/2024/07/golden-liquid-not-oil/","section":"記事","summary":"","title":"金色の液体なのに油じゃない","type":"posts"},{"content":" 死んだ魚目ようなサーバー # 実は先日、このサイトは死んだ。\n壊れた Temporary URL どうしても繋がらないドメインコネクトサービス もう終わったよ！（悲鳴）、使うられないサービスばかりし、広告も多い、問題があったら全部「チャートに連絡して」という。でも俺にとって英語は無理だよ！\n不幸中の幸い、データはどうやら救われた。\n最終 Hostgator を辞めるが決めて、さくらサーバーに変更した。やはりさくらサーバーは使いやすいな。\n本日料理 # 今日ネギ豆腐を作った、赤い点はたらこ。\n","date":"2024年6月29日","externalUrl":null,"permalink":"/posts/2024/06/server-data-rescue-mission/","section":"記事","summary":"","title":"サーバーデータ救出大作戦","type":"posts"},{"content":"昨晩アマゾンさんが線形代数の教科書を届いた。\n今日から線形代数の勉強をしなければならないな\u0026hellip;\u0026hellip;\nでも数学やはり難しいよな、全然食べれない。\nそして今日、中華料理の作り方でもも肉料理に挑戦した。味はまあまあかな。\n","date":"2024年6月28日","externalUrl":null,"permalink":"/posts/2024/06/inedible-linear-algebra-edible-chicken-thigh/","section":"記事","summary":"","title":"食べられない線形代数と食べられる鶏もも肉","type":"posts"},{"content":"毎日普通に過ごし日本語も下手で何を書くのか全然分からんのにやはり日記を書きたいなと思って日記を始めた。\n一応、聖上の恩情はすべて返したので、中国から解放された。新しい生活はここから始まる。\n","date":"2024年6月19日","externalUrl":null,"permalink":"/posts/2024/06/first-diary-entry/","section":"記事","summary":"","title":"初めての日記","type":"posts"},{"content":"最初にはパソコンに SSH key があるかないかを確認してください。\ncd ~/.ssh ls そしてid_rsa と id_rsa.pub の存在を確認してください。ない場合以下のコマンドで新しい SSH key を作成してください。\nssh-keygen -t rsa -C \u0026#34;xxx@xxx.com\u0026#34; \u0026ldquo;xxx@xxx.com\u0026rdquo; の中に自分の GitHub アカントと連携したメールを書いて、その後三回の確認があるので Enter キーを押し続ければ良い。そして同じファイルで以下のコマンドを入力して SSH key の内容を取得できる。\ncat id_rsa.pub 最後にこれをコーピーして GitHub 設定画面の SSH and GPG keys で新しい鍵を作ってコーピーした内容をその中に入力してください。\n","date":"2024年6月17日","externalUrl":null,"permalink":"/posts/2024/06/git-ssh-key-setup/","section":"記事","summary":"","title":"Git SSH Key の設定","type":"posts"},{"content":" 環境設定 # 最初には OpenConnect 環境のインストールしてください。\nsudo apt install openconnect sudo apt install network-manager-openconnect-gnome ネットサービスの再起動 # その後ネットサービスの再起動は必要である。\nsudo systemctl restart NetworkManager 接続 # ネットワークの設定画面で VPN を追加してください。\nそして Multi-protocol VPN client(openconnect) を選択してください。\nGateway を編集して IPv6 を無効化してください。\n最後に追加ボタンを押して、AnyConnect VPN の登録画面が出来る。\n","date":"2024年6月15日","externalUrl":null,"permalink":"/posts/2024/06/debian-anyconnect-vpn-setup/","section":"記事","summary":"","title":"Debian で AnyConnect VPN を使う","type":"posts"},{"content":"","date":"2024年6月15日","externalUrl":null,"permalink":"/tags/linux/","section":"タグ","summary":"","title":"Linux","type":"tags"},{"content":" activity_main.xml # activity_main.xml にボタンとテキストを追加し、ID と位置を設定してください。\nMainActivity.kt # MainActivity.kt の onCreate() に以下のコードを追加してください。\nval tv : TextView = findViewById(R.id.text) val btn : Button = findViewById(R.id.button) var num = 0 btn.setOnClickListener { num++ tv.text = String.format(getString(R.string.text1), num) } strings.xml # アンドロイドの開発規範を従うために、strings.xml でテキストを追加してください。\n\u0026lt;string name=\u0026#34;text1\u0026#34;\u0026gt;Click: %d\u0026lt;/string\u0026gt; ","date":"2024年4月11日","externalUrl":null,"permalink":"/posts/2024/04/android-studio-button-change-text/","section":"記事","summary":"","title":"Android Studio - ボタンでテキストを変更する","type":"posts"},{"content":"from machine import Pin, Timer led = Pin(\u0026#34;LED\u0026#34;, Pin.OUT) timer = Timer() def blink(timer): led.toggle() timer.init(freq = 2.5, mode = Timer.PERIODIC, callback = blink) または\nfrom machine import Pin import time led = Pin(\u0026#34;LED\u0026#34;, Pin.OUT) if __name__ == \u0026#34;__main__\u0026#34;: while True: led.toggle() time.sleep(1) ","date":"2024年2月14日","externalUrl":null,"permalink":"/posts/2024/02/raspberry-pi-pico-led-on/","section":"記事","summary":"","title":"Raspberry Pi Pico - 点灯","type":"posts"},{"content":"多分 \u0026quot; の前は \\ が必要だと思う。\nhomeassistant.local -t homeassistant/test -u user -P password -p 1883 -m \u0026#39;{\\\u0026#34;temperature\\\u0026#34;: 23.20}\u0026#39; ","date":"2024年2月8日","externalUrl":null,"permalink":"/posts/2024/02/home-assistant-mosquitto-pub-message-not-received/","section":"記事","summary":"","title":"Home Assistant - mosquitto_pub のメッセージ設定は正しいけどデータが届かない","type":"posts"},{"content":" エラーコード # The following features required to run Godot projects on the Web are missing: Cross Origin Isolation - Check web server configuration (send correct headers) SharedArrayBuffer - Check web server configuration (send correct headers) 解決方法 # .htaccess に以下のコードを追加してください。\nHeader set Cross-Origin-Embedder-Policy \u0026#34;require-corp\u0026#34; Header set Cross-Origin-Opener-Policy \u0026#34;same-origin\u0026#34; ","date":"2024年2月7日","externalUrl":null,"permalink":"/posts/2024/02/godot-fix-web-program-not-running/","section":"記事","summary":"","title":"Godot - ウェブプログラムが実行出来ないを解決する","type":"posts"},{"content":" Project Settings → Player → Other Settings → Api Compatibility Level を .Net Framework に変更すれば解決できる。\n","date":"2024年1月1日","externalUrl":null,"permalink":"/posts/2024/01/unity-system-io-ports-not-working/","section":"記事","summary":"","title":"Unity - System.IO.Ports が使えない","type":"posts"},{"content":"","date":"2023年12月12日","externalUrl":null,"permalink":"/tags/fpga/","section":"タグ","summary":"","title":"FPGA","type":"tags"},{"content":" 原理図 # モジュールコード # モジュールを接続場合、ポートのみが重要になる。モジュール中のコードを知る必要がない。モジュールのコードは次の通り。\nmodule mod_a ( input in1, input in2, output out ); // Module body endmodule インスタンスと接続 # ポジションで # mod_a instance1 ( wa, wb, wc ); 名前で # mod_a instance2 ( .out(wc), .in1(wa), .in2(wb) ); 例 # module top_module ( input a, input b, output out ); // Create an instance of \u0026#34;mod_a\u0026#34; named \u0026#34;inst1\u0026#34;, and connect ports by name: mod_a inst1 ( .in1(a), // Port\u0026#34;in1\u0026#34;connects to wire \u0026#34;a\u0026#34; .in2(b),\t// Port \u0026#34;in2\u0026#34; connects to wire \u0026#34;b\u0026#34; .out(out)\t// Port \u0026#34;out\u0026#34; connects to wire \u0026#34;out\u0026#34; // (Note: mod_a\u0026#39;s port \u0026#34;out\u0026#34; is not related to top_module\u0026#39;s wire \u0026#34;out\u0026#34;. // It is simply coincidence that they have the same name) ); /* // Create an instance of \u0026#34;mod_a\u0026#34; named \u0026#34;inst2\u0026#34;, and connect ports by position: mod_a inst2 ( a, b, out );\t// The three wires are connected to ports in1, in2, and out, respectively. */ endmodule ","date":"2023年12月12日","externalUrl":null,"permalink":"/posts/2023/12/verilog-module-instantiation-and-signal-connection/","section":"記事","summary":"","title":"Verilog - モジュールのインスタンス化とシグナル接続","type":"posts"},{"content":" エックスノア (XNOR) の表示方法 # エックスノア (XNOR) の表示方法 エックスノア (XNOR) の真理値表 # A B A XNOR B 0 0 1 0 1 0 1 0 0 1 1 1 例 # module top_module ( input a, b, c, d, e, output [24:0] out ); wire [24:0] top, bottom; assign top = { {5{a}}, {5{b}}, {5{c}}, {5{d}}, {5{e}} }; assign bottom = {5{a,b,c,d,e}}; assign out = ~top ^ bottom;\t// Bitwise XNOR // This could be done on one line: // assign out = ~{ {5{a}}, {5{b}}, {5{c}}, {5{d}}, {5{e}} } ^ {5{a,b,c,d,e}}; endmodule ","date":"2023年12月10日","externalUrl":null,"permalink":"/posts/2023/12/verilog-vector-xnor/","section":"記事","summary":"","title":"Verilog - ベクトルのエックスノア (XNOR)","type":"posts"},{"content":"ここには8ビットの順序を逆するを例に挙げる。\nfor # module top_module( input [7:0] in, output [7:0] out ); always @(*) begin for (int i = 0; i \u0026lt; 8; i++) out[i] = in[8 - i - 1]; end endmodule generate - for # module top_module( input [7:0] in, output [7:0] out ); generate genvar i; for (i = 0; i \u0026lt; 8; i = i + 1) begin: my_block_name assign out[i] = in[8 - i - 1]; end endgenerate endmodule ","date":"2023年12月9日","externalUrl":null,"permalink":"/posts/2023/12/verilog-for-loop/","section":"記事","summary":"","title":"Verilog - for ループ","type":"posts"},{"content":" 原理図 # ビット演算子 # assign out_or_bitwise = a | b; 論理演算子 # assign out_or_logical = a || b; ","date":"2023年12月7日","externalUrl":null,"permalink":"/posts/2023/12/verilog-bitwise-and-logical-operators/","section":"記事","summary":"","title":"Verilog - ビット演算子と論理演算子","type":"posts"},{"content":"`default_nettype none // Disable implicit nets. Reduces some types of bugs. module top_module( input wire [15:0] in, output wire [7:0] out_hi, output wire [7:0] out_lo ); assign out_hi = in[15:8]; assign out_lo = in; endmodule ","date":"2023年12月6日","externalUrl":null,"permalink":"/posts/2023/12/verilog-vector-split/","section":"記事","summary":"","title":"Verilog - ベクトルの分割","type":"posts"},{"content":" 原理図 # コード # module top_module ( input wire [2:0] vec, output wire [2:0] outv, output wire o2, output wire o1, output wire o0 ); // Module body starts after module declaration assign outv = vec; assign {o2, o1, o0} = vec; endmodule ","date":"2023年12月6日","externalUrl":null,"permalink":"/posts/2023/12/verilog-vector/","section":"記事","summary":"","title":"Verilog - ベクトル","type":"posts"},{"content":" 原理図 # コード # module top_module ( input p1a, p1b, p1c, p1d, p1e, p1f, output p1y, input p2a, p2b, p2c, p2d, output p2y ); wire p2_1 = p2a\u0026amp;p2b; wire p2_2 = p2c\u0026amp;p2d; wire p1_1 = p1a\u0026amp;p1c\u0026amp;p1b; wire p1_2 = p1f\u0026amp;p1e\u0026amp;p1d; assign p2y = p2_1 | p2_2; assign p1y = p1_1 | p1_2; endmodule シミュレーション結果 # ","date":"2023年12月6日","externalUrl":null,"permalink":"/posts/2023/12/verilog-7458-chip/","section":"記事","summary":"","title":"Verilog - 7458チップ","type":"posts"},{"content":" top.v # module top( input i_clk ,input [3:0] i_sw_n ,output o_led_blue ,output o_led_green ,output o_led_orange ,output o_led_red ); assign o_led_blue = ~i_sw_n[3]; assign o_led_green = ~i_sw_n[2]; assign o_led_orange = ~i_sw_n[1]; assign o_led_red = ~i_sw_n[0]; endmodule top_tb.v # `timescale 1ns / 100ps module top_tb; // 信号を定義 reg r_clk; reg [3:0] r_sw_n; wire w_led_blue; wire w_led_green; wire w_led_orange; wire w_led_red; // 100MHzクロック信号を生成 initial begin r_clk = 0; end always #(5) begin r_clk \u0026lt;= ~r_clk; end // スイッチ信号を生成 initial begin #0 r_sw_n[3:0] = 4\u0026#39;b1111; #100 r_sw_n[3:0] = 4\u0026#39;b1110; #100 r_sw_n[3:0] = 4\u0026#39;b1111; #100 r_sw_n[3:0] = 4\u0026#39;b1101; #100 r_sw_n[3:0] = 4\u0026#39;b1111; #100 r_sw_n[3:0] = 4\u0026#39;b1011; #100 r_sw_n[3:0] = 4\u0026#39;b1111; #100 r_sw_n[3:0] = 4\u0026#39;b0111; #100 r_sw_n[3:0] = 4\u0026#39;b1111; end // top.vを読み出す top top_inst ( .i_clk (r_clk) ,.i_sw_n (r_sw_n) ,.o_led_blue (w_led_blue) ,.o_led_green (w_led_green) ,.o_led_orange (w_led_orange) ,.o_led_red (w_led_red) ); endmodule Sources設定 # シミュレーション結果 # ","date":"2023年12月5日","externalUrl":null,"permalink":"/posts/2023/12/verilog-led-on/","section":"記事","summary":"","title":"Verilog - 点灯","type":"posts"},{"content":" コード # `timescale 1ns / 100ps module tb1; // 100MHz logic clk_100mhz; initial clk_100mhz = 1; always #(5) clk_100mhz = ~clk_100mhz; endmodule 結果 # ","date":"2023年12月4日","externalUrl":null,"permalink":"/posts/2023/12/verilog-clock-signal/","section":"記事","summary":"","title":"Verilog - クロック信号","type":"posts"},{"content":" コード # `timescale 1ns / 100ps module tb1; logic signal; initial signal = 1; endmodule 結果 # ","date":"2023年12月4日","externalUrl":null,"permalink":"/posts/2023/12/verilog-first-signal/","section":"記事","summary":"","title":"Verilog - 初めてのシグナル","type":"posts"},{"content":" シグナル源 # signal signal_test func _process(delta): if(true): # ifの中でシグナルの発生条件を設定する signal_test.emit() # シグナル発生 return delta シグナルターゲット # func _ready(): scene_source.signal_test.connect(on_signal_test) func on_signal_test(): # ここで自分のコードを書く pass ","date":"2023年11月24日","externalUrl":null,"permalink":"/posts/2023/11/godot-connect-signals-across-scenes/","section":"記事","summary":"","title":"Godot - 異なるシーン間のシグナル設定","type":"posts"},{"content":" トンネル効果 # この効果は電子が波動であることの立証になる。\nエネルギー障壁の高さ\\(V_1\\)は十分に高くて、電子のエネルギーよりも大きいとする。電子を粒子とすると、電子のはこの障壁を越えることができず、境界ですべて反射されてしまう。とこらが電子を波動と考えると、この障壁中に浸み込んでいくことが可能になる。この効果をトンネル効果という。\nトンネル抜け前後で粒子のエネルギー（波長）は変わらないが確率振幅は減少する。\nトンネル確率 P # 単位時間に単位面積を通過する入射波と透過波の電子数の比と定義する。\n任意の形をとる時には\n$$P\\fallingdotseq A\\cdot exp\\Big(-\\frac{2}{\\hslash}\\sqrt{2m}\\int_{0}^{x_1}\\sqrt{|V(x)-E|}\\cdot dx\\Big) $$\\(E=V_1∕2\\) をとる時には\n$$P=4\\cdot exp \\Big(-\\frac{2m\\sqrt{gh}}{\\hslash}\\cdot W\\Big)$$","date":"2023年11月20日","externalUrl":null,"permalink":"/posts/2023/11/quantum-tunneling/","section":"記事","summary":"","title":"トンネル効果","type":"posts"},{"content":"","date":"2023年11月20日","externalUrl":null,"permalink":"/tags/semiconductor/","section":"タグ","summary":"","title":"半導体","type":"tags"},{"content":" 状態密度関数 # 単位体積当たりの単位エネルギー領域に対する電子の量子状態数を状態密度といい。一般には\\(g(E)\\)で表す。\n$$g(E)=\\frac{1}{2π^2} \\Bigg(\\frac{2m}{\\hslash ^2}\\Bigg)^{3/2}E^{1∕2}$$","date":"2023年11月19日","externalUrl":null,"permalink":"/posts/2023/11/density-of-states/","section":"記事","summary":"","title":"状態密度関数","type":"posts"},{"content":" 縮退 # エネルギー固有値が同じて、固有関数が異なる場合を縮退している。\nフェルミエネルギー # フェルミエネルギーは、絶対零度における電子の取りうる最大のエネルギーである。\n$$E_F(0)=\\frac{\\hslash ^2}{2m}(3\\pi ^2n)^{2/3}$$ここで、\\(n≡N∕L^3\\) は単位体積当たりの電子数、すなわち電子密度である。\n絶対零度ではこのエネルギー値以下のエネルギー準位はすべて電子で満たされていて、それ以上のエネルギー準位は空席である。\nフェルミ温度 # $$T_F≡\\frac{E_F(0)}{k}$$これをフェルミ温度という。ここで、ｋはボルツマン定数である。\nフェルミ速度 # $$v_F=\\Bigg(\\frac{2E_F(0)}{m}\\Bigg)^{1/2}$$これをフェルミ速度という。\n","date":"2023年11月18日","externalUrl":null,"permalink":"/posts/2023/11/fermi-energy/","section":"記事","summary":"","title":"フェルミエネルギー","type":"posts"},{"content":" 量子井戸(quantum well) # 電子の移動方向が束縛された状態のこと。\n境界条件 # \\(x=0\\) の点で　\\(φ(0)=0\\) \\(x=L\\) の点で　\\(φ(L)=0\\)\n$$\\varphi (x)=\\Big(\\frac{2}{L}\\Big)^{\\frac{1}{2}}\\sin\\Big(\\frac{n\\pi}{L}x\\Big)$$$$P_r=|\\varphi (x)|^2=\\Big(\\frac{2}{L}\\Big)\\sin^2\\Big(\\frac{n\\pi}{L}x\\Big)$$$$E_n=\\frac{\\pi^2\\hslash^2}{2mL^2}\\cdotp n^2$$ 3次元の場合 # $$\\varphi (x,y,z)=\\Big(\\frac{2}{L}\\Big)^\\frac{3}{2}\\cdotp\\sin \\Big(\\frac{n_x\\pi}{L}x\\Big)\\cdotp\\sin \\Big(\\frac{n_y\\pi}{L}y\\Big)\\cdotp\\sin \\Big(\\frac{n_z\\pi}{L}z\\Big)$$$$E_{n_x,n_y,n_z}=\\frac{\\hslash ^2}{2m}\\Big(\\frac{\\pi}{L}\\Big)^2(n_x^2+n_y^2+n_z^2)$$最大のエネルギー値 E をフェルミエネルギーという。\n","date":"2023年11月15日","externalUrl":null,"permalink":"/posts/2023/11/bound-particle/","section":"記事","summary":"","title":"束縛粒子","type":"posts"},{"content":" 時間に依存するシュレーディンガー方程式 # $$i\\hslash\\frac{d}{dt}|\\Psi(t)\\rangle=\\hat{H}|\\Psi(t)\\rangle$$なぜならば\n$$E=\\frac{P^2}{2m}+V=H$$ポテンシャルエネルギー \\(V\\)\nすなわち\n1次元の場合は\n$$j\\hslash\\frac{\\partial\\Psi}{\\partial t}=-\\frac{\\hslash^2}{2m}\\frac{\\partial^2\\Psi}{\\partial x^2}+V\\Psi$$3次元の場合は\n$$i\\hslash\\frac{\\partial}{\\partial t}\\Psi(x,t)=\\Biggl[\\frac{-\\hslash^2}{2m}\\nabla^2+V(x,t)\\Biggr]\\Psi(x,t)$$ ハミルトニアン H # 解析力学（古典力学） # $$H=H(q,p;t)=T+V$$ 運動エネルギー \\(T\\) ポテンシャルエネルギー \\(V\\) 一般化座標 \\(q\\) 一般化運動量 \\(p\\) 時間 \\(t\\)\n量子力学 # これは古典力学におけるハミルトニアンの技術的な定義ではありませんが、これが最も一般的に取られる形式です。これらを組み合わせると、シュレーディンガー方程式で使用される形式が得られます。\n$$ \\begin{equation} \\begin{aligned} \\hat{H} =\\hat{T}+\\hat{V} =\\frac{\\hat{P}\\cdotp\\hat{P}}{2m}+V(r,t) =-\\frac{\\hslash^2}{2m}\\nabla^2+V(r,t) \\end{aligned} \\end{equation} $$ ディラック定数 # $$ \\begin{equation} \\begin{aligned} \\hslash\\equiv\\frac{h}{2\\pi} =1.054 571 817…\\times 10^{-34}J\\cdotp s =6.582119569…\\times 10^{-16}eV\\cdotp s \\end{aligned} \\end{equation} $$ 物理的意義 # $$E=h\\nu=\\frac{h}{2\\pi}\\cdotp 2\\pi\\nu =\\hslash\\omega$$$$P=\\frac{h}{\\lambda}=\\frac{h}{2\\pi}\\frac{2\\pi}{\\lambda} =\\hslash k$$ ラプラシアン # $$\\nabla^2=\\frac{\\partial^2}{\\partial x^2}+\\frac{\\partial^2}{\\partial y^2}+\\frac{\\partial^2}{\\partial z^2}$$ 時刻を含まないシュレーディンガーの波動方程式 # $$-\\frac{\\hslash^2}{2m}\\frac{d^2\\varphi (x)}{dx^2}+\\lbrace V(x)-E\\rbrace\\varphi (x)=0$$ エネルギー固有値 \\(E\\) 固有関数 \\(φ(x)\\) $$\\Psi(x,t)=\\varphi (x)Cexp\\Biggl(-j\\frac{E}{\\hslash}t\\Biggr )$$\\(\\varphi(x)\\)は\\(\\Psi(x,t)\\)の振幅を決める\n確率密度 # $$P_r=\\Psi^*\\cdotp\\Psi=|\\Psi|^2$$\\(\\intop_V\\Psi^*\\cdotp\\Psi dxdydz=1\\) を満足する波動関数を、1に規格化された波動関数という。\n","date":"2023年11月14日","externalUrl":null,"permalink":"/posts/2023/11/schrodinger-wave-equation/","section":"記事","summary":"","title":"シュレーディンガーの波動方程式","type":"posts"},{"content":" ド・ブロイの関係式は\n$$λ=\\frac h Ρ$$そしてPは粒子の運動量。\n$$Ρ≡mv_g$$$$Ρ=\\sqrt{2mE}\\quad (変形)$$粒子の速度は群速度であると考えられると、ド・ブロイの仮説の式が求められる。\n","date":"2023年11月13日","externalUrl":null,"permalink":"/posts/2023/11/de-broglie-relation/","section":"記事","summary":"","title":"ド・ブロイの関係式","type":"posts"},{"content":" 波束（波群） # 局所的に存在する波うち/波動であり、移動する1個の波動の塊のようにふるまう。\n振幅が最大になる点は1箇所だけになる。\nこの波束だけに注目したとき、これがあたかも粒子的に振る舞うように見える。すなわち、直観的には波束が粒子であると考えることができる。\nこの説明は、物理的にはやや厳密性を失う。\n群速度 # 複数の波を重ね合わせた時にその全体（波束）が移動する速度のことである。 $$v_g = \\frac{dω}{dk}$$ 位相速度 # 各波の速度。 $$v = \\frac ω k$$ 関係式 # $$k≡\\frac{2π}{λ}$$ $$ω≡2πν$$","date":"2023年11月12日","externalUrl":null,"permalink":"/posts/2023/11/wave-packet-phase-velocity-group-velocity/","section":"記事","summary":"","title":"波束、位相速度、群速度","type":"posts"},{"content":" 光の粒子性と波動性 # 光はある場合には波動として振る舞い、ある場には粒子として振る舞う、つまり、いわゆる波動性と粒子性の二重性を持っている。\n電子と光同じように、粒子性と波動性の二重性をもつ。\n波粒戦争歴史 # ","date":"2023年11月8日","externalUrl":null,"permalink":"/posts/2023/11/wave-particle-duality-of-light/","section":"記事","summary":"","title":"光の粒子性と波動性","type":"posts"},{"content":" 効果 # 作り方 # Godot バージョンは 4.1である。\nScene 中の Node はこのように設定してください。\nDebug 用の Sprite2D はこのように設定してください。\nシングルトンノードのスクリプトに Child をロードし、変量を設定してください。\n@onready var area = $MouseDrawArea2D @onready var collision = $MouseDrawArea2D/CollisionShape2D @onready var debug = $MouseDrawArea2D/Debug var draw_start_point : Vector2 var draw_rect_point : Vector2 var drawing : bool インプット事件を設定してください。\nfunc _input(event): if event is InputEventMouseButton: match event.pressed \u0026amp;\u0026amp; event.button_index == MOUSE_BUTTON_LEFT: true: draw_start_point = get_global_mouse_position() draw_rect_point = draw_start_point drawing = true false: drawing = false elif event is InputEventMouseMotion \u0026amp;\u0026amp; drawing: draw_rect_point = get_global_mouse_position() draw 関数を設定してください。\nfunc _draw(): if drawing: draw_rect(Rect2(draw_start_point, draw_rect_point - draw_start_point), Color.GREEN, false) process 関数を設定してください。\nfunc _process(delta): queue_redraw() # update _draw() if drawing: # collision collision.global_position = (draw_rect_point + draw_start_point) / 2 collision.scale = draw_rect_point - draw_start_point # Debug debug.global_position = (draw_rect_point + draw_start_point) / 2 debug.scale = draw_rect_point - draw_start_point else: # collision collision.global_position = Vector2.ZERO collision.scale = Vector2.ZERO # Debug debug.global_position = Vector2.ZERO debug.scale = Vector2.ZERO return delta 注意点 # 二つのサイズをこのように設定してください。\n","date":"2023年11月2日","externalUrl":null,"permalink":"/posts/2023/11/godot-rts-selection-box/","section":"記事","summary":"","title":"Godot - RTS ゲームの選択ボックスの作り方","type":"posts"},{"content":"// Godot 4.1 #define diagonal(X, Y) pow(X, 2) + pow(Y, 2) shader_type canvas_item; uniform vec2 center = vec2(0.5, 0.5); uniform float width = 0.01; uniform float time_scale = 1.0; uniform float speed = 0.2; uniform vec4 color : source_color = vec4(1.0, 1.0, 1.0, 1.0); void fragment(){ COLOR = texture(TEXTURE, UV); if(diagonal(UV.x - center.x, UV.y - center.y) \u0026lt; abs(sin(TIME * time_scale)) * speed){ if(diagonal(UV.x - center.x, UV.y - center.y) \u0026gt; abs(sin((TIME - width) * time_scale)) * speed){ COLOR = color; } else COLOR.a = 0.0; } else COLOR.a = 0.0; } ","date":"2023年10月11日","externalUrl":null,"permalink":"/posts/2023/10/godot-shader-create-flowmap/","section":"記事","summary":"","title":"Godot - Shader でふろーまーくを作る","type":"posts"},{"content":"// Godot 4.1 #define diagonal(X, Y) pow(X, 2) + pow(Y, 2) shader_type canvas_item; uniform vec2 center = vec2(0.5, 0.5); uniform float r = 0.5; uniform vec4 color : source_color = vec4(1.0, 1.0, 1.0, 1.0); void fragment(){ COLOR = texture(TEXTURE, UV); if(diagonal(abs(center.x - UV.x), abs(center.y - UV.y)) \u0026lt; pow(r, 2)) COLOR = color; else COLOR.a = 0.0; } ","date":"2023年10月11日","externalUrl":null,"permalink":"/posts/2023/10/godot-shader-draw-circle/","section":"記事","summary":"","title":"Godot - Shader で丸を作る","type":"posts"},{"content":"private void MouseSelect() { RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint( Input.mousePosition), Vector2.zero); // レイヤーが命中時 if (hit.collider != null \u0026amp;\u0026amp; hit.collider.gameObject == gameObject) { transform.localScale = new Vector3(1.2f, 1.2f, 1); // オブジェクト拡大 } else { transform.localScale = new Vector3(1, 1, 1); // オブジェクト復元 } if (Input.GetMouseButtonDown(0)) { // レイヤーが命中時マウスボタンを押す if (hit.collider != null \u0026amp;\u0026amp; hit.collider.gameObject == gameObject) { } } } ","date":"2023年10月7日","externalUrl":null,"permalink":"/posts/2023/10/unity-scale-object-on-mouse-hover/","section":"記事","summary":"","title":"Unity - マウスがサスペンド時にオブジェクトを拡大する","type":"posts"},{"content":"public Slider musicSlider; public Slider soundSlider; public AudioMixer mixer; private void Start() { mixer.GetFloat(\u0026#34;Music\u0026#34;, out float bgmVolume); musicSlider.value = bgmVolume; mixer.GetFloat(\u0026#34;Sound\u0026#34;, out float soundVolume); soundSlider.value = soundVolume; } public void MusicMaster(float vol) { vol = musicSlider.value; if (vol == -30f) vol = -80f; mixer.SetFloat(\u0026#34;Music\u0026#34;, vol); } public void SoundMaster(float vol) { vol = soundSlider.value; if (vol == -30f) vol = -80f; mixer.SetFloat(\u0026#34;Sound\u0026#34;, vol); } 最後にスライダーの最大値を０に設定し、最小値を-30に設定してください。\n","date":"2023年10月5日","externalUrl":null,"permalink":"/posts/2023/10/unity-audio-volume-slider/","section":"記事","summary":"","title":"Unity - スライダーで音量を調整する","type":"posts"},{"content":"#if UNITY_EDITOR // エディター中 // ゲーム退出 public void ExitGame() { UnityEditor.EditorApplication.isPlaying = false; } #else // プログラム中 // ゲーム退出 public void ExitGame() { Application.Quit(); } #endif ","date":"2023年10月4日","externalUrl":null,"permalink":"/posts/2023/10/unity-exit-game/","section":"記事","summary":"","title":"Unity - ゲームの退出","type":"posts"},{"content":"UI にこれらが必要である。\nそして UI をこのようになる。\nコード # using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; using static System.Net.Mime.MediaTypeNames; public class LoadManager : MonoBehaviour { [Header(\u0026#34;背景\u0026#34;)] public GameObject BackGround; [Header(\u0026#34;スライダー\u0026#34;)] public Slider slider; [Header(\u0026#34;テキスト\u0026#34;)] public TextMeshProUGUI text; public void LoadNextLevel() { StartCoroutine(LoadLevel()); } IEnumerator LoadLevel() { // operation = このシーンの番号 + 1 AsyncOperation operation = SceneManager.LoadSceneAsync(SceneManager.GetActiveScene().buildIndex + 1); while(!operation.isDone) { slider.value = operation.progress; // スライダー進度を設定 text.text = operation.progress * 100 + \u0026#34;%\u0026#34;; // テキストで進度を表示する yield return null; } } } 非同期ロードをしたい場合、LoadNextLevel() をコールする必要がある。\n","date":"2023年9月28日","externalUrl":null,"permalink":"/posts/2023/09/unity-timer/","section":"記事","summary":"","title":"Unity - シーン非同期ロード","type":"posts"},{"content":" Time.time # private float timeStart; // 計時スタート時の表記 private void Start() { timeStart = Time.time; // ゲーム開始からの時間を計時表記に設定する } private void Update() { if (Time.time - timeStart \u0026gt; 1f) // １秒計時終わった時 { timeStart = Time.time; // 計時表記のリセット // ここから自分の関数を書いてください // ここまでです } } コルーチン # private void Start() { StartCoroutine(Timer()); // コルーチンのスタート } private IEnumerator Timer() // コルーチン関数の設定 { yield return new WaitForSeconds(1f); // １秒ディレイ // ここから自分の関数を書いてください // ここまでです yield break; // コルーチンの終わり } ","date":"2023年8月30日","externalUrl":null,"permalink":"/posts/2023/08/unity-timer/","section":"記事","summary":"","title":"Unity - タイマー","type":"posts"},{"content":"エラーが発生した Animation を開けて、対応の AnimationEvent を選択してください。\nそして右側に以下のような Inspector が出ている。\n原因は同じ名前の関数が見つからないため、コードに同じ関数を書いたら解決可能である。\n","date":"2023年8月27日","externalUrl":null,"permalink":"/posts/2023/08/unity-resolve-animationevent-no-receiver-error/","section":"記事","summary":"","title":"Unity - AnimationEvent \"xxx\" on animation \"xxx\" has no receiver を解決する","type":"posts"},{"content":"# Godot 4.1 var simultaneous_scene = preload(\u0026#34;res://Scene/Test.tscn\u0026#34;).instantiate() # シーンローダー # 初期化 func _ready(): start = get_node(\u0026#34;ButtonPosition/Home/Start/Button\u0026#34;) # ボタンを取得する start.pressed.connect(self.button_pressed) # 信号接続 func button_pressed(): get_tree().root.add_child(simultaneous_scene) # シーンの切り替え ","date":"2023年8月9日","externalUrl":null,"permalink":"/posts/2023/08/godot-switch-scene/","section":"記事","summary":"","title":"Godot - シーンの切り替え","type":"posts"},{"content":"# Godot 4.1 extends Node @onready var exit_but = Button func _ready(): exit_but = get_node(\u0026#34;Button\u0026#34;) # ノードをゲット exit_but.pressed.connect(self._button_pressed) # ボタン押下チェック func _process(delta): pass # 退出申請を発送 func _button_pressed(): get_tree().root.propagate_notification(NOTIFICATION_WM_CLOSE_REQUEST) # 退出申請を受け時ゲームを終わる func _notification(what): if what == NOTIFICATION_WM_CLOSE_REQUEST: get_tree().quit() # default behavior ","date":"2023年8月8日","externalUrl":null,"permalink":"/posts/2023/08/godot-exit-game-button/","section":"記事","summary":"","title":"Godot - ゲーム退出ボタン","type":"posts"},{"content":"# Godot 4.1 # ゲーム解像度を取得する var width = ProjectSettings.get_setting( \u0026#34;display/window/size/viewport_width\u0026#34;) var height = ProjectSettings.get_setting( \u0026#34;display/window/size/viewport_height\u0026#34;) print(\u0026#34;width:\u0026#34; + str(width) + \u0026#34; height:\u0026#34; + str(height)) ","date":"2023年8月3日","externalUrl":null,"permalink":"/posts/2023/08/godot-get-game-resolution/","section":"記事","summary":"","title":"Godot - ゲーム解像度を取得する","type":"posts"},{"content":"# Godot 4.1 extends RigidBody2D # ノード var node0 # データ var target # 初期化 func _ready(): node0 = get_node(\u0026#34;.\u0026#34;) # 自分のノードを取る # フレーム実行 func _process(delta): follow_mouse() # インプット事件 func _input(event): if InputEventMouseMotion: # マウス移動 target = get_global_mouse_position() # マウスのグローバル座標を取る # マウスにつき従う func follow_mouse(): node0.position = target # ノード座標とマウス座標を同期する ","date":"2023年8月3日","externalUrl":null,"permalink":"/posts/2023/08/godot-rigidbody-follow-mouse-movement/","section":"記事","summary":"","title":"Godot - 剛体をマウスの動きにつき従う","type":"posts"},{"content":"ウィンドウズシステムズのノートで以下のコードを書いてください。\nWindows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation] \u0026#34;RealTimeIsUniversal\u0026#34; = dword:00000001 そしてファイルに保存して、.txt 形式を .reg 形式に変更してください。\n最後にはファイルを実行し、設定を完了してください。\n","date":"2023年7月12日","externalUrl":null,"permalink":"/posts/2023/07/ubuntu-win10-clock-mismatch-fix/","section":"記事","summary":"","title":"Ubuntu と Win 10 システムの時刻が一致しないを解決する","type":"posts"},{"content":" 環境 # STM32CubeIDE 1.12.0 STM32CubeProgrammer 接続方法は SWD 解決方法 # 開発ボードの輸入電源ピンは STLink の VCC ではなく TVCC である。\nSTLink の VCC は出力ピンではなく入力ピンであるため、開発ボードに単独給電が必要である。\n","date":"2023年7月8日","externalUrl":null,"permalink":"/posts/2023/07/stlink-error-localhost61234-connection-timed-out/","section":"記事","summary":"","title":"STLink エラー localhost:61234: Connection timed out を解決する","type":"posts"},{"content":"","date":"2023年7月8日","externalUrl":null,"permalink":"/tags/stm32/","section":"タグ","summary":"","title":"STM32","type":"tags"},{"content":" 前言 # MinGW をインストール直後にこの問題が発生したので、MinGW のせいかもしれないと思った。最初には、PC の再起動、エディタの再インストール、システムパスなど様々の変更を試したが残念ながら全部失敗した。\n解決方法 # レジストリエディターに入ってください（ win+R で実行メニューに入るし、regedit を入力して Enter を押してください） 目録 HKEY_CURRENT_USER\\Software\\Microsoft\\Command Processor 中の AutoRun の値をクリアしてください。 目録 HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Command Processor をチェックして、もしAutoRun があるなら同じ操作をしてください。 ","date":"2023年7月6日","externalUrl":null,"permalink":"/posts/2023/07/unity-the-system-cannot-find-the-path-specified/","section":"記事","summary":"","title":"Unity - The system cannot find the path specified を解決する","type":"posts"},{"content":" 原因 # ファイルの権限設定が不正だと思う。\n解決方法 # FTP ツールでサーバーを訪問し、WordPress がインストールされた位置に以下のフォルダの訪問権限を 755 に設定してください。(フォルダのみ)\nwp-admin wp-content wp-includes その後、すべてファイルの権限を 644 に設定してください。(ファイルのみ) を添加してください。\nもし .htaccess の中に\nRewriteRule .*\\.(jpg|jpeg|gif|png|bmp)$ - [F,NC] があれば、ファイルを正常にアクセスためにこれを注釈する必要がある。\n","date":"2023年6月19日","externalUrl":null,"permalink":"/posts/2023/06/wordpress-media-403-fix/","section":"記事","summary":"","title":"WordPress - メディアの403エラーを解決する","type":"posts"},{"content":"FTP工具で /「WordPressインストール位置」/wp-content/plugins/syntaxhighlighter を開けて\nversion3 を使っている場合、/syntaxhighlighter3/styles を開けてください。 version2 を使っている場合、/syntaxhighlighter２/styles を開けてください。 shCore.css で font-family を自由に設定することができる。\n","date":"2023年5月20日","externalUrl":null,"permalink":"/posts/2023/05/syntaxhighlighter-change-font-family/","section":"記事","summary":"","title":"SyntaxHighlighter の font-family を変更する","type":"posts"},{"content":"FTP工具で .htaccess に以下のコードを追加してください。\nRewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] そしてエラーを防ぐため、これらのコードも追加してください。\nRewriteOptions inherit RewriteEngine on Header set content-Security-Policy: upgrade-insecure-requests ","date":"2023年5月16日","externalUrl":null,"permalink":"/posts/2023/05/htaccess-http-to-https-redirect/","section":"記事","summary":"","title":"htaccess で http から https にリダイレクトする","type":"posts"},{"content":"FTP 工具で public_html 中の wp-config.php を開けて\ndefine(\u0026#39;DISALLOW_FILE_EDIT\u0026#39;, true); があれば、true を false に変更してください。\nなければ\ndefine(\u0026#39;DISALLOW_FILE_EDIT\u0026#39;, false); を添加してください。\n","date":"2023年5月16日","externalUrl":null,"permalink":"/posts/2023/05/wordpress-theme-editor-not-show/","section":"記事","summary":"","title":"WordPress - Theme Editor が表示されていない時の解決方法","type":"posts"},{"content":"","date":"2023年5月1日","externalUrl":null,"permalink":"/pages/","section":"ページ","summary":"","title":"ページ","type":"pages"},{"content":" SNS # URL メモ X（旧Twitter） メインアカウントとして活動中 YouTube 音楽、ゲーム制作など動画を投稿 GitHub ソフト開発 音楽配信 # 配信曲は以下のページにまとめています。\ntunecore.co.jp/artists/icysamon\nリクエスト # 現在依頼受付停止中です。\nメール # 何かございましたらお気軽にご連絡ください。\nme@icysamon.com\n無料BGM素材配布 # たまたまに作った曲を無料素材として配布しています。\n個人・法人お問わず商用可能です。\nbgm.icysamon.com\n","date":"2023年5月1日","externalUrl":null,"permalink":"/pages/link/","section":"ページ","summary":"","title":"リンク","type":"pages"},{"content":"理系大学院生（IoT分野）\n趣味でゲームと曲を作ってます。\n作品集：icysamon.com\nクレジット # イラスト：あゆたそ 様（アーティスト画像）\nサイト構築：Hugo \u0026amp; Blowfish\n","date":"2023年5月1日","externalUrl":null,"permalink":"/pages/about/","section":"ページ","summary":"","title":"プロフィール","type":"pages"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"}]