スキップしてメイン コンテンツに移動

投稿

2023の投稿を表示しています

7年越しにクロスバイクに目覚める

7年越しにクロスバイクに目覚める クロスバイクは2016年の5月19日にGIANTのESCAPE R3を購入したらしい(過去にパズドラブログに書いていて、その記録による。こっちにも書いておけばよかった)。 それに乗ったり乗らなかったりを繰り返していたのだが、7年目にしてついにガチで性能を引き出そうという気持ちになった。 なぜそうなったか、自分の中では特に無かったのだが、とにかく自転車に乗って遠出したい欲が謎に出てきてしまったのだ。 今まで引きこもっていた反動か? 実際に色々買ったもの。 今回は、クロスバイク生活を充実化させるために色々購入した。 バックライト ベル スマホホルダー サイクルジャージ スポーツ用パンツ 防水ポーチ ボトルホルダー ペットボトルキャップ(スポーツ用) マルチツール 一覧としてはこんな感じ。 購入して良かったサイクルジャージとスポーツ用パンツ 自分が購入して特に良かったと感じたのが、サイクルジャージとスポーツ用パンツ。 サイクルジャージとかめっちゃ恥ずかしいじゃんと思う人もいるかもしれない。 しかし、これが自転車を漕ぐ上でめっちゃ重要だった。少なくとも、自分にとっては。 サイクルジャージの特徴はいくつかある。 下からの風を通さない 背中から排気(?)されるので、思った以上に蒸れない 背中の収納が便利 サイクルジャージは、肌着の上に直で着るというスタイルにしている(本当は違うかもしれないけれど、僕はそうしている)。 だから、実質2枚しか上を羽織っていない状態なのだが、これが全然寒くない。 以前は何枚も重ね着してそれでも寒かったが、サイクルジャージに関してはその寒さを全く感じさせなかった。 形状などを分析した結果、ジャージの下部がしっかりとボディに密着するため、下からの風の流入がほぼ無いのだ。これが、とにかく温かい。 しかも、手先以外まではしっかりと長袖なので、この時期でも冷えることは無い。 指先に関しては、手袋を装着すれば十分な寒さ対策になる。 自転車を漕ぎまくって熱くなったとしても、背中から排気されるので、かなり心地よい温度で自転車を漕ぎ続ける事が出来る。 ほぼ蒸れないというのも、快適に輪行出来る上で重要な要素だ。 何より、背中の収納が便利。ポケットが3個ほどあるタイプなのだが、ここ

バグ発見から学ぶ:Cloudflare Workers+Hono で SESAME API を最適化

バグ発見から学ぶ:Cloudflare Workers+Hono で SESAME API を最適化 SESAME に関する記事はこれが 3 本目かもしれない。 今回、SESAME 関連の自前開発をしてて、Cloudflare Workers のバグを発見したので、その顛末を綴っていこう。 SESAME 操作環境遷移 以前の 記事 の通り、自分の SESAME 操作環境は下記のように遷移していった。 Google App Script + IFTTT Google App Script + MacroDroid Cloudflare Workers + MacroDroid(And ショートカット) まず、GAS+IFTTT の王道の組み合わせだが、以下の不満点があった。 IFTTT の反応がゴミ 自分が帰宅範囲内に入っても全然動作しないというやる気の無さっぷりにキレてしまった。 そうして、ネットの海を徘徊して見つけたのが、MacroDroid。 GAS+MacroDroid の組み合わせは、しばらくは不満がなかったのだが、これもまたイライラする要素があった。 それは GAS の起動がゴミ GAS を使ったことがある人なら分かるが、GAS は起動速度がとんでもなく遅い。 Cold start だと平均 9 秒~ 11 秒くらい掛かる。 そもそも、GAS をサーバレス・アーキテクチャとして使うなという話ではあるが、この起動の微妙な遅さのせいで、帰宅してから数秒のタイムラグがあり、キレてしまった。 Cloudflare Workers + Hono に出会う そんなさなか、ひょんな事から Cloudflare Workers + Hono の案件をもらい、実装する事でその汎用性の高さに気がついた。 まあ、この Cloudflare Workers を実装するきっかけになったのも GAS の案件で、死ぬほど GAS の起動が遅いからどうにかしてくれーという話に対応するためであった。 GAS はデータベース的に使うと便利(コンピュータにそこまで詳しくない人でもデータ入力ができる)なのだが、その分高速性は犠牲にされている。 1 分 1 秒が貴重な現代では、10 秒のコールドスタートははっきり言って時間の無駄。 Cloudflare Wo

SF 絶対に読んでおけランキングを読み終えた

