« 2007年3月 | トップページ | 2007年5月 »

:id.:format とかページネーションとか

 数年前 Ruby でやってみようとはじめていた、とあるプログラムを「 Rails でやってみたらいけそうな気がする」というだけで始めたところ、意外にもうまくいった。途中なんどか処理のミスで修正を繰り返しはしたものの、概ね処理は問題ないしということで、全体的な修正をこのところしていたのだけれど、いよいよ終わったかなというところ。

 そもそもは膨大なデータの扱いを、以前はテキストファイルで持っていたのだけれど、それがデータベース管理できるので何かと便利になった。

 多数の数字の範囲を比較するという処理を繰り返すのだが、Range などというありがたいものが Ruby には備わっていると知ってなおのこと「これはいける」などと思ってしまった。もちろん仮になくても作ればよいのだろうけれど、あらかじめ用意されているということの信頼と便利はまた別物。これによって比較による条件分岐もすっきりしたし、その応用で分岐後の処理にしても随分と楽になったような気がする。

 それはともかくとして、今回 Rails をアップデートしてから始めたら、なんだか url が妙なことになるので気になっていた。何かを間違えているのか、仕様が変わったのか、 1.1.6 の時には起きなかったと思うのだが、1.2.x になったらのような気がする。url の末尾に /:id.:format という文字列がついてしまう。observe_field とか使っているせいなのか? とも思ったが、必ずしもそうでもないようで、仕方なく :id => '' として対処していたりする。なんだかなあ。(:id 指定が必須になったのか? とも思ったけれどそうでもないような感じだし)

 大体できたところで、縦書き表示に悩む。以前どこかで見たような気がしたので HTML の本を見直すと、あるにはあった。ただし IE 5.5 以上限定のスタイルシートで。当然 Firefox ではエラーだといわれてしまう。とはいえ、漢数字で縦書きにしたい例があるため、たとえ IE 5.5 以上限定でも対応できるなら使ってしまうか、ということで View を書いてみた。

 テーブルタグが横長になるので右から順に並ぶように array.reverse_each を使ってみる。しかしフィールド毎に each しなくてはならないので妙に煩雑なものになってしまう。それでも一応できることはできた。とりあえずの見た目は悪くない。

 そして印刷。左端しかプレビューされない(笑)。通常の縦長であれば、ページ送りするだけで印刷可能だが、横長の場合にはどうやら用紙サイズを巨大にしないと普通には印刷できないらしい(なにか手段があるのだろうか?)

 ということでページネーションだなと、普通に paginate を使ったらエラーになってまったく表示できない。いろいろ考えるとフィールドの数だけイテレートしているのでおかしくなっているのでは? という想像だけはできた(あっているかどうかはわからないが)。となれば自前でやるしかないのか、ということで、なんとかページング処理を書いてみたところ。

 将来的に縦書きスタイルシートが標準に採用されるとは考え難いので、まあ、こんなものかなと。

 ということで今回は比較的短期間で出来上がったようだ。とはいえ、実際の運用を想定すると Rails 環境は望めないのでさてどうしたものか、というあらたな悩みも・・・。

| | コメント (0) | トラックバック (0)
|

早川さん

 [ Horror & SF - 「今日の早川さん」を含む日記・キーワード・あしか・掲示板 ]

 ひと昔前の SF 者を思い出すような。やじうまWatch 経由で知った。

 早川さんには、早川書房のロゴの秘密をぜひ解明して欲しい。

#それにしてもなぜ帆掛さんだけ、出版社ではないのだろう?

| | コメント (0) | トラックバック (0)
|

ライフゲーム


 arton さんのライフゲームをみてきたら、ふと昔 88 で BASIC を使ってプログラムしたのを思い出した。テキスト画面を使っていたのでちょうど同じようなイメージで、なんだか懐かしい。(画面は狭いし、遅かったけれど)

 どうやって判定させるのが効率的だろうか、といろいろ考えたのも思い出す。JavaScript は分からないのだが、どう判定させているのだろうか。

 やっぱり「 r ペントミノ」がライフゲームの基本だよな、と妙に嬉しかったり。

 この本がまだあるのも嬉しい。

ライフゲイムの宇宙
ウィリアム・パウンドストーン 有澤 誠
4535783837


#ライフゲームについてはライフゲーム - Wikipediaあたりをどうぞ。

| | コメント (2) | トラックバック (0)
|

一筆啓上


長崎市長への七三○○通の手紙 増補版―天皇の戦争責任をめぐって長崎市長への七三○○通の手紙 増補版―天皇の戦争責任をめぐって
径書房

径書房 1989-09
売り上げランキング : 566341

Amazonで詳しく見る
by G-Tools

 世界を荒らしている根本的な原因はおそらく自明のものであろうけれど、もはやそれはどうすることもできない次元に達しているというのが哀しいかな現実。そして歴史はいつも繰り返される。

 貴重なものほど入手が難しくなっている時代、同様の内容で放送された NHK の特集番組でもアーカイブで見られたらと思ったりもする。

#ちなみに某局では前市長である本島等さんのお名前を「モトジマ」さんと読まれていましたが、「モトシマ」さんが正しいかと。

| | コメント (0) | トラックバック (0)
|

桜花

 先週の暖かさで一気に桜の開花が進んだ。

20070415_sakura_02

 メジロがさかんに群がって蜜をすっていたのか、ついばんでいたのだが、なかなかその全体を捉えることができなかった。
20070415_sakura_11_1

 こっちはヒヨドリ?
20070415_sakura_14


20070415_sakura_16

 お団子持って陽射しも穏やかな公園でのんびりお花見。混雑する著名なところばかりがお花見ではあるまいな。

| | コメント (0) | トラックバック (0)
|

ニョキニョキ

20070408_02_1


20070408_05


 カメラを地面におくようにして見上げて撮影してみたので、構図はまったくの感覚。ゆえになんだかいまひとつ。でもまあそれもまた面白いだろうということで。植えたわけでもないのにいつの間にやら次々と増殖している彼らはこの先どうなるのだろう。

| | コメント (0) | トラックバック (0)
|

チェックボックスで範囲指定したい

 1 から 10 までの数字を表示させて、それぞれにチェックボックスを設定。ボタンで送信すると値としてそれぞれの数字が送られるとする。

 送られた数字の最大と最小を探して、たとえば 1 と 5 であったとしたら、(1..5).each do |num| ・・・ といった処理をして [1,2,3,4,5]  となるような結果を得たいと思っている。

 ひとまずチェックされた数字をすべてとりだして、
 start_num = チェックされた集合.sort[0]
 end_num = チェックされた集合.sort.reverse[0]
 といったかんじで最大と最小は得られたのだけれど、それらを使って連続した数字の集合を生成しようとしてもエラーになってしまう。(データベースのデータからなので to_i しないと文字として処理されてしまうというのもあるようだ。また、そもそも (start_num..end_num).each という書き方そのものが認められるのかもよく分かっていないのではあるけれど)

 で、アジャイル本を見ているとカートの作成ということで、データベースと関連付けないので ActiveRecord のサブクラスにしないで class を作るといったことがあって、これかな? ということでやってみたが、なんだかうまくいかない。

 最終的にはこれらデータベースから得た数字を比較したり、足したり引いたりしなきゃならないのだけれど、そうしたことにも影響するのだろうか。いまひとつそのあたりの理解が不足している。

#チェックボックスの問題そのものは、ひとまず必要なすべてをチェックすることで対処してはいるのだけれど、量が多くなると煩雑な作業になるのは否めないので、対策があればとは思うのだが・・・。

追記:0412
 「Rubyプログラミング入門」をパラパラと眺めていたら、最大・最小は max min がすでに用意されていることを知る。おまけにあれやこれやと知らずにいたことが発見され感服。必要は発明の母。

| | コメント (0) | トラックバック (0)
|

「キテレツ」「げあらか」

 げあらか百科 げあらか百科2

 さあ、あなたも身近な「げあらか」を探してみよう。

| | コメント (0) | トラックバック (0)
|

ローズウォーターさん、あなたに神のお恵みを


ローズウォーターさん、あなたに神のお恵みを
カート・ヴォネガット・ジュニア著 / 浅倉 久志訳
早川書房 (1982.2)
通常2-3日以内に発送します。

Amazon で見る

 ようやく購入して、ようやく読んだ。なんだか積年の約束をようやく果たしたような感じ。しかし、読後の素直な印象は「それで、どうなの?」といった感じだったりはする。訳者あとがきのジュディス・メリルの文章を読むと、あーそういうことなのか、と改めて理解。それでも読者の好みは大きく分かれるのだろうなとは思う。

 といいつつも、「プレイヤー・ピアノ」とか「タイタンの妖女」とか「スローターハウス5」とか読んでみたいなとは思う。だいたいずっと気になっていながら、なぜこれまで読むことがなかったのだろうと思うのだから。いよいよと思った頃には品切れ状態が続いていたというのもあるのだけれど。

| | コメント (0) | トラックバック (0)
|

モデルとフィールド

 items テーブルに :all, :integer というカラムがあるとする。

 フォーム上で a b c d の4つのフィールドから数値を入力し、これらを、a*1000+b*100+c*10+d といった感じで合成したデータを params[:item][:all] として保存したいと考えている。

 当然モデルには a b c d は定義されてないので、ここにメソッドとして定義して処理するのだろうなと思うのだが、どう書けばよいのか? ひとまず「かんたん RoR 」の例を参考にして、

[ model/item.rb ]
def a
end

def a=(a)
 xxx(a)
end

def b
end

def b=(b)
 xxx(b)
end

def xxx(a)
 ...
end

 のような感じでやってみたものの、まったく機能していない様子。コントローラで処理してもいいのだろうか、とも思ってそちらで

params[:item][:all] = param[:item][:a] * 1000 + ...

 といった感じにしてみても同じくうまくいっていない様子。

 合成しようとなどせずに、個々にカラムを作ってしまえば一番よいのかもしれないのだが(やたらとカラム数が多くなるという弊害はありそうだけれど)、後の処理を考えると合成したデータで保存できていた方が便利ではと思っているので、なんとか実現させたいのだけれど、もはや頭グルグル状態。Ruby のメソッドのあたりのマニュアルとか、あれこれ読んでみるものの、なかなか理解がすすまない。

追記:04/05
 楽にできるものをなにも苦労することもあるまいと、あっさりカラムを増やしてしまうことに変更。いやまあ、やってみればそれはそれで学習にもなるしまったく無益でもないだろうけれど、編集ページでも再変換しなきゃいけないとか、本当にそれが必要なのかと考えると、もっと時間はほかに使ったほうがよかろうという考えもまた真であったりするなと。どのみち根幹処理をどうするのかはまだ決まってないわけだし。

| | コメント (0) | トラックバック (0)
|

山尾悠子作品集成


山尾悠子作品集成山尾悠子作品集成
山尾 悠子

国書刊行会 2000-06
売り上げランキング : 124779

Amazonで詳しく見る
by G-Tools

山尾悠子作品集成
山尾 悠子著
国書刊行会 (2000.6)
通常24時間以内に発送します。

 xiaoxia さんのところでふと見つけた「今読んでる本」から、そういえばこれは欲しかったんだよなあと思い出した。高いけど。ただ、まだ最近の出版のような気がしていたのに、すでに 7 年前というのがちょっと驚きだったり。そんなに前だったのか。すっかり忘れていた。ということでメモのためにも残しておくことにしよう。

 山尾悠子という人を知ったのは恐らくは入手した「別冊新評」だったかと思う。さほど読んだ記憶はないのだけれど、一種独特な感じだけどこかに残っている。当時はそうした不思議な作家がたくさんいた時代だったようにも思うけれど、今ではみなどうしているのか? という情勢なのではないかな。

 やや趣は違うかもしれないが、殿外みな子(とのがい みなこ)なんかも好きだったし(「エフィラの想い」は良かった)、なんとも不思議な世界という点では岸田理生とかデビュー当時の牧野ねこ(のちの牧野修)とか。

 今となってはそうした作品もなかなか読めなくなっているという意味でも、この作品集成は貴重だなと思っていたのだった。ま、詳しくは xiaoxia さんのところを読んでいただくのが一番かと。

Yamaoyuco_03


Yamaoyuco_01


Yamaoyuco_02

#それにしても、古い(笑)。

| | コメント (4) | トラックバック (0)
|

« 2007年3月 | トップページ | 2007年5月 »