2011年4月29日金曜日

Google Apps が新ビジネス・モデルを発表

Google Apps に大きな変化が 2 つ起きています。1 つ目は新ビジネス・モデルの導入。2 つ目は Google アカウントとの統合です。一つずつ説明します。

新ビジネス・モデル

今まで年間契約だった Google Apps for Business が月間契約も可能になりました。年間プランでは 1 アカウント 50 ドル/年だったところ、月間プランでは 1 アカウント 5 ドル/月となります。月間プランの支払いは、月末に行なわれます。月間プランの方が割高ですが、ユーザー数を毎月変化させられるメリットがあります。短期契約社員を雇う会社、入れ替わりの激しい会社にはコスト削減につながるかもしれません。また、スタート・アップ企業に対しても初期コストが低いのが魅力です。小さな IT 系企業にとって、月間プランはおいしいサービスでしょう。

Google Apps のユーザー数制限

Google Apps (無料版) のユーザー数制限が変わります。今まで 50 人だったところが、10 人にまで減らされます。

この変更は、5/10 以降に Google Apps を開始する人 (会社) に適用されます。5/10 以前に Google Apps を使い始めた人達は、今まで通り無料で 50 人まで人数を増やせます。5/10 以降、10 人を越える人数で Google Apps を開設する場合は、Google Apps for Business を使う必要があります。

私も Google Apps を使っているので、人ごとではありません。幸い影響はなさそうですが、Google Apps に興味を持っていて、10〜50 人前後の人数ならば、とりあえず Google Apps を始めておくのが良さそうです。

Google アカウントの統合

最近、Google Apps アカウントと Google アカウントが統合されたようです。同じ Cookie が使われる様になり、一つのブラウザーで Google Apps のサービスと Google アカウントのサービスを同時に使うことが出来なくなりました。この結果、個人用の Gmail と会社の Google Apps 版 Gmail を一つのブラウザーで開けなくなりました。一旦ログアウトするか、(対応していれば) マルチ・アカウント機能を使うしかありません。

私は一つのブラウザーで使い分けることを諦めました。個人用 Google アカウントは Google Chrome で、Google Apps (つまり akaato.com 用) アカウントは Firefox 4 で使い分けています。

過渡期の混乱とは思いますが、Google さんには早めに良い解決策を提示して欲しいものです。

2011年4月28日木曜日

ePub 2.0 ことはじめ (4) Makefile を作る

の続きです。

ePub の中身 (XHTML) をいじれる様になりました。これからどんどん編集することでしょう。するとそのたびに ePub ドキュメントを作り直さなくてはなりません。具体的には、zip コマンドを何度も打ちます。これから、ePub をいじりたおすことを考えると頭が痛くなりますね。

ePub 作成の自動化

Makefile を使って ePub 作成の自動化を行ないます。Makefile は、「シンプルな ePub を作る」で紹介した zip コマンドを自動実行します。やり方は簡単。コマンドラインに以下のコマンドを打ちこむだけです。

$ make

古い ePub ドキュメントが削除されて、zip コマンドが実行され、一つ上のディレクトリー (フォルダー) に epub-first-step.epub が出来上がります。

Makefile

次の内容を Makefie というファイル名で mimetype ファイルと同じ所に置きます。

DOC = epub-first-step
all: epub

ZIP = zip
epub: clean ../$(DOC).epub

../$(DOC).epub:
 $(ZIP) -0 $@ mimetype
 $(ZIP) -r $@ * -x mimetype -x Makefile