SF 絶対に読んでおけランキングを読み終えた 今年の 8 月にまとめた、SF 絶対に読んでおけランキングの未読作品を読み終えた。 残っていた 3 作は下記の通り。 銀河英雄伝説 宇宙の戦士 歌う船 以下、各作品の感想 銀河英雄伝説 アニメ化もされている本作だが、ある程度のアウトラインは無意識のうちに摂取していたか、内容はなんか読んだことあるなという事が多かった。 とは言え、面白くないかと言えばそんな事なく、バチバチに面白かった。 覇道を行くラインハルトに対して、意地汚い生き残る道を選ぶヤンとはっきりとした考えの違いで、なんやかんやラインハルトを出し抜くヤンの良さに惹かれてしまった。 どちらも魅力的なキャラなので、どっちが好きかは人それぞれだと思うが、僕はヤン・ウェンリーのキャラが好みだった。 読んだのは黎明編なので、これから最後まで追い続けて読みたい。 宇宙の戦士 パワードスーツを発明した画期的な作品……、なのだが、実質的には兵士が育っていく物語。 暴力を描かせたらハイラインの隣に並ぶ人はそういないと感じるほど、痛ましい描写が多い。苦手な人は苦手かも。 SF というよりも、ミリタリー要素が凄く強い。 男の子が好きな作品というイメージ。 歌う船 殻人 シェルピープル と呼ばれる脳だけで宇宙船を操作する世界の中のヘルヴァという少女が主人公。 人によってはすごい面白いらしいが、僕には刺さらなかった。 サイボーグ+スペース・オペラというギミックを使った、恋愛(?)小説なのかなーという感じ。 好きな人は好きなんだと思う。 ランキングを全部読み終えて 足掛け 3 ヶ月を掛けて、未読作品全部読んでみた。読んで良かったと思う。 自分が読んだ作品の中で感銘を受けたのは、 戦闘妖精雪風 ソラリス 銀河ヒッチハイク・ガイド 果しなき流れの果に の 4 作は僕好みだった。特に、ソラリスはこの中では一番ぶっ飛んでいて、すごい考えさせられる作品だった。 難しい事を考えるのが好きな人は、ソラリスを読むことをオススメする。SF の枠を超えた SF で、凄い難解。 雪風も、かなり哲学書じみているけれど、シリーズを一気に読み切るくらいには面白かった。 まずは、第 1 作の戦闘妖精雪風を読むと良い。グッドラック、アンブロークンアローは相当に難解なので、1 作

開発環境の羅列 2023 秋

開発環境の羅列 2023 秋 自分の現在の開発環境について適当に羅列する。備忘録的な感じ。 OS Windows 11 WSL2 on Ubuntu Mac OS X OS に関しては、メイン端末は Windows 11 に WSL2 を入れて、そこで Ubuntu を走らせている。 日常のメモ書きから、プログラム開発まですべて WSL2 上の Ubuntu でカバーできている。 もしかして、Windows11 無くても生きていけるのではという錯覚に陥りがちだが、Word、Excel、PowerPoint を編集する作業があるので、多分、まだまだ Windows は必要。 Max OS X に関しては、Intel Mac のマシンを 11 年近く使っている。やべー。 こんなに長く使う予定は無かったのにどうして……。 でも、Mac 環境が無いと Safari の動作が確認できなかったりするので、しばらくは Mac は必要だろう。 M1 Mac 欲しいなぁ。 Terminal WezTerm Terminal に関しては、WezTerm に乗り換えてからずっと使っている。Win/Mac 共に使えるのが良いことと、同じ設定が使えるので愛用している。 今のところ、特に不満なく使っている Editor Neovim Vim エディタに関しては、相変わらず Vim を使っている……ように見せかけて、完全に Neovim へ移行した。これは、 Shougo-ware をメインで使っている関係上、Vim で四苦八苦するより、Neovim でぺちぺちやった方が早く環境構築が出来るからだ。 Neovim だから良いという訳ではないが、積極的に Vim を選ばなくても良い時代になったと言える。 ちなみに、エディタの起動時間は、WezTerm を立ち上げて、nvim とタイプして起動するまで 5 秒掛からない。この起動速度+十分に精錬された開発環境は VSCode を上回っている。LSP も有効化しているので、VSCode を積極的に使う理由が、今のところ僕には無い。流石に今のマシンスペックだと、VSCode は 10 秒で起動するので、たかが 5 秒くらいと言われるかもしれないので、起動速度が速い!すごい!とは言い切れないのが現状。実は、VSC

NextJS を 13.5 に上げたら、Netlify で API Routes が使えなくなった

NextJS を 13.5 に上げたら、Netlify で API Routes が使えなくなった 基本的に、NextJS をフレームワークとして使う場合は Vercel を使っていれば、変なトラブルに巻き込まれる事はないのだが、今回 netlify で作っていたアプリがコケたので、その知見を書き記したい。 事象 API Routes が全く動作しなくなった。エラーとしては 502 (Bad Gateway) が出ているが、実際にログを精査すると、 Runtime.ImportModuleError: Error: Cannot find module 'styled-jsx/style' というエラーが出ている事が分かった。 検索結果 Runtime.ImportModuleError: Error: Cannot find module 'styled-jsx' - Nextjs + NextAuth - #2 by hrishikesh この記事を見ると、@netlify/plugin-nextjs の 4.38.0 以上を入れろとなっている。だが、これをやっても駄目だった。 最終的な解決策 色々試して、NextJS の 13.5 以上は現在 netlify で API Routes が使えない事が分かったので、 NextJS をダウングレード して対応した。 最近、自分は bun を愛用しているので、 bun add nextjs@13.4.19 を実行して、package.json の中身を更新するだけで良かった。 完走した感想 ぬわああああん疲れたもおおおおん。 コイツいつも疲れてんな。 正直今回のバグはエグくて、いわゆる環境バグ。 おま環と言われても仕方がないレベルなので、再現性はもちろん、解決方法も簡単には見つからない。 今回、泣く泣くダウングレードという策を採用したが、もう少し深い所での解決を出来るようになりたい。

名探偵のままでいての感想

