C 言語に対する畏敬の念、または C 言語コンプレックス
職業プログラマーを 15 年以上しているけれど、仕事で C 言語を書いたことがなく、C 言語に対して苦手意識を持っている。C 言語は高専および大学で習ったし、それらの教育機関で与えられた課題には C 言語で回答したものもあった。しかし、仕事ではスクリプト言語や JVM 言語 (Java や Kotlin) ばかり触れてきており、ついぞ C 言語を書かずにここまで来てしまった。
これまで、職業プログラマとしてはバックエンドのプログラムを書く他に、ミドルウェアの設定をすることも多かった。この記事の執筆時点で広く使われているミドルウェアの多くは C 言語もしくは C++ で書かれており、同僚の中にはミドルウェアの実装を深堀りして拡張したり、場合によっては開発者にパッチを投げてバグを改修する人もいた。僕は C 言語に対する苦手意識から、ミドルウェアの不具合を見つけても、ワークアラウンドを考えたり実装したりする程度で済ませてきた。こうして C 言語に対するコンプレックスをこじらせてきたのだ。
このコンプレックスを払拭したいと思う。
今後、いくつか C 言語の入門書を読みながら、しばらくブログに学習内容をメモ書きしていこうと思う。
このブログ記事はその決意表明である。
Disqus の導入
このブログに Disqus を導入した。
昔はブログにコメント機能をつけることには反対していた。なぜなら、一般的にブログ記事のコメント欄にコメントを書くのは 簡単すぎる からである。「何を言っているのか分からない…」という声が聞こえてきそうだ。
ブログを書くのは割と大変だ。苦労して書いた記事なのに、タイトルだけ読んで脊髄反射したようなコメントをつけられたり、一部分を都合よく解釈して批判をするようなコメントをつけられることが嫌だったのだ。
昔はブログにメールアドレスを公開して「記事に意見があるときはメールをください」と書いていた。メールを書くのも割と大変なので、脊髄反射的な内容を送られることは少ないだろうという意図だ。
これはそれなりにうまく行っていたけど、コメントするハードルが高すぎると、フィードバックを得づらいというデメリットもある。今は積極的に人からのフィードバックをもらいたいという気持ちである。そこで、本記事のタイトルの通り Disqus を導入したという次第だ。
そもそも脊髄反射的なつまらないコメントをつけられてしまうというのは、記事が大衆向けすぎるということなのかもしれない。自転車置き場の議論に供されるようなことしか書いていないのかも。高度な記事を書けば、しょうもないコメントはつかないのかもしれない。そうだとすると「よいコメントが欲しい」という気持ちは、高度な内容を書くためのよいドライバなのかもしれない。
追記 (2022-10-27)
残念ながら、これまで Disqus 経由でフィードバックをもらえることはあまりなかった。
最近のエントリで “自分が、自分のために、ブログを書いている、というスタンスは大事にしていきたい” という気持ちに立ち戻ったので、このタイミングで Disqus を廃止することにする。
日本語圏のユーザーには DuckDuckGo よりも startpage.com がオススメ
プライバシ意識に目覚めて Google のプロダクトを使いたくなくなることもあるでしょう。人間だもの。
“検索エンジン 匿名” などのキーワードで Google 検索すると、最初に出てくるのが DuckDuckGo だ。 The search engine that doesn't track you.
というメッセージとシンプルな検索文字列の入力フォームがトップページにある。そうそう、こういうのが欲しかったのだ。
しかし、残念ながら、僕はこのプロダクトに満足することはできなかった。日本語検索の結果が非常に悪い。古かったり関係なかったりする記事がずらーっと並んでしまう。
DuckDuckGo は検索エンジンそのものを開発しておらず、エンジンは Microsoft Bing を使っている。DuckDuckGo は仲介者であり、検索クエリをユーザーに代わって Bing に投げるため、Bing にはユーザー情報が渡らない、という塩梅である。そして Microsoft Bing の日本語の検索結果はいまいちよくない。結果、DuckDuckGo も満足いく結果を返せない。
DuckDuckGo と似たコンセプトでサービスを提供している Startpage.com という検索サービスがある。こちらは The world's most private search engine
をトップページで謳っている。
Startpage.com は DuckDuckGo と似た仕組みだが、裏側の検索エンジンは Google である。したがって、日本語の検索結果もそれなりに満足いくものだ。そして DuckDuckGo と同様、Startpage.com が検索クエリを投げるため、ユーザーのプライバシは守られる (Google からは誰のクエリかわからない)。一年くらい Startpage.com を使っているけれど、とても満足している。あえて不満をあげると検索ページが少し重いくらいだろうか。
Startpage.com は DuckDuckGo と比べるといまいち知名度が高くないので紹介してみた。日本語ユーザーであれば試してみる価値があると思う。
追記: 2024年1月5日
Startpage.com を便利に使うための Chrome 拡張を作りました。Zenn で紹介しているので、ぜひお試しください。
ブザーとともに生きる
少し前に『プリズナートレーニング』が出版されたとき、「読んでみたいな」と思って図書館に予約リクエストを出した。予約リクエストを出してから順番が回ってくるまでに時間がかかったけど、今も変わらず健康的な体作りに興味があるので読んでみた。
僕が最も感銘を受けたのは筋トレのテクニックそのものではなく、筋トレを日常生活に組み入れる手法について書かれた「ブザーとともに生きる」という節である。著者は監獄で囚人として暮らしながら筋トレをしていた経験があり、「ブザーでスケジュールが区切られる」監獄生活が筋トレのルーチン化に役立ったと述べている。
この節は試し読みできる。
監獄で生活する。それは、規律がすべてであることを学ぶ生活だ。食べるための時間、眠るための時間、他者とふれ合うための時間、作業するための時間が決まっている。タイムテーブルに従ってすべてが行われ、自分でスケジュールをコントロールする自由がほとんどない。ブザー人生と呼び習わす監獄もあった。ある日のある行為がブザーの音で始まり、そして終わるからだ。
強制的なタイムテーブルの下での生活を何年間も続けたことで、わたしは、時間を尊重するようになっていった。入獄してしばらくすると、だれもが、ルーチンを上手にこなしていけるようになるが、それは、監獄暮らしが長引くと一般社会で生きていけなくなる理由のひとつにもなる。外の世界に出ると、タイムテーブルを失うからだ。何をすべきか、いつ行うべきかを教えてくれる人がいなくなり、迷子になる。自分でタイムテーブルをつくってそれに従う賢い〝元囚人〟もいる。そうできれば外の世界でのサバイバルが可能になり、レールから外れることを避けることができる。
僕はいわゆる「外の世界」で生きているわけだが、それでもブザーが必要なのかもしれない。自らタイムテーブルを作り、それを強制することでルーチンを作るのだ。
様々な要因から、外の世界にブザーを持ち出すのは難しい。僕の場合は「幼い息子」や「仕事の割り込み」がブザー導入の障害になる。次のようにするのはどうだろうか。
- 息子が必ず寝ている時間帯に、ルーチンを組み込む
- 仕事に関する情報をオフィスの外で読まない (緊急時を除いて)
数ヶ月後に「望ましい行動」を日々の生活に組み入れられているかどうか、チェックしてみようと思う。
人生の楽しみ
『ご冗談でしょう,ファインマンさん』を読んだ。
実はこの本を通して読むのは初めてである。名著と名高い本なので、過去にも手に取ったことがあるけど、途中で挫折していた。当時は著者のファインマン先生の実験内容が文章から想像しづらく、内容に没頭できなかったからである。
今回も、彼が行った実験を「よく分からない」と思うことはあったけど、目をつぶって読み進めた。そのような雑な読み方であっても、影響を多く受ける内容であった。
とりわけ感銘を受けたのは「社会的に役に立つ仕事」を追求することでスランプになった彼のエピソードである。
前にはあんなに物理をやるのが楽しかったというのに、今はいささか食傷気味だ。なぜ昔は楽しめたのだろう? そうだ、以前は僕は物理で遊んだのだった。いつもやりたいと思ったことをやったまでで、それが核物理の発展のために重要であろうがなかろうが、そんなことは知ったことではなかった。ただ僕が面白く遊べるかどうかが決めてだったのだ。
この気づきから、悟りを開くことができたという旨の記述がある。
また、このエピソードの続きには、大学のカフェテリアでふざけて皿投げをして遊んでいる様子を観察しながら、皿の運動について計算し、それが結果としてノーベル賞に結びついたという話がある。
結局のところ「意義があるかどうか」などとしみったれたことを考えず、自分の興味を追い続けることこそがブレイクスルーにつながるのだと思わせられる、良い話であった。
選挙で白票を投げること
選挙で白票を投じても政治に対する不信感を表明したことには ならない。しかし、自分の世代の投票率を上げたことにはなるので、全く無意味ではないと思う。効率はよくないけどね。
ただし、白票は選挙管理委員の人間に書き換えられるリスクもなくはない (選挙管理委員の人間を疑うと、そもそも選挙が成り立たなくなるけれど)。
Social Network Services
勤務先で書いているWebサービスは著しく Twitter と Facebook に依存しているんだけど、個人的にはどちらのサービスにも不満がある。
Twitter はポリシが不明瞭に思える。2007年頃はオープンな Messaging Platform だったように感じるが、3rd Party API の制約を強めた辺りから風向きが変わったように思う。先日 Twitter が発表した Strategy Statement も全く意味不明である。
Reach the largest daily audience in the world by connecting everyone to their world via our information sharing and distribution platform products and be one of the top revenue generating Internet companies in the world.
何が何だか…。サービスとしての Twitter は緩やかに死んでいくのだろう。
Facebook はポリシが明確なものの、全く共感できない。一人の人間が一つのアカウントを持ち、なるべく多くの人たちとつながり、なるべく多くの情報をシェアしてコミュニケーションを盛んにしたいのだと思う。
人間関係はそうそう単調なものではなくて、多くの人とつながればつながるほど、人間は密にコミュニケーションを取ることはできなくなるものだ。Facebook も、やはり衰退が約束されたもののように感じる。
リモートワーク
リモートワークの仕事について調べている。
今の職場に不満があるわけではないけど、海外で働いて現地の永住権を手に入れてしまったために現地に縛られるというのは本望ではない。行きたいところにいつでも行ける状態が好ましい。
Hacker News に Basecamp (旧 37 Signals) が運営している We Work Remotely に関する情報が出ていた。We Work Remotely はリモートワークの求人のみをリストするサイトである。面白い書き込みがあった。
We hired two developers through WeWorkRemotely (gotten about 100 applicants), and couldn’t be happier. Highly recommended.
WeWorkRemotely で二人の開発者を採用したけど、最高だったよ。応募は100通以上あったね。
つまり、この手の口から応募するときは50倍程度の競争率を見込む必要があるということだ。なかなか大変そうだ。
反対に、企業側であれば、この手のサイトに求人を載せると50人程度の候補者から最適な一人を選べるということだ。悪くないのではないか。
リモートワークが全ての職業ないし企業で最適だとは思わないけど、現時点では不当に評価されていると思う。もっとリモートワークが流行ればいいと思う。