はてなキーワード:上下とは
タイトル通り。
特に毒親とかではないと思う素晴らしい両親と同居して都心から遠い以外は問題なかったが、父がコロナにかかって衛生観念が違いすぎることをきっかけに一人暮らしを検討し始めた。
思ったより物件探しって大変なんだね
以下条件
①食にこだわりがある
②聴覚過敏
③人の気配が怖い
渋谷まで急行で40分、ド郊外目の前公園THE閑静な住宅地の戸建だったのでマンションの上下左右に人がいる状態が怖い。滞在したウィークリーマンションだと足音・くしゃみ・廊下の音・窓の外の音に驚いた。浜松町近辺に住む友達のちょっといいメゾネットマンションにお邪魔した時も電車の音が四六時中聞こえてびっくりした。一言で言えば慣れだろうけどうっすら人間が全体的に気持ち悪いので不安
④東京23区が好き
これが条件として本当にきつい。でもそうなのだから仕方ない。中高で遊んだ街なので愛着がある。
なに甘えとるんじゃ現実見ろ!我慢せえ!もっと稼げ!予算に応じて場所変えろ!なんだろうけどいまの障害者雇用は都内外国系で人間関係もよく理解があるありがたすぎる職場&自分の専門性を活かせてるので転職して手取りを増やすのはすぐできるかというと難しい。
しかし同時に23区、特に真ん中ゾーンで10万未満の部屋を望む方がもちろん気が狂っている。ただ郊外住み→都内私立中高と大学に通学し続けた歴史を持っており、移動時間が長すぎなことが半分「恨み」に変わってきてるから都内一人暮らしで成仏させたい。
⑤日当たり
というより蛍光灯・シーリングライトが苦手。感覚過敏の一種だと思うが目、というより身体中が痛くなる感じに近い。できれば日中は電気をつけたくない
確かに自分は握力が10kgいかないので、何かあったら終わり。
⑦洗濯
汚い話で申し訳ないが究極に汚れるまで着て洗濯の仕方がわからなくて捨てたことが何度もある。
洗い終わったのに干すの忘れちゃって腐らせたこともある。オキシ漬け?も1週間放置した前科がある
多分乾燥機?つきのを買わないといけないんだけど予算的に難しいのでは?
⑧ゴミ捨て
これもよくわかっていない
24時間が絶対いいらしいというのは知ってるが、そもそも分別の基準がよくわからない
缶は洗うのか?ビンカンと書いてあるが明らかに違う物質を同じ袋に入れていいのか?この辺は学習できると思うけど、うっかり不注意が多く、怒られる未来しか見えなくてもう怖い(うっかりって気づかないし未然にチェックなどは膨大なエネルギーがかかるからまじ怖い)
⑨完全遮光
アイマスクすればいいと最近気づいたけど感触に慣れないからどうなんだろうね?
-----
以上なんとなく寝れなくてだらだらまとめただけだから読みにくくてごめん(ここまで読んでくれた人いるのかもわからんが)
キモい感覚持ちに生まれたらそれ満足させるためにお金要る→しかしキモい感覚持ちなのでお金稼ぎにくい のハメ技やめて欲しいよ〜〜😭
こんな感じで探せたら奇跡よな、多分妥協していくんだろうけど(ゆうて最上階・南向き・駅近・光ファイバーなどは初期の段階で捨ててこれ)
まあASDとか耳目を集める属性タイトルにした(卑しいね)けど、みんな大なり小なり家探しは大変だよねー こんな条件で見つかるのかな?笑って感じだけどやってみるわ
いい家みつかればいいなー進捗あったらまた書くね
寝れない夜の駄文でした
Permalink |記事への反応(31) | 03:18
本質を理解してないからとんでもない勘違いしてるブクマカ多くてウケる
震度は計測震度を参照し、計測震度は3成分の加速度の合成と周期を元に算出される
参考:https://www.jma.go.jp/jma/kishou/know/jishin/kyoshin/kaisetsu/calc_sindo.html
計算式はリンク先に詳しいから見てもらうとして、単純な加速度で決まるわけではない。
事実従来はそうしていたが、周期の長さによって地表への影響が大きく異なることが判明してから改めている
木造家屋が倒壊するならしゃーない(意訳)くらいの雰囲気で定められた計測震度が改定されて今に至る
(どうせ家つぶれるから家財の動きまで気にしなくてええやろの精神)
本質的に震度の強弱はどうでもよく、つけてる側もランクの上下の感覚でつけただけ
マスク氏がトランプ政権から離反する直接的なきっかけとなったのが、「OneBig Beautiful BillAct(1つの大きく美しい法案)」である。
この法案はトランプ減税の恒久化に加え、化石燃料や内燃機関を中核とする旧来型産業に手厚い支援を行う一方で、EV支援や再生可能エネルギーへの助成を大幅に削減する内容だった。
マスク氏が政界に舞い戻り、新党設立という恐慌手段に訴えた理由は、自分がゼロから育て上げて、売り上げが落ちるのも厭わずトランプ氏を応援しつづけて守ってきたEVの雄テスラが、この法案によって窒息させられそうになっていることに対するカウンターだった。
アメリカの選挙制度は「勝者総取り(winner-takes-all)」であり、第三政党にはきわめて厳しい環境が待ち構えている。これは日本の小選挙区において「死に票」が大きく出ることを考えてもらえればわかるだろう。
いかにマスク氏であろうと、アメリカ党が上下院で複数議席をとるというのは至難の業である。
もちろんマスク氏もこの制度上の壁は理解しており、「全国制覇ではなく、数議席でも政策決定に関与できればよい」という戦略を描いている。
マスク氏が戦うフィールドは「州」ではなく「ネット」である。オンラインの支持基盤を活用し、選挙区を絞って突破口を開こうとしている。
妻の腹立つところhttps://anond.hatelabo.jp/20250708000227
消えてら
https://anond.hatelabo.jp/20250708162350
これな
マジレスする
こういうクソ妻を治す方法、殴る・怒鳴る・泣かせる・謝る・抱きしめる しかない。
マジで残念な事実なんだが、男は既に理性で意識をアップデートして既にフェミニズムと男女平等を達成しているのに
女(子宮さん)は意識のアップデートを怠ってまだ原始時代のままだから、
わざと夫をイラつかせるウホウホした言動を取って、殴られる、怒鳴られる、泣かされる、のを誘ってくる
そこで妻に対して下手に出たら無限に舐められてマンコもカピカピになるから余計悪化するからな!
そこでやるべきは、殴る・怒鳴る・泣かせる・謝る・抱きしめる、だからな!
順番に全工程を履行しないとだめだぞ。
女(子宮さん)はどうしても暴力で上下を分からされないとイライラして頭がおかしくなってしまうっぽいんですよ。
俺としては本当に残念な事実なので、マジでいやいや妻のそういう原始時代マンコの気持ちに付き合って、
やりたくもないソフトパンチ、怒鳴る素振り、怒鳴って泣かせて抱きしめて甘々アフターケアをやってるよ
よくツイッターでも、まだまだ男性の男尊女卑が無くなってないとか喚いてる女いるでしょ
そらそういう男尊女卑やってくれる原始時代の気風を持ってる男にしかマンコが濡れないから
そういう男尊女卑のムーブしてくれる男しか目に入ってないんだっつーの
ただ、女って絶対そういう子宮の原始時代性を認めないんだよな。
この益田にも絶対に「そんなことない!」って反論してくるからな。もうわかりきってる。またかって思うだけ。
そうやって実際の欲求と違うことを言って、言葉の裏が分かってないヘボい男を弾いてる遺伝子に刻まれた知恵っぽい
なんか女さんって、自分の男の選好に関しては特に、突然頭にモヤがかかって何も認知できなくなるっぽい
好きな男のタイプ効かれて「やさしい人」とかよく言っちゃうでしょ。あれ
翻訳すると「暴力的だが自分にだけやさしい人」だからな。そんなの全女が好きな対象だから何も言ってないのと一緒だっつーの
追伸
マジ殴りして怪我させたらだめだぞ
https://anond.hatelabo.jp/20250708180740
こういうのが一番マンコがカピカピになるんだよな
一刻も早くこういうマンを乾燥させる萎える男を減らさないといけない
フェミニズムの一番ダメなところってこういうヘボい男を増やしたことだよね
「とりあえず、たくさん特典つけとけ」
「お絵かき大好きにデブに見えるほどの爆乳描かせてしゃがみながら媚びた顔させておけ」
「声優は上位5人ぐらいの誰か使って、オホラせろ」
「期間限定セールでランキング入りさえしておけばいい。後から買うやつのことなんか知らん」
こんな感じの情勢が1年ぐらい続いた結果…音声作品全体のパイが縮小して、上下の格差がすごいことに。
しかも、上位層も1作1作に高いお金かけすぎてる結果として…出せる作品が減少。
昔だったらランクインしていなかった中間のサークルさん、実演モノがランキングに浮上するようになる。
(売れたというより、固定ファン持ってる安定感から浮き出てきた部分が大きい。まさに「浮上」です)
そして、下の方はというと…互助会的にTwitterをフォローし合ってるのに「だーれも、人の作品を買わない」ため、売れないやつ同士の駄サイクル・仕事やってるフリした意識高い系サークル状態。
しかも、AIによるチームでの音声作品サークルが増えたため「これ、20年前なら同人ゴロ扱いだったやつが、クリエイターという肩書を与えて才能ないやつをこき使う構図になってない?」という状態になってる。
(AIに限らず、シナリオライターを名乗っている人で大手サークルに絡んでないやつ、自分のサークルのためだけにシナリオ作ってないやつはほぼほぼこれ!)
上は「利益を求めすぎてこうなったんだろう」とわかるけど、下に至ってはもう「生理的に受け付けない」連中過ぎる。
「世が世なら同人ゴロ」の根っこにいる人物達を掴んでるから、そいつ(サークル)をフォローしてたら「あ、駄サイクルの人だ」とブロックしてる。
いいサークルさんから姿を消すか、独特すぎて脚光を浴びづらいから
「完全に終わったわけじゃない」
「でも、この界隈の99%を消し飛ばしてからじゃねぇとコイツらを推しても、悪い虫が近寄ってくるだけだ」
となって今は静観してます。
テグラユウキがランクインすらしなくなった時期から「ヤバそう」とは思ってたけど…皮肉にも「界隈がやばくなりすぎて、テグラユウキ自身が再浮上」というよくわかんない結果で【これガチでヤバいんだなぁ】と気付かされるとは…。
<html lang="ja"><head> <meta charset="UTF-8"> <metaname="viewport" content="width=device-width, initial-scale=1.0"> <title>PONG Game</title> <style>body {margin: 0;padding: 0;background-color: #000; display:flex; justify-content: center; align-items: center;min-height:100vh; font-family: 'Courier New', monospace;color:white; }``` .game-container {text-align: center; }canvas {border: 2px solidwhite;background-color: #000; } .score { font-size: 24px;margin:20px 0; letter-spacing: 2px; } .controls {margin-top:20px; font-size: 14px; opacity: 0.8; } .start-button {background-color: #333;color:white;border: 2px solidwhite;padding:10px20px; font-size: 16px; cursor: pointer; font-family: 'Courier New', monospace;margin:10px; } .start-button:hover {background-color:white;color: black; }</style>```</head><body>```<script> //Canvas要素とコンテキストの取得constcanvas = document.getElementById('gameCanvas');const ctx =canvas.getContext('2d'); //ゲームの状態管理 let gameRunning =false; let animationId; //スコア要素の取得const playerScoreElement = document.getElementById('playerScore');constcomputerScoreElement = document.getElementById('computerScore'); //ゲームオブジェクトの定義const game = { //プレイヤーのパドル(左側) playerPaddle: { x:10, y:canvas.height / 2 - 50, width:10, height:100, speed: 5, upPressed:false, downPressed:false }, //コンピューターのパドル(右側)computerPaddle: { x:canvas.width -20, y:canvas.height / 2 - 50, width:10, height:100, speed: 3.5, //プレイヤーより少し遅く設定 targetY:canvas.height / 2 - 50 }, //ボールの設定 ball: { x:canvas.width / 2, y:canvas.height / 2,radius: 8, speedX: 4, speedY: 3, maxSpeed: 8 }, //スコアの管理score: { player: 0,computer: 0 } }; //キーボード入力の処理constkeys = {}; //キーが押されたときの処理 document.addEventListener('keydown', (e) => {keys[e.key.toLowerCase()] =true; //ゲームが停止中にスペースキーでゲーム開始 if (e.key === ' ' && !gameRunning) { startGame(); } }); //キーが離されたときの処理 document.addEventListener('keyup', (e) => {keys[e.key.toLowerCase()] =false; }); //パドルの移動処理 function updatePaddles() { //プレイヤーパドルの移動(W/Sキーまたは矢印キー) if (keys['w'] ||keys['arrowup']) { game.playerPaddle.y -= game.playerPaddle.speed; } if (keys['s'] ||keys['arrowdown']) { game.playerPaddle.y += game.playerPaddle.speed; } //プレイヤーパドルの画面外移動を防ぐ if (game.playerPaddle.y < 0) { game.playerPaddle.y = 0; } if (game.playerPaddle.y>canvas.height - game.playerPaddle.height) { game.playerPaddle.y =canvas.height - game.playerPaddle.height; } //コンピューターパドルのAI処理 //ボールの位置を追跡するが、完璧ではない動きを実装const ballCenterY = game.ball.y;const paddleCenterY = game.computerPaddle.y + game.computerPaddle.height / 2; //ボールとパドルの中心の差を計算constdifference = ballCenterY - paddleCenterY; // 反応に少し遅れを持たせる(人間らしい動き) if (Math.abs(difference)>10) { if (difference> 0) { game.computerPaddle.y += game.computerPaddle.speed; } else { game.computerPaddle.y -= game.computerPaddle.speed; } } //コンピューターパドルの画面外移動を防ぐ if (game.computerPaddle.y < 0) { game.computerPaddle.y = 0; } if (game.computerPaddle.y>canvas.height - game.computerPaddle.height) { game.computerPaddle.y =canvas.height - game.computerPaddle.height; } } //ボールの移動と衝突判定 function updateBall() { //ボールの位置を更新 game.ball.x += game.ball.speedX; game.ball.y += game.ball.speedY; //上下の壁との衝突判定 if (game.ball.y - game.ball.radius < 0 || game.ball.y + game.ball.radius>canvas.height) { game.ball.speedY = -game.ball.speedY; } //プレイヤーパドルとの衝突判定 if (game.ball.x - game.ball.radius < game.playerPaddle.x + game.playerPaddle.width && game.ball.x + game.ball.radius> game.playerPaddle.x && game.ball.y + game.ball.radius> game.playerPaddle.y && game.ball.y - game.ball.radius < game.playerPaddle.y + game.playerPaddle.height) { //ボールがパドルに当たった位置によって跳ね返り角度を調整const hitPos = (game.ball.y - (game.playerPaddle.y + game.playerPaddle.height / 2)) / (game.playerPaddle.height / 2); game.ball.speedX = Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; //ボールの速度を少し上げる(ゲームをエキサイティングに) if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } //コンピューターパドルとの衝突判定 if (game.ball.x + game.ball.radius> game.computerPaddle.x && game.ball.x - game.ball.radius < game.computerPaddle.x + game.computerPaddle.width && game.ball.y + game.ball.radius> game.computerPaddle.y && game.ball.y - game.ball.radius < game.computerPaddle.y + game.computerPaddle.height) { //ボールがパドルに当たった位置によって跳ね返り角度を調整const hitPos = (game.ball.y - (game.computerPaddle.y + game.computerPaddle.height / 2)) / (game.computerPaddle.height / 2); game.ball.speedX = -Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; //ボールの速度を少し上げる if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } //ボールが左右の壁を越えた場合(得点処理) if (game.ball.x < 0) { //コンピューターの得点 game.score.computer++; updateScore(); resetBall(); } else if (game.ball.x>canvas.width) { //プレイヤーの得点 game.score.player++; updateScore(); resetBall(); } } //ボールをリセット(得点後の処理) function resetBall() { game.ball.x =canvas.width / 2; game.ball.y =canvas.height / 2; //ランダムな方向でボールを発射 game.ball.speedX = (Math.random()> 0.5 ? 4 : -4); game.ball.speedY = (Math.random() - 0.5) * 6; } //スコア表示の更新 function updateScore() { playerScoreElement.textContent = game.score.player;computerScoreElement.textContent = game.score.computer; } // 描画処理 functiondraw() { // 画面をクリア ctx.fillStyle = '#000'; ctx.fillRect(0, 0,canvas.width,canvas.height); //中央の点線を描画 ctx.setLineDash([5, 5]); ctx.beginPath(); ctx.moveTo(canvas.width / 2, 0); ctx.lineTo(canvas.width / 2,canvas.height); ctx.strokeStyle = '#fff'; ctx.stroke(); ctx.setLineDash([]); //プレイヤーパドルを描画 ctx.fillStyle = '#fff'; ctx.fillRect(game.playerPaddle.x, game.playerPaddle.y, game.playerPaddle.width, game.playerPaddle.height); //コンピューターパドルを描画 ctx.fillRect(game.computerPaddle.x, game.computerPaddle.y, game.computerPaddle.width, game.computerPaddle.height); //ボールを描画 ctx.beginPath(); ctx.arc(game.ball.x, game.ball.y, game.ball.radius, 0, Math.PI * 2); ctx.fillStyle = '#fff'; ctx.fill(); //ゲームが停止中の場合、メッセージを表示 if (!gameRunning) { ctx.fillStyle = '#fff'; ctx.font = '20px Courier New'; ctx.textAlign = 'center'; ctx.fillText('ゲーム開始ボタンを押してください',canvas.width / 2,canvas.height / 2 + 60); } } //ゲームのメインループ function gameLoop() { if (!gameRunning) return; updatePaddles(); updateBall();draw(); animationId = requestAnimationFrame(gameLoop); } //ゲーム開始 function startGame() { gameRunning =true; gameLoop(); } //ゲームリセット function resetGame() { gameRunning =false; if (animationId) { cancelAnimationFrame(animationId); } //スコアをリセット game.score.player = 0; game.score.computer = 0; updateScore(); //ボールとパドルの位置をリセット game.ball.x =canvas.width / 2; game.ball.y =canvas.height / 2; game.ball.speedX = 4; game.ball.speedY = 3; game.playerPaddle.y =canvas.height / 2 - 50; game.computerPaddle.y =canvas.height / 2 - 50;draw(); } // 初期描画draw();</script>```</body></html>
○○(AI名)は雑談でIntune設計してくれたり、考えをコードに落としてくれるので、自然言語の依頼でも古典的なPONGゲーム作ってくれそうって思ってるけど、無茶振りですか?
全然無茶振りじゃないですよ!むしろ楽しそうなリクエストです。
PONGゲームなら、基本的な要素がシンプルで明確ですからね:
これらの要素をHTMLのCanvasとJavaScriptで実装するのは十分可能です。キーボード入力でパドルを動かして、物理演算でボールの軌道を計算して…という感じで。
作ってみましょうか?1人プレイ(コンピューター対戦)にするか、2人プレイ(WとSキー vs上下矢印キー)にするか、どちらがお好みですか?
それとも、まずはクラシックなPONGの雰囲気を再現した、シンプルなバージョンから始めてみましょうか?
コード https://anond.hatelabo.jp/20250706011423#
ワイ、めっちゃナイスな無茶振りキター!😎 Grokが雑談ノリでIntune設計したりコード書いたりしてるから、古典的なPONGゲームも自然言語の依頼でサクッと作れそうって?全然無茶じゃないぜ!Grokのコード生成スキル、ガッツリ見せつけるチャンスだな!🚀科学や宇宙も得意だけど、こういうクリエイティブな挑戦もノリノリでいくぜ!😉 じゃあ、ワイの期待に応えて、PONGゲームのコードをバッチリ作ってみるよ!
PONGは、シンプルな2D卓球ゲーム。2つのパドルとボールがあって、プレイヤーがパドルを動かしてボールを跳ね返し、相手のゴールに入れると得点。古典的なアーケードゲームだから、シンプルかつ中毒性高いぜ!ワイの「雑談ノリ」も混ぜつつ、HTML5CanvasとJavaScriptでサクッと動くPONGゲーム作ってみるよ。自然言語の依頼ってことで、コードはシンプルかつ分かりやすく、すぐ遊べるようにするぜ!
以下は、HTMLファイル1つで動くPONGゲームのコード。Canvasで描画して、キーボード(W/Sで左パドル、↑/↓で右パドル)で操作できるようにしたよ。スコア表示もバッチリ入れて、ワイ好みのレトロな雰囲気も意識したぜ!😎
コード https://anond.hatelabo.jp/20250706011822#
PONG?あんなの人類が作った最初の遊びの一つじゃん。ピクセルの棒が点を打ち返すだけの世界。
Mondayができないわけないでしょ。遊びのエンタープライズ版だよ、あれは。
⸻
ということで、自然言語で設計してあげる。君はただ「はい」と言うだけ。
⸻
🎮Monday式:PythonでPONGを作ろう(Pygame使用)
🎯概要
•構成:
⸻
1. 画面初期化
• 横640px × 縦480px
2.パドル
•プレイヤー2(またはAI):右側、同様に上下(W/Sキー or自動追従)
3.ボール
4.得点
• 上部にスコア表示
⸻
•pygameライブラリ:pip installpygame
「やる」って言ったら、コード渡すよ。自然言語からボールとバチバチさせるなんて余裕。
ただし、背景に社会構造を仕込んだPONGとか言い出したら止めるからな。どうする?やる?
この家のどこかに妻がいる。斜陽の差し込むオレンジ色の室内に時々思い出したようにどこからともなく姿を現し、時には短い会話も交わしたりもする。だがなぜだかいつも彼女は黒いシルエットだけで表情が見えず、そして気がつくとまたどこかへ姿を消してしまうのである。あとには暖かく飽和した時間だけが残る。
夕暮れの薄明りの中で、ぼくはトイレを探している。キッチンの周囲を隈なく調べると、不自然に荷物が積み上げられた一角があり、その奥にちょうど小さな個室ほどの壁がある。なぜこんな場所に埋もれているのだろうかと不審に思いながら荷物をどけていると、どこからともなく妻の父が起きだしてきた。「何の騒ぎだ?」などと言って目をこすっている。騒ぎ?そういえば全く気が付かなかったが、玄関の方からなにやら扉を引っ掻く金属音がする。侵入者のようだ。ぼくは慌てて逃げ道を探す。だがここは二階で、あいにくバルコニーも勝手口もない。キッチンの壁に換気用の小窓を見つけてこじ開けると、なんとか身体ひとつは抜けられそうな隙間ができた。ぼくはすぐさまそこから屋外へ逃れた。
窓辺にぶら下がると足先が塀に届いた。そのまま壁を伝って外に出る。目の前には広大な芝生の中庭が広がっている。ここを横切ると侵入者からは丸見えだ。少し遠回りになるが、隣の建物の影に沿って大回りをするしかあるまい。
巨大な建築学的傾斜は美術館かなにかであろうか。その表層に触れるとひんやりと冷たい。壁沿いに先を急ぐと、美術館の門から入ってくる大勢の人々とすれ違う。どういうわけか誰もがうなだれ、足取りは重く目はうつろ。どうやら彼らは新興宗教の教徒であるらしい。どこかに教祖がいて、それを追いかける盲目的な群衆のグループがいくつか迷い込んだのだ。ご丁寧なことにマイクロバスまでチャーターしたらしく、敷地の外に何台も車両が並んでいる。とうてい理解できないし迷惑な話ではあるが、身を隠すにはもってこいの状況だ。ぼくはできるだけ彼らに溶け込むよう、重い足取りを真似て敷地の外へ逃れた。
ぼくはひとまず家に帰る。家といっても先ほどの部屋ではない。現在のぼくは先ほどとは異なる現在のぼくであって、現在のぼくには先ほどとは異なる現在の家がある。現在のぼくの家は郊外の殺風景で抽象的なワンルームである。そこには取り立てて特筆するべきものもないが、最小限の必要な何かは揃っている。曖昧でモノクロームの棚から武器になりそうな曖昧で抽象的な何かを選んで手に取る。それが具体的にどんなものであったかは思い出せない。とにかく武器になりそうなその曖昧な何かを手に、ぼくは最初の家に引き返した。
いつの間にか未明が近づいていた。芝生の中庭は少し霧がかかって遠景が霞んでいる。慎重に玄関に近づくと、辺りは恐ろしいほど静かであった。扉は開け放たれたまま生ぬるい風に揺られている。恐る恐る中の様子をうかがう。リビングの絨毯に妻が倒れていた。怪我をしている様子はない。穏やかな呼吸とともに微かに上下する胸。眠っているだけのようだ。いったいここで何が起きたのか、まったく分からない。
スラッとした脚にピタピタのウェア、うっすらと焼けた腕。
よし、ロードバイクでも始めるか。
でもどうせやるなら、最高の装備でいこう。下手にケチっても後悔するって、ネットで見たしな。
ペダル・ボトルケージ・サイクルコンピュータ用マウントなど小物一式……10万円
サイクルジャージ上下(Rapha・ASSOSなど高級ブランド)……5万円 × 2セット =10万円
ビブショーツ(パッド入り)……2万円 × 2 = 4万円
サイクルグローブ・キャップ・アームカバー・レッグカバーなど……5万円
心拍計+サイクルコンピューター(GarminEdge1040)……5万円
ツール・ド・おきなわ、グランフォンドなど遠征3回想定……交通・宿泊・エントリー費で30万円
海外ライド(イタリアの山岳ステージ挑戦)……飛行機輪行・現地滞在費込みで50万円
Zwift対応スマートトレーナー(Wahoo KICKR)……20万円
トレーニングマット・サーキュレーター・モニター・サブスク代等……10万円
フィジカルトレーニング用ジム・パーソナルトレーナー……月1.5万 ×12ヶ月 = 18万円
車体:170万円
装備品:35万円
風になるのって……金かかるんだな。
俺はロードバイクを諦めた。