2003年10月1日
inlineimage.rb
一歩さん(http://member.nifty.ne.jp/ippo/s_d200310.html#d1_t2,一歩さん)がおっしゃるように、:AFTER_Pで通すってのは思いついたのですが、どうやって書いたらいいのかわからなかったのでした。@diary.filter.filter(str, :AFTRE_P)だけで通すってのはだめだったっぽい。吐き出されたHTML中にはfalseって文字が出てたし。
spanでもいいんじゃないかな〜などとも思ってはいたのですが、はて、ブロック要素だったっけ?と思いもしたので、divで囲もうかな〜とポチポチと打っていたわけですが、上記の如く失敗に終わりましたとさ。
2003年10月2日
inlineimage.rb
一歩さんより。
spanはinline elementって事でいいようです。じゃあそれでいいじゃん。駄目?
いいんじゃないでしょうか。どこぞからブロック要素云々という声が聞こえたような気がするので、divでやってみっか〜と。
昨日もかいた気がするけど、たとえば@diary.filter.filter(str, :AFTER_P)ってやろうとして結果エラーだったのだけども、通らんのだろうか。divタグをつけたあと、もう俺はHTMLに変換されたんだから(ウソだけど):AFTER_Pで通してくれよ〜ってな具合で。ダメだったんだけど。そういうウソはとおらんらしい?
まぁ、そもそもボクはあまり写真アップしない人なので試しに作ってみたかっただけなのでした。ダメだったけど(T-T)
2003年10月3日
imageplus.rb
おばたさんからつっこみをいただいたので、ちと試してみよう。れっつとらい。falseになるなぁ。ol.rbでそうやって通せるならば:AFTER_Pと偽って通すのもできるはずなのに。なんでだろう。そもそも出力結果がfalseってなんじゃ。今まで見たことないわい。
ためしにreturn :THROUGHと入れてみる。ん〜、これだと全部pタグが抜けてしまう。
image(img/yubiwa.jpg yubiwa 100x100)
あ。でけた。気がする。if文で該当箇所ヒットさせてから、そのif文の中でreturn :THROUGHをかませてみたら、div前後だけpタグが抜けた。あぁすっきり。以下にさらしておきましょう。ちなみにimagesizeとかで画像のサイズを調べたりしてません。
class Filter
def imageplus(str, type)
case type
when :P
if /image\((.*?)\)/ =~ str then
img = ''
str.gsub!(/image\((.*?)\)/i){
iurl, ialt, isize = $1.split(/ /)
img = %Q!<img src="#{iurl}" alt="#{ialt}"!
if /^(\d+)x(\d+)$/ =~ isize then
w, h = $1, $2
img << %Q! width="#{w}" height="#{h}">!
css = @diary.config['IMG_DIV'].to_s unless @diary.config['IMG_DIV'].nil?
img.replace("<div class=\"#{css}\">" + img + "<\/div>\n\n")
end
}
return :THROUGH
end
end
end
endなんつーか、filter(str, :hogehoge)とか:THROUGHの書き方がよくわからんくて苦労した。ちなみに、ndiary.confでIMG_DIV = hogehogeとか書いておくと、divタグのなかにCSS用にclassを付け足す用にしてます。confに入れるほどじゃないと思うけど、ちょっとやってみたかったんだよ。
2003年10月4日
レイアウト変更
なんとなくレイアウト変更。左端の部分とか。まだ考えながらなのでどういうデザインにしたものか。
アイコンをメニューに追加してみた。少しだけだけどなんとなくすっきり。もうちょっといじるかな。
2003年10月5日
divとp
ISBNなりimageなりのメッセージが ぬけてしまうかも(http://member.nifty.ne.jp/ippo/s_d200310.html#d5_t4,一歩さん)、というご指摘。確かに。
メッセージ
(imageもしくはISBN)
とした場合は、おそらくメッセージを囲むpも抜けることでしょう。しかし、うちでは
メッセージ[改行]
[改行]
(imageもしくはISBN)
または
(imageもしくはISBN)[改行]
[改行]
メッセージ
としてるので、問題なしですよ。nDiaryの仕様では改行と改行の間の文字をpで囲んでしまうようなので、メッセージとISBNなりimageなりを続けて書かかずに改行をはさめば問題ないでしょう。でもそういう書き方ではなく続けて書きたいという場合はどうにかしないといかんですね。
2003年10月7日
■MySQL[DB]
ちょっとMySQLに興味あり。先日より暇なときに続けている、金田一シリーズの角川版表紙リスト(ISBNコードとか価格とか表紙絵作者とかもリストにいれてます)をWebにてDB化してみたいな〜などと。元は掛谷さんとこのが完全なリストだから公開する意味合いはほぼゼロなのですが、まぁ自分の所蔵リストってことで。
そういうわけで、ちょっと本屋で立ち読みしたりネットで調べたりと情報収集中。xreaはボタン一発でMySQL設置とPHPMyAdminも設置できるようだが、その後の作業がわからないんじゃ話にならんしね。
リストはタブ区切りのcsvファイルがあるからそれを丸ごとDBにとりこめば大丈夫でしょう。今調べているのは、HTMLに表示する部分関連を読み漁ってます。まぁ大体がPHPでレコードを引っ張り出して捜査する話なんですが。この間本屋で読んだ本にはRubyのmysqlライブラリを使って捜査するのが出ていたなぁ。そこら辺がもうちょっとわかってから設置することになるでしょう。
■オンラインゲーム[Game]
なんとなく先週あたり?からラグナロクにはまっている。今はmagicianLV36くらい。気が向く限りつづけてみる。もちろんUOはやめてませんよ。
あ。UOも何か導入されたんだっけ。今日はまだ入ってないなぁ。あとで家を見てこなければなるまい。
2003年10月8日
■MySQLとか[DB]
某Iさんから反応?有り?
えっとえっと。SQL自体はMicrosoftのAccessである程度いじり倒してるので(VBAでSQL書いたりしてる)たぶんリレーショナルを考えるのは自分的には問題ないかと。かといって何も見ないですらすら記述できるか?と問われれば答えはノー。
あまりDB自体マジメに取り組んでなかったし、手探りでAccessいじってたので正規化なんてコトバは分かりませんが・・・
Table1
ID
人物ID
属性
Table2
人物ID
人物名
フリガナ
.
.
.
とかテーブル作ってテーブルを分けるあたりが正規化?
もちろんSQLでTable2から人物IDが一致する人物名だけとってきて・・・ってな具合でレコードリストを抽出してHTML上で見るとかするのが、最終目的。
どうも考えながら打ってるのでまとまらんな。phpmyadminでDB作成とかその辺は立ち読みしたので、なんとなく大丈夫そうだ。データも先日書いたようにcsvなタブ区切りテキストファイルを読み込ませれば、1件づつレコード挿入していかなくてもよさげ。
問題なのは、このDB/tableのレコード群をどう抽出して表示させるか?本を読んだところ、PHPで操作するものばかりで、rubyでどう操作していいものやら。
多分、その辺はメールで問い合わせるでしょう。某Iさん宛に:-)
HTML上で抽出用フォームを用意して、条件を入れて、ボタンを押せばそれに応じたライブラリを呼び出してレコードを抽出させてHTMLに表示する流れ?そのライブラリが某Iさんの悪戦苦闘の跡が残る一品ですかな?
そういや、画像の取り扱いもまだよくわからんなぁ。表紙絵をスキャナで取り込んで、サーバ上のフォルダに入れておいて、そこへのパスを管理すればいいんかな。で、抽出後HTMLに表示する際はそのままパスを埋め込んでやればWEB上では画像が表示される?
以下作成予定DBメモ
DB名:yokomizo
└Table名:kindaichi
└Fields:
├ID:連番で振っていく。primarykey
├title:本のタイトル
├cover:表紙絵ファイルへのパス
├painter:表紙絵作者名*対象は3名程度なので、別テーブルにする必要はなし。
├edition:猫旦那が所持している版
├editiondate:所持している版の発行日
├afterword:あとがきを書いた人の名前
├bookcode:ISBNもしくは旧書籍コード
├price:出版時の価格
└key:304の1とか各タイトルごとの一意のコード。角川独自?
ふぅ。ruby/mysqlをさがしてみるか。
MySQL Ruby Module(http://rubysdl.s1.xrea.com/archive/mysql-winpkg/README-winpkg.ja.html,MySQL Ruby Module)
とりあえず、MySQL設置申請。数時間かかるらしい。ついでにphpmyadminもインストール申請。
無事設置できたようだ。次はphpMyAdminにアクセス。コンフィグファイル中で$cfg['PmaAbsoluteUri'] = ''を設定してくれだそうだ。どうもよくわからんので、FTPでサーバからそれっぽいconfigファイルを落としてきて開いてみる。あったあった。該当行を書き換える。
自分でアドレスをうちこんだらどうも動作が変になった。phpMyAdminページの画像がでなかったり。DB操作しようとするとエラーでファイルがありませんだとか。しょうがないから先ほど書き換えたconfファイルの該当行を削除して、こんどはphpMyAdminのページのアドレスをブラウザからコピーしてきてペースト。
うむ。こんどは問題なし。なんだったんだろうね。
DB名はめんどくさいのでデフォルトのままにしてみる。テーブルは上記の通りに作成。
DB名:yokomizo
└Table名:kindaichi
└Fields:
├id: int, not null, auto_increment *primary
├title: text, null *本のタイトル
├cover: text, null *表紙絵ファイルへのパス
├painter: text, null *表紙絵作者名*対象は3名程度なので、別テーブルにする必要はなし。
├edition: text, null *猫旦那が所持している版
├editiondate: timestamp, null *所持している版の発行日
├afterword: text, null *あとがきを書いた人の名前
├bookcode: text, null *ISBNもしくは旧書籍コード
├price: int, null *出版時の価格
└key: text, null *304の1とか各タイトルごとの一意のコード。角川独自?
問いになってない問いかけ。面倒おかけしまする。どうもテキストファイルをMySQLに食わせるのがうまくいかなくて煮詰まっている。各フィールドのデータに対してfield='data'と指定したものでないと食わないのかなぁ。てっきり、タブなりカンマなりで区切ったテキストファイルをそのまま放り込めるもんだと思ってた〜。いや、できるはず。
できねーじゃねーか。どこを設定し間違えてんだろう。いや〜むかつく。これを解決するためだけに何千円もだして本買うのも腹立たしいしなぁ。やはりRubyで一括してデータ入出力するためのスクリプト書き上げるか?あぁ、不完全燃焼。
Rubyライブラリの説明(http://www.tmtm.org/mysql/ruby/README.ja,Rubyライブラリの説明)
2003年10月9日
■MySQL[DB]
奮闘中。あまりのわからなさに本を買ってきてしまった。まぁ、あれだ。ネットで調べるのは便利だし、なんかしら情報はおちてるんだろうけど親切な解説サイトがあるかどうかは別問題だなぁ。
xreaのサポートDBではDBはtestとユーザー名のDBの二つだけっぽいことが書いてあったが本を見て、
$cfg['Servers'][$i]['only_db'] = array('aturust','book');としてみた。ん〜、左側のフレームにはaturustのDB名しか出てないが、右側のフレームでDBリストを見るとbookのDBもあるように見える。がアクセスできん?
むむっ。xreaサポートボードに、LOAD DATAに関して管理者さんのコメントを発見。
現在は、セキュリティ上ご利用いただけません。
サーバー毎にMySQLのバージョンが違い、そのバージョンあたりで標準仕様が変更されるなどゴタゴタしていますので、
安全と判断できる状態になってから許可とさせていただきます。
http://www.mysql.com/doc/en/LOAD_DATA_LOCAL.html
__________________
XREA.COM - Free Web Hosting -
URL:http://www.xrea.com/
MAIL:http://www.xrea.com/?action=mail
このコメントは2001/9/28だった。でも、いまだにaccess deniedって出るって事はまだ許可されてないんだろなぁ。やはり一歩さんのようにINSETRT文を書くしかないのね。INSERT文を書くRubyスクリプトをまずは書き上げねばなるまい。
とりあえずできた。でもいちいち実行する前に**.rbファイルを開いて、csvファイルを指定するために書き換えるのはだるいな。
ruby insertdata.rb kindaichi.txtってやって、このテキストファイルを中でつかうにはどうアクセスしたらいいのん?$stdinかい?どうもちがうらしい。これだとはきだされんかった。
とりあえず、第一段階終了かのう。本当はサーバ上にcsvファイルをアップして、HTMLのフォームにファイル名を入れてボタンを押せばテーブルにデータを一括挿入ってのをしたいんだけども〜。insertdata.rbで吐き出されるINSERT文をruby/mysqlを使ってデータベース->テーブルとアクセスして渡せればいいんだろう。多分。
おぉぅっ?できた〜。insrtdata.rbで1レコードづつINSERT INTO ...ってな文に書き換えてsql.txtってのに吐き出させて、それをphpmyadminに食わす。レコード77件挿入完了。でもあと数十冊取り込んでないのが(*1)あるので先は長い。
次ぎはHTMLでの表示系とruby/cgiを組むか。一歩さんのを参考に。毎度すいませんなぁ。自分で作ったinsrtdata.rbも汎用的ではないので、それもサーバ上のファイルを取り込んでDB -> tableに渡すまでのに仕上げたい。
2003年10月10日
■DBインターフェース[DB]
一歩さんからの頂き物を解読しつつ参考にさせていただいて、自分のDBのためのインターフェースを考え中。解読と同時にプログラムを書いていっております。とりあえず、検索とかソートとかそういう機能はまた考えるとして、テーブルは1つだし全レコードをリスト表示するべく書いてる途中なんです。
でけた。やっとだ。いや〜・・・とても手がかかった。今までで一番かもしれん。nDiaryのfilter/pluginではファイル単体のみでいじってたけども、今回のDBインターフェースは3ファイルほどにまたがって作っていったので、一歩さんのを見ながらとはいえだいぶ勉強になったョ。別ファイルに機能をわけてライブラリ的な?使い方を覚えた。多分。つっても、まだ全レコードをテーブルにだすだけですが。
所蔵本データベース(http://aturust.com/book/index.html,所蔵本データベース)
これでさらに検索機能をつけるとなると気が遠くなるなぁ。
2003年10月12日
■所蔵本データベース[DB]
この間の続き。全フィールド表示に加えて、タイトル毎に何冊持っているか?のテーブル表示も加えてみた。ついでにフィールド名をASで置き換えてちょっと見栄えを変えてみた。
SELECT fieldname1 AS new_fieldname1, ・・・てな具合。
それから、表紙絵のテーブル表示も追加。いやぁ・・・いまさらながらRubyの記述につまづく。やはりまだまだ未熟だね。
2003年10月13日
■神津恭介シリーズ[DB|本]
本部屋から発掘した。角川版のです。で、この間と同様の作業でデータベースに神津シリーズ用のテーブルを追加して、カンマ区切りのテキストファイルをRubyで書き出して、インターフェース用のindex.cgiを書き換えたとさ。
2003年10月14日
■EQ[Game]
今日もEQをやっていた。人間のモンクでキャラクターを作成したので、Freeportという街から出発。街周辺でレベル上げ。やっとLV5です。レベル上げと同時に、MonkGuildのマスターからMonk用の装備を作ってみるか?という問いがあったので、チャレンジしてみた。せっかくだからローブを作ってもらうために、材料を聞いて集めてやっとこさ完成。
材料
Matted Lion Pelt ×5
High Quiolity Cat Pelt ×1
Lion Mane ×1
Leaf Scarab Carapace ×1
Giant Scarab Brain ×1
Cloth Shirt ×1
これをGMからもらったAssembly kitで上記材料を合成。するとStonehand Robe Materialができる。その後、とあるお店の2階にあるSewing kit(*1)で、GMにもらったローブ用の型紙を一緒にSewing kitへ放り込めばEobe of Stonehandが完成。まぁ、初心者Monk用なのでそんなにすごいステータスがつくわけじゃないんだけど、それでもまぁありがたい。
ってなことをずっと帰ってきてから、やってた。
2003年10月26日
テキストファイル
仕事上のちょっとしたメモをCLIEに入れておくことが多くなってきた。それに伴って、PDAに標準添付のメモ帳では満足できなくなってきている。4kBの制限はきついのだ。最近のPDAでは外部メモリがどの機種でも大体使用できるので、やはり外部メモリ上のテキストファイル*.txtを編集できるようなソフトが欲しいところ。
とあるPDAライターの方もおっしゃっているが、今のところPDAテキストエディタでは今ひとつなのだ。ストレスなく使用するには、メモ帳のように編集・保存に関しては特別な動作を必要としないようにして欲しい。CrsMemoが一番機能的には使いやすいような気もするが、保存する際に名前を入れる必要がある。
Windowsユーザーの方でPalmを使ったことの無い方ならばご存知ないでしょうが、Palmに関しては保存という動作が基本的に必要ないのだ。標準のメモ帳というソフトの場合、リストにあるファイルを開けばそのまま編集できるし(編集するファイルを読み込みにいったりしなくて良い)、閉じれば自動で保存してくれる。ファイル名はどうなるのかというと、1行目の文字がそのままファイル名となる。
やはり、メモ帳に置き換えられるくらいのテキストエディタを考えるならば、こういう動作にして欲しい。自分で作れるかなぁ?などと考えもしたが・・・どうもそんな元気はないようだ。
2003年10月29日
■佐竹さんという作家[本|diary]
お亡くなりになったそうですな。ちょっとびっくりした。この間(先週?)とある大きな本屋で立ち読みした駐在巡査という佐竹さんの本を立ち読みしておもしろかったので買って帰ったのですが、その作家さんでしたね。残念でなりませぬ。
そうえばISBN書き忘れてるな。















