ひまつぶし雑記帖

perl で QRcode生成

2012/6/7 [17:16:16] (木) 天気

perlは本当にスゲー。こんなのないかな、あるかな、と思ったら、ほとんどすでにCPANに登録されている。ほかの lightweight language の状況は知らないので比較できないけど、perlがあればほとんど用が足りてしまうんじゃないか。
てことで、QRコードの生成。

創作文芸見本誌会場HappyReading のスマホ版を作ったことだし、スマートフォンで見てもらえるように、誘導したい、というのが目的。スマートフォンでちまちまURLを入力するのはうっとーしーんで、QRコードの出番だろう、と。
レンタルサーバーのlolipopには GD モジュールと一部の関連モジュールはインストールされているらしい。ただ、ここで肝心の、QRコードがインストールされていないので、CPANからもってきた。
CPAN http://search.cpan.org/~kwitknr/GD-Barcode-1.15/
↑これをダウンロードして解凍展開。中を見ると、何かをコンパイルするワケでもなく、ただ所定のディレクトリにコピーしてるだけの pure perl モジュール。そのままlolipopにFTPでアップロードしたら、問題なく使えた。

コードは、これだけ。
STRINGの部分にURLとかテキストを入れる。日本語もOKだけど、検索してみると、ガラケーはSHIFT JIS なので、文字コードを SHIFT JIS にしていることが多い。
これで、QRコードの画像 png を出力してくれるので、img タグに、このスクリプトのURLを書いておけばいい。ちょっと調べたのがQRコードの仕様。
ECC というは、エラー修復レベル。
アウトドアなど汚れ・破損が激しそうなところで使う場合には Hレベル(修復30%)、などなど修復できるレベルがあるので、それを指定する。
ModuleSize というのは、文字通りセルサイズ。
ひとつひとつのセルのサイズを指定できる。
Version・型番というのはセル構成=セル数。
1~40まであって、大きいほど記録する文字数が増える。
て、ウチみたいな素人ヨタ話のブログを見るより、開発者の一次情報を確認しましょう。
QRコードドットコム

画像を生成して表示するのに、ほんの少し時間がかかるので、サイトではajaxを使ってスクリプトを呼び出すようにした。情報としては、URLとサークル名、本のタイトル。
スマホのQRコードで読み取って、URLに飛ぶとその本のページが開く。おお、これは便利だ。便利なはずだ。きっと。だがしかし。

QRコードの活用例として、流通の現場で商品の確認とか、製造の現場での商品トレースとか、バス停で時刻表とか、有効に活用されている。たとえば、WEBへ誘導するのに、チラシや名刺にQRコードがプリントされていたら便利。だけど、サイト上にQRコードを表示して、さてそれってどうなの?PCでサイトを見ていて、そのページをスマートフォンでも見てみたい、というリクエストがそんなにあるとは思えない。
QRコードが使えるのでとりあえずつけてみました感が漂う。

WEBサイト上にQRコードが表示してあって、こいつは便利だぜ、待ってたぜ、という事例があったら、ぜひ教えてください。

 

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

今年2011年公開のWEBサービス

2011/12/24 [22:30:48] (土) 天気

311の震災があって、今まで自宅サーバーで公開していた読書SNS「趣味は読書」を、lolipopに移行。スクリプトをイチから作り直してWEB本棚サービス「趣味は読書2」として2011年4月、全面リニューアルオープン。
http://doncha.net/
掲示板などあれこれてんこ盛りにしていた前サイトと違って、シンプルで使いやすくなったというレスポンスをもらって、運営中・公開中。
ぶっちゃけ。震災で、自宅でサービスを公開することの限界を痛感した。いつダウンするかわからないようなシロモノを公開して使ってもらうわけにはいかない。

文学フリマ界隈での議論を見ていてでっち上げ。
http://books.doncha.net/happy-reading
創作文芸同人誌応援サイト、「創作文芸見本誌会場HappyReading」2011年12月14日公開。好評のようで登録も順調。って、twitterのDMを使って登録のお願いをしていった、のもスタートとして正解だった、かも。
このまま登録が増えてくれると、サイトを作った甲斐があった、というもの。

というふたつのWEBサービスを今年2011年公開できた。

どちらも少しずつとはいえ、使ってくれているひとがいて、うれしい。
で。この「うれしい」気持ちを大切にして、いろんなサービスを考えていきたいなあ、と改めて。

 

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

創作文芸見本誌会場HappyReading

2011/12/17 [17:40:42] (土) 天気

必要だろうと思った機能を最低限つけて、バグをひとつずつ潰して、まず最初の完成形となった。

とりあえずのメモ。

データベースは、mysqlではなくてsqlite。
どうして?lolipopのmysqlは重いので、ページ表示がもっさりしてしまう。レスポンスが早い、というのがwebの絶対正義。
sqliteは複数の同時アクセスに弱いという評判だけど?確かにその通りらしいけど、ウチぐらいのアクセスなら十分。むしろファイルひとつがそのままDBなので、バックアップなどのメンテがらくちん。そっちのメリットのほうが大きい。
mysqlとかpostgresqlのようなRDBが必要になったら、そのときそのままSQLなどは移せる。

データ構成は。
基本的に、一意に決まる本の情報以外の付属情報はすべてタグとして処理。著者やカテゴリなど。でも、イベント情報関係は別テーブルで管理(同人誌の場合、イベント参加情報は重要なので)
詳細ページを閲覧された回数や立ち読みされた回数はまた別管理で。モチベーションのため。

ページ表示に使うためのマスターテーブルは特になくて、idではなくて、ユーザー入力によるテキストのタイトル部分をキーにしている、というのが後々禍根を残しそうな予感。でもたぶん、そのおかげでおそらく内部SEO対策となる、はず。urlとページタイトルとコンテンツのh1の関連が強くなるし、そこで使われるキーワードがアンカーテキストとしてページ上部に出現する、いわゆるSEOとしては理想的な構造。

サイトの目的とか。
立ち読みをしてもらう。
面白かったら作者やサークル、カテゴリで芋づる式に次の立ち読みをしてもらう。
動線はそのために作る。それによって結果として内部SEO対策となる。

表示側。
一覧ページと詳細ページだけ。あとは、利用規約など。
サイトのトップページは必要ない?意図を持ってなにかをおすすめするとか企画するようなサイトではない。なので、単純にひらたく、なんらかの一覧ページをトップにすればいい。
ページの目的は立ち読みのテキストを読んでもらうことなので、一覧も詳細もワンクリックで立ち読みが開くように。
サークル名や著者名など本に付属するデータはすべてリンクとする。面白かったら芋づる式に次を読んでもらいたいから。

登録側。
テーブル構造のまんま。必須項目などはjavascriptでUIを作る。必須入力項目が多いので、少しでも便利にしておきたいところだけど、まだまだ検討材料が多い。

同人誌に限った話ではなくて。デザフェスなんかを見て感じることで。
世間とか時代とかに、もし閉塞感があるとすれば、これからは組織に頼らない個人こそが勝負できるんじゃないかと思う。

 

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

ケータイからPCメールを読むために

2011/6/8 [15:34:27] (水) 天気

今どきスマホだろ、gmailだろ、というのはおいといて。わたしはまだシャープの太陽光パネル搭載のガラケー。なもんで、PCのメール(biglobeのメール)を見るのが面倒くさい。というかよくわからない。

Net::POP3 などのモジュールもあるにはあるけど、以前に、同じようなスクリプトを書いてたり、写メール用のスクリプトも書いてあったんで、テキトーにつまんで使いまわせばイケんだろ、ぐらいに考えて、ちょろっと書き直し・書き足ししてみた。とりあえずバージョンは割りとすんなり、ほぼ何も考えず、サブルーチンをちょっとだけ書き直してつなぎ直したら、あっさりケータイからPCメールも取得できるようになった。(Socketぐらいしか使ってないんで、ほぼどんなレンタルサーバーでも使える)
これで、外出先でもケータイでPCメールをチェックできる。

とはいえ、どうも反応が遅い、いや、以前から。
POP3のマニュアルというか検索してわかりやすいページを発見。
http://www.atmarkit.co.jp/fnetwork/rensai/netpro07/netpro01.html

面倒だし、動いてるからいいや、という理由で、使ってたのは、LISTとRETR、QUITだけ。上記ページを見ると TOPとかUIDLとか便利なコマンドがあるので、追加変更。
一度に全部持ってくるのは、迷惑メールもあるし、無駄なので、ヘッダーを取得して一覧して、スパムを削除して、選択して本文を見る、形式に変えたら、自画自賛の便利さ。

自分で使うことしか考えてないので、表示はお粗末でそっけない、dlとpだけ。これでオッケーなのだ。

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

「趣味は読書2」にtwitter経由検索

2011/5/26 [16:07:28] (木) 天気

twitter連携その2.twitterでリプライ飛ばしてもらって、タイトル検索もしくは著者検索をして、リプライで返す。というやつ。
仕組みは簡単。twitterである程度決まった書き方してもらえば、そこから正規表現でテキトーにバラしてSQLにして投げ込むだけのお手軽さ。
とはいえ、twitter の仕様? since_id が意味不明でハマってしまった。
since_idは、そのID以降のtweetを拾う。
と思ってたんだけど、どうやっても出てこない。検索しまくったもののよくわからない。しょうがないんで、前回取得した最大のIDをDBに記録。特にパラメータもなしに mention を1ページ20件×5ページ分取得して、記録しておいたIDより小さいものがあったらスキップ、というなんだかアレなやりかたになってしまった。
lolipop のロリポプランでは、cron の最小間隔5分。5分ごと、twitterで、mentionを取得することになる。その間に100超えるリプライがあったらあふれてしまうので、そのときは最大取得ページ数を増やすことに。現状、たぶんほとんど使われないので、これでも平気、のはず。

一応、ケータイで自分の本棚の検索をできるようにしてあるんだけど、こっちはIDとパスワードをそのたびに入力しなきゃいけない、ちょっとした面倒がけっこうなハードル。ケータイでtwitter見ることが多いので、急ぎじゃなければ(検索結果が返ってくるまで、最大で5分はかかる)twitter経由で検索するかな。

http://doncha.net/about.pl?c=help
http://twitter.com/dokusyo2

 

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

本棚のバックアップと一括登録

2011/5/18 [17:06:50] (水) 天気

時間なら、いま、売るほどあるので、WEB本棚「趣味は読書2」の積み残した機能をコーディング、実装。

その1。
バックアップは必須。今まで「趣味は読書。」では、csvでバックアップできるようにしていた。今回からはxml出力にした。まだ、(くそ)エクセルなんかでもxmlはオプションっぽいし、XMLは一般的じゃないとは思いつつ。
タイトルなどはともかく、著者の数やメモの数がいくつになるのか決まっていない。csvのように一行でリニアに記述するには無理がある。ほかにテキトーな形式も思いつかず、たぶん、XMLで書いておけば、きっと便利で簡単なコンバーターがあるに違いない、と。
自宅・ウチのパソコンを公開してサービスに提供してた時は、バックアップのことが気になってしかたなかったけど、今度の「趣味は読書2」は http://doncha.net/ で、 lolipop だ。利用者も多いし、WEBの出納係と異名を持つ GMO傘下だ。会社が倒産したり、サーバが飛んでデータが消える、なんて滅多なことはないだろう。それなりに安心してもいいハズ。てことでバックアップは必須とはいえ、優先順位は後回しになっていた機能だ。
その2。
本の一括登録はあったほうが良さそう。今までの「趣味は読書。」でもつけてた機能なので。初めて登録してくれたユーザーさんとか、一冊ずつポチポチやって登録するのは面倒だろうし、てことでつけたんだけど、実際は初めてのユーザーさんだけじゃなくて、既存のユーザーさんでアクセス頻度の低いひとが、まとめて登録するのに使われていた。
ほんとは、一冊ずつ登録して、一冊ずつにメモやカテゴリをつけてあげてほしいんだけどね。

機能追加とか、SQLiteは気楽。ユーザー単位でDBを使う=ユーザーひとりにひとつのファイル、という構成にしたので、なにか意図しないことが起こっても、データベースへの被害は小さい。ユーザー間のリレーション機能を削った分、意図せず、災害に強い構成になった、ような気がする。

ちなみに、現状。
300人いた会員のうち、乗り換えてくれたのが、17人ほど。…って、もともとアクティブなひとたちで、本棚も充実していて楽しい。

 

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

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)