<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Enginear</title><description>底辺エンジニアの備忘録ブログ</description><link>https://fuwari.vercel.app/</link><language>ja</language><item><title>あけましておめでとうございます</title><link>https://fuwari.vercel.app/posts/newyear2026/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/newyear2026/</guid><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;あけましておめでとうございます。&lt;br /&gt;
まずは一年以上ブログを放置しておりすみませんでした。&lt;br /&gt;
自分自身三日坊主、飽き性な事もあり何かをしてもすぐに辞めてしまう事が多い中、&lt;br /&gt;
一応ブログを始めてから数ヶ月続いただけ、今までから見たら持った方なんじゃないかと勝手に思っています。&lt;br /&gt;
&amp;lt;small&amp;gt;ヘッダーは借りたカメラで撮った初日の出&amp;lt;/small&amp;gt;&lt;/p&gt;
&lt;h1&gt;放置していた事にあった事&lt;/h1&gt;
&lt;h2&gt;AI&lt;/h2&gt;
&lt;p&gt;一年放置していた間に色々な事がありましたが、切っても切れない位特に話題に上がっていたのはAIなんじゃないかなと思います。&lt;br /&gt;
最初はAIイラストから始まって多岐に渡る様になりましたが、生成の分野では相性が良いのかコーディングの面でかなりAIが浸透するようになった気がします。自分がプログラマーというのもあるからかもしれませんが。&lt;br /&gt;
実際自分も最近はCursorというVSCodeをフォークして独自のAIによるコーディング機能を追加したIDEをメインで使う様になりました。&lt;br /&gt;
自分も個人でコーディングをする事はあるのですが、どうしても先に話したように三日坊主だったり飽き性だったりする事があるのと、中々最初のスタートが中々踏み出せない事がありコーディング自体進まない事が多かったですが、AI Agentのおかげでアイデアさえあれば最初のスタート部分はある程度やってくれるようになった為、そういう点ではコーディングの敷居が下がって良かったなと思っています。&lt;br /&gt;
ド素人が適当に考えたソフトが蔓延らないか心配な点もありますが、この話をすると自分にブーメランが来そうなのでこれくらいにしておきます。&lt;/p&gt;
&lt;p&gt;この敷居が下がったというのもあって最近はMisskeyのモバイルクライアント等いくつかのアプリを細々と作成をする様になりました。&lt;br /&gt;
多分AIがなかったら実際にアプリを作成してAppDistributionにて実際にβ版のアプリ配布という所まで漕ぎ着ける事は無かったんじゃないかなと感じてますね。&lt;br /&gt;
気軽さ、というのはモチベーションの維持にもかなり良いがある様な気がします。&lt;br /&gt;
一方仕事ではAIがあるから多分なんとかなるだろうというマインドが働いてしまって結構適当に仕事をする様な所も出て来てしまって良くないなと思いつつも中々積極的に動けるかと言われると動く事無く・・・、という事が続いてしまってます。&lt;br /&gt;
これは言い訳なのですが、実際にAIを使っていくつものタスクが早急に終わったとしても増えるのは給与ではなく追加のタスクと追加発生するAIの費用だけですからね・・・&lt;br /&gt;
これで大人しく給与が増えるのであればそれはそれで喜んでやるのかもしれないですが・・・、いや、自分の事だから何だかんだ言ってサボりそうですね。&lt;/p&gt;
&lt;h2&gt;バイク&lt;/h2&gt;
&lt;p&gt;以前の投稿でバイクを納車してから一切ブログでは更新がありませんでしたが、引き続きバイクには乗っています。&lt;br /&gt;
どうやらインドアで無趣味な自分にバイクというのは相性が良かったのか今でも乗り続けてます。自分でも意外なくらいには。&lt;br /&gt;
色んな所を見に行く際の道中も楽しめるというのもあってかなり乗るようになってます。割と世の中の人達は車に乗る際、目的地に行く事が目標だったりすると思っていますが、自分は目的地に行くのとその道中を楽しむという割合が5:5くらいになっているのかな、と感じてます。だとしても渋滞は好きではありませんが。&lt;br /&gt;
以下ブログを更新していなかった間にあったバイクに関する事をいくつか書こうと思います。&lt;/p&gt;
&lt;h3&gt;SSTR2024&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;SSTR2024Cover.png&quot; alt=&quot;実際に入手したオーダーカバー版の完走証明書&quot; /&gt;
実は取得後早々にSSTR2024に参加しました。&lt;br /&gt;
開催期間が2024/10/5~2024/10/20だったので、納車してから三ヶ月ちょっとでの参加ですね。&lt;br /&gt;
自分でも正直あたまおかしいんじゃないかなと今でも思ってます。&lt;br /&gt;
でもバイク納車した時が一番テンション高いですし乗りたい気持ちも高いので今では悪くなかったんじゃないかなと感じてます。&lt;/p&gt;
&lt;p&gt;前日に静岡の自宅から浜松、当日にそこから石川県の千里浜までなので640km、帰宅時も同じルートなので往復で1280kmを4日で走ってました。&lt;br /&gt;
距離ガバの人達にとってはそこまでの距離かもですが、免許取ってから4ヶ月無いくらい、納車してから三ヶ月くらいにしてはかなりの距離なのではないかなと思ってます。&lt;/p&gt;
&lt;p&gt;SSTR当日は知り合いの夫婦、そしてその夫婦のお父さんと一緒に行く形を取りました。&lt;br /&gt;
知り合いの夫婦とは以前から仲が良いのですが、そのお父さんとは殆ど接点がなかったんですよね。&lt;br /&gt;
ですが、そのお父さんがB+Comを使っておらずペアリングが難しいという問題が、私とその夫婦はB+Comを使っていてペアリングもし易かったのですがお父さんを含めると不安定に、&lt;br /&gt;
最終的に、夫婦の方はペアリング出来ないと流石にヤバいと、という形で私とそのお父さんとでペアリング（ユニバーサル接続の1:1であれば比較的安定するので）。&lt;br /&gt;
結果中田島砂丘から千里浜なぎさドライブウェイまで何時間でしょう、12時間くらいなんですかね、もう時間なんて覚えてないですがずっと話ながら走ってましたね。&lt;br /&gt;
私自身相手が喋る人であれば私も喋るというような形で合わせる様、意識的にしていますが良く喋る良い人だったのでずっと喋ってた記憶が凄いあります。結構な頻度で先頭車両が遅いというのを言っていたのが印象的すぎますね・・・まあ155なら仕方ないですしおすし、なんならタンデムですし・・・&lt;/p&gt;
&lt;p&gt;何が面白いってこれ復路なので帰りも話してたんですよね。700kmは話してたって事ですよ、過去に一度イベントでお会いしたお父さんと700km。&lt;br /&gt;
オフ会であった人と意気投合とかならまだ分かるけどほぼ初見であった人とツーリングで700kmは中々無いような気がしますね。多分後にも先にもこれくらいでしょう。&lt;br /&gt;
これ以降ご家族の方とも私の勝手な気持ちですがお世話になる事が増えたような気がしますね、結構不思議な気持ちではありますが悪い気分ではないです、今後もバイクでこのような縁があればなぁという気持ちです。&lt;/p&gt;
&lt;h3&gt;SSTR2025&lt;/h3&gt;
&lt;p&gt;一年後に関しても同様にSSTRに参加しました。&lt;br /&gt;
この際のメンバーは、私の学生時代からの知り合いで今はバイクを共に乗っている友人達です。&lt;br /&gt;
気付いたら全員バイクに乗っていました。&lt;br /&gt;
この時のルートは横浜赤レンガ倉庫から千里浜なぎさドライブウェイに行くルートでした。&lt;br /&gt;
今回は前日移動といっても知り合いのバイクガレージと化した家に前泊してそこから赤レンガ倉庫で出走登録して開始という流れだったので、中田島砂丘より遠い550km程を走るルートになりました。&lt;br /&gt;
天気はあいにくの雨で道中長野を走っている時だけ晴れたという感じ、他はほぼずっと雨の中走るという状態に。&lt;br /&gt;
納車後の夏、異常な程走っている際、雨に降られる事が多かったという経験から雨具も準備万端で用意して来たは良いものの、それでも雨は辛い。&lt;br /&gt;
中型バイク三台で朝5時くらいから走り続けて途中で必要な指定道の駅にも長野で立ち寄り、更に走り終盤には日本海側・北陸道を走りなぎさドライブウェイ間近となったタイミング、自分のバイクにトラブルが。&lt;br /&gt;
というのもリアバッグに取り付けていた荷物結束用のバンドが取れたらしくそのベルトがチェーンとスプロケットに噛み込んでしまいロックされてしまったのです。&lt;br /&gt;
噛んだタイミングで明らかにエンジンの回転数に対して速度が出ない事に気付きこれはヤバいと、その段階で日の入りまで30分を切っていた事もあり自分はどうあがいても間に合わない事を察しインカム経由で自分を無視してそのまま先に行ってくれと連絡、自分は第二車線にいる状態で非常に危険だった為若干の無理を承知でエンジンを開けて後輪を少しでも回す事で道路端になんとか避難。&lt;br /&gt;
しかし歩道までバイクが待避出来なかった事と交通の妨げになっている事には変わりなかったのですが後輪が回らない状態のバイクを私1人でどうにかする事が出来る訳もなく大変申し訳ないのですが警察へ連絡。&lt;br /&gt;
交通整理とバイクの移動を手伝って頂きました。こんな二回しか来た事も無い人に対して対応して頂いた石川県警の方本当にありがとうございました。&lt;br /&gt;
その後JAFへ速攻連絡をしたのですが、どうやらレッカー対応に非常に時間がかかるという連絡を受け並行してカワサキプラザが提供しているレッカーサービスの方にも連絡。こちらはバイクの現場での応急点検及び処置を試みて頂く事も可能との事でした。&lt;br /&gt;
その為カワサキのレッカーサービスの方に依頼をしJAFの方はキャンセルを実施。
その後どれ位待ったのかもう覚えていませんが応急処置の方が到着、簡単に確認をしてもらいましたがエンジン側のスプロケット内部に噛んでしまっているので応急処置での対応は困難という事でこの段階でレッカーが確定。&lt;br /&gt;
レッカーの際、最寄りのカワサキプラザ（ないしは提携している整備店）へのレッカーを行いそちらで対応を行って貰うか、任意のカワサキプラザに輸送して貰いそちらで修理対応を実施する形になるという話でした。&lt;br /&gt;
ここからは知っておくとちょっと良い話なのですが、カワサキのレッカーサービスは一つの故障に対して一回のレッカーが原則となっている様です。&lt;br /&gt;
&lt;strong&gt;1故障に1つ距離無制限レッカーが1回使用可能&lt;/strong&gt;という感じです。&lt;br /&gt;
つまり、最寄りの整備店に持っていってそちらで明日中に対応が出来ない、という事になった場合。SSTRが終了した後もバイクが直るまで待つか、一旦帰宅後バイクが直ったら再度石川まで取りに行くという必要性が発生してしまいます。&lt;br /&gt;
修理対応が出来ないと石川の整備店で判明した後に再度レッカーを依頼する場合それは有料との事でした。&lt;br /&gt;
どうやら単純計算で現地から東京のカワサキプラザまでレッカーを行う場合35万はかかるとの事で流石にそんなリスクは踏めないのでカワサキプラザ東京へのレッカーが確定しました。この段階で2025のSSTRをリタイアする事も確定しました。&lt;br /&gt;
SSTRをリタイアする事が残念というよりはこんなしようもない事で完走できなかった事が悔やまれますね。あと何百キロも一緒に走ってくれた知り合いに本当に申し訳ない気持ちが一杯でした。&lt;br /&gt;
とりあえず故障地点にてレッカー車が来るまでの間にサイドバック等バイクに取り付けられている物を軒並み取り外す等の対応を行っていました。&lt;br /&gt;
二時間程経過した後レッカー社が到着、後輪を浮かせるアタッチメントを取り付けて荷台に積載をしてバイクを固定、もうタクシーを呼んでも良いとの事だったので、タクシーに送迎を依頼しながら送られていくバイクを眺めていました。&lt;br /&gt;
&lt;img src=&quot;Wrecker.png&quot; alt=&quot;実際にレッカーされるバイク&quot; /&gt;
タクシーにて、予め宿泊予約をしていたホテルにて知り合いと合流後、知り合いはなんとか時間内にゴール出来た事を知りました。&lt;br /&gt;
個人的には自分は2024にてゴールが出来ていたので最悪知り合い二人だけでもゴール出来れば良いと考えていました。&lt;br /&gt;
それもあり予め出発前にトラブル等で自走不能になった場合は置いていくという取り決めをしていました。本当はこのような事態自体発生しないに超した事は無いのですが、今回は功を奏したと考えるべきですね。&lt;/p&gt;
&lt;p&gt;翌日ホテルにてリアバッグ等各種バックを自宅に向けて配送する手続きを。送料だけで2000円以上しました。&lt;br /&gt;
そして新幹線の予約も同時に実施、バイクで帰れない以上新幹線くらいしかまともな帰宅手段がありません。&lt;br /&gt;
予約完了後、ホテルの出口にて知り合い二人を見送って現地で解散。&lt;br /&gt;
その後石川観光の方を新幹線の予約時間まで金沢城と兼六園の観光をしました。変だな、去年のSSTRも兼六園を観光した気がする・・・&lt;br /&gt;
そんな事はどうでも良いのです、2024の時に行った兼六園で食べたみたらし団子が美味しくて食べたいと思ったから行ったんです。こういうのはもう一度行くのも良いんですよ、なんならその時バイクの修理費の事とか知り合いが無事に帰れるのかとか考える事が多かったので一回頭を空っぽにしたかったのです。&lt;br /&gt;
それに兼六園は丁度良かったんですね。緑を見ると人は落ち着くって言いますからね。当日そんな事を考えていたかは分かりませんが。&lt;br /&gt;
ちなみに余談ですが兼六園を観光してるとか兼六園観光時に言うのは辞めた方が良いです。兼六園にはライブカメラがいくつかあってこれ見るか、って考える輩がいるようなので。実際いたんでね。キモいですね。&lt;br /&gt;
観光完了後金沢駅に向かいスタバで時間まで休憩をして新幹線に乗車、何年ぶりの乗車なのだろうか、人生で恐らく5回目の乗車。復路じゃないので暫く乗車回数は奇数回のままでしょう。&lt;br /&gt;
それにしても新幹線というのは本当に早いですね。知り合いが出発してから観光をしてその後に新幹線に乗りましたが、軽井沢を通るタイミングでは既に追い抜いていました。&lt;br /&gt;
バイクに乗る、道中を楽しむ、運転を楽しむという事が無ければ本当にバイクに乗るという事にメリットを見出すのは難しいなと改めて感じました。&lt;br /&gt;
そして気付いたら東京、定期的に食べているオムライスを食べて自宅へ帰りました。&lt;/p&gt;
&lt;p&gt;ちなみに修理費は5万円程でした。といってもどっかのタイミングでチェーンとスプロケットの交換は行おうと思っていたのでその時期が早まったと言うことくらいでしょうか。&lt;br /&gt;
フォグランプとグリップヒーターの取り付けも行おうとしていてタイミングが重なってしまい結果12万くらいの請求になり財布には辛かったですが、特段大きな故障にならなくて良かったです。&lt;br /&gt;
特に事故歴が付かなかったという点では。&lt;br /&gt;
後は緊急時の対応自体も結構自分自身落ち着いて行えたと言うのも良かったです。&lt;br /&gt;
発生してしまったタイミングが最悪とは言え、何時起こるか分からないバイクのトラブルに対して落ち着いて対応が出来たという事でこの経験自体は今後にも活かせる物があるでしょう。その経験だけでも儲けものです。&lt;br /&gt;
あとは無制限レッカーによって35万のレッカー費用が無料になったのも大きいです。考え方がおかしいのは分かってますが35万得したと考える様にしてます。&lt;br /&gt;
保険、マジ大事。今後バイクの保険に入れてる対物対人に追加で自分のバイクも入れようか悩んでます。（入れるだけで7万くらい保険料上がるんだよなぁ・・・）&lt;/p&gt;
&lt;h3&gt;それ以外&lt;/h3&gt;
&lt;p&gt;SSTR以外では特別バイクで何かイベントに出ると言った事は実はしていません。&lt;br /&gt;
ですが知り合いに会いに行くために頻繁に浜松に行ったり、Misskeyのバイク部で紹介されたライスシャワーというお店に行くためにも頻繁にバイク乗ったり、電車で行くには遠いしお金がかかるという範囲を良い感じにバイクでカバーする様に乗ることが多いです。&lt;br /&gt;
2026/01/16現在ODOは16000kmを超えていて結構乗っている方なんじゃないかなと感じています。ディーラーのオイル交換パックも次で使い切るタイミングとメンテナンスも欠かさない様にしながら大事に乗っています。中央分離帯にマフラーを擦った人にこれを言う資格はないかもしれませんが。&lt;br /&gt;
結果的にバイクはインドアで無趣味な自分には丁度良い、そして外に出る良い動機として機能しているのかもしれません。&lt;br /&gt;
強いて言うならバイクに乗るまでにちゃんとそれ用の服を着る必要性があるのと、バイクに乗るまでに15分程歩いてバイクを止めている場所に取りに行かなくてはならないと言うのが心理的ネックになってしまうのが今の課題かな、と感じてます。&lt;br /&gt;
これも浜松に引っ越せば解決しそうな問題ではありますが。浜松に限らずではあるんですが地方では賃貸を借りると駐車場も付いてくるケースが多くてとても良いですね。気楽にバイクに乗れるのが羨ましいです。&lt;br /&gt;
ですが気楽になると次は原付二種が欲しくなりそうで怖くもありますね。&lt;/p&gt;
&lt;h2&gt;カメラ&lt;/h2&gt;
&lt;p&gt;自分はスマートフォンにお金をあまりかけないタイプでして、基本的に廉価版のスマートフォンを利用しています。&lt;br /&gt;
その為今メインで利用しているスマートフォンはPixel7aでサブスマホは6aとなってます。両方共正直カメラの性能は終わっていると思っていてあまりきれいな写真は撮れないと感じてます。&lt;br /&gt;
（個人的には写真とか撮る機能を割り切ってQRコード読み取れる位の性能に落として端末価格を下げてほしいくらいに思ってますが）&lt;br /&gt;
その為、外で写真をあまり積極的に撮りたいとは思っていなかったんですね。&lt;br /&gt;
ですが先の話にあるようにバイクを納車してからというもの色々な所に行く事が増えて写真を撮りたいなと思う事も増えました。&lt;br /&gt;
一応GoProやInstaはあるにはあるのですがあれはアクションカムという事でそのような写真を撮るのに向いている訳でもなく・・・&lt;br /&gt;
とりあえずスマートフォンで撮ると言う事は続けていたのですがやはり質が終わっているという感想がどうしても出てくるのでカメラ単体で何かを買いたいなという気持ちが出てきたんですよね。&lt;br /&gt;
問題はまともにカメラ専用機を触ったのがもう10年以上前なのとその触ったカメラもコンデジという（そして記憶が正しければ今使っているPixelの方がまだ画質が良い）。&lt;br /&gt;
悩んでいた所知り合いがカメラを貸してくれるとの事でした。中古ではありますがCanonのEOSKissX7、APC-Sセンサーの一眼レフ、カメラ性能はPixelより余っ程良いです。まあそもそもセンサーサイズが違いすぎますね。&lt;br /&gt;
このカメラを借りて色々撮っていました。（冒頭の初日の出の写真やらもこれで撮った物です）&lt;br /&gt;
バイクのお供にカメラを持っていく、カメラを持つ事でどこかに出掛ける動機になる、その動機によって積極的にバイクに乗るようになる。&lt;br /&gt;
とても良い循環になるんじゃないかと最近思っています。問題はカメラ自体お高いので結構買うまでの敷居に怯んでる所です。&lt;br /&gt;
ですが折角ならコンデジとかじゃ無くてしっかりしたカメラにしたいよね、って言うのと、暗所撮影がどうしても多いのもあってフルサイズが良い、&lt;br /&gt;
けど本体自体は小さめで気軽に撮れて尚且つ圧迫感も少ない、というカメラを探した結果今の第一候補はPanasonicのLumix S9になっている状況です。&lt;br /&gt;
お値段20万くらい。バイクのカスタムも結構出来る様な金額です。&lt;br /&gt;
今はまだ借り物のカメラを使っていますが今後買うか引っ越し後に買うかも含め検討中という感じです・・・&lt;/p&gt;
&lt;h2&gt;ギター&lt;/h2&gt;
&lt;p&gt;年明けにギターを買いました、YAMAHAのPACIFICAです。&lt;br /&gt;
今までギターは触った事は無いのですが過去にぼっち・ざ・ろっく！を見た事があり、そのタイミングで実は触ってみたいなとは感じていました。&lt;br /&gt;
ぼっち・ざ・ろっく！は個人的に横須賀付近が出てきたり江ノ島が出てきたりと自分が結構住んでいた地域に近い所が出てくると、ASIAN KUNG-FU GENERATIONが好きなのもあって結構楽しく見ていました。&lt;br /&gt;
今考えるとそのタイミングで大量放出されたであろうAPCIFICAを買った方が安上がりだったかもしれません。&lt;br /&gt;
何で今になってギターなんだという話ですが、割と既にギター本体以外の環境は整っていたというのと、&lt;br /&gt;
多芸になりたいなという気持ちが前々からあったからです。&lt;br /&gt;
周りはなんか色々電気工事なりオシロスコープなり絵なり、そして楽器が出来たりと色々出来る人がいたのですが自分は正直何も出来ない人間だったんですよね。&lt;br /&gt;
そういう事を考えると自分って本当に何も出来てないつまらない人間だなって思った事もあって、折角なら何か出来る様になりたいなって気持ちもあってギターを買うに至りました。&lt;br /&gt;
ギターを触りたいと思ったらすぐ触れるようにしておいた方が良いというのもあり仕事で使う机のすぐ横に置いて配線もすぐに繋げるようにしてます。&lt;br /&gt;
それが功を奏しているのか今の所仕事の昼休憩のタイミングに基本の運指を押さえるといった基礎練習を5分でも良いからやる、という感じで続けられています。&lt;br /&gt;
話によるとギターの挫折率は1年だか1ヶ月か忘れましたがそのタイミングで9割らしいですね。&lt;br /&gt;
逆にその1割になれたらずっと出来るそうです。&lt;br /&gt;
今の目標はその1割になって芸かつ趣味としてギターを触れるようになりたい所ですね。&lt;/p&gt;
&lt;h1&gt;今年どうするか&lt;/h1&gt;
&lt;p&gt;自分は目標を決めても達成出来るといった出来た人間じゃないのであくまでどうしようくらいの気持ちで生きるようにしてます。&lt;br /&gt;
その上でどんなことしようかって今の所考えてるのが以下な感じ。&lt;/p&gt;
&lt;h2&gt;SSTR2026に出るか、それくらいバイクで走る&lt;/h2&gt;
&lt;p&gt;まだ決めてないです。出るかも分からないが出たいなぁの気持ちです。&lt;br /&gt;
やっぱりバイク買った以上は走らないともったいないですからね。&lt;br /&gt;
既にバイクを納車して一年半程、ODOは17000Km。&lt;br /&gt;
これが多いのか少ないのか分からないですが、自分では走っている方なのではないかと思います。&lt;br /&gt;
そして今年も一杯走りたいですが、一気に長距離走るのにこれ程都合の良いイベントは無いんですよね正直。探してないだけですが。&lt;br /&gt;
流石にソロでSSTRに参加する気は無いかなぁって感じなので友人知人と走る理由が出来たら参加して皆で石川に行こう！って思ってます。&lt;br /&gt;
丁度カメラも借りてるので、その間までにLUMIXなり買うか分かりませんが関東以外で写真を撮る良いタイミングにも良いですから。&lt;/p&gt;
&lt;h2&gt;ギターある程度弾けるように&lt;/h2&gt;
&lt;p&gt;挫折しない、ってのは大前提かもですがある程度弾けるようにもなりたいですね。&lt;br /&gt;
今の所年明けすぐにギター買ってからちょいちょい触ってますが、メジャーとマイナーコードを押さえるって言うのを日課にするようにしてますね。&lt;br /&gt;
まだ暗記して押さえると言った事や、TAB符を読むという所までは行けていませんが、BやFコードもなんとか押さえられるようになってきたので、その調子でギターを触り続けて簡単な曲を弾けるようになれたらなって感じ。&lt;/p&gt;
&lt;h2&gt;アプリかそれに類する物をリリースする&lt;/h2&gt;
&lt;p&gt;これでも自分自身はアプリエンジニアの端くれなのでアプリか何かしらのサービスを公開する、という所まで漕ぎ着けたいですね。&lt;br /&gt;
今まで実名が公開されるのが嫌だという理由でアプリリリースに何かと理由をつけて拒んでいましたが、&lt;br /&gt;
今考えると小規模なアプリをひっそりと作成してひっそりとリリースするくらいなら出来るって気付いたんで言い訳も出来なくなりました。&lt;br /&gt;
なので各種Developerアカウントに課金してリリースまでするといった事をしようかなと考えてます。&lt;br /&gt;
もしリリースしたら報告はするかもだけどまだ具体的なアプリリリースの内容は公表しないと思います。&lt;br /&gt;
名前を公開するならそれくらいのポートフォリオになるレベルで有用だったりDLがされるアプリじゃないとリスクでしか無いですからね。&lt;/p&gt;
&lt;h1&gt;おわりに&lt;/h1&gt;
&lt;p&gt;正直このブログ自体見ている人も身内（要は知り合い）だったりMisskeyで知ってる人達が主かと思うのでそれ前提でお話ししますが、&lt;br /&gt;
普段から付き合っていただきありがとうございます。&lt;br /&gt;
色々不快にさせたり迷惑をかける事もあるかと思いますが今年も宜しくお願いします。&lt;br /&gt;
そしてブログがなんとか続く事を私自身も願っています。自分の事ですが。&lt;/p&gt;
</content:encoded></item><item><title>免許取得して二ヶ月経ってた話</title><link>https://fuwari.vercel.app/posts/license-2months/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/license-2months/</guid><description>時が経つのはあっという間だ</description><pubDate>Mon, 16 Sep 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;タイトルの通りですが、納車してから二ヶ月が経ちました。
なんなら納車日は誕生日の二日前、6/22なのでもう三ヶ月になろうとしてます。&lt;br /&gt;
何でブログ更新が滞っていたかと言うと、仕事終わった後の他の空き時間を全てバイク乗るのに使ってたからだね、楽しいから仕方ないね。毎年言われているような気もするけど、過去最高の暑さの中でもバイクを納車したばかりのモチベーションは凄く高くてずっと乗っていられると感じるくらいです。&lt;br /&gt;
納車二日目で首都高に乗り、三日目にはゲリラ豪雨の中走り、一ヶ月点検でもゲリラ豪雨に見舞われたり、天候に恵まれない事があまりにも多々ありますが、それでも乗りたくなる位にはバイク買ったばかりのモチベは高い。&lt;br /&gt;
あまりにも乗りすぎて三ヶ月経たずに総走行距離は5256kmです。私がバイクに乗る前から乗っていたタンデム夫婦には私の八倍のペースで乗ってると言われました。&lt;br /&gt;
私にはもう一人親しいBMW乗りの友人がいるのですが、その友人も私とツーリングするようになってバイクに頻繁に乗るようになったみたいです。&lt;br /&gt;
自分が乗り始めて周りに良い影響が出ているのであればとても良い買い物をしたなと思います。&lt;/p&gt;
&lt;p&gt;バイクを納車するタイミングで&lt;a href=&quot;https://amzn.to/3TuygVK&quot;&gt;GoPro Hero 12&lt;/a&gt;を購入してバイクの走行履歴も取るようにしました。バイクの前面展望とかキレイに撮りたいなぁと思ったので。最初はミラーに固定する形で使っていたけれど、ミラー自体が傾いていて編集するときに面倒になるなぁと思い&lt;a href=&quot;https://amzn.to/4epIWgt&quot;&gt;ラージチューブマウント&lt;/a&gt;も別で買いました。これを使ってフロントフォーク部分に取り付けると良い感じにエンジン付近から撮影出来て気に入ってます。（アソシエイトリンクなのでもしも買うとき思い出してここから買ってくれると嬉しいな）&lt;br /&gt;
&lt;img src=&quot;GoProMediaMetadata.jpg&quot; alt=&quot;コマンド実行完了時に表示される通知&quot; /&gt;&lt;/p&gt;
&lt;p&gt;GoPro使い初めて3ヶ月経つので、動画の管理とかの面で何か記事を書ければなぁと思ってます。更新が無かったらまたコイツバイクで走ってるなって思ってくだせい。&lt;/p&gt;
&lt;p&gt;最後にアソシエイトリンク貼っておいてなんだけど、GoProは公式サイトで買うのがおすすめです。新規登録で20%位の割引コードが貰えるので、GoPro本体がセールのタイミングで併せて使うと2万円近く割引が受けられたりするよ。自分はそれで買いました。&lt;/p&gt;
</content:encoded></item><item><title>免許取得した話</title><link>https://fuwari.vercel.app/posts/driver-licence/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/driver-licence/</guid><description>普通二輪免許を取った</description><pubDate>Thu, 06 Jun 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;もう既に社会人になっているにも関わらずこの段階で普通二輪免許を取得しました。&lt;br /&gt;
なんならバイクの成約に関しても済ませてたりします。&lt;/p&gt;
&lt;p&gt;なんで今になってバイク乗るんだって話だが、一年くらい前からバイク自体は乗りたいなと考えては居たが中々踏ん切りが付かない状態でいて、気付いたら周りが皆いつの間にかバイク免許を取っていたという感じ。&lt;br /&gt;
5年ローンで買ったから今後macbookを買うことは無いだろう・・・、ツーリングとペアプログラミングどっちが良いか友人に聞いたらツーリングと帰ってきたのでそのタイミングで買うことを決意した。&lt;br /&gt;
これで数回しかツーリングしないとか、付き合っている彼女最優先でバイク売ったとか反故にしたら許さないくらいの気持ちでバイクの成約と免許取得まで進めてました。&lt;/p&gt;
&lt;p&gt;免許取得自体は入校時、三ヶ月くらいかかりますよと言われたが、自分が今案件が無くフリーな事もあり5月頭から初めて6月終盤には卒業試験合格、免許センターの試験合格も6/6に達成する等ほぼ一ヶ月の短期間で終わらせる事が出来た、ほぼほぼ合宿みたいな物である。&lt;/p&gt;
&lt;p&gt;これからは納車までただ待つだけといった感じ。&lt;br /&gt;
足りないバイク用品を追加で買ったりしている状態。&lt;br /&gt;
インカムを買ったけど定員のアドバイスに従ってインカム買ったら公式が紹介している取り付け方と違うタイプだったことが判明して8000円損した・・・&lt;br /&gt;
今後専門店とは言えど、鵜呑みにせず商品を調べて買おうと思いました。（これだと専門の意味は・・・という感じも個人的にしているが）&lt;/p&gt;
</content:encoded></item><item><title>macOSでコマンド完了時に通知を行う</title><link>https://fuwari.vercel.app/posts/notify-commandcompletion/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/notify-commandcompletion/</guid><description>ターミナルでコマンドを実行した際通知を表示する方法</description><pubDate>Wed, 08 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;macでmakeやxcodebuild等ターミナルで実行する際時間がかかるコマンドを実行し放置している場合でも、完了時に通知センターへ通知を送る仕組みを作成した。&lt;/p&gt;
&lt;h2&gt;実現方法&lt;/h2&gt;
&lt;p&gt;macのコマンドラインにはosascriptというAppleScriptを呼び出すコマンドが存在する為これを.zshrc内に自作関数として組み込んで実装する。&lt;/p&gt;
&lt;h2&gt;実行サンプル&lt;/h2&gt;
&lt;p&gt;面倒であればこれをそのまま突っ込めば良い（ブラックリスト設定等は別途下部に記載）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;preexec() {
    current_command=$1
    timer=${timer:-$SECONDS}
}

