TidBITS を定期的に読んでいる方なら、2010年11月に出版した私の電子書籍「Take Control of Your Paperless Office」をご存知かもしれません。この電子書籍で解説していることの一つに、紙の書類をスキャンして、原本をリサイクルまたはシュレッダーにかける方法があります。でも、電子書籍をシュレッダーにかけるってどういうこと?簡単です。140文字ずつに切り取って、Twitter に投稿するだけです!それで、私はまさにそれを実践しています。
数週間前、アダムとトーニャと私は、Take Control電子書籍を楽しく広める方法について話し合いながら、このアイデアを思いつきました。この実験は、書籍の全文を無料で配布することになりますが(Twitterで全文を読みたい場合)、このプロジェクトを通して電子書籍に興味を持った人のほとんどは、適切なレイアウトによる読みやすさの大幅な向上を享受し、購入してくれるだろうと考えました。もちろん、将来の
アップグレードにもアクセスできます。そこで、Take ControlはTwitterでフォローしている方全員に、書籍を30%割引で提供することにしました!
仕組みはこうです。2011年3月21日午前9時(太平洋標準時)/午後12時(東部標準時)から、@zapmypaperというアカウントで、1回140文字程度ずつ、本書のツイートを始めます。15分に1回ツイートする頻度に決めました。このペースだと、118ページの本書全体をツイートするのに17日かかります。時折、電子書籍版の購入方法、Twitter(@joekissell)でのフォローの提案、その他のヒントなどをツイートします。本書の本文以外のメッセージは、 で始まります==
。例えば、
== Tip: Support author Joe Kissell’s baguette and cheese habit. Buy this ebook at http://bit.ly/h2mPrl
理想的には、書籍のツイート期間中は、@zapmypaper アカウントからの手動ツイート、@返信、リツイートは控えたいと思っています。そうすることで、ストリームが整理され、より分かりやすくなるからです。ただし、特別なお知らせやその他のツイートを挿入する必要がある場合は、書籍自体の==
一部ではないことが分かるように、冒頭で同じ慣例に従います。
本全体のツイートが終わった後も、@zapmypaper アカウントを引き続き使用して、ペーパーレス オフィスの維持に関するニュース、提案、質問を発信し、そのフィードをフォローしているユーザーがペーパーレス習慣に関する継続的なサポートを受けられるようにしたいと考えています。
スタイリッシュなツイート— 小説や、最初からプレーンテキストのみで構成された書籍をツイートするのであれば、プロセスははるかにシンプルだったでしょう。しかし、本書はやや技術的なテーマを扱うハウツー本なので、テキストに直接翻訳できない要素が多く含まれています。私の目標は、書籍の構成を可能な限り維持し、原文への忠実さとTwitterでの読みやすさのバランスを取ることでした。
変換は多少ロスがありましたが、まあまあうまくできたと思います。つまり、ツイートを再構成すれば元の書籍に大まかに近づけることはできるものの、いくつかの要素(とほんの少しのテキスト)がうまく表現できないのです。興味がある方、そして私の免責事項を無視して必然的にスクリプトを書いて書籍を再現しようとするオタクの方のために、私が行った方法をご紹介します。
- 見出し:電子書籍では、見出しのレベルに応じて異なるフォントサイズ、太さ、色を使用しています。Twitterでは、以下のように変換しました。
- 見出し 1:
**HEADING TEXT**
(すべて大文字、両側に 2 つのアスタリスク) - 見出し 2:
*HEADING TEXT*
(すべて大文字、両側に 1 つのアスタリスク) - 見出し3:
HEADING TEXT
(すべて大文字) - 見出し 4 以下:
_Heading Text_
(タイトル大文字、両側にアンダースコア)
- 見出し 1:
- サイドバー:サイドバーの内容 (タイトルを含む) を次のように二重角括弧で囲みます。
[[sidebar text]]
- ヒント、注意、警告など:次のように、内容を単一の角括弧で囲みました
[tip text]
(Twitter バージョンでは、ヒント/注意に使用したさまざまな視覚スタイルと、「強調」段落に使用した視覚スタイルが区別されないことに注意してください)。 -
段落区切り:段落区切りを表すために何か工夫すべきか、また、もしそうするならどのようにすべきか、迷いました。慎重に検討とテストを重ねた結果、段落記号(
¶
)を使って新しい段落の始まりを示すことにしました。実際の改行は使用しませんでした。Twitterクライアントの中には改行を表示しないものがあり、Twitterのウェブサイトも同様です。改行が表示されないと、読者の中には段落の始まりがわからない人もいるでしょう。(本全体を読むとなると、改行は非常に重要です!) -
グラフィック:この本にはいくつかのスクリーンショットが含まれていました。私はこれらを個別にアップロードし、テキストにリンクを埋め込みました。
-
URL:簡潔にするため、本書内のほぼすべての外部リンク (非常に短いものを除く) を bit.ly URL に変換しました。
-
脚注:この本には脚注が 2 つしかなかったので、このプロジェクトの目的のために、その内容を本文に再配置しました。
-
文字スタイル:太字、斜体、色、特殊フォント、その他の変更された文字スタイルは完全に消えます。
-
ツイートの長さ:当然のことながら、すべてのツイートは140文字以内に収める必要がありますが、私はさらに一歩踏み込み、ツイートが常に単語の境界で折り返され、段落記号や箇条書き記号などで終わらないようにしました。また、ツイートの送信に使用しているPythonスクリプトが、特定の記号(
•
、¶
、 など)を誤って複数文字としてカウントしていることを発見しました。スクリプトの修正に多くの時間を費やすよりも、これらの記号を含む行に数文字分の余裕を持たせることにしました。その結果、一部のツイートは 本来の長さよりも—
短く見えることがあります。
文字スタイル以外にも、テキストの他のいくつかの部分は Twitter にまったく移行されませんでした。
- 目次(3月31日木曜日午後4時(東部夏時間)に本文にジャンプすることを提案するのは愚かなことです)
-
オリジナルの電子書籍形式でのみ意味を成す前書きと後書きの一部
-
インライン グラフィック (いくつかありました)
-
スクリーンショットのキャプション
-
ブックマークと内部ナビゲーションリンク
私がこれをどうやってやったか— 自分の本についてツイートしたいと思う人はそんなに多くないと思いますが、私がどうやってこれをやったか興味がある人のために、簡単に概要を説明します。
まず、書籍の全文が収録されたWordファイルを用意し、一連の検索・置換操作を用いて、見出しやサイドバーなどをプレーンテキストで意味を成す形式に変換しました(前述の通り)。ファイルからテキストスタイルに依存するデータがなくなったら、BBEditに切り替えました。BBEditのgrepベースの検索・置換機能と、複数のテキスト操作を1つのコマンドにまとめるテキストファクトリー機能を使えば、残りの変換作業はすべて完了です。段落区切りを¶
文字に変換し、書籍全体を1行にまとめました。次に、ウィンドウを
140文字で折り返すように設定し、自動処理で見逃した改行の問題(いくつかありました)がないか、素早く目視で確認しました。すべてが望みどおりになったら、「テキスト」>「改行を追加」コマンドを使って、各行末に改行を戻しました。結果、本全体が一つのテキストファイルにまとめられ、ツイートしやすいようにフォーマットされ、各行が一つのツイートに対応しました。最終段階で、適切な間隔でアナウンスを挿入しました。
ツイートを送信するために、MacにPythonのTwitterラッパーと様々な依存関係をインストールしました。そして、ユーザー「cydeweys」が投稿したシンプルなtweet_textfileスクリプトを見つけました。このスクリプトはテキストファイルを1行ずつ処理し、各行を任意の間隔(15分間隔)でツイートとして送信します。実は、tweet_textfileスクリプトは少し古く、廃止されたTwitter APIを使用していたため、OAuthを使用するように更新する必要がありましたが、スクリプトの基本的なロジックは変更されていませんでした。
スクリプトのテスト実行中、ある朝目覚めるとツイートが一晩中停止していたことに気づきました。どうやら、Twitter側の一時的な障害が原因で、ある投稿がスクリプトの想定通りに認識されなかったようです。スクリプトにはエラーチェック機能が組み込まれていたにもかかわらず、不具合の正確なタイミングにより、実際のエラーメッセージは表示されず(スクリプトは数分後に再試行するはずでした)、スクリプトは無期限にハングアップしたままになってしまいました。APIインタラクションが失敗する可能性のあるすべての可能性を検討し、スクリプトを可能な限り堅牢に更新する時間がなかったので、代わりにlaunchdを使ってPythonスクリプトを定期的にチェックするという、少しずるい方法を取りました。エレガントではありませんが、うまく機能しています。
もちろん、それだけではありません。Twitterアプリケーションの登録、必要なAPIキーの取得など、やらかした手順をいくつもこなし、大量のテストとバグ修正も行いました。しかし、基本的には、ドキュメントをプレーンテキストに変換し、140文字の行に分割して、Pythonスクリプトを使ってツイートを送信するだけでした。簡単でした。少なくとも、かなりオタクっぽいやり方で、楽しかったです。
注:この記事の大部分は、私の Web サイトに掲載されたこのプロジェクトに関する記事から抜粋したもので、このプロジェクトについて詳しく知りたいけれど、この本や Take Control シリーズ全般についてまだよく知らないという人のためのランディング ページとして役立ちます。