はてなブログpro、(課金期間が)停止。
課金した分、もとは取れたけど……。なんかいまいちイラつくというか、微妙。
年契約とか面倒なこと言わずに月額500円なら払うんだけど、その「途中解約受け付けませんでぇ〜」ってのがなんとなく嫌。
トップページの一覧表示は魅力的なんだけど、そもそもこのブログ基本的にアクセスは検索流入なので……。
メールの文面を見てまた使おうという感じがしなかった。一瞬、「はてなブログ停止のお知らせ」に見えてびっくりした。
有料機能の提供終了、とか書きぶりがあるだろうと。
この素っ気無い感じ、京都っぽいといえばそうなんだけど、本社東京でしょ……。
そういう変なところで京都アピールされても困るよ。商売下手だね……。
不満点メモ
- プレビュー表示が遅い。たとえ光回線でも遅い。
- まれにAmazon商品紹介機能で商品が表示されない
- 編集ページの各種検索ボックスにクリアボタンがない
- 過去記事の一括メンテナンス手段が提供されていない
- 新規記事の作成時に、タイトルを入力しようとしているのに強制的に本文の入力エリアにカーソルが飛ぶ
- アクセス解析が微妙
- テーマを変えるとカスタマイズのCSSがリセットされてめんどい
- ログインしないと「はてなスター」が押せない
「いいね」ボタンの延長線として、「Anonymousはてなスター」はあってもいいと思う。
他にもあるけど最大の不満はカスタマイズまわりの機能強化が遅い。ブログのカスタマイズネタが大人気ってのはちょっとどうかと思う。
所感
Adsense の広告設置制限数が緩和されたので無理に有料プランにする必要がない。 やろうと思えばクリックされやすい位置に自分の広告がくるようにできるし。
独自ドメインを使えるかというのは魅力的だけど現状使ってないし。
そもそもNetlify+静的ページジェネレーターでも独自ドメインは使える。
SEOに強いのはすごいことなんだけど、それでも決定打にかける。
そのうち何食わぬ顔でまた課金するかもしれないけど、とりあえず無料プランにしておきます。
Tesseract OCR 近況(2018/06)
オープンソースのOCRエンジン(正確に言うとOCR用のライブラリ)、Tesseract OCRの開発状況ウォッチング、です。
しばらくメーリングリスト、GitHubのリポジトリからの通知をチェックできていなかった時期があるので見落としがあるかも。
2017年秋ごろに下書きして、途中で興味が他の方向に行ったりして放置しているうちに半年以上経っていたという。
今年の3月頃、「5月中にバージョン4.00をリリースしたい」という話が出ていた……。
3.0x系
バグフィックスリリースとしてバージョン 3.05.2 がリリース。
ビルド絡みのバグのほか、4.00系のブランチからのバックポートなど。大きなバグ修正としては以前から存在した変数のオーバーフローの県の原因が判明・修正されている。
- Training error "Couldn't find a matching blob" - Google グループ
- Fixed integer overflow error · tesseract-ocr/tesseract@bc5dfc4
バージョン 4.0系
過去記事にも書いたようにディープラーニングによるOCRエンジン搭載。ニューラルネットワークを採用した関係で、新しい文字の追加やフォントの再学習手順が様変わりした。また、各言語用のデータについてもバリエーションが多様化している(後述)。
Ubuntu 18.04 LTSでbeta.1(GitHub側のタグはbeta.2) というバージョンが採用された。GitHubのリリースページではbeta.3とbeta.2が存在している(beta.3のほうが新しい……)。
Release 4.0.0-beta.2 · tesseract-ocr/tesseract · GitHub
いまのところ旧式の認識エンジンは残っているけどいわゆるcubeエンジンは除去された*1。
リリース向けの課題などの議論は以下。
RFC: Tesseract 4.0.0 – open tasks · Issue #1423 · tesseract-ocr/tesseract · GitHub
バージョン4.0系の注意点と新しい言語別データ
ocrpy由来のLSTMベースのニューラルネットワークによる認識エンジンが採用されている。
その関係でフォントの識別機能など、一部の機能はなくなっている。特に認識対象文字を指定・除外する機能は動作しない。
認識エンジンの変更に合わせて各言語別のデータも様変わりしている。詳細はWikiを参照。
ざっくりと紹介しておくと、
tesseract-ocr/tessdata
→旧式の認識エンジン用データを含むデータ(integerized? されたtessdata_best + 3.0x 用データ)tesseract-ocr/tessdata_fast: Fast integer versions of trained models
→新しい認識エンジン専用データ(速度重視、旧式のOCRエンジン用のデータを含まず)tesseract-ocr/tessdata_best: Best (most accurate) trained LSTM models.
→新しい認識エンジン専用データ(認識精度重視、旧式のOCRエンジン用のデータを含まず)tesseract-ocr/tessdata at 3.04.00
→3.05系用のデータ(githubリポジトリのタグで切り替え)
fastとbestの違いはニューラルネットワーク(LSTM)の学習時の重みの精度(integer/float)という話だったはず。
参照:fast vs. best · Issue #1404 · tesseract-ocr/tesseract
現状、基本的にHomebrew の--HEAD
オプションとかUbuntu or Debianでパッケージとして提供されているのはtessdata_fast
の方。
メインのtessdataリポジトリ直下のデータは旧式のOCRエンジン向けのデータを含んでいる。
バージョン4.0系のtesseractコマンドの、--oem 0
という旧式のOCRエンジンを利用するモードを使えるのはtessdata
リポジトリにあるデータを使う場合のみ。
書字系(script)別データについて
各リポジトリ配下にscript
というサブディレクトリがあり、書字系別?の学習データが提供されるようになった。日本語の場合は"Japanese.traineddata"。
詳細はtessdata_fastの(README.md](https://github.com/tesseract-ocr/tessdata_fast/blob/master/README.md)の説明を参照。
"Japanese.traineddata"の場合は日本語と英語の学習用テキストを混在した状態で学習させた代物ということらしい。
"Latin.traineddata"の場合はベトナム語を除くラテン文字系言語全部、とのこと。
書字系という用語については専門ではないので勘違いしているかも。
参考:書字系
日本語に関係するのは"jpn.traineddata"と"jpn_vert.traineddata"。文字の方向の判定に"osd.traineddata"(これはいまのところ旧バージョンと同じものを使う)。
"tesseract -l jpn"のように指定すると、縦書き用のjpn_vert
も読み込まれる。横書きだけの場合はtesseract -l jpn-jpn_vert
とするか、tessdataファイルに含まれるconfigを取り出して書き換える。
Linux系ディストリビューションではtesseract-ocr-XXXと、tesseract-ocr-script-XXXXのように言語別のデータがパッケージ化されている。
なお、tesseract
コマンド、libtesseract
ともにtessdataディレクトリ直下にあるファイルしか参照しないので使用する際はリンクを貼るか、ファイルの移動が必要。
Japanese.traineddataを使う場合の注意点
[2018/07/24 追記]
出力結果に余計な空白が含まれる問題の対処方法。
jpn.traineddata
で修正されている問題が反映されていないので-c
オプションでパラメータをセットする。
$ tesseract -l Japanese -c preserve_interword_spaces=1 sample.jpg stdout
LSTMベースの認識エンジンの学習について
[2018/09/04 追記]
新しい学習用データのリポジトリが公開されています。
[追記ここまで]
以前の画像とBoxファイルではなく、テキストデータから自動的にデータを生成して行単位で学習するように変更。
まだいろいろと変更が入っているのでWikiの最新情報を参照。
以前と違って一定の認識率に到達するまで学習を繰り返すか、一定の回数学習を繰り返すかを選ぶ方式になったので終了時間が予測できない。
詳細:TrainingTesseract 4.00 · tesseract-ocr/tesseract Wiki
また、学習の仕方も3通りに増えている。
- 完全新規作成(Training From Scratch)
- fine tune : 既存のデータの改善 or 文字の追加・削除
- Training Just a Few Layers : 新しい書体を学習させたいとき
学習ツール自体が不安定だったので試していないのでなんとも言えない。ただ、メインの開発者のRay Smith氏が学習に使用している学習用テキストとフォントのリストを公開していないので公式データと同じものを作成することはできない。
なお、"osd.traineddata"と"equ.traineddata"については以前から作成方法は公開されていない(いまのところ3.0x/4.xともに共通)。
再学習させるための必要な情報がすべて提供されているかは試していないので不明。
どういうことかというと、langdataリポジトリにあるファイルが更新されていない……。
従来式の画像とboxファイルからの学習
以前は文字単位でできない訳ではない、らしい。
GitHub - OCR-D/ocrd-train: Train tesseract 4 with make
マルチスレッド
4.x はデフォルトで4スレッド。
- 関連:Performance Improvement (./configure --disable-openmp has no effect) · Issue #1317 · tesseract-ocr/tesseract · GitHub
- 参考:Issues · tesseract-ocr/tesseract · GitHub
ABI 変更状況
https://abi-laboratory.pro/tracker/timeline/tesseract/abi-laboratory.pro
ときどきGoogle groupsで話題になる。
ここ最近の新しい動きなど
セマンティックバージョンニングに移行中。
参照:Switch to semantic versioning by egorpugin · Pull Request #593 · tesseract-ocr/tesseract · GitHub
関連するリポジトリが増えている。テスト用データが公開されたり、いつのまにかDockerイメージが提供されるようになっている。また、言語別のデータファイルをダウンロードするためのPythonスクリプトも登場した。
Docker
公式Wikiにリンクがあるというだけで開発チームが提供しているわけではないっぽい。
4.0 Docker Containers · tesseract-ocr/tesseract Wiki
テストデータ
tesseract-ocr/test: Repository for tesseract testing
リポジトリが分離されて、tesseract のメインリポジトリからsubmoduleとして参照されるように。
Tesseract tessdata downloader
Githubから効率よくtessdataデータファイルをダウンロードできる。
git clone
だと全言語一括で非常によろしくなかった(--depth=1
オプションを使えばマシになるとはいえ……)。
参考:git で shallow clone - Qiita
4.0系ベータのバイナリ
まだベータ版だということに注意。
公式開発チームとしてバイナリは配布していない。
Ubuntu
Ubuntu 18.04は4.00beta.1というパッケージが採用されている。またDebianの開発版はGitHubのパッケージを追いかけているっぽい。
Ubuntu 16.04
それなりに定期更新されている。
Debian ()
experimental 扱いのパッケージがある。
macOS
基本的にHomebrew で--HEAD
オプションを付ければ4.0系のベータ(というかGItHubの最新版)。
$ brew install tesseract --HEAD
macOS環境でソースからインストールする場合は下記を参考に(特にデバッグ用ツールが必要な場合)。
Windows
一応ビルド済みのバイナリは配布されている。ソースからのインストールは鬼門。そもそも、Microsoft謹製のOCRエンジンを使う方がいいのでは?
以下はMannheim Universityの図書館*2によるWindowsバイナリ。
あとはCygwinとか。あるいはVietOCRに付属のバイナリを抜き取るという方法もある。
そのほか
日本語に関連するissue
- Characters being reused for multiple "words" in vertical Japanese text in some situations with LSTM "best" models · Issue #1117 · tesseract-ocr/tesseract
- tesseract add similar characters in Japanese text (ambiguity management?) · Issue #1063 · tesseract-ocr/tesseract
日本語固有って感じでない。
デバッグ関連
以下、コメント欄にデバッグ用のログに関する話が出ている。
- LSTM: Words dropped during recognition · Issue #681 · tesseract-ocr/tesseract · GitHub
- Tesseract segmentation fault when using Arabic and English · Issue #1275 · tesseract-ocr/tesseract · GitHub
- text2image: some punctuation in vertical text isn't being rendered correctly · Issue #1284 · tesseract-ocr/tesseract
ログファイルにオプションを書いて、tesseract
コマンドの最後の引数に指定する。
まとめ
開発者ではない1ユーザーとしてはこんなもんでしょう。書きぶりが雑ですが。
ちゃんと比較していませんがバージョン4.0系は日本語も結構良いです。特に英数混在は改善しているはず*3。
まだベータ版ですがバグ報告しないと改善されないのがOSS。明らかにあおかしな挙動、うまく認識できないケースはうまくいかない画像とセットで報告するとベターです。
英語でメール書くのはめんどうだったり、画像の著作権とかいろいろありますが……。
書評:『達人に学ぶDB設計 徹底指南書』
[2018/09/27 追記]
改訂版が出るそうです。
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ
- 作者: ミック
- 出版社/メーカー: 翔泳社
- 発売日: 2018/10/11
- メディア: 単行本
- この商品を含むブログを見る
以下は旧版についてのレビューです。
[追記ここまで]
ざっくりですが一通り読んだので簡単にレビュー。
概要
達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ
- 作者: ミック
- 出版社/メーカー: 翔泳社
- 発売日: 2012/03/16
- メディア: 単行本(ソフトカバー)
- 購入: 21人 クリック: 316回
- この商品を含むブログ (24件) を見る
達人に学ぶDB設計 徹底指南書 - ミック - Google ブックス
リレーショナルデータベース(RDB)やSQLに関する著作をたくさん書いているミック氏のDB設計に関する本。
テーブルの定義をどうするか、理論とバッドノウハウ、ケーススタディを解説している。
明記されていないがおそらく対象読者としてDB設計担当のSEを想定している。DBのパフォーマンスと設計のトレードオフがテーマ。
DB設計の定義については「はじめに」には「論理設計」「物理設計」も対象しますと書いてある。 ただ、本書で言うところの「物理設計」の話題を取り扱っているの第2章の一部ぐらい。
特徴
学者の書いた本ではなく実務家の書いた本。用語の定義と説明に終止する専門書が少なくない。一方、この本は実務家の視点で書かれているため納得しながら読める。
リレーショナルデータベースという名称の由来など、他の本やサイトであまり言及されないような小ネタも載っている。
感想
4〜6章と8章は非常に有意義だった。ただし、9章はDB設計というよりは最近のDBの新機能のひとつ、という感じで完全に書き手の趣味という気がした。
RDBの考案者の著作を参照していたり、RDBに関する概念の由来やメリット・デメリットを解説しているので非常に納得感がある。
(この本に限った話ではないが)本の内容全体を総括するようなまとめの章がないので唐突に終わる感じ。
RDBシステムと付き合うなら一度は読んでおいて損はないかと。
今週のふりかえり(2018年6月第3週)
雨は嫌いだけど、外出を躊躇させるという意味では読書が進んでいいのかな、と思えなくもない。
今年は意外と雨が降っていない気もするけど。
今週の学び
急がば廻れ。人間、あせるとよろしくない。
2018/06/18の地震について
- 棚の上の物が落下
- 食器が破損
- ガスが止まった
- 神棚のお供えのお水が器ごと落下
まあ特に被害なしといって良いか。出張中に遭遇した東日本大震災の揺れのほうが長かった印象。
恐怖感は今回のほうが上。
最近の読めなかった単語など
- 繙読:「はんどく」
- 跛行:「はこう」
その他・ノウハウなど
エディタのショットカットキーが効かないときはOS側の設定を確認すべし。
ソフトウェア開発関連
構文解析
解説が丁寧で素晴らしい。
Pythonモジュール
ヒアドキュメントは好きじゃないが`string.Template'は実に良い。
今週試したソフトウェア or サービス
本格的にVisual Studio Codeを使っている。
Visual Studio Code - Visual Studio
巨大なファイルを開いたときの挙動とか、Atomよりいいらしい。
読んだ本
別のエントリで書いたのでそっちを参照。
気になった本、サイト、etc.
本・商品・プロダクト、その他の興味が湧いた何か。
バンダイのあれ
フィギュアライズラボ ガンダムビルドファイターズトライ ホシノ・フミナ 色分け済みプラモデル
- 出版社/メーカー: バンダイ(BANDAI)
- 発売日: 2018/06/09
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
バンダイのクレイジー技術の結晶。余裕で品切れか。
話題になりすぎて転売屋の餌食か。さすがにAmazon、対応しようよ。
プログラミング入門書
スラスラ読める Pythonふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者: リブロワークス,株式会社ビープラウド
- 出版社/メーカー: インプレス
- 発売日: 2018/06/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者: リブロワークス,及川卓也
- 出版社/メーカー: インプレス
- 発売日: 2018/06/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
プログラムのソースコードに対してルビという形でそのトークン文字列の意味(または意図)するものを示すというのは非常に面白い。 漢文の書き下し文の発展例。
数式、化学式、楽譜とか応用例はいろいろ考えられそう。
エアロバイク
La-VIE(ラヴィ) 折りたたみ式クロスバイクneo 背もたれ・サイドハンドル付き 負荷調整8段階
- 出版社/メーカー: La-VIE(ラヴィ)
- 発売日: 2012/11/30
- メディア: スポーツ用品
- この商品を含むブログを見る
運動不足対策に購入するかも。以前のやつは処分してしまったし。
電気代はあまり食わないけど、場所をとるのと、捨てるのが大変なんだよね、こういうの。
将棋セット
- 出版社/メーカー: くもん出版(KUMON PUBLISHING)
- 発売日: 2009/06/15
- メディア: おもちゃ&ホビー
- 購入: 9人 クリック: 110回
- この商品を含むブログ (13件) を見る
こんなのあるのか。天才棋士が子供の頃に使っていたとかなんとか? テレビ見ないのでよく知らないけど。
ARとかVRで将棋orチェスのの駒の上に進行方向表示ってのもいいかも。
UNICEFとCoinHive
ユニセフがマイニングソフトウェアを活用した募金ウェブサイトを公開|コイン東京[仮想通貨のニュース速報と最新情報]
購入したもの
久しぶりに自分の中で筋トレブームが来ている。
DVD付き 短時間で思い通りのカラダをつくる 筋トレボディメイク・メソッド
- 作者: 岡田隆,石井直方
- 出版社/メーカー: ナツメ社
- 発売日: 2014/06/20
- メディア: 単行本
- この商品を含むブログを見る
筋トレ用品
ALINCO(アルインコ) ハンドグリップ 15kg WB002
- 出版社/メーカー: ALINCO(アルインコ)
- 発売日: 2016/09/12
- メディア: スポーツ用品
- この商品を含むブログを見る
セラバンド(THERABAND) トレーニングチューブ バンドタイプ 2m TBB-4 ブルー 強度レベル+2
- 出版社/メーカー: D&M(ディーアンドエム)
- 発売日: 2011/11/23
- メディア: スポーツ用品
- この商品を含むブログを見る
さっそくの三日坊主疑惑。
熱対策
TIMELY USBファン BIGFAN120U for Men
- 出版社/メーカー: タイムリー
- メディア: Personal Computers
- 購入: 11人 クリック: 45回
- この商品を含むブログ (9件) を見る
過去に購入したやつは諸事情で手放したので再購入。
風量調節スイッチも買おうかと思ったけど品切れ中だった。
MacBook Air mid 2012 今年の夏を越せるかな……。
ビスケット
- 出版社/メーカー: 森永製菓
- メディア: 食品&飲料
- この商品を含むブログを見る
そこそこ甘いし腹持ちも良さげ。森永製菓ってこういう商品出すような会社でしたっけ?
イオンモールの食品売場ででバラで買うほうが安いかも。
普通のスーパーではおいてないね……、たぶん。
アウトプット
政治よりのネタはnoteに書く方向で。
note
はてなブログ
- Adsense に関する備忘録 - ながいものには、まかれたくない
- 書評:『インターフェイスデザインの心理学』 - ながいものには、まかれたくない
- 話題のレシート1枚10円アプリについて - ながいものには、まかれたくない
- 物流と労働を取り巻くパワーワードの宝庫(書評:『現代思想 2018年3月号』 - ながいものには、まかれたくない
- すごいプログラミング入門書が登場したかもしれない - ながいものには、まかれたくない
まあOKでしょう。下書き状態で溜め込まないよう心がけているところ。
今週の気づき&まとめ
創意工夫に満ちた学習書はいいですよね、英語にせよ、プログラミングの本しても。
そういう創意工夫の成果をみるとものすごくワクワクする。「お主、なかなかやるのう」みたいな変な感じ。
おしまい。
すごいプログラミング入門書が登場したかもしれない
局所的にTwitterでかなり話題になっている本。
現時点では予約受付中で目次とサンプルページをベースで書いています。目次を見る限り、確かに基本的な内容中心。
コンセプト、アイディアの時点で素晴らしいのでサンプルページを見ただけで、 間違いなくすごい本だと判断できる。
他の分野の人には理解されないかもしれないけど、職業プログラマには思いつかない画期的アプローチ。
「ふりがなプログラミング」シリーズの概要
スラスラ読める Pythonふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者: リブロワークス,株式会社ビープラウド
- 出版社/メーカー: インプレス
- 発売日: 2018/06/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者: リブロワークス,及川卓也
- 出版社/メーカー: インプレス
- 発売日: 2018/06/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
出版元:『ふりがなプログラミング』シリーズのご紹介 – リブロワークス – LibroWorks
制作したリブロワークスさんの解説は以下のとおり。
「ふりがなプログラミングってどういうこと?」と疑問を持たれる方が多いと思いますが、名前のとおり紙面のプログラム(ソースコード)に、日本語でふりがなを振った書籍です。
プログラムのソースコードにそのキーワードの意味をふりがな(ルビ)を書いて、さらにすべての行の日本語訳をのせるという画期的なアプローチのプログラミング入門書。
漢文の訓読+書き下し文、もしくは英文解釈の参考書をプログラミングの入門書に持ち込んできたイメージ。
プログラマには思いつかない発想。
行単位で番号を振ったりして説明する本はこれまでにもあったけど、この本はキーワード(単語)単位でふりがなとして、文字(列)の真上にそれが「何を意味するか」を記載している。
この「ふりがな」の面白いところはプログラマがソースコードを読むときに頭の中で無意識にやっている変換・認識を文字として可視化しているところ。
やっていることは英語の学習書と似たようなことなんだけど、これはすごい。
6月22日まで期間限定でそれぞれChapter 1が読める(インプレスのWebサイト)。
内容的には初心者向けでオブジェクト志向の話は出てこなかったり、文字通り入門書。未経験者向け。
環境としてはJavascriptの方はエディタとしてAtom、実行環境としてGoogle Chrome。Pythonの方はPython 3.xでPython付属のIDLEを使うことを前提にしている模様。WindowsだけでなくMacの場合に手順についても説明がある。
環境のセットアップをどうするかは入門書にとっては非常に悩ましいところ。
どこがすごいのか
「ふりがな」でこれまでの(プログラミングの)入門書のジレンマ(後述)のひとつを解決。項目1と3で、(独学の)プログラミング入門者がつまずく原因をほぼ解決している。
ある程度英単語を知らないと英文をスラスラ読めないのと同じで、最低限の記号とキーワードを覚えないともソースコードスムーズに読めない。フラストレーションを感じずに 読める分、理解することにえねるぎーを集中できる。
また、「読み下し文」も地味にいい。これまでは基本的にプログラムの挙動を説明したり、ソースコードを掲載して解説することがメインだった。説明のための擬似言語を用いることはあっても全文訳はなかった。
大抵の本は上手くいく手順の説明が中心で、エラーメッセージを詳細に解読して説明するというアプローチは初めて見た。
大抵のプログラミングの本は間違えたときのやり直し手順は書いていない。正解ルートだけ。 この点、(英語の)エラーメッセージをきっちり解説している点は珍しい。
入門書のジレンマ
プログラミングに限らず大抵の専門分野の入門書は説明が前後したり、ページ数の関係で一度説明したことは省略されがち。何故かと言うと ページ数の都合で基礎的なことを何度も説明できないが、説明を省くと読む側の負担が増す。
あまりに丁寧に同じことを書くと読む側がうんざりする。なのでふつうは最初だけ丁寧に説明して、その後は必要に応じて前のページを参照させる方式。
どんなに文章で詳細に解説しても、読んだ直後は理解できても記号と概念の対応が脳に定着していない。よほど頭が良くないと数ページ進むと忘れてしまう。
そのせいで読んでいる最中に「これなんだっけ?」と止まってしまう。そこで前のページに戻って読み直さないといけない。
その点、ふりがな方式だと前のページに戻ったりする必要がない。おまけに視線の移動も最小限。 ページ数の増加もふりがなのサイズ次第で抑制できる。 ページ数や説明の順序といった出版側の都合と読者の理解しやすさのバランスというジレンマをきれいに解決している*1。
そのほか
余談:プログラマとソースコード
おそらくプログラミングを始めたばかりの状態だと頭でプログラミング言語の文法(構文)を思い出して、アルファベットと数字・記号の羅列を解読して、意識的に頭で考えて日本語に変換しながら考えて読でいる。
例えば「これはforというキーワードは繰り返しの開始で、ええっと繰り返し条件は……」、という感じ。
プログラマは(得意な言語なら)プログラミング言語のまま、意識的に変換せずに「あ、ループか。繰り返し条件は?」という感じで 頭の中の変換ステップが少ない。たぶん脳のワーキングメモリの消費が少ない。
普通に日本語の文章を読むとき文法を意識したりしないのと同じ感覚でプログラムのソースコードを読んでいる。
英語の得意な人がいちいち頭の中で日本語に変換せずに英語のまま理解しているという話とたぶん一緒*2。
Twitter上の反応など
この本まじすげー。コードにルビを降るのすごいし、エラーコードとかもすごい!!!というか、最高の発明だ #インプレス pic.twitter.com/fKtqLhcTLx
— TS系JS即身仏 (@erukiti) 2018年6月14日
#techbook_meetup の時に見せていただいた、スラスラ読めるPythonふりがなプログラミング https://t.co/lfU1U2czjd 全編コードの部分に日本語の対訳があるという、「その発想は無かったわ……」な本。Pythonわかんない僕にはありがたいかもしれない。 pic.twitter.com/BvP83EzFuw
— Piro/Linuxコマンド操作漫画連載中 (@piro_or) 2018年6月14日
「ふりがなプログラミング」のルビが示しているのは、ふりがなでも読み方でも発音の仕方でもなくて、入門を終えたプログラマーがコードに対して持っている"認識"なんだな。ここまできめ細やかに言語化と可視化をした本は珍しいし、この方向はアリなのかもしれない。
— なかざん (@Nkzn) 2018年6月15日
『プログラマーがコードに対して持っている"認識"』というのがポイント。もうちょっとしっくりくる単語がないものか。認知ともちょっとちがうし。
ちなみに僕はこの本を宣伝して別にお金が入るわけじゃありませんが、この本は自分でも嫉妬を覚える位いい本なので、是非試みとして成功して欲しい。
— TS系JS即身仏 (@erukiti) 2018年6月15日
日本のプログラミングシーンを変えるポテンシャルがあると思う!
プログラミングシーンというか、プログラミング教育かな。 学校教育でプログラミング、という時期にこういう本が出たのは大きいと思う。
まとめ
実は漢文の訓読という方法はすごいアイデアだったのかと。
とりあえず(初心者ではないけど)今後の展開への期待を込めてJavascript版を予約発注した。
面白い発想なのでぜひとも子供向けのプログラミング教材にも展開して欲しい。
学校のプログラミング教育にも広まって欲しいけど、書き下し文(日本語訳)からの連想で「次のプログラムを和訳せよ」とか「作者の気持ちを(略)」など、おかしなことを言い出さないかはちょっと心配。
数年後か数十年後に日本のプログラミング教育の歴史を振り返るときにエポックメイキングな本として参照されるのではないでしょうか。
いま確保してキープしておけば将来文献的な価値があったりするかも。
また、他の分野、特に数学の本とか化学式、楽譜とか応用の可能性は結構あるような気がします。
まだ実物を確認していないのでこの辺にしておきます。