本棚のバックアップと一括登録
時間なら、いま、売るほどあるので、WEB本棚「趣味は読書2」の積み残した機能をコーディング、実装。
その1。
バックアップは必須。今まで「趣味は読書。」では、csvでバックアップできるようにしていた。今回からはxml出力にした。まだ、(くそ)エクセルなんかでもxmlはオプションっぽいし、XMLは一般的じゃないとは思いつつ。
タイトルなどはともかく、著者の数やメモの数がいくつになるのか決まっていない。csvのように一行でリニアに記述するには無理がある。ほかにテキトーな形式も思いつかず、たぶん、XMLで書いておけば、きっと便利で簡単なコンバーターがあるに違いない、と。
自宅・ウチのパソコンを公開してサービスに提供してた時は、バックアップのことが気になってしかたなかったけど、今度の「趣味は読書2」は https://doncha.net/ で、 lolipop だ。利用者も多いし、WEBの出納係と異名を持つ GMO傘下だ。会社が倒産したり、サーバが飛んでデータが消える、なんて滅多なことはないだろう。それなりに安心してもいいハズ。てことでバックアップは必須とはいえ、優先順位は後回しになっていた機能だ。
その2。
本の一括登録はあったほうが良さそう。今までの「趣味は読書。」でもつけてた機能なので。初めて登録してくれたユーザーさんとか、一冊ずつポチポチやって登録するのは面倒だろうし、てことでつけたんだけど、実際は初めてのユーザーさんだけじゃなくて、既存のユーザーさんでアクセス頻度の低いひとが、まとめて登録するのに使われていた。
ほんとは、一冊ずつ登録して、一冊ずつにメモやカテゴリをつけてあげてほしいんだけどね。
機能追加とか、SQLiteは気楽。ユーザー単位でDBを使う=ユーザーひとりにひとつのファイル、という構成にしたので、なにか意図しないことが起こっても、データベースへの被害は小さい。ユーザー間のリレーション機能を削った分、意図せず、災害に強い構成になった、ような気がする。
ちなみに、現状。
300人いた会員のうち、乗り換えてくれたのが、17人ほど。…って、もともとアクティブなひとたちで、本棚も充実していて楽しい。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
趣味は読書2ケータイ版
読書SNSから、WEB本棚となった「趣味は読書2」のケータイ版も作った。
もともと既読未読管理と重複購入チェックのためのサイトなので、ケータイ版は必須といえば必須。「趣味は読書。」でも、ケータイ版を作ってあって、本屋でよく使ってたのだ。
「…えーっと、これって持ってたっけ?」は、まだいいけど、「あれ?これ読んだっけ?」という記憶力の衰えがひどいんだ。
今どきは、スマートフォンだろうから、そっち向けのレイアウトデザインのものを作った方がいいんじゃないかと思いつつ、自分用途はまだ au の太陽電池ケータイ SH007 だし。
cssの解釈もよくわからないし、キャリアごとの違いも把握できてないのは前回「趣味は読書。」と同じ。なので、今回も自分の本棚を検索するだけのシロモノだ。
前回は、機種の固体識別番号を使った簡単ログインをつけたんだけど、調べてみると、固体識別番号を使うのはセキュリティ的によろしくない、らしい。さいわい、au の太陽電池ケータイは cookie を使えるので、セッションはPC版同様、cookie を使うことにした。
ケータイの cookie や、固体識別番号については下記が参考になった。
https://www.milkstand.net/fsgarage/archives/001690.html
https://takagi-hiromitsu.jp/diary/20100411.html
というわけで、「趣味は読書2」 https://doncha.net/ は、ほぼ完成。
あとは、バックアップ機能ぐらいだろうか。ユーザーさんを増やして、いろんな本棚をみたい、よなあ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
大阪通天閣
新世界なんて、記憶にないぐらい久しぶり。なんとなくぶらっと出かけることになって、どこに行く?と。いや、ウチでぼーっと過ごしても良かったんだけど、なすがまま車に乗せられ通天閣だった。
ついてみて驚いた。展望台まで60分待ち。こんな人気だっけか。串揚げ屋も行列。しょうがないので、タコ焼きを食って帰宅。
曇天、雨の今日は、当然のごとく買った551の豚マンを食って、ごろごろ。スクリプトいじり。
https://www.pfu.fujitsu.com/hhkeyboard/lineup/pdkb420b.html
↑ふふふふ。とうとう買ってしまったHHKB Professional2(ハッピーハッキングプロフェッショナル)シルキータッチでもいいましょうか。こいつは快感。FILCOも好きなんだけど、HHKBのサイズでこのキータッチは最強ですなあ。
lolipop用に、アクセスログ解析のスクリプトをごそごそ仕込み。lolipopはapacheの生ログがダウンロードできるので、そいつを食わせることにした。…んだけど、ログファイルがgzで圧縮されているのが、ビミョーに面倒。
ローカルにダウンロードしたgzファイルを解凍してスクリプトにアップロードするひと手間が面倒なのだ。なもんで、gzで圧縮されたファイルをそのまま流し込めるようにあーだこーだぐーぐるさま。
form-data でアップロードしたgzファイルを、↑で一行ずつ読み込めばOKだった。perl 最強。551の豚マン最強。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
仮移設のためのスクリプト書き
震災ショックというか停電ショックというか。自宅のパソコンでサービス提供する限界を痛感。いろいろ整理しなきゃいけないタイミングでもある。
なもんで、今の読書SNSを見直して、どこにでも持っていける身軽さを目指して、モジュールもDBもよく使われているものに変更しようとごそごそ。
DBはSQLiteに変更。どの程度のボリュームまで扱えるのかちょっと見えないけど、レンタルサーバーでメモリの寒いMySQLよりはマシ、かもしれない。掲示板や日記、本棚の横断検索や足跡、といったリレーショナルな部分を切り落として、個人の本棚だけ扱うことにする。本棚の数だけDBを用意して、各自のDBに対して読み書きするようにすれば、DB単位のロックでマルチタスクに向いていないSQLiteの弱点も目立たない、だろうし。
ということで、久しぶりに、がっつりスクリプトを書いてる、というかサイトを作ってる。
画面レイアウトを作って、リンク先・ページ遷移を考えながら、必要なページ数をざっと洗い出す。
元のロジックを眺めながら、穴が開かないように書き直し。もしくは一から書き起こし。DBの内容、カラムなどは引き継ぐので、やること・できることはわかっている。使いまわしのきくモジュールもいくつかあって、スクリプトを考えるところは面白くて、時間を忘れる。コミュニティ系がほとんどないに等しくなるので、twitter連携するかな、とかネタもあるし。
だけど、ページが面倒。IEを諦めても、FireFox系とwebkit系でスタイルシートの調整が必要になる。1ピクセル程度ズレててもかまわないんだけど、あちこちズレてるとさすがに全体の見栄えが「きちゃない」んでうんざりするので、自分ハードルをあげておかないとけいない。
こちらを1ピクセルずらすと、あちらが崩れて、の積み木崩しにならないようにするのが、ちょおにがて、だ。
仮移設では、コニュニティ系を削った分、「自分のもの」な感じを出したい。汚い部屋にならないようにしないとなあ。
[04/09 21:43:17]
そういや。エア被災者(震災以降、不安で、動悸や眠れなかったりするひと)がいて、診療内科・精神科に通って、それはそれで、大変だなあ、と思うんだけど。一緒にメシ食っていて、タバコをパカパカ吸いながら、福島が怖くて不安で東京にいたくない、とかぬかすのにムカついても良いよなあ。その受動喫煙でこっちにド迷惑かけてる、なんちゃらシーベルトレベルの発ガン率なのはいいんだよなあ、こういうひとって。なんかなあ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
設定って一度やったら…
次に再び設定をいじるのにかなり間があくので、すっかり忘れていて、慌てて本棚眺める、ぐーぐる様で徘徊するハメになってしまう。
無料のレンタルDNS、MyDNSで ttp://www.holeinthewall.jp/ を登録していて、ウチのサーバーから、cronでfetchmailを走らせて、メールによるDNSのUpdate(IP通知)をしていた。ところが、ここんとこの電力事情でウチのサーバーが休止状態。zaurus B-500が、サーバー代わりにドメインを使って、apacheでメンテページを返すようにしていた…MyDNSに通知することをすっかり忘れて。
ということで、ドメイン情報が生成されなく、名前によるアクセスができなくなりました、というメールをもらう。
再度通知すればいいだけなので、慌てて。…えーっとナニをすればいいんだっけ、と。
こんなときはとりあえず perl。
Windowsでスクリプトを書いて試してみることにした。
まずは、LWPを使ってBasic認証でのアクセス通知をやってみたところ、通知できてるだかできてないんだかわからず。
次に、Net::POP3でメールによるIP通知を試してみたんだけど、これもうまくいってるんだかいってないんだか
。
しょうがないので、 zaurus 用にfetchmailを探してきてインストール。fetchmailrcをごそごそ書いて、アクセスしてみたんだけど、これもうまくいってるんだかいってないんだか。
もしかするとDNS情報のUpdateはある程度時間をおく必要があるのかも。zaurusにfetchmailをインストールしたことだし、こいつでUpdateできればそれに越したことはない。(そもそも、zaurus B500のperlはバージョンが5.6で、モジュールもデフォルトしか入ってない)
上記 .fetchmailrc を作り、コマンドラインで fetchmail とやると、daemonで設定した秒数間隔(この場合24時間)でメールを受信にいく=DNS情報がUpdateされる、ハズ。
明日また確認。こんなことに(一度ならずやってるハズのことに)一時間近くかかってんだから、老化現象著しい。とほほ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
lolipopへ避難のメモ
自宅サーバーで使ってるperlのモジュールが lolipop にもあるかどうかが問題だったんだけど。
以下はlolipopでも細工なしに使えた。mysql も sqlite も使えるのでDBIというかmysql sqliteのDBD(?)もインストールされているっぽい。
Encode
Encode::Guess qw/ euc-jp shiftjis 7bit-jis utf8 /
Jcode
LWP::UserAgent
Time::HiRes
Fcntl (':DEFAULT', ':flock')
CGI::Carp qw/ fatalsToBrowser /
Image::Magick
DB_File
DBI
MIME::Base64
Digest::MD5
このへんはメジャーだから大丈夫。
XML/Simple.pm
メジャーなXMLのParser。
確か、1年ぐらい前はlolipopにインストールされていなかったので、ローカルの freebsd 環境でmakeして、できたモジュールをツリー構造ごと lolipop にコピーした、記憶がある。けど、今回改めてみると、インストールされていた。
Digest/SHA/PurePerl.pm
amazonにしろtwitterにしろ認証のための暗号化モジュール。
pureperl(perlだけで作られている)なので、ツリー構造ごとコピーすれば使える。
とりあえず、上記モジュールで、この雑記帖、自作twitterクライアント、自作amazon用モジュールが稼働。この程度の単純なものなら、たぶんほとんどのサーバーで使える、かな。
[03/22 22:32:42]
ビートたけしの記事がtwitterに流れてたので見てみたら、腰が抜けるほどの説得力。腑に落ちる。てことで、こちらにも引用しておこう。
『週刊ポスト「21世紀毒談特別編」より』
常々オイラは考えてるんだけど、こういう大変な時に一番大事なのは「想像力」じゃないかって思う。
今回の震災の死者は1万人、もしかしたら2万人を超えてしまうかもしれない。テレビや新聞でも、見出しになるのは死者と行方不明者の数ばっかりだ。だけど、この震災を「2万人が死んだ一つの事件」と考えると、被害者のことをまったく理解できないんだよ。
じゃあ、8万人以上が死んだ中国の四川大地震と比べたらマシだったのか、そんな風に数字でしか考えられなくなっちまう。それは死者への冒瀆だよ。
人の命は、2万分の1でも8万分の1でもない。そうじゃなくて、そこには「1人が死んだ事件が2万件あった」ってことなんだよ。
本来「悲しみ」っていうのはすごく個人的なものだからね。被災地のインタビューを見たって、みんな最初に口をついて出てくるのは「妻が」「子供が」だろ。
一個人にとっては、他人が何万人も死ぬことよりも、自分の子供や身内が一人死ぬことの方がずっと辛いし、深い傷になる。残酷な言い方をすれば、自分の大事な人が生きていれば、10万人死んでも100万人死んでもいいと思ってしまうのが人間なんだよ。
そう考えれば、震災被害の本当の「重み」がわかると思う。2万通りの死に、それぞれ身を引き裂かれる思いを感じている人たちがいて、その悲しみに今も耐えてるんだから。
だから、日本中が重苦しい雰囲気になってしまうのも仕方がないよな。その地震の揺れの大きさと被害も相まって、日本の多くの人たちが現在進行形で身の危険を感じているわけでね。その悲しみと恐怖の「実感」が全国を覆っているんだからさ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」