名探偵のままでいての感想 このミステリーがすごい受賞、小西マサテルさんの「名探偵のままでいて」を読み終えました。いわゆる「日常の謎」を扱った短編集で、とても読みやすかったです。 設定の巧妙さ この作品における、名探偵役はレビー小体型認知症を患う祖父が担っている。幻視を伴う認知症の一つであるものの、明晰な頭脳のキレは一切衰えていないという設定が良い。 元校長先生という事で、子供たちを純粋に可愛がっている姿や、後進たちへの配慮などちらりちらりと見える善性が心地よく、多くの人が好印象を抱くと思う。 一方の主人公の楓も、ミステリが好きな美人の小学校教諭という”あざとい”設定で、好きな人は好きなキャラクター造形だと思う。この美人な女性を主役に据える事で、最終話でリドル・ストーリーを展開させてる結末もお見事。ミステリにあまり馴染みがない人でも楽しめる作りになっている。 主人公の楓に好意を寄せている男性二人も非常にキャラが立っている。元バッテリーを組んでいたという設定も巧みで、カプ厨が無限に組み合わせと妄想を進められそうな設定になっている。イケメン後輩か、堅実な同僚か。主人公がどちらを選んだのかを考えるが楽しい作りになっている。個人的には、共通点の多い方を主人公が選ぶと思っている。 タイトルの良さ 本書の最後に、この本は元々「物語は紫煙の彼方に」というタイトルだったらしいが、これはあまりにも渋すぎたし、どうしても主人公が探偵役になってしまう。一方、改題した「名探偵のままでいて」は、主人公である楓目線での訴えとなっていて、ぐっと惹きつけられるものになっている。表紙イラストもとても素晴らしく、いわゆるタイトル買い、表紙買いしたくなるような作りになっていて、素晴らしい。 総評 ミステリ部分の”弱さ”はある。インパクトはどうしても弱い。意外な犯人とか、意外な方法みたいな物は少ない。ただし、これはいわゆるミステリマニアの感想であり、初めてミステリを読んだ人にはあっと驚く結末に仕上がっていると思う。しかも、その結末は比較的暖かな物が多く、殺伐とした終わり方とか、ビターな終わり方が少ないのも良い。物語一つ一つの長さも短いので、長い本を読むのが苦手な人でもちょっとずつ読み進められるそういう作りになっていて、その辺はとても現代的だなと感じた。 ミステリマニア的な視点で

「理解」を”理解る”人は、「理解」を読んで壊されよう

「理解」を”理解る”人は、「理解」を読んで壊されよう テッド・チャンのあなたの人生の物語を読み終えました。 とにかく有名な SF はちゃんと読もう期間なので、 未読の作品類 をひたすら読んでいる。 あなたの人生の物語は、現代における最高レベルの SF 短編集なので、読んでいない人は読むべき。短編集なので、サクっと読めるのが素晴らしい。 しかしながら、内容は凄い重い。SF をゴリゴリ読む人向けと言うべき内容で、サクサク読める人と読めない人で脳みその負担は相当に違うと思う。 やはり表題作は評価が高いが、個人的にはあまり刺さらなかった。ただ、刺さる人にはザクザク刺さるような作品なんだと思う。 僕には、デビュー作である「理解」がめちゃくちゃ刺さった。 「理解」とは ある治療によって、超人になった主人公が施設を飛び出すことから、物語が始まるのだが、まあ、飛び出す所からとにかくカッコ良い。人間の感覚器官の性能を人間のままで伸ばすとどうなるかというのが描かれている事に僕はシビれた。僕自身が、超人(というか天才)への憧れがあるから、この物語はとにかく刺さった。人が人という形のままで、人外になる物語が好きなんだろう。ありとあらゆる手段を尽くして性能を伸ばしていく主人公の前に、同じく超人となったライバルが現れる。超人 VS 超人という構図がとにかくカッコよくて、痺れる。相手の倒し方もとてつもないやり方で、このアイディアを実現するために、こんなにも詰め込んだのかと思わせる構成も素晴らしい。 最後に テッド・チャンという天才作家に出会えて良かった。「息吹」も面白いという評価を見ているので、どこかで読んでおきたい。 しかし、現在他の名作も積んでいる状態なので、頑張って読み進めていきたい。

「果しなき流れの果に」と「戦闘妖精・雪風」を読んだ

有言実行 本日、「果しなき流れの果に」と「戦闘妖精・雪風」を読んだ。 一度は読んでおくべき SF という名前を受けるにふさわしい傑作だった。 みんなも早く読もうね。 果しなき流れの果に 感想 自分が読んだのは、ハルキ文庫版。 端的に言えば、デカい。複雑。圧倒的知識量。 回収できていない伏線があったり、ルビ関連に厨二病感が出ていたり、若い時の小松左京らしさが出ている感じがする。 しかしながら、内容は格別。 白亜紀の中で鳴っている電話というとてつもないプロローグから、永遠に終わることのない砂時計というギミックで物語が始まる。 時間軸がジャンプしまくるので、全体を把握するのがかなり難しい。 また、後半になればなるほど、観念的な話が多くなり、最終的には哲学的な問がテーマとして出てくるので、最後までついて行ける人はかなり少ないのではないだろうか。 初見では理解できなかったので、何度か読み直す必要があった。 しかし、読み直す価値あり。 1965 年にこの小説が出ていたという事はとにかく評価されるべきだし、発表されてから 58 年経った現在でも色褪せていないのは、流石というべきか。 マルチバースという概念が組み込まれているのが凄すぎる。 圧倒される小説というくくりで言うならば、「三体 Ⅲ」に匹敵する内容と言える。 戦闘妖精・雪風<改> 感想 これも作品としてはかなり古く、初出は 1979 年。44 年前の小説だが、こちらも全く色褪せない作品となっている。 むしろ、現代のように AI が発達している時代だからこそ、エピソードをより身近に感じられるようになっているのではないだろうか。 「ジャム」という謎の存在からの侵攻に抗う人類という構図なのだが、作中の軍人たちが、「果たして人間が戦う必要があるのか?」という疑問を何度も投げかけている。 つまり、完全自動機械で戦った方が効率が良いのではという疑問だ。 しかし、そうするとむしろ今度は機械側が人類の「敵」になりうるという事も考えてしまうのが、人間の抱えている業なのかもしれない。 ラストエピソードでは、その事を暗示する話となっており、考えさせられる。 個人的には、「フェアリィ・冬」のエピソードが好き。 総括 読みやすさという点では、圧倒的に戦闘妖精・雪風の方が読みやすい。果しなき流れの果には、かなり読みづらいと思う。

