2017年6月17日土曜日

Markdown 記法から縦書き mobi (kindle direct publishing で出版可能な) ファイルを作成する

環境

  • Windows 10 Home
  • pandoc 1.19.2.1
  • kindlegen V2.9
    • kindlegen にはパスが通っています

Github

https://github.com/haoimrii/md2ebook

手順

あらまし

  1. 縦書きになるスタイルシートを書いたテキストファイルを作成します
  2. バッチファイルを作成します
  3. Markdown 記法で書かれた原稿ファイルをバッチファイルにドラッグ&ドロップします

具体的な手続き

1.Markdown 記法で原稿を書きます(ファイル名を仮にManuscript.mdとします)

2.縦書きにするためのスタイルシートを書き、style.htmlとして保存します

<style> body { -epub-writing-mode: vertical-rl; writing-mode: tb-rl; direction: ltr; } </style>

3.バッチファイルを書き、md2mobi_v.batとして保存します

pandoc -t html4 %1 -o %1.html -B style.html kindlegen %1.html del %1.html

4.上記3つのファイルを同じフォルダに入れます

5.Manuscript.mdmd2mobi_v.batにドラッグ&ドロップします


以上の手続きで、3つのファイルと同じフォルダ内にManuscript.mobiができあがります。 kindleに転送してすぐに読むことができます。

Kindle direct publishing にアップロードして、縦書き原稿とすることができます。

2016年7月9日土曜日

KATANA01 で Y!Mobile の SIM を使って LTE 通信する

先日より、KATANA01 を正式運用する手はずを整えていたところ、今使っている Y! Mobile の SIM を KATANA01 に突っ込んでも 3G としか表示されず、LTE 通信できなかった問題を解決しました。

KATANA01 は、Y! Mobile の SIM を自動認識して、デフォルトの APN を設定してくれるのですが、なぜだかそれでは 3G でしか接続してくれません。そこで、以下の設定を行いました。

1.「設定」画面より、「ネットワークとワイヤレス」→「携帯ネットワークと SIM」とたどる。
2.「SIM 1の設定」より、「インターネット APN の追加」をタップし、「インターネット APN」画面で、以下の設定を入力する。

 APN::plus.acs.jp
 ユーザー名:ym
 パスワード:ym
 「このプロファイルを適用する」にチェックを入れる

3.「保存」ボタンをタップする。

以上の操作で、ドロワーを下げたときに表示される「Y!mobile 3G」が「Y!mobile LTE」に変わりました。多分これで LTE 通信できているはずです。

2016年6月13日月曜日

Windows 10 (mobileも可) の Groove ミュージックアプリで OneDrive からストリーミング再生する

このページの情報をもとに、以下の操作をすることで FREETEL の KATANA01 でかつ日本で取得したマイクロソフトアカウントで OneDrive と同期できました! (2016年6月13日現在)

環境
 ハードウェア:FREETEL FTJ152E (KATANA01)
 OS バージョン:1511
 OS build:10.0.10586.318
 ※Insider preview 未対応ハード

設定
 1. 地域を「United States」に変更後、再起動
 2. Groove Music アプリを起動
 3. ハンバーガーメニューから「Sign in」で日本で取得したマイクロソフトアカウントでサインイン
 4. ハンバーガーメニューのアカウント名の隣の歯車アイコンから「SETTINGS」画面に移動
 5. OneDrive 項目を On にする。
 6. Groove Music Pass 項目の「Sync my music」をタップ

で同期できました! 連続再生にも対応しています


追記
 デスクトップ版 Windows 10 の Groove ミュージックでも同様の設定を施すことで OneDrive
 内の音楽をストリーミングすることができました! 以下詳細。

環境
 エディション: Windows 10 Pro Insider Preview
 バージョン: 1607
 OS ビルド: 14361.0

設定
 1. 地域を「米国(U.S.)」に変更
 2. Groove Music アプリ起動
 3. サインインする。既にサインインしている場合は、一度サインアウトする必要あり

で同期が始まります。


あなたも素敵な Groove Music ライフを!

2016年5月3日火曜日

Windows10 の Sqlite3 に insert すると、syntax error を食らった話。

Windows10 + Sqlite3 コマンドラインツール + Visual Studio Code で日本語を含む SQL をかいて、大いにはまった話。

結論:
Shift-JIS で SQL を書け!

状況:
Windows10 に PHP と Sqlite3 と Visual Studio Code をインストールし、VSC で SQL を書いて、コマンドプロンプトから Sqlite3 を起動して .read コマンドを使ってマルチバイト文字を含む SQL を実行したら、よくわからない理由で「Syntax error」が何か所も出たよ!

条件:
1.VSC のデフォルト文字コードが「UTF-8 with BOM」になっている。
2.Sqlite3 の Windows 版が、いつの間にか Shift-JIS でマルチバイト文字を処理するようになっている。(ぐぐったときは UTF-8 Only 見たいに書いてたのに…)

解説:
条件1.のせいで、.read コマンドを使っても、コマンドプロンプトにコピペしても、UTF-8 with BOM として扱われている。
条件2.のせいで、SQL は UTF-8 を使わなければいけないと思い込んでいた。

以上のせいで、1時間半くらいつぶした。最初から素直にメモ帳にコピペしていればこんなことには…

2016年3月18日金曜日

cron が動かないシンプルな理由

こんな crontab 書いてました。
0 3 2-31 * * /root/backup_log.sh >> /var/log/backup.log 2>> /var/log/backup.log
0 3 1 * * /root/backup_and_delete_log.sh >> /var/log/backup.log 2>> /var/log/backup.log
/root/backup_log.sh の内容はこんな感じ。
echo "+++ $(date) +++"
rsync -a /root/backup.log
echo "--- $(date) ---"
cron のサービスも生きているのに、全く実行された気配もないし、ログも残っていない。
cron のエラーログもなく、なんでだろ? と思っていたら、ふいにひらめいた。

 「スクリプトの先頭にシェバン(#!)がありませんよ…」

そこだけ修正したら、無事動くようになった!

コマンドラインからスクリプトを実行しているときは、何の気なしにシェルから呼んでいたけど、うっかりしていました。

2016年2月25日木曜日

RICOH THETA ビュアーブックマークレット作りました

オープンソースの
  • three.js
  • thview.js
をお借りして、RICHO THETA で撮影した jpg 画像をPC・スマホで適切に表示するブックマークレットを作成しました。

需要があるかどうかわかりませんが、とりあえず晒しておきます。

Android の Chrome と、Chormebook の Chrome で動作確認しています。

ソース:
(function(f){
 var s = document.createElement("script");
 s.src = "https://cdn.rawgit.com/aike/thview.js/master/example/three.min.js";
  s.onload=function(){f()};
 document.body.appendChild(s);

 var s2 = document.createElement("script");
 s2.src = "https://cdn.rawgit.com/aike/thview.js/master/example/thview.js";
 document.body.appendChild(s2);

 var div = document.createElement('div');
 div.id = 'ph1';
 div.style = "position:absolute;top:0;left:0;";
 document.body.appendChild(div);
})(function(){
 new ThView({id:'ph1', file:location.href, width:document.documentElement.clientWidth * window.devicePixelRatio, height:document.documentElement.clientHeight * window.devicePixelRatio});
});


ブックマークレット:
javascript:(function(c){var b=document.createElement("script");b.src="https://cdn.rawgit.com/aike/thview.js/master/example/three.min.js";b.onload=function(){c()};document.body.appendChild(b);var a=document.createElement("script");a.src="https://cdn.rawgit.com/aike/thview.js/master/example/thview.js";document.body.appendChild(a);var d=document.createElement("div");d.id="ph1";d.style="position:absolute;top:0;left:0;";document.body.appendChild(d)})(function(){new ThView({id:"ph1",file:location.href,width:document.documentElement.clientWidth*window.devicePixelRatio,height:document.documentElement.clientHeight*window.devicePixelRatio})});


クリエイティブ・コモンズ・ライセンス
hidemaru 作『THETA Viewer for Browser』はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスで提供されています。
https://github.com/aike/thview.jsにある作品に基づいている。

2015年11月24日火曜日

crouton でインストールした ubuntu のコンソールで日本語入力 (Chrome OS, Chromebook)

設定にえらく手間取ったので備忘録として。
誰かの参考になれば幸いです。

準備

uim-fep と uim-mozc をインストールします。

mozc は個人的な趣味なので、「俺はAnthy派だ!」という方は uim-mozc の代わりに uim-anthy をインストールしてください。

コマンドは以下のとおり。
sudo apt-get install -y uim-fep uim-mozc
キモはここから。初期設定では、ターミナル上で uim-fep を起動できても、変換モードに移行しません。

どうやら、Chromeアプリの secure-shell は Shift キーおよび Ctrl キーとタイプライタキーの同時入力を許してくれないようです。

Alt キーだけは見逃してくれるようなので、これを利用します。


まず、ホームディレクトリに「.uim」というファイルを作ります。
touch ~/.uim
.uim ファイルに、「Altキー+スペースキー」で日本語入力をオン・オフする設定を記述します。エディタかリダイレクトを使って次の内容を .uim ファイルに書き込んでください。
(define-key generic-on-key? '("<Shift> " "<Control> " "<Control>\\" "<Alt> "))
(define-key generic-off-key? '("<Shift> " "<Control> " "<Control>\\" "<Alt> "))
何を書いているかというと、『「Shift+スペース」「Ctrl+スペース」「Ctrl+バックスラッシュ」「Alt+スペース」のどれかを押すと日本語変換モードに入り、どれかを押すと直接入力モードに戻る』という意味のことです。

ここでは Chrome OS を使っていることを前提にしているので、有効なキーの組み合わせは「Alt+スペース」のみです。他の組み合わせは X を使っている時に有効になるので、じゃまになる時はその都度修正してみてください。

日本語入力機能をオンにするには、次のコマンドを入力します。
uim-fep
日本語入力機能をオフにするには、直接入力モード中に次のコマンドを入力します。
exit
以上です。