[2026/10/03]


連続降雨記録が37日でストップしてようやく晴れたので走ってくる。

晴れたのはいいけど道は水浸しだったので泥まみれ。
靴もぐしょぐしょ。
.

スーツを新調。80k。
クレジットカードを受け取り損ねて期限切れになってしまっているので、別のクレジットカードを持っていっていたのだけど、暗証番号が分からず。
結局、サインで対応してもらった。

----

そういえばこのカードの暗証番号って、2年前に問い合わせたんだった。
忘れてた。
.


「目玉焼きてりやきハンバーグサンド ¥368-」
>ふんわりとした白焼きロールに照り焼きソースとマヨネーズで味付けしたハンバーグと玉ねぎをスライス、目玉焼きを合わせて焼き上げました。



「から揚げおむすび 油淋鶏ソース ¥299-」
>カットしたから揚げに油淋鶏ソースをかけ、甘辛に仕上げたおむすびです。



「北海道産チーズクリームのチーズまん ¥158-」
>「北海道チーズ蒸しケーキ」の味わいをチーズまんにアレンジ♪
.

シーツをコインランドリーにぶち込んできてキャベツを買ってくる。
.

味覚園のジンギスカンをさっき買ってきたキャベツと炒めて飲酒。
組長からもらった加賀鳶を飲む。
あと、ジョニーウォーカー ダブルブラックを買ってきたのでハイボールにする。これうまいな。
.

[2026/10/02]
にんじんを丸ごとレンチンするやつを試してみる。
アイラップのままぶちこんだら U03 エラーがでたので皿に置く。

[U03]や[U-03]が表示されます。(食品軽量エラー) Q&A情報(文書番号:169974):シャープ
https://cs.sharp.c​o.jp/faq/qa?qid=169974​


思ってたより柔らかくなってないと思ったら600Wで7分か。
500Wだから時間足りてなかった。
.

[2026/10/01]
今日も細巻きを丸かじる。
.

[2026/09/30]
【50周年のアイオーデータ】PC-98のメモリを空けてHDDを速くした2つのソフトウェア(林利明さん) | マイナビニュース
https://news.mynav​i.jp/article/20260930-4946127/

VMM386.EXE 懐かしすぎる。
.

[2026/09/29]
切ってない長い細巻きを死んだ目でかじる。
.

たぬき温やっこをアテに飲酒。
.

ハッカ油風呂に入ってみる。
.

