ひまつぶし雑記帖

ストアごとのリンク生成

2014/6/18 [16:38:58] (水) 天気

今日時点、ウチが電子書籍で有料販売しているのは kindleストアと iBookstoreの2つ(無料販売をしているのはiBookstoreとgoogle playブックス、楽天koboの3つ)

ひとつのタイトルを複数のストアで販売しているような場合、ほとんどのところがやってるように「タイトルがあってそこにストアが複数ぶら下がる」表示形式の方が当然わかりやすい…kindleで始まっちゃったもんだから、データの持ち方を間違えていてAmazonのasinをキーにしているので修正が面倒くさいということもあって放置してた。また、AWSのこともあってウチのサイトはあちこちにasinを使ってるはずなんだけど、5分前の自分はすでに他人なので、まるで覚えていない。

影響範囲が大きいので別ページで試してから徐々に修正していく(徐々にkindle以外にも並べるべく)
まずは 「EPUB3::かんたん電子書籍作成」 の右サイドのコンテナでお試し。データベースはいじらずにスクリプトに配列をベタベタ書いて作ってみた。

スクリプト自体は使い回しだし、目新しいこともなく簡単に出来たんだけど、ちょっと気になったのがレギュレーション。

ストアへリンクするのにロゴなど画像を使った方がキャッチーでわかりやすいのは間違いない。kindleの利用規約や商標利用に関するページや、App Storeマーケティグガイド系のPDFをざっとみて…よくわからなかったのでロゴ画像を使うのはやめた。
(といいつつ、App StoreのPDFはこんな使い方しちゃダメですよ、と画像つきでレギュレーション解説があってわかりやすかったです、はい)

サイトを辿ってみると、デザインに合わせてロゴを加工して使ってるところがあるなあ。
また(c)表示も GyaO  http://gyao.yahoo.co.jp/ct/anime/ を見るとページの一番下にごちゃーっとひとくくり。昔から雑誌なんかでも見るやり方ではあるけど、本当なら作品の近くになきゃいけない、はず。

目立たないのでOKのケース、力関係でOKのケース。
ということで、小心者で善良な納税者のわたしは触らぬなんちゃらの日和見。うーん、我ながらデザインだせえ。


今回のperl小ネタ。配列を order by random。

(出典:http://www.din.or.jp/~ohzaki/perl.htm
いつも参考にさせていただいている  「Perlメモ」  のまんま(ありがとうございます)
今さらながら配列のスライスでこんなことができる(for文の最後の行)なんて知らなかった。


[06/19 08:37:59] 追記。
この雑記帖の上に配置してみた。
・カテゴリ電子書籍一覧を表示している時
・ひとつの記事を表示している時
の2パターン。うるさかったら外そうと思ったけど意外に違和感もなかったのでアクセスの様子見してみる。

»電子書籍制作代行についてはこちら

一発芸:Kindleサンプル表示セット

2014/4/23 [17:36:34] (水) 天気

KDP用にサンプルチェックをするだけ、というスクリプトを書いたついでに、もう少しそれっぽくサンプルを表示できるようなセットを作ってみたので公開してみます。

https://t2aki.doncha.net/tmp/kindle-sample.html
サンプルと書かれたリンクをクリックするとkindleから公開されているサンプルを取得して、縦書きで表示します(残念ながらFirefoxなどは横書き)例によって一発芸ネタなので投げっぱなしで失礼。

kindleのサンプルを取得するためのCGIファイルと、表示のためのJavascriptとスタイルシート(縦書き)、それとサンプルのHTMLファイルの構成。

やることは以下の3つ。

・cgiファイルを自分のサーバーの実行可能なディレクトリにアップロード
・javascriptとcssを所定のディレクトリにアップロード
・HTMLの各該当部分を編集。

てな感じ。ちょっと面倒くさいです。

表紙画像は自分の作品なら自分で用意しましょう。
実際にAmazonのkindleストアでサンプルをダウンロードして確認してるひとがどのぐらいいるのか不明だけど、少なくともわたしはいきなり買っちゃう。ので、自分のサイトがあるならそこでサンプル表示をして見てもらえるならそれはそれでいいよなあ、ということで思いつき。



中身的には、単純に公開されているサンプルを取ってくるだけで、AWSのOAuth認証なんかも不要だしアフィリエイトタグもいらないので簡単。

公開されているサンプルが使っているタグは(表示に関係してるのは)h1とPタグ程度。
取得した時に全体を「kindle-sample」というクラスをつけたdivで囲んでるので、kindle-sample.cssを適当に書き換えてもらえれば横書きなどもできます。

ソースが汚いのは素人芸だから勘弁してください。


[04/23 17:52:52] 追記。
ちなみに、縦書きなどスタイルのカスタマイズが不要であれば、
ttp://kindleweb.s3.amazonaws.com/content/ASIN/gz_sample.html
このURLのASINの部分を、表示させたいkindleのASINコードにしてインラインフレームでやればそれだけでOKです。

»電子書籍制作代行についてはこちら

めも:perlでcsvデータ

2014/4/16 [09:02:27] (水) 天気

最近あまりスクリプトを書いてなくて、いざ書こうと思ったら忘れていてビックリしたのでメモ。

csv(コンマ区切り)に限らずタブ区切りでも同じく。
DBIを使ってデータベースと同じように扱うモジュールもあるけど、そこまでのスペックは不要で、とりあえず目の前にあるエクセルや管理ページからダウンロードしたcsvを扱えればそれだけでOKというところ。

コンマやタブで区切られて、ヘッダがついていてデータが並んでいる

てな感じのデータ。

これを split してそのまま配列に入れればいいだけなんだけど、

単純に区切りでバラして配列に入れただけだと、データを取り出す時に $w[1] などと書くことになる。それよりはハッシュ(連想配列)にして $_->{title} などとヘッダでつけた名前(キー)で取り出せた方が間違いも少ない。

ヘッダをキーにしてデータを入れて取り出せるようにするのが以下(改行やEncodeなどは省略)

たぶんここがハッシュ(連想配列)の面白い書き方。
ヘッダ(文字)の配列をキーに、データの配列を値に一度に入れてしまう部分。

これのおかげで、カラム数が100とか200とか多くてもへっちゃら。

@bufという配列に一行ずつハッシュとして入って、データの取り出しもキー(名前)でわかりやすく。

てのを、仕事でもプライベートでも何度もあちこちで使い捨てで書き散らしていたんだけど、メモがどこにも残ってなかったので改めて。

どうでもいいけど、「ハッシュ」って色気がないよなあ。せっかく「連想配列」というそそられる名前があるんだからこちらを使うべき。

»電子書籍制作代行についてはこちら

epub2のtoc.ncxをepub3の目次に変換

2014/1/15 [17:37:13] (水) 天気

Sigilなどで作られるepub2ファイルをepub3ファイルに変換するための小ネタ。

・各xhtmlファイルのヘッダを書き換える

これはエディタのマクロや、スクリプトで一括可能。複数のファイルに対して検索置換できるエディタがあればこういう時に重宝する。

・opfファイルを書き換える
 metadata部
 epub3の書式に合わせて書き直し…ってほぼそのままでイケるような気がするけど、既存のEPUB3ファイルのopfファイルを開いてコピペ、それをひな形にしてepub2の方から必要なものを移植するのが確実かな。
 manifest部
 toc.ncxがらみの記述を削除。
 新たにナビゲーション文書を設定・指定する。各プロパティ指定を確認。
 spine部
 toc.ncxがらみを削除。あとはそのまま。
 guide部
 まるごと削除

エディタやスクリプトで一括が可能だと思うけど、metadata部がちょっとメンドクサイので手作業コピペ。

・ナビゲーション文書を新規作成する。

ナビゲーション文書(たとえばnav.xhtml)を新たに作る必要がある。いまのところ、目次とランドマーク。ランドマークはopfファイルにguide部があれば、それをコピペして編集すればイケる。
epub2のtoc.ncxをepub3目次用のリストに変換するのが以下のスクリプト。


まとめて全部、一括変換するスクリプトを書こうとうだうだやってたんだけど、metadataの差の吸収が意外に面倒くさいので投げた。今日のところは。
…気力があったらそのうちスクリプトを書いて、もう少し丁寧に説明を書いておくかなぁ。

»電子書籍制作代行についてはこちら

perlで扱うutf8フラグやutf-8-macの小ネタ

2014/1/12 [17:40:36] (日) 天気

perlのスクリプトでmacの日本語ファイル名がマッチしない、という話題がtwitterに上がっていた。ネタ的に面白そうなので自分でも試してみたところ、macの日本語ファイル名が正規表現で一致しないことに気づいて、ちょっと吃驚。

フォルダには
・test.txt
・あいうえお
・ペダル
・memo.txt
など、アルファベットのファイルや日本語ファイル・フォルダが雑多に入っている。
この中から「あいうえお」と「ペダル」だけを検索で引っ張り出したい。というのが以下のスクリプト。

ところが、これでヒットするのは「あいうえお」だけで、「ペダル」はヒットしない。

twitterでの流れを追うとどうやらmacのファイルシステムが(日本語ファイル名に)使うのは NFD という形式らしい(Normalization Form Canonical Decomposition)。これをperlで判定するためには NFC という形式に変換してやる必要がある(Normalization Form Canonical Composition)

NFDとNFCで問題になるのが。
・濁音などがはいると文字コードが違ってくる。
・macの場合はさらに一般的なNFDではなくて、utf-8-mac というちょっと特殊なもの。

『Geekのメモ: Mac OS Xのファイルシステムの文字コード』
↑こちらのページが具体的でわかりやすかった(感謝!)

お馴染みの Data::Dumper で読み込んだファイル名と、スクリプト内の文字を比べると、文字コードが違っていた。まさに上記した utf-8-mac の問題。「あいうえお」は濁音が混じってないので文字コードは同じだけど、「ペダル」は濁音部分で文字コードが違っていた・文字長が増えていた。

上記サイトを参考に、CPANから Text::Iconv をダウンロード、インストールしてテストスクリプト。
1)ファイル名を utf-8-mac から、utf-8に変換する。
2)変換したファイル名にutf8フラグをつける。

↑で、無事確認できた。



ついでに。utf8フラグのおさらい。

文字コードのutf8とperl のutf8フラグは別モノ。

perlがスクリプトで内部処理するのにつけるのがutf8フラグということ…って、素人のわたしはよくわかってないので検証。

コマンドラインで引数に渡したファイルを読み込んで、「弱虫ペダル」を含んだ行を出力(プリント)するだけの単純なスクリプト。

・スクリプト自体は文字コード、utf8で書かれている。
・「弱虫ペダル」は文字コードがutf8で、 use utf8 によって、perl の utf8フラグがついている。
・最初の if 文は、utf8フラグのついていないテキストと、utf8フラグのついた「弱虫ペダル」の比較なのでヒットしない。
・Encode::decode で読み込んだファイルのテキストにutf8フラグをつける。
 ENCODE-NAMEはファイルの文字コード。shiftjis、 utf8など。
・次の if 文は utf8フラグのついているテキストと、utf8フラグのついた「弱虫ペダル」の比較なので文字コードが * shiftjisだろうがutf8だろうが * ヒットする。

・スクリプトの文字コードはutf8でも、use utf8をつけない場合(スクリプトにutf8フラグがつかない場合)
・「弱虫ペダル」は文字コードがutf8で、perl の utf8フラグはついていない。
・最初の if 文では入力ファイルの文字コードが utf8 のものだけがヒットする。
・Encode::decode で読み込んだファイルのテキストに utf8 フラグをつける。
・次の if 文は utf8 フラグがついているテキストと、utf8フラグのついていない「弱虫ペダル」の比較なのでどれもヒットしない。

perl の utf8 フラグをつけることによって、スクリプトや、入力されるテキストの文字コードは何でも構わない、という超便利なフラグ(decodeで正しい文字コードを指定する必要はあるけど)

perlのutf8フラグネタでは以前  「utf8移行と自分メモその2」  こっちにも覚え書き(utf8フラグをつけたスクリプトは、変数に日本語が使える、というネタはこちら)

encodeネタでは変換に失敗する文字をチェックするのにencodeの第3引数に、というネタも  「メモ encodeで変換失敗を第三引数でフォロー」  …ほんと、なんちゅーかほんちゅーか。面倒くさい。



話の発端からtwitterを追ってみると、utf16だったことが原因だったということでした。
て、utf16使う状況があるのか!?参考になります。ううううむ。難物。

»電子書籍制作代行についてはこちら

めも:Windows7でunixコマンド他

2013/5/26 [06:57:30] (日) 天気

unixのコマンドをWINDOWSでも使いたくて、10年以上前はCygwinをWINDOWSにインストールして使っていた。当時はFreeBSDを普段使っていて、仕事でWINDOWSやMac。

仕事の方でもホームページ(当時はWEBサイトではなくホームページ)を立ち上げたり、進行管理のためのCGIを作るようになってActive perlをインストール。となるとコマンドラインでいつものように cp ls grep diffなんてのを叩いてしまう。そのたびに見つからないと叱られるので、Cygwinをインストールして使うようになった。

で、今。普段使うMac OSXはもともとBSDで、unixのコマンドがそのままある。rubyやapacheまである。FreeBSDのGUI環境の X がたまたま Mac になっただけ。

請負仕事の電子書籍制作。
現状では、元のテキストやワードに合わせて、perlの使い捨てスクリプトを書き散らかしている。現物合わせのやっつけ仕事で、Mac OSX のターミナルでコマンドをガシガシ叩いている。

たとえば制作途中のものをWINDOWS7のネットブックに移して続けるにはunixのコマンドが必要になる。非力なネットブックにCygwinはつらいなぁと思ってたところ、unixの主要コマンドを使えるようにしたGOWというプロジェクトがあった。

https://github.com/bmatzelle/gow/wiki

awk ls cp vim grep zip bash など普段使いのコマンドが一通り入っていて大助かり。多謝。
これでネットブックのコマンドラインがストレスなく使えるし、使い捨てスクリプトから使うcp などのコマンド表記をそのままでOKなのでいちいちWINDOWS用に書き換える手間がなくなった。


*****


ワードの .docx ファイルから取り出したdocument.xmlを読むのに重宝しているperl の Data::Dumper 
便利なんだけど、日本語(ユニコードの文字)が文字化け(ではなく、16進数表記)になって出力されるので読めない。気になる該当箇所がどこなのかぱっと見ただけではわからない。
(ord(あ) → 文字コードにして → sprintf %x → 文字コードを16進数にしているらしい)

前から困ってたんだけど、なんとなくその場その場で解決したので放置。
ここにきてWORDの文書をEPUB3にすることが増えてきたので、さすがに検索した…ら、みな困っているのかスグにヒット。

ふたつ方法があるらしく、まずは自分のわかりやすい方を採用。


いろいろ。ちょっと快適。image 

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
名前:
飯田哲章
mail:
t2aki@mrh.biglobe.ne.jp
twitter:
t2akii

WEBサービス制作/電子書籍制作

検索
<<2019/6>>
      1
2345678
9101112131415
16171819202122
23242526272829
30

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版

iPhone電子書籍アプリ
小説同人誌Select iPhone電子書籍アプリ
『小説同人誌Select』

[18 Page]« »
1 2 3 4 5 6 7 8 9 10

TOTAL:2874

2019 (13)
1 (3)
2 (4)
3 (2)
4 (2)
5 (1)
6 (1)
2018 (21)
1 (3)
2 (2)
3 (2)
4 (1)
5 (1)
6 (6)
8 (1)
9 (1)
10 (2)
12 (2)
2017 (32)
1 (2)
2 (1)
4 (2)
5 (1)
6 (6)
7 (3)
8 (5)
9 (3)
10 (2)
11 (2)
12 (5)
2016 (41)
1 (5)
2 (5)
3 (2)
4 (3)
5 (4)
6 (6)
7 (2)
8 (2)
9 (3)
10 (1)
11 (4)
12 (4)
2015 (99)
1 (11)
2 (12)
3 (9)
4 (6)
5 (8)
6 (8)
7 (3)
8 (5)
9 (16)
10 (6)
11 (1)
12 (14)
2014 (112)
1 (16)
2 (5)
3 (6)
4 (12)
5 (16)
6 (19)
7 (9)
8 (6)
9 (4)
10 (8)
11 (6)
12 (5)
2013 (145)
1 (24)
2 (15)
3 (18)
4 (23)
5 (14)
6 (11)
7 (7)
8 (11)
9 (5)
10 (4)
11 (6)
12 (7)
2012 (103)
1 (1)
2 (1)
3 (4)
4 (3)
5 (7)
6 (26)
7 (17)
8 (5)
9 (8)
10 (10)
11 (11)
12 (10)
2011 (54)
1 (4)
3 (7)
4 (4)
5 (14)
6 (6)
7 (3)
8 (3)
9 (1)
10 (4)
11 (2)
12 (6)
2010 (70)
1 (12)
2 (7)
3 (6)
4 (6)
5 (3)
6 (10)
7 (6)
8 (4)
9 (3)
10 (4)
11 (3)
12 (6)
2009 (144)
1 (15)
2 (12)
3 (12)
4 (6)
5 (15)
6 (6)
7 (10)
8 (9)
9 (17)
10 (12)
11 (14)
12 (16)
2008 (148)
1 (10)
2 (6)
3 (10)
4 (11)
5 (13)
6 (10)
7 (13)
8 (19)
9 (18)
10 (12)
11 (13)
12 (13)
2007 (106)
1 (7)
2 (5)
3 (3)
4 (7)
5 (5)
6 (9)
7 (8)
8 (13)
9 (18)
10 (11)
11 (8)
12 (12)
2006 (158)
1 (28)
2 (28)
3 (25)
4 (7)
5 (9)
6 (7)
7 (12)
8 (13)
9 (10)
10 (7)
11 (6)
12 (6)
2005 (350)
1 (31)
2 (26)
3 (26)
4 (27)
5 (29)
6 (30)
7 (32)
8 (30)
9 (30)
10 (32)
11 (29)
12 (28)
2004 (292)
1 (24)
2 (24)
3 (29)
4 (27)
5 (28)
6 (25)
7 (26)
8 (24)
9 (12)
10 (19)
11 (26)
12 (28)
2003 (318)
1 (22)
2 (25)
3 (21)
4 (28)
5 (28)
6 (28)
7 (28)
8 (29)
9 (26)
10 (29)
11 (28)
12 (26)
2002 (317)
1 (29)
2 (26)
3 (26)
4 (25)
5 (28)
6 (30)
7 (27)
8 (21)
9 (25)
10 (27)
11 (28)
12 (25)
2001 (277)
1 (17)
2 (21)
3 (23)
4 (20)
5 (31)
6 (18)
7 (26)
8 (25)
9 (29)
10 (19)
11 (24)
12 (24)
2000 (53)
6 (9)
7 (4)
8 (2)
9 (3)
10 (1)
11 (15)
12 (19)
1999 (3)
7 (1)
10 (2)
1998 (18)
9 (9)
10 (7)
11 (2)