有名所を三分の一も押さえていない、自称SF好きの感想一覧

SF 小説好き 1480 名に聞いた「絶対に読んどけ」っていう SF 小説ランキングに関する、自分の記録 綺麗にまとまってるのは、増田の方なので、そっちで確認。 https://anond.hatelabo.jp/20230706104954 一応、SF 好きを自称してるけれども、ちゃんと読んでるかどうかを確認した。 個人的な評価 上位 25 位までを評価。 順位 タイトル 著者 感想 1 位 『星を継ぐもの』 J・P・ホーガン 日本人大好き SF でもトップクラスに入る作品。ぶっちぎりで評価されているのも納得。僕も好き。まだ読んだことがない人は読もう 2 位 『夏への扉』 ロバート・A・ハインライン タイムトラベル物の古典として有名。日本では比較的評価が高い作品。星を継ぐものと同じで、日本人好みの SF。僕も好き。ストーリーとしてはベタベタのラブストーリーで、それが嫌いな人は嫌いだと思う。でも僕は好き 3 位 『ハーモニー』 伊藤計劃 新時代のディストピア小説としての最高峰。伊藤計劃が早逝した事が本当に惜しまれる。もっと彼の作品を読みたかった 4 位 『三体』 劉慈欣 ハード SF で、ファーストコンタクト物で、スペースオペラでととにかく SF 好きのための要素を詰め込めるだけ詰め込んだ傑作。僕の中では、2 位作品 5 位 『幼年期の終り』 アーサー・C・クラーク ファーストコンタクト物の超古典。これを読んでおくと、現在の色々なエンターテイメントに影響を与えている要素が盛り込まれている。ラストシーンの美しさと残酷さが素晴らしい 6 位 『新世界より』 貴志祐介 これは SF というよりも、ファンタジーに近い作品だが、しっかりと SF している。前半はかなりゆっくり進むが、後半になるとみるみるうちにその世界観に吸い込まれていくのは貴志祐介の筆力だと思う。アニメ化もされているので、知名度がやたらと高いなという印象。 7 位 『虐殺器官』 伊藤計劃 伊藤計劃の傑作 SF。ハーモニーと甲乙つけがたい。ジョン・ポールという巨悪と戦うさまが描かれているが、SF というより哲学書に近い作品。思想をぶつけ合う作品はおもしれーんだ。ハーモニーの方が現代的ではあるが、個人的に

denops.vim を使って初めてvim-pluginを作った。MarkdownをHTMLに変換してクリップボードにコピーする。

denops.vim を使って初めてプラグインを作った これは Vim 駅伝 7 月 28 日 の記事です。 次回は、7 月 31 日に投稿される予定です。 Markdown ファイルを HTML に変換して、クリップボードにコピーしたい こういう Vim プラグインをずっと探していた。だが、あまりにも需要がないので誰も作っていなかった。 denops-markdown2html だから、作った。 インストール方法 vim-plug の場合は、 Plug 'vim-denops/denops.vim' Plug 'ArcCosine/denops-markdown2html' dein.vim の場合は、 call dein#add('vim-denops/denops.vim') call dein#add('ArcCosine/denops-markdown2html') これでインストール出来る。 その他設定 set clipboard+=unnamed クリップボードを連携させる設定をしておく。 既に設定済みならば、この記述は要らない。 使い方 :DenopsMarkdown2Html このコマンドを実行する事で、カレントバッファの Markdown を HTML に変換してクリップボードにコピーしてくれる。 開発経緯 このブログの読者で、記憶の聡明な方ならば、10 年くらい前に markdown.pl を導入した話を覚えているだろう。当時は、perl の markdown 変換ツールが一番メジャーだった。 それから数年後には、nodejs の marked.js をベースに変換するツールを使っていた。 どちらのケースも、カレントバッファをツール(markdown.pl,marked.js)に渡して、出力結果をクリップボードにコピーするという動きをしていた。 これらの処理には幾つか不満点があった。 一時ファイルを生成していた vimrc に直接書いていてダサかった perl をインストールする必要があった nodejs をインストールした上で、npm install コマンドを最初に実行する必要があった。 一時ファイルを生成していた 一

Sesami4 を MacroDroid で操作する