[2026/09/28]
>19:09 組長 豚吉いくかぁ
>19:20 なや 元中華
>19:20 組長 そうそう、夏休みだしね。
>19:20 組長 1日ぐらいはね
>19:21 なや 今夏季休暇かよw
>19:21 組長 今日とらないとなくなっちまう
>19:24 なや 上がれるし行ってみよ
>19:24 組長 ぐっ(スタンプ

組長が やきとん屋に行くというので、自分も仕事を上がって行ってみる。


>19:29 組長 まー、ちかいからこっちはいつでも
>19:29 なや 1934幡ヶ谷
>19:30 組長 了解。思ったよりくそはやかったw

職場から10分で移動。


豚吉もつ焼き酒場のご予約 - 幡ケ谷/居酒屋 | 食べログ
https://tabelog.co​m/tokyo/A1318/A131807/13290813/

----



もつ焼き屋だけど元々中華料理屋だったためメニューに「ガチ中華」が存在。
土鍋麻婆豆腐を注文。


>299 ブラックニッカハイボール
>通常価格499のところ299で販売しています
>※299は税抜き価格です。(税込328円)

そしてブラックニッカハイボールが安い。
メガにサイズアップで +300円。




ニラ玉炒め。
メガハイボールおかわり。




もちろん焼きとんもいただく。カシラ、ハラミ、レバー、ハツ、タン
あと、ホルモンの唐揚げ。
メガハイボールおかわり。




豆苗炒め。
メガハイボールおかわり。
.

[2026/09/27]
会社からなんか届いていると思ったら、健保の支払通知書だった。
手術費用の一部負担還元だ。
63k戻ってきてた。
.

[2026/09/26]
かよちゃんへ。


かよちゃん - 下総中山/居酒屋 | 食べログ
https://tabelog.co​m/chiba/A1202/A120202/12020652/

----



いつものごとく栄川を二合。
惣菜の盛り合わせ。




お次は浦霞。
常連さんがサンマを注文していて「小坂さんもどうです?」と勧められたので自分も注文。
仕入れていたのが3本らしく、カウンター席にいた3人でちょうど終わり。




最後に奥の松。
.


「ランチパック ナポリタンとトマトハンバーグ ¥178-」
>食パンマークのパンにはナポリタンフィリングを、もう一方のパンにはトマトハンバーグをサンド

千葉ジェッツコラボ。



「イギリストースト風サンドケーキ ¥198-」
>ご当地パンを再現!

こちらはヤマザキと業務提携している青森の工藤パン製。


工藤パン - Wikipedia
https://ja.wikiped​ia.org/wiki/%E5%B7%A5%​E8%97%A4%E​3%83%91%E3​%83%B3
>1989年(平成元年)12月に山崎製パンと業務提携し、1991年(平成3年)には山崎製パン系コンビニエンスストアの展開を、2000年(平成12年)10月からは山崎製パンブランド商品の生産を、それぞれ開始。
.

雨の中、てくてく歩いて帰る。




今日も元気。
.

[2026/09/25]
歯医者21回目。
仮歯をまたつける。

そろそろどうするか決めていきましょうかと話をする。
.

[2026/09/24]
辛さ増し増し香ばしラー油をかけた冷ややっこで飲酒。
.

[2026/09/23]
悪夢で叫んで目が覚める。
.

来月の外出に向けてホテルとか店を手配。
.

[2026/09/22]
なんか足の裏が痛い。
歩き回ったりしたわけでもないのに。
.

[2026/09/21]
台風の中、長ねぎを買ってくる。

自分の住んでいるあたりは過去 水害を繰り返していた場所なんだけど、中川放水路こと新中川が機能してくれているおかげで今回も特に影響なし。
先人に感謝。
.

[2026/09/20]
ブラックニッカ4リットル補充。

お好み焼きの粉がまだあるので、お好み焼きを焼いて飲んだくれ。
.

[2026/09/19]
>17:08 組長 台風来る前に飲むかー!
>17:13 なや いいぞ(スタンプ
>17:13 組長 ふへへへ(スタンプ
>17:13 なや いずこへ
>17:16 組長 うーむ、十徳か・・ぐぬぬ、あまりバリエーションがない・・・
>17:18 なや 他になければとりあえず十徳いっとくか
>17:19 組長 とりま、十徳にするか

といわけで十徳へ。


酒処十徳
http://www.juttok​u.com/

-----



栄光冨士にサンマとナスの揚げおろし。




写楽に真あじ刺身。




賀儀屋に じゃがいもアンチョビソース。




秋櫻に焼き味噌。




両関に鍋島。

----

- 山形 栄光冨士 辛口本醸造
- 福島 写楽 純米酒
- 愛媛 賀儀屋 辛口純米
- 広島 秋櫻 ひやおろし 純米
- 秋田 両関 純米酒
- 佐賀 鍋島 吟醸 サマームーン
.

いつものバーに行ったら貸し切りでした。
イタリアンもいっぱい。
ぶらぶらしてから、以前から話は聞いていたけど行ったことのなかった貝だらけへ。


貝だらけのご予約 - 新宿/居酒屋 | 食べログ
https://tabelog.co​m/tokyo/A1304/A130401/13193845/

----



貝魚刺五点盛りに貝なめろう。
佐藤 麦の炭酸割りを二杯。


ここいい店だな。また来よう。
.

やっぱりバーもと、ご無沙汰していたスリーバーへ。


スリーバー (THREE Bar) - 新宿/バー | 食べログ
https://tabelog.co​m/tokyo/A1304/A130401/13038164/

----



KAVALAN トリプルシェリーカスク。
.



そば食って〆。

飲んだ食った!
.

[2026/09/18]
連休前の景気づけに現場の人と飲んで帰る。



.

[2026/09/17]
また職場の自販機がフリーズしてる。
.

帰宅してポストを見たら、不在票が入っていた。
配達されたのが9/6で、保管期限が9/13。
過ぎとりますがな。

これキャッシュカードだな。

キャッシュカードが受け取れませんでした | FAQ(よくあるご質問)
https://www.faq.mi​zuhobank.c​o.jp/faq/show/103
>●ご不在で受け取れなかった場合
>ご不在で受け取れず、日本郵便(株)の保管期限を経過してしまった場合は、みずほ銀行に返却され次第、約1週間~10日で再送いたしますのでお待ちください。
>なお、再送は1回のみです。再送後再度お受け取りになれず日本郵便(株)の保管期限を経過してしまった場合は、キャッシュカード再送受付ダイヤルにお電話ください。

とりあえず待てばいいのね。
.

[2026/09/16]
雨の中散歩してくる。
.

[2026/09/15]
偉い人の昇進祝いの席に連行されて飲んでくる。
めちゃくちゃからまれた。
.


「パイの実みたいなデニッシュ ¥180-」
>本家パイの実 約20倍!(標準重量比較)


サイズ比


パイの実みたいなデニッシュ |商品情報|ファミリーマート
https://www.family​.co.jp/goods/bread/1534818.ht​ml
.

[2026/09/14]
久しぶりな気がする焼鳥重。
食後につまようじ使ったら差し歯がもげた。
.

[2026/09/13]
一晩で除湿器満タンになってる。
.

[2026/09/12]
味覚園の塩ホルモンで飲酒。


味覚園 塩ホルモン 200g | 味覚園 | 味覚園オンラインショップ
https://www.mikaku​en-shop.com/view/item/0000000000​02?srsltid=Af​mBOooka4h7​CiW4AFVpss​UPxJVm1-lWSXFyPrCO​MY9__AXsQk​u7a9L-
.

[2026/09/11]
傘忘れた。
.

薬味てんこ盛りのカツオのたたきをつつきながら日本酒一本飲む。
.

[2026/09/10]

この間、一人旅のおすすめの行き先を聞かれて真っ先に青森が思い浮かんだ。先ずは、おさないの貝焼き味噌を食べて、ますやできのことみずを食べて、まつやで蟹食べてほしいなって。玄人は、ろばた鎌蔵のらくろへ行ってほしい。 pic.twitter.com/gklMshbff7

— 魔女っこれい (@majyokkorei) September 9, 2026


おさないとのらくろ行ったなあ。
青森旅行また行きたい。
.

Amazon Music って月額利用だけじゃなくて単曲購入もできたのか。
.

[2026/09/09]
KFC のウマ娘コラボにんじんオッチャホイセットを電車内から注文して帰宅とともに受け取り。
オッチャホイスパイスはがっつりにんにく。
原材料のうち魚醤があまりピンときてなかったけど、後から思い返すとあのエスニックっぽさは魚醤からくるものだったか。


オッチャホイ - Wikipedia
https://ja.wikiped​ia.org/wiki/%E3%82%AA%​E3%83%83%E​3%83%81%E3​%83%A3%E3%​83%9B%E3%8​2%A4
.

組長がタコハイについて、でかでかと柚子と書いてあるのに柚子が感じられないと言っていたけど、そのでかでかと書いてあるのは「柑橘」なんだよな…と。
.

[2026/09/08]
風が強すぎる。
.

[2026/09/07]
夏に咲くンゴ。
.

【藤本健のDigital Audio Laboratory】MP3より高音質! YouTube/Discord採用の「Opus」コーデックを試した-AV Watch
https://av.watch.i​mpress.co.​jp/docs/series/dal/1391385.ht​ml
>YouTubeで採用されている音声フォーマットの1つで、ほかにもゲーム関連などでよく使われるボイスチャットシステム「Discord」や、様々なVoIPソフトウェアで採用されている。

Opus って馴染みなかったけど結構前から使われてたのか。
.

ChromeからGoogleドライブに繋がらないのでEdgeから使う。
.

[2026/09/06]
チリコンカン。
.

[2026/09/05]
久しぶりにセブンイレブン津田沼店へ。


金二商事株式会社 | オンリーワンのコンビニエンスストア
https://kaneni-shouji.co.​jp/

----



相変わらず圧巻の品ぞろえ。




今回は4本購入。

- 山口 阿武の鶴 晴れ晴れ
- 島根 裏月山 縁 純米吟醸無濾過原酒
- 千葉 寒菊 純米大吟醸 剣愛山50 Chronicle
- 群馬 オゼユキ 純米大吟醸 MANHATTAN
.

[2026/09/04]
会社帰りに電車でちまちま読んでた まほよ上巻 読了。
.

お好み焼き粉がまだあるのでキャベツを買って帰ってお好み焼きにしようと思ってたけど忘れてた。
.

[2026/09/03]
コンロが一口なのでフライパンを使った後に鍋を使うにはフライパンをどける必要があり今日もいつものように足ふきマットの上に置いていたらついに黒焦げになった。
.

レンタルサーバーからクレジットカード有効期限が切れるから更新しろってきたけど、新しいカードがまだ届いてないのでいったん別のカードを設定しておく。
.

[2026/09/02]
朝タルト。
.

[2026/09/01]
今日から十徳 本店が営業再開してるはずなので帰りがけに寄ってみる。


酒処十徳
http://www.juttok​u.com/
>◎ビルメンテナンスのためお休みしておりました本店は、9月1日より営業を再開いたします。本店休業中は別館をご利用いただき誠にありがとうございました。別館は8月28日をもって営業終了いたしました。

----



開いてる!




喜楽町にキビナゴの唐揚げ。




ひやおろしのセット。
真ん中の〆張鶴 生原酒ががつんとくる味わい。




亀齢に まぐろ中落ち。


>20:34 組長 本店でヤッてんの?
>20:36 なや やってる
>20:41 組長 30分くらいでつくかな
>20:46 なや これんのかい

途中、組長が合流。

----

- 滋賀 喜楽町 純米酒 セカンド
- 秋田 羽州北鹿 純米吟醸 山田錦
- 新潟 〆張鶴 生原酒
- 東京 澤乃井 しぼりたて
- 広島 亀齢 辛口純米 八拾
.

[2026/08/31]
PCを再起動したらHyper-Vゲストで立ち上げていたサービスに繋がらなくなってたのでIPを固定化する。

*** ホスト(Windows 11)
ゲートウェイを作成する。

- Hyper-Vマネージャー
-- 仮想スイッチマネージャー → 内部を選択して仮想スイッチの作成
- 設定
-- ネットワークとインターネット → ネットワークの詳細設定 → (作成したスイッチ) → 追加のプロパティを表示
--- 手動を選択してIPアドレスとサブネットマスクを設定

*** ゲスト(Ubuntu 26.04)
netplan で設定する。
最初 YAML を手で編集していたけど、コマンドでもいけるようなのでそっちでメモ。

Ubuntu Manpage: netplan-set - write Netplan YAML configuration snippets to file
https://manpages.u​buntu.com/manpages/resolute/man8/netplan-set.8.html​

|$ sudo netplan set --origin-hint 99-config ethernets.eth0.addresses="[(ゲストのIPアドレス)/24]"
|$ sudo netplan set --origin-hint 99-config ethernets.eth0.routes="[{to: default, via: (ゲートウェイのIPアドレス)}]"
|$ sudo netplan set --origin-hint 99-config ethernets.eth0.nameservers.addresses="[8.8.8.8, 8.8.4.4]"

でIPアドレス、ゲートウェイ、DNSを設定。

|$ sudo cat /etc/netplan/99-config.yaml
|network:
| version: 2
| ethernets:
| eth0:
| addresses:
| - "(ゲストのIPアドレス)/24"
| nameservers:
| addresses:
| - 8.8.8.8
| - 8.8.4.4
| routes:
| - to: "default"
| via: "(ゲートウェイのIPアドレス)"

のようなファイルが生成される。

|$ sudo netplan try

で反映。
.

いつもと違う梅干し買ってみたけどうまいな。
.

[2026/08/30]
日が落ちてからスーパーに行こうとアパートから出たら自転車が二台。
見たことのある形状。
これ、お巡りさんのやつだ。

アパートでなにか?
.

[2026/08/29]
お好み焼きでも焼くか。
.

[2026/08/28]


突発飲みで現場ビルの中華料理屋へ。
ハイボール4杯目で自動的にピッチャーになる。

店員さんには覚えられてるか聞いたら、「覚エテルヨ!前モタクサン飲ンデタネ!」って言われた。
.

[2026/08/27]
まほよの発売日なので秋葉原の書泉に寄って帰り購入。
久しぶりに利用したけど、レジが1階に集約かつセルフレジ導入とかされてたんだ。
.

ささみ焼きながらささみ食べてる。
.

[2026/08/26]
Teams 死んでるじゃん。
.

[2026/08/25]
高級キーボード「フィルコ」破綻、本業堅調も為替予約失敗引きずる - 日本経済新聞
https://www.nikkei​.com/article/DGXZQOUC17​6M80X10C26​A8000000/

FILCO死んだの?!
.

なんか右耳が痛い。
.

[2026/08/24]
焼鳥重キャンセル。
.

[2026/08/23]
** TweetVault④
*** 前回
TweetVault①
TweetVault②
TweetVault③

*** 絞り込み UI の改善
テキストボックスにタグを入力する形で複数条件の絞り込みに対応したけど、タグ一覧から選択するようにしたい。

- Ctrl を押しながら選択した場合は複数選択にする。
-- 選択済みの場合は解除。
-- 後述の除外選択中のタグを Ctrl で選択した場合は状態を上書き。
- Alt を押しながら選択した場合は除外するタグの選択として扱う
-- こちらも複数選択可。
-- 選択済みの場合は解除。
-- 通常選択中のタグを Alt で選択した場合は状態を上書き。
-- 通常選択のハイライトが青なのに対して、こちらは赤にする。
- Ctrl も Alt も押下していない場合は従前の動作で排他選択。
-- 複数選択や除外選択されているタグがある場合は解除する。

frontend/src/app/page.tsx
|#!diff
|@@ -17,3 +17,3 @@
| const [bookmarks, setBookmarks] = useState<Bookmark[]>([]);
|- const [selectedTag, setSelectedTag] = useState<string>();
|+ const [selectedTag, setSelectedTag] = useState({inc:[], exc:[]});
| const [searchQuery, setSearchQuery] = useState('');
|@@ -54,3 +54,3 @@
| const data = await api.getBookmarks({
|- tag: selectedTag,
|+ tag: JSON.stringify(selectedTag),
| search: searchQuery,
|@@ -117,4 +117,26 @@
|
|- function handleTagSelect(tag: string | undefined) {
|- setSelectedTag(tag);
|+ function handleTagSelect(tag: string | undefined, e?: any) {
|+ if (!tag) {
|+ setSelectedTag({inc:[], exc:[]});
|+ return;
|+ }
|+ setSelectedTag(prev => {
|+ if (e && e.ctrlKey) {
|+ return {
|+ inc: prev.inc.includes(tag)
|+ ? prev.inc.filter(item => item !== tag)
|+ : [...prev.inc, tag],
|+ exc: prev.exc.filter(item => item !== tag)
|+ };
|+ } else if (e && e.altKey) {
|+ return {
|+ exc: prev.exc.includes(tag)
|+ ? prev.exc.filter(item => item !== tag)
|+ : [...prev.exc, tag],
|+ inc: prev.inc.filter(item => item !== tag)
|+ };
|+ } else {
|+ return {inc:[tag], exc:[]};
|+ }
|+ });
| setCurrentPage(1);
選択中のタグを保持する selectedTag を、文字列から対象/対象外リストを保持するオブジェクトに変更。
Ctrl/Alt 押下時の処理を追加。

frontend/src/components/bookmarks/SearchAndFilter.tsx
|#!diff
|@@ -8,3 +8,3 @@
| onTagSelect: (tag: string | undefined) => void;
|- selectedTag?: string;
|+ selectedTag?: {};
| onDeleteTag?: (tagName: string) => void;
|@@ -88,3 +88,3 @@
| // If the deleted tag was selected, reset to show all bookmarks
|- if (selectedTag === tagName) {
|+ if (selectedTag.inc.includes(tagName) || selectedTag.exc.includes(tagName)) {
| onTagSelect(undefined);
|@@ -122,3 +122,3 @@
| className={`rounded-full px-3 py-1 text-sm whitespace-nowrap ${
|- !selectedTag
|+ selectedTag.inc.length == 0 && selectedTag.exc.length == 0
| ? 'bg-blue-600 text-white'
|@@ -132,6 +132,6 @@
| <div
|- onClick={() => onTagSelect(tag.name)}
|+ onClick={(e) => onTagSelect(tag.name, e)}
| className={`px-3 py-1 text-sm whitespace-nowrap flex items-center cursor-pointer ${
|- selectedTag === tag.name
|- ? 'bg-blue-600 text-white'
|+ selectedTag.inc.includes(tag.name) ? 'bg-blue-600 text-white' :
|+ selectedTag.exc.includes(tag.name) ? 'bg-red-600 text-white'
| : 'bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-200 hover:bg-gray-200 dark:hover:bg-gray-600'
選択中タグに関する判定を修正。
キーボードイベントの引き渡しを追加。

frontend/src/components/bookmarks/TagMenu.tsx
|#!diff
|@@ -8,3 +8,3 @@
| onSuccess: () => void;
|- selectedTag?: string;
|+ selectedTag?: {};
| onDeleteTag?: (tagName: string) => void;
|@@ -134,3 +134,4 @@
| className={`p-1 rounded-full cursor-pointer ${
|- selectedTag === tag.name ? 'hover:bg-blue-700' : 'text-gray-500 hover:bg-gray-200'
|+ selectedTag.inc.includes(tag.name) ? 'hover:bg-blue-700' :
|+ selectedTag.exc.includes(tag.name) ? 'hover:bg-red-700' : 'text-gray-500 hover:bg-gray-200'
| }`}
選択中タグに関する判定を修正。

backend/internal/services/bookmark_service.go(前回からの差分)
|#!diff
|@@ -4,3 +4,2 @@
| "encoding/json"
|- "fmt"
| "log"
|@@ -8,2 +7,3 @@
| "strings"
|+ "slices"
|
|@@ -197,6 +197,9 @@
|
|- type Tag struct {
|+ type RequestTag struct {
|+ Include []string `json:"inc"`
|+ Exclude []string `json:"exc"`
|+ }
|+ type QueryTag struct {
| Name string `json:"name"`
| }
|- var tags []Tag
|
|@@ -208,6 +211,24 @@
| // Apply tag filter if provided
|- if tag == "untagged" {
|- query = query.Where("tags_json::jsonb = ?", "[]")
|- } else if tag != "" {
|- tags = append(tags, Tag{Name: tag})
|+ if tag != "" {
|+ var req RequestTag
|+ if err := json.Unmarshal([]byte(tag), &req); err != nil {
|+ return nil, 0, err
|+ }
|+ if slices.Contains(req.Include, "untagged") {
|+ query = query.Where("tags_json::jsonb = ?", "[]")
|+ } else {
|+ if len(req.Include) != 0 {
|+ var tags []QueryTag
|+ for _, v := range req.Include {
|+ tags = append(tags, QueryTag{Name: v})
|+ }
|+ tagsJson, _ := json.Marshal(tags)
|+ query = query.Where("tags_json::jsonb @> ?", tagsJson)
|+ }
|+ for _, v := range req.Exclude {
|+ tags := []QueryTag{{Name: v}}
|+ tagsJson, _ := json.Marshal(tags)
|+ query = query.Not("tags_json::jsonb @> ?", tagsJson)
|+ }
|+ }
| }
|@@ -218,18 +239,5 @@
| for _, word := range words {
|- if strings.HasPrefix(word, "#") {
|- tags = append(tags, Tag{Name: strings.TrimPrefix(word, "#")})
|- } else if strings.HasPrefix(word, "-#") {
|- query = query.Not("tags_json::jsonb @> ?", fmt.Sprintf(`[{"name":"%s"}]`, strings.TrimPrefix(word, "-#")))
|- } else {
|- query = query.Where("full_text ILIKE ? OR name ILIKE ? OR screen_name ILIKE ?",
|- "%"+word+"%", "%"+word+"%", "%"+word+"%")
|- }
|- }
|- }
|- if len(tags) != 0 {
|- jsonData, err := json.Marshal(tags)
|- if err != nil {
|- return nil, 0, err
|+ query = query.Where("full_text ILIKE ? OR name ILIKE ? OR screen_name ILIKE ?",
|+ "%"+word+"%", "%"+word+"%", "%"+word+"%")
| }
|- query = query.Where("tags_json::jsonb @> ?", jsonData)
| }
フロントエンドから渡されたタグのリストから検索するよう改修。
テキストボックスの入力からタグ検索する処理は除去。複数キーワード対応は残す。
元の処理に合わせるためにいったんアンマーシャルしているのが微妙。
.

[2026/08/22]
胆のう摘出の手術をしてから二か月が経過。
術後の状態確認で MRI を撮ってくる。
結果は特に問題なし。

あと、今回の MRI でも膵臓には何も写りませんでした。
過去に診断された IPMN はなかったことになった。

先生「他に何か気になることはありますか」
なや「腎臓で石が見つかっていたのが気になってるくらいですかね」
先生「(写真をスクロール)あーこれですね。これが下に落ちると…」
なや「めちゃくちゃ痛いやつですね」
先生「そう、めちゃくちゃ痛いやつww」

不意に「痛いやつ」って差し込まれてツボに入ったのか、先生爆笑してた。
.

スーパーの弁当コーナーでなんにしよと眺めてたら、店員さんに案内されてきたお婆さんが鮭ハラス飯を買っていき、うまそうだなと思ったので自分も購入。

帰ってから気付いたけど、これ二人前だな?
.

今日はかよちゃん。

土砂降りだったけど、雨雲レーダーを見た感じ2時間もすれば通り過ぎそう。
飲んでいるうちに上がるだろ。
足元びしょ濡れになるだろうから、靴下は脱いでサンダルで出掛ける。


かよちゃん - 下総中山/居酒屋 | 食べログ
https://tabelog.co​m/chiba/A1202/A120202/12020652/

----



いつものように栄川を二合。
惣菜の盛り合わせ。




お次は木戸泉を二合。
今日は いかの丸干しがあったぞ。

----

女将さんが以前勤めていたスーパーの店長さんが今も昼営業に来てくれているって話は前に聞いていたけど、いつも定食と惣菜盛り合わせを食べながらビールに日本酒三合を飲んでいると聞いてびびる。
その量飲んで仕事戻ってるの。
.

雨はすっかり上がった。予定通り。
今日は雨上がりのにおいがしないなと思いつつ、江戸川沿いを歩く。



またサンダルで10km超歩いてる。


今日も元気。
.

[2026/08/21]
冷凍庫のロックアイスがでかいかたまりになってた。
一回溶けたなこれ。
開けっ放しになってたか?

前に買い替えたのが2009年なので、そろそろ故障してもおかしくはないんだよな。
.

歯医者20回目。
仮歯無限ループ。
.

[2026/08/20]
朝東京ばな奈。
.

[2026/08/19]
昨日と打って変わって忙しい。
.

[2026/08/18]
暇すぎて業務と関係ないコードずっと読んでる。
.

[2026/08/17]
朝自販機でお茶を買ったらSuicaの残額が15円。
.

LINE公式からメッセージがきててなんだろと思ったら、

>いつもLINEをご利用いただき、誠にありがとうございます。
>
>FacebookアカウントによるLINEログイン機能のサポートは、2024年1月に終了しました。それに伴い、現在ご利用中のログイン方法では、ご利用いただけなくなります。
>
>現在のLINEアカウントを引き続き利用するには、2026年12月31日までに電話番号を登録してください。
>
>期日までに電話番号を登録されない場合、お客様のFacebook連携IDは削除され、LINEアカウントがご利用いただけなくなります。アカウントに紐づく情報やアイテムを継続してご利用いただくためには、必ず2026年12月31日までに電話番号の登録を完了してください。

Facebook連携を使って電話番号登録を回避して複数アカウントつくっていたのがついに無効になった。
.

[2026/08/16]
** TweetVault③
*** 前回
TweetVault①
TweetVault②

*** 絞り込み機能の拡張
標準だと「テキストボックスに入力した単一ワード」+「一覧から選択した単一タグ」の絞り込みにしか対応していないので、複数条件で絞り込めるようにしたい。

- 複数ワードの絞り込みに対応
- テキストボックスに「#xxx」の形式で入力した場合にタグとして絞り込む。複数指定可。一覧で選択したタグとAND。
- テキストボックスに「-#xxx」の形式で入力した場合にタグを含まないものに絞り込む。複数指定可。

backend/internal/services/bookmark_service.go(前回からの差分)
|#!diff
|@@ -7,2 +7,3 @@
| "strconv"
|+ "strings"
|
|@@ -196,2 +197,7 @@
|
|+ type Tag struct {
|+ Name string `json:"name"`
|+ }
|+ var tags []Tag
|+
| query := s.db.Model(&models.BookmarkView{})
|@@ -205,3 +211,3 @@
| } else if tag != "" {
|- query = query.Where("tags_json::jsonb @> ?", fmt.Sprintf(`[{"name":"%s"}]`, tag))
|+ tags = append(tags, Tag{Name: tag})
| }
|@@ -210,4 +216,20 @@
| if search != "" {
|- query = query.Where("full_text ILIKE ? OR name ILIKE ? OR screen_name ILIKE ?",
|- "%"+search+"%", "%"+search+"%", "%"+search+"%")
|+ words := strings.Fields(search)
|+ for _, word := range words {
|+ if strings.HasPrefix(word, "#") {
|+ tags = append(tags, Tag{Name: strings.TrimPrefix(word, "#")})
|+ } else if strings.HasPrefix(word, "-#") {
|+ query = query.Not("tags_json::jsonb @> ?", fmt.Sprintf(`[{"name":"%s"}]`, strings.TrimPrefix(word, "-#")))
|+ } else {
|+ query = query.Where("full_text ILIKE ? OR name ILIKE ? OR screen_name ILIKE ?",
|+ "%"+word+"%", "%"+word+"%", "%"+word+"%")
|+ }
|+ }
|+ }
|+ if len(tags) != 0 {
|+ jsonData, err := json.Marshal(tags)
|+ if err != nil {
|+ return nil, 0, err
|+ }
|+ query = query.Where("tags_json::jsonb @> ?", jsonData)
| }
.

冷凍揚げナスで味噌汁。
.

[2026/08/15]


手術してから走れていなかったけど久しぶりに。

前日の雨で路面は悪く、ところどころ水浸しの状態。
カニも道路に迷い込んでた。
迷いガニオーバーラン。



.



サンダルで10km歩き回ってるおじさん。
.