precmd() {
    if [[ -n $timer ]]; then
        elapsed=$(( SECONDS - timer ))
        unset timer

        local threshold=30
    local blacklist=(&quot;vi&quot; &quot;vim&quot; &quot;sgpt&quot; &quot;sg&quot; &quot;bat&quot; &quot;cat&quot; &quot;less&quot;)
    local cmd_name=$(echo $current_command | awk &apos;{print $1}&apos;)

    if (( elapsed &amp;gt; threshold )) &amp;amp;&amp;amp; [[ ! &quot; ${blacklist[*]} &quot; =~ &quot; ${cmd_name} &quot; ]]; then
            osascript -e &quot;display notification \&quot;${cmd_name}が${elapsed}秒で完了しました\&quot; with title \&quot;コマンド実行通知\&quot;&quot;
        fi
    fi
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;コマンドの実行が完了した際は以下の様な通知が表示される。
&lt;img src=&quot;notifyimage.png&quot; alt=&quot;コマンド実行完了時に表示される通知&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;設定項目&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;threshold&lt;br /&gt;
設定した時間以上コマンドが実行されている場合通知の対象とする（秒）&lt;/li&gt;
&lt;li&gt;blacklist&lt;br /&gt;
実行した際に通知の対象外にするコマンド（vim等）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;解説&lt;/h2&gt;
&lt;h3&gt;preexec&lt;/h3&gt;
&lt;p&gt;コマンド実行時に実行される関数&lt;br /&gt;
ターミナル内でコマンドを実行される直前に、実行時間から何秒経過しているかを測定する為に使用している。&lt;br /&gt;
timer変数内に$SECONDSを設定しているが、この環境変数はshellが起動してからの経過秒数が保持されている変数の為この時間の差を求めることで算出している。&lt;/p&gt;
&lt;h3&gt;precmd&lt;/h3&gt;
&lt;p&gt;プロンプトが表示される直前に実行される関数（今回の場合vim等のプロンプトを離れ終了後にプロンプトへ戻る場合を想定）&lt;br /&gt;
プロンプトを離れていた際の時間を先程のSECONDSとtimerの差から求めてelapsedに保持。&lt;br /&gt;
thresholdで通知の対象とする実行時間を30秒以上に設定。&lt;br /&gt;
blacklist配列に通知の対象外とするコマンドを定義。&lt;br /&gt;
cmd_nameにて実行したコマンド名を抽出（パイプで繋いでも先頭のみ取得する）。&lt;br /&gt;
条件分岐で指定時間以上及びブラックリスト外の場合osascriptを実行して通知を発行する。&lt;/p&gt;
</content:encoded></item><item><title>HexoからFuwariへ移行する</title><link>https://fuwari.vercel.app/posts/install-fuwari/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/install-fuwari/</guid><description>Astro言語ベースのFuwariテンプレートでブログを構築する</description><pubDate>Wed, 10 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;ブログを比較的始めたばかりだが、Hexoから&lt;a href=&quot;https://astro.build/&quot;&gt;Astro&lt;/a&gt;をベースに作成されたブログテンプレートのFuwariに乗り換えを行う。というか既に行った。&lt;/p&gt;
&lt;h2&gt;移行方法&lt;/h2&gt;
&lt;h3&gt;Fuwariのテンプレートを複製する&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/saicaca/fuwari&quot;&gt;Githubにある公式リポジトリ&lt;/a&gt;からテンプレートとして複製するか、Cloneを行う。&lt;br /&gt;
テンプレートとして複製するにはGithubアカウントを持っている必要があるが大体の人は持って居ると思う。持っていなければCloneすれば良し。&lt;/p&gt;
&lt;h3&gt;pnpmの導入&lt;/h3&gt;
&lt;p&gt;Hexoからの移行を体に進めている為nodejsは導入済みの想定としています。個人的にはHexo導入時にも推奨されている&lt;a href=&quot;https://github.com/jasongin/nvs&quot;&gt;nvs&lt;/a&gt;を使いnodejsを入れる事を個人的に推奨してます。&lt;br /&gt;
pnpmは以下のコマンドで導入可能。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install -g pnpm
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;依存関係の導入&lt;/h3&gt;
&lt;p&gt;Cloneを行ったルートディレクトリ上で、&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm install
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;pnpm add sharp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;を行う事で導入可能&lt;/p&gt;
&lt;h3&gt;サイトのカスタマイズ&lt;/h3&gt;
&lt;p&gt;サイトの設定を編集する際は&lt;code&gt;src/config.ts&lt;/code&gt;を直接変更する事で行えます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;title
&lt;ul&gt;
&lt;li&gt;Webサイトのタイトル&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;subtitle
&lt;ul&gt;
&lt;li&gt;ウェブサイトのサブタイトル、直接表示される訳ではなく、ブラウザのタブに表示される&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;lang
&lt;ul&gt;
&lt;li&gt;言語、特段理由がなければjaで良いと思う&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;themeHue
&lt;ul&gt;
&lt;li&gt;サイトのテーマカラー、色相に基づいている。&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E8%89%B2%E7%9B%B8&quot;&gt;Wikiの説明&lt;/a&gt;が参考になる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;banner
&lt;ul&gt;
&lt;li&gt;サイトバナーの設定。enableをtrueにしてsrcに画像のパスを指定する事で表示可能&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;avatar
&lt;ul&gt;
&lt;li&gt;サイト左上のアイコンを設定する。かわいい。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;name
&lt;ul&gt;
&lt;li&gt;任意の名前を設定する。本名でも良いしハンドルネームでも良いと思う。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;bio
&lt;ul&gt;
&lt;li&gt;簡単な説明&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;links
&lt;ul&gt;
&lt;li&gt;各種SNS等へのリンク設定が可能、iconは&lt;a href=&quot;https://iconify.design/&quot;&gt;iconify.design&lt;/a&gt;の物が利用可能&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;licenseConfig
&lt;ul&gt;
&lt;li&gt;自身の記事をクリエイティブコモンズ等に準拠してライセンス掲示する際に使用する。enableをfalseにする事で記事末尾の表示から消す事が可能。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;記事の作成&lt;/h3&gt;
&lt;p&gt;Cloneしたルートディレクトリ上で&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm new-post &amp;lt;任意の記事名&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;を実行する事で&lt;code&gt;src/content/posts/&lt;/code&gt;にフロントマターの設定されたMarkdownファイルが生成される。
記事のプレビューは&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;を実行する事でローカルホストで確認する事が可能。&lt;/p&gt;
&lt;h3&gt;記事のプレビュー&lt;/h3&gt;
&lt;p&gt;ビルド及びプレビューコマンドを実行する事で実際にデプロイされた際と同様の内容を確認する事が出来る。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm build
pnpm preview
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;previewだが、直前のビルドされた物を表示しているので、設定ファイルや記事を編集した場合、プレビューに反映させる場合毎回build行う必要があるので注意。最終確認では無い場合devの方が使い勝手が良い。&lt;/p&gt;
&lt;h3&gt;記事の移行&lt;/h3&gt;
&lt;p&gt;Hexo生成時に作られているMarkdownファイル群を&lt;code&gt;src/content/posts/&lt;/code&gt;へ移植する事で大半は完了。&lt;br /&gt;
フロントマターの設定が異なる為Fuwariで生成される形式に適宜変更を行う。特にタグとカテゴリの仕様がHexoと異なる為注意。&lt;/p&gt;
&lt;h2&gt;何故移行したのか&lt;/h2&gt;
&lt;p&gt;Hexoでブログを書いていく上で、いくつかの制約が存在する事が判明した為。&lt;br /&gt;
Hexo自体は軽量でテーマを適応したら後はブログを執筆するだけでブログサイトとして運用が可能なフットワークの軽さがとても良いのだが、ブログ執筆以外にサイト運営を行う上で付加機能をサイトに持たせたい場合制御出来る所が少ない事に気付いた。&lt;br /&gt;
GoogleAnalyticsやAdSenceを配置する事自体も可能ではあるが、制限が多い為その制限の中でads.txtをどうやって配置するか、生成後のサイトに&lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt;をどの様に含ませるか、等頭をひねる必要性がある。直接生成後のウェブページを弄る事でも可能ではあるが、自身はCloudflareWorker&amp;amp;Pagesを用いてGitのリポジトリからビルド後の内容をブログとして表示する様にしている為この手段が取れないので困っていた。&lt;/p&gt;
&lt;p&gt;ここでHexoで使用していたテーマの&lt;a href=&quot;https://github.com/saicaca/hexo-theme-vivia&quot;&gt;vivia&lt;/a&gt;を作成している&lt;a href=&quot;https://github.com/saicaca&quot;&gt;saicaca&lt;/a&gt;さんのリポジトリを見ていた所、別のブログテーマと思わしき物があり見て見た所、Hexoのテーマという形ではなく、&lt;a href=&quot;https://astro.build/&quot;&gt;Astro&lt;/a&gt;をベースに構築され直したブログテンプレートの&lt;a href=&quot;https://github.com/saicaca/fuwari&quot;&gt;Fuwari&lt;/a&gt;を発見。以下の理由でFuwariへの乗り換えを決めた。&lt;/p&gt;
&lt;h3&gt;拡張性の高さ&lt;/h3&gt;
&lt;p&gt;先に言った通り、FuwariはAstroをベースに作られたブログテンプレートであり、Hexoの様なテーマではない。見た目は踏襲されているが、構築自体は異なっており、&lt;code&gt;.astro&lt;/code&gt;ファイル等を編集する事で、ビルド後のサイトデータをカスタマイズ出来る。&lt;code&gt;.astro&lt;/code&gt;ファイル自体クソザコエンジニアの自分でも比較的理解可能な部類だったので、これは行けるのでは？と思い乗り換える要因の一つとなった。&lt;/p&gt;
&lt;h3&gt;学習難度の低さ&lt;/h3&gt;
&lt;p&gt;これは公式で謳われている&amp;amp;自身が若干カスタマイズした際の印象も含むのだが、かなりコードが分かり易い。公式では&lt;a href=&quot;https://docs.astro.build/ja/concepts/why-astro/#%E7%B0%A1%E5%8D%98%E3%81%AB%E4%BD%BF%E3%81%88%E3%82%8B&quot;&gt;HTMLが出来ればAstroも出来る&lt;/a&gt;と言っているがあながち間違いじゃ無いと思う。このブログを見ている人には申し訳無いが、今後広告を入れようと思ったりしているが、astroの学習難度の低さも相まって広告挿入自体もブログの可読性を下げずに自分で導入可能なのではないかと考えている。コードを書く上でWebサイトで調べるという行為は付きものだが、調べる前にコードを見て大凡の書き方等を楽に考えて調べずに書けるに超したことはないのでね。&lt;/p&gt;
&lt;h3&gt;そもそもviviaがサポート終了予定&lt;/h3&gt;
&lt;p&gt;viviaでプロフィールアイコンの設定が分からず質問を行った際、saicacaさんから実際に返答を頂いたのだが、&lt;a href=&quot;https://github.com/saicaca/hexo-theme-vivia/discussions/74#:~:text=Fuwari%20can%20actually%20be%20considered%20the%20next%20major%20version%20of%20Vivia%2C%20and%20I%20am%20going%20to%20discontinue%20the%20developments%20of%20Vivia.&quot;&gt;FuwariはViviaの次期メジャーバージョンと考えられているらしく&lt;/a&gt;、今後開発を中止する予定らしい。その為無理をしてHexo&amp;amp;viviaを使い続ける理由がなかったので乗り換えたというのもある。&lt;/p&gt;
&lt;h3&gt;OSSで貢献出来そう&lt;/h3&gt;
&lt;p&gt;astroが割と取っつきやすい言語だったこともあり、やろうと思えば不足していると思った機能を自身で拡張する事が出来るので、もしその実装内容が本当に良いと思った場合Fuwariに対してPRを出して貢献できそうだと感じた。&lt;/p&gt;
&lt;p&gt;以上の理由からHexo&amp;amp;viviaの構成からFuwariへの乗り換えを行った。&lt;/p&gt;
</content:encoded></item><item><title>HexoのGoogleAdSense対応</title><link>https://fuwari.vercel.app/posts/hexo-google-adsense/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/hexo-google-adsense/</guid><description>Hexoで構築したサイトのAdSense認証を行う</description><pubDate>Sat, 06 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;今後自身の知ったり行った事を備忘録として纏めていく際、
若干でもお金になれば（せめてドメインの維持費用の足しくらい）良いと思ったので、HexoのGoogleAdSense対応を行った。&lt;/p&gt;
&lt;h2&gt;サイトの認証を行う&lt;/h2&gt;
&lt;p&gt;まず、広告を配置する前に実際にサイトを所有している証明を行う必要がある。
証明を行う方法は複数あるが、今回はads.txtを使用する方法で行った。
GoogleAdSenseのアカウントを作成したらサイト認証までは分かり易く案内されるのでここでの手順記載は省く。&lt;/p&gt;
&lt;p&gt;確認方法としてはGoogleがウェブサイトのルートディレクトリ上に配置したads.txtを確認するので、
予め指定されたads.txtを配置するという方法。&lt;/p&gt;
&lt;p&gt;認証ページを開くといくつか方法が提示されるので、ads.txtを選択すると以下の様にテキストが表示されるので、内容をコピーする。
そして&lt;code&gt;&amp;lt;Hexoのルートディレクトリ&amp;gt;/source/&lt;/code&gt;内にads.txtという名前のファイルを作成して、ファイル内にコピーした内容を記載して保存。&lt;/p&gt;
&lt;h2&gt;ads.txtの存在確認&lt;/h2&gt;
&lt;p&gt;ローカルで問題無いか確認する為、&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hexo server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;でサーバーを立ち上げ、.&lt;code&gt;localhost:4000/ads.txt&lt;/code&gt;を開き、
保存したテキストの内容がそのままブラウザ上に表示されればOK。
自身の行っている公開方法でサイトの内容を更新して、
GoogleAdSence側で認証を行えば比較的すぐ確認してくれる。&lt;/p&gt;
</content:encoded></item><item><title>OrangePi3BをeMMCからBootする</title><link>https://fuwari.vercel.app/posts/emmcboot-orangepi3b/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/emmcboot-orangepi3b/</guid><description>OrengiPi専用のeMMCを使いSDカード未使用の運用を試す</description><pubDate>Sat, 06 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;先日買ったOrangePi3Bには専用のeMMCインターフェースが存在している。
&lt;img src=&quot;0719-pi3b-21.png&quot; alt=&quot;OrangePi3Bの背面実装画像&quot; /&gt;
今回アリエクから購入したOrangePiは32GBのeMMCがセットになっている商品の為、MicroSDカードを使わずeMMCを使ったUbuntuの実行方法について紹介。&lt;/p&gt;
&lt;h2&gt;注意&lt;/h2&gt;
&lt;p&gt;今回行った手順は公式の&lt;a href=&quot;http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html&quot;&gt;ユーザーマニュアル&lt;/a&gt;を元に行った物である。ユーザーマニュアルが更新される等により今回記載している方法と異なって居る場合があるので留意して欲しい。&lt;/p&gt;
&lt;h2&gt;eMMCへの焼き込み手段&lt;/h2&gt;
&lt;p&gt;eMMCへの焼き込み手段は大まかに二通り存在する&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;公式の提供するツールを使う（WindowsOSが必要）&lt;/li&gt;
&lt;li&gt;SDカードからLinuxを起動してOrangePiからeMMCへ書き込む&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;前者のツールを使う手段はマニュアルを見た感じ雑に出来そうな所があったが、USB-AMale to USB-AMaleケーブルが必要になる。また、Windowsのツールがバリバリ中国語&amp;amp;クローズドソースっぽく若干怖かった為、今回は後者のSDカードでLinuxを起動した状態からの書き込みを行った。当然Linuxが起動出来るMicroSDカードが一枚必要になるので注意。&lt;/p&gt;
&lt;h2&gt;準備する物&lt;/h2&gt;
&lt;p&gt;今回はRockChip向けにパッチが当てられたUbuntu22.04LTSを使っていきます。SDカードで実行するOSもeMMCに書き込むOSも両方このOSの想定です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/Joshua-Riek/ubuntu-rockchip/releases/tag/v1.33&quot;&gt;ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img.xz&lt;/a&gt;&lt;br /&gt;
（デスクトップが焼きたいならdesktopを選ぶ）&lt;/li&gt;
&lt;li&gt;適当なMicroSDカード&lt;br /&gt;
今回はコスパ的に32GBを選んだ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;手順&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;MicroSDカードヘのUbuntuインストールは調べて行って下さい。山程転がっています。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;SDカードにUbuntuを保存&lt;/h3&gt;
&lt;p&gt;現在OrangePi3BのMicroSDカードから起動しているUbuntuに、&lt;code&gt;ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img.xz&lt;/code&gt;を保存します。SDカードに同じOSを焼いていれば手元にあるはずなので、sftp等でOrangePiに転送してください。何かしらの理由で転送が出来ない場合はcurlやwgetで再度リポジトリのリリースから取得を行ってSDカード上に保存して下さい。&lt;/p&gt;
&lt;h3&gt;eMMCを接続&lt;/h3&gt;
&lt;p&gt;一度SDカードから実行しているOrangePiの電源を落として、基板背面のeMMCインターフェースにeMMCを取り付け、その後再起動。eMMCには有効なOSが入っていないはずなので再度SDカードから起動が行われる。&lt;/p&gt;
&lt;h3&gt;.xzの解凍&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;ここからSDカードのDocumentフォルダ直下に&lt;code&gt;ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img.xz&lt;/code&gt;が保存されていると仮定します。
まず以下のコマンドで.xzを解凍&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;xz -d ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img.xz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;解凍後Document直下に&lt;code&gt;ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img&lt;/code&gt;が存在する事を確認する。&lt;/p&gt;
&lt;h3&gt;eMMDの接続ノードを確認&lt;/h3&gt;
&lt;p&gt;以下のコマンドでeMMCのノードを確認する。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ls /dev/mmcblk*boot0 | cut -c1-12
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;実行後&lt;code&gt;/dev/mmcblk0&lt;/code&gt;といった具合にeMMCの接続先が表示される。このディレクトリは今後のコマンドで使用するので把握する事。&lt;/p&gt;
&lt;h3&gt;eMMCの初期化&lt;/h3&gt;
&lt;p&gt;以下のコマンドを使い接続しているeMMCの初期化を行います。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dd bs=1M if=/dev/zero of=&apos;先程のノード&apos; count=1000 status=progress
sudo sync
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;若干時間がかかる筈。&lt;/p&gt;
&lt;h3&gt;Ubuntuのコピー&lt;/h3&gt;
&lt;p&gt;ddコマンドを用いてeMMCへUbuntuを書き込む&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dd bs=1M if=ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img of=&apos;先程のノード&apos; status=progress
sudo sync
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;こちらもまあまあ時間がかかる筈。&lt;/p&gt;
&lt;p&gt;コマンドが完了したらシャットダウンしてSDカードを抜いてから再度起動したらeMMCからOSが起動する。サーバーOSを焼いた場合ユーザー名パスワード共に&lt;code&gt;ubuntu&lt;/code&gt;となっている。&lt;br /&gt;
ドキュメント読むのは面倒だったが実際やる分にはそこまで難しくなかった。&lt;/p&gt;
</content:encoded></item><item><title>VSCode内でHexoのプレビューを表示</title><link>https://fuwari.vercel.app/posts/vscode-simplebrowser/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/vscode-simplebrowser/</guid><description>VSCodeだけでHexoのブログ作成とプレビューを済ませる</description><pubDate>Sat, 06 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hexoでブログ作成を行っている時、
ブログ記事のバックアップをする為にgitコマンドを実行したり、
Markdownで記事を書く関係上VisualStudioCodeを主に使用している。
二画面で作業をしている際はサブモニターにHexoのプレビューを表示しておけば良いのだが、
他のタスクでサブモニターに別の物を表示している場合VSCode単体ですべて表示したくなったので組み込みブラウザの起動方法について調べた。&lt;/p&gt;
&lt;h2&gt;組み込みブラウザの起動方法&lt;/h2&gt;
&lt;p&gt;コマンドパレットを使って&lt;code&gt;Simple browser: Show&lt;/code&gt;と検索
Windows&amp;amp;Linuxは&lt;code&gt;Ctrl+Shift+P&lt;/code&gt;
macOSは&lt;code&gt;⇧+⌘+P&lt;/code&gt;
でコマンドパレットが開ける。
Simpleと入れた段階で選択出来る筈。
実行すると、エディタに追加でブラウザーが表示される筈なので、
&lt;code&gt;http://localhost:4000/&lt;/code&gt;
と入力すればHexoで作成したサイトが開ける。
当然ながらlocalhost以外も開けるので調べ物にChrome等を使わずVSCode内で完結する事は一応可能。Hexoでテーマを使っている場合はブラウザによって挙動が異なる可能性があるので実ブラウザで確認はした方が良い。&lt;/p&gt;
&lt;h4&gt;参考サイト&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=ms-vscode.live-server#:~:text=This%20extension%20is%20most%20useful%20for%20projects%20where%20a%20server%20is%20not%20already%20created%20(e.g.%20not%20for%20apps%20using%20React%2C%20Angular%2C%20etc.).%20To%20work%20with%20these%2C%20feel%20free%20to%20run%20the%20Simple%20Browser%3A%20Show%20command%20that%20is%20already%20built%2Din%20with%20VS%20Code.&quot;&gt;VisualStudio Marketplace: Live Preview&lt;/a&gt;
ReactやAngularで構築済みのサイトを開く場合はSimpleBrowserを使えと記載があり機能に気付いた。
Hexoも静的サイトジェネレーターで完成済みのサイトしか吐かないので用途としては合っている筈。&lt;/p&gt;
</content:encoded></item><item><title>SSHoverQUICを試す</title><link>https://fuwari.vercel.app/posts/ssh-over-quic/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/ssh-over-quic/</guid><description>SSHoverQUIC(QUIC for SSH)が気になったので実際にやってみた</description><pubDate>Fri, 05 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;個人的に使用しているadblockアプリのブログにて、
QUICプロトコルに対応したと言う内容を見かけたのでQUICについて調べていた所、
QUICプロトコルを通してSSH接続を行うという方法を見かけたので実際に試して思った事等を紹介。&lt;/p&gt;
&lt;p&gt;ネットワークに詳しくないのでQUICについて詳しく説明が出来ないが、
QUICは低遅延でデフォルトで暗号化に対応している事、また接続の再開機能やパケットロスへの耐性を持っているプロトコル。
SSHは接続の再開機能やパケットロスに弱いのでSSHの接続時にQUICプロトコルを通す事でその問題点を解決しようと考えられている模様。&lt;/p&gt;
&lt;h2&gt;moshで良くない？&lt;/h2&gt;
&lt;p&gt;切断耐性を持つ手段としてはmoshがあるが、~/.ssh/configで設定したProxyCommandが利用出来ない為、多段sshを行う際の簡略化が行えない、sshを利用したポートフォワーディングが利用出来ない。&lt;br /&gt;
個人的にはVSCodeでリモートアクセスもしているが、moshを使ってのアクセスは出来ない為VSCodeでは通常のSSHでアクセスをするしかなくなってしまう。&lt;br /&gt;
更には接続先でもmoshサーバーを実行する為、接続先のポートとして60000~いくつかのポートを空けておく必要がある等、手間と利便性に欠ける。&lt;br /&gt;
今回利用する&lt;a href=&quot;https://github.com/oowl/quicssh-rs&quot;&gt;quicssh-rs&lt;/a&gt;ではProxyCommandを使うので空けるポートは適当な一つで良いのと、ProxyCommandを利用するので、多段SSHも簡単に行える、VSCodeのSSHアクセスでも使用可能、という利点を利用出来る。&lt;br /&gt;
（moshはサーバーとのアクセスが不安定な場合でもクライアントで予測入力が使えたり等便利な固有機能はある）&lt;/p&gt;
&lt;h2&gt;実際に試す&lt;/h2&gt;
&lt;p&gt;今回は踏み台に利用するので、接続元と踏み台、目的のサーバーの三つを用意した。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;接続元
&lt;ul&gt;
&lt;li&gt;macOS 14.2.1 23C71 arm64&lt;/li&gt;
&lt;li&gt;OpenSSH_9.6p1, OpenSSL 3.2.1 30 Jan 2024&lt;/li&gt;
&lt;li&gt;quicssh-rs 0.1.4+autopublish&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;踏み台
&lt;ul&gt;
&lt;li&gt;Ubuntu 22.04.4 LTS aarch64&lt;/li&gt;
&lt;li&gt;OpenSSH_8.9p1 Ubuntu-3ubuntu0.6, OpenSSL 3.0.2 15 Mar 2022&lt;/li&gt;
&lt;li&gt;quicssh-rs 0.1.4+autopublish&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;接続先
&lt;ul&gt;
&lt;li&gt;macOS 14.2.1 23C71 arm64&lt;/li&gt;
&lt;li&gt;OpenSSH_9.4p1, LibreSSL 3.3.6&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Rustの導入（オプション）&lt;/h3&gt;
&lt;p&gt;quicssh-rsはRust製の為、Rustが未導入であれば導入する必要がある。&lt;br /&gt;
また、sshでアクセスする元と接続先（この場合接続元と踏み台）の双方にquicssh-rsを入れる必要がある為、両方にRustを入れる事。&lt;br /&gt;
今回自身はbrewやaptは使わず&lt;a href=&quot;https://rustup.rs/&quot;&gt;rustup.rs&lt;/a&gt;を使用した。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl --proto &apos;=https&apos; --tlsv1.2 -sSf https://sh.rustup.rs | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;基本はこのコマンドでEnter押し続けていれば必要な物は入る。&lt;/p&gt;
&lt;h3&gt;quicssh-rsのビルド&lt;/h3&gt;
&lt;p&gt;quicssh-rsはcargoで公開されているので、自前でビルドをして導入を行う。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cargo install quicssh-rs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;自分の環境ではmacはあまり時間もかからずに終わったが、OrangePi3Bでは10分程かかった。
&lt;code&gt;-V&lt;/code&gt;オプションでバージョンの確認が出来れば導入出来ている。&lt;/p&gt;
&lt;h3&gt;設定&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;以降接続元と接続先はmacOS、踏み台はUbuntuを前提に説明しています。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;踏み台&lt;/h4&gt;
&lt;p&gt;導入後以下のコマンドでquicssh-rsがサーバーモードで起動します。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;quicssh-rs server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;デフォルトで使用するポートは8625になっています。&lt;br /&gt;
また、サーバー側のsshは127.0.0.1:22がデフォルトでは想定されています。&lt;br /&gt;
クライアントからアクセスするポートを変える場合オプションで&lt;code&gt;-l 0.0.0.0:8888&lt;/code&gt;といった具合で設定を、&lt;br /&gt;
sshの設定を変えていて22番ポート以外で受け付けている場合&lt;code&gt;-p 127.0.0.1:8022&lt;/code&gt;といった具合で設定出来ます。&lt;/p&gt;
&lt;p&gt;起動したらフォアグラウンドで実行状態になるので接続テストを終えるまではそのままで放置。&lt;/p&gt;
&lt;h4&gt;接続元&lt;/h4&gt;
&lt;p&gt;quicssh-rsは&lt;code&gt;~/.ssh/config&lt;/code&gt;のProxyCommandで使用する想定の為こちらも設定していきます。&lt;br /&gt;
まず最初にquicssh-rsのPATHを調べておきます。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;which quicssh-rs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;sshconfigの書き方に関してはこちらの記事が説明してくれているので参考にすると良いです。&lt;br /&gt;
&lt;a href=&quot;https://qiita.com/passol78/items/2ad123e39efeb1a5286b&quot;&gt;~/.ssh/configについて&lt;/a&gt;&lt;br /&gt;
ここで書いた設定に追加でProxyCommandの行を追加します。（サンプルはGithubのREADME.mdから引用）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ProxyCommand /Users/ouyangjun/code/quicssh-rs/target/release/quicssh-rs client quic://%h:%p
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ProxyCommandを設定したsshの接続を行ってみて、問題無く接続先に繋がれば成功。&lt;br /&gt;
サーバー側で実行しているquicssh-rsにもログが出る筈。&lt;/p&gt;
&lt;h4&gt;quicssh-rs serverのサービス化&lt;/h4&gt;
&lt;p&gt;流石にフォアグラウンドで実行し続ける事や、再起動の度手動で実行するのは手間なのでsystemdサービスとして登録を行う。
&lt;code&gt;/etc/systemd/system/&lt;/code&gt;以下に&lt;code&gt;任意の名前.service&lt;/code&gt;でサービスを作成する。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo vi /etc/systemd/system/quic-over-ssh.service
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;quic-over-ssh.serviceは例、既存の物と重複していなければ何でも良い。&lt;br /&gt;
中身はこんな感じ&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=SSH over QUIC Server

[Service]
ExecStart=&amp;lt;踏み台のquicssh-rs実行コマンドを書く&amp;gt;
Restart=always

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;この時ExecStartに書くquicssh-rsはフルパスで書く必要があるっぽいので注意。&lt;br /&gt;
作成を終えたら以下のコマンドでサービスの起動と再起動後の自動起動を設定。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl start quic-over-ssh.service
sudo systemctl enable quic-over-ssh.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以下のコマンドで実行されているか確認出来る。&lt;code&gt;Active&lt;/code&gt;の項目でactive(running)と表示されていれば実行されている。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl status quic-over-ssh.service 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;これで再起動後も問題無くサーバーモードで実行される。&lt;/p&gt;
&lt;h3&gt;懸念点&lt;/h3&gt;
&lt;p&gt;自身だけかもしれないが、Ubuntuのインストール時にCloudinitの設定により&lt;code&gt;/etc/ssh/sshd_config.d/50-cloud-init.conf&lt;/code&gt;内で、&lt;code&gt;PasswordAuthentication yes&lt;/code&gt;が設定されていた。&lt;br /&gt;
quicssh-rsは仕組み上、設定しているサーバーへのアクセスはQUICとなっており、そこから行われるsshは&lt;code&gt;ssh localhost&lt;/code&gt;と同様の動作となっている。&lt;br /&gt;
公開鍵認証を強制していても、PasswordAuthenticationが有効の場合localhostではパスワード認証が出来てしまう為確認した方が良い。&lt;br /&gt;
もしも第三者がquicssh-rsを使用している事に気付くと総当たり攻撃が成立する状態になるので、Cloudinitが設定されている場合は関連ファイルでパスワード認証が有効になる設定が別途存在しないか確認した方が良さそう。&lt;/p&gt;
</content:encoded></item><item><title>Hexoのフィード対応</title><link>https://fuwari.vercel.app/posts/hexo-feed/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/hexo-feed/</guid><description>Hexoの更新をFeedで配信する</description><pubDate>Sat, 30 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;自身はRSS等を使う事が無いので必要性がどれ位あるのか不明だけれど、
折角なので作成したブログをフィードで通知出来る様にしてみる。
登録する人が1人でも居れば有用なので。&lt;/p&gt;
&lt;h2&gt;プラグインの追加&lt;/h2&gt;
&lt;p&gt;フィードの利用にはHexo公式が提供している&lt;a href=&quot;https://github.com/hexojs/hexo-generator-feed&quot;&gt;hexo-generator-feed&lt;/a&gt;を利用する。
Hexoのルートディレクトリでnpmコマンドを実行する事で導入可能。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install hexo-generator-feed --save
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;導入後、Hexoの設定&lt;code&gt;_config.yml&lt;/code&gt;に追加の設定を行う事でフィードの配信準備が整う。
デフォルトでフィードの配信機能は有効になっている為、
&lt;code&gt;hexo generate&lt;/code&gt;でAtomのフィードが生成される。&lt;/p&gt;
&lt;h2&gt;設定&lt;/h2&gt;
&lt;p&gt;基本的な追加設定項目は以下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;feed:
  enable: true
  type: atom
  path: atom.xml
  limit: 20
  hub:
  content:
  content_limit: 140
  content_limit_delim: &apos; &apos;
  order_by: -date
  icon: icon.png
  autodiscovery: true
  template:
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;enable&lt;/h3&gt;
&lt;p&gt;hexo-generator-feedを有効にするかの設定、
デフォルト値はtrue。
特別な理由がなければfalseにする必要は無い。&lt;/p&gt;
&lt;h3&gt;type&lt;/h3&gt;
&lt;p&gt;rssかatomのどちらか、または双方でフィードを配信するか設定する。
双方使う場合は以下の様に記載。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;type:
  - atom
  - rss2
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;path&lt;/h3&gt;
&lt;p&gt;rss,atomの生成されるxmlファイルのパスを指定する。
デフォルトではatom.xml、rss2.xmlとなっている。
使用しているテーマによって格納するxmlファイルの場所が異なる場合ここで指定する。
ちなみにパスはtypeで指定した順に使われるのでatomとrss2両方を使用する設定にして、尚且つatomが先にされている場合、atomの格納パスから指定する。&lt;/p&gt;
&lt;h3&gt;limit&lt;/h3&gt;
&lt;p&gt;フィード内に含める投稿の数を指定。
無制限にする場合は&lt;code&gt;0&lt;/code&gt;か&lt;code&gt;false&lt;/code&gt;を指定する。&lt;/p&gt;
&lt;h3&gt;hub&lt;/h3&gt;
&lt;p&gt;PubSubHubbubに新規投稿を通知する場合は指定する。
（使用しない場合は空のままにする）&lt;/p&gt;
&lt;h3&gt;content&lt;/h3&gt;
&lt;p&gt;投稿内容全体をフィードに含める場合は&lt;code&gt;true&lt;/code&gt;を設定する。&lt;/p&gt;
&lt;h3&gt;content_limit&lt;/h3&gt;
&lt;p&gt;フィードの概要に含まれるコンテンツ内容の長さを指定する。
contentがfalseで投稿にカスタム設定が含まれていない場合に使用される。&lt;/p&gt;
&lt;h3&gt;content_limit_delim&lt;/h3&gt;
&lt;p&gt;content_limitを使って投稿内容を短くする場合、特定の区切り記号を使ってカットしたい場合ここに任意の区切り起動を設定する。&lt;/p&gt;
&lt;h3&gt;order_by&lt;/h3&gt;
&lt;p&gt;フィードの並び順。
デフォルトでは日付でソートされる。&lt;/p&gt;
&lt;h3&gt;icon&lt;/h3&gt;
&lt;p&gt;カスタムフィードアイコン、デフォルトでは設定されたメールアドレスと関連付けられている&lt;a href=&quot;https://ja.gravatar.com/&quot;&gt;Gravatar&lt;/a&gt;アイコンが使用される。&lt;/p&gt;
&lt;h3&gt;autodiscovery&lt;/h3&gt;
&lt;p&gt;フィードの自動検出機能を有効にする。
デフォルトでは有効。
リポジトリの説明を見たがイマイチ意味が分からなかった。&lt;/p&gt;
&lt;h3&gt;template&lt;/h3&gt;
&lt;p&gt;生成されるatom,rss2のxmlファイルの形をテンプレートに沿ってカスタマイズする事が可能。
利用する場合はテンプレートのパスを指定する。
&lt;code&gt;path&lt;/code&gt;同様、&lt;code&gt;type&lt;/code&gt;で指定されているフィード順にパス指定を行う。&lt;/p&gt;
</content:encoded></item><item><title>OrangePi3Bを購入</title><link>https://fuwari.vercel.app/posts/impression-orangepi3b/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/impression-orangepi3b/</guid><description>踏み台サーバーとしてOrangePi3Bを購入</description><pubDate>Fri, 29 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;ここ一年くらいの間、自宅のSSH踏み台用サーバーとしてCeleron J4125を搭載したミニPCを使用していたが、
SSHの踏み台だけにここまでのスペックは不必要なのでは？と思い、Raspberry Piの購入を検討。
しかし最近のRaspberry Piは需要が高く性能も最新のは良いが値段も高い・・・
そこで色々探していた所、Twitterにて「RockChip搭載の物使ってみては？」と言われたので、
RockChipとはなんぞやと思いながら搭載しているSBCを探した所、OrangePiというラズパイと大体互換性のある物を発見。
搭載しているSoCはRK3566という物でCPUにCortex-A55を使用、同価格帯のRaspberryPiModelBに搭載されているCortex-A53と比較しても性能は高い。&lt;/p&gt;
&lt;p&gt;しかもSBCに搭載されているメモリも4GBと割と多め。
さらに基板にNVMeSSDと専用のeMMC追加用端子まで存在する拡張性っぷり。
それでいてAliExpressで購入すれば、値段もRaspberryPiModelBの7000円とほぼ同程度。
これは買うしか無いと思い、普段から大陸から輸入している友人経由で購入。
ファミコンっぽいケースと含めて合計9000円くらいとかなりお得に購入出来ました。
今後このSBCにSDカード経由でのUbuntu実行やeMMCからのOS起動方法を模索しながら進めて行きたい所。&lt;/p&gt;
</content:encoded></item><item><title>HexoPreviewのホットリロード対応</title><link>https://fuwari.vercel.app/posts/hexo-browsersync/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/hexo-browsersync/</guid><description>Markdownの編集を即時プレビューする方法</description><pubDate>Wed, 27 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;HexoはPreview用に&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hexo server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;でプレビューサーバーを実行出来るが、
デフォルトの状態では編集を行っても即時反映されない為、ブラウザの画面を手動でリロードして表示する必要がある。
そこでhexoにプラグインを導入して手間を省く。&lt;/p&gt;
&lt;h2&gt;導入&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.npmjs.com/package/hexo-browsersync&quot;&gt;hexo-browsersync&lt;/a&gt;を使用する。
Hexoのルートディレクトリで以下のnpmコマンドを実行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install hexo-browsersync --save
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;導入後はhexoのサーバー再起動が必要なので忘れずに。&lt;/p&gt;
&lt;h4&gt;参考サイト&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/36898508/how-to-use-hexo-server-draft-and-livereload&quot;&gt;StackOverFlow: How to use hexo server --draft and Livereload&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Hexoでサイト構築</title><link>https://fuwari.vercel.app/posts/install-hexo/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/install-hexo/</guid><description>Hexoを用いた静的サイトブログの構築方法</description><pubDate>Tue, 26 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Hexoとは&lt;/h2&gt;
&lt;p&gt;Hexoは静的サイトジェネレーターと言われるサイト構築用のツール。
静的サイトはHTMLファイルをアクセスしたユーザーに対してそのまま提供して表示を行うウェブサイトとなっている。
Hexoは静的サイトジェネレーターなので、予めMarkdownという特定の形式でサイトの本文を作成後、HTMLファイルを生成してユーザーに提供するという方式をとる。&lt;/p&gt;
&lt;p&gt;対照に動的サイトは、ユーザーのリクエストに応じてリアルタイムで生成されるサイトとなっている。
こちらはHTML以外にもPHP等のバックエンドで動作するプログラム言語も用いて構成されている（といってもWordPressの場合ほぼ意識せずに構成可能ではある）。&lt;/p&gt;
&lt;p&gt;正直個人のブログ程度であれば、アクセスするユーザーと対話が必要なケースは皆無の為、Hexoで構築を行おうと思いこれを気にブログ運営を始めようと思った次第。&lt;/p&gt;
&lt;p&gt;また静的サイトであればGithubPagesやNetlifyがあり、前者では公開リポジトリの場合、後者では一定リソースまでは無料でホスティングが可能な為非常に安価にブログが公開出来る。
WordPressの場合、自力で構築する場合はかなり前提知識を学ぶ必要性があったり、レンタルサーバーの機能を用いて運用する場合別途費用がかかったりしてしまい高額になりがちの為スモールスタートには向いていない印象がかなり強い。&lt;/p&gt;
&lt;h3&gt;構築手順&lt;/h3&gt;
&lt;p&gt;今回は以下の環境で構築を行っています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;macOS Sonoma 14.2.1&lt;/li&gt;
&lt;li&gt;nvs 1.7.1&lt;/li&gt;
&lt;li&gt;Node.js 21.6.2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://hexo.io/index.html&quot;&gt;[公式サイト]([text](https://hexo.io/index.html))&lt;/a&gt;の情報が最も分かり易いが日本語は提供されていない為、ホームページ表示までの手順を記載します。&lt;/p&gt;
&lt;h4&gt;nvsの導入&lt;/h4&gt;
&lt;p&gt;macOSではHomebrewやnodebrew等複数のNode.js導入手段が存在しますが、今回は公式が推奨している&lt;a href=&quot;https://github.com/jasongin/nvs&quot;&gt;nvs(Node Version Switcher)&lt;/a&gt;を使用します。&lt;/p&gt;
&lt;p&gt;macOSでターミナルアプリを開き以下のコマンドを順番に実行します。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export NVS_HOME=&quot;$HOME/.nvs&quot;
git clone https://github.com/jasongin/nvs &quot;$NVS_HOME&quot;
. &quot;$NVS_HOME/nvs.sh&quot; install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;gitに関しては導入されていない場合、XCodeCommandLinetoolを導入すると自動で追加される為以下のコマンドで利用出来るようになります。（Python3系も入ります）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;xcode-select --install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;nvsインストール後以下のコマンドでNode.jsの選択画面が出ます。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nvs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;複数項目が表示されますが、14.0.0以上であれば一応問題ありません（パフォーマンス的には最新番を入れるのばおすすめ、定期的な更新が面倒な場合はサポートが長いLTSをおすすめします。これ以降定期的にNode.jsのサポートや不具合情報を見る癖を付けると良いです）。
選択すると自動的に対象のNode.jsがインストールされ使用可能になります。&lt;/p&gt;
&lt;p&gt;コマンドのみで導入したい場合は以下の様な方法も可能です（下記は21.6.2の場合）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nvs add 21.6.2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;今後Node.jsを常に使用する場合以下のコマンドを実行して固定可能です（行わない場合、ターミナル実行時にnvsコマンドから指定する必要があります）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nvs link &quot;インストールしたバージョン&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;21.6.2は以下になります。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nvs link 21.6.2
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Hexoの導入&lt;/h4&gt;
&lt;p&gt;以下のコマンドでHexo本体の導入を行います。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install -g hexo-cli
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Hexoの際とフォルダ生成&lt;/h4&gt;
&lt;p&gt;以下のコマンドを実行してHexoで構築するサイトのフォルダを生成します。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hexo init &amp;lt;フォルダ名&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例えば&quot;blog&quot;という名前のフォルダを作成したい場合以下の様になります。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hexo init &quot;blog&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;個人的には書類（Documents）フォルダ内に作る事をおすすめしています。
以下で書類フォルダに移動出来ます。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~/Documents
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;無事に生成出来た場合、blogというフォルダが生成されて内部にHexoの実行用ファイルがいくつか生成されている筈です。
&quot;blog&quot;という名前で実行した場合、以下のコマンドでフォルダに移動出来る筈。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd blog
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;サーバーの実行&lt;/h4&gt;
&lt;p&gt;生成されたフォルダ内で以下のコマンドを実行する事でローカルサーバーが実行出来ます。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hexo server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当然生成したフォルダ内で実行しないと機能しない為気をつけてください。&lt;/p&gt;
&lt;p&gt;問題無く実行出来た場合&lt;a href=&quot;http://localhost:4000/&quot;&gt;localhost:4000&lt;/a&gt;にアクセスする事で以下の様にHexoのデフォルトページを表示出来る筈です。
&lt;img src=&quot;defaultpage.png&quot; alt=&quot;Hexoで生成されたデフォルトページ&quot; /&gt;&lt;/p&gt;
</content:encoded></item></channel></rss>