最近のこと202406某日

Page content

最近のこと。

人生で初めての胃カメラをやった話(と、健康って大事だよねという話)

5月の終わりごろに、会社の年次健康診断で、人生初めて「胃カメラ」を体験してきた。本当は「寝てる間に終わる」みたいな麻酔ありきの施術(フェデーション?とかいうらしい)が理想だったんだが、そのクリニックには設備がないし、近隣の関連クリニックには設備はあるんだが空きがない、ということで、もう仕方ないから覚悟を決めることにした。最初は口から入れるってことになってたんだが、当日行ってから「鼻から入れる方に空きが出たんでどうします?鼻からいれるほうがオェツてることは少ないです」って聞かれたので「じゃあ鼻で…」ってことで鼻からにした。キツかったのは、事前に鼻に注入される麻酔で、鼻血を出にくくするのと喉の炎症を抑えるのと、とかで2種類くらいブチ込まれたんだが、これがまず初っ端結構きつかったのと、あとカメラが鼻から入って喉の奥を通っていくところが結構きつかったのと、大きくはこの2点か。ただ、カメラは喉通り過ぎると別にそこまで違和感はなくて、なんというか「デカ目のものを飲み込んだ結果喉にそれが詰まってる感じ」みたいな感覚が継続するくらいで、「きつい」って感想でもなかった(不快感はあるが)。あと、胃になんか液体流し込まれたり(胃液を洗浄する?とかなんとか)、空気入れたりするところで、少しげっぷでそうになったりはしたが、まぁでもそんな程度。総じて、最初に漠然と想像していた「きつい診察」っていうイメージからすると、別にそこまできついもんでもないなと、終わった今となって振り返るとそう思う。バリウム飲んでその後半日くらい下痢が続くのに比べると、むしろキツイのがその場で終わる分こっちのほうが楽なんじゃないか説すらある。まぁできればもうやりたくないけど。。ちなみに予想していた通りというか「非常に健康な胃です」とのことだった。ありがとうございます。しかし特になんの所見もみつからないと、胃にカメラ通した甲斐がないというか、「胃カメラ損」みたいな感じがしてしまう。まあ何もないのはいいことなんだけど…

しかし、ついに胃カメラやるような歳になっちゃったんだなーとしみじみ思った。若いころの健康診断はもっと簡素で、血圧計って血抜いてションベン採取して身長体重視力はかって軽くお医者さんと話して(診察)、くらいで終わりだったし、そもそも別に大した所見も出ないから「なんだよもう面倒くせぇな」くらいにしか思ってなかった。昔、残業しまくってたときは、年次の健康診断に加えて「長時間残業者専用健康診断」があって、このかったるいイベントを毎年最低2回はやらされてたので、余計にそういう思いが強かった。(そんなことしてる場合じゃねえんだよ仕事させろボケが、とか思ってた。社畜すぎる)最近、歳くってからは、こちらの意思に関係なく検査内容が重厚になっていってるし、実際のところ若いころほど健康を軽視しなくなっており、ちゃんと診てもらえるなら診てほしいという思いが強くなっている。この心境の変化は、やはり家族ができたからというのが一番大きいんだろうなあと思う。幸いにして、3年ほど前にダイエットして以降、タニタの体重計では肉体年齢=実年齢-15歳をキープし続けているし(つーか仕様上これが下限だと思う)、実際毎日筋トレしたり定期的にランニングしたりしてるおかげもあってか、今回の健康診断でも大した所見は見られず、今の所健康を維持しているが、加齢による衰え(そこからくる肉体の綻び)はどう頑張っても防ぎようがないからな。今後も大病患わずに健康でいたいものである。

SNSにお金を払ってみた話