#
# clean
#
RM = rm -f
clean:
 $(RM) ../$(DOC).epub
 $(RM) *~
 $(RM) OEBPS/*~

このコードをコピーする時に、DOC の値 (赤字で書かれた epub-first-step の部分) を貴方の ePub ファイル名に修正することを忘れないで下さい。

おわりに

この Makefile は ePub 初心者な私が作った、まだ未熟なものです。この先、ePub が複雑になれば Makefile も修正されるかもしれません。

Makefile (及び epub-first-step の全てのソース) は GitHub に置いてあるので、時々そちらもご覧になって下さい。

次回は、目次の作成を行ないます (え、もう第一回で作っちゃったって? ううん、少しだけ詳しく書きます)。

2011年4月27日水曜日

ePub 2.0 ことはじめ (3) HTML 整形

の続きです。

本エントリーでは、「こんにちは」としか表示させなかった ePub ドキュメントを、もっと実用的にしてみます。

さて、ePub 2.0 では XHTML 1.1 でドキュメントを書きます。ただし、全ての XHTML 1.1 要素が使えるわけではありません。以下に、XHTML 1.1 で利用可能な要素を書き出します (ref. Open Publication Structure (OPS) 2.0.1 v1.0 #2.2.1 Required Mudele)。

ePub 2.0 で利用可能な XHTML 1.1 要素
XHTML 1.1 モジュール名 要素名
Structure body, head, html, title
Text abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var
Hypertext a
List dl, dt, dd, ol, ul, li
Object object, param
Presentation b, big, hr, i, small, sub, sup, tt
Edit del, ins
Bidirectional Text bdo
Table caption, col, colgroup, table, tbody, td, tfoot, th, thead, tr
Image img
Client-Side Image Map area, map
Meta-Information meta
Style Sheet style
Link link
Base base

表を見て分かる通り、script, noscript 要素が載っていません。script 要素はテキストを書き換えるために利用できず、スクリプトの実行も非推奨とされています。script 要素なしでもドキュメントとして成立するよう、気を付ける必要がありそうです。

それでは、実際に XHTML 1.1 で文章を作成してみましょう。

chap1.xhtml の作成

まずファイル名が hello.xhtml だと座りが悪いので、chap1.xhtml に変更します。

そしたら、XHTML 1.1 要素を使ってテキストを書いてみます。ソースコードが長くなってしまったので、先に結果のスクリーン・ショットをお見せします。iPad の iBooks で確認しました。

ハイパーリンクをタップすると、ちゃんとジャンプすることを確認しました。

おしまい

どうですか? スタイル・シートを適用していないので、見た目が HTML そのまんまですけど、XHTML で ePub 作成できることを実感して頂けたでしょうか?

次は、少し横道に逸れて Makefile を作ってみます。

ソースコード

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 STRICT//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
  <title>第一章 ことはじめ</title>
</head>
<body>
  <h1>利用可能な要素</h1>
  <p>ePub 2.0 で利用可能な要素を紹介します。</p>
  <h2 id="structure">構造要素</h2>
  <p>html, head, title, body 要素が使えます。HTML の基本ですね。</p>
  <h2>テキスト</h2>
  <h3>ヘッダー</h3>
  <p>h1, h2, h3, h4, h5, h6 のヘッダー要素が使えます。このテキストでは、h1, h2, h3 を使っています。</p>
  <h3>段落</h3>
  <p>p 要素を使って段落を作ります。</p>
  <p>段落内で改行が必要な場合は br 要素が使えます。</p>
<p>例:</p>
<pre>
  段落の中で&lt;br/&gt;
  改行
</pre>
<p>結果:</p>
<p>段落の中で<br/>
改行
</p>
  <h3>引用</h3>
  <p>blockquote 要素を使って、引用ができます。</p>
  <blockquote>
    <p>三つの指輪は、空の下なるエルフの王に、<br/>
七つの指輪は、岩の館のドワーフの君に、<br/>
九つは、死すべき運命の人の子に、<br/>
一つは、暗き御座の冥王のため、<br/>
影横たわるモルドールの国に。</p>
<p>一つの指輪は、すべてを統べ、<br/>
一つの指輪は、すべてを見つけ、<br/>
一つの指輪は、すべてを捕らえて<br/>
くらやみのなかにつなぎとめる。<br/>
影横たわるモルドールの国に。 </p>
  </blockquote>
  <p>q 要素を使って、インライン引用もできます: <q>一つの指輪は、すべてを統べ</q> </p>
  <p>cite 要素を使って、引用元を表現することもします: <cite>指輪物語</cite>より引用</p>
  <h3>そのまま</h3>
  <p>pre 要素を使って、そのまま表示することが可能です。</p>
<pre>
#define MAX 100
int main(void)
{
  int sum = 0;
  for (int i=0; i&lt;MAX; i++)
  {
     sum += i;
  }
  return 0;
}
</pre>
  <h3>強調</h3>
  <p>より強い強調に <strong>strong</strong> 要素を、普通の強調に <em>em</em> 要素が利用可能です。</p>
  <h3>その他</h3>
  <p>特に意味のないブロック要素に div、インライン要素に span 要素が使えます。</p>
  <h3>意味のある単語</h3>
  <ul>
   <li>dfn 要素: <dfn>定義</dfn>を表す</li>
   <li>code 要素: <code>int i=0</code> の様にプログラム・コードを表す</li>
   <li>kbd 要素: <kbd>C-x C-s</kbd> の様にキーボード入力を表す</li>
   <li>samp 要素: <samp>samp</samp> 要素の様にサンプルを表す</li>
   <li>var 要素: <var>PATH</var> の様に変数を表す</li>
  </ul>
  <h3>省略文字</h3>
  <p>abbr 要素を使って省略文字を表現できます: <abbr title="World Hospital Orginization">WHO</abbr></p>
  <p>acronym 要素も利用可能です: <acronym title="Hyper Text Markup Language">HTML</acronym></p>
  <h2>ハイパーリンク</h2>
  <p>a 要素も利用可能です。「<a href="#structure">構造要素</a>」へジャンプしてみましょう。</p>
  <h2>リスト</h2>
  <p>番号なしリストの ul と、番号ありリストの ol、そして定義リストの dl が利用可能です。</p>
  <ul>
   <li>Windows</li>
   <li>Mac</li>
   <li>Linux</li>
  </ul>
  <ol>
   <li>Windows</li>
   <li>Mac</li>
   <li>Linux</li>
  </ol>
  <dl>
   <dt>Windows</dt>
   <dd>Microsoft 社の OS</dd>
   <dt>Mac</dt>
   <dd>Apple 社の OS</dd>
   <dt>Linux</dt>
   <dd>Linuxs 氏による Unix OS のクローン</dd>
  </dl>
  <h2>修正</h2>
  <p>del 要素を使って<del>削除項目</del>を表せます</p>
  <p>ins 要素を使って<ins>追記項目</ins>を表せます</p>
  <h2>テーブル</h2>
  <p>いっちょ、テーブルを作ってみましょう。</p>
  <table>
    <caption>力の指輪 〜 指輪物語</caption>
    <thead>
      <tr><th>種族</th><th>指輪の数</th></tr>
    </thead>
    <tbody>
      <tr><td>エルフ</td><td>三つ</td></tr>
      <tr><td>ドワーフ</td><td>七つ</td></tr>
      <tr><td>人間</td><td>九つ</td></tr>
    </tbody>
  </table>
  <h2>説明省略</h2>
  <p>object, img, bdo, area, map, meta, style, link, base の説明は省略します。</p>
  <p>b, i, tt, big, small 要素の利用は控えて CSS を使いましょう。</p>
  <p>上付き<sup>1</sup>や下付き<sub>2</sub> は必要に応じて使いましょう。</p>
  <hr/>
  <p>hr 要素はよく分からんです。</p>
</body>
</html>

2011年4月26日火曜日

「電子書籍 らくらくPACK」下書き — 第 3 回配信

4/25、「電子書籍 らくらくPACK」下書きの第三回が配信されました。同書については、過去記事をお読み下さい。

第三回の内容は「電子書籍作成の準備」です。ePub の構成と ePub 作成に必要になるファイルが解説されています。ePub 作成は第一回で触れたように、Sigil を使います。従って、Sigil が自動作成するフォルダー構成をもとに解説が行なわれます。content.opftoc.ncx ファイルは Sigil が自動作成するので、中身については説明がありません。

ePub を手で作った方はご存じの通り、zip 圧縮にコツが要ります。第三回では、この点を言及していますが Sigil がやってくれているので問題ないとしています。全て Sigil 任せにしないで、zip 圧縮のコマンド解説を入れて欲しいものです。もちろん、コラムか付録の様な本編とは関係のないところで良いですが。

ePub の構成の説明が終わると、Sigil を含めたアプリのインストール方法が解説されます。

第三回の内容は盛り沢山で、画像編集アプリ・原稿のチェックポイント・テキストファイルの作成例・画像ファイルのサイズ変更・XHTML の基礎解説・CSS の基礎解説が続きます。ただし、今回の配布では、後半部分が目次のみとなっています。

本文を読んで参考になった点を紹介します:

  • SVG 対応のリーダー・アプリは多くない
  • ePub 2.0 では縦書きや複雑なレイアウトを設定できない
  • ブログを書くよりも、原稿のチェックを綿密・多角的に行なう
  • 原稿ファイルはテキスト・エディタで用意 (大量のファイルに対して Sigil が落ち易いからか?)

2011年4月22日金曜日

iBooks 以外の ePub リーダー

ePub ドキュメントを見るためのツール、いわゆる「ePub リーダー」もしくは「ePub ビューワー」ですが、iBooks だけが全てではありません。そこで、ePub リーダーの比較をしているサイトがありましたので紹介します。

現在だけで 17 の ePub Reader が比較対象として上がっています (iBooks を除く)。

本ブログでも、このサイトで紹介されている Firefox 用 ePub Reader EPUBReader をレビューするつもりです。どうぞご期待下さい。

2011年4月20日水曜日

ePub 2.0 ことはじめ (2) iBooks で確認

の続きです。

本エントリーでは、先のエントリーで作成した ePub を iBooks で確認する方法を紹介します。iBooks に自作した ePub を渡すには、大きく分けて二通りの方法があります。一つは iTunes 経由で ePub を渡す方法。もう一つはウェブ上からダウンロードする方法です。

iTunes 経由

  1. iTunes を起動して、「ブック」を開く
  2. ePub ドキュメントを「ブック」にドラッグ & ドロップ
  3. iPhone/iPad を iTunes と同期させる

以上で、iBooks に ePub ドキュメントを登録することができます。

ウェブ経由 (1) ダウンロード

  1. ウェブ上に ePub ドキュメントをアップロード
  2. iPhone/iPad 上の Safari から、アップロードした ePub のリンクをクリック
  3. 新しいウィンドウが開いて、ファイルを開く方法の選択肢が現れる
  4. 「iBooksで開く」を選択する

以上で、iBooks に ePub ドキュメントを登録することができます。

ウェブ経由 (1) Dropbox

ウェブ・ストレージ Dropbox を使う方法です。この方法が一番手軽で便利です。

準備

Dropbox のアカウントを取得し、Dropbox アプリを iPhone/iPad にインストールしておきます。

Dropbox から iBooks へ
  1. Dropbox に ePub ドキュメントをアップロード
  2. iPhone/iPad の Dropbox アプリを起動
  3. アップロードした ePub ドキュメントを選択
  4. Dropbox で ePub ドキュメントを開けない旨、メッセージが出る
  5. 「外部アプリへ送る」ボタンをタップし、iBooks を選択

以上で、iBooks に ePub ドキュメントを登録することができます。

iBooks で確認

iPhone の iBooks で ePub ドキュメントを見てみます。

iBooks アプリを開くと、「ePub 2.0 ことはじめ」がありますね。

ePub ドキュメントを開くと、「こんにちは」と表示されました。いい感じです。

「ライブラリ」の隣のボタンをタップすると、目次ページが開きます。第一章が「サンプル」になっています。

ドキュメントの中身を読めましたし、目次も確認できました。先日、作った ePub が iBooks で読めたわけです。確認作業は終了です。

次回は、xhtml をいじってもう少しまともな ePub ドキュメントを作ってみましょう。

2011年4月19日火曜日

GitHub 最初の設定 — ssh 鍵の登録

の続きです。先のエントリーで、GitHub にアカウントを作成しました。

本エントリーでは、GitHub にリポジトリーを作ります。そのためには ssh の公開鍵の登録が必要です。まずは ssh の公開鍵を作り、続いてリポジトリーを作ってみます。尚、本エントリーでは git コマンドは知っているものとして話を進めます。

ssh 公開鍵の作成

ssh-keygen コマンドを使って、ssh の鍵を作ります。

$ ssh-keygen -t rsa -C "epub@akaato.com" -f ~/.ssh/id_epub
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

パスフレーズ (ssh 鍵用のパスワードみたいなものです) を聞かれるので、入力します。

次の様な出力が出れば成功です。

Your identification has been saved in /home/masayuki/.ssh/id_epub.
Your public key has been saved in /home/masayuki/.ssh/id_epub.pub.
The key fingerprint is:
14:de:e0:46:aa:ae:68:38:40:a4:bd:06:58:d6:a5:d0 epub@akaato.com
The key's randomart image is:
+--[ RSA 2048]----+
|  .o .. +        |
| .o.E. = +       |
|++  . . = .      |
|+..  . o         |
|.. ..   S        |
|. o.             |
|o.  .            |
|oo .             |
|o..              |
+-----------------+

ssh の秘密鍵が ~/.ssh/id_epub に、公開鍵が ~/.ssh/id_epub.pub に保存されました。

GitHub に ssh の公開鍵を登録する

GitHub にログインして、「アカウントの設定」をクリックします。「SSH公開鍵」というタブがありますから、それをクリックします。

「別の公開鍵の追加」をクリックします。タイトルとキーの入力画面が現れます。公開鍵には適当に名前を付けます。私は Linux の公開鍵を登録したので、「linux」というタイトルを付けました。「キー」には公開鍵を入力します。公開鍵は id.pub という名前で保存されています。今回、私は「~/.ssh/id_epub.pub」という公開鍵ファイルを作りました。このファイルを開いて、中身を全部コピーします。最後に「キーの追加」をクリックします。

下のスクリーン・ショットの様になれば、OK です。GitHub に ssh の公開鍵の登録が終了しました。

リポジトリーを作る

GitHub のトップページに戻って、「新しいリポジトリ」をクリックします。

「プロジェクト名」を入力します。ここでは、「epub-first-step」としましょう。「説明」や「ホームページ」は適当に入力します。入力を終えたら、「リポジトリを作る」をクリックします。これで、リポジトリーが作成されました。

続いて、リポジトリの使い方や初期設定の説明が現れます。その通りにやれば、よいです。

私の場合、変則的ですが次の様にコマンドを入力しました。

~/epub $ mkdir epub-first-step
~/epub $ cd epub-first-step/
~/epub/epub-first-step $ git init
Initialized empty Git repository in /home/akaato/epub/epub-first-step/.git/
~/epub/epub-first-step $ git config user.name "Ato Aka"
~/epub/epub-first-step $ git config user.email epub@akaato.com
~/epub/epub-first-step $ git remote add origin git@github.com:akaato/epub-first-step.git

初期設定はこれでお終いです。git の初期化、ユーザ名・メアドの登録、GitHub の URL 登録をしています。

さあ、実際に GitHub にファイルをアップしてみましょう (これを push と呼びます)。

~/epub/epub-first-step $ touch README.textile
~/epub/epub-first-step $ git add README.textile 
~/epub/epub-first-step $ git commit -m 'first commit'
[master (root-commit)]: created aeef1f3: "first commit"
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.textile
~/epub/epub-first-step $ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 207 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:akaato/epub-first-step.git
 * [new branch]      master -> master

README.textile という空ファイルを作り、git の管理下に置きました。これを origin の master ブランチに push します。origin は GitHub の URL の別名です (先の設定で git add remote コマンドを使って設定しましたね)。

さあ、画面を更新してみましょう。

README.textile ファイルが追加されているのが見てとれます。成功です。リポジトリーを作って、そこにファイルをアップすることができました。