- 1人の個人ブログが15年続いた出発点は、7日間ゲームプロトタイプを作り、その進捗を記録したいという必要性だったが、時間が経つにつれて、書くこと自体とプロジェクトの記録そのものが継続の原動力になった
- 当初はStarCraftやSupreme CommanderのようなRTSを作ろうとしてゲームエンジンの罠にはまったが、素早いプロトタイピングのやり方が、実際に成果物を作る方向へと舵を切らせた
- ブログは思考を整理し、公開物の品質を高め、カスタムキーボードレイアウト・3Dプリンター・書籍執筆のような個人プロジェクトの保管庫として機能してきた
- 閲覧数や外部からのフィードバックは核心的な動機ではなく、統計を取らない理由も、文章を書くことがクリックを追う活動に変わらないようにするためにある
- 技術スタックはPHP/Kohana、Perl/Mojolicious、Jekyll、Hakyll、Rustベースのジェネレーター、Djot、Neovim連携へと変化し、記事も短い開発ログから長いプログラミング・プロジェクト記事へと成長した
出発点: ゲームエンジンの罠から抜け出す
- ブログの出発点は、素早いゲームプロトタイプを作り、計画と結果を記録する場所を持つことだった
- 最初の目標はTetrisのような単純なゲームではなく、StarCraftやSupreme Commanderのような大きなRTSゲームであり、そのためにはまずゲームエンジンが必要だと考えた
- 実際の作業はゲームよりもエンジン機能の実装にとどまった
- キーボードとマウスをサポートするメニュー
F2で開くコンソールと、再コンパイルなしでunit speedのような変数を変更する機能
Ctrl、Shift、右クリック操作を含むユニット選択機能
- 結果としてゲームに近い成果物はなく、そのペースでは今に至るまで完成していなかっただろうとしている
- The Experimental Gameplay Projectの「7日以内にゲームプロトタイプを作れるべきだ」という方法論が、Game Engine Trapから抜け出すきっかけになった
ブログを書き続けた理由
- 初期の目的は、およそ12個のゲームプロトタイプを作る中で達成され、その過程で小さなゲームエンジンライブラリも生まれた
- その後ブログのテーマはほかの関心事へと広がり、続ける理由も複数に分かれていった
-
書くことと思考の整理
- 最大の理由は、書くという過程そのものが好きだからだ
- 動機が常に一定だったわけではなく、2022年のようにほとんど書かなかった年もあった
- ときには無理にでも書かなければならなかった
- 書くことで思考の誤りを見つけやすくなり、別の視点も検討しやすくなる
- すでに書いた文章を書き直す過程は、コードのリファクタリングのように考えをさらに磨く効果がある
-
公開が品質を引き上げる
- 公開する文章・コード・アイデアは、1人で保管しておく場合よりも何度も読み返して修正するようになる
- 実際の読者がいなくても、何かを公開するという行為自体がそうした圧力を生む
- カスタムキーボードレイアウトは、公開していなければ今のようにはうまく発展しなかった例だ
- 初期の記事は思考の流れに近かったが、現在の大きな記事は何度も修正と書き直しを経て公開されている
- 複数の下書きは常に存在するが、興味を失ったり十分に磨くのが難しいと判断した場合は破棄される
-
個人プロジェクトと振り返りの保管庫
- ブログは、3Dプリンター制作や書籍執筆のような個人プロジェクトを記録する場所になった
- 毎年小さな年次振り返りを書き、過去1年のハイライトを整理している
- 年次振り返りは、何もしていないという憂うつな感覚を打ち消すのに役立つ
- 公開するかどうかに関係なく、何らかの形で年次振り返りをやってみることを勧めている
-
ブログそのものが趣味のプロジェクト
- プログラミングは最大の趣味であり、ブログは自分のためだけに存在するプロジェクトだ
- 必要なだけ書き直し、リファクタリングし、小さな機能を追加でき、他人に説明したり合わせたりする必要がない
- ブログ運営は文章力の練習でもあり、うまく書ける能力は効果的なソフトウェア開発者にとって重要だが過小評価されがちな技能だ
- 単に思考の流れをChatGPTに投げるだけでは十分ではないと一線を引いている
閲覧数や外部フィードバックに頼らない
- ときどき届く称賛のメールはうれしいボーナスにすぎず、ブログを続けてきた理由ではない
- ブログは他人に読ませるためというより、自分が書くために維持されている
- 閲覧数の推移や人気記事のグラフがないのは、統計をまったく保存していないからだ
- 読者数や人気記事に関心を持ちたくなく、統計を追加すると、活動そのもののための執筆がクリックを追う執筆に変わりかねないと懸念している
- 閲覧数を追っていたら、これほど長くブログを続けられなかっただろうし、ブログから得たさまざまな利点も逃していただろうと見ている
技術スタックの変化
- ブログを長く維持できた理由の1つは、技術スタックを変えながら実験できたことにある
- 初期は学びたい言語を選ぶところから始まり、よく動く退屈な構成へ進んだあと、再び自分で手を入れる方向へ戻ってきた
-
2008年前後: PHPとPerl
- 2008年前後にはPHPとKohana Frameworkで始め、ドキュメントには良い記憶がある
- Webサイトの作り方は分かったが、実際のブログに発展させることはできなかった
- 2009年初頭にはPerlとMojoliciousで書き直そうとし、はっきりした成果物があったかは定かでないものの、扱う過程自体は楽しかった
-
2009年7月: Jekyllで静的サイトへ移行
- 2009年7月には静的サイトというアイデアに触れ、Perlを捨てたうえでJekyllを選んだ
- 当時Jekyllは人気の静的サイトジェネレーターで、格好いい技術をいじる代わりに、実際に文章を書き始めるきっかけになった選択として残っている
-
2013年前後: HakyllとGit
- 2013年7月前後には、ただよく動くバックエンドに飽き、Haskellを学ぶためにHakyllへジェネレーターを置き換えた
- Hakyllは、きれいなDSLを備えた静的サイトジェネレーターだと評価されている
- 2013年7月は記録上もっとも早いGitコミットの時点であり、それ以前からGitを使っていた可能性もある
- ゲームプロジェクトでは2009年にSVNを捨てた
- 2013年から2022年までのHaskellの道のりは十分に成熟せず、その結果、何年ものあいだブログ機能をほとんど追加できなかった
-
2022年以降: Rust、CSS、Djot、Neovim
- 2022年8月には既存のソリューションを離れ、Rustでブログを書き直した
- サイトジェネレーターを完全に制御できるようになり、小さな機能をいじったり追加したりすることが再び楽しくなった
- 2022年から2024年までで最も気に入っている技術要素はCSSだ
- デザインを磨いたり小さな調整をしたりする時間が好きだ
- Sassを使っているが、95%は純粋なCSSだ
- 現代のCSSは素晴らしいと考えている
- 2024年2月にはほとんど偶然に、Markdownの代わりにDjotで文章を書き始めた
- Djot向けのTree-sitter文法が見つからず、自分で作った
- 2024年5月には、サイトジェネレーターをNeovimとつなぐ作業を進めている
- 自動補完、診断、記事間の移動といった機能を提供するのが目的だ
- こうしたIDEのような機能は、執筆体験を大きく引き上げる
- 現在のブログソフトウェアは意図的に1つの独立したプロジェクトとなっており、いじって楽しめる対象になっている
記事の焦点と規模の変化
- 時間がたつにつれて、記事はより大きく、より野心的になっていった
- 初期にはブログをほとんどTwitter/Xフィードのように扱い、ゲーム制作の進捗を短く更新していた
- 現在では、1本の記事を数週間または数か月かけてゆっくり作業し、面白く十分に磨けたと感じたときに公開している
- 関心事が変わるにつれて、記事の焦点も変わった
- ゲーム関連の記事は減った
- プログラミング記事と物理的な個人プロジェクトの記事が増えた
- 15年後にブログがどんな姿になっているかは分からず、今と同じやり方で書き続けていそうだと感じても、それを事実として語ることはできない
- 未来を予測するより、心配するのをやめて過程を楽しむほうがよいと締めくくっている
1件のコメント
Hacker Newsの意見
「このブログを続けているのは自分が書くためであって、必ずしも他人に読んでもらうためではない」という姿勢は、今では昔のインターネットの創作者の姿勢のように感じられ、それでもなお自分はそういう気持ちを持っている
最近はブログをあまり書かないが、別の場所でコンテンツを作っており、そのかなりの部分は自分の楽しみや創作意欲、ストレス解消のためのものだ。他人が見たがるかもしれないというのは副次的なことで、人々が望むことをやろうとはするが、自分がやりたいときにだけやる
若い世代は創作をまったく違うものとして見ているようだ。コンテンツに偽装した広告がうっとうしいと言ったら、「じゃあクリエイターはどうやって食べていくんだ」という反応を多く受けたが、クリエイターが望む形で収益化できるべきだという点には同意する一方、それが創作の唯一の目標のように見なされているのは戸惑うし、成果物も悪くしているように思う
YouTube初期からそうだったという話も聞くが、その頃その相手は赤ん坊だったし、事実でもない。専業コンテンツクリエイターという発想は比較的最近のもので、エンゲージメントを稼ぐ小細工やステルス広告をしないとアルゴリズムに罰せられるのが最悪だ
何かを売るためのものを作り、広告の周囲の空白を埋めるための言葉のように聞こえ、実際の中身は重要でなくなってしまう。自分を「コンテンツクリエイター」と呼ぶのは、自分の創作物の価値を金を稼ぐ手段としてしか見ていないという合図のように感じる
個人的には、日記や紙のノート、Obsidianの何千ものメモのように私的には常に書いているが、ブログ記事は毎回ひと仕事のように感じる。特に、自分にだけは自明な内容を説明し、個人的な略語を置き換え、書式を直し、ブログエンジンやホスティングの問題を手直しする後半の作業が難しい
こうした作業は自分にはあまり得がないのでしんどい気がするのだが、「自分のために書く」という枠組みの中でこういうことをどうやってやり切っているのか知りたい
十代の娘とその友人たちはみなコンテンツクリエイターになりたがっていて、21世紀のポップスターやテレビ出演者になるのに近い。私たちは産業として子どもたちが持てたはずの仕事のかなりの部分を自動化で消し去り、ひどいツールとアルゴリズムを握らせたうえで、これで金を稼げると見せてきたのだから、彼らの態度はそれほど驚くことではない
今では投稿する内容が数年後に評価の対象になり得るので本当に重要になってしまい、創作の自由が制限されるなら、金になる可能性もないことを、わざわざ楽しみもせず作る理由は減ってしまう
個人的には、実名のGmailは維持しつつ、Protonに匿名アカウントを作って一部のプラットフォームで使い始めた。Gimpで適当なロゴでも作ってGeocitiesのページに載せ、友人一人二人以外には誰も見なくても気にしなかった時代に戻ってみたい
誰も雇わない学位を取るために4年を費やし、借金返済のために食料品店で働くのか、それとも生計のために食料品店で働きながらクリエイターとしての成功を狙うのか、という話だ
ほとんどの人には選択肢が多くなく、良い機会は今や手の届かない都市に集中している
ほぼ20年間ブログを続けてきた
原文にない8つ目の理由があると思っている。ほかの人たちが共有してくれた文章からあまりにも多くの助けをもらってきたので、自分が学んだことやちょっとしたコツをお返しとして共有しないのは不自然に感じる。最も読まれた記事のひとつは、Playwright自動化でファイルのドラッグ&ドロップをまねるという、ごく短くて単純な記事だが、自分でその問題に直面したとき関連情報が見つからなかったので、次の人のために共有するのは当然だった
メンタリングしている開発者たちにも、もっと書いて学んだことを共有するよう勧めている。原文で挙げられた理由もあるが、それはコードを書くことでも、レシピでも、工芸でも、新しい趣味でも、私たちが依存している共同体に返していくための仕組みでもある
若い開発者が「誰が自分の文章なんて読みたがるんですか」と言うと、パンケーキの作り方に関するYouTube動画がどれほど多様で、しかも毎日さらに増えているかを見せる。声ごとに違う読者がいて、どこかにはあなたの声を探している人がいる。みんなが長文を書くことを習慣にできたらいいと思う
なぜ人気があるのかは分からないが、自分以外の誰かにも役立ったというのはうれしい
ブログは別の目的にも使え、時間とともに進化し得るという点が興味深くて良い
ただ、ブログの技術スタックに人々がこだわりすぎている気がするし、年表は良いものの、全体としてその部分に重きを置きすぎていると思う
自分のブログの唯一の目的は、シャワー中に結論が出た議論を生産的なものに変えることだ。自分が持っている立場の根拠となる論点を、望むだけ長く、望むだけ時間をかけて、引用や代替的な視点まで考慮しながら書くのは、かなり解放感がある
HNにコメントを書くのも良いが、たいていは時間的な圧力があり、1日後に良い返答を書いても会話は終わっているし、長すぎると読者を失う。ブログ記事は、反応的にならず熟考して本当の要点を伝える時間を与えてくれるし、人々もより読んでくれる可能性が高い
ほぼ10種類のスタックとプラットフォームを行き来した末に、最近はまたセルフホストのWordPressに戻ってきた
Haven.orgベースで自前のプラットフォームを始めたい気持ちもある。貢献したいが、Ruby開発者ではない
単に周期的にその段階を通っている感じだ。Gutenbergは慣れるのが少し面倒だったし、WordPressは必要なことに対していつも重く感じられたが、必要なときには欲しい機能を常に提供してくれた
「このブログを続けているのは自分が書くためであって、必ずしも他人に読んでもらうためではない」というのが長く続けるうえでの核心だと思う
これはブログにも間違いなく当てはまるし、内発的動機や自分のためにやることに勝るものはない。自分にも続けたいブログがあるが継続できておらず、その理由の一つは「自分は自分のために何を書きたいのか」ではなく「誰のために書くべきか」を問い続けていたからだと思う。ここには学ぶ点がある
その場所は、SEO、ブログスパム、インフルエンサー、「YouTube Face」サムネイル、怒りを煽る手法、そして今ではAIのゴミまで生み出した「エンゲージメントのために書く」という有毒な精神に置き換えられてしまった
オープンソースソフトウェアを作って公開することも同じだ。自分が使いたいソフトウェアを書けばよく、ユーザー数やプルリクエスト数やGitHubスターの数を気にする必要はない。そうしたものは空虚な虚栄指標であり、同じ「エンゲージメントのために書く」というコインの裏表にすぎない
発表と振り返りはよかったし、特に二つの点が響いた
「ブログはよりよい書き手にしてくれ、それがまたよりよい開発者にしてくれる」という言葉には同意する。開発者にとって文章を書く力は、特に会社の環境ではとても重要で、アイデアを明確に伝えられなければ他人を説得したり自分の貢献を示したりできない。よりよい書き手になるにはもっと書く必要があり、ブログはその助けになる
「文章がより長く、より野心的になった」という変化も、自分のブログで似たように感じる。頻繁に書いていた300語の記事から、まれに書く3000語の記事へと変わり、Twitterのようなプラットフォームが短い文章を書く場と、そうした文章を消費する場を持っていった
ともあれ、3か月前に書いた自分の20年ブログ回顧はここにある: https://jmmv.dev/2024/06/20-years-of-blogging.html
よい考えやアイデア、気の利いた一文を書いて共有しても、実質的には時間の中に消えてしまうものがあるのではないか。そうした考えが自分のウェブサイトに保存されないなら、自分や他の誰かがいつまた見返せるのだろう
2001年からブログを書いてきて、もうすぐ25年になるというのは驚きだ。その頃はWikipediaが始まった時期だった
同時代の多くの人はやめてしまい、自分も10数年前ほどには気を配れていない。5年ほど前に分析ツールを外し、WordPressを使っていた間はWP-Engineが従来条件を維持してくれていたが、それもやめた
今は後で読み返して思い出すため、そして繰り返し答えなければならない話題について渡せるウェブURLを持つために、主に自分のために書いている。前半のメタデータやタグもなく、GitHub Pagesが吐き出せる最もシンプルなプレーンテキストで書いている。基本的なCloudFlare分析が正しいなら、今でもかなり訪問者はいるようだ
それでもこれをいじるのが好きだし、未完成の記事もたくさんある。できる限り続けるつもりだ。https://brajeshwar.com
ブログに統計を入れると、その活動自体のためではなくクリックを追うためのものになり、自分のためではなく他人のために書くようになってしまうのではないかと心配している、という点が核心だ
いつかブログを始める動機を探すなら、この点は重要だと思う。虚栄指標はやる気を削ぎそうだ
虚栄指標に縛られ、動画1本が失敗すると次の10本の動画の指標まで大きく悪化し、そのせいで狂ったようにコンテンツを出し続けなければならない。休暇もなく、休めば指標がまた下がるからだ
それによって自分が何を書くかを決めるわけではないが、地球上に同じものに関心を持つ人が本当に何人かはいるのだと確認できるのは、かなり楽しい
ブログに特定の焦点があったり、元の筆者のブログのように進化したりしても、統計は常に目の前にある。この問題に立ち向かう方法は、自分の動機しかないように見える
ブログ提供者が対応しているなら、ランダム記事を開くボタンを追加すると、長期的には体験がずっと豊かになる
自分や他の人たちがさまざまな時代の記事を再訪できるからだ。ウェブサイトには読者が探索できる物理的な形がないので、偶然性を自分で加えることでその特性を活かせる
ランダムなブログ記事に興味があるなら、自分のプロジェクト https://indieblog.page/も見てみるといい
今日の日付と同じか最も近い過去年の投稿を表示する。折りたたみ版では1年、3年、5年、10年前の記事を表示し、展開版では18年分すべてを表示する。過去の記事を小さな贈り物のように差し出す、小さなタイムマシンのようなものだ
ランダムページ機能はあるが、https://wiki.roshangeorge.dev/index.php/Special:Random でよい記事に当たる保証はない
正直、元記事の筆者は正しい。何十年も前と同じ理由でこのブログを書いている。それ自体が楽しいからだ。昔は閲覧数が何百もあったが、今の読者は自分とRSSリーダーを使う友人一人だけのようだ。それでも、いつかLLMに見つかれば、自分を取り込んで機械知能の小さな一部になるのかもしれない
偶然、自分のブログの最初の記事¹が2009年9月24日に投稿されていたのを見つけ、昨日でちょうど15年になった
個人ウェブサイト上のすべての記事を保存することにはかなり気を使ってきたが、残念ながら最近は新しい記事をあまり書いていない。これから変わるのか気になっている
[1]: https://dmitri.shuralyov.com/blog/1
この記事にはとても共感した。最近しばらくの間、ひどい落ち込みやインポスター症候群のような感覚のせいで文章が書けなかった
Jonasのように自分のために書いていて、コメントシステムもなく、1日の平均訪問者は5人ほど、たまに1〜2日だけ数百〜数千人に跳ね上がるくらいの泡の中で生きていた。そんなことはまれで、何を書くかよりも書くことの楽しさを大事にしていた
ところが就職市場で苦戦していたとき、誰かに自分の文章が機会を損ねていると言われた。誤字や文法ミスを指摘され、内容もあまり良くなく、追いにくく散漫だと見なされた
すぐに全部下げてしまい、誰かがそれを役立つと思うかもしれないと考えた自分が馬鹿みたいに思えた。むしろ個人的な日記のようにオフラインにだけ置いておくべきだったのではないかと思った
1年ほどたって、その判断がどれほど間違っていたかに気づいた。絶対に文章を下げるべきではなかった。私自身も何度も採用したことがあるが、応募者の個人ブログを見て「うわ、誤字と文法ミスだ。不採用」と思ったことは一度もない。こういうものは、その人の性格、好奇心、能力、そして重要なさまざまな要素を示すシグナルだ。ほとんどの場合、採用において害よりも助けになることのほうが大きかった。サイトを最後まで維持しなかったことが見えてしまうまれなケースは良くないが、それも十分理解できる
時間は少しかかったが、また書き始め、自分への疑いを振り払おうとして共有も始めた。そしてそれは、信じられないほど爽快で、生き返るような体験になった。主に興味深く没頭できるものについて書くので、書くことは、私がプログラミングで愛しているものを改めて思い出させてくれる。テーマを深く扱うことで、知識や能力に対する感覚も大きくなる。文章を書くこと自体だけでなく、理解のための精神的な運動でもある
Jonasが言ったように、何というか、ただ楽しい。正確には説明できないが、書き始めるとほとんどすぐに集中して没入した状態になる。そこは私がいたい場所だ
自分を疑い、書くことは自分には向いていないと感じていても、実は楽しんでいるのなら、私の経験から何かを受け取ってほしい。それでも書く価値はある。有名な作家のように書けなくても誰も気にしないし、たまに誤字や拙い文法があっても大丈夫だ。大事なのは楽しむこと、そして好奇心のある人たちと分かち合うことだ。たくさんやるほど上達するし、人生の本当の喜びになりうる