開発版のTesseract 4.0 alpha をためしてみる その2
前回に引き続き、開発版のTesseract 4.0alpha ネタです。大した内容はありません。
やったこと
前回の続きとして、新しいjpn.trainneddata
ファイルをバラして内容を確認してみます。
ファイルが混ざると面倒なので作業ディレクトリを2つ作ります。
$ mkdir 4.0a $ mkdir 3.04
まず新しい方のjpn.traineddata
。パスは Homebrew で開発版をインストールした場合した関係で、/usr/local/Cellar/tesseract/
配下の'HEAD-'で始まるディレクトリ(フォルダ)になります。
$ combine_tessdata -u /usr/local/Cellar/tesseract/HEAD-23e420a_2/share/tessdata/jpn.traineddata 4.0a/jpn. Wrote 4.0a/jpn.config Wrote 4.0a/jpn.unicharset Wrote 4.0a/jpn.unicharambigs Wrote 4.0a/jpn.inttemp Wrote 4.0a/jpn.pffmtable Wrote 4.0a/jpn.normproto Wrote 4.0a/jpn.punc-dawg Wrote 4.0a/jpn.word-dawg Wrote 4.0a/jpn.number-dawg Wrote 4.0a/jpn.freq-dawg Wrote 4.0a/jpn.shapetable Wrote 4.0a/jpn.params-model Wrote 4.0a/jpn.lstm Wrote 4.0a/jpn.lstm-punc-dawg Wrote 4.0a/jpn.lstm-word-dawg
以前と比較して、さりげなくファイルが増えています。
- jpn.lstm
- jpn.lstm-punc-dawg
- jpn.lstm-word-dawg
dawgというのはデータ構造の名称の方(directed acyclic word graph : DAWG)のことでで、要は辞書データです。新しいlstmエンジン用の記号(句読点、Punctuation)辞書(punc-dawg)と、単語辞書(word-dawg)かと思います。
DAWGに関する参考ページ
tesstrain.sh
および、tesstrain_utils.sh
の修正内容からすると、既存コマンドのいくつかが新しく生成するファイルをリネームしているようです。
いつの間にかlstmtraining
というコマンドが追加されていますが、このコマンドが直接呼び出されている箇所は見つけられず。
比較対象のバージョン3.04用のjpn.trainneddata
は以下の通り。
$ combine_tessdata -u ~/workspace/github_tesseract/tessdata/jpn.traineddata 3.04/jpn. Extracting tessdata components from /Users/atuyosi/workspace/github_tesseract/tessdata/jpn.traineddata Wrote 3.04/jpn.config Wrote 3.04/jpn.unicharset Wrote 3.04/jpn.unicharambigs Wrote 3.04/jpn.inttemp Wrote 3.04/jpn.pffmtable Wrote 3.04/jpn.normproto Wrote 3.04/jpn.punc-dawg Wrote 3.04/jpn.word-dawg Wrote 3.04/jpn.number-dawg Wrote 3.04/jpn.freq-dawg Wrote 3.04/jpn.shapetable Wrote 3.04/jpn.params-model
md5チェックサムを比較すると新しく増えたファイル以外は全く同一でした。langdataリポジトリにはまだ更新はないみたいなので妥当といえば妥当です。
ついでなのでjpn.lstm-word-dawg
を元のテキストに戻してみます。下記のコマンドでtemp.txt
にdawg形式に変換される前の状態に戻せるはず。
$ dawg2wordlist 4.0a/jpn.unicharset 4.0a/jpn.lstm-word-dawg temp.txt Loading word list from 4.0a/jpn.lstm-word-dawg Reading squished dawg Word list loaded.
中身を見ると理解不能な単語の羅列になっているようです。
$ wc -l temp.txt 110077 temp.txt
先頭だけ抜粋。正直、何これというのが感想。
$ head -n 10 temp.txt ワ ワマ ワマ想プ ワマ想プナク燻ーア ワマ想プナク燻ーア信 ワマ想プナク燻ーアな ワマ想プKク燻ーア ワマ想プケク燻ーア ワマ想プれマ ワマ想想|ナ
単語辞書をニューラルネットワークで自動生成したのでしょうかね? それともn-gram データから文字列生成したとか?
[2016/12/04 追記]
上記の件はバグかも。あるいは新しいエンジンは単語辞書を必要としないのか。
jpn.unicharset
というファイルじゃなくて、専用のファイルがいるのか云々というのがIssueの内容。
まあ要調査ということで。
追記
OCRエンジンの再学習(トレーニング)について、公式Wiki に情報が記載されています*1。
ざっくりいうと、以下のような感じ。
- 学習プロセスの基本的な流れは同じだが、細部で変化している
- 以前より遥かに時間がかかる
- 完全に再学習させなくても良くなった
- どこまで再学習させるかによって、いくつかの方法を選べる
- これまでとは違い、非常に時間のかかるプロセスが存在するので完全に再学習プロセスを自動化できない
完全に再学習させない場合については以前より便利になると考えて良さそう。例えば書体の追加だけ、とか。
ざっと見たところ、変更点は以下。
- 従来の
.tr
ファイルに変わり、.lstmf
というファイルを修正する .box
ファイル(学習用の画像の、文字の位置と幅・高さ情報を記録したファイル)の書式の簡略化(行についての情報だけいいと書いてある)- これまでと異なり、同一画像内に複数のフォントが混在していても問題ない
- クラスタ化ステップ(mftraining、cntraining, shapeclustering)に
lstmtraining
が使用される(と、書いてある) - たとえ新しいOCRエンジンしか使わないとしても、
combine_tessdata
コマンドは従来式のOCRエンジン用のファイルを要求する*2
新しいjpn.traineddata
ファイルが追加されたファイルを除いて以前とほとんど同じなのは、結局、追加されたファイル以外は従来式のOCRエンジン用ということで良さそう。
上記のWikiを見る限りjpn.lstm-number-dawg
ファイルが存在してもおかしくないはずだけど、そもそも生成元のファイルが空だったような気がするので当然か。
まとめ
ひとまずファイルが増えているということまでは確認しました。
それとlstmtraining
という思わせぶりなコマンドが追加されているようです。
以上です。
開発版のTesseract 4.0 alphaをためしてみる(macOS)
この記事は開発中のアルファ版を対象にしてます。その点には十分注意してください。要するに自己責任でどうぞって話です*1。
微妙に出遅れている感じがありますが……。
11月中旬ごろからメイン開発者のRay Smith氏によるバージョン 4.x のコードがgithubにコミットされています。
2、3日前からで各言語のXXX.traineddata
ファイルもアップロードされており*2ひとまず試せる状態。
まだ全ての言語が出揃っていませんが、英語などの主要言語はアップロードされているようです。
日本語用の言語別のデータもアップロードされています。
正式リリースがいつになるのかは不透明ですが、バージョン4.x の最大の特徴は今流行りのニューラルネットワーク技術の採用とのことです。 要するに深層学習とか強化学習とか言ってるアレ。
Long short-term memory(LSTM)による新認識エンジン*3。
参考:4.0 with LSTM · tesseract-ocr/tesseract Wiki · GitHub
Ray Smithの講演資料:docs/das_tutorial2016 at master · tesseract-ocr/docs · GitHub
そもそもLSTM自体の仕組みがよくわかっていないので、OCR処理のどの部分にどういう形で組み込まれているのかはよくわかりません。
もう一つの新機能はTSV出力。地味だけど表形式のデータを読み取る場合には便利なはず。一応3.05ブランチ*4で入った新機能。
ただし、3.05というバージョンは今のところリリースされていません。されるかどうかは不明です。
macOS へのインストール
横着ですがHomebrew でインストールします。ビルドツールとして今までのautoconf
とは別にcmake
も使えるようです。
依存ライブラリとしてOpenMPが必要になっています。そのため何も考えずに開発版をインストールしようとすると余裕で失敗します。
$ brew install tesseract --HEAD --with-training-tools <skip> lstm.cpp:22:10: fatal error: 'omp.h' file not found #include <omp.h> ^ 1 error generated. make[2]: *** [lstm.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... <skip>
ヘッダファイルが見つからないというエラーですが、そもそもmacOS 付属のllvmはOpenMPに対応していないようです。
対処法は、ビルド用のコンパイラとしてgcc
をインストールするか、llvm
の最新版をインストールするか、です*5。
Homebrew で使用するコンパイラを切り替える最も簡単な方法として、--cc
オプションにコンパイラのパッケージ名を指定する方法を利用します。
パッケージ名としてllvm
を指定しても受け付けてくれないのでgcc6
をインストールしました。本来であれば、brew edit tesseract
するか、横着せずにgit clone
してビルドする方が望ましいはずですが、面倒なので……。
$ brew install homebrew/versions/gcc6
非常に時間がかかります。泣きたくなります。バージョン番号なしのgcc
パッケージの場合、brew
コマンド側がパッケージ名として認識しないので苦肉の策です。
依存ライブラリだけHomebrewでインストールして、コンパイラは環境変数(CC
とかCXX
)で切り替える方が短時間で済んだような気もします。
さて本命。
$ brew install tesseract --HEAD --with-training-tools --cc=gcc-6
ビルドにさほど時間はかからないはずですが、--HEAD
を指定すると各言語用のデータを全部ダウンロードする*6のでそれなりに時間がかかります。
バージョンの確認
お約束。
$ tesseract -v tesseract 4.00.00alpha leptonica-1.73 libjpeg 8d : libpng 1.6.26 : libtiff 4.0.7 : zlib 1.2.8
やたらゼロの数が多い。
オプションを眺めてみる。
$ tesseract -h Usage: tesseract --help | --help-psm | --help-oem | --version tesseract --list-langs [--tessdata-dir PATH] tesseract --print-parameters [options...] [configfile...] tesseract imagename|stdin outputbase|stdout [options...] [configfile...] OCR options: --tessdata-dir PATH Specify the location of tessdata path. --user-words PATH Specify the location of user words file. --user-patterns PATH Specify the location of user patterns file. -l LANG[+LANG] Specify language(s) used for OCR. -c VAR=VALUE Set value for config variables. Multiple -c arguments are allowed. -psm NUM Specify page segmentation mode. -oem NUM Specify OCR Engine mode. NOTE: These options must occur before any configfile. Page segmentation modes: 0 Orientation and script detection (OSD) only. 1 Automatic page segmentation with OSD. 2 Automatic page segmentation, but no OSD, or OCR. 3 Fully automatic page segmentation, but no OSD. (Default) 4 Assume a single column of text of variable sizes. 5 Assume a single uniform block of vertically aligned text. 6 Assume a single uniform block of text. 7 Treat the image as a single text line. 8 Treat the image as a single word. 9 Treat the image as a single word in a circle. 10 Treat the image as a single character. 11 Sparse text. Find as much text as possible in no particular order. 12 Sparse text with OSD. 13 Raw line. Treat the image as a single text line, bypassing hacks that are Tesseract-specific. OCR Engine modes: 0 Original Tesseract only. 1 Cube only. 2 Tesseract + cube. 3 Default, based on what is available. 4 Neural nets (LSTM) only. Single options: -h, --help Show this help message. --help-psm Show page segmentation modes. --help-oem Show OCR Engine modes. -v, --version Show version information. --list-langs List available languages for tesseract engine. --print-parameters Print tesseract parameters to stdout.
Page segmentation mode(psm)として11、12、13が追加されています。11と12は以前から存在したみたいです(ドキュメント未記載の隠しオプション扱い)。Sparse text と言われてもピンと来ませんが、文字(文章)がページ内に散らばっているイメージだと思います*7。
特筆すべきは-oem
オプションの方。
$ tesseract --help-oem OCR Engine modes: 0 Original Tesseract only. 1 Cube only. 2 Tesseract + cube. 3 Default, based on what is available. 4 Neural nets (LSTM) only.
ただし、Cubeエンジンは日本語非対応です。Cubeエンジンは将来廃止するという話だったはずですが、どうなるのかはわかりません。
お試し
まだアルファ版なので旧バージョンとの比較は先送りにします。
画像は過去記事から流用。
その1
その2
従来の認識エンジン
$ tesseract -oem 0 -psm 6 -l jpn image.jpg default_output Tesseract Open Source OCR Engine v4.00.00alpha with Leptonica
最後の引数は出力ファイルの接頭辞です。この記事を書いている最中に思い出しましたが、ファイル名の接頭辞を指定する代わりにstdout
を指定すると標準出力に結果を出力してくれます……。
なお、設定を切り替えたい場合はコマンドライン引数の最後に指定できます(ドキュメント参照)。
$ cat default_output.txt こ れは 日本語の文章です。 随 ヽろ はに ほへ と
まあ、平常運転です。サボらずに画像を拡大すべきです。-psm
は6ではなくて7
の方がベターかも。
その2
$ tesseract -oem 0 -psm 6 -l jpn image2.jpg default_output2 Tesseract Open Source OCR Engine v4.00.00alpha with Leptonica
$ cat default_output2.txt オープンソースの光学文字認識ライブラリを試してみます。 ) Tesseractー〇CR は600gーeの資金援助宣受けてゝ開発されてしヽるりししヽです。 英数字の認識率は97%とか。漢字や平仮名はどっでしよつか。
画像を拡大すればもっと良くなったはず。
新しい認識エンジン
$ tesseract -oem 4 -psm 6 -l jpn image.jpg lstm_output Tesseract Open Source OCR Engine v4.00.00alpha with Leptonica Warning in pixWriteMemPng: work-around: writing to a temp file Warning in pixReadMemPng: work-around: writing to a temp file
警告メッセージから見ると、一時ファイルに書き出して読み込んでる?
結果その1
$cat lstm_output.txt これ は 日本 語 の 文章 で す 。 いろは に ほ へ と
結果その2
$ tesseract -oem 4 -psm 6 -l jpn image2.jpg lstm_output2 Tesseract Open Source OCR Engine v4.00.00alpha with Leptonica Warning in pixWriteMemPng: work-around: writing to a temp file Warning in pixReadMemPng: work-around: writing to a temp file Warning in pixWriteMemPng: work-around: writing to a temp file Warning in pixReadMemPng: work-around: writing to a temp file Warning in pixWriteMemPng: work-around: writing to a temp file Warning in pixReadMemPng: work-around: writing to a temp file
認識対象の行数が増えると警告メッセージの行数も増えるの?
$ cat lstm_output2.txt オープン ソ ー ス の 光 学 文 字 認 識 ラ イブ ラ リ を 試し て み ま す 。 。 _ TesseractLOCR は Google の 賄 金 援 助 を 受 け て 開発 され て いる ら し いで す 。 英 数 字 の 認 識 率 は 9700 と か 。 漆 字 や 平仮名 は どう で しょ うか 。
文字間のスペースが気になりますが、許容範囲でしょう。2行目は格段に良くなっているように見えます。3行目は"%"と”漢”を ミスってます。
いままでイマイチだった日本語中の英単語の認識率が改善しているかも。
警告メッセージが気になりますが、認識率自体は改善しそうです。
せっかくなので画像を拡大してみます。
$ convert -geometry 120% image.jpg image2_large.jpg $ tesseract -oem 4 -psm 6 -l jpn image2_large.jpg lstm_output2 Tesseract Open Source OCR Engine v4.00.00alpha with Leptonica Warning in pixWriteMemPng: work-around: writing to a temp file Warning in pixReadMemPng: work-around: writing to a temp file Warning in pixWriteMemPng: work-around: writing to a temp file Warning in pixReadMemPng: work-around: writing to a temp file Warning in pixWriteMemPng: work-around: writing to a temp file Warning in pixReadMemPng: work-around: writing to a temp file
さて、結果はどうか。
$ cat lstm_output3.txt オ ー プ ブ プ ブン ソース の 光 学 文字 認識 ラ イ ブラ リ を 試し て み ます 。 。 __ TesseracrOCR は Google の 賞 金 援 助 を 受 け て 開発 され て いる らし い です 。 英 数字 の 認識 率 は 979%% と か 。 漢 字 や 平仮名 は ど う でしょ うか 。
1行目と3行目が不思議な出力になっています……。Google 翻訳も謎の文字列の繰り返しを出力するケースがあるので同じようなもの?
他にも試したいことはありますが、ひとまずここまで。
追記
tesseract
コマンドのオプション形式が変化するようです。
当面は 従来と同じ形式も使用できるようですが、今後は-psm
(ハイフンは1つ)から--psm
(ハイフンは2つ)になるようです。
一般的なGNUのコマンドと形式を合わせましょう、という変更です。影響の大きい変更はメジャーバージョンアップの時にやった方がいいよねとかなんとか。
まとめ
新しいOCRエンジンはこれまでよりは期待できるのではないでしょうか。
Google group のやり取りを読む限りでは従来の認識エンジンをどうするか、とか、メジャー番号が上がるついでに互換性のない変更を入れようとか色々と議論がされいます。
バージョン 4.0の前に3.05 をリリースするとかしないとか。
個人的にはTSVファイル出力機能だけでいいので3.05がリリースされる方がいいと思っています。
githubのwikiにはSSE命令がどうのこうのという記述があるのでiOS用のライブラリへの移植は時間がかかりそうな雰囲気。
かなり適当なエントリになってますが以上です。
ConoHa から Vultr のVPS に移行したので簡単な紹介
Vultr のVPSに移行完了したので簡単な紹介。
海外VPS勢の中ではちょっとマイナーなようですが、なかなか良いVPSです。
- 概要など
- 特長
- 各種設定
- 制限など
- 感想
- 紹介とかクーポン
- 公式の期限付きクーポン
概要など
- KVMベースのVPSサービスで100% SSD。競合他社のVPSより高パフォーマンスというのが売り文句(と、主張している)。
特長
- 時間あたり or 月額単位の課金
- 支払いにクレジットカード、PayPal、ビットコインが使える(デポジット式)
- 北米を筆頭に15のロケーションから選べる(東京リージョン提供中)
- 通常のインスタンスとは別にストレージ用インスタンス(Storage Instance)と専有型のインスタンス("Dedicated Instance")
- 一部のロケーション限定であるが、DDoS対策サービスを提供している(東京は対象外)
- サポートからのレスポンスがとても速い
- 一応、APIも提供されている
ストレージ用インスタンスはCPUコア数、メモリ容量よりメインのストレージの容量が欲しいケース向けのもの。ただし、ストレージ用と専有型のインスタンスはリージョンによっては売り切れ中。
サポートからのレスポンスの速さは圧倒的。
古い紹介記事だと東京を選ぶとネットワーク転送量が200MBとか400MBとか書かれていますが、現時点では一番安いタイプのインスタンスで月間1,000GBになっています。
また、ネットワーク転送量はinbound かoutbound の多い方が適用されるとのこと(Vultrの1ヶ月の基準は672時間)。
他にもKVMのスナップショットをアップロードしてOSイメージの代わりにできる模様。
続きを読むVultr における Ubuntu 16.04 Server の設定メモ
VPS をConoha からVultrに移行したので備忘録。
一般的なUbuntu の設定については省略しています。
ConoHa では不要だった作業のみ。
作業内容など
VPS上で稼働しているという点を除けばただのUbuntuです。(記憶違いでなければ)さくらインターネットのVPSなどは初期設定に修正が入っていたようですが、そういうお節介は無いようです。Vultr から提供されているOSイメージを使う場合の注意点を以下の通り。
よって上記2点のみ作業手順を記録しておきます。
なお、初期状態でOP25BによりSMTPポートからの通信がブロックされているのでサポートに解除を依頼し、VPSの管理画面から対象のサーバーを再起動する必要があります。
Ubuntu の設定としては過去記事を参照。
どこのVPSを使うにしてもファイアーウォール(UFW
or iptables )とssh
、メールの転送設定は最低限必要だろうと思います。
Swap (swapfile) の設定
自分でISOイメージをアップロードしてOSをインストールした場合を除き、swapパーティションが作成されていません。また仮想ディスクに空き領域もないのでSwapパーティションの代わりにswapfileを作成、有効化します。
最も安いプランで768MBあるので以外にSwapなしでもいけそうに思えますが、用途によってはメモリを割り当てられなかった("cannot allocate memory")というエラーでプログラムのビルドや実行に失敗することがあります。設定しておいて損はないはずです。
基本的に公式サイトのドキュメントにしたがあって作業すれば問題なし。
Setup Swap File on Linux - Vultr.com
作業前の状態では、free
コマンドの出力を見てもSwap のトータルの容量はゼロのはず。
$ free -m total used free shared buff/cache available Mem: 740 483 54 10 202 117 Swap: 0 0 0
dd
コマンドでディスクファイルを作成し、一般ユーザーが読み書きできないようにパーミッションを設定。
dd if=/dev/zero of=/swapfile count=2048 bs=1M 2048+0 records in 2048+0 records out 2147483648 bytes (2.1 GB, 2.0 GiB) copied, 17.1776 s, 125 MB/s $ sudo chmod 600 /swapfile $ ls -lh /swapfile -rw------- 1 root root 2.0G Nov 7 05:56 /swapfile
mkswap
コマンドでswapパーティションとしてフォーマット。
$ sudo mkswap /swapfile Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=67eaf63b-e876-4528-b4dd-8bf4b910ea3d
swapon
コマンドで有効化。
$ sudo swapon /swapfile
状態を確認。
$ free -m total used free shared buff/cache available Mem: 740 484 53 10 202 115 Swap: 2047 0 2047
問題がなければ再起動後もSwapを有効にするために/etc/fstab
をに設定を追加。
/swapfile none swap sw 0 0
タイムゾーンの設定
別に設定しなくてもログに表示される時刻が日本時間と9時間ずれるだけす。
サーバー側のアクセスログと、Google Analytics の時間がずれたり不便なので設定しておきます。手順はsystemd
環境における設定手順と同じ。
まず現状確認から。
timedatectl
コマンドのstatus
を使うことで現在の状態を確認。
$ timedatectl status Local time: Sun 2016-11-20 11:55:29 UTC Universal time: Sun 2016-11-20 11:55:29 UTC RTC time: Sun 2016-11-20 11:55:29 Time zone: Etc/UTC (UTC, +0000) Network time on: yes NTP synchronized: yes RTC in local TZ: no
設定可能なタイムゾーンはtimedatectl list-timezones
で確認できます。ただし、全体で422、アジアだけでも80のタイムゾーンがあります。日本の時間に合わせるのであれば、"Asia/Tokyo"にすればOKです。
grep
で絞り込みをかけてやると、以下の通り。
$ timedatectl list-timezones | grep Tokyo Asia/Tokyo
素直に設定します。
$ sudo timedatectl set-timezone Asia/Tokyo
設定の確認
timedatectl status Local time: Sun 2016-11-20 21:28:35 JST Universal time: Sun 2016-11-20 12:28:35 UTC RTC time: Sun 2016-11-20 12:28:35 Time zone: Asia/Tokyo (JST, +0900) Network time on: yes NTP synchronized: yes RTC in local TZ: no
その2
$ date Sun Nov 20 21:29:27 JST 2016
手元の時計と一致していれば問題なし。
何かと批判の多いsystemd
ですが、こういった基本設定に関して手順がが共通化されたという点はsystemd
のメリットです。
そのほか
初期設定のNTPサーバーが海外のサーバーになっていますが実害はなさそうなので放置しています。
書評:『自作ゲーライフ: 個人スマフォゲームアプリのマネタイズ本』
購入して一気読みしたので簡単にレビューしておきます。
- メディア:
- この商品を含むブログを見る
はてなの商品リンクが機能してないようです。商品名に記号が入るとダメなのか……。
概要
Kindle Unlimited の対象にもなってますね*1。
Kindle の表示だと1742センテンス、紙媒体換算で200ページだそうなので比較的すぐ読めるボリュームです。
対象読者としては、
- 「ゲームアプリだけ作って暮らしたい!」人
- 「暮らせてるけど、もっといける気がする!」人
専業から兼業、学生その他、未経験まで含む。ただし最低限の用語を知らないと辛いかも。
書籍のテーマは マネタイズ(収益最大化)に関するネタ一般。
書いている方は個人向けゲームアプリ開発者としてはかなりすごいらしい。ゲームしない人間からしたらよく分からない。
難点を挙げるとするなら文章ばっかりやや単調な点。大まかな内容ごとにパートⅠとかパートⅡで分割するとか、あるいは適当な画像(ランキングのキャプチャ画像とか)でも入れると良かったのでは*2。
面白いと思ったネタ
- 意外と簡単なサーバー側の構成(というかまさかの……)
- 飲んでいるサプリ
- 食事の話
- チート被害と対策
まさかアプリ関連のノウハウ本でサプリや食事の話が出てくるとは思わなかった。それと、あまり難しく考えない方がいいのかな、と思った。
そもそも個人の作ったアプリがヒットしないぐらいで「爆死」っていうのか、とか「サーバー炎上」などあまり聞かない言い回しが気になった。
ゲームアプリ業界はかなりカオスなんだろうという印象。
サーバー炎上って、要するにC10K問題じゃないのかな。
健康関係
①マルチビタミン剤・・・サプリメントの基本。Nature Made スーパーマルチビタミン&ミネラル。手始めにこれだけでも感。
②植物系錠剤・・・クロレラやスピルリナ。野菜不足補強。座り作業は●●●命
③エビオス錠・・・消化促進だけでなく栄養補給とも思ってます(笑)。座り作業は●●●命
④養命酒・・・座り作業で足元の体温下がりがちなので、冬場は重宝。ジンジャーハイボールも相当体が温まる。ただしアルコールは飲みすぎると眠くなるので注意。
(後略)
「●●●」の部分はあえて伏せておきました。伏せるほどでもないですが、食事の前後に避けたい単語です。お察しください。
『座り作業は〜』というのはなかなかインパクトのある一文。クロレラ、スピルリナ、エビオス……。
『座り作業は〜』の文が2回出てくるのはよほど重要なのでしょう。
クロレラとスピルリナのコンボは鉄分過剰が心配ですが、大丈夫なんでしょう、きっと*4。
- 出版社/メーカー: 養命酒製造
- 発売日: 2007/09/17
- メディア: ヘルスケア&ケア用品
- 購入: 1人 クリック: 26回
- この商品を含むブログ (13件) を見る
かなり年齢層が上の世代のイメージなんですが。
養命酒ってものすごく久しぶりに聞きましたよ。昔親が飲んでた時期があったかな。アルコールは飲まない主義なんでさすがにパスです。
養命酒、中身は変わっていないそうですが、キャッチコピー(キャッチフレーズ?)は年々変化してるらしいです。なんの本だったかマーケティング上の理由だとかなんとか。
食事関係
他人の食生活についてはあまり話題にならなそうなので貴重なんではないでしょうか。
『37. どんな食事を食べるの?』より引用。
もちろん高給半額弁当や半額の刺身狙いです・・!(笑)
閉店間際のスーパーに行くといかにもな人たちを沢山見かけます。
主に炭水化物+卵&肉野菜という組み合わせが言及されています。私も炭水化物に偏るとまずいので卵は割と意識して取るようにしています。
チート対策
被害額もかなりショッキングですが、それ以上にチート対策が面白い。
『44. チートの被害総額と、チート対策について』より。
「本人以外のランキングから見えないようにする」
・・・つまりサーバー側から亜空間に葬る処理をしています。
某忍者漫画の神威、ですね。こんなところにすごい写輪眼(笑)の使い手が……。
モチベーション対策など
手塚治虫氏などの事例を筆頭に、最初はみんな鳴かず飛ばずだったという事例がいくつか紹介されてる。
『51. 爆死にはどう対応すれば良いですか?』より 。
(前略)ちゃんと作ったアプリを100本ぐらい出すまでは、あきらめるには早すぎると思います。
こういう文章を読むと救われるというか、どこかへ消えたやる気が戻ってくる感じがします。ある意味で「ふっかつのじゅもん」。いやザオリクか。
一万時間の訓練とかいうのもあるので100は無理でも10ぐらいは頑張りましょうか。
……耳鳴りを何とかしてからね。
まとめ
ゲームアプリ作者じゃなくても有益な本です。結局銀の弾丸というか、これだけやればいいというメソッドはなくて、コツコツといろんな施策を積み上げるしかないということだと思います。
……ついでいうと労働という魔王から逃げられない。
逆に言えば、特別な才能がなくても*5データを見ながら試行錯誤、トライアンドエラーの積み重ねでもある程度の収益までは十分狙える、と。
食事はともかくサプリメントについては考慮しようかと検討中。運動については言及されてないですが大丈夫なんでしょうかね((他人のことはとやかく言えないですが。
特に後半のトピックはやる気が消えそうなときに読み返すようにしたいと思います。
適当な書評になってますが、細かい部分を取り上げるときりがないのでこの辺で。
それではでは。