Songmu氏のブログ遍歴

Songmu氏:「ブログを作る」話ですね。これもcho45さん(ショ糖氏)の名言です。これはすばらしいなと思って、そのまま引用して読ませてもらいます。「個人サイトの外観はまさに顔だ。デザインされてなさ、みたいなのも含めて。ダサくても個人サイトを持つべきだと思う。ブランディングというと大袈裟だけど、自分のコンテンツは自分で持つのが確実に良い」。これは、名言過ぎますね。

やはりパッと見て、「あ、これは〇〇さんのブログだ」とか、「〇〇さんのサイトだ」ってわかる良さはすごくあるので、オンラインアイデンティティとしての個人サイトはすごくありだと思うし、僕のこのスライドを見ていても、ダサいからいいなと思っています。

ブログ遍歴みたいな話をすると、もともとはHTMLを手書きしてFTP(File Transfer Protocol)で上げるといったことを2004年ぐらいまでやっていて、2005年からMovable Typeをやり始め、2013年からは今のメインブログのRijiというやつを使っています。あとは2016年から「はてなブログ」も使っています。

今はメインブログをPerl製のOSS(Riji)の「Static Site Generator」と「Firebase Hosting」でやっています。サブブログは、「はてなブログPro」でホスティングしているものがあります。

あ、そうだ! 1個追加したんですよ。「Content Everywhere」という、YAPCのノベルティのトートバッグなんですが、YAPCに来る時はこれに服とかを詰めて持っています。

(スライドを示して)すみません。汚い写真で恐縮ですが、右側がsix apartさんのです。今でもすごく大事に使っています。

(スライドを示して)メインブログはこんな感じです。

サブブログはこういう感じですね。直近の記事は「いったいいつからボウリングのスコア計算方法が1つだけだと錯覚していた?」という、おもしろい記事なので読んでください。

はてなブログ推しの内容もあるので、一応はてな社との関係を明示しておきます、。以前は、はてな社員でした。blogsyncという、はてなブログを操作するCLI(Command Line Interface)のメンテナンスをしていて、2023年もOSSプログラムでスポンサーをしてもらったりとか、少し株を持っていますので、一応関係性の明示をしておきます。

ブログをどこまで構築するか

ブログをどこまで構築するかというと、自サーバーや手書きHTMLからSaaSまでといった話があります。

IndieWebというコミュニティ・ムーブメント・プロトコル標準化をやっている人たちがいて、ここに大事なこととか、すごく良いことがめちゃくちゃ書いてあるということに、この発表を作っている時に気づいたんです。

原則がすごくいいんですよね。この一覧だけでは伝わらないので、みなさんにはぜひ中身を読んでほしいです。

個人的に気に入っていることとしては「Own your data、Make what you need」。まず自分自身のためだけでいいから作って、それを使いましょう。可能なら、それをオープンソースにすると、より多くの人がIndieWebに参加できるみたいな。

そういう個人サイトムーブメントに参加できます。あとは「Longevity」。長続きすることとか、「とにかく楽しもう」みたいなことが原則に書いてあって、めちゃくちゃいいなと思います。

「コントロールしたい」と考えているもの

僕としては「コントロールしたいもの」がいろいろあります。トップにも「You are in control」というのがあるんですけど。コンテンツ管理とかもバージョン管理したいし、書きたいことを書ける、個人商用利用が可能か、アフィリエイトとかも書けるかといったこととかですね。

あとはURLも自由にしたい。リダイレクト制御、301とかといったMoved Permanentlyみたいなものとかをきちんと返したい。あとはHTMLテンプレートも自分でカスタマイズしたい。あとけっこう地味ですが、Head内にタグが書けるかがすごく大事だと思っていて、でもそこまでできるサービスはあまりないんですよね。

あとはアクセス解析ですね。アクセス解析も、Googleアナリティクスも見れないような、デフォルトではできないサービスが案外多いです。あとはCool URIs don't changeといった、CoolなURIが変わらないというのも大事なポイントです。

あと個人的にはコンテンツをGit管理したいと思っていて、理想としてはMarkdownをgit pushしたらサイトに反映されてほしい。今はメインブログでそれを実現できているので、すごく快適にブログを書いています。

ブログのおすすめ構成

今のおすすめ構成は、僕がやっている構成そのままなのですが、SSG(Static Site Generator)とホスティングサービスを使うパターンと、はてなブログを使うパターンが個人的には始め方としてはおすすめかなと思っています。

SSGはたくさんありますが、古くから今もありますけどJekyllとか、一時期流行ったGatzbyとか、あとはHugoなどですね。

HonoもSSG対応したりと、機能がリリースされていてめでたいですね。個人的にはRijiを使っているんですが、業務で使う時はHugoを使うことが多いです。

あらためて、静的配信の良さはやはり自由度の高さです。パフォーマンス、セキュリティ、ポータビリティのメリットがあるので、動的サイトに比べてコンテンツをポンッと置いておけば、速いし、セキュアだし、どこにも持っていけるような良さがあると思っています。

デメリットもいろいろありますが、動的要素や外部サービスなどもうまくウィジェット配置をすればカバーできるし、生成コストも現代では十分に速いです。個人サイトレベルのコンテンツ量であれば、ぜんぜんネックにならないと思っています。

僕はやはりHTMLが好きです。HTML拡張子がついているのが僕は好きで。でも、先ほどのCool URIs don't changeとかには「拡張子がないほうがいいよ」みたいに書いてあったり、Hugoもそういう設定ができるんですが、その設定名がunglyURLsになっていたり。あとは、「Cloudflare Pages」は、HTMLファイルを置くとHTML拡張子を削っちゃうんですよね。

ファイルであることは個人的にすごくいいと思っていて。ファイル拡張子がContent-Type的な情報を意味するのはいいなと思っています。

ホスティングサービスは「GitHub Pages」、「Firebase Hosting」やCloudflare Pagesなど、好きなものを使えばいいと思います。

ブログのカスタマイズができるのはすごくいい

「はてなブログ」の話。はてなブログは、やはりAPIがちゃんとあって、コンテンツを手元にダウンロードできるのでGit管理できます。標準でCSSをいじれるし、Head要素内にタグを書けるし、アクセス解析が開放されています。個人向けにプライシングがあるのもすごく大きいと思っていますし、独自ドメインが設定可能なのもいいところだと思っています。

はてなブログでCSSのカスタマイズは少しやりづらいんですが、管理画面で細かい修正ができたり、自分で自作のデザインテーマを作って、テーマストアに非公開で投稿するといった手があります。

はてなブログ内にちゃんとデザインテーマ制作の手引が書いてあって、「こういうエレメントを書けばいいですよ」というようなところがあるので、やってみるのもおもしろいと思います。

@importだけを1つ書いておいて、それをどこか別のところでホストするといった裏技的なやり方もあるので、そうするとGit管理もやりやすくなるかなと思っています。

ブログのカスタマイズができるのはすごくいいと思いますが、「カスタマイズしないといけないから始められない」というのもあると思っています。

やはり最適なデフォルトがあるというのはすごくいいことだなと思いつつ、個人的にはデザイン性やカスタマイズ性があったほうがいいなと思います。某サービスが突然Xみたいなヘンテコなロゴになったことがありましたが、やはりデザインのカスタマイズ性がないと受け入れないといけないみたいなことがありますから。

あとはプライバシーポリシー、クッキーポリシーとかもきちんと置いたほうがいいです。はてなブログでは「こうしてください」といった個人営利利用ガイドラインがあります。そういうことを書いておけば、アフィリエイトもOKなのがうれしいところです。

Longevityに思うこととしては、「死んだあとのコンテンツ管理はどうするの?」といったところは最近いろいろと思うことがあります。

(スライドを示して)ブログの変遷としてはこういう感じになります。

Docker化を2023年か2022年ぐらいにしたのですが、こうすると、いろいろなところでサイトのビルドができるようになりました。Perl製のStatic Site Generatorでも「GitHub Actions」で構築できるので、シュッとできるので良いです。

Perlがいいなと思うのは、思い出した時に手を加え始めても壊れていないんですよね。だから2年越しぐらいでやっても再開できる。依存ライブラリをアップデートしたらフリーランチ的に新機能が使えるというようなのもあって。

あとは、マークダウンパーサーにText::Markdown::Discountというのを使っていますが、これも地味に新機能とかも追加されていたりして、便利なのでいいなと思っています。

最後に、「ブログいじり、ブログHacks、ブログを慈しむ」みたいな話です。

コメント機能がほしいと思いますよね。静的配信だとできないのですが、Disqusを使えばできます。

シンタックスハイライトはGoogle Code Prettifyをずっと使っていますが、たぶんもっといいのがあったりすると思います。

(スライドを示して)あとは、個人ブログでも「はてなスター」はこういう感じで設置できるんですよ。

これはあまり知られていないと思いますが、外部サイトをはてなIDと紐づける(機能)みたいなものがあって、これをやっておくと、はてなブログとかにコメントされた通知や、はてブコメント非表示機能も使えるようになります。

「はてブコメント」を非表示にするタグみたいなものもあって、こうしておくと「はてブコメント」を見たくないという人や自分のサイトのを見たくない人はこういう(ものを使ってコメントを非表示にする)こともできます。

別に「はてブコメント」非表示を推奨しているわけではなくて、こういうタグを書ける自由があると、そういうものに煩わされないという感じです。「はてな」はそういうことをよくやっていると僕は思っています。

最近やったこととしては、ActivityPub対応をやりました。YAPC駆動でできたので良かったなと思っています。1時間ぐらいでできました。

更新通知をクイックハックでPerlでGitHub Actions上で実行できたので、すごくすばらしい。

ActivityPubとか、そういうサイト同士の交流やアイデンティティをどうしていくかみたいなことは今後の課題でいろいろあるなと思っていたりします。

あとはoEmbed対応やPodcastとかもそうですね。実はPodcastもブログの隣接技術なので、システムを作りたいなとずっと思っています。

ブログは書くのもいじるのもすごく楽しい

ブログは書くのもいじるのもすごく楽しい、自由なコンテンツ発信とコミュニケーションの場だし、技術の砂場としてもすごく役に立ちますよといった話でした。

ちょっと伸びましたがそんな感じです。ということで、ベストスピーカーの投票をお願いします。ありがとうございました。