見出し画像

Textboxについて 実装編

Weekly R-style Magazine ~読む・書く・考えるの探求~ 2021/11/01 第577号

○「はじめに」

Tak.さんの新刊が発売となりました。

倉下的にまとめると、以下になります。

・長い文章を書く上でのアウトライナーの使い方
・いかにアウトラインに「ケリ」をつけるのか→シェイクの終わり
・アウトライナーにおける「発想」とは何か?
・プロダクト型アウトライナーとしてのWordの有用性

アウトライナーに興味があったり、長文の文章を書くのに苦手意識があるならば(あるいは実際に苦手ならば)一読する価値のある本です。ぜひどうぞ。

〜〜〜ポッドキャスト〜〜〜

ポッドキャスト配信されております。

◇第八十七回:Tak.さんと『書くためのアウトライン・プロセッシング』について by うちあわせCast

◇BC023 『事実はなぜ人の意見を変えられないのか』 - by goryugo - ブックカタリスト

うちあわCastは、Tak.さんの新刊について。ブックカタリストは『事実はなぜ人の意見を変えられないのか』をごりゅごさんが紹介してくださいました。よろしければお聴きください。

〜〜〜BOOK☆WALKERでも「すべノー」〜〜〜

これまではKindleのみだったのですが、BOOK☆WALKERでも『すべてはノートからはじまる あなたの人生をひらく記録術』が配信されております。

◇すべてはノートからはじまる あなたの人生をひらく記録術 - 実用 倉下忠憲(星海社 e-SHINSHO):電子書籍試し読み無料 - BOOK☆WALKER -

星海社さんの電子書籍はフォントにこだわっているので、一気にドーン、という感じで展開するのが難しいのでしょう。とりあえず、いろいろなサイトで配信されるのは嬉しい限りです。

〜〜〜板坂本の面白さ〜〜〜

知的生産系の書籍では、梅棹忠夫、渡部昇一、外山滋比古の三人が有名ですが、板坂元の本も個人的には気に入っています。

エッセイ風で読みやすい、というだけではなく、技法との付き合い方に「人間くささ」があり、それがどことなく親近感を覚えるのです。カードの色を変えると、ちょっとテンションが上がってやる気になる、みたいな話は「しょーもない」話であり、「名前のない技術」ではあるのですが、そういうものの積み重ねで個人の技法は成立しているんじゃないかと思う今日この頃です。

〜〜〜Obsidianがあった〜〜〜

前回の「はじめに」で、デイリーメモアプリのアイデアを紹介しました。そうしたら、@haruna1221さん( https://twitter.com/haruna1221 )からObsidianで似た運用ができますよ、と教えていただきました。ありがとうございます。

そうでした。すっかり忘れておりましたが、Obsidianのコアプラグインには「Daily notes」があり、それを使うと毎日のノートを自動的に作ってくれるだけでなく、起動時に「今日のノート」を開いてくれるというオプションもついているのでした。

ObsidianのiOSアプリでも同様のプラグインが使えるので、設定さえしておけば、「今日のノート」が自動的に切り替わってくれる環境が作れます。しかも、iCloud Drive に保存されるので、Macから開くのもラクチンです。

というわけで、しばらくiPhoneの「今日のノート」はObsidianで試してみることにします。

はてさて、どうなることでしょうか。

〜〜〜欠落のあるアイデアの刺戟〜〜〜

ふと思いつきました。

『読書、日記、  』

この並びがあるとき、最後の一つを埋めるならば何を埋めるだろうか、と。

私はこういう風に、欠けたアイデアを思いつくことがよくあります。でもって、ああでもない、こうでもないと何を埋めるのかを考えるのがすごく好きです。

皆さんはいかがでしょうか。

〜〜〜AirPodsの快適さ〜〜〜

これまでずっとかたくなに「Bluetoothイヤフォン」は使うまいと、ラッダイト的決心を固めていたのですが、とうとう限界がやってきました。

MacBook Airはステレオミニジャック端子、iPhone SEはライトニング、iPad AirはUSB Type-Cです。すべて端子が違う上に、そもそもUSB Type-Cのイヤフォンなんて持ち合わせがありません。かといって、それを買えば三種類の端子が勢ぞろい、ということなります。イヤフォンの地獄絵図が広がることはたやすく予想できます。

というわけで、一念発起して(おおげさ)、ちょうど発売されたばかりのAirPods第三世代を買いました。ノイズキャンセリングがついているProも考えたのですが、「欲しくなったタイミングで新商品が出ているのだから、それを買う」という時流に身を任せた買い方をした次第です。

で、音とかもいろいろ良い点があるのですが、とにかく一番快適なのは、マスクのヒモと「混線」しないことです。たったこれだけでも抜群に快適さが変わります。

それにしても、ほんとうにいろいろ面倒なことが、「あたり前」になってしまっていることを今回改めて痛感しました。

〜〜〜整う心技体〜〜〜

町中には、「整体」を謳うカンバンがいくつもあります。でもって「心技体」という言葉があるのですから、それぞれ「整心」や「整技」があってもよさそうだな、と思いつきます。

で、考えてみると、たとえば毎週のミサ(日曜礼拝)に参加することは整心と言えるかもしれません。あるいは気の置けない友人と会話に浸るのも整心的効果がありそうです。

では整技はどうか。これは「一度基本に立ち返ってみる」とか、「他の人の方法論に触れてみる」みたいなことが相当しそうです。

そのようにして、慣れ親しんだ、つまり「日常」になっている方法とは異なる「方法」に触れることで、改めて自分の方法を「整えられる」ようになる。

そんな効果がありそうです。

〜〜〜Q〜〜〜

さて、今週のQ(キュー)です。正解のない単なる問いかけなので、頭のウォーミングアップ代わりにでも考えてみてください。

Q. 『読書、日記、  』を埋めるとしたら何を入れますか。そしてその心は。

では、本編をスタートしましょう。今月は「自作のシステムとメモ環境」についてお送りします。今、倉下の中で一番Hotなテーマです。

○「Textboxについて 実装編」

今回はTextboxについて書きます。Textboxとは、最近倉下が自作している「情報整理ツール」の名前です。

周期的にこうした「自作ツール作成欲求」が高まるのですが、今回作っているツールは、これまでとは毛色がかなり異なるので、特別にメルマガで紹介したくなりました。

また、このツールを作る中で、「情報整理ツールとは何か、それを作るとは何を意味するのか」についても示唆が得られたので、合わせてそれも報告できたらと思います。

まずは、Textboxの実装面から紹介しましょう。

■Textboxの実装

Textboxは、C言語やSwiftで作成された大規模なソフトウェアではありません。その実体は、単なるhtmlファイルと少しばかりのcgiコードです。つまり、Webページを作っている感覚の、その延長線上にこのツールは位置しています。

具体的な動作も、それに見合う小規模なものでしかありません。

「私のパソコンに保存してある(つまりローカルな)テキストファイルを、Webブラウザから閲覧できるようにする」

以上です。正確にはもう少し細かい機能がありますが、全体としてやっていることは上記の説明で完結できます。

デジタルノートツールの一つにObsidian(.md)がありますが、それに似ているかもしれません。Obsidianは独自のデータベースやバイナリファイルで情報を保存するのではなく、テキストファイル(mdファイル)で情報を保存するのですが、そのおかげで、Obsidianは一種の「ビュアー」としても位置づけられます。
*正確に言えば、「編集もできるビュアー」ですが細かい点は気にしないでください。

パソコンの中に保存してある、その他のツールでも開くことができるファイルを、「閲覧」することができるツール。それが「ビュアー」の意味であり、Textboxの主要な機能でもあります。

ただしTextboxでは、そのビュアーの本体を──Obsidianのように──ゼロから実装していません。ごく普通の、毎日使っているWebブラウザをそのまま使うようにしています。

いや、話は逆なのかもしれません。私は毎日Webブラウザを使っていて、作業中もたいていは開きっぱなしなので、そこでいろいろな作業が済んだら嬉しいな、という思いから、Webブラウザ上で自分のローカルファイルが扱えたら嬉しいと考え、そこからTextboxを開発した、という流れです。

ともあれ、ここでは細かい因果の話は置いておきましょう。Textboxは、いつも使っているWebブラウザから自分のローカルファイルを「閲覧」できる。これが基本的な機能の説明です。

(追記:ちなみにObsidianも、GoogleのChromiumをベースにしているので、本当にゼロから実装しているわけではありません。専用のWebブラウザを作っている、という感じが近しいでしょう)。

■ローカルサーバー

もう少しTextboxの実装に触れておきましょう。

Webブラウザ(たとえばFirefox)から、ローカルファイルを扱えるようにする、というのは一見するとシンプルな話なのですが、若干厄介な点があります。セキュリティ問題です。

セキュリティ保護のために、Webブラウザからローカルのファイルを扱うのは簡単ではありません。File APIなどを使うことでファイルの読み書き操作などは可能なのですが、あまり快適ではありません。いちいちファイル選択のダイアログからファイルを選ぶような動作が必要なのです。

そういう制約もあって、私の頭の中には「Webブラウザでローカルファイルを扱う」という発想そのものが長期的に欠落していました。

それを抜本的に変えたのがローカルサーバーです。もっと言えば、結城浩さんの「シェルフ」です。シェルフについては以下をご覧ください。

◇本棚風にPDFを並べる意味 | 結城浩

私は非常に影響されやすいタイプなので、上のような記事を読むと、自分でやってみたくなります。あるいは、こんな連ツイもあります。

◇自分専用のサイトmd.private作成にまつわるあれこれと文書管理について - 結城浩の連ツイ

こちらも同様に、「真似っ子エンジン」がブイブイと駆動させられます。

しかしです。これらが動いているという「localhost」が問題なのです。

私は日曜大工プログラマーであり、その典型として知識に非常な偏りがあります。localhostが一体何なのか、どうすればそれが使えるのかがわかりません。

もちろん、Google大航海時代の現代においてその言葉の意味を調べることも、実行する方法を見つけ出すことも難しくはありません。というか、めっちゃ簡単です。

しかしです。仮に言葉の意味がわかっても、実際にやったことがないので「よくわからない」感がつきまといます。得体のしれない、という感じが近いでしょうか。

おかげで、「シェルフっぽいものを作る」というプロジェクトに着手するものの、なんとなく疎遠になることを繰り返していました。「Evernoteでシェルフっぽいもの」とか、「HTML単体でシェルフっぽいもの」とか、ガワだけは真似するのですが、それ以上には進めません。「コード」で操作ができないからです。

そういう挑戦&失敗を長い周期で何度も体験していたのですが、あるとき一気のブレイクスルーが起きました。ローカルサーバーを立てればいいのだ、と。

今から考えると、何をあたり前のことをという感じですし、そもそも結城先生はまったくそれをやっているわけですが、私の中でバラバラに位置していた情報が、その瞬間、急激に焦点を合わせはじめた、という感覚がありました。

パソコンでできることは、パソコンでできるし、プログラミングでできることは、プログラミングでできるのだ、と。

■結局は同じなんだ、という理解

たとえば、私がEvernoteをWebブラウザで使っているとしましょう。

私がブラウザで何か操作をしたら、Evernote社が管理するサーバがその情報を受け取って、サーバ内のファイルを編集し、その結果を私のブラウザに表示してくれます。あたり前の話です。

当然そのサーバとやらもコンピュータです。「パーソナルな」コンピュータではないかもしれませんが、コンピュータには違いありません。何かしらのファイル(データベースだってファイルです)を保存し、プログラミングが実行されているコンピュータです。

でもって、私の手元にあるMacBook Airだってコンピュータです。性能の違いはあるにせよ、コンピュータ的に同じことはできるはずです。

私がブラウザで何か操作をしたら、倉下が管理するパソコンがその情報を受け取って、パソコン内のファイルを編集し、その結果を私のブラウザに表示してくれる、ということができるはずなのです。それを為すのがローカルサーバです。

つまり、

・倉下→Webブラウザ→Evernote社のコンピュータ(のデータ)
・倉下→Webブラウザ→倉下のコンピュータ

この二つは根源的には同じだということに、気がついたのです。でもって、その「倉下のコンピュータ」をあたかもサーバであるかのようにするのがローカルサーバです(というか、実際にサーバなわけですが)。

簡単に言えば、

「今からこのパソコンのこのフォルダ以下を"サーバ"として使うよ」

という宣言がローカルサーバを立てることです(かなり端折りました)。それを行うことで、あたかもWebブラウザからWebツールを使っているのと同じ感覚で、自分のコンピュータのファイルを操作できるようになるのです。

それができると何が嬉しいのか? 自分で「Webツール」を作れば、それをデスクトップツールと同じような感覚で使っていけるようになるのです。

これが大きな発見でした。

逆に言えば、それまでの私の認識の中では、「Webツール」と「自分のパソコン環境」はまったく別のカテゴリーに位置されていたのです。その二つがつながるものだなんて想像もしていませんでした。

しかし、「Webツール」だって、他の場所にあるコンピュータ上の話でしかありません。規模や機能の違いはあれど、本来は同一カテゴリーに属していてもおかしくないものです。

こうした認識の偏りは──私が無知だったことを差し引いても──、非常に危ういものを感じます。インターネットの向こう側にあるものは「与えられるもの」であり、自分の"パソコン"とはまったく別物である、という認識は、私たちとコンピュータの関係において健全なものとは言えないでしょう。

この点については、今月の最後にまた改めて掘り下げてみます。

(下につづく)

ここから先は

6,306字 / 1画像 / 1ファイル

¥ 180

この記事が気に入ったらサポートをしてみませんか?