Skip to content

Commit e7bf7c8

Browse files
committed
deploy: b9b75de
1 parent 491307b commit e7bf7c8

File tree

3 files changed

+112
-0
lines changed

3 files changed

+112
-0
lines changed

posts.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ <h1>Posts</h1>
2222
<div role="main">
2323
<article>
2424
<ul>
25+
<li>2025-12-20: <a
26+
href="./posts/choosing-under-constraints.html">制約の中で選ぶもの</a></li>
2527
<li>2025-10-18: <a href="./posts/agi_is_still_a_decade_way.html">AGI is
2628
still a decade away</a></li>
2729
<li>2025-09-09: <a
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
<!DOCTYPE html>
2+
<html lang="ja">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
6+
<meta name="author" content="Tomochika Hara">
7+
<title>制約の中で選ぶもの - thara.dev</title>
8+
<link rel="stylesheet" type="text/css" href="https://thara.dev/css/neat.css">
9+
<link rel="stylesheet" type="text/css" href="https://thara.dev/css/custom.css">
10+
<meta name="og:title" content="制約の中で選ぶもの - thara.dev" />
11+
<meta name="og:type" content="article" />
12+
<meta name="og:site_name" content="thara.dev" />
13+
<meta name="twitter:card" content="summary" />
14+
<meta name="twitter:site" content="@zetta1985" />
15+
<meta name="twitter:title" content="制約の中で選ぶもの - thara.dev" />
16+
<meta name="Hatena::Bookmark" content="nocomment" />
17+
<link rel="author" href="http://www.hatena.ne.jp/zetta1985/" /></head>
18+
<body>
19+
<header>
20+
<h1>制約の中で選ぶもの</h1>
21+
<ul>
22+
<li>published: <time>2025-12-20</time></li>
23+
</ul>
24+
</header>
25+
<div role="main">
26+
<article>
27+
<p>この記事は <a href="https://adventar.org/calendars/11756">趣Advent
28+
Calendar 2025</a> 20日目の記事です。<br />
29+
19日目はいぬドッグ博士の<a
30+
href="https://shelf703.tumblr.com/post/803282658579841024/google-flow%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E8%B6%A3%E3%81%AE%E3%81%82%E3%82%8B%E6%98%A0%E5%83%8F%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F">Google
31+
Flowを使って趣のある映像を作ってみた</a>
32+
でした。ただ単にAIに仕事を奪われると恐怖するのではなく、AIを使ってみてそれを理解しようとする姿勢は大事だと思います。</p>
33+
<p>新しい道具が出てきたとき、どう向き合うか。それは時間や環境によって変わってきます。<br />
34+
この記事では、自分の道具選びと、それが制約とどう関わってきたかを書いてみます。</p>
35+
<hr />
36+
<p>双子が生まれて9年が経ちました。今は小学3年生。</p>
37+
<p>子どもが生まれる前、自分には無限に時間があるような気がしていました。夜中までコードを書いて、新しい技術を試して、それに時間を使うのが当たり前でした。</p>
38+
<p>もちろん、これは完全な錯覚です。</p>
39+
<h2 id="制約">制約</h2>
40+
<p>制約は常にありました。でも、その種類が変わった気がします。</p>
41+
<p>子どもが小さい頃はとにかく時間がなく、細切れの時間をかき集めて何とかコードを書く。そういう日々でした。</p>
42+
<p>今では子どもたちは2人で遊ぶようになり、親が常に付きっきりでいる必要はなくなりました。<br />
43+
朝食や夕食は一緒に食べるし、習い事の送り迎えもあるけれど、まとまった時間は以前より取れるようになっています。</p>
44+
<p>しかし、制約がなくなったわけではありません。転職活動、新しい環境での仕事。この1年ほどは、いつもより疲れが溜まっているのを感じています。疲れやストレスからか、口内炎ができやすくなり、更に治りも遅くなった気がします。<br />
45+
端的に言うと、着々と死期が近づいているのを感じます。</p>
46+
<p>FPSも最近は1マッチで終えてしまいます。Xのタイムラインを何となくスクロールしていると、自分は疲れていて何も考えたくないからこれをしているんだ、と気づくことがあります。</p>
47+
<p>長時間集中することはできる。でも、その後の疲れが以前より大きく回復に時間がかかるようになった気がします。</p>
48+
<p>このように、制約は変わり続けています。だからこそ、エネルギーの使い方を選ぶようになりました。</p>
49+
<h2 id="選択">選択</h2>
50+
<p>自分の道具選びは10年ほど変わっていません。</p>
51+
<p>vim、tmux、プレーンテキスト、シェルスクリプト。こういったシンプルなツールを使い続けてきました。<br />
52+
選択の基準は「すぐ使える」「確実に動く」「長く使える」。</p>
53+
<p>当時からこれが「常に正しい」選択だと思っていたわけではありません。今も必要とあらばJetBrains製品やVSCode、XCodeを使います。
54+
ただ、先に挙げたシンプルなツールは、特に自分に合っている、手に馴染んでいると感じています。</p>
55+
<p>でも今になって、この選択が制約の変化に対して強いことがわかりました。</p>
56+
<p><strong>すぐ使える</strong></p>
57+
<p>vimは起動が速いです。tmuxは立ち上げたままにしておけます。細切れの時間でも、すぐに作業を再開できます。IDEを立ち上げて、プロジェクトを開いて、という手順がなく、過去の操作を容易に再現できます。</p>
58+
<p>疲れているとき、余力がないときに「始めるまでの手間」が大きいと、それだけで諦めてしまいます。シンプルなツールは、その障壁が低いと感じています。</p>
59+
<p>ただTerminal
60+
Emulatorを開いてタイプするだけ。この障壁の低さが、自分には合っていると感じます。</p>
61+
<p><strong>確実に動く</strong></p>
62+
<p>複雑なツールチェーンは、環境が変わると動かなくなる可能性があります。依存関係が壊れたり設定ファイルの互換性が壊れたり。トラブルシュートに時間を取られることもあります。</p>
63+
<p>余力がないとき、そういう「動かない」に付き合う気力はありません。vimもtmuxもシェルスクリプトも、どこでも同じように動くポータビリティがあります。それが安心感につながっています。</p>
64+
<p><strong>長く使える</strong></p>
65+
<p>新しいツールを覚えるのは、エネルギーが必要です。ドキュメントを読んで、試して、慣れる。それができる時期と、できない時期があります。</p>
66+
<p>10年使い続けた道具は、体が覚えています。考えなくても指が動きます。<a
67+
href="https://www.kadokawa.co.jp/product/311865500010/">思考のスピードで編集</a>できます。この「思考コストがゼロ」が、疲れているときに大きな助けになります。</p>
68+
<h2 id="残るもの">残るもの</h2>
69+
<p>道具を選ぶとき、もう一つ考えるようになったことがあります。</p>
70+
<p>「これは10年後も使えるか」。</p>
71+
<p>vimは1991年にBram
72+
Moolenaarによって公開されました。30年以上も前です。<br />
73+
tmuxは2007年。シェルスクリプトはもっと古いです。これらは今も使えるし、おそらく10年後も使えるでしょう。</p>
74+
<p>プレーンテキストも同じ。MarkdownもGitも、特定のサービスに依存しません。10年前に書いたテキストは今も読めるし、10年後も読めるでしょう。</p>
75+
<p>「リンディ効果」という考え方があります。<br />
76+
あるものが長く存続しているほど、その先も長く存続する可能性が高い、というものです。</p>
77+
<p>vimが30年続いているなら、あと30年続くかもしれない。プレーンテキストはもっと古いから、もっと続くかもしれない。</p>
78+
<p>時間軸が長い道具は、学習コストを回収できます。一度覚えれば、環境が変わっても、会社が変わっても、使い続けられます。制約が変わり続ける中で、この「変わらなさ」には価値があると感じます。</p>
79+
<p><strong>新しい道具との付き合い方</strong></p>
80+
<p>LLMは新しい道具です。でも、同じ原則で向き合うようにしています。</p>
81+
<p>まず、特定のサービスには縛られない使い方を心がけています。ChatGPTやClaude
82+
Code、Geminiといった個別のツールではなく、「何ができるか」を概念レベルで理解するように努めています。
83+
vibe
84+
codingで全部生成させるのではなく、自分で書きたい部分は書く。自分にとって解が明らかだけど、しかし単に手間がかかってやる気が起きない部分を任せる。そういう使い方をしています。</p>
85+
<p>そして、プロンプトも同じ。複雑なテクニックやテンプレートより、「何を求めているか」を明確にすることに集中する。シンプルで明確な指示の方が、どのLLMでも通用しますし、その明文化自体が自分の思考の整理にもなり、他の人に伝えるときにも役立ちます。</p>
86+
<hr />
87+
<p>制約はこれからも脈々と変わるでしょう。技術の進歩とは関係なく、自分の使える時間や余力も、少しずつ変わっていきます。</p>
88+
<p>今は、この基準の道具を使っています。それで何とかやっています。この基準は自分にとって価値があると思うし、これからもしばらくは役に立つでしょう。</p>
89+
<p>もちろん、10年後にまた違う制約の中で違う選択をしているかもしれません。そんときはそんときで。</p>
90+
<p>気の趣くままに。</p>
91+
<hr />
92+
<p>明日21日目、更に次の22日目も投稿者は未定です。<br />
93+
うんうん、これもまた趣だね。</p>
94+
</article>
95+
</div>
96+
<footer>
97+
<small>
98+
<a href="https://thara.dev">thara.jp</a>
99+
| &copy; 2025 Tomochika Hara
100+
</small></footer>
101+
</body>
102+
</html>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<!DOCTYPE html>
2+
<html lang="ja">
3+
<head>
4+
<meta http-equiv="refresh" content="0; url=/posts/choosing-under-constraints.html">
5+
<link rel="canonical" href="/posts/choosing-under-constraints.html" />
6+
</head>
7+
</body>
8+
</html>

0 commit comments

Comments
 (0)