技術

A tool was configured, tested, broken, and sometimes fixed. These entries document what worked and what didn't: recording setups, network infrastructure, text editors, file formats, and the quiet satisfaction of making something behave.

哲学を読む

考えることしかできない

人類が何千年もかけて「知性」と呼んできたものは、実のところ、知性のうちでもっとも薄い層だったのかもしれない。 1997年、IBMのDeep Blueがチェス世界王者ガルリ・カスパロフを破った日、世界は「機械が人間を超えた」と騒いだ。しかし同じ機械は、テーブルの上のコーヒーカップを持ち上げることができなかった。チェスの王を詰められる計算能力が、マグカップの取っ手を握る動作の前では無力だった。 1988年、ロボット工学者ハンス・モラヴェックは著書 Mind Children(Harvard University Press)のなかで、この奇妙な非対称性を一文に凝縮した。「知能テストやチェスで大人レベルの性能をコンピュータに発揮させることは比較的容易だが、知覚や運動に関して一歳児のスキルを与えることは困難、あるいは不可能だ」。同時期にロドニー・ブルックスやマービン・ミンスキーも同様の観察を述べている。これがモラヴェックのパラドックスと呼ばれるものだ。 そしてこのパラドックスが本当に突きつけているのは、AIの限界ではない。「知性とは何か」という問いに対する、人間の見積もりの甘さだ。

By Sakashita Yasunobu

哲学を読む

無関係なものを忘れる技術

知性とは何かと聞かれたら、たいていの人は「考える力」と答えるだろう。推論する力。分析する力。問題を解く力。 だがAIの歴史が数十年かけて暴いたのは、ほぼ真逆の事実だった。知性の核にあるのは、考えない力かもしれない。関係のないことを無視し、必要のない推論を止め、世界の大部分を放っておく力。それを私たちは「常識」と呼ぶ。そして常識がどれほど途方もないものであるかを最初に突きつけたのは、哲学者でも心理学者でもなく、ロボットに爆弾を片付けさせようとした計算機科学者たちだった。 三台のロボットの末路 哲学者ダニエル・デネットは「認知の車輪」と題した論文のなかで、三台のロボットの寓話を語った。 一台目のロボット、R1。部屋のなかに時限爆弾がある。同じ部屋にR1のバッテリーも置かれていて、バッテリーは台車に載っている。R1は台車を引き出せばバッテリーを救えると推論し、実行する。だが台車の上には爆弾も載っていた。R1は「台車を引くと台車の上のものが一緒に動く」という副次的効果を推論できなかった。 二台目、R1D1。行動の副次的効果をすべて考慮するよう設計された。台車を引く前に、R1D1はあ

By Sakashita Yasunobu

技術

EthernetポートのLEDが示すもの

PCやルーターのEthernetポート(RJ45コネクタ)には、小さなLEDが2つ付いていることが多い。何気なく目にする光だが、それぞれが異なる情報を伝えている。 リンク状態と通信アクティビティ 一方のLEDは、物理的な接続の有無と、データの送受信状況を示す。 * 点灯していれば、ケーブルが正しく接続され、リンクが確立している * 点滅していれば、データパケットの送受信が行われている * 消灯していれば、ケーブルが抜けているか、相手側の機器が応答していない この点滅は一見すると何らかの規則的なパターンに見えることがあるが、実際にはネットワーク上のトラフィック(パケットの送受信)に応じて不規則に発生しているだけであり、点滅のパターン自体に意味はないことがほとんどである。点滅していない場合は、単に通信が発生していない状態である。 通信速度の表示 もう一方のLEDは、リンク確立時にネゴシエーションされた通信速度を色で示す。10/100/1000 Mbps対応のポートでは、一般的に以下のような構成になっている。 * ある色で1000 Mbps(ギガビット)接続を示す

By Sakashita Yasunobu

技術

NTPのStratum階層とGPS時刻同期の仕組み

Windowsの時刻がずれやすいと感じたことをきっかけに、NTPの仕組みやStratum階層、GPSを用いた時刻同期について調べた内容をまとめる。 NTPとは NTP(Network Time Protocol)は、ネットワーク上の機器間で時刻を同期するためのプロトコルである。現在広く使われているのはNTPv4(RFC 5905)で、1985年の初版から改良が重ねられている。 NTPはStratum(階層)と呼ばれるツリー構造で時刻を配信する。上位の正確な時刻源から下位へ順に同期することで、ネットワーク全体の時刻精度を維持している。 Stratum階層 NTPのStratum階層は以下のように定義される。 * Stratum 0 : 基準時刻源そのもの。原子時計やGPS受信機などのハードウェアデバイスが該当する。Stratum 0はネットワーク上のサーバではなく、シリアルポートやUSBなどでStratum 1サーバに直接接続される * Stratum 1 : Stratum 0に直接接続されたNTPサーバ。プライマリタイムサーバとも呼ばれる * Stratum 2

By Sakashita Yasunobu

技術

Ghost CMSでKaTeXを使って数式を表示する方法

Ghost CMSには数式レンダリング機能が組み込まれていないため、外部ライブラリを導入する必要がある。本記事では、Khan Academyが開発した軽量な数式レンダリングライブラリであるKaTeXをGhostに導入する手順を解説する。 KaTeXの読み込み GhostのCode Injection機能を使い、サイト全体のヘッダーにKaTeXのCSSとJavaScriptを追加する。 Settings > Code injection > Site Header に以下のコードを貼り付ける。 <link rel="stylesheet" href="<https://cdn.jsdelivr.net/npm/katex@0.16.25/dist/katex.min.css>" integrity="sha384-WcoG4HRXMzYzfCgiyfrySxx90XSl2rxY5mnVY5TwtWE6KLrArNKn0T/mOgNL0Mmi" crossorigin="anonymous&

By Sakashita Yasunobu

技術

Markdownで文献出典を扱う実用的な方法

Markdownで文章を書いていると、学術的な小論や技術記事など、ある程度の正確さを求められる文書で文献出典をどう扱うかという問題に直面する。Markdownの仕様には脚注や参考文献を管理する標準的な仕組みがなく、エディタごとの独自拡張に頼ると将来の移行時に困る。本稿では、プレーンテキストとしての可搬性を保ちながら文献出典を扱う方法を比較し、実用的な選択肢を検討する。 前提と要件 文献出典の記法に求められる性質は以下の通りである。 * 可搬性: 特定のエディタやプラットフォームに依存しない。プレーンテキストとして意味が通じる * 執筆時の効率: 書いている途中で文献リストとの間を行き来する必要がない * 可読性: 出典の挿入が本文の読みやすさを大きく損なわない * 検索性: 後から特定の文献を参照している箇所を検索できる * 自己完結性: リンクや外部参照に依存せず、テキスト単体で出典情報が完結する リンクベースの参照([[]] やハイパーリンク)は、リンク先が移動・消失すると出典情報そのものが失われるため、長期的な文書管理には不向きである。 主な方法の比較

By Sakashita Yasunobu

技術

小さなブログにコメント欄もアナリティクスもいらない

小さな、熱意のあるサイト運営者へ。 ブログのコメント欄は閉じよう。まだ導入していないなら、導入しなくていい。 そしてアナリティクスも入れなくていい。少なくとも、Google Analytics(GA4)は入れるべきではない。 突拍子もないことを言っているように聞こえるかもしれない。でも、これは思いつきでも逆張りでもなく、実際に小規模ブログを運営してきた多くの人たちが、試行錯誤の末にたどり着いた結論だ。 コメント欄を閉じよう そもそも誰もコメントしない まず、厳しい現実から始めなければならない。 Jakob Nielsenが2006年に提唱した「参加の不平等(Participation Inequality)」の法則によると、オンラインコミュニティではユーザーの90%が閲覧のみ、9%がたまに参加し、積極的に投稿するのはわずか1%にとどまる。ブログのコメント欄ではこの偏りがさらに極端になり、95対5対0.1ほどになるとも指摘されている。 Participation Inequality: The 90-9-1 Rule for Social FeaturesIn mos

By Sakashita Yasunobu

技術

デジタルの紙を超えて

紙の資料がPDFになった。たったそれだけのことが、実際にはどれほど革命的だったか。そしてなぜ、それだけでは足りないのか。 紙からPDFへ 少し前まで、「資料」といえば紙のことだった。コピー機を通すたびに劣化する文字。数世代のコピーを経て原形をとどめないページ。手書きの注釈が入り混じった印刷物。回覧のために物理的に持ち運ばなければならない書類の束。それが「資料を配布する」ということの実態だった。 コロナ禍を契機にオンライン化が一気に進み、紙の資料は急速にPDFへと置き換わった。コミュニケーションツールが普及し、ファイル共有が当たり前になった。 この変化の大きさを、過小評価すべきではないと心から思う。 ニール・アームストロング船長の有名な言葉が頭に浮かぶ。 That's one small step for a man, one giant leap for mankind. 一人の人間にとっては小さな一歩だが、人類にとっては偉大な飛躍である。 紙からPDFへ。ファイルを送るだけで同じ文書が相手の画面に表示される。文字を検索できる。拡大しても潰れない。地球の裏側にいる人に

By Sakashita Yasunobu

生きること

ストレージを信じるということ

ストレージに求められるのは、便利さと信頼性の両方だ。この二つが揃っている限り、裏側がどんな技術で動いていようと気にする必要はない。ファイルを保存して、必要なときに取り出せる。それだけのことが当たり前に機能し続けること。ストレージへの信頼とは、つまるところそういうことだと思う。 ところが、ストレージには他の技術レイヤーにはない厄介な性質がある。 不可逆性という特殊性 ソフトウェアにおける抽象化とは、内部の複雑さを隠して、使う側に必要な操作だけを見せる設計思想だ。ファイルを「保存」するとき、実際にディスク上でどのようにデータが書き込まれているかを意識する必要がないのは、この抽象化が正しく機能しているからにほかならない。 多くの技術レイヤーでは、抽象化が破綻しても回復の手段がある。計算の誤りはやり直せる。通信の途切れは再送できる。しかしストレージの喪失は、バックアップが存在しなければ取り返しがつかない。破綻したときに巻き戻せないという不可逆性が、ストレージを特別な領域にしている。 同じ性質を持つ分野は他にもある。たとえば暗号鍵の管理がそうだ。秘密鍵を紛失すれば、署名能力は不可逆的

By Sakashita Yasunobu

技術

Pi-holeをdocker runだけで起動する

Pi-holeのDocker公式イメージはdocker-composeでの起動が案内されている。しかしNAS製品の多くはGUIからコンテナを管理する設計であり、docker-composeを使うにはSSHでログインする必要がある。Pi-holeを動かすためだけにSSHの管理を増やすのは合理的でない。 実際にはdocker-composeの設定はすべて docker run のオプションに変換できるため、docker-compose無しでもPi-holeは起動できる。本稿では、公式のdocker-compose設定を docker run コマンドに変換した例を示し、あわせて各オプションの意味を整理する。 docker runコマンド 以下は、Pi-hole公式のdocker-compose設定と同等の docker run コマンドである。 docker run -d \\ --name pihole \\ -p 53:53/tcp \\ -p 53:53/udp \\ -p 80:80/tcp \\ -p 443:443/tcp \\ -e TZ='

By Sakashita Yasunobu

技術

ScanSnap iX1300のカラー解像度が白黒の半分になる理由

はじめに PFUのドキュメントスキャナー ScanSnap iX1300の自動画質モード(Best)では、カラーと白黒で読み取り解像度が異なる。 原稿の短辺が約105mm以下の場合は、カラー/グレー300dpi、白黒600dpi相当に設定。原稿の短辺が約105mmよりも長い場合は、カラー/グレー200dpi、白黒400dpi相当に設定。 どの条件でも白黒はカラーのちょうど2倍の解像度である。光学解像度は600dpiと記載されているにもかかわらず、なぜカラーではその性能をそのまま発揮できないのか。本記事では、iX1300が採用するCISセンサーの仕組みからその理由を解説する。 なお、iX1300は手動で「Excellent」モードを選択すればカラー600dpi(白黒1200dpi相当)でのスキャンにも対応している。ただしスキャン速度は大幅に低下する(Best:30枚/分 → Excellent:9枚/分)。本記事で扱うのは、速度を維持する自動画質モードでなぜ解像度が制限されるかという問題である。 参考:ScanSnap iX1300 | PFU CISセンサーの基本構造

By Sakashita Yasunobu

技術

ドメインレジストラの選び方

ウェブサイトを運営するならドメインが要る。ドメインが要るなら、それを登録・管理するレジストラを選ばなくてはいけない。 Cloudflare×Ghost Proで簡単!.pageドメインを使ったカスタムドメイン設定ガイド.pageドメインでのセットアップをしている人を見なかったので。 ドメインといえば.comがいまでも主流ですが、ドメインを新規で使う分にはどれを選んでも同じなため、ちょっと面白いものを選びたいですね。 今回は.pageドメインを利用してみました。Googleがレジストラーとして管理しており、HTTPSが強制され、HSTS Preloadも勝手に登録されるのでブログを使う身としては安心でらくちんです。 HSTSとはなんぞや HSTS(HTTP Strict Transport Security)って、簡単に言うと「ブラウザが自動でHTTPアクセスをHTTPSアクセスに切り替えるようにする仕組み」です。たとえばふつうならHTTPでアクセスすると、そのままHTTPでサーバーに行くわけですよね。でもHSTSを設定しておくと、いったんブラウザが「このサイトはHSTSに対応してるん

By Sakashita Yasunobu