いものやま。

雑多な知識の寄せ集め

TeXで同人誌を作ってみた。(トンボ)

f:id:yamaimo0625:20190918075457j:plain

今日は昨日の記事で省略したトンボの出力について。

トンボとは

そもそもトンボって何?という話。

トンボというのは裁断の目印となるマークのこと。

紙の大きさとピッタリ同じデザインだと、紙の裁断が少しズレると微妙な空白が入ってしまったりする。
それを防ぐために、普通は紙のサイズよりも3mmほどはみ出すようにデザインし(「断ち切り」という)、裁断が多少ずれてもおかしくならないようにする。
そして、そうやってはみ出したデザインになっているので、ここで切るという目印が必要で、それを示すのがトンボ。

ちなみに、「ねこのしっぽ」さんでは基本的にはトンボは不要みたい。

まず断ち切りが不要なデザインの場合はピッタリのサイズで入稿すればいいみたい。
そして断ち切りが必要な場合も断ち切り分(上下左右に3mmずつ)原稿サイズを大きくするだけでよく、トンボは不要(これがデフォルトの入稿形式)。
もちろん、トンボを入れての入稿もOK。
(トンボは不要と書かれていたので気になって問い合わせて、トンボがあってもOKという回答をもらった)

ただ、印刷所さんによってはトンボが必須ということもあるので、入れる方法は押さえておいた方がいい。

gentombowパッケージ

トンボを出力するにはgentombowパッケージを使えばいい。

ただし!
実はいろいろ罠がある・・・

最初に解答だけ書いておくと、以下のようにする:

% トンボ
% geometryパッケージよりあとにした方がおそらく安全
% voffset、hoffsetは絶対にいじらない
\usepackage[pdfbox]{gentombow}
\usepackage{bounddvi}

以下はいろいろな罠についての説明。

tombowオプション

ドキュメントクラスのオプションでtombowオプションがあって、これでトンボが出せるんじゃね?と思うんだけど、これがまず大きな罠。

bxjsclsのドキュメントには次のように書かれている:

■トンボオプション
トンボ(crop marks)を出力します。(省略)
取りあえず、pTeX系の場合に限り、JSクラスのトンボ関連のコードをそのまま活かしておく。
正常に動作する保証はない。

Oh...

実際のところ、後述するpaper-sizeの設定もちゃんとやれば動くとは思うんだけど、使わない方がいいと思う。

paper-sizeの設定

最初、

\usepackage[pdfbox]{gentombow}

とだけしてて全然うまく動く気配がなくて、なんでだろうとなってたんだけど、原因はpaper-sizeの設定だった。

トンボを出力する場合、印刷したい紙のサイズと実際に出力される紙のサイズが異なる
例えば、A5で印刷したい場合、A5で印刷されるエリアのさらに外側にトンボが出力されるので、紙のサイズは一回り大きいB5である必要がある。

じゃあ、それをどうやって \TeXに教えればいいのか?

実は、教える手段がない。
というか、そもそも \TeXに「用紙サイズ」という概念は存在しない・・・
\paperwidth\paperheightという長さは存在するけど、これはあくまで他の長さを計算するためのもので、それで紙のサイズが決まるわけではなかったりする。

けど、それじゃ困るので、特別な命令を使うことでDVIファイルに情報を出せるようになっている。
\AtBeginDvi{\special{paper-size=<width>,<height>}}とすることで用紙サイズの情報(paper-size)がDVIに埋め込まれる。

これをやってくれるのがbounddviパケージ。
gentombowパッケージによっていい感じに変えられた用紙サイズをDVIファイルに出力してくれる。

なお、レイアウト調整によく使われるgeometryパッケージもこのpaper-sizeの設定をやってくれるみたい。

じゃあ、paper-sizeの設定が複数あった場合はどうなるのか?

これは一番最後にされた指定が使われるっぽい。
なので、bounddviパッケージを読み込んだあとにgeometryパッケージを読み込むと、うまくいかない可能性がある
(たぶん大丈夫だとは思うけど・・・)

voffset、hoffset

 \TeXでレイアウトの原点となる位置は\voffset\hoffsetという長さによって決められていて、デフォルト値はどちらも0になっている。
けど、なぜか原点は紙の左上から\voffset + 1inch\hoffset + 1inchの位置となっている
マジでなんで1インチ足してるんだ・・・

この謎仕様に対処するため、\voffset\hoffset-1inに設定するというのを見かけたりする。
そうすれば紙の左上がちょうど原点になると。

それダメ!

とにかく\voffset\hoffsetは0のままにしてレイアウトを考えて、変更するなら\topmargin\oddsidemarginを変える。
あるいはgeometryパッケージを使う方がいい。

gentombowパッケージは紙のサイズを一回り大きくしてこの\voffset\hoffsetをその分増やすことで紙面のレイアウトは保ったまま外側にトンボを出力できるようにしている。
なので\voffset\hoffsetをいじるとちゃんと動いてくれない。


ーーと、そんな感じで罠をくぐり抜ければ、最初に書いた解答で問題なく出力できる。

宣伝!
『Math Poker Girl』はBOOTHで販売中!

今日はここまで!

TeXで同人誌を作ってみた。(印刷用/電書用の分離)

f:id:yamaimo0625:20190918075457j:plain

今日は印刷用と電書用でソースを分離した話について。

印刷用と電書用での要件の違い

印刷用のPDFと電子書籍用のPDFでは、必要な要件が異なってくる:

  • 印刷用
    • トンボが必要
    • 隠しノンブルが必要
  • 電子書籍
    • 表紙/裏表紙の画像が必要
    • ページ間のリンクが必要

なお、一方で必要となっているものは、他方では不要なことに注意。
例えば電子書籍用のPDFにトンボが出ていたりするととても煩わしい。

そこで、どちら用のPDFなのかにあわせて設定などを変える必要がある。

一つの方法はCプロプロセッサを使うこと。
-Eオプションを使えばプリプロセスだけ実行することが出来る。
それで#ifdefなどを使ってコンパイルスイッチすれば切り替えられそう。
ただ \TeXのソースでプリプロセスが問題なく動くかはちょっと怪しい・・・

自分がとった方法は印刷用の \TeXソースと電子書籍用の \TeXソースを分けて、共通するソースはインクルードして利用し、違う部分だけそれぞれのソースで定義する(あるいは定義の上書きをする)という方法。
これについては後述。

なお、Re:VIEWの場合は設定ファイルを複数用意し、それぞれの設定ファイルに対してビルドを実行することで、印刷用と電子書籍用の出力を分けているみたい。

ファイル構成

共通する部分は印刷用と電書用とで二度書きたくないから独立したファイルに書き出してインクルードして利用するようにした。
なので以下のようなファイル構成になった:

共通/独立 ファイル名 説明
独立 book.tex 印刷用のソース
独立 ebook.tex 電書用のソース
共通 metadeta.tex タイトル、著者名
共通 settings.tex 共通の設定
共通 contents.tex 本文の内容
共通 chapter1.tex 第1章
共通 ... ...

Makefileについては以下も参照:

印刷用のソース

そして印刷用のソース(book.tex)は以下のようにした:

\documentclass[autodetect-engine,dvipdfmx-if-dvi,ja=standard,a5paper]{bxjsbook}

% メタデータ
\input{metadata}

% 各種設定
\input{settings}

% トンボの設定
...

% 隠しノンブルの設定
...

\begin{document}

% 本文
\input{contents}

\end{document}

共通設定を読み込んで、それに追加するようにトンボと隠しノンブルの設定を行なっている。
(chapter1.texなどはcontents.texからincludeされている)

電書用のソース

これに対して電書用のソース(ebook.tex)は以下:

\documentclass[autodetect-engine,dvipdfmx-if-dvi,ja=standard,a5paper]{bxjsbook}

% メタデータ
\input{metadata}

% 各種設定
\input{settings}

% ページいっぱいの画像を入れるための設定
...

% 目次や索引、参照にリンクをつけるための設定
...

\begin{document}

% 表紙 1, 2を出力
...

% 本文
\input{contents}

% 表紙 3, 4を出力
...

\end{document}

こちらは共通設定を読み込んだあとに表紙を出力するための設定やリンクの設定をして、それと本文の前後で表紙の出力を行なっている。


印刷用と電書用の分離については以上で、...で省略した部分については明日以降で。

宣伝!
『Math Poker Girl』はBOOTHで販売しているのでよろしくお願いします!

今日はここまで!

TeXで同人誌を作ってみた。(索引)

f:id:yamaimo0625:20190918075457j:plain

昨日に引き続き、同人誌制作の振り返り。
今日は索引の作り方について。

なお、 \TeX \LaTeXは区別せずに扱っている。
参考にしたのは以下:

LaTeX2ε辞典 増補改訂版 (DESKTOP REFERENCE)

LaTeX2ε辞典 増補改訂版 (DESKTOP REFERENCE)

あと、索引から参照されるべき単語については以下を参照:

索引の作り方

索引を作るにはmendexなどを使う。
自分はupmendexを使用した。

そして以下のようにする:

  1. 索引のスタイルファイルを用意する
  2. makeidxパッケージを追加して\makeindexを呼び出す
  3. \indexで参照されるべき単語にインデックスを追加する
  4. \printindexで索引を出力する

索引のスタイルファイル

索引をどう出力するか指定するためのスタイルファイル(拡張子は.ist)を用意してupmendexなどに引数で渡す。
(latexmkを使っている場合、.latexmkrcにオプションを書いておく)

スタイルファイルに何を書けるのかは以下のようにオンラインマニュアルを見れば分かる:

$ man upmendex

自分は以下のようなスタイルファイルをindex.istという名前で用意した:

% 頭文字の出力
lethead_flag 1      % 頭文字の出力フラグ (0: 出力しない, -1: 小文字出力, 1: 大文字出力)
letter_head  1      % 日本語の頭文字の出力フラグ (0: 出力しない, 1: カタカナ, 2: ひらがな)
lethead_prefix "\\idxgrphead{"   % 頭文字の前につける文字列
lethead_suffix "}"   % 頭文字の後につける文字列

% エントリと最初のページ番号との間の区切り文字列 (0: 主, 1: サブ, 2: サブサブ)
delim_0 "\\quad "
delim_1 "\\quad "
delim_2 "\\quad "

頭文字というのは「A」とか「あ」とかの見出し。
lethead_prefixlethead_suffixを指定しているけど、これで\idxgrphead{あ}のように呼び出されることになるので、\idxgrpheadを定義することで頭文字のスタイルを変えることが出来るようにしている。

「主」「サブ」「サブサブ」というのは、索引を入れ子にすると関係してくる。
(例えば「オイラーの公式」「オイラー数」を入れ子にすると、主:「オイラー」、サブ:「ーーの公式」「ーー数」みたいになる)

他にもページ番号間の区切り文字を指定したりなども出来る。

インデックスを追加するマクロ

インデックスの追加は以下のように\index命令を使う:

...ショーダウン\index{ショーダウン}というのは...

漢字の読みも指定する場合は以下のようにする:

...期待値\index{きたいち@期待値}とは...

ただ、見ての通り基本的には同じ単語をその場で使ってるので、\indexで索引を追加するのは二度手間・・・
そこで\addindex\addindexyomiというマクロを用意した:

% インデックスの追加
\newcommand{\addindex}[1]{#1\index{#1}}
\newcommand{\addindexyomi}[2]{#1\index{#2@#1}}

これを使えば次のように書ける:

...\addindex{ショーダウン}というのは...
...\addindexyomi{期待値}{きたいち}とは...

索引のデザインのカスタマイズ

あとは索引のデザインのカスタマイズ。

まずはスタイルファイルに書いていた\idxgrpheadを定義しておく:

% 索引のグループの見出し
\newcommand{\idxgrphead}[1]{% #1: 頭文字
    \par%
    \vspace{\baselineskip}%
    \hfil{\bfseries #1}\hfil%
    \vspace{\baselineskip}\par}

上下に一行分の空きを入れて中央寄せした感じ。

あと参考文献と同じように目次に追加されるときに\protect\numberline{\null}が入るようにした:

\makeatletter

%%% 索引のスタイルをカスタマイズ

% 目次でのインデントを合わせる
\renewenvironment{theindex}{% 索引を3段組で出力する環境
    \if@twocolumn
      \onecolumn\@restonecolfalse
    \else
      \clearpage\@restonecoltrue
    \fi
    \columnseprule.4pt \columnsep 2\jsZw
    \ifx\multicols\@undefined
      \twocolumn[\@makeschapterhead{\indexname}%
      \addcontentsline{toc}{chapter}{\protect\numberline{\null}\indexname}]%ここを修正
    \else
      \ifdim\textwidth<\fullwidth
        \setlength{\evensidemargin}{\oddsidemargin}
        \setlength{\textwidth}{\fullwidth}
        \setlength{\linewidth}{\fullwidth}
        \begin{multicols}{3}[\chapter*{\indexname}%
        \addcontentsline{toc}{chapter}{\protect\numberline{\null}\indexname}]%ここを修正
      \else
        \begin{multicols}{2}[\chapter*{\indexname}%
        \addcontentsline{toc}{chapter}{\protect\numberline{\null}\indexname}]%ここを修正
      \fi
    \fi
    \@mkboth{\indexname}{}%
    \plainifnotempty% \thispagestyle{plain}
    \parindent\z@
    \parskip\z@ \@plus .3\p@\relax
    \let\item\@idxitem
    \raggedright
    \footnotesize\narrowbaselines
  }{
    \ifx\multicols\@undefined
      \if@restonecol\onecolumn\fi
    \else
      \end{multicols}
    \fi
    \clearpage
  }

\makeatother

章まで出すとかいう余計なことをしなければこんな修正は不要なんだけどねぇ(^^;


索引の作り方については以上。

ちなみに『Math Poker Girl』はBOOTHで販売しているのでよろしくお願いします!

今日はここまで!

TeXで同人誌を作ってみた。(参考文献)

f:id:yamaimo0625:20190918075457j:plain

技術書典7にサークル参加したことの振り返りも終わったので、同人誌制作の振り返りへ。
今日は参考文献の一覧の作り方について。

なお、 \TeX \LaTeXは区別せずに扱っている。
参考にしたのは以下:

LaTeX2ε辞典 増補改訂版 (DESKTOP REFERENCE)

LaTeX2ε辞典 増補改訂版 (DESKTOP REFERENCE)

参考文献の一覧を作る2つの方法

 \TeXで参考文献の一覧を作る場合、2つの方法がある:

  • thebibliography環境を使って参考文献を手動でリストアップする
  • BibTeXを使い\bibliographyによって参考文献を半自動で出力する

参考文献のデータベースがある場合、後者を使えばいろいろ便利なのだけど、そうでない場合はあまり後者を使うメリットはないと思う。
特に今回は後者だと細かい調整が大変そうだったので、前者の方法を使った。

thebibliography環境の使い方

thebibliography環境は以下のように使う:

\begin{thebibliography}{<n>}
    \bibitem{<refname>} <refitem>
    ...
\end{thebibliography}

<n>は文献番号の数字の最大幅と同じ幅の文字列。
何言ってるんだという感じだけど、基本的には以下のようにしておけばいい:

<n> 説明
9 文献番号の数字は最大1桁(1〜9)
99 文献番号の数字は最大2桁(1〜99)
999 文献番号の数字は最大3桁(1〜999)

<refname>は参照するときに使う名前。
例えば\cite{<refname>}とすると[<文献番号>]と文献への参照が入る。

<refitem>は参考文献の情報。
著者とか、本のタイトルとか、出版社、出版年などの情報を書く。
ここは文献の種類によってスタイルがあるようなので、それを守って書くといい。
自分の場合、試しにBibTeXで出力してみて、その出力を真似してみた。

書籍の場合だと、以下のような感じ:

<著者名>. \newblock 『<本のタイトル>』. \newblock <出版社>, <出版年>.

Webページは以下のようにした:

<Webページ名>. \newblock <URL>.

参考文献での小見出し

参考文献もいろいろとジャンルに分けたいことがある。
今回の場合、ポーカー関連の参考文献と、数学関連の参考文献、それにWebページに分けたかった。

そこで本を参考に\bibsectionという命令を用意した:

\makeatletter

% 参考文献で小見出しを出せるようにする
\newcommand{\bibsection}[1]{% #1: 小見出し
    \par \if@newlist\else \medskip \fi
    \item[]% 1項目分、間を開ける
    \item[]\noindent\vspace{\baselineskip}\hskip-\@totalleftmargin {\Large\bfseries #1}\par}

\makeatother

thebibliography環境は実質リストなので、小見出し用のアイテムを追加する命令を定義している感じ。

参考文献の目次での見出しの修正

TeXで同人誌を作ってみた。(目次デザイン) - いものやま。で書いたとおり、章番号なしの章を目次に追加するときに\protect\numberline{\null}をタイトルの前に足すことでインデントの位置を揃えていた。

thebibliography環境を使うと「参考文献」という章番号なしの章が勝手に開始されるので、そのままだとインデントの位置が揃わなくなる。

そこで、以下のように修正してインデントの位置を揃えるようにした:

\makeatletter

%%% 参考文献のスタイルをカスタマイズ

% 目次でのインデントを合わせる
\renewenvironment{thebibliography}[1]{%
  \@jsc@warnoldfontcmdexceptiontrue
  \global\let\presectionname\relax
  \global\let\postsectionname\relax
  \chapter*{\bibname}\@mkboth{\bibname}{}%
  \addcontentsline{toc}{chapter}{\protect\numberline{\null}\bibname}% ここを変えた
   \list{\@biblabel{\@arabic\c@enumiv}}%
        {\settowidth\labelwidth{\@biblabel{#1}}%
         \leftmargin\labelwidth
         \advance\leftmargin\labelsep
         \@openbib@code
         \usecounter{enumiv}%
         \let\p@enumiv\@empty
         \renewcommand\theenumiv{\@arabic\c@enumiv}}%
   \sloppy
   \clubpenalty4000
   \@clubpenalty\clubpenalty
   \widowpenalty4000%
   \sfcode`\.\@m}
  {\def\@noitemerr
    {\@latex@warning{Empty `thebibliography' environment}}%
   \endlist}

\makeatother

もうちょっとスマートに修正できるといいんだけどねぇ(^^;


参考文献の一覧の作り方については以上。

ちなみに『Math Poker Girl』はBOOTHで販売しているのでよろしくお願いします!

今日はここまで!

技術書典7にサークル参加してきた。(気づき編)

f:id:yamaimo0625:20190621155528j:plain

昨日は当日の様子を振り返った。

今日はいろいろ気づいたことをまとめてみたい。

チェック数の推移

まずはチェック数の推移に関して。

最初は毎日チェックしていたわけではないので、大雑把な数字。
途中からは大体寝る前(23時くらい)の数字のはず。

日付 曜日 チェック数 増分
9/1 23 -
8 26 +3
9 29 +3
12 33 +4
13 34 +1
14 36 +2
15 39 +3
16 42 +3
17 43 +1
18 56 +13
19 57 +1
20 62 +5
21 72 +10
22 90 +18

見ての通り、ビックリするほど増加が少なかった。

@yagitchさんの9/1の、

というツイートを見て「おっ、これなら最終的にチェック数200くらいいくのかな?」と思ってたら、そのあと全然伸びなくて、9/8だと

と「これは150も怪しいんじゃないかなぁ」くらいになり、9/15で

と「これはギリギリ100いくかいかないか」という感じ。

というツイートが9/15にあったけど、自分の場合は最終的にそこから2倍強といったところだった。

前日、当日の伸びもそこまで凄いものではなく、結局90止まり・・・

運営は否定してるけど、やはりこれだけサークル数が多くなってくると、一覧で見たときに上の方にあるかどうかがかなり影響してるんじゃないかなという気がしてる。
自分は「え23C」でだいぶ上の方にあったので最初の方にチェック数がそれなりに増え、そのあとは最初の増え方と比較して増加が鈍かったんじゃないかなぁ、と。
なので、最初の頃の予測を大きく外れることになったのではないかなと思う。

そして、ページ数が多かったので締め切りは9/11(水)で、念のために9/10(火)には入稿してたので、「うーん、分からんけど、これからチェック数が伸びることを信じて200刷るか。そうすれば完売するとかもないだろうし・・・いや、300刷っても原価回収するのに必要な冊数は10冊強しか違わないなら、300でもいいかな」とか考えた自分はホントになんだったのか・・・

そのあとチェック数が全然伸びず、最終的には90にしかならなくて真っ青になったのは言うまでもなく。。。
あたしって、ほんとバカ

ちなみに、18日にグッとチェック数が増えてる理由は謎。
Cホールの推し祭りがあったのは17日・・・(推し祭りでは全然増えなかった)

売り上げ

そして、実際にどれだけ売り上げたのかというと、69冊(書籍+ダウンロードカードのセット)・・・
チェック数にも届かなかった・・・

一応、印刷費が約14万円で、1セット2,000円で売っていたので、ギリギリ印刷費は回収できた感じ。
ただ、参加費や交通費、備品を買う経費、それに宅急便で搬出した費用などを考えると完全に赤で回収しきれてない。
工数も考えればタダ働きもいいところ・・・(まぁこれは仕方ないところはある)

幸い、内容が数学なので陳腐化することはなく、それこそ5年後や10年後、あるいは(実質的に中身は論文でおそらく世界初の仕事なので)30年後にも意味のあるものだから、息長く売っていくことは出来るけど。
とはいえ、あの重たい本を運ぶのはツラい・・・

テーマとページ数と値段

テーマ選びに関しては、一度振り返りをしてる:

これに加えて気づいたことがあったので、それについて。

今回の本では、ポーカーと数学という2つのテーマを追っていた。

自分は「ポーカーに興味のある人が数学にも興味を持ってくれたら嬉しいし、数学に興味のある人がポーカーにも興味を持ってくれたら嬉しいな」と「OR」の効果を狙ってた。
そのために、1章使ってポーカーのルールから説明したし、数学も必要最低限な内容を道具として使うに留まっている。

f:id:yamaimo0625:20190926180103p:plain

けど、実際には「AND」の対象ーーすなわちポーカーにも数学にも興味のある人しか手に取ってくれなかった。

f:id:yamaimo0625:20190926180138p:plain

ポーカーに興味はあるけど数学に興味がない人は「数学」となった時点で「じゃあいいや」となってしまったし、逆もまた然りだった。

読む対象を増やすつもりでテーマを複数にしたのに(そして実際、片方が初心者でも読むことが出来るように書いている)、それによって逆に読む対象を狭めてしまった。
これが大きな失敗だった。

複数のテーマを採用すると、ターゲットは「OR」ではなく「AND」になる。

これが自分にとっては大きな気づきだった。
当たり前と言えば当たり前だけど・・・

なので、基本的にはテーマは1つに絞った方がいい
もし複数テーマを扱うなら、その場合は「AND」を想定した作りにする

今回の『Math Poker Girl』なら、以下のどちらかにすればよかったと思う:

  1. テーマをポーカーに絞ってルール説明とどこで遊べるのかの具体的な説明や実際に遊んできたレポートなどにする
  2. 「AND」を想定してポーカーのルール説明などは省いてポーカー界の常識がどれだけ根拠がないものかだけを示す

こうすると何がうれしいのかというと、

  1. ページ数が少なくなる
    「OR」のための説明が不要になるので、ページ数を抑えてピンポイントのターゲットに説明できる。
  2. 値段が安くなる
    ページ数が少なくなれば、当然値段も安くなる。
    値段が安くなれば、手に取ってもらいやすくなる。
  3. 読者が本を取捨選択することが可能になる
    複数テーマが1冊にまとまっていると、それを選ぶという選択しかない。
    けど、それが例えば2冊に分かれていれば、片方だけ読むことも可能だし、両方読むことも可能になる。

なので、「OR」のターゲットに本を届けたい場合も、本を2冊に分けて、それぞれでテーマを絞った方がいい。

ページ数が少なくなれば工数も減らせるし、重たさも減るし、著者にとっても嬉しいことが多い・・・
「あれもこれも説明が必要だろう」とついつい説明を盛り込んでしまう「OR」の誘惑を振り切る勇気が必要。
もし説明が必要だと思うなら、それは別の本に分ける。

エレベーターピッチ

エレベーターピッチは「エレベーターで偶然偉い人にあったときに、短いスピーチでプレゼンしてアピールする」ということ。
そこから転じてアジャイル開発手法では「短い言葉での製品のウリを説明する」ということが行われる。
そうすることでプロダクトの価値が明確になるから。

で、なんでここでその話が出てくるかというと、短い時間にその本のウリを説明するのってめちゃくちゃ重要だよなと自分自身が買い物してて思ったから。

店番をお願いしてるので出来るだけ短い時間で回らないといけないわけで、そうするとやはり「キーワード」が目に入ってくる。
圏論」とか「グレブナー基底」とか「CSS組版」とか。
そういったキーワードで手に取るかどうかの判断が変わってくる。
だから、その本の扱ってる内容/ウリを説明するキーワードを列挙しておくというのが、エレベーターピッチに繋がるプレゼンと言えるかなと。

『Math Poker Girl』の場合は「どうやったらポーカーに勝てる?」みたいな煽りは入れてたけど、具体的なキーワードの列挙はしてなかった。
なので、お客さんから見たら「ポーカー」や「数学」は見て取れるけど、じゃあ数学のどの分野なのかとかはさっぱりで、惹きつける力が弱かったかなぁと。
まぁ、応用数学なので数学を道具として使っていてそういったキーワードを出すのが難しいというのもあったけど・・・

でも例えば、

とかのキーワードが並んでいたら、ただ「数学」ってなってるよりもずっと多くの情報を伝えられたかなと思う。
(ただ、強化学習自体の説明をしたり、強化学習を使って学習したわけではなく、強化学習で使われる状態遷移モデルを使って考察を進めているだけなので「強化学習」と書いてしまうとちょっとウソになるし、数理最適化もやはりバックグラウンドで使っただけでそれ自体の説明はしてないのでやはりウソになる・・・このあたりが応用数学の難しいところ)

ラーメンを食べたい客にはラーメンを出す

で、やっぱり売ることを考えたら、流行のジャンルの本を出すのが一番いい。
キーワードだって目につくし。

ラーメンを食べたい客がいるなら、ラーメンを出すべき。
いや、ソバも美味しいんだよと会心のソバを用意しても、「いや、今はラーメンの気分なんだよ」と言われたら売れない・・・

まぁ、「書きたいこと vs 読みたいこと」にも書いたとおり、難しい問題なんだけど。

ただ、一つ重要なことに売れるかどうかは内容よりも市場の大きさで決まるというのがある。
これは転職とかも同じで、給料は仕事の内容よりも市場の大きさで決まるらしい。

このまま今の会社にいていいのか?と一度でも思ったら読む 転職の思考法

このまま今の会社にいていいのか?と一度でも思ったら読む 転職の思考法

なので、本の内容をよくするのはもちろん、ターゲットとなる市場のサイズが出来るだけ大きくなるようにテーマを調整するのも重要なのかもしれない。


技術書典7にサークル参加してみての振り返りはこんなところで終了。
この経験を次回以降に活かしていきたい。

宣伝!
『Math Poker Girl』はBOOTHでも頒布してるのでよろしくお願いします!
上にも書いた通り、ポーカー知らなくても読めますし、数学詳しくなくても読めます!

今日はここまで!

技術書典7にサークル参加してきた。(当日編)

f:id:yamaimo0625:20190621155528j:plain

昨日は当日までの準備を振り返った。

今日は当日を振り返ってみたい。

タイムテーブル

まずは当日のざっくりした動きから。
ちなみにスペースは「え23C」で3階。

時間 出来事
9:20 池袋のいけふくろうに到着。
待ち合わせ時刻は9:45。
張り切りすぎた。
9:50 売り子をお願いした友人と合流。
文化会館へ向かう。
10:15 会場に到着。(途中でちょっと買い物した)
3階へのサークル入場でなぜか待機列が出来てた。
しばらく待たされたあと、階段で3階へ。
設営を開始する。
10:55 設営完了。ギリギリ。
トイレに行く時間がなかった・・・
11:05 開会
15:00 ここから30分ほど3階を見て回って自分の買い物。
16:00 ここから30分ほど2階を見て回って自分の買い物。
17:00 閉会
撤収を開始する。
搬出のために重いダンボールを持って階段を2往復した。
死ぬほど疲れた。
18:10 だいたいこの頃に片付けも終わって会場をあとにした。

入場

一応、事前にディスプレイの確認もしてたし30分もあれば余裕かなと、10時少し過ぎくらいに会場に着くように行った。
結論から言えば、もっと早く行くべきだった。
余裕を持った行動は大事。

到着してサークル通行証(かっこよかった!)をもらって、さてスペースに向かって設営だと思ったら、 なぜか3階に向かうのに待機列に並ばされ、思いっきり出端をくじかれることに。
ここでそれなりに時間をロスした気がする。

なんで待機列を作る必要があったのか・・・おそらく階段への人の流量制限と、安全確保のためにスタッフの目が届くようにしたかったんだと思う。
それは分かるんだけど、だったらパケット方式じゃなくてストリーム方式にして欲しかったなと。

ここでいうパケット方式/ストリーム方式というの自分の造語だけど、

パケット方式
集団(パケット)に先導者(ヘッダ)をつけて1集団(1パケット)ずつ移動する。

ストリーム方式
人(データ)を流す通路の入り口と要所にスタッフを配置し、流量をコントロールしながら人を流す(ストリームにする)。

という感じ。

f:id:yamaimo0625:20190926124717p:plain

パケット方式は人が少なくていいという利点があるけど、ストリーム方式の方が死角になる領域は狭いしスループットも高くなる。
エンジニアなので、こういうところに普段の知識を活かして欲しいところ・・・

ついでに言えば、待機列も毎回コピーをしているような感じだった(列が1つ3階に向かうたびに全体で右に1列ズレてた)ので、リングバッファ方式を使うなど工夫して欲しかった・・・

擬似コードで表現すると、こんな:

// 先頭の列を送り出したら、残りの列を全部コピーしていた:
while (!done)
{
    line_t line = lines[0];
    for (int i = 1; i < line_size; i++)
    {
        lines[i - 1] = lines[i];
    }
    ...
}

// リングバッファにして次に送り出す列をマークしてれば毎回のコピーは不要:
int next_idx = 0;
while (!done)
{
    line_t line = lines[next_idx];
    next_idx = (next_idx + 1) % MAX_LINE_SIZE;
    ...
}

まぁ、おそらく事前に準備があったわけではなく、当日急にそうしないといけなくなったとかなんだとは思うけど。

設営

そんなこんなでスペースに到着し、いざ設営というところで何が起こったか。

「あれ? 何から手をつければいいんだ?」

思考がフリーズした(^^;

いや、今までもコミケとかにサークル参加してたけど、今回は製本を印刷所さんにお願いしてたり、いつもより展示用のアイテムをたくさん持ち込んでたりで、やるべきことがいろいろ増えていて何から手をつけたらいいのか急に分からなくなってしまった。

段取りをあらかじめ考えてチェックリストとして印刷し、何も考えなくても順番にやっていけば設営が終わるという感じにしておいた方がよかった。

スペースに到着したのも遅れたり、次は何をやらないといけないかをいちいち考えながら行動する必要があったせいで、設営が終わるのがギリギリになってしまった。
しかも、そんな感じでてんやわんやしてたので10:40〜は移動も出来なくなるというのを見落としてい てトイレに行きはぐるという・・・
大変だった。

以下のような段取りでやればよかったと思う:

  1. スペースにある運営からのお知らせを確認する
  2. イスを下ろす
  3. 入荷したダンボールを確認する
    1. ダンボールが自分宛てか確認する(間違ってる可能性があるため)
    2. ダンボールの数/各ダンボールに入ってる数を確認する(不足している可能性があるため)
    3. ダンボールを適切な場所に移動する(机の下/バックヤードに数を分ける)
  4. 荷物の置き場所を決める(とくに文具セットを取り出しておいて置く場所を決めるといい)
  5. 敷き布を敷く
  6. スマート本棚を組み立てる
  7. ポスタースタンドを組み立てる
  8. 見本誌を作る
  9. 本を陳列する
  10. DLカードを用意する
  11. 値札を立てる
  12. かんたん後払いのQRコードが印刷された紙をスタンドに入れて立てる
  13. お札入れを用意する
  14. 写真を撮ってアピール
  15. (スタッフさんが回ってきたら)見本誌提出袋を提出する
  16. 立ち読み広場用の見本誌を用意し、置きに行く

立ち読み広場用の見本誌の準備を最後にしてるのは、急ぐ必要がまったくなかったから。
最初から立ち読み広場があるのかと思いきや、たしか13時くらいになってからだったらしい。

ちなみに設営後の様子はこんな:

会場の様子

11:05にアナウンスがあり開会。
チケットによる流量制限と床面積の増加が効いているようで、混みすぎていない感じでよかった。

本の売れ行きは・・・これは次の「気づき編」で。

やってるときにちょっと不思議だったのが、人がある程度の周期で固まって押し寄せてくること。
混雑に波があるというか。
人が固まってくると立ち止まるのが難しくなるので、スルーされてしまう可能性が高くなる。

あとでツイッターなどを見ると、なんか2階から3階への移動にサークル入場のときと同じように列形成がされていたっぽい?
他にもいろいろ問題があったようで・・・
まぁ、複数フロア開催は今回が初めてなので、今度どんどん改善されていくと思う。

16時ごろに2階に降りて買い物をしたのだけど、2階はその時間でもけっこう人がいて驚いた!
これまで一般参加してたときの混雑に比べればずっと空いているものの、3階に比べればずっと混んでる。
こんなに人が来てたのか、みたいな(^^;

そして、技書博の感想でも書いたんだけど、移動用の通路が確保されていないレイアウトなので、3階に戻るのがけっこう大変だった。
人混みをかきわけないと進めないんだから。

今の技術書典のレイアウトは、こんな感じで移動のための列とサークルに並ぶための列が混在している:

f:id:yamaimo0625:20190728193612p:plain

それを技書博のように分離して、移動のための通路をちゃんと確保して欲しかった:

f:id:yamaimo0625:20190728193752p:plain

こうなっていれば移動がもっと楽で混雑の分散もされるのに・・・

ダイレクト入荷

準備編にも書いたとおり、BOOTHの倉庫サービスは使わず、とらのあなには委託することにしていたので、そのためにダンボール箱を1つ2階へ運んだ。
これも階段で運んだので大変だった・・・

ただこのおかげで宅急便で送るダンボールの数を減らせたので、かなり助かった。

撤収

17:00にアナウンスがあって無事閉会。

あとは片付けをして撤収するだけだとなって、またフリーズした
うん、段取りは大切・・・

他にも見本誌を立ち読み広場に回収しに行ったらなかなか見つけられなかったり(友人が見つけてくれた)、キャリーカートで在庫を運ぼうと考えてたけど安物のキャリーカートでは無理と判明して急遽宅急便に切り替えたり、そして宅急便の伝票が全然見つからずに泣きそうになったり、1箱ずつならキャリーカートでも運べるだろうとキャリーカートで運んだらエレベータが大渋滞でこれは無理だと結局ダンボール箱を抱えて階段を2往復したりと、死ぬほど大変だった。。。

3階にも宅急便の搬出口が欲しかった・・・階段の往復、死ぬほど疲れた・・・
(結局ダイレクト入荷の分もあわせて3箱分、階段を往復した)

ちなみに、撤収の段取りは以下のようにすればよかったと思う:

  • 撤収までにやっておきたいこと
    1. 宅急便の伝票を確保しておく
    2. ダイレクト入荷を済ませておく
  • 撤収でやること:
    1. お札入れをしまう
    2. かんたん後払いのQRコードが印刷された紙のスタンドをしまう
    3. 値札をしまう
    4. DLカードをしまう
    5. 陳列していた本をしまう
    6. 見本誌をしまう
    7. ポスタースタンドをしまう
    8. スマート本棚をしまう
    9. 文具セットなどをしまう
    10. 敷き布をしまう
    11. 立ち読み広場の見本誌を回収
    12. ゴミをまとめる
    13. 不要なダンボールを片付ける
    14. 荷物をまとめる
    15. 宅急便を送る
    16. イスを上げる

見本誌の回収が遅めなのは、遅く行った方が本の数が減ってるから見つけやすくなってるはずなので。
時間がなかった場合には最悪放置すればいいし。

段取りの大切さ

今回の大きな反省は、段取りをあらかじめしっかり考えておくのは重要だなということ。
手順に従えばすべて整うようにしておくのは、脳のリソースをすごく節約してくれる。

『現れる存在』によれば、人間の進化というのは、人間が賢くなってきたというよりかは、人間がまわりの環境を賢く作り変えてきたんじゃないか、という話だった。
テクノロジーによって出来ることを増やしていくというのはまさにそう。
知識を外部化してうまく活用するのが重要。

ちなみに『現れる存在』はエンジニアが読んでも非常に面白いと思うのでオススメ。

後日談

めちゃくちゃ疲れて、体力をだいぶ使ったのか頭痛が酷いことになった。。。
肩こりが頭痛の原因っぽいと最近分かってきたので、肩こりを解消するための対策は実施中。

あと、嬉しいことにBOOTHでも売れたので、発送作業をした。
あんしんBOOTHパック」を使ったので、自分も購入者も匿名で済むのがステキ。
自分はともかく、購入者は住所を公開したいとは思わないだろうから、このパックで送るようにした方がいいと思う。


当日(と後日)の様子はこんなところ。
次は実際にどれくらい売れたのかや、その他に気づいたことなどをまとめてみたい。

今日はここまで!

技術書典7にサークル参加してきた。(準備編)

f:id:yamaimo0625:20190621155528j:plain

9/22(日)に開かれた技術書典7にサークル「いもあらい。」で参加してきたので、その振り返りを。
まずは当日までの準備に関して。

同人誌制作自体の振り返りは他記事を参照。

あと、各タスクはGithubプロジェクトボードを使って管理した:

やったこと一覧

入稿が一段落した後にやったことをリストアップすると、以下の通り:

  • 出店準備
    • 物品購入
    • 値札、見本表示、名札の作成
    • お釣りの準備
    • ディスプレイ確認
  • 宣伝
    • 16:9の告知画像の作成
    • 告知ページの作成
    • 宣伝ツイート
  • 委託の検討
  • DLカードの作成

物品購入

いろいろな記事などを参考に、以下のようなものを買った:
(買わなかったもの/買わなくてよかったものもあとで紹介)

敷き布 & 滑り止め

f:id:yamaimo0625:20190925121506p:plain

布はユザワヤ、滑り止めは100均で購入。
綿素材で触り心地はフワフワ、よく伸びる。
(なお麻素材は触り心地がサワサワしててしっかりしてるイメージ)

幅が90cmとなってたので120cm買って90cm x 120cmとしたけど、実際に家で測ったら幅が90cmよりちょっと短かった・・・

なお、机の幅は90cmのことが多い。
そして机の前に60cmくらい垂らし、机の奥行きが45cm、机の手前に15cm垂らすと、60 + 45 +15 = 120cmとなる。

ポスタースタンド

f:id:yamaimo0625:20190925121536p:plain

入稿時にB4ポスターを一緒に頼んでいたので、それを飾るためにアマゾンで購入。

似たような商品がいろいろあってどれを買ったらいいのかよく分からなかった・・・
とりあえず買ったやつで問題はなかった。

100均で買った袋に入れて持ち運ぶようにした。

スマート本棚

f:id:yamaimo0625:20190925121558p:plain

本を並べるためにアマゾンで購入。

ハゴロモ スマート本棚S No.82067

ハゴロモ スマート本棚S No.82067

本は表紙が見えるように立てて並べた方がいい。
そうすれば通路を通りかかっただけの人にも見える。
寝た状態で置かれてると上から覗き込まないと見えない。

ダンボールだけどけっこうしっかりした作りでよかった。

T型カードスタンド

f:id:yamaimo0625:20190925121618p:plain

かんたん後払いのポストカードを入れるために100均で購入。
サイズぴったりだった!

値札スタンド

f:id:yamaimo0625:20190925121920p:plain

硬質カードケース(A7)とマグネット付きのクリップで作成。
(どちらも100均で購入)

折りたためるL型カードスタンドが100均で売っているらしかったのだけど見つからなかったので作った。
折りたためないタイプだとかさばるし折れたときに困るので・・・

値札のデザインでクリップのことを忘れてた(^^;
けど、紙の後ろ側にクリップを回すことで回避w

クリアブックカバー

f:id:yamaimo0625:20190925121952p:plain

見本誌に巻くために100均で購入。
A5サイズは2つ入って100円だった。
(※写真は外の袋だけ)

ピッチリ巻くと端が少し余るので、マスキングテープで止めるといい感じになる。

タッパー

f:id:yamaimo0625:20190925122033p:plain

当日の金庫として使うために100均で購入。

金庫としてはコインを何枚も入れられるやつとかが売られてるけど、あのタイプの問題点はフタが邪魔
その点、タッパーは使ってるときはフタを下に敷けるので邪魔にならず、しまうときはしっかりとフタが固定できるのでめちゃくちゃよかった。
500円のオペレーションが入る場合、このタッパーに500円専用のコインケースを入れておけばいいと思う。

領収書

f:id:yamaimo0625:20190925122058p:plain

欲しいと言われたら渡す必要があったので100均で用意した。
結局使わなかったけど。

領収書には連絡が取れるように住所と名前を書くみたい。
あらかじめ数枚書いておくといい。
(あるいはスタンプなどを使う)

コイントレイ

f:id:yamaimo0625:20190925122115p:plain

お金を払った/払ってないが分からなくならないように、コイントレイを用意した方がいいとのことだった。

オペレーションとして以下のようにする:

  1. お金を受け取ったら金額を確認してコイントレイに置く
  2. 必要ならお釣りを渡す
  3. 品物を渡す
  4. コイントレイのお金をタッパーにしまう

最初、100均でプラスチックのトレイを買ったんだけど、デザインがアレだったので自作してみた。
100均でいい感じのフォトフレームとタオルを買って、写真の代わりにタオルを挟み、写真をカバーするためのプラスチック板で裏側を押さえたらいい感じになったw

名札

f:id:yamaimo0625:20190925122149p:plain

100均で購入。
「売り子」という名札をしておけば突っ込んだ質問はされないっぽいので。
(実際には店番をお願いしてたときに一回質問されたらしく、効果は微妙かも・・・)

文房具類

以下のような文房具類を100均で買い集めた:

f:id:yamaimo0625:20190925122204p:plain f:id:yamaimo0625:20190925122227p:plain

  • ダンボールカッター
  • ハサミ
  • マスキングテープ
  • 付箋紙
  • マジック
  • ボールペン
  • ガムテープ

ダンボールカッターはダンボールを切るためのもの。
先が丸まってて安全だしカバーがついてるのも安心できる。

マスキングテープは展示でセロハンテープなどが使えない場合があるらしいため。
(と思ってたんけど、情報ソースが見つけられない・・・)

ゴミ袋

f:id:yamaimo0625:20190925122352p:plain

スペースで出たゴミを持ち帰るためと、雨が降ったときに本が濡れないようにかぶせるために100均で購入。
なお、ダンボール箱にかぶせようとしたらサイズが足りなかった・・・雨が降らなくて助かった。

A4サイズのプラスチック製アタッシュケース

f:id:yamaimo0625:20190925122414p:plain

いろいろ荷物があって、特にスマート本棚とかは折れ曲がると困るので、A4サイズのプラスチック製アタッシュケースを買ってみた。
100均で300円商品。

T型カードスタンドも問題なく入って折れ曲がる心配をしなくて済んだので、1つあると安心できると思う。
荷物がひとまとめになってれば忘れ物をするリスクも減るし。

買っておけばよかったもの

名刺立てを買っておけばよかった。

こういうのとか。

DLカードを用意したんだけど、普通の名刺入れに入っていて、そのままだと非常に取り出しづらかった。
名刺立てに移しておけば簡単に取れたはず。

買わなかったもの/買わなくてよかったもの

買った方がいいと紹介されていたけど買わなかったものや、買ったけど使い物にならなかったものもあった。

まず、硬質カードケースは買わなかった。
お品書きを作るのにいいと紹介されてたけど、お品書きを作らなかったので。

あとボップホルダーも買わなかった。
これもポップを作るつもりがなかったから。
基本的には付箋があれば十分だと思う。

買ったけど不要だったものは、まずこれ。

f:id:yamaimo0625:20190925122443p:plain

敷き布を入れるための円筒形のケース。
100均で300円商品として売ってて「おっ、これ売ってるのか」と思わず買ってしまったんだけど、いざ使ってみたらめちゃくちゃ邪魔だった。
敷き布は普通に畳んで運べば十分。

それと、折りたたみ式のキャリーカートをアマゾンで買ったのだけど、これも使い物にならなかった:

f:id:yamaimo0625:20190925122507p:plain

書籍の入ったダンボール箱は想像以上に重い
なのでこういった安物のキャリーカートだと耐久性が全然足りなかった。
中身の減った1箱をかろうじて運べたけど、数箱運ぶとかは絶対無理。

もっとしっかりしたものを買った方がよかった。

値札、見本表示、名札の作成

値札や見本表示、名札をGraphicでサクッと作成。

f:id:yamaimo0625:20190924170905p:plain:w300

f:id:yamaimo0625:20190924171257p:plain:w500

f:id:yamaimo0625:20190924170956p:plain:w300

見本表示はこれを紙に印刷して切り分け、クリアブックカバーに挟み込んだ感じ。
見本だとハッキリと分かって、思った以上にうまくいったと思う。

一つ失敗したのは、これらのタスクを見落としていたこと。
Githubプロジェクトボードのカードにしてなかった。
そのせいで、前日にディスプレイ確認をしてる中でそういえば必要じゃんと慌てて作ることになった(^^;

お釣りの準備

お釣りのために1,000円札を30枚ほど用意した。
これなら約4回、1万円札で支払われても大丈夫なはずだったので。

なお、実際にはほとんど1,000円札で支払われた。
あと、かんたん後払いの利用がすごく多かった。(半分強がかんたん後払い)

ちなみに、今回は硬貨の取り扱いはなかったけど、硬貨のお釣りが必要なら平日に済ませておく必要があったみたい。
注意が必要。

ディスプレイ確認

実際に並べてみてディスプレイの確認を行なった。

そしてそのまま片付けて荷造り。
こうすれば(しまい忘れがなければ)当日足りないものはないはず。

16:9の告知画像の作成

@yagitchさんのツイートを参考に16:9の告知画像を作った。

参考にしたのはこのツイート:

作った画像とツイートはこんな感じ:

そして、これを毎回引用リツイートする感じで宣伝をした:

ただ、これに関しては作ってから気づいた点がいくつかあった:

  • ツイッターだと画像が角丸になることがあるので、角丸で削られてもおかしくないデザインにする必要があった
  • 背景が白だと他の白背景と混ざったときに分かりづらいので、白以外の方がよかった
  • もう少し早めに作った方がよかった(9/11で作れたのに9/16に作ってる)

次からは改善したい。

告知ページの作成

お品書きなどを書いた告知ページを作った。

ただ、これももっと早く作ればよかった。
どのタイミングで作るべきなのか迷って直前の9/19とかになってしまった。

入稿した時点でお品書きは決まるので、そのタイミングでさっきの16:9の告知画像を作って、さらにそれを使って告知ページも作るというのがいいように思う。

宣伝ツイート

さっきの16:9の告知画像などを使って定期的にツイートして宣伝を行なった。

このとき問題となるのが、どの時間帯にツイートするのが効果的なのかということ。
あまり頻繁にツイートしてても邪魔なので、出来るだけ少ない回数で効率よく見られるようにしたい。

そこで9/12(木)にほぼ同じ内容のツイートを8回行い、それぞれの時間経過ごとのインプレッション数を観測してみた。

6時/8時/10時/12時/15時/18時/20時/22時にツイートして、それぞれのインプレッション数がどう変化していったのかを記録した表が以下:

時間 6時 8時 10時 12時 15時 18時 20時 22時
7時 76 - - - - - - -
8時 106 - - - - - - -
9時 135 75 - - - - - -
10時 151 100 - - - - - -
11時 160 109 89 - - - - -
12時 168 117 113 - - - - -
13時 173 123 134 96 - - - -
14時 175 129 146 112 - - - -
15時 176 132 152 119 - - - -
16時 182 137 161 129 84 - - -
17時 184 139 163 133 106 - - -
18時 186 141 165 138 119 - - -
19時 186 142 168 144 127 96 - -
20時 189 145 171 147 142 128 - -
21時 192 147 173 149 147 139 99 -
22時 195 152 176 153 151 147 121 -
23時 197 154 188 164 160 159 141 118
翌6時 204 160 194 170 171 173 157 175

ここから分かるオススメの時間帯は、

  • 6時〜7時
    朝早いのであまり見られないのかと思いきや、意外と見られていた。
    朝起きてとりあえずツイッターを開く人が多いのだろうか。
  • 10時〜11時
    みんな忙しく働いてる時間と思いきや、意外と見られていた。
    出社してとりあえず一息ついた人が見ているのだと思う。
  • 18時〜19時
    帰宅途中にツイッターを開いた人が多く見る感じか。
  • 22時〜23時
    エンジニア夜更かししすぎ説。
    みんなもっと早く寝よう・・・

逆にオススメできない時間帯は、

  • 8時〜9時
    出社中に暇つぶしにツイッター見る人が多いかなと思ったら、意外とそうではないらしい。
    ドタバタしてる人が多いんだろうか。
  • 12時〜18時
    お昼休みもあるしけっこう見られるかと思ったら、そうではなかった。
    午前中は緩く働き、午後から本気出すという人が多いのかも。
  • 20時〜21時
    けっして悪いわけではないけど、19時くらいまでに早めにツイートするか22時くらいまで遅らせてツイートした方が効果が高い。

あと、毎回同じようなツイートだと、当然だけど全然クリックされない。
(この調査の時はツイート内容自体が影響しないようにあえて同じような内容にしてた) この日以降は『Math Poker Girl』から引用したりして宣伝ツイートしたんだけど、その方が圧倒的にクリックされていた。

委託の検討

委託先の候補としてあったのはBOOTHとらのあな

最初はBOOTHの倉庫サービスがよさそうと思ってたんだけど、以下の理由からやめた:

  • 入荷に時間がかかる
    7〜16営業日かかるらしく、ちょっとそれはという感じ。
  • 管理コストが理不尽に高い
    (前月の在庫数+当月の入荷数)に対して20%以上売れなかった場合、1,000円の保管料が発生する。
    売れた場合に手数料が発生するとかなら手取りが減るだけだからいいけど、売れなかった場合に手数料が発生するのだから、下手すれば売れもしないのにお金を払い続けるという状態になってしまう。

ただ、倉庫サービスを使わないで自宅で在庫を管理し自分で梱包・発送をするのなら優秀な感じだったので、これは利用している:

あと、とらのあなの委託も手続きが簡単だったのでやっておいた。
結果的にはこれが大正解で、当日郵送するダンボール箱を1つ減らせた・・・
(3ヶ月後に売れなかった在庫は返ってくるけど)

BOOTHに比べて値段は高くなってしまってるけど、ほぼリスクなしで人の目に触れる機会を増やせるから、利用する価値は高いと思う。

DLカードの作成

書籍を購入してくれたお客さんがPDF版をダウンロード出来るようにダウンロードカードを用意した。

  1. BOOTHにダウンロードカード用の商品を用意
  2. パスワード付きのzipに圧縮したPDFを商品として置いておく
  3. 以下を印刷した名刺を購入してくれたお客さんに渡す:
    • 上記のダウンロードURL
    • そのURLのQRコード
    • zipを解凍するためのパスワード

このとき注意すべきこととして、紛らわしい文字(1とIとlとか)をパスワードに使わないということ。

そういうのを考えてランダムなパスワードを作り、さらにzip化するとか面倒だったので、Rubyでgemを作ってみた:

これをインストールして例えば

$ passzip MathPokerGirl.pdf

とかすれば、紛らわしい文字を使っていない10桁(桁数はコマンドラインオプションで変えられる)のパスワードを生成して、そのパスワードを使ってpdfをzipにしてくれる。
この場合、zipファイルはMathPokerGirl.pdf.zipとなって、MathPokerGirl.pdf.passに生成されたパスワードは書き込まれてる。
これでMakeにパスワード付きzipの生成も組み込める。

まだRubyGemsへの登録はしてないので、あとでやってみたい。


長くなったけど、これが当日までに行なった準備。
当日の振り返りはまた次回。

今日はここまで!