[{"data":1,"prerenderedAt":1172},["ShallowReactive",2],{"recommendations-map":3,"recommendations-all-threads-ja":26,"$fKm6xXf2qvzxjcoYg8BZ5q9o-6EPLQd0oXAocpDUxPPU":1090},{"effective-engineer-talks-at-google":4,"encounter":9,"liuyi-english-school":11,"recap-2025":12,"sankahakuu":13,"bubble-tea":14,"face-mask":16,"tokyo-wide-sanpo":18,"about":19,"cord-land":20,"reelly":23,"threadspage":25},[5,6,7,8],"encounter","liuyi-english-school","recap-2025","sankahakuu",[10,6,7,8],"effective-engineer-talks-at-google",[10,5,7,8],[10,5,6,8],[10,5,6,7],[15],"face-mask",[17],"bubble-tea",[],[],[21,22],"threadspage","reelly",[21,24],"cord-land",[24,22],[27,378,424,524,596,647,699,721,752,796,843,906],{"id":28,"title":29,"animated":30,"body":31,"client":357,"cover":358,"css_code":357,"description":359,"extension":360,"html_code":357,"images":361,"is_announcement":30,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":364,"navigation":362,"order":357,"path":366,"photos":367,"published_at":368,"reading_time":357,"related":357,"role":357,"seo":369,"slug":10,"source_hash":370,"status":357,"stem":371,"summary":372,"tags":373,"tech_stack":357,"translation_of":10,"type":376,"url":357,"video_url":357,"__hash__":377},"threads/threads/articles/effective-engineer-talks-at-google.ja.md","《The Effective Engineer》著者エドモンド・ラウによる解説、インパクトを最大化する！！シリコンバレーのエンジニアが実践していること",false,{"type":32,"value":33,"toc":346},"minimark",[34,43,46,57,66,75,78,91,94,101,104,121,127,130,141,150,153,160,163,167,174,179,186,189,192,195,198,205,212,215,222,225,228,231,238,241,244,247,258,265,268,275,278,285,288,293,296,299,302,305,311,314,318,325,328,332,335,342],[35,36,37,38,42],"p",{},"夕方の食事時間、VSCode上の抽象化されたコード、ターミナルの厄介なエラーメッセージを眺めていると、Slackから緊急のバグチケット通知が飛び込んでくる。画面右上の時計は、いつの間にかまた1時間経過していた。退勤時間はとっくに過ぎているのに、今日の進捗はようやく始まったばかり。思わずため息が出る。",[39,40,41],"strong",{},"仕事は山登りと同じで、帰り道の方が登り道より大変だ","。",[35,44,45],{},"こんな時期を経験したことはないだろうか。仕事中は常にやることが尽きず、今日の進捗は次々と後ろにずれていき、毎週金曜日はほぼ夜中の12時まで残業している。心の中で自分を疑い始める。技術力が足りないのか、効率が悪いのか、それとも本当に仕事が多すぎるのか。",[35,47,48,49,56],{},"最近、複数の技術ブログが",[50,51,55],"a",{"href":52,"rel":53},"https://www.effectiveengineer.com/book",[54],"nofollow","《The Effective Engineer》","という本を推薦しているのを見かけた。非常に役に立つと言われているので、思い切ってじっくり読んでみることにした。将来、自分もeffective engineerになれることを願って。",[35,58,59,60,65],{},"まず著者の",[50,61,64],{"href":62,"rel":63},"https://www.youtube.com/watch?v=BnIz7H5ruy0",[54],"Talks at Googleでの講演","を見た。この講演は《The Effective Engineer》の主要な内容をカバーしている。本記事では講演内容の重要なポイントをまとめる。本を読み終わったら、別の記事で詳しく発表する予定だ。",[35,67,68,69,74],{},"著者の",[50,70,73],{"href":71,"rel":72},"http://www.effectiveengineer.com/about",[54],"エドモンド・ラウ","は、Google などの有名なシリコンバレーの大企業やQuoraなどのスタートアップで働いてきた。彼は連続2年間、毎週80時間以上働き、その後さらに2年間、フルタイムでeffective engineerになるための方法を研究した。",[35,76,77],{},"シリコンバレーの科学技術大手企業およびスタートアップ（Facebook、Instagram、Dropbox、Etsyなど）の20社以上のCTOと技術の第一人者にインタビューし、以下の3つの質問をした：",[79,80,81,85,88],"ul",{},[82,83,84],"li",{},"What separates the most effective engineers you have worked with from everyone else?（効率的なエンジニアを普通のエンジニアと区別する要因は何か？）",[82,86,87],{},"What is the most valuable lesson you have learned in the past year?（過去1年間で学んだ最も貴重な教訓は何か？）",[82,89,90],{},"What investment you have made for your team has paid off the highest returns?（チームへの投資の中で、最も高いリターンをもたらしたものは何か？）",[35,92,93],{},"すべてのソフトウェアエンジニアが学べる効率的な仕事のやり方をまとめた。著者はこれを「leverage framework」と呼んでいる。",[35,95,96,97,100],{},"この本には1行のコードも出てこない。本で述べられているのは、ソフトウェアエンジニアとして、",[39,98,99],{},"high-leverage activitiesを実行することで自分のインパクトを最大化し、自分の価値と影響力をレバレッジする","方法である。",[35,102,103],{},"著者は私たちに厳しい現実を理解させる：",[105,106,111],"pre",{"className":107,"code":108,"language":109,"meta":110,"style":110},"language-javascript shiki shiki-themes github-dark","effort === impact // False\n","javascript","",[112,113,114],"code",{"__ignoreMap":110},[115,116,119],"span",{"class":117,"line":118},"line",1,[115,120,108],{},[122,123,124],"blockquote",{},[35,125,126],{},"努力は影響力と貢献に等しくない",[35,128,129],{},"スタッフエンジニアの生産性は、ジュニアエンジニアの10倍かもしれないが、前者の労働時間が10倍になることはあり得ない。",[35,131,132,133,136,137,140],{},"著者はここで本書の核心概念「",[39,134,135],{},"leverage","」を提示する。これは増幅器であり、あなたの努力を巨大な産出と影響力に変換でき、同時に",[39,138,139],{},"日常の開発業務を突破するための支点","である。以下はleverageの計算式である：",[105,142,144],{"className":107,"code":143,"language":109,"meta":110,"style":110},"leverage = impactProduced / timeInvested\n",[112,145,146],{"__ignoreMap":110},[115,147,148],{"class":117,"line":118},[115,149,143],{},[35,151,152],{},"エンジニアの日常開発も80/20の法則に従う。20%のタスクが80%の価値と影響を生み出し、80%のタスクはわずか20%の成果しかもたらさない。",[35,154,155,156,159],{},"著者は、最小限の時間で最大の価値と影響を生み出すことができるものを識別し、優先的に実行することを勧める。これらの影響が重大な事柄を",[39,157,158],{},"high-leverage activities","と呼ぶ。",[35,161,162],{},"講演では、著者は以下の5つのhigh-leverage activityを挙げた。それぞれを見ていこう！",[164,165,166],"h3",{"id":166},"学習を最適化する",[35,168,169,170,173],{},"最初のhigh-leverage activityは、自分の学習能力を最大化することである。なぜなら、",[39,171,172],{},"学習は複利効果を持つから","だ！だから早く進歩を始めるほど、進歩の幅が大きく、学習能力が高いほど、進歩が速い。",[122,175,176],{},[35,177,178],{},"Learning compounds!",[35,180,181,182,185],{},"学習が複利効果を持つため、能力の成長曲線は",[39,183,184],{},"指数関数的に増加","する。最初はゆっくり上昇し、ほぼ平らだが、ある臨界点を過ぎると、ほぼ垂直に上昇する。",[35,187,188],{},"これは実際の事実とも一致している。難しい問題に取り組むときは、異なる側面の知識を蓄積する必要があり、知識が線でつながると、問題を解く解法が見えてくる。",[35,190,191],{},"著者は古典的な例を挙げた。毎日1%進歩すれば、1年後には37倍進歩する！",[35,193,194],{},"努力して学ぶことは誰もが知っているが、難しいのは、日常の開発業務やバグの爆撃に埋もれてしまうことだ。毎日やることが終わらないのに、どうやって学習の時間を作るのか？",[35,196,197],{},"本の中で、著者はGoogleの例を挙げた。従業員の生産性と創造性を向上させるため、Googleは20% Timeを導入した。毎週1日を本職以外のことに充てて、新しい技術を研究したり、興味のあるプロジェクトをしたりする。例えば、Gmailは20% Timeから生まれた。",[35,199,200,201,204],{},"しかし、一般的な企業の従業員は毎週1日を空けることはできない。そこで著者は、",[39,202,203],{},"毎日1時間の勤務時間を確保して、自分たちの20% Timeを実行する","ことを提案している。",[35,206,207,208,211],{},"学習に関する最後の点として、著者は、自分が興味を持つことや、仕事で直面している問題から研究を始めることを勧めている。なぜなら、",[39,209,210],{},"動機","は常に行動を続けるための最も重要な要素だからだ。",[164,213,214],{"id":214},"イテレーション速度への投資",[35,216,217,218,221],{},"2番目のhigh-leverage activityは、繰り返し作業の処理速度を加速させることである。これは、コードの一部を関数として書くべきかどうかを判断する方法と同じだ。何かを2回目に繰り返すときは、",[39,219,220],{},"3回目の作業が自動化できるように","工夫すべきだ。",[35,223,224],{},"著者が各CTOに、効率的なエンジニアを普通のエンジニアと区別する要因は何かと聞いたとき、彼らは答えた：「自動化ツールを書くために時間を投資するエンジニアは、往々にして最も効率が高い」と。",[35,226,227],{},"ここで言うツールは、シェルスクリプトのような小さなものから、CI/CDの自動化インフラ全体まで、すべてを含む。",[35,229,230],{},"著者は例を挙げた。彼がQuoraで働いていたとき、平均して毎日40～50回のデプロイを行っていた。CI/CDの自動化プロセスがなければ、どれほど膨大な時間がかかるか想像できるだろう。",[35,232,233,234,237],{},"多くのシリコンバレーの大企業は、内部開発ツールを構築するための専門チームを持っている。例えば、Facebookはreact.jsを開発した。著者は言う：「",[39,235,236],{},"私たちは皆、新しいトレンディなフレームワークの作者になりたいと思っているが、実は日常の開発から始めることができるんだ","！」",[164,239,240],{"id":240},"積極的かつ反復的にアイデアを検証する",[35,242,243],{},"3番目のhigh-leverage activityは、実装段階に入る前に、機能の実現可能性を検証し、不要な時間と人力の浪費を避けることである。",[35,245,246],{},"例えば、Etsyは製品検索結果ページを無限スクロール可能に変更した。上線前に、A/Bテストを実施したところ、クリック率と変換率がそれぞれ10%と25%低下したことが判明した。その結果、この機能は最終的に上線できず、数ヶ月の時間と人力が無駄になった。",[35,248,249,250,253,254,257],{},"この経験を踏まえて、Etsyは製品コンテンツページを修正するときに、",[39,251,252],{},"段階的な","アプローチを採用した。やりたいことを",[39,255,256],{},"検証可能な前提仮説","に分解し、製品に役立つことを確認してから、本当に開発を始める。",[35,259,260,261,264],{},"著者は、プロジェクトでは、",[39,262,263],{},"不確実で危険なことほど、最初に実行すべき","だと言う。その後、無駄な作業を避けるために。",[164,266,267],{"id":267},"運用負担を最小化する",[35,269,270,271,274],{},"4番目のhigh-leverage activityは、日常的なメンテナンスコストを削減することである。著者は講演で",[39,272,273],{},"複雑性 complexity","の議論に重点を置いている。",[35,276,277],{},"InstagramがFacebookに買収されたとき、4000万人のユーザーにサービスを提供していたが、従業員はわずか13人で、そのうちエンジニアは5人だけだった。どの角度から見ても、彼らは間違いなく超効率的なチームだ。",[35,279,280,281,284],{},"著者は彼らのCTOにインタビューし、これを実現した要因は何かと聞いた。CTOの答えは：「私たちは",[39,282,283],{},"問題を解決するための最もシンプルな方法だけを採用する","。エンジニアたちは互いに詰問し、その後のメンテナンスコストを増やさないことを確認してから、開発を進める」だった。",[35,286,287],{},"著者は、複雑性の影響は小さいものから大きいものまで存在する可能性があると言う。",[122,289,290],{},[35,291,292],{},"code complexity -> system complexity -> product complexity -> organization complexity。",[35,294,295],{},"複雑なコードはエンジニアの理解とコミュニケーションコストを増加させ、システムの複雑性はメンテナンスコストを増加させ、製品機能の複雑性が高いほど、将来の機能開発の難度が増し、組織の複雑性さえも開発チームの効率に影響を与える。",[35,297,298],{},"著者はかつてハワイで休暇を取っていたが、ちょうど彼だけが理解しているシステムに問題が発生し、火山の上にはバグを処理するためのネットワークがなかったため、彼は直接single point of failureになってしまった⋯⋯",[35,300,301],{},"そこで著者はメンタリングを重視し始め、詳細なオンボーディング文書とプロセスを作成した。元々は入社3ヶ月のエンジニアがコードベースを理解していたが、今は入社したばかりのエンジニアが第1週目からプロダクションに貢献できるようになった。これは本当に巨大な効率改善だ！",[164,303,304],{"id":304},"優れたエンジニアリング文化を構築する",[35,306,307,308,42],{},"5番目のhigh-leverage activityは、優れた開発チーム文化を構築することである。エンジニアたちは良い環境で働きたいと思っている。",[39,309,310],{},"leverage activitiesに焦点を当てることは、正のループになり、効率の向上がますます順調に進む",[35,312,313],{},"最後にいくつかのQ&A：",[164,315,317],{"id":316},"q-テストを書くことは必要だが時間がかかるより効率的なテスト方法はないか","Q: テストを書くことは必要だが、時間がかかる。より効率的なテスト方法はないか？",[35,319,320,321,324],{},"A: ",[39,322,323],{},"重要な部分がすべてテストでカバーされていることを確認","し、頻繁な変更の下でエラーが発生しないことを目標にできる。",[35,326,327],{},"システム全体が100%のテストカバレッジを持つ必要はない。あまり使われない場所にテストを書くことは、時には無駄かもしれない。",[164,329,331],{"id":330},"q-あなたが挙げた例はすべてスタートアップまたは小規模な企業だ複雑性を低減することについて大企業にも適用できる方法はあるか","Q: あなたが挙げた例はすべてスタートアップまたは小規模な企業だ。複雑性を低減することについて、大企業にも適用できる方法はあるか？",[35,333,334],{},"A: スタートアップの利点は、みんなが直接コミュニケーションを取りやすいことだが、大企業にも利点がある。例えば、歴史的データにアクセスしやすい。",[35,336,337,338,341],{},"Googleの例を挙げると、それは非常にデータ駆動型の企業なので、",[39,339,340],{},"データに語らせ、意思決定者に影響を与えて"," leverage activitiesを実行させることができる。",[343,344,345],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":110,"searchDepth":347,"depth":347,"links":348},2,[349,351,352,353,354,355,356],{"id":166,"depth":350,"text":166},3,{"id":214,"depth":350,"text":214},{"id":240,"depth":350,"text":240},{"id":267,"depth":350,"text":267},{"id":304,"depth":350,"text":304},{"id":316,"depth":350,"text":317},{"id":330,"depth":350,"text":331},null,"/images/effective-engineer.jpg","夕方の食事時間、VSCode上の抽象化されたコード、ターミナルの厄介なエラーメッセージを眺めていると、Slackから緊急のバグチケット通知が飛び込んでくる。画面右上の時計は、いつの間にかまた1時間経過していた。退勤時間はとっくに過ぎているのに、今日の進捗はようやく始まったばかり。思わずため息が出る。仕事は山登りと同じで、帰り道の方が登り道より大変だ。","md",[],true,"ja",{"readingTime":365},8,"/threads/articles/effective-engineer-talks-at-google.ja",[],"2023-05-11",{"title":29,"description":359},"a2b46b97e0bddf9485e4d8eb9e026812b05c371f96e78cc443ada860da0ad53d","threads/articles/effective-engineer-talks-at-google.ja","毎日1時間の勤務時間を確保して、自分たちの20%タイムを実行する。",[374,375],"effective engineer","high leverage","article","gRiD-H3jnDQ5ky0XSRsDulxof7MClwDk2o3FU2neq9Y",{"id":379,"title":380,"animated":30,"body":381,"client":357,"cover":357,"css_code":357,"description":110,"extension":360,"html_code":357,"images":409,"is_announcement":30,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":410,"navigation":362,"order":357,"path":411,"photos":412,"published_at":413,"reading_time":357,"related":357,"role":357,"seo":414,"slug":5,"source_hash":415,"status":357,"stem":416,"summary":417,"tags":418,"tech_stack":357,"translation_of":5,"type":376,"url":357,"video_url":422,"__hash__":423},"threads/threads/articles/encounter.ja.md","出会い",{"type":32,"value":382,"toc":407},[383,388,391,394,397,399,401,404],[122,384,385],{},[35,386,387],{},"演奏曲に歌詞はないが、君は聞こえるだろう。",[35,389,390],{},"冬の去来を聞く\n僕はある年のある月に目覚めた\n待ちたい 待ちたい 期待したい\nでも未来はそれで決まるわけじゃない",[35,392,393],{},"曇りの日 夕暮れ 車窓の外\n未来のどこかで誰かが待っている\n左へ 右へ 前を見て\n愛はいくつの角を曲がってくるのか?",[35,395,396],{},"誰に出会うのか どんな言葉を交わすのか?\n待ってる人は どのくらい遠い未来にいるのか?\n風が聞こえる 地下鉄と人波から\n僕は列に並んで 愛の整理券を握ってる",[35,398,393],{},[35,400,396],{},[35,402,403],{},"僕は前へ飛ぶ 時間の海を越えて\n僕たちも愛の中で傷ついたことがある\n道を見つめる 夢の入口は少し狭い\n君に出会ったことが最も美しい偶然",[35,405,406],{},"いつかきっと 僕の謎は解き明かされるだろう",{"title":110,"searchDepth":347,"depth":347,"links":408},[],[],{},"/threads/articles/encounter.ja",[],"2019-09-17T00:00:00.000Z",{"title":380,"description":110},"8483664d03ad880c099c4472a0d302f1d724ef857ebd4dcedd3aea55bc98db99","threads/articles/encounter.ja","ウクレレバージョン",[419,420,421],"ukulele","fingerstyle","cover","https://www.youtube.com/watch?v=U5YBtGQbHu4","-Y1U4tku0uzuGIyH58ktwfUa7q06cNoznm4VVBIHAO8",{"id":425,"title":426,"animated":30,"body":427,"client":357,"cover":512,"css_code":357,"description":110,"extension":360,"html_code":357,"images":513,"is_announcement":30,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":514,"navigation":362,"order":357,"path":515,"photos":516,"published_at":517,"reading_time":357,"related":357,"role":357,"seo":518,"slug":6,"source_hash":519,"status":357,"stem":520,"summary":521,"tags":522,"tech_stack":357,"translation_of":6,"type":376,"url":357,"video_url":357,"__hash__":523},"threads/threads/articles/liuyi-english-school.ja.md","子どもたちの南陽街と大人たちの予備校",{"type":32,"value":428,"toc":510},[429,434,437,440,443,446,449,456,459,462,465,468,471,474,479,490,497],[122,430,431],{},[35,432,433],{},"「これからの大学4年間は、君たちの人生で最も充実した日々になるだろう。」",[35,435,436],{},"Wayne先生の確かな口調は、私たちへの予告というより、むしろ思い出を語っているようだった。「高校時代に素晴らしいと思っていた大規模な学園祭や深い恋愛が、実はこんなに幼稚だったんだと気づくよ。大学では、いつだって君たちをもっと興奮させることがある。この時間を本当に大切にしてほしい。人生で最も充実していて、最も心配事のない時期は、もしかしたら本当にこの大学の4年間だけかもしれないからね。」",[35,438,439],{},"これは高校3年生の時に、劉毅英文の授業で最も心に残った言葉だ。私たちより10歳年上のWayne先生は、高校生にとって年上の大人というより、同じ立場の存在だった。授業の合間に時々語られる彼の思い出は、本に囲まれた私たちが仰ぎ見る未来だった。大学に進学すれば、もう大人だ。自由がすぐそこにあるような気がするけれど、それはどんな感覚なのだろう？",[35,441,442],{},"『子どもたちの南陽街と大人たちの予備校』は、高校生たちの青春の日々を記録し、同時に大人たちの予備校事業を報告する回想録だ。最初、私は聴講生として座っていた。本が出版された後、私は未来について考え始めるべき（だが先延ばしにしていた）3年生になった。再び読み返す時には、すでに2年間働いており、理想の職場へ転職したサラリーマンになっていた。本書を読むたびに異なる体験ができる。少年が雨音を聞く時のような感覚だ。",[35,444,445],{},"最大の違いは、初めて読んだ時は、学生の部分に完全に焦点を当てていたことだ。この学生は変わっているな、この学生の悩みは自分も持っているなど、そう思っていた。再び読み返す時には、自然とWayne先生が予備校で経験したことに目が向き、管理職の間で揺れ動く彼の苦労に気づいた。",[35,447,448],{},"同時に気づいたのは、当時毎週水曜日の夜を心待ちにしていた、大人の自由な世界を垣間見ることができると感じていた模試解説の時間が、実は着実な努力、苦い経験、さらには自己懷疑を経て、初めて私たちの前に現れていたということだ。社会に出て働くようになってから、華やかさの背後にある苦労に気づくようになった。",[35,450,451,452,455],{},"本書の著者 蔡世偉 ",[112,453,454],{},"@waynetsai1984"," は予備校講師であり、有名な英語翻訳者だ。翻訳した書籍には『アトミック・ハビット』『ゲーリー・ヴェイナーチャック自伝』『マイケル・ジョーダン自伝』『マンバ・メンタリティ』『毎日の目覚め』などがある。",[35,457,458],{},"本書は全3部構成で、「あの学生たちが教えてくれたこと」「予備校のあれこれ」、そして隠し要素の「授業間の雑談」からなっている。",[35,460,461],{},"「あの学生たちが教えてくれたこと」は、Wayne先生が予備校で教えた個性的な学生たちについてだ。親に厳しく管理されている森哥、山本五十六を愛する軍事オタク、試験とお菓子作りの両方で最高峰に達した北一女のお菓子職人。言及されている各高校生は、大学入試共通テストや二次試験という品質管理基準に合わせるべく、標準化された高等教育の製造過程の中で、特に目立っている。目立つ理由は、特に好きな趣味、特に得意なスキル、あるいは特に従順で反抗しないことかもしれない。この部分を読み終わった後、ピンク・フロイドのバンドの『アナザー・ブリック・イン・ザ・ウォール』を思い出さずにはいられない。教育は本当に私たちをより良くするのか、それとも一種の選別機制なのか？",[35,463,464],{},"「予備校のあれこれ」は、Wayne先生が劉毅英文で経験したことを記録している。業界入りから予備校の看板講師になるまで。華やかな講台から授業後の準備時間、そして予備校の管理職との間での調整まで。その中で最も印象に残っているのは、予備校の経営者・劉毅がWayne先生に言った「君のことが嫌いだ！」という言葉だ。それでもなお、Wayne先生は本書で劉毅先生を非常に尊敬していると述べている。その最大の理由は、劉毅が英語を教えることへの情熱に感動したからだ。劉毅は講台で「万が一、俺が急に死んでも構わない。講義資料はすべて編集済みだし、他の講師が代わりに教えていくだろう」と言ったことがある。",[35,466,467],{},"自分が高校時代に予備校に通っていた時、毎学期、劉毅出版社が新しく編集した単語帳、文法書、構文書をもらっていた。実際にはそれほど多くの人が読んでいなかったかもしれないが、自分が大切にしていることに対して、他の誰でもなく自分がやるという態度を示すその精神は、私を深く感動させた。",[35,469,470],{},"「授業間の雑談」は、Wayne先生が読書の中で深く啓発された十数の文章を抜粋し、彼の人生経験を加えて証明したもので、本書の中で私が最も好きな部分だ。日本の出版社・幻冬舎の経営者・見城徹は「重要なのは本に何が書かれているかではなく、自分がどう感じるかだ」と言ったことがある。授業間の雑談を読んでいる時、その言葉が突然頭に浮かんだ。",[35,472,473],{},"Wayne先生は読書を愛し、自分の人生経験を通じて著者たちと対話している。『子どもたちの南陽街と大人たちの予備校』を読むことで、人生で私たちより先を歩んでいる人たちが、何度も考え、答えを出した問題を見ることができる。同時に、これらの悩みを持っているのは自分だけではないことも知ることができる。自分の人生を自分で生きていかなければならないが、私たちは孤独ではない。😉",[122,475,476],{},[35,477,478],{},"The reading of all good books is like conversation with the finest men of past centuries. - René Descartes\n良い本を読むことは、過去の世代の傑出した人物たちと対話することのようなものだ。 - ルネ・デカルト",[35,480,481,482,485,486,489],{},"デジタル化の波が押し寄せている中、誰もがその影響を避けることはできない。Readmooと一緒に、文字の海の中で風に乗って進もう！以下のリンクをクリックして",[39,483,484],{},"Readmoo会員に登録","し、30日以内の初回購入で",[39,487,488],{},"21%割引","、60日以内の単一注文で満額購入時に**$100購書金**をもらおう！",[35,491,492,493],{},"今すぐ登録 👉 ",[50,494,495],{"href":495,"rel":496},"http://moo.im/i/DbsBO",[54],[35,498,499,500,505,506],{},"今すぐ購入",[50,501,504],{"href":502,"rel":503},"https://readmoo.com/book/210208251000101",[54],"『子どもたちの南陽街と大人たちの予備校』","で、大人の世界に憧れた夏の思い出を呼び起こそう 👉 ",[50,507,508],{"href":508,"rel":509},"https://moo.im/a/3fglvC",[54],{"title":110,"searchDepth":347,"depth":347,"links":511},[],"/images/wayne-english-teacher.png",[],{},"/threads/articles/liuyi-english-school.ja",[],"2021-09-05T00:00:00.000Z",{"title":426,"description":110},"ec0208e550a48a8b6bcbb5b4701d9994019a93adc2a312c41a363531c4ead9ad","threads/articles/liuyi-english-school.ja","大学に進学すれば、もう大人だ。自由がすぐそこにあるような気がするけれど、それはどんな感覚なのだろう？",[],"H1E2yNBj6U_ZrSHYeCMUPMnfp0Nrq3up5mzTKQvZcts",{"id":525,"title":526,"animated":30,"body":527,"client":357,"cover":357,"css_code":357,"description":531,"extension":360,"html_code":357,"images":583,"is_announcement":30,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":584,"navigation":362,"order":357,"path":585,"photos":586,"published_at":587,"reading_time":357,"related":357,"role":357,"seo":588,"slug":7,"source_hash":589,"status":357,"stem":590,"summary":591,"tags":592,"tech_stack":357,"translation_of":7,"type":376,"url":357,"video_url":357,"__hash__":595},"threads/threads/articles/recap-2025.ja.md","2025年の断片",{"type":32,"value":528,"toc":581},[529,532,535,538,541,544,547,550,553,556,559,562,564,567,570,573,575,578],[35,530,531],{},"今年一年を通じて、週3日のジム通い、有酸素運動1時間という良い習慣を保ち続けた。規則正しい運動と健康的な食事は、本当に原始的な喜びを感じさせてくれる！",[35,533,534],{},"脳内物質の放出と体が軽くなる感覚は本当に最高！みんなが体型が最高の名刺だと言う理由がわかる。だって運動って本当に時間がかかるんだもん。🤣",[35,536,537],{},"10月に初めて海外でのドライブ旅行に出かけ、シリコンバレーの友人を訪ねた。アメリカの時間、アメリカの生活を体験した。特休も費用もかなり使ったけど、本当に価値があると思う。思い出は複利で増えていくから！",[35,539,540],{},"私はずっと思っていた。時間には思い出を美化する力がある。時間は苦い思い出にフィルターをかけ、楽しい思い出にシャッターを切る。",[35,542,543],{},"10年前に初めて東京にいた興奮を今でも鮮明に感じることができるし、ずっと先の将来、このアメリカ旅行の喜びを再び味わえることを確信している。",[35,545,546],{},"/",[35,548,549],{},"去年インディーハッキングという分野を発見してから、1年以上独立開発に取り組んでいる。今年8月に最初の製品をリリースした。マークダウンでコード譜を書くツール『Chord Island』だ。でもニッチすぎて、あまり使ってくれる人がいない。",[35,551,552],{},"製品を継続的に露出させるディストリビューションチャネルがなくて、リリース当週だけ波紋を起こして、翌週にはGA4のグラフが静かに戻ってしまった。",[35,554,555],{},"ただユーザーインタビューをしている時に、すごいギタリスト（Marcinの曲をカバーできるレベル）に出会えたのは素晴らしい収穫だった！",[35,557,558],{},"独立開発は何かを学ぶのと同じ。先人の経験を参考にすることはできるけど、実際には自分で一度通り抜けて、同じ落とし穴に落ちてこそ本当に学べることがある。これが知識と経験の関係なんだと思う。",[35,560,561],{},"開発以外のスキルを補うために、英語の本をいくつか読んだ：My Indie Book、Snow Leopard、Obviously Awesome、The SaaS Playbook、The Cold Start Problem。今後の製品に関連する気づきがあれば、また記事で共有しよう！実装が大事！",[35,563,546],{},[35,565,566],{},"今年は長い間憧れていたギター講師のレッスンも始めた。授業では普段自分が気づかないような細かい部分を発見することが多く、実はそこに多くの学問が隠れている。6本の弦と腕ほどの大きさのボディの中に、本当に宇宙が隠れている！",[35,568,569],{},"こういう時はいつも、対面教学の価値を深く感じる。今はYouTubeとAIで、学べないものはほぼないけど、経験と「自分が何を知らないかを発見する能力」は、やっぱり先生が必要だ。",[35,571,572],{},"こういう時は、つらい思いをして仕事をして稼いだお金にようやく意味が出てきたと感じる。学びたいことを学ぶために学費を払える。",[35,574,546],{},[35,576,577],{},"2026年の新年の抱負は、毎年と同じ。毎年同じ願いをしなくて済むことを願う。",[35,579,580],{},"そんな感じで～💪🏻",{"title":110,"searchDepth":347,"depth":347,"links":582},[],[],{},"/threads/articles/recap-2025.ja",[],"2025-12-31T00:00:00.000Z",{"title":526,"description":531},"a2fef0ef5ec122b46630a96372a1e33a82b3a542ca886cd7de21b0717cbc7345","threads/articles/recap-2025.ja","時間には思い出を美化する力がある。時間は苦い思い出にフィルターをかけ、楽しい思い出にシャッターを切る。",[593,594],"2025","recap","TrUw-WoVb-Ae9YEWfSrRV98s76dYVyUiGFfCDROpy3E",{"id":597,"title":598,"animated":30,"body":599,"client":357,"cover":633,"css_code":357,"description":603,"extension":360,"html_code":357,"images":634,"is_announcement":30,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":635,"navigation":362,"order":357,"path":636,"photos":637,"published_at":638,"reading_time":357,"related":357,"role":357,"seo":639,"slug":8,"source_hash":640,"status":357,"stem":641,"summary":642,"tags":643,"tech_stack":357,"translation_of":8,"type":376,"url":357,"video_url":357,"__hash__":646},"threads/threads/articles/sankahakuu.ja.md","東京散歩｜両国編",{"type":32,"value":600,"toc":631},[601,604,607,610,617,620,623,626],[35,602,603],{},"ずっと一番好きな北斎の浮世絵作品は『神奈川沖浪裏』だった。",[35,605,606],{},"あの無数の白い花を咲かせた波の先端が、まるで多くの小さな手が薄っぺらい小舟を奪い去ろうとしているかのように生き生きとしているから。",[35,608,609],{},"これは、北斎が一生をかけて描き続け、年老いてようやくプルシアンブルーに出会い、キャンバスの上で江戸の海と空の喜びを自由に表現できるようになった狂喜が見えるような気がさせてくれた。",[35,611,612,613,616],{},"しかし今日、北斎美術館で『山下白雨』という作品を見た。一気に私の",[39,614,615],{},"最も好きな北斎作品","へと躍り出た。",[35,618,619],{},"『山下白雨』では、山の麓は暗雲が立ち込め、雷が鳴り響いているのに、富士山の頂上は雲と雨を突き抜けて、晴れた空に聳え立っている。",[35,621,622],{},"限られたキャンバスの上で、富士山の雄大さを表現するために、北斎は天気を対比として使い、立体的な高さを引き立てている。",[35,624,625],{},"良い作品には、このような工夫がいたるところに存在しているようだ。文学、写真、絵画、音楽、それぞれが独自の方法を持っている。",[122,627,628],{},[35,629,630],{},"心の中の想像を、手元の道具で実現できる人。どの時代に置いても、最も優れた人なのだと思う。",{"title":110,"searchDepth":347,"depth":347,"links":632},[],"/images/sankahakuu.png",[],{"readingTime":365},"/threads/articles/sankahakuu.ja",[],"2023-03-17",{"title":598,"description":603},"dfd535c07195c28dd88f9ddd3b5fd46c4c76c8d5bce83c02ff59d0a2819c75c9","threads/articles/sankahakuu.ja","北斎が一生をかけて描き続け、年老いてようやくプルシアンブルーに出会い、キャンバスの上で江戸の海と空の喜びを自由に表現できるようになった瞬間が見えるような気がする。",[644,645],"葛飾北齋","富嶽三十六景","L0F-GhTgAK60kE9x2jvYj4B21k8Vk9_HgAldVg3TIXU",{"id":648,"title":649,"animated":362,"body":650,"client":357,"cover":357,"css_code":682,"description":654,"extension":360,"html_code":683,"images":684,"is_announcement":30,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":685,"navigation":362,"order":357,"path":686,"photos":687,"published_at":688,"reading_time":357,"related":357,"role":357,"seo":689,"slug":17,"source_hash":690,"status":357,"stem":691,"summary":692,"tags":693,"tech_stack":357,"translation_of":17,"type":697,"url":357,"video_url":357,"__hash__":698},"threads/threads/cssart/bubble-tea.ja.md","タピオカミルクティーシェイカーカップ",{"type":32,"value":651,"toc":680},[652,655,658,669,672,675],[35,653,654],{},"Vue.js サクラタピオカシェイカーカップ、さあ自分だけのタピオカドリンクを作ってみましょう！",[35,656,657],{},"できること：",[79,659,660,663,666],{},[82,661,662],{},"カップタイプを選択（保温カップ、シェイカーカップ、コーヒーカップ、マグカップ）",[82,664,665],{},"各成分の比率を調整（ミルクフォーム、牛乳、緑茶、紅茶）",[82,667,668],{},"タピオカの数を増減",[35,670,671],{},"このオーダーシステムは 4 種類のドリンク、4 種類のカップを提供し、お客様が自由に組み合わせて選べます。",[35,673,674],{},"エコカップの使用をお勧めします。理由は",[122,676,677],{},[35,678,679],{},"地球はもう満杯です。これ以上プラスチックを入れる余地はありません！",{"title":110,"searchDepth":347,"depth":347,"links":681},[],".bubble-tea-container {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  min-height: 200px;\n  background-color: #698474;\n  padding: 24px;\n}\n.label { color: #e5e4cc; margin-top: 12px; font-size: 14px; }\n.beverage { position: relative; margin-top: 30px; }\n.cup {\n  width: 60px; height: 100px; margin: 0 auto;\n  border: 4px solid #fff; border-top: none;\n  padding-top: 5px; position: relative;\n}\n.ingradients {\n  width: 100%; position: absolute; bottom: 0;\n  background-color: #9dab86; overflow: hidden; font-size: 0;\n}\n.thermos-height { max-height: 80px; }\n.bubbles {\n  width: 10px; height: 10px; background-color: #fbc1bc;\n  border-radius: 5px; display: inline-block;\n}\n.green-tea { width: 100%; height: 25px; background-color: #9dab86; }\n.milk { width: 100%; height: 25px; background-color: #f7d8bb; }\n.foam { width: 100%; height: 10px; background-color: #eee; }\n.black-tea { width: 100%; height: 0; background-color: #801a08; }\n.box { width: 100%; height: 10px; position: absolute; top: 0; overflow: hidden; z-index: 1; }\n.wave {\n  position: absolute; bottom: 47%; left: -147%;\n  background: #698474; width: 222px; height: 222px;\n  transform-origin: 50% 48%; border-radius: 43%;\n  animation: drift 5000ms infinite linear;\n}\n.wave.-three { animation: drift 7000ms infinite linear; }\n.wave.-two { animation: drift 9000ms infinite linear; opacity: .1; background: #f8b195; }\n@keyframes drift { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }\n.thermos { border-top: 4px solid #fff; border-radius: 2px; }\n.handle.top {\n  border: 4px solid #fff; width: 60px; height: 20px;\n  position: relative; left: 50%; transform: translateX(-50%); border-radius: 2px;\n}\n.handle.top::after {\n  content: \"\"; display: block; width: 10px; height: 20px;\n  border: 2px solid #fff; position: absolute; left: 60%; top: 40%; border-radius: 4px;\n}\n","\u003Cdiv class=\"bubble-tea-container\">\n  \u003Cdiv class=\"beverage\">\n    \u003Cdiv class=\"handle top\">\u003C/div>\n    \u003Cdiv class=\"cup thermos\">\n      \u003Cdiv class=\"ingradients thermos-height\">\n        \u003Cdiv class=\"box\">\n          \u003Cdiv class=\"wave -one\">\u003C/div>\n          \u003Cdiv class=\"wave -two\">\u003C/div>\n          \u003Cdiv class=\"wave -three\">\u003C/div>\n        \u003C/div>\n        \u003Cdiv class=\"foam\" style=\"height: 10px;\">\u003C/div>\n        \u003Cdiv class=\"milk\" style=\"height: 25px;\">\u003C/div>\n        \u003Cdiv class=\"green-tea\" style=\"height: 25px;\">\u003C/div>\n        \u003Cdiv class=\"black-tea\" style=\"height: 0px;\">\u003C/div>\n        \u003Cdiv class=\"bubbles\">\u003C/div>\n        \u003Cdiv class=\"bubbles\">\u003C/div>\n        \u003Cdiv class=\"bubbles\">\u003C/div>\n        \u003Cdiv class=\"bubbles\">\u003C/div>\n        \u003Cdiv class=\"bubbles\">\u003C/div>\n      \u003C/div>\n    \u003C/div>\n  \u003C/div>\n  \u003Cp class=\"label\">四季奶青加珍珠\u003C/p>\n\u003C/div>\n",[],{},"/threads/cssart/bubble-tea.ja",[],"2019-12-31T00:00:00.000Z",{"title":649,"description":654},"2d5c621a0c2d1d771b265fb1d4518ce771918da77871fe559957eb5da270a730","threads/cssart/bubble-tea.ja","Vue 3 インタラクティブなタピオカミルクティーシミュレーター — ミルクフォーム、牛乳、緑茶、紅茶、タピオカの比率を調整して、自分好みのカップを選び、オリジナルのタピオカドリンクを作ろう。",[694,695,696],"CSS Art","Vue 3","Interactive","cssart","BL1iu3CW_W87QiwCrYwYmstW3tVxfKlhiUmvNQ_dkH0",{"id":700,"title":701,"animated":362,"body":702,"client":357,"cover":357,"css_code":706,"description":110,"extension":360,"html_code":707,"images":708,"is_announcement":30,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":709,"navigation":362,"order":357,"path":710,"photos":711,"published_at":712,"reading_time":357,"related":357,"role":357,"seo":713,"slug":15,"source_hash":714,"status":357,"stem":715,"summary":716,"tags":717,"tech_stack":357,"translation_of":15,"type":697,"url":357,"video_url":357,"__hash__":720},"threads/threads/cssart/face-mask.ja.md","マスク図鑑",{"type":32,"value":703,"toc":704},[],{"title":110,"searchDepth":347,"depth":347,"links":705},[],".mask-art * {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  text-decoration: none;\n  list-style-type: none;\n  letter-spacing: 4px;\n  font-size: 20px;\n}\n\n.mask-art {\n  background-color: #a98e7c;\n  color: #ddd;\n  padding: 20px 0;\n}\n\n.mask-art .container {\n  margin: 0 auto;\n  width: 700px;\n  max-width: 100%;\n}\n\n.mask-art .prod-wrapper {\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n.mask-art .prod-name {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n  padding: 30px 0;\n  margin: 20px 30px;\n  width: 30%;\n}\n\n.mask-art .mask-wrapper {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n  padding: 30px 0;\n  margin: 20px 0;\n  width: 40%;\n}\n\n.mask-art .desc {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  text-align: left;\n  margin: 20px 0 20px 70px;\n  width: 30%;\n  font-size: 16px;\n}\n\n/* 醫療口罩 */\n.mask-art .mask {\n  position: relative;\n  width: 200px;\n  height: 90px;\n  background-color: #87f0df;\n  border: 3px dotted #eee;\n  border-top: 4px solid #eee;\n  border-radius: 2px;\n  transition: all 0.7s;\n}\n\n.mask-art .mask:hover {\n  transform: translate(0, -5px);\n  box-shadow: 0px 20px 10px rgba(0, 0, 0, 0.4);\n}\n\n.mask-art .mask .iron-line {\n  margin: 6px auto;\n  width: 190px;\n  border: 2px solid #eee;\n}\n\n.mask-art .mask .line {\n  margin: 20px auto;\n  width: 190px;\n  border: 1px solid #eee;\n}\n\n.mask-art .mask::before {\n  content: \"\";\n  display: block;\n  width: 50px;\n  height: 80px;\n  position: absolute;\n  border: 2px solid #eee;\n  border-right: 2px dotted #eee;\n  left: -50px;\n  border-radius: 40px 0px 0px 40px;\n}\n\n.mask-art .mask::after {\n  content: \"\";\n  display: block;\n  width: 50px;\n  height: 80px;\n  position: absolute;\n  border: 2px solid #eee;\n  border-left: 2px dotted #eee;\n  top: 0;\n  right: -50px;\n  border-radius: 0px 40px 40px 0px;\n}\n\n/* 活性碳口罩 */\n.mask-art .carbon-mask {\n  position: relative;\n  width: 200px;\n  height: 90px;\n  background-image: radial-gradient(#778683 70%, #aab3b2 30%);\n  background-size: 2px 2px;\n  border: 3px dotted #ddd;\n  border-top: 4px solid #ddd;\n  border-radius: 2px;\n  transition: all 0.7s;\n}\n\n.mask-art .carbon-mask:hover {\n  transform: translate(0, -5px);\n  box-shadow: 0px 20px 10px rgba(0, 0, 0, 0.4);\n}\n\n.mask-art .carbon-mask .iron-line {\n  margin: 6px auto;\n  width: 190px;\n  border: 2px solid #ddd;\n}\n\n.mask-art .carbon-mask .line {\n  margin: 20px auto;\n  width: 190px;\n  border: 1px solid #aab3b2;\n}\n\n.mask-art .carbon-mask::before {\n  content: \"\";\n  display: block;\n  width: 50px;\n  height: 80px;\n  position: absolute;\n  border: 2px solid #eee;\n  border-right: 2px dotted #eee;\n  left: -50px;\n  border-radius: 40px 0px 0px 40px;\n}\n\n.mask-art .carbon-mask::after {\n  content: \"\";\n  display: block;\n  width: 50px;\n  height: 80px;\n  position: absolute;\n  border: 2px solid #eee;\n  border-left: 2px dotted #eee;\n  top: 0;\n  right: -50px;\n  border-radius: 0px 40px 40px 0px;\n}\n\n/* N95 口罩 */\n.mask-art .n95-mask {\n  position: relative;\n  width: 150px;\n  height: 150px;\n  background-image: radial-gradient(#eee, rgb(177, 177, 177));\n  background-size: cover;\n  border: 3px solid #ccc;\n  border-radius: 75px 40px 75px 75px;\n  transform: rotate(-45deg);\n  transition: 0.7s;\n}\n\n.mask-art .n95-mask:hover {\n  transform: translate(0, -10px) rotate(-45deg);\n  box-shadow: 0px 20px 10px rgba(0, 0, 0, 0.4);\n}\n\n.mask-art .n95-mask .iron-line-left {\n  position: absolute;\n  top: 8%;\n  left: 22%;\n  margin: 6px auto;\n  width: 90px;\n  border: 2px solid #ddd;\n  transform: rotate(5deg);\n}\n\n.mask-art .n95-mask .iron-line-right {\n  position: absolute;\n  top: 42%;\n  left: 54%;\n  margin: 6px auto;\n  width: 90px;\n  border: 2px solid #ddd;\n  transform: rotate(85deg);\n}\n\n.mask-art .n95-mask .filter {\n  position: absolute;\n  top: 6px;\n  left: 16px;\n  margin: 20px auto;\n  width: 30px;\n  height: 30px;\n  background-image: radial-gradient(#ddd 60%, rgb(177, 177, 177) 40%);\n  background-size: contain;\n  border: 2px dotted #ddd;\n  border-radius: 50%;\n}\n\n.mask-art .n95-mask .mark {\n  position: absolute;\n  top: 88px;\n  left: 2%;\n  width: 90px;\n  height: 20px;\n  background-color: #ddd;\n  border: 1px dotted #aab3b2;\n  transform: rotate(45deg);\n  font-size: 10px;\n  color: #666;\n  letter-spacing: 0;\n  font-weight: 600;\n}\n\n.mask-art .n95-mask::before {\n  content: \"\";\n  display: block;\n  width: 50px;\n  height: 80px;\n  position: absolute;\n  border: 2px solid #eee;\n  border-right: 2px dotted #eee;\n  top: -32px;\n  left: -16px;\n  border-radius: 40px 0px 0px 40px;\n  transform: rotate(45deg);\n}\n\n.mask-art .n95-mask::after {\n  content: \"\";\n  display: block;\n  width: 50px;\n  height: 80px;\n  position: absolute;\n  border: 2px solid #eee;\n  border-left: 2px dotted #eee;\n  top: 87px;\n  right: -17px;\n  border-radius: 0px 40px 40px 0px;\n  transform: rotate(45deg);\n}\n\n/* 國王的口罩（買不到） */\n.mask-art .no-mask {\n  position: relative;\n  width: 200px;\n  height: 90px;\n  background-color: transparent;\n  border: 1px dotted #eee;\n  border-radius: 2px;\n  transition: all 0.7s;\n}\n\n.mask-art .no-mask:hover {\n  transform: translate(0, -5px);\n}\n\n.mask-art .no-mask .line {\n  margin: 30px auto;\n  width: 190px;\n  color: #444;\n  text-decoration: line-through;\n}\n\n.mask-art .no-mask::before {\n  content: \"\";\n  display: block;\n  width: 50px;\n  height: 80px;\n  position: absolute;\n  border: 1px dotted #eee;\n  top: 2px;\n  left: -50px;\n  border-radius: 40px 0px 0px 40px;\n}\n\n.mask-art .no-mask::after {\n  content: \"\";\n  display: block;\n  width: 50px;\n  height: 80px;\n  position: absolute;\n  border: 1px dotted #eee;\n  top: 2px;\n  right: -50px;\n  border-radius: 0px 40px 40px 0px;\n}\n\n@media (max-width: 768px) {\n  .mask-art .container {\n    width: 90%;\n  }\n\n  .mask-art .prod-wrapper {\n    flex-direction: column;\n    margin: 0 auto;\n  }\n\n  .mask-art .prod-name {\n    width: 100%;\n    margin: 20px auto 0;\n    padding: 0;\n  }\n\n  .mask-art .mask-wrapper {\n    width: 100%;\n    margin-bottom: 30px;\n    padding: 0;\n  }\n\n  .mask-art .desc {\n    width: 60%;\n    margin: 0 auto 30px;\n  }\n}\n","\u003Cdiv class=\"mask-art\">\n  \u003Cdiv class=\"container\">\n    \u003Cdiv class=\"prod-wrapper\">\n      \u003Cdiv class=\"prod-name\">醫療口罩\u003C/div>\n      \u003Cdiv class=\"mask-wrapper\">\n        \u003Cdiv class=\"mask\">\n          \u003Cdiv class=\"iron-line\">\u003C/div>\n          \u003Cdiv class=\"line\">\u003C/div>\n          \u003Cdiv class=\"line\">\u003C/div>\n          \u003Cdiv class=\"line\">\u003C/div>\n        \u003C/div>\n      \u003C/div>\n      \u003Cdiv class=\"desc\">可有效阻擋大部分飛沫，適合一般民眾配戴。\u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"prod-wrapper\">\n      \u003Cdiv class=\"prod-name\">活性碳口罩\u003C/div>\n      \u003Cdiv class=\"mask-wrapper\">\n        \u003Cdiv class=\"carbon-mask\">\n          \u003Cdiv class=\"iron-line\">\u003C/div>\n          \u003Cdiv class=\"line\">\u003C/div>\n          \u003Cdiv class=\"line\">\u003C/div>\n          \u003Cdiv class=\"line\">\u003C/div>\n        \u003C/div>\n      \u003C/div>\n      \u003Cdiv class=\"desc\">可吸附異味，大多數無法隔絕飛沫，沒有防疫效果。\u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"prod-wrapper\">\n      \u003Cdiv class=\"prod-name\">N95 口罩\u003C/div>\n      \u003Cdiv class=\"mask-wrapper\">\n        \u003Cdiv class=\"n95-mask\">\n          \u003Cdiv class=\"iron-line-left\">\u003C/div>\n          \u003Cdiv class=\"iron-line-right\">\u003C/div>\n          \u003Cdiv class=\"filter\">\u003C/div>\n          \u003Ci class=\"mark\"> Warning 3M\u003C/i>\n        \u003C/div>\n      \u003C/div>\n      \u003Cdiv class=\"desc\">可有效阻絕 95％ 以上的病毒，適合長時間接觸患者的第一線醫療人員配戴。\u003C/div>\n    \u003C/div>\n    \u003Cdiv class=\"prod-wrapper\">\n      \u003Cdiv class=\"prod-name\">國王的口罩\u003C/div>\n      \u003Cdiv class=\"mask-wrapper\">\n        \u003Cdiv class=\"no-mask\">\n          \u003Cdiv class=\"iron-line\">\u003C/div>\n          \u003Cdiv class=\"line\">買不到\u003C/div>\n        \u003C/div>\n      \u003C/div>\n      \u003Cdiv class=\"desc\">身體健康、從事戶外運動，現階段可以不用戴口罩。\u003C/div>\n    \u003C/div>\n  \u003C/div>\n\u003C/div>\n",[],{},"/threads/cssart/face-mask.ja",[],"2020-02-06T00:00:00.000Z",{"title":701,"description":110},"09fc4b54a8ddfeac422716eab19b996ac4c3f972a5c29d123b7a60692906c85c","threads/cssart/face-mask.ja","2020年のマスク実名制導入に伴い、純粋なCSSで国民がマスクを奪い合った時代を描きました：医療用マスク、活性炭マスク、N95、そして「買えない」キングマスク。",[694,718,719],"Pure CSS","2020","Cp4gPYYGyI6okWpaa8ps7hy-FVTkQGyg5aZbaelbc10",{"id":722,"title":723,"animated":30,"body":724,"client":357,"cover":734,"css_code":357,"description":728,"extension":360,"html_code":357,"images":735,"is_announcement":30,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":736,"navigation":362,"order":357,"path":737,"photos":738,"published_at":740,"reading_time":357,"related":357,"role":357,"seo":741,"slug":742,"source_hash":743,"status":357,"stem":744,"summary":745,"tags":746,"tech_stack":357,"translation_of":742,"type":750,"url":357,"video_url":357,"__hash__":751},"threads/threads/gallery/tokyo-wide-sanpo.ja.md","東京廣域散步",{"type":32,"value":725,"toc":732},[726,729],[35,727,728],{},"四月の東京、上野公園の染井吉野が満開を迎えている。",[35,730,731],{},"人群と花びらが一緒に風に舞い、毎年この季節、この街は一時的に効率性を手放す。",{"title":110,"searchDepth":347,"depth":347,"links":733},[],"/images/gallery/uzawaechigo.jpeg",[],{},"/threads/gallery/tokyo-wide-sanpo.ja",[734,739],"/images/gallery/urikamome.jpg","2023-04-21",{"title":723,"description":728},"tokyo-wide-sanpo","85063ae1e14ed7d92cae71220bbdf7ff51230d97adc9fcb3134afd198b1e255a","threads/gallery/tokyo-wide-sanpo.ja","2023年春季剪影",[747,748,749],"旅遊","東京","春天","gallery","QdtfVO0CddJjSAZQwhDwTZRmhJlQhl7Ex378z8fYLbE",{"id":753,"title":754,"animated":30,"body":755,"client":357,"cover":357,"css_code":357,"description":110,"extension":360,"html_code":357,"images":783,"is_announcement":30,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":784,"navigation":362,"order":357,"path":785,"photos":786,"published_at":787,"reading_time":357,"related":357,"role":357,"seo":788,"slug":789,"source_hash":790,"status":357,"stem":791,"summary":792,"tags":793,"tech_stack":357,"translation_of":789,"type":794,"url":357,"video_url":357,"__hash__":795},"threads/threads/pages/about.ja.md","私について",{"type":32,"value":756,"toc":781},[757,764,769,772,775,778],[35,758,759],{},[760,761],"img",{"alt":762,"src":763},"Ivan Hsu","/avatar/me.jpeg",[122,765,766],{},[35,767,768],{},"少年よ、大志を抱け！",[35,770,771],{},"パネル業界からウェブエンジニアへ転職した者です。ほとんどの時間はマシンのための言語を書いていますが、ここでは人間のための文字を書いています。",[35,773,774],{},"限られた素材を使いながらも、偉大な遺産を残すことができるすべてのものに魅了されています。例えば、音楽と文字。そしてもちろん、コードです。",[35,776,777],{},"キーボードは 21 世紀の元素周期表のようなものです。エンジニアであれ、ライターであれ、私たちが持っているのは目の前の 26 個のアルファベットと、いくつかの記号だけです。しかし、世界中で使われている製品を創造する機会があります。人々の生活を変え、偉大な思想を残すことができるのです。",[35,779,780],{},"AI が溢れる時代だからこそ、ちょうどいい Tech Stack を使って、実用的なライフスタイル SaaS を開発したいのです。",{"title":110,"searchDepth":347,"depth":347,"links":782},[],[],{},"/threads/pages/about.ja",[],"2026-06-21",{"title":754,"description":110},"about","49a4ee37fe6deaddb7e0f2c874603336fd5f9124410cd820497483b623338dd5","threads/pages/about.ja","ちょうどいい Tech Stack を使って、実用的なライフスタイル SaaS を開発しています。",[],"page","lN1hHioWXPvyv1J2WWw8T7bNg2bWDqc7-w6aGKum9G8",{"id":797,"title":798,"animated":30,"body":799,"client":357,"cover":820,"css_code":357,"description":814,"extension":360,"html_code":357,"images":821,"is_announcement":30,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":822,"navigation":362,"order":357,"path":827,"photos":828,"published_at":829,"reading_time":357,"related":357,"role":357,"seo":830,"slug":24,"source_hash":831,"status":832,"stem":833,"summary":834,"tags":835,"tech_stack":357,"translation_of":24,"type":840,"url":841,"video_url":357,"__hash__":842},"threads/threads/products/cord-land.ja.md","10分鐘で自分のリアルタイム転調コード譜を作成！",{"type":32,"value":800,"toc":818},[801,815],[35,802,803,807],{},[760,804],{"alt":805,"src":806},"cord-land-mobile","/images/cord-land-mobile.png",[50,808,814],{"href":809,"target":810,"rel":811},"https://cord.land/cords/wmgkca0x82s802h","_blank",[812,813],"noopener","noreferrer","さくらんぼ - 大塚愛",[35,816,817],{},"自由自在にコード譜、コード図、カスタム注記を編集できます。完成品はプレーンテキスト形式で、画面サイズに応じて自動的にレイアウトが調整され、どこにでもコピー&ペーストできます。",{"title":110,"searchDepth":347,"depth":347,"links":819},[],"/images/cord-land-cover.png",[],{"techStack":823},[824,825,826],"SvelteKit","PocketBase","AWS S3","/threads/products/cord-land.ja",[],"2025-08-20",{"title":798,"description":814},"3ddf1ffa8370af1bf4df15fceabf27cf78a1aca19167845410980bfe7bae9e39","active","threads/products/cord-land.ja","ChordPro拡張構文を使用して、プレーンテキストでギターコード譜を作成し、リアルタイム編集、ワンクリック共有、自動転調が可能です。",[836,837,838,839],"SaaS","ChordPro","Chord","Corduroy","product","https://cord.land/landing","opOd7CemmB2JdUTgytaEbIUsCMy5ONYeZi93ye3pqEw",{"id":844,"title":845,"animated":30,"body":846,"client":357,"cover":889,"css_code":357,"description":110,"extension":360,"html_code":357,"images":890,"is_announcement":362,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":891,"navigation":362,"order":357,"path":895,"photos":896,"published_at":897,"reading_time":357,"related":357,"role":357,"seo":898,"slug":22,"source_hash":899,"status":900,"stem":901,"summary":902,"tags":903,"tech_stack":357,"translation_of":22,"type":840,"url":882,"video_url":357,"__hash__":905},"threads/threads/products/reelly.ja.md","Reelly があなたのIG美食Reelsを要約します！",{"type":32,"value":847,"toc":887},[848,853,856,859,862,865,868,871,874,877,884],[122,849,850],{},[35,851,852],{},"食べたいお店を1秒でリストに変える体験、知りたくない？",[35,854,855],{},"来月東京旅行に行く予定だけど、抹茶のReelsをたくさん保存してるのに、地図に整理するのが面倒くさい？",[35,857,858],{},"この面倒な作業を簡単にしちゃいました！ReellyはIG Reelsの内容を読み取って、「シェア」をタップするだけ。あとはAIが全部処理してくれます👏🏻",[35,860,861],{},"去年東京に行く前、IGで抹茶屋さんの動画がいっぱい流れてきました。",[35,863,864],{},"スクリーンショットで保存したり、ブックマークしたり、出発前に開いてみたら —— 最初に見たあのお店が全く見つからない 🫠",[35,866,867],{},"だから思い切って自分で作ってみたんです。それがReellyです。🍜",[35,869,870],{},"IGで行きたいお店を見つけたら、シェアをタップするだけ。Reellyが自動的にReelsの内容を読み取って、お店の名前、住所、おすすめメニューをまとめて、あなた専用のリストに保存します。",[35,872,873],{},"次に探すときは、検索するだけ。🔍",[35,875,876],{},"日本や韓国のお店にも対応しています。ReellyはWebアプリなのでアプリをインストールする必要がなく、ホーム画面に追加するだけでアプリのように使えます。",[35,878,879,880],{},"今なら完全無料です。興味があれば試してみてください 👉🏻 ",[50,881,882],{"href":882,"rel":883},"https://reelly.life",[54],[35,885,886],{},"（来月旅行に行く人は、今から保存するのがちょうどいいですよ！🙌🏻）",{"title":110,"searchDepth":347,"depth":347,"links":888},[],"/images/reelly-cover.png",[],{"techStack":892},[893,825,894],"Nuxt","Cloudflare R2","/threads/products/reelly.ja",[],"2025-11-20",{"title":845,"description":110},"52577c0a583cd7ce3cc8148b24ecfc9d316eb96dac8aeb7ad1a268f231dae998","building","threads/products/reelly.ja","🍜 美味しいReelsを見つけた？シェアしてくれたら、お店リストを要約します🧾",[836,904,893],"Food","pWFn6fsXN6YEpawrBAgQ2CzjHTrUc-L-To1Rj0XTxlM",{"id":907,"title":908,"animated":30,"body":909,"client":357,"cover":1074,"css_code":357,"description":110,"extension":360,"html_code":357,"images":1075,"is_announcement":362,"is_pinned":30,"is_published":362,"key_points":357,"lang":363,"meta":1076,"navigation":362,"order":357,"path":1078,"photos":1079,"published_at":1080,"reading_time":357,"related":357,"role":357,"seo":1081,"slug":21,"source_hash":1082,"status":832,"stem":1083,"summary":1084,"tags":1085,"tech_stack":357,"translation_of":21,"type":840,"url":1088,"video_url":357,"__hash__":1089},"threads/threads/products/threadspage.ja.md","Threadspage あなたの創作を、本当にあなたのものにする知識の拠点に。",{"type":32,"value":910,"toc":1072},[911,916,919,953,1053,1056,1059,1069],[122,912,913],{},[35,914,915],{},"一度作ったら、それがあなたのために働く。",[35,917,918],{},"Threadspage は、複数のプラットフォームに散らばったあなたのコンテンツを集約し、あなたを中心とした、自動成長する知識の拠点へと変えます。",[79,920,921,929,937,945],{},[82,922,923,924],{},"YouTube 動画がワンクリックで記事に\n",[79,925,926],{},[82,927,928],{},"動画はもう撮り終わっているのに、また一から書き直す必要はありません。AI があなたの字幕を洗練された読みやすい記事に圧縮し、動画は自動埋め込み。コンテンツはあなた自身のドメインに永遠に存在します。",[82,930,931,932],{},"ワンクリックで多言語生成\n",[79,933,934],{},[82,935,936],{},"一度書いたら、自動的に英語版、日本語版が生成され、それぞれ独立した URL で共有・検索されます。英語圏、日本語圏の読者や学生にリーチできます。",[82,938,939,940],{},"質問に答える AI アシスタント\n",[79,941,942],{},[82,943,944],{},"訪問者があなたのサイトで直接質問すると、AI があなたのコンテンツを使ってリアルタイムに回答します。まるで 24 時間、あなたの言葉で返信する、もう一人のあなたのようです。",[82,946,947,948],{},"自分のドメイン、コンテンツは永遠にあなたのもの\n",[79,949,950],{},[82,951,952],{},"プラットフォームに依存せず、アルゴリズムの顔色をうかがう必要もありません。プログラム、コンテンツ、デプロイメント、すべてがあなたの手の中にあり、長期的な資産として蓄積されます。",[105,954,958],{"className":955,"code":956,"language":957,"meta":110,"style":110},"language-bash shiki shiki-themes github-dark","# 撮り終わった動画を貼り付ける\n$ threadspage add https://youtu.be/your-talk\n\n→ 字幕を取得し、記事に圧縮 ✓\n→ en / ja 版を生成（独立した URL）✓\n→ あなたの AI アシスタントを配置（訪問者の質問に回答）✓\n→ 構造化データ・llms.txt・サイトマップを生成 ✓\n\n# すべてが yourdomain.co に存在し、永遠にあなたのもの\n","bash",[112,959,960,966,982,987,999,1019,1033,1043,1047],{"__ignoreMap":110},[115,961,962],{"class":117,"line":118},[115,963,965],{"class":964},"sAwPA","# 撮り終わった動画を貼り付ける\n",[115,967,968,972,976,979],{"class":117,"line":347},[115,969,971],{"class":970},"svObZ","$",[115,973,975],{"class":974},"sU2Wk"," threadspage",[115,977,978],{"class":974}," add",[115,980,981],{"class":974}," https://youtu.be/your-talk\n",[115,983,984],{"class":117,"line":350},[115,985,986],{"emptyLinePlaceholder":362},"\n",[115,988,990,993,996],{"class":117,"line":989},4,[115,991,992],{"class":970},"→",[115,994,995],{"class":974}," 字幕を取得し、記事に圧縮",[115,997,998],{"class":974}," ✓\n",[115,1000,1002,1004,1007,1010,1013,1016],{"class":117,"line":1001},5,[115,1003,992],{"class":970},[115,1005,1006],{"class":974}," en",[115,1008,1009],{"class":974}," /",[115,1011,1012],{"class":974}," ja",[115,1014,1015],{"class":974}," 版を生成（独立した",[115,1017,1018],{"class":974}," URL）✓\n",[115,1020,1022,1024,1027,1030],{"class":117,"line":1021},6,[115,1023,992],{"class":970},[115,1025,1026],{"class":974}," あなたの",[115,1028,1029],{"class":974}," AI",[115,1031,1032],{"class":974}," アシスタントを配置（訪問者の質問に回答）✓\n",[115,1034,1036,1038,1041],{"class":117,"line":1035},7,[115,1037,992],{"class":970},[115,1039,1040],{"class":974}," 構造化データ・llms.txt・サイトマップを生成",[115,1042,998],{"class":974},[115,1044,1045],{"class":117,"line":365},[115,1046,986],{"emptyLinePlaceholder":362},[115,1048,1050],{"class":117,"line":1049},9,[115,1051,1052],{"class":964},"# すべてが yourdomain.co に存在し、永遠にあなたのもの\n",[35,1054,1055],{},"創作に専念してください。技術的なことは私たちに任せてください。",[35,1057,1058],{},"あなたはエンジニアではないし、自分のコンテンツを所有するために、サイト移行、翻訳、AI 連携といった技術的な作業と格闘する必要もありません。それこそが Threadspage があなたの代わりに引き受けたいことなのです。",[122,1060,1061],{},[35,1062,1063,1064],{},"動画を撮るのに時間をかけたのに、Threadspage があれば、それをもう一度記事として書き直す時間をかけずに済みます。\n-- ",[50,1065,1068],{"href":1066,"target":810,"rel":1067},"https://huanyinliu.com",[812,813],"HuanYin",[343,1070,1071],{},"html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":110,"searchDepth":347,"depth":347,"links":1073},[],"/images/threadspage-cover.png",[],{"techStack":1077},[893,825,826],"/threads/products/threadspage.ja",[],"2026-06-13",{"title":908,"description":110},"77df485ef4f1e9a11fc3ade052812374d34e6c6e29ac5487fca59cb7b8d1a4c7","threads/products/threadspage.ja","YouTube、Instagram、Threadsに費やした膨大な時間と心血が、他人のプラットフォームに閉じ込められていませんか？Threadspage なら、コンテンツをワンクリックで自分のドメインに移行でき、自動多言語生成、さらに訪問者の質問に答える AI アシスタント機能まで備えています。",[836,1086,1087],"YouTube","auto-i18n","https://threadspage.com","2rAZLaIRO9k9_Lx3JKmRDn1aFy1SlLy3MfGGhkBfQMQ",{"generatedAt":1091,"author":1092,"articles":1121,"products":1147,"projects":1162,"pages":1163,"cssarts":1167},"2026-07-11T15:24:04.380Z",{"name":1093,"handle":1094,"location":1095,"status":900,"statusText":1096,"quote":1097,"bio":1098,"featuredLink":1102,"links":1103,"site":1118},"徐可可","ivanhsu","Taipei, Taiwan","踊る暇があったら発明して","寫 Code 算是文字工作者嗎？🤔",[1099,1100,1101],"用剛剛好的 Tech Stack 開發實用的生活小物 SaaS。👨🏻‍💻","```npm i inspiration && npm run dev```","看到好吃的 Reels？分享給我，幫你摘要店家清單 👇🏻","https://reelly.life/u/ivanhsu.co/tenjin-shinya-shokudou",[1104,1107,1109,1112,1115],{"type":1105,"url":1106},"email","ivanhsu.ship@gmail.com",{"type":1108,"url":882},"website",{"type":1110,"url":1111},"github","https://github.com/ivan19940106",{"type":1113,"url":1114},"twitter","https://twitter.com/ivanhsuu",{"type":1116,"url":1117},"instagram","https://www.instagram.com/ivanhsu.co",{"name":1093,"url":1119,"description":1120},"https://ivanhsu.co","千里の道も一歩から。",[1122,1127,1132,1137,1142],{"title":1123,"slug":8,"publishedAt":638,"tags":1124,"excerpt":1125,"keyPoints":1126,"cover":633},"東京散步 ｜ 両国篇",[644,645],"我彷彿看見，北齋畫了一輩子，終於在年老時遇見了普魯士藍，得以在畫布上自由揮灑江戶的海與天空的狂喜。",[],{"title":1128,"slug":7,"publishedAt":587,"tags":1129,"excerpt":1130,"keyPoints":1131},"2025 年的碎片",[593,594],"時間有美化回憶的能力，時間為苦澀的回憶加上濾鏡，為開心的回憶按下快門。",[],{"title":1133,"slug":6,"publishedAt":517,"tags":1134,"excerpt":1135,"keyPoints":1136,"cover":512},"孩子們的南陽街與大人們的補習班",[],"升上大學以後，就是個大人了。自由彷彿唾手可得，那會是什麼樣的感覺呢?",[],{"title":1138,"slug":5,"publishedAt":413,"tags":1139,"excerpt":1140,"keyPoints":1141,"videoUrl":422},"遇見",[419,420,421],"ukulele version",[],{"title":1143,"slug":10,"publishedAt":368,"tags":1144,"excerpt":1145,"keyPoints":1146,"cover":358},"《 The Effective Engineer》作者 Edmond Lau 導讀，增加 impact！！ 矽谷工程師都在做的事。",[374,375],"每天預留 1 小時的工時，來實行自己的 20% Time。",[],[1148,1152,1157],{"title":1149,"slug":24,"excerpt":1150,"tags":1151,"url":841,"status":832},"10分鐘內編寫自己的 即時轉調 和弦譜！","使用 ChordPro 擴展語法，以純文字編寫吉他和弦譜，即時修改、一鍵分享、自動轉調。",[836,837,838,839],{"title":1153,"slug":22,"excerpt":1154,"tags":1155,"url":882,"status":832},"Reelly 幫你摘要 IG 美食 Reels！","🍜 看到好吃的 Reels？分享給我，幫你摘要店家清單🧾",[836,904,1156],"Reels",{"title":1158,"slug":21,"excerpt":1159,"tags":1160,"url":1088,"status":832},"Threadspage 把你的創作，變成 真正屬於你的知識主場。","你已經在 YouTube、IG、Threads 花了大把時間創作，心血卻鎖在別人的平台上。Threadspage 幫你把內容一鍵搬到自己的網域、自動生成多語言，還變成一個會回答訪客問題的 AI 分身。",[836,1161,1087],"YouTube-to-markdown",[],[1164],{"title":1165,"slug":789,"excerpt":1166},"關於我","用剛剛好的 Tech Stack 開發實用的生活小物 SaaS。",[1168,1170],{"title":1169,"slug":17},"珍珠奶茶手搖杯",{"title":1171,"slug":15},"口罩圖鑑",1783783495451]