Sesami4 を MacroDroid で操作する 以前に IFTTT で操作していた Sesami4 だが、IFTTT のアプリの Geofence がほとんど効かなくなっていたため、代替アプリを探していた。 そして、ようやくやりたいことが出来るアプリが見つかった。それが MacroDroid である。 使い方は今まで通りで、トリガーとアクションを設定するだけで良い。 アクションの具体的な設定は、 リクエストメソッド は POST URL には GAS をデプロイした時に発行された URL ( https://script.google.com/macros/s/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/exec)を指定 リダイレクトを許容するにチェック コンテントボディのコンテントタイプに application/json コンテントボディには、 は { "password": "任意のパスワード", "userName": "任意の名前", "action": "unlock" } 任意のパスワードは、エンドポイント認証用ダイジェストの時に指定したパスワード。 userName の名前は sesami に表示される名前なので、適当に action には unlock、lock、toggle のどれかを指定する GAS をトリガーとして使う場合、 リダイレクトを許容する にチェックが入っていないと動作しなかったので、そこだけ注意が必要だ。 それ以外のつまずきポイントはない。 使用感について まず、ちゃんと Geofence が動作しているのがありがたい。 IFTTT は、最初の数回はちゃんと動くのだが、すぐにポンコツ化して全く反応しなくなった。 アプリの作り込みが甘すぎるんじゃないかな。 まあ、IFTTT にとって、アプリの作り込みなんて本質じゃないから、気合い入れて作ってないんだろうけれど。 その点、MacroDroid はこのアプリが命なので、ちゃんと動作するように作られており、

骨董品 Bluetooth keyboard を Android Tablet につなげる

骨董品 Bluetooth keyboard を Android Tablet につなげる。 部屋の中に iGo Think Outside Stowaway Ultra-Slim Keyboard が転がっていた。 LooxU とつなげるために買った気がするけれど、そうでないかもしれない。 そう言えば、このブログは LooxU を購入したのがきっかけで始めたブログだ。 探してみたら 黒歴史 が見つかった。 やはり、人間なんでも書いておくべきである。 自分が持っているのは、iGo ブランドになった、Stowaway Ultra-Slim Keyboard で、多分この記事を書いて数カ月後くらいに手に入れたのだろう。明確な記憶が無いが、確か個人輸入で購入した気がする。 あの頃は大分チャレンジャブルだったなぁ。 という訳で、思い入れも深く、中々捨てられなかった一品。 という事で、同じく部屋に転がっている Android Tablet に繋いでみた。 まず、電源の入れ方とか、Bluetooth 待機モードとか色々忘れて、英語圏のマニュアルを探し出すことから始めた。 簡単にまとめると 電源の on/off→ スライドして開ければ on、閉じれば off。 Bluetooth 待機モードへの入り方 →Ctrl+Blue Fn+Green Fn→ 緑のランプが点滅すれば、OK。 こんな感じ。 後は適度に Android の設定をすれば普通に繋がって普通に使えた。 ヤバい。 この Stowaway Ultra-Slim Keyboard は、取外し可能な PDA 用のスタンドが付いているのが一番のポイント。 PDA スタンドというゾンビが令和の時代になって蘇るだなんて誰が想像しただろうか、いや、出来ない。 9 割ぐらいは冗談として、1 割ぐらいはマジだ。 実際にタイピングテストをしてみたけれど、存外悪くない。 キー配列が、印字されているのとアンマッチだが、そこは脳内キー配列を覚えればいいので、慣れるまで打ち込めば良い。 それにしても、2007 年、あるいは 2008 年に購入した Bluetooth Keyboard が未だに使えることに感動する。 15 年間という漬け込み時間を経由して、奴は蘇った。 15 年間も共通で使えるプロトコルが維持されてい

ラーメン二郎と富士丸の違い

ラーメン二郎と富士丸の違い ラーメン二郎と聞くと、どんなラーメンをイメージするだろうか。 大量の野菜、背脂、ニンニクとブタ、そして極太麺と濃厚スープ。そんなイメージが定着している。 ラーメン二郎は二郎という食べ物で、ラーメンではないという言葉が飛び交うほどだ。 そして、二郎インスパイアと呼ばれるラーメンも数多く出ている。 2023 年現在、セブンイレブンで売られているのは、まさに二郎インスパイアのラーメン。 本家ほどパワーがある訳では無いが、普通の人が食べるとかなりパンチの強いラーメンだ。 2010 年代以降、二郎とそのインスパイア系はその数を増やし、メジャーなラーメンとしての地位を確立した。 食べたことがない人も、そのラーメンがどういう形なのかは、ネット経由、あるいはテレビ経由、雑誌経由で見たことがあるだろう。 そんなインスパイア系でもひときわ異彩を放つのが「富士丸」系列である。 ラーメン二郎のインスパイアで最も歴史が深く、また二郎系との区別が難しいラーメンだ。 もちろん、一般の方はその差について理解しなくても特段問題は無いが、個人的にしっかりと区別しておきたかったので、ここに記録する。 見た目の比較 まず、ラーメン二郎で検索すると、下図のようなラーメンが出てくる。 多くの人がイメージするラーメン二郎の写真だ。 山のように盛られた野菜、分厚すぎるブタ、ニンニク、極太麺。 こういった特徴がある。 次に、富士丸で検索すると、下図のようなラーメンが出てくる。 ぱっと見、違いをあまり感じないかもしれないが、分かりやすい違いとして ゆで卵 の有無を挙げられる。 ラーメン二郎には、ゆで卵はついてこない。しかし、富士丸ではゆで卵が標準装備だ。 これは余談だが、富士丸は、麺少なめを頼むとサービスで生卵か、ヤサイ増しか、ブタカスアブラのどれかを選ぶことが出来る。 個人的には生卵オススメ。 それ以外のパーツに関しては、二郎準拠と言っても構わないだろう。 さて、ここからが細かな違いについて。 まず、冒頭の画像にあるように、Yahoo 知恵袋では、 ヤサイ に違いがあると書いてある。 確かに、二郎はシャキシャキ系の茹で加減なのに対し、富士丸はクタクタ系の茹で加減だ。 どちらの場合も美味しいが、個人的にはクタヤサイの方が好み。 アブラ に関してはどちらも似

Xiaomi Smart Band 7を購入した

Xiaomi Smart Band 7を購入した 実は、数年前から、Xiaomi Smart Band 5を使っていた。Amazonの購入履歴を見てみたら、2021年5月20日という事で、約2年間使いっぱなしだった事が分かる。 最近、電池の寿命が怪しくなってきたので、新たに購入するに至った。 Smart Bandのいいところ 2年間使っていて感じたのだが、とにかくSmart Bandは充電をほぼしなくても大丈夫というのが良い。 毎日充電というのはとかく面倒くさいものだが、XiaomiのSmart Bandは2週間くらいほったらかしにしても、電池が持つ。 最初は軽い気持ちで時計代わりみたいにして使っていたが、今となっては生活になくてはならないものになっている。 万歩計としても使えるし、朝のアラームのバイブレーションにより起床など、様々な点で役立ってくれている。 これがたったの5,000円くらいで帰るのは資本主義社会の恩恵と言えよう(歪みというべきか……)。 何にせよ、とても便利な時計として使えるので、まだ購入したことがない人はぜひとも購入をオススメする。 ちなみに これまで使ってたSmart Band 5だが、1週間持たなくなってきた。2ヶ月くらい前までは普通に電池が持っていたが、ここ最近になって急に電池がへたってきたイメージだ。 多分、電池寿命的に2年くらいしか持たないのかもしれない。ただ、2年も持つならば、これだけ安い代物としてはお買い得な部類だと思う。 ちなみに、電池よりも先にへたるのは「バンド部分」であり、これに関しては予め予備を購入する事をオススメする。 大体10ヶ月~1年くらいでぶっ壊れるので、その辺も予算に入れたほうが良いと思う。 でも、馬鹿みたいに高いApple Watchよりもコストパフォーマンスが死ぬほど高いので、Apple WatchでのSuicaピッがやりたいんだ!という人以外はこのSmart Bandで十二分に過ごせると思う。 ちなみに、以前に使っていた5の方が値上がりしていて、7の方が安く買えるのも、色々バグってるのを感じる。 世界経済はめちゃくちゃや……(絶句)。

Next.js 13 以降で PWA を有効にするその2(開発環境にも対応)

Next.js 13 以降で PWA を有効にするその2 多分、その内 next-pwa が対応するので、待ってれば大丈夫だと思うが、どうしても今すぐに対応したい人用のパッチコード。 バージョンは、 next ^13.4.2 next-pwa ^5.6.0 となっている。 修正するファイルは、next.config.js next.config.js /** @type {import('next').NextConfig} */ const path = require("path"); const isDev = process.env.NODE_ENV !== "production"; const withPWA = require("next-pwa")({ dest: "public", disable: isDev, buildExcludes: ["app-build-manifest.json"], }); const generateAppDirEntry = (entry) => { const packagePath = require.resolve("next-pwa"); const packageDirectory = path.dirname(packagePath); const registerJs = path.join(packageDirectory, "register.js"); return entry().then((entries) => { // Register SW on App directory, solution: https://github.com/shadowwalker/next-pwa/pull/427 if (entries["main-app"] && !entries["main-app"].includes(registerJs)) {

ssh config で複数の秘密鍵を切り分ける方

ssh config で複数の秘密鍵を切り分ける方法 ようやく、納得の行くやり方が出来たのでメモ。 まずは設定 ~/.ssh/config に、下記の設定をする。 # github プライベートアカウント Host github.com HostName github.com User git IdentityFile ~/.ssh/githubkey1 IdentitiesOnly yes # github 仕事用アカウント Host github.com.sub HostName github.com User git Port 22 IdentityFile ~/.ssh/githubkey2 TCPKeepAlive yes IdentitiesOnly yes 解説 ポイントは、Host 名に必ず、トップレベルドメインまで入れる事。 Host github ---> NG Host github.com ---> OK Host github.com.subdomain --->OK ちなみに、最近まで一番上のトップレベルドメイン省略で設定していたせいで、何にも参照していない状態だった(辛い)。 ~/.ssh/config に設定する際には、必ずトップレベルドメインまで指定しましょう。 さて、自分は仕事の関係上、プライベートアカウントと仕事用アカウントを2つに分けて運用している。 あとはこれを使い分けるために色々やってるのだが、仕事用アカウントのリモートレポジトリを下記のように設定している origin git@github.com.sub:仕事用アカウント名/レポジトリ名.git ポイントは、 git@github.com.sub で開始している所。 こうする事で、仕事用アカウントのレポジトリは、仕事用の秘密鍵を参照するようになる。 便利。 この設定は、クローン時に下記のコマンドを実行すれば良い git clone git@github.com.sub:仕事用アカウント名/レポジトリ名.git その他設定 コミットする名前を変えていないならば問題ないが、もし変えたい場合、下記のように変更する cd {仕事用アカウント名/レポジトリ名} git config --loc

Next.js 13 以降で PWA を有効にする

Next.js 13 以降で PWA を有効にする 2023/5/28追記: さらに良い設定を、新しい記事に書いたので、そちらを参照の事。 多分、その内 next-pwa が対応するので、待ってれば大丈夫だと思うが、どうしても今すぐに対応したい人用のパッチコード。 バージョンは、 next ^13.4.2 next-pwa ^5.6.0 となっている。 修正するファイルは、next.config.js next.config.js /** @type {import('next').NextConfig} */ const path = require("path"); const isDev = process.env.NODE_ENV !== "production"; const withPWA = require("next-pwa")({ dest: "public", disable: isDev, exclude: [ // add buildExcludes here ({ asset, compilation }) => { if ( asset.name.startsWith("server/") || asset.name.match( /^((app-|^)build-manifest\.json|react-loadable-manifest\.json)$/ ) ) { return true; } if (isDev && !asset.name.startsWith("static/runtime/")) { return true; } return false

ユーザ体験に基づく、漫画Viewerの分析

漫画 Viewer について ここ数年、インターネット漫画は大きく様変わりした。 新都社という素人がツギハギして作っていた漫画サイトから、出版社の公式漫画サイトが乱立するという状況になっている。 色々な漫画 Viewer が登場したが、最終的にはある程度の種類に落ち着いた形になっている。 自分は基本的に PC で漫画を読んでいるが、スマホから漫画を読む人も多いだろう。 アプリをインストールして読むというスタイルが今は普通なのかもしれない。 自分は、アプリを入れるのが死ぬほど嫌なので、基本 PC で読める漫画のみ読むようにしている。 面白ければ、電子版書籍を購入して、一応ある程度は還元するようにしているつもり。 まあ、でも実際には企業プロモーションにタダ乗りしているというのが実情だ。 漫画 Viewer に関しては、はてなが作っている GigaViewer が一番読みやすいと感じている。 しかし、漫画 Viewer にも色々タイプがあるので、個人的な分析と感想をまとめたいと思う。 多分、Twitter か何かに書いたかもしれないけれど、ブログに書いておきたいなと思ったので、書く。 GigaViewer スタイル まず、王道の GigaViewer スタイル。 これはとにかく読みやすい。PC の見開きに対応、スマホでの表示にも対応、過去話へのリンクが画面下部にまとまっている事や、コメントを見る事が出来るなど、機能面での充実も素晴らしい。 唯一、ダサいなと思うのはスマホ版で全画面表示した後に出てくる ✕ ボタン。あれはマジでダサい。 CSS の border で表現してると思うのだが、やたらと左下に長く表示される(一瞬だが)。 データ量が増えるかもしれないが、svg に置き換えて欲しいというのが本音だ。 GigaViewer スタイルの一番良いのは、単話へのアクセスが早いこと。すぐに読み進められるのが良い。 ページめくりにはクリックが必要だが、それがそこまで気にならないので、全部の漫画がこのスタイルになってくれたら良いのにといつも思っている。 独自の漫画 Viewer を作ってメンテナスするより、GigaViewer を導入したほうが絶対に良い。 あと、GigaViewer は地味に画像をバラバラにして表示するという技術を採用しているので、画像を直接抜き取られて

blueskyを始めて、独自ドメインを設定した

bluesky始めました 今話題の bluesky の招待コードをもらうことが出来たので、blueskyを始めました。 画面としてはこんな感じ。 見慣れたTwitterのUIで作られています。 これ、アカウントを作ると最初は、「ユーザ名.bsky.social」みたいになるのですが、独自ドメインを持っている人は、自分のドメインを設定することが出来ます。 以下、その設定方法のメモです。 Blueskyのスクリーンネームに独自ドメインを設定する方法 これから仕様が変わるかもしれませんが、2023年4月現在、PCからも blueskyへのアクセスが出来ます 。このページに招待コードを入れて、アカウントを作った後の話です。 アカウント作成にアプリはなくても大丈夫です。 さて、スクリーンネームに独自ドメインを設定する方法ですが、「Settings→Change my handle→”I have my own domain"」とクリックすると下記の画面が表示されます。 Enter the domain want to use と書いてあるフィールドに、自分が持っているドメインを入力すると、下部にどういうDNS設定をすればいいかが表示されます。 TXTレコードのサブドメインとして_atprotoを設定して、did=did:plc:ほにゃららみたいな値を設定すればいいだけです。 Value-domainで設定する 自分は、Value-domainを使っているので、こういう感じで一番最後に設定しました。 他のDNSサーバでも同じだと思いますが、TXTレコードに txt _atproto did=did:plc:ほにゃらら と言った感じで、設定すれば良いです。 浸透したかどうかを whatsmydns で確認後、Blueskyの画面に戻り、Verify DNS RecordとすればOK。 ちゃんと浸透していればスクリーンネームが更新されます。 blueskyの感想 まだ始めてから数日なので、雰囲気を掴み取れてないのですが、mastodonと違って、TLは自分がフォローした人しか流れてこないので、相当に穏やかな流れになっています。 フォローしていない人の情報を眺めてカオスな感じのmastodonもありますし、まったりとしたローカルタイムライ

Vim のテキストオブジェクトと surround.vim で効率よく入力

Vim のテキストオブジェクトと surround.vim で効率よく入力 これは Vim 駅伝 の 13 本目の記事です。 テキストオブジェクトとは 皆さんは、テキストオブジェクトを活用しているでしょうか。 私は、特に HTML を書く時にテキストオブジェクトを活用しています。 テキストオブジェクトは、Vim7 から導入された新しい概念であり、記号などで囲まれたテキストをオブジェクトとして扱うことができる、Vim の機能です。 具体的には、カッコやダブルクオーテーションやタグ等で囲まれているテキストの削除、コピー、変更を簡単に行なう事が出来るようになります。 実際にテキストオブジェクトを使う場面 では、実例を考えてみましょう 例1)記号で囲われたテキストの中身を削除する 例えば、下記のようなコードがあったとします。 function (arg1,arg2,arg3) { } (arg1,arg2,arg3)と書かれた所を一気に削除したい事がありますよね。 通常の削除処理では dwdwdwdw と連打して消すとか、 5dw で消すというやり方が思い浮かぶかもしれませんが、テキストオブジェクトの場合、下記の操作で削除出来ます。 di( または di) 実際に、上記コードをコピペして、やってみてください。 ()内であればどこででもこの操作は有効です。 同じような例として const str = "Hello, World"; のように、ダブルクオーテーションで囲まれた文字列を削除したい場合は、 di" で削除する事が出来ます。 例2)記号で囲われたテキストの中身を変更する 例えば、下記のようなコードがあったとします。 function (arg1,arg2,arg3) { } (arg1,arg2,arg3)と書かれた所を一気に変更したい事がありますよね(デジャブかな?)。 そんな場合、下記の操作で変更出来ます。 ci( と入力すると、()の内側を消して、入力モードになります。 そのままタイプすれば、中身を変更することが出来ます。 同じような例として <h1>sample title</h1> のように、タグで囲まれた文字列を変更したい場合は、 cit と入力すると、

帰宅した時に、Sesami4 を自動解錠するよう IFTTT で操作する

Sesami4 を IFTTT で操作する 先日、スマートロックの Sesami4 を購入した 。 使い始めて 1 ヶ月ちょいになり、不満点が出てきた。 手ぶらで解錠がロクに効かない Android のウィジェットが常時表示はウザい オートロックを有効にしてると締め出される(当たり前だよなぁ!?) と言った感じ。 この中では特に手ぶらで解錠がロクに効かないのには相当不満があった。 原因はシンプルで、BLE(Bluetooth Low Energy)が上手く動作していなかった。 観察した結果だが、動作する時はちゃんと動作するが、ダメな時はとことんダメ。 Sesami の作り込みが甘いのか、純粋に Android の反応が悪いだけなのか、どちらなのか判断は付けられない。 その両方である可能性もあるが、いずれにせよこれでは快適な生活が送れない。 Sesami は API を公開しているので、それを使ってリモートコントロールする事にした。 あ、一応 Sesami の WiFi モジュール は導入している前提。 これがないと今回の Tips は使えないので、気をつけるように。 今回は スマートロックのセサミをさらに便利にする(アレクサからパスコードレスで解錠&オートロック化) の記事をそのままパクってるだけなので、その記事を読めば概ね同じことが出来る。 Sesami API キー取得 公式ページ にアクセスし、メールアドレスを入力する。 認証コードが送られてくるので、それを入力すると API 取得画面が表示される。 スマホアプリの「このセサミの鍵をシェア」から QR コードのスクリーンショットを撮って、API 取得画面にアップロードする。 そうする事で、デバイスの UUID と SecretKey が取得出来る。 API キー デバイスの UUID デバイスの SecretKey GAS のエンドポイント認証用のハッシュ値を用意する 下記のコマンドを実行して、認証用ハッシュ値を取得する。 任意のパスワードは、IFTTT との連携に使用するので、メモしておく事 $ echo -n '任意のパスワード' | shasum -a 512 自分は WSL2 上で実行して取得した。 SHA512 Onl

WSL2にfishを導入した

WSL2にfishを導入した 最近、WSL2をカスタマイズするのにハマっている。 カスタマイズを始めると、色々とやりたくなるのは開発環境構築あるあるで、以前から気になっていた fish を導入することにした。 fish のインストール sudo apt install -y fish aptで入れるだけなので、簡単。 chsh which fishでパスを確認し、 chsh を実行する。 自分の場合は、「/usr/bin/fish」にインストールされていた。 fisher のインストール fishのプラグインマネージャーにはfisherを採用 curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher これもワンライナーでインストール出来るので楽ちん。 fisherプラグインを入れる テーマ まず、テーマを入れる。 fisher install oh-my-fish/theme-bobthefish これで、いい感じのテーマが入る。 今使っているLightlineライクなテーマで個人的には気にいっている。 もし、文字化けするようであれば、weztermのフォントを変えればOK。 weztermの設定に関しては、 前の記事 に書いてある。 z 補完を色々とやってくれるzも入れた。 fisher install jethrokuan/z 「z ディレクトリ名」を入力した後、TABキーで補完してエンター押せば一発移動してくれるので超便利。 オススメ。 他にも何かオススメのプラグインがあったら教えてください。 環境変数を適用する このままだと、何故かdenoを認識してくれなかったので、環境変数を適用する。 ファイルの場所は、 ~/.config/fish/config.fish 。 if status is-interactive # Commands to run in interactive sessions can go here # deno set -x DENO_INSTALL

Windows11 on WSL2 + wezterm + Neovim = 最強開発環境

Windows11 on WSL2 + wezterm + Neovim = 最強開発環境 これは、恥を忍んで書いている。 以下の点を守れば、Neovim使いにとって最強の開発環境を手に入れることができる。 開発用ディレクトリをWSL内に入れる Terminalをweztermにする wezterm内でNeovimを使う 開発用ディレクトリの位置 さて、まずは開発用ディレクトリの位置に関してだが、これはWSL内に入れると非常に快適に動作してくれる。 何を当たり前の事をと思われるかもしれないが、案外気が付かずに開発している人もいるかもしれないので、テキスト化する。 実は、自分は、 /mnt/d/hogehoge のようなディレクトリ下に開発用ディレクトリを置いていた(今もいくつか置いてある)。 これで問題なく開発できるプロジェクトもあるが、WSL経由でやろうとすると 死ぬほど遅い 開発体験になる。 もう既に識者の方は気がついていると思うが、/mnt/cや/mnt/d以下のアクセスはWindows経由でのアクセスになる。つまり、wsl→仮想ネットワーク→Windowsという遠回りをしてファイルにアクセスしているのと同義であった。 これは、非常に遅い開発体験になっても仕方がない。 自分は、開発ディレクトリを /home/ユーザ名/develop 以下に移動して、めちゃくちゃ快適な開発体験が出来るようになった。 yarn installがやけに遅かったり、yarn devでの起動が異様に遅かったのは、開発ディレクトリの位置が悪かったからという非常にお粗末な環境設定のせいだった。 もし、WSLで開発しようと思っている人は、ちゃんとWSL内にファイルを置いて開発する事。 試してないけれど、シンボリックリンクで/mnt/cとか/mnt/dに繋ぐと同じように遅延が発生すると思われるので、絶対辞めるように。 ちなみに、この情報は英語圏には大量に出回っており、既知の事実として知れ渡っている。 なんてこったい。 Weztermの設定 Cross Platformで使えるWeztermが非常に良い。 自分はとりあえず最小構成で使うようにしている。 local wezterm = require 'wezterm' local act = wez