ちょっと興味本位で、6月の中旬頃に、インスタグラムで投稿の「宣伝」というやつをやってみた。どれでもよかったんだがとりあえずこれを選んだ。今見てもらえればわかると思うのだが、これが100いいね以上ついてて、趣味で描いたイラストについた「いいね」数でいえば、全SNS通じて過去最高である。インスタの投稿内でも過去最高。まぁ、この程度の「いいね」は別に宣伝なんかしなくても普通に付く人いるだろうから、数値自体はそんなに凄いことではないんだろうけど、しかし自身の描いた絵が世間的に100人以上の目に留まって「いいね」と言ってもらえたというのは、率直に言ってうれしい。ただ、この体験でそれ以上に発見したというか、収穫があったのは、この辺のSNSの「拡散機能」は、 「金払ってようやくまともに機能する」 のだろう、ということである。逆に言うと 「無料ユーザーの投稿はほとんど拡散されない」 というか、もっとはっきり言っちゃうと 「拡散しないように意図的に制御されている」 といっても過言ではないと思う。結果的に100以上の「いいね」を獲得したということは、この投稿に「いいね」してくれる人はSNS上にちゃんと存在しているのにも関わらず、今までその人たちの目に触れてこなかったという事実を表している。考えてみれば当たり前だが、他に金払って「宣伝」している人たちがいたとすれば、サービス的には当然その人たちの投稿を優先的に表示し、無料ユーザーの投稿は後回しにするので、結果的にほとんどだれの目にも触れずに消滅していく、という流れなのだ。恐らく。必至にハッシュタグつけてみても、金払わずに使ってるユーザーの投稿なんて全然意味がないのだ。なんなら無料ユーザーの投稿についてるハッシュタグは意図的に機能しない(ハッシュタグで検索かけてもひっかからない)ように仕組んでる可能性すらあると思う。(これが上で「過言ではない」といった部分)

機能の仕様は知らないのだが、この体験を通じてそういう認識に至った。よくよく考えれば当たり前なんだが、無料で使えることが前提のサービスで、長らく無料で使ってきた分、その辺の認識が薄れていた。もっとも、仮に上記の予想が正しいとして(程度の違いはあれどおおむね予想は合っているとは思う)、それを非難する気は全くない。サービスの運営側の視点では、マネタイズの観点から見て別に何も間違ったことはしておらず、至極普通の考え方である。非常にドライに線引きする(だろうと思われる)あたりは米国のサービスっぽさをはっきり感じるし、むしろその辺が個人的にクリアになったことで「あ~なるほど」って感じでスッキリ腹落ちできた。強いて言うならその辺ちゃんと仕様としてどこかに公開しておいたほうがいいとは思うものの、仮に公開するにしても具体的な挙動を明文化できない部分な気がするし、万が一ドキュメントになってたとしてもそれを100%信用するのか?って自問すると首を縦に振りづらい部分があるのも確かでw、まあ結論からいって仕様の明文化にはそれほど期待はしていない。今回の体験を通じて自分の中でその辺の挙動が認識(理解)できたことだけで十分だし、そしてそれは自身のイラストに100以上もの「いいね」がついたことより個人的には大きな収穫であった。

で、この挙動は、おそらくTwitterもそうなんだろうと思うに至った。そういえばXが有料オプションを作ったくらいの頃から、それ以前に比べて妙に「いいね」とかの数が減った気がする。今ほどイラスト描いてたわけではないが、前はもっとどうでもいい呟きとかにも今より大きな反応があった気がする(あくまで肌感覚ではあるが)。つまり、おそらく有料ユーザーの投稿が優先されているのだ。これも考えてみれば当たり前なんだが。というわけで、近いうちにTwitterも有料オプションを申し込んでみようと思う。ただ、ここに関していうと、別にバズりたいとかそういう欲望があるわけじゃなく、どちらかというと「金払った場合と無料の場合との動作差異が知りたい」という好奇心のほうが強い。結果バズったらよいなと思ったりもするが、それは副産物である。単純に挙動の差が気になる。効果が見られなければすぐに解約するだろうし(そのため1か月プランで申し込む予定)、効果がありそうならしばらく続けるかもしれない。その辺は追々。近日中にやってみたいと思う。

関連として、インスタの投稿の宣伝も、今後はちょいちょいやっていこうと思う。宣伝かませば結構いろんな人の目に触れることはわかったので、特にイラスト関連で人の目を向けさせてみたい。イラストを見てもらいたいという欲もあるが、絵描きとしての横のつながりや、俺自身が好きな絵師を見つけたいという意図のほうがどちらかというと大きい。とはいえ、なんでもかんでもポンポン宣伝できるほど金が潤沢にあるわけでもないので、気まぐれでぽつぽつやっていく感じになるとは思う。自作漫画RESIGN THREATの更新投稿を宣伝するのもやってみたい。どれくらい流入が増えるのか楽しみだ。これも「漫画を読んでほしい」というよりアクセス数の変化を確認したいという実験的目的のほうが大きい。総じて、SNSに金を落とすことの目的は自分の中では「ITサービスの実験」って感じなのだ。HerokuやCloudflareに金払ってるのと感覚的には近いものがある。まぁ、趣味にお金払うってのは究極的にはそういうことだよな。ま、そんな感じで、SNSへお金を使うというのを個人で楽しむ範囲でぼちぼちやっていきたいなと思っているところなのである。

自作漫画サイトをリニューアルしている件

自作漫画サイトRESIGN THREAT、ホスティング先としてはVercel使ってるんだけど、アクセス解析のために導入していたVercel Analyticsが限界を迎えて、イベントの収集がストップしてしまった。これ「収集開始からの累計イベント数」がリミットの規定値なんだね。ここに書いてある。よく読んでなかった俺が悪いんだが「月初でリセット」とかそんなんだと勝手に思っていた。自分に都合よく解釈してしまっていた。。放っておけば1週間で復活するらしいけど、この制限がある以上そのうちまた同じ事態に陥るのは自明である。ので、回避手段を考えることになった。

で、取り急ぎ一時的にGoogle Analyticsを導入した。しかし、やはりVercel Analyticsほどの直感的なUIではないので、Vercel Analyticsに慣れてる俺にとってはいまいち使いづらい。Google Analyticsは、まあ、いいんだけど、機能が揃いすぎてて正直「イキスギィ!」って感じなんだ。正直ゴチャゴチャしすぎていて使いこなせない。。(その知識もない)それと、「(Analiticsを含めて)1つのプラットフォームで完結する」という点が魅力だったのに、アクセス解析のためにいちいちVercelとGoogleを両方見なきゃいけないのが個人的に面倒くさい。よくよく考えると最初に作ってからちょっと時間が経過してしまっており(約2年くらい)、Next.jsやreactのバージョンも少し古いので、これを機にリニューアルすっかという気持ちになった。長くなったが、ここまでが経緯。で、リニューアルの開発に着手した。

今回のリニューアルで計画している内容は主に以下のポイントである。

  1. App Routerを採用する。(現行はPages Router)このサイトは基本的にSSGで構成されており、ページビルドの元データを同リポジトリの特定のフォルダ配下にJSONファイルとして格納しており、ビルド時に(getStatisPropsで)fs.readFileSyncで読み込んでページを生成しているつくりである。ただ、App Routerで、テナーの投票サイトを作るときにこれを試したんだが、use clientを付けてるページだとfs.readFileSyncが使えず、同じ方式でのビルドが実装できない悩みに直面し、そこで詰んでいる。(この記事の中盤辺りにその辺の悩みをつらつら書いてるのでよかったら読んでください)今回のリニューアルでこの問題をクリアしすることを目的とする。
  2. ホスティングをCloudflare Pagesに乗せ換える。ついでに画像置き場として利用しているオブジェクトストレージもS3からR2に移行する。個人的には、「Cloudflare Pagesは静的サイトのホスティングにのみ対応」という認識だったのだが、どうも色々調べてみるとNext.jsのSSRページ(のようなサーバーサイド処理)の実行環境も備えているらしい。かつ、CloudflareにはWeb Analyticsも備わっているため、これによりサイトの運用が特定のプラットフォームで完結するようになる。Cloudflare Web Analyticsはこのブログで使ってるが、Vercel Analyticsほどではないものの、十分直感的なUIを備えており、Google Analyticsほどゴチャゴチャしておらず、個人的に気にいってるサービスである。Vercel Analyicsが使えなくなったとき、Google Analyticsにする前に一時的に候補にあがったくらいである。ある意味これがCloudflareに移行するきっかけと言っても過言ではない。まぁ、一番大きいのは技術的好奇心によるところなのだが…
  3. 上記1.2.以外では、以前やった筋トレアプリの作り直しみたいなガチったリニューアルはしない。現行資産は可能な限りそのまま再利用する。現行で課題や問題がありそうな箇所、Next.jsやreact(特にreact)のバージョンアップに伴う修正はするが、それ以外なら基本的に手を出さない。なのでフロント側のデザインは(可能なら)何も変わらないまま作り変える予定である。これは単純に面倒くさいからという理由もあるが、今回は1.2.にかける思い(1.2.をやりたいという気持ち)が、現行のコードの改造より個人的に勝っており、そこに手を付ける気がそもそもあまり起きていない。現行のデザインが完膚なきまでに最高で、もはや手を付ける余地などない完成形だというつもりは全くないんだが、そこを改善するためにかける時間は、1.2.に使いたい。1.2.が終わってから腰を落ち着かせてゆっくりやりたい、という感じ。

で、既にリニューアル作業に着手している。ただ、上記はあくまで計画段階の想定であって、今後の状況によっては見直す可能性もある。なんでこんな弱気なこと言ってるかというと、上記の想定が早くもずれてきているからである(特に3.)。現状をかいつまんで話すと…

  • まず1.の、「App Routerでサーバー上のJSONファイル読んでSSGページつくるのってどうすりゃいいんだ?use clientつけてるとfs.readFileSync使えないんだが?」だが、これはおそらく解決した。要するにJSONが読み込めればいいわけなので、この場合は別にfs.readFileSyncなんか使わずにimport j from './hogehoge.json';で事足りる。実際、それで既に数ページ実装できている。というかそんなこと言ったら現行もそれで良かったことになり、なんでfs.readFileSyncなんか使ってたんだろうという気持ちになったんだが、当時開発中に、どこかのブログでやってたことをそのまま丸パクリして実装していたので疑問に思わなかったのだろう。というわけで、この方式で実装を進めている。
  • Cloudflare PagesにNext.jsを乗せる場合のガイドはここに紹介されているので、基本これに沿って行う。基本的にこれに倣うだけで単純なNext.jsのアプリでかつCloudflare Pagesに乗せて動くものはすぐ作れる。D2やR2などのバックエンド系のサービス使う場合は少し追加の処置が必要になるっぽいが、ここは後程。使うとしてもR2だけであるし、別にここで紹介されているような「バインド」とかいう機能も別に使わなくてもできるので、あまり気にしていない。なお、これで作ったプロジェクトも、ローカルでyarn buildでビルドできるし、yarn devでローカルにスタンドアロン環境を立ち上げて確認可能である。このサイトはDBを使わないので、これで十分開発できる。つまり基本的にただのNext.jsのアプリなので(create-next-appで作ったプロジェクトにCloudflare都合のいくつかのパッケージ、Wranglerとか、それ関連の設定ファイル等がくっついただけっぽいので)、おそらくVercelとかに乗せてもそのまま動く。と思う。(試してないのでやってないけど)
  • Cloudflare Pagesで今の所よくわかってない部分が、「Functionsの実行制限」だ。このテのやつって無制限で呼び出し放題ってわけでもないはずなので、容量なり回数なりで何かしらlimitがあるんだと思うんだが、調べてみてもそれっぽい制限に関して明記がない。具体的に制限値はいくつなのか?また、制限を超えたらどういう動きをするのか?が不明。個人的にこれが結構ネックで、これさえなければCloudflare Pagesを歓迎したいのだが、これのせいでホスティング環境としてCloudflare Pagesを選ぶことに二の足を踏んでいる。つまり、ホスティング環境は変わる可能性がある。ブログみたいに、完全に静的コンテンツONLYでFunctionsなんか使いませんって話なら気にしないんだが、このサイトは、9割がたSSGページではあるものの、暗号解読をする箇所など一部でAPIを使っており、それがFunctionsを使用する扱いになるので、気にせざるを得ない。まぁでも、悲しいかなそんなに大量の訪問者がいるサイトでもないのでw、制限があったとしてもそれに払しょくするほどのFunctionsのコールがあることはないだろうと踏んでおり、この辺は乗せた後に考えるのでもいいかなー、と思っている。Vercelも制限あるけど、気にせず使い続けてるしな。
  • 上記3.に関してだが、現時点で直近困ったのが、react-swipeable-viewsのdeprecationだ。今回、Cloudflare Pagesに乗せる用に新しくNext.jsのプロジェクトを作ったのだが、これによりNext.jsとReactが最新までバージョンアップしたため("next": "^14.2.4""react": "^18")、react-swipeable-viewsを使ったページがビルドできなくなった。以下のようなエラーが出る。
    npm ERR! Could not resolve dependency:
    npm ERR! peer react@"^15.3.0 || ^16.0.0 || ^17.0.0" from [email protected]
    npm ERR! node_modules/react-swipeable-views
    npm ERR!   react-swipeable-views@"^0.14.0" from the root project
    
    知らなかったのだが、react-swipeable-viewsは2022年にdeprecationになってるらしい。こちらのQiitaの記事で知った。なんてこった。まぁ知らずに塩漬けにしてきた俺が悪いんだが…そんなわけなのでここはライブラリ削除して別の方法で作り変えるしかなくなっており、早くも「現行資産は可能な限りそのまま再利用する。」という目論見が崩れている。これはページ内に複数暗号がある場合に暗号の切り替えをするのに使ってたライブラリで、PCでもモバイルでも直感的に同じような動きが取れて好きだった。このQiitaに挙げられているようにSwiperに移行してもいいのだが、この記事読む限り使い勝手が違いそうで、仮に導入するにても単純移行というわけにもいかなそうで、今回のスタンス「なるべく新しい改修はしない」に反しており、ここはちょっと後回しにしたい気持ち。その場合のワークアラウンドを検討中である。まあここは仮に一時しのぎでそのワークアラウンドで乗り切ったとしても、こう考えるとほかにもこのテのやつがありそうで、結局なんだかんだバックエンド側のコードって色々いじくることになりそうだなー、と思って少し気が重い。。

まだ全体の10%程度しか終わってないのだが、そんな感じでCloudflare Pagesへの移行を開始してるよという話なのだった。

その他

  • ストレイテナーマニア向け非公式サイトを作った…って話はここにまとめてあるので、その後の話。現時点でも投票は受け付けているが、さすがにサイト開設当時ほどの投票は集まらなくなった。また、現時点で1位が結構な勢いで独走状態であり、投票の状況を見るとこれ以上大きな変動は起きそうもないので、近く締め切ろうと思う。突発的に思い付きで始めたにしては面白い企画だった。
  • 6月1日ではてなブログProが解約となった。ブログ自体は残してあるが、Pro時代に使っていたカスタムドメインblog.rmblankslash.netもう使えなくなっており、オリジナルドメイン https://rmrmrmarmrmrm.hatenablog.com/ でのみ利用可能である。このカスタムドメインに関しては、ここで書いたように、新ブログへの移行案内サイトに向けて、新ブログ(ここ)へ移動するよう促す。しばらくこの構成でキープする。1年くらいかな。旧ブログ側のアクセス数や新ブログ側の旧ブログカスタムドメインからのアクセス流入数などから判断する予定。今までお世話になりました。