Kindle出版 - WSLでLaTexファイルをepubファイルに変換

通常本を出版する場合、印税が5%~10%程度ですが、Amazonの電子書籍で出版すると70%のロイヤリティが得られるということです。
(地域によってロイヤリティが変わるようですが、日本は70%みたいです)

つまり売り上げの7割を収入として得られることになり、通常本の出版に比べて7倍から14倍の収益率となります。

そこで本の内容はともかく、Kindleの電子書籍を出版する方法(手順)を調べてみました。
(全部無料で使えるものです。)

電子書籍作成フロー

いろいろ調べたところ、次のように電子書籍を作成することにしました。

  1. LaTexファイルで本を作成
  2. pandocでLaTexファイルをepubファイルに変換
  3. Kindle Previewer 3で表示確認
  4. Amazon Kindle Direct Publishingで出版

1. LaTexファイルで本を作成

LaTexを使って本を作成します。

LaTexは最強の文書整形システムと言われており、綺麗な文章を書きたい人、綺麗な数式を書きたい人、化学式を綺麗に書きたい人に好まれて使用されています。

Wordを使うよりも、はるかに作業しやすくとにかく綺麗な文章が書けるのでおススメなのですが、慣れない人にはその良さは伝わりにくいかと思います。

Sigilというフリーツールを使って、epubファイルを作るという方法もありました。
 こちらの方法が一般的かもしれません。)

まずWSLのコンソールを開いて、下記コマンドを実行しLaTex環境をインストールします。

[コマンド]

1
2
3
sudo apt install language-pack-ja manpages-ja manpages-ja-dev nkf
sudo apt install build-essential x11-apps emacs emacs-mozc fcitx-mozc
sudo apt install gtypist typespeed texlive-lang-japanese evince

次にsample.texというLaTexファイルを作成します。

[sample.tex]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
\documentclass{article}
\title{テスト}
\author{名前}
\date{\today}

\begin{document}

$ x = a $ から \( x = b \) までの関数 $f(x)$ の積分は
\begin{math}
\int^{b}_{a} f(x) dx = \lim_{n \to \infty} \sum^{n-1}_{i=0} f(x_{i}) \Delta x
\end{math}
と置き換えて考えることができる.

\end{document}

sample.texをコンパイルして、pdfファイルを出力します。

[コマンド]

1
2
platex sample.tex
dvipdf sample.dvi

次のようなpdfファイルが出力されます。

[出力されたpdf]
sample.pdf

やはりLaTexは数式がきれいに表示されて気持ちがいいです。

2. pandocでLaTexファイルをepubファイルに変換

pandocというツールを使うと、いろいろな文書形式のファイルを相互に変換することができます。

今回はLaTexファイルをepubファイルに変換します。

まずは次のコマンドを実行しpandocをインストールします。

[コマンド]

1
sudo apt install pandoc

pandocコマンドを使ってtexファイルをepubファイルに変換します。

[コマンド]

1
LANG=ja_JP.UTF-8;pandoc sample.tex -o sample.epub

※次項目でのepubファイルを開く際に、言語に関するメタデータがないというエラーがでたため、変換前に言語設定(LANG=ja_JP.UTF-8)を行っています。

3. Kindle Previewerで表示確認

下記サイトからKindle Previewerをダウンロードし、インストールを行います。

Kindle Previewer

作成したepubファイルを開いて表示を確認します。

Kindle Previewerでの表示

pdfとは少し表示が異なっていますが、Kindle Previewerでの表示が出版した時の正しい表示となると思います。

というとで、今回の手順で本を作成する方法を簡単にまとめます。

  1. texファイルを編集
  2. platexコマンドでtexファイルに問題がないことを確認
  3. pandocコマンドでtexファイルをepubファイルに変換
  4. Kindle Previewerでepubファイルの表示を確認

本を編纂するために上記作業を繰り返すことになると思います・・・・結構手間ですね。

4. Amazon Kindle Direct Publishingで出版

本が完成したら、Amazon Kindle Direct Publishingにepubファイルを登録し出版することになります。

出版手順は下記サイトが分かりやすいのでご参照ください。

Amazon Kindleで電子書籍を出版する方法【2021年版】

総評

書籍出版というものは、著名人や頭のいい人たちがするもので自分には関係ないものかと思っていましたが、電子書籍で在庫を抱えずノーリスクで出版できるとなると一気に敷居が下がったように感じます。
しかも印税が7割と通常の書籍出版より断然収益率が高いというメリットもあります。

今回はLaTexで本の内容を書いて、epubに変換して出版するという王道とは外れた方法かと思いますが、LaTex大好きな人達にとっては有益な記事になったのではないかと思います。
(少数派とは思いますが・・・)

ブロックチェーン - マイニング(2)

ビットコインでは、マイニングはPoW(Proof of Work)によって行われます。

これは新規ブロックを生成し、そのブロックに正しい取引データが記録されているかどうかを承認するものです。

ビットコインのPoWは強いものが勝つ

PoWはより多くの仕事がなされたブロックチェーンが有効になります。

総当たり的にハッシュ値を求めるので、計算範囲が広く、コンピュータの処理能力と大きなメモリ、そして大きな電力が必要となります。

ビットコインは簡単にマイニングできないように設計されているので、ラズベリー・パイなどの小型コンピュータではマイニングすることが不可能です。

非力なコンピュータでも可能なのでPoS

PoWの改善策として、非力なコンピュータでもマイニングできるように考え出されたのがPoS(Proof of Stake)です。

PoSでは新規ブロックの生成はマイニングまたはフォージングと呼ばれ、暗号通貨の保有量と保有期間の掛け算でしめされるcoin ageが大きいほど、ハッシュ計算の範囲が狭くなり、有利になります。

ブロックチェーン - マイニング(1)

マイニングの流れ

未承認ブロック新規ブロックとなる流れは次のようになります。

  1. 未承認の取引データから未承認のブロックをマイニングによって作成する。
  2. 作成した未承認ブロックを他のブロックチェーン・ネットワークの参加者へ送信する。
  3. 参加者から承認を得る。
  4. マイナーはマイニング報酬を受け取る。
  5. 承認された取引データの取引が実行される。

ノンス値を見つける競争

マイニングはブロック・ヘッダのノンス値(ランダムな値)を変えながらハッシュ関数によって次ブロック・ヘッダのハッシュ値を求めます。

ノンス値は一意に決まるランダムな値と限らないため、複数のノンス値が正解になる可能性もあります。

マイニングは正解のノンス値を見つける競争なので早くマイニングできることに越したことはありません。

正解のノンス値を確率的に見つけるので遅いノードでもマイニングに成功するチャンスはあります。

また正解のノンス値は1つとは限らないので、運よく早く見つけられる場合もあります。

ブロックチェーンへの参加者 - コア開発者

ブロックチェーンの利用者はさまざまです。

  • 一般企業
  • 金融企業
  • 中央銀行
  • 政府機関
  • 国際機関
  • 個人
  • ユーザ・グループ
  • NPO団体

国境を越えて様々な利用があり得ます。

独自ブロックチェーンの作成

ビットコインを参考にしていろいろな暗号通貨やブロックチェーン・プラットフォームが開発されてきました。

ブロックチェーンの基本的なアイデアがあるため、改良版や拡張版を作成するのはとても簡単です。

GitHubには暗号通貨やブロックチェーンのソースコードが公開されており、それを参考に独自のブロックチェーンを設計することが比較的容易になっています。

暗号通貨の場合

ブロックチェーンの設計者がコア開発者になります。

ブロックチェーンのアイデアは昔からありましたが、さまざまな問題があったのでうまく行きませんでした。

しかしビットコインの登場によってやっと暗号通貨として利用するのに現実的なものとなりました。

ビットコインの仕組みや機能を設計して開発するグループがあります。

https://bitcoin.org/ja/community

特定の運営組織があるわけではなく、世界中にあるコミュニティによるコンセンサスに基づきビットコインの新しい仕組みや機能が開発されています。

維持と発展

ブロックチェーンの問題やセキュリティの脆弱性を発見して解決するためにはデータ構造設計やセキュリティ対策設計などができるアーキテクト、それを実現するプログラマが必要です。

ブロックチェーンは一度作っただけでは終わりではなく、将来発見される問題を解決しなければなりません。

ブロックチェーンへの参加者 - データの取引所

ブロックチェーンの利用者はさまざまです。

  • 一般企業
  • 金融企業
  • 中央銀行
  • 政府機関
  • 国際機関
  • 個人
  • ユーザ・グループ
  • NPO団体

国境を越えて様々な利用があり得ます。

センサーの場合

センサ・データを取引しようとする場合、取引相手を見つけることは簡単ではありません。

データ取引市場はデータ・マーケット・プレイスの1つの形でしたが、不特定多数の人による取引ではなくビジネスとしてデータを売買して利益を得るための市場で、特定の分野に特化していることが普通でした。

一方、データ市場はマーケット・プレイスの1つですが新しいビジネスの創出を目的とした利用が多くなるはずです。

異なる分野のデータ提供者と利用者の間でデータ利用方法を自由に提案したり、異なるデータを組み合わせて新しい価値を創出したりするのに適しています。

開かれたデータ市場では暗号通貨取引のように取引所を通じて異なる分野や業種間の交流が活発になり、ラズベリーパイやPCなどの小型で汎用的なコンピュータの出番が飛躍的に増すことになるでしょう。

暗号通貨の場合

企業間取引のように相手が決まっている場合、送金先が特定できます。

暗号通貨取引では送金相手やデータ提供者間では、あらかじめ相手を知らないと取引できません。

個人でも送金相手が決まっていれば取引可能ですが、一般的に取引に応じてくれる相手を見つけることが難しくなります。

異なる暗号通貨間の取引、通貨と暗号通貨の取引は、自分が行いたい取引条件に合う相手を見つけなければなりません。

暗号通貨の取引所が多くない時代は、暗号通貨のミートアップなどを通じて取引相手を探すことが一般的でした。

現在では、暗号通貨取引所を利用するれば暗号通貨取引がスマホやPCでいつでも可能で、今後取引所はどんどん増えていく可能性があります。(例.DMM bitcoin、GMOコインなど)

ブロックチェーンへの参加者 - マイナー編

ブロックチェーンの利用者はさまざまです。

  • 一般企業
  • 金融企業
  • 中央銀行
  • 政府機関
  • 国際機関
  • 個人
  • ユーザ・グループ
  • NPO団体

国境を越えて様々な利用があり得ます。

センサーの場合

自作のブロックチェーンやブロックチェーン・プラットフォームでは、ラズベリーパイがマイナー・ノードとして利用できます。

GPUなどを搭載していなくても、IoT端末でマイニングが可能になります。

暗号通貨の場合

取引は何かしらの方法で管理しなければ不正が横行して信頼できる取引が不可能になります。

マイナーは取引を検証してブロックに記録する重要な役割を果たしています。

マイニングによって生成された不正なトランザクションや暗号通貨の2重使用などを防ぐ役割を果たしています。

ブロックチェーン - 中央集権型と分散型の違い

従来の中央集権型

従来の中央集権型データベースは、ポイントシステム(Tポイント、楽天ポイントなど)や電子マネー(Suica、Pasmoなど)に利用されています。

中央集権型データベースは、サーバ障害や通信障害によってサービスが停止してしまうと、クライアントから操作できなくなってしまいます。

そのため、障害が発生しても復旧まで短期間で対応できるように事前に障害対策が施されていることが一般的です。

分散型(ブロックチェーン)

ブロックチェーンのデータはP2Pネットワーク、分散型タイム・スタンプ・サーバによって自律的に管理されます。

中央集権型データベースのように管理者がいないことも大きな特徴です。

ブロックチェーンにはサーバが存在しないため、サーバ障害がなく、通信障害が発生したとしても一部のノード(マイナーのコンピュータ)にしか影響することがなく、全体としては動作することが可能です。

常に全体として機能するよう設計されています。

ハードウェア障害、トラフィック量の急増、サイバー攻撃などで通信できなくなることがあっても、ブロックチェーンでは中央管理のデータベースよりも障害に対する高い耐性があるのです。

ブロックチェーンで広がるIoT(11) - 個人の行動記録により不正検知

個人の行動を記録

個人の行動履歴をブロックでつなげて、ブロックチェーンを作成することも可能です。

例.パスポート

パスポートの発給時にジェネシス・ブロック(最初のブロック)を生成し、発給時や利用時にブロックを追加していくことでユニークなブロックチェーンを作ります。

入出国管理でブロックを追加して世界中で共有すれば分散管理台帳として機能し、不正の発覚が容易になります。

航空券の予約情報や搭乗情報などを加えると、不法入国や偽造パスポートの発見も可能になります。

ブロックチェーンで広がるIoT(10) - 人生の全記録をとれる

人生の全記録をとる

ブロックチェーンの特徴の一つに、データの所在だけを記録しておき、後から追跡できる点が挙げられます。

証拠保全が必要なデータかつ容量が大きいものは、ハッシュ値だけをブロックチェーン上に記録しておくという方法もとれます。

こうすることでIoT端末やIoB端末(体外に装着したウェアラブルデバイスや、体内に取り付けるペースメーカーなど)を活用して、次のような情報を詳細に記録するのが容易になると考えられます。

  • 日々の活動記録
  • 食事内容
  • 医療記録
  • 生体情報(体温、血圧、酸素濃度、血糖値、体脂肪率など)
  • 写真・動画
  • 地図情報
  • 学習内容・学歴
  • 誰とあったか、接触したか
  • 職歴
  • スキル

これまでは、上記のような記録が個別に管理され、人の記憶の中で関連付けや意味づけがされてきました。

ブロックチェーンを使えば人間の記憶の代わりに情報を蓄積することが可能になります。

例.蓄積した情報をもとに自動マッチング・自動異常検知

職歴やスキル情報をもとに、よりよい企業やプロジェクトへの自動マッチングをすることが可能になります。

また生体情報から自動で体調異常を検知するということも考えられます。

例.活動の疑似体験

人生のあらゆる記録をとれるということは、画期的な発明や科学の大発見がどのような行動や周囲の環境からもたらされたものかを知る手掛かりになるかもしれません。

科学的な研究は理解するのが大変難しいですが、ブロックチェーンを使って一般の人が研究者の活動を疑似体験することができれば、その研究の理解を深める手助けになるかもしれません。

ブロックチェーンで広がるIoT(9) - データサーバが不要になる

データサーバが不要になる

現在企業で利用されている中央集権的なサーバの代わりに、業務で利用しているPC、スマホ、タブレットを使って、ブロックチェーン技術を活用したアプリケーション・プラットフォームが実現できる可能性があります。

例.Linuxがブロックチェーンに対応

例えばLinuxOSがブロックチェーンに対応すると、サーバがなくてもデータ共有が行えるようになります。

それは中央管理を行うサーバがなくても、データ更新の際に更新順序の前後関係をブロックチェーンに記録できるためです。

また、ファイルの更新状態をある時点戻したい場合は、ブロックチェーンのブロックをさかのぼっていくことで、更新前のファイル状態を再現することが可能です