最近のトラックバック

Twitter

楽天

« 2008年2月 | トップページ | 2008年4月 »

2008年3月

ActiveScaffoldで表示するレコードを設定する

一覧を表示する際に、ある特定のカラムがAであるものののみ、
もしくはAでないもののみ表示したいということがある。
たとえば、一覧上からは消したいけども、DBからは消したくないのでフラグ用のカラムをつけて、
falseのものは

表示しない

という場合。(今回がコレ)

このような場合,

ActiveScaffold

では、"conditions_for_collection"というメソッドを作ってやることで可能になる。

class TestController < ApplicationController
    active_scaffold :test

   def conditions_for_collection
        ['enable IN (?)', ['true']]
    end

end

上記の場合、"enable"というカラムが"true"のもののみが表示されるようになる。

3/29 お花見ポタ

桜も満開になったし、カメラも買ったし、週末晴れなのは29日だけということで、お花見ポタに。
…だけど、前日自宅サーバ用PCの構築をしてたらほとんど徹夜してしまったので、
当初考えていたルートはやめて、昼過ぎにはうちに戻る短いコースで。

↓これは近所にある二ヶ領用水の桜。まだ10時前なので、あまり花見客はいなかった。
Hanami1

↓多摩川の河川敷。この日にみた中では一番きれいだった。
Shanami2

↓花見客からえさをねだるねこ。今日は猫がほどんどいなくて少し寂しい。Hanami3

こんな感じで、桜のある二ヶ領用水や多摩川、等々力緑地をメインにポタ。
昼を過ぎるとさすがに眠くなって、帰宅。21時ごろまで寝てしまった。



Hanami4


走行距離:33.21km
走行時間:2時間34分
最高速:42.5km/h

3/27 DMC-TZ5購入

前から、コンデジを買いたかったのだけど、ついに買ってしまった。
買ったのはPanasonicのDMC-TZ5。
価格は2GBのSDカードをつけて、約40,000円。

サイズは大きめだけどその分持ちやすく、特に写真を撮るときに指が液晶に触れないのが気に入った。
今回のカメラ選びはワイド側の焦点距離が短いものを探していて、これは28mmから。
なのに、テレ側では280mmの10倍まであるので、主に使う予定の風景や動物なんかをとるには汎用性が高そう。

質感はR8なんかと比べると安っぽく感じる。

お昼寝 (今日のテーマ)

BlogPet 今日のテーマ お昼寝
「ぽかぽか陽気の日にはついついお昼寝をしたくなりますが、あなたはどこでお昼寝をするのが好きですか?」
ベッドの上。
公園のベンチとか、テントの中なんかも好きだけど 

お花見 (今日のテーマ)

BlogPet 今日のテーマ お花見
「今年はお花見やりますか?やるとしたら何日で考えてますか?」
今週末にやるとかいう話が出てたり。
参加するかどうかは別だけど。
 
ほかに散歩がてら自転車で近場のお花見スポットに行ったり、
甲信方面へ花見旅行へ行こうかと考え中 

3/24 モンベルのマット その2

前に、モンベルのサイトにないマットがあったことを書いたけども、
少し前にモンベルのサイトで春モデルの情報が公開され、また2008春夏のカタログも届いたので、
マットの詳細がわかった。

2008年の新商品で、名前はU.Lコンフォートシステム エアパッドである。
基本的にULコンフォートシステムパッドとほぼ同じ系統のつくりをしたエアマットで、
ほかのマットや枕と連結するためのトグルや、枕との連結用のピローストラップを備えている。

同サイズのコンフォートシステムパッドと比べて少し(数十g程度)軽いだけだが、非常にコンパクトになる。
大体、ひとつサイズの小さいコンフォートシステムパッドと同じサイズに収まってしまうくらい。
自分の自転車はあまり荷物をつめないので、コンパクトになるというのは魅力的。
エアマットは冬は寒いとよく言われるけど、寒い時期にはほとんどキャンプしないので問題ない。

これとは別に、クリングバックが前からほしかったのだけど、
これがアウトレット落ちしていて、2008年のカタログになく廃盤になるようだったので、
クリングバックを買うついでにエアパッド(150cmのやつ)も購入。

今使っているマット(プロモンテのやつ)と比べた写真がコレ(赤いほうがモンベル、黒いほうがプロモンテ)
Dcf_0003
容積としては大体4分の1くらい。むちゃくちゃコンパクト。
広げてみたのか下の写真
Dcf_0004
大体サイズは同じくらい。
ただ、ウレタンフォームが入っているマットと違い、中に何もなく厚みが8cmもあるので、
空気を入れるのは結構大変。
寝心地は結構いい。

コレで、20リットルくらいのバックに、テント、寝袋、マットが入るようになった。
たぶん30リットルくらいのバックがあればキャンプができそうだ。

○○タワー (今日のテーマ)

BlogPet 今日のテーマ ○○タワー
「東京タワーに京都タワー全国各地にいろんなタワーがありますが、あなたが行ったことのあるタワーを教えてください。行ったことのない人は行きたいタワーを教えてください。」
札幌のTV塔:いっただけ。登ってはいない
五稜郭タワー:これは登った
東京タワー:いったけど、これも登ってない
横浜ランドマークタワー:これは、タワーというよりビルか?
 
ぱっと思いつくのはこれくらいか…
 

ActiveCalendarの入力フォーマットを変える

ActiveScaffoldで日付や日時を入力するときに使用できるActiveCalendarだけど、
デフォルトの入力フォーマットが、

03/24/2008 11:00 AM

のように「月/日/年 時:分 午前・午後」のようになっていて、
日本で使うにはあまり使いやすくない。

それで、このフォーマットを変えるための方法。
元ネタはココ

ActiveScaffoldなので、Viewは直接いじらずに、
フォームをヘルパでオーバライドしてやる。

def begining_form_column(record,name)
    datetime_select(:record, :begining, :name=>name,
:ifFormat => "%Y-%m-%d %H" )
end

ポイントは赤字の部分で、オプションに":ifFormat"をつけ、フォーマットを記述してやる。
上記の場合は"2008-03-24 11:00"という表記になる。
フォーマットの詳細は以下

%y 年:世紀表示無し ( 00 .. 99 )
%Y 年:世紀表示有( ex. 1979 )
%b 月:省略形(英語表記)
%B 月:省略無し(英語表記)
%m 月:数字表記month ( 01 .. 12 )
%d 日:数値表記( 00 .. 31 )
%j  日:1/1から何日目か ( 000 .. 366 )
%a 曜日:省略形(英語表記)
%A 曜日:省略無し(英語表記)
%w 曜日:数値表記 ( 0 .. 6, 0 = 日曜日 )
%H 時:24時間表記(00 .. 23)
%I  時:12時間表記(01 .. 12)
%p 午前・午後表記:“PM” or “AM”
%M 分:00 .. 59
%S 秒:00 .. 59
%U, %W 周番号:1年の何週目か
%n 改行


窓の外は? (今日のテーマ)

BlogPet 今日のテーマ 窓の外は?
「突然ですが今日のあなたの住んでるところの天気は何ですか?」
晴れだけど、もやがかかっていて、すっきりとした天気でない。in 神奈川
桜が少し咲いていたので、公園でお茶でもとか思ったのだけど、どうも風邪気味。
来週の天気と桜に期待。 

WindowsVista x64でデフォルトで動作するWMPを切り替える

Windows Vistaのx64版にはWindowsMediaPlayerが32bit版と64bit版の両方が入っているが、
そのうちデフォルトでは32bit版が使われるようになっている。

せっかくの64bitマシンなので、ネイティブ対応されているアプリがあるなら使ってやろうというわけで、64bit版を使用するように変更する方法。

コマンドプロンプトを開いて、以下の通り入力する。

%windir%\system32\unregmp2.exe /SwapTo:64

次に、regeditでレジストリを参照して、
「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\wmplayer.exe」
のキーを探す。
ここのPathの値を「%ProgramFiles%\Windows Media Player」に変更する。
これでWMPが、x64版をデフォルトで使うようになる。

元に戻す(32bit版をデフォルトにする)時は同様にコマンドプロンプトに以下の通り入力する

%windir%\system32\unregmp2.exe /SwapTo:32

そして、レジストリのキーのPathを「%ProgramFiles(x86)%\Windows Media Player」に戻す。

参考URL
http://www.windows-now.com/blogs/chris123nt/archive/2006/10/10/WMP-on-Vista-x64.aspx

firefoxの設定バックアップ、リストア

firefoxの環境(ブックマーク、アドオン等)をバックアップ、リストアする方法のメモ

  1. firefoxの設定ファイルは"%AppData%\Mozilla\Firefox\Profiles"以下にプロファイルごとのフォルダとしておいてある。
  2. プロファイルを管理しているのは"%AppData%\Mozilla\Firefox\profiles.ini"。
  3. リストア時には、firefoxをインストール後"%AppData%\Mozilla\Firefox\Profiles"にバックアップしたデータを戻し、"%AppData%\Mozilla\Firefox\profiles.ini"を書き換える

詳細な手順については下記リンクを参照のこと。
http://www.atmarkit.co.jp/fwin2k/win2ktips/751firefoxprof/firefoxprof.html

ほかにfirefoxのバックアップを行うソフトもあるみたい
http://www.itmedia.co.jp/enterprise/articles/0708/14/news006.html

3/21 Vista SP1インストール失敗その後

19日にVista SP1へのアップデートを失敗して起動しなくなったPCの対処。
そのままVista再インストールしても、サウスブリッジの新しいドライバとかないのでSP1へアップデートはできなさそうなことと、
そろそろPCの組み替えを考えていたこともあり、PCを組み替えてからOSを再インストールすることに。

とりあえず、秋葉原へ行ってパーツを入手。

CPU:AMD Athlon64 X2 5400+(62W版)
     いろいろ問題のありそなPhenomはパス。
    4コアあっても使い切れるような用途に使うわけでもないし。
MEM:DDR2 800 2GB x 2
    4GBで約8000円。メモリってほんとにやすくなったね。
マザー:ECS A780GM-A V1.0
    これが発売されてたから、PCを組み替えたようなもの。
    ATXフォームファクタでサウスブリッジがSB700のマザーを待ってました。

以上3点。

とりあえず、PCを組み直す。
SATAをAHCIにすると、どうもHDDが認識されない。
なので、IDE互換モードで接続する。

そのほかは、取り立てて問題なくVistaインストールまで進む。
一通りのドライバとWindowsのアップデートをを行った後、SP1を当てる。
今度は問題なくアップデートされた。

再構築したPCは結構動作が軽くなった気がする。
Vistaのシステム評価も5.0(CPU:5.0,MEM:5.0,グラフィック:5.9,ゲーム用グラフィック:5.4,HDD:5.4)から、
5.3(CPU:5.3,MEM:5.9,グラフィック:5.9,ゲーム用グラフィック:5.4,HDD:5.4)にあがった。
でも、PCのアップグレードとOSの再インストールをしたのでSP1での性能向上はあったのかどうかはあまりわからなかった。
ネットワーク越しのデータ通信は早くなった気はするけど。



ActiveScaffoldListFilters

やりたいことの中に、「Excelのオートフィルタのように各カラムごとに表示するデータをフィルタする」というのがある。
ActiveScaffoldで、これができそうなプラグインを見つけたのでメモしておく。

ActiveScaffoldListFilters
http://code.google.com/p/activescaffoldlistfilters/
http://groups.google.com/group/activescaffold/browse_thread/thread/7364d2f75aa77f7d/3b2263089e845638

Activescaffoldでdate/datetimeをカレンダーで入力する

activescaffoldを使うと、dateやdatetimeの入力は自動的にプルダウンでの入力になる。
しかし、プルダウンでは結構入力しにくい。

なのでカレンダーを表示させて、ここから日付や時刻を入力させたい。
ActiveScaffoldで使えるプラグインは以下のURLに載っていて、
その中でActiveCalendar と、CalendarDateSelectが使えそうなかんじ。

http://wiki.activescaffold.com/wiki/published/ThirdPartyPlugins

ActiveCalendarのほうが、使いやすそう&時刻も入力できるので、こちらを使う

まずインストール。

./script/plugin install http://activecalendar.googlecode.com/svn/trunk/activecalendar
次にlayoutに下記を追加
<%= stylesheet_link_tag "/javascripts/jscalendar-1.0/calendar-win2k-cold-1.css" %>
<%= javascript_include_tag "jscalendar-1.0/calendar.js" %>
<%= javascript_include_tag "jscalendar-1.0/lang/calendar-en.js" %>
<%= javascript_include_tag "jscalendar-1.0/calendar-setup.js" %>

これで終了。viewやhelper,controllerに手を入れる必要はなし。
これだけで、date_selectやdatetime_selectを上書きしてくれる。

インストールされたライブラリの中を見ると、calendar-ja.jsとかもあるので、
日本語にローカライズもlayoutでcalendar-ja.jsを指定すればできそうなのだが、
単にcalendar-en.jsを置き換えただけだと動かなかった。

3/19 またしてもSP1アップデート失敗

19日にVista SP1が公開されたので、64bit vistaを導入しているデスクトップマシンをアップデート。
そしたら、ドライバの問題でアップデートできないとか表示される。

怪しそうなドライバがいくつか思い当たったのだけど、
そのうちグラフィックカードのドライバをアップデートしたら、SP1のインストールが始まった。

普通にアップデートは進んで、問題なさそうだったのだけど、
インストール終了後の再起動でブルースクリーンが発生し、再起動をかけてもOSが立ち上がらなくなってしまった。

ブルースクリーンのエラーをみると、"driver_irql_not_less_or_equal"とか"PCIIDEX.sys"というのが、キーになりそうだったので調査。
どうもSATA周りでエラーをはいているっぽい。
今使っているマザーはASUS A8R-MVPで、ATI CrossFire Xpress 1600+ULi M1575。
このサウスブリッジはnvidiaに吸収されたULi製で、どうもvistaに正式対応したドライバを配布していない。

なので、OSを再インストールする必要もあるためPCの組み替えをすることにする。
やっとこさ安めのAM2+のマザーが出始めたので、20日に買いに行く予定

暖房器具の片付けどき (今日のテーマ)

BlogPet 今日のテーマ 暖房器具の片付けどき
「暖房器具はまだ出してますか?出してる方はいつぐらいで片付けます?もう片付けたかたはどれぐらいで片付けましたか?」
暖房器具は出してるというか、エアコンオンリーなので、夏も冬も出っぱなし。
(電気代は会社持ちなので、あまり懐を気にせず使えるので…) 
とりあえず、一週間くらい前から暖房は入れていない。
 
大学時代は北海道だったので4月5月くらいまでは暖房入れてた気もする。

3/17 デジカメその2

前にデジカメについて、ほしいということを書いたけども、
昨日、ほしいデジカメをみようとビックカメラまで行ってきた。

候補のやつをいろいろみてたのだけど、
FinePix F100fdはデザインが気に入らなかったので、没に。
LUMIX DMC-F35はコンパクトでいいのだけど、Caplio R8と比べるとこちらの方が好み。
LUMIX DMC-TZ5はこれらの中でグリップがあり、持ちやすく液晶が大きいのがいい。

で、だいたいR8とTZ5に絞ったのだけど、値段から考えるとおそらくTZ5に決まりかな。
春の賞与がでたら、注文しよう。

ペットとの思い出 (今日のテーマ)

BlogPet 今日のテーマ ペットとの思い出
「犬やネコなどのペットとの思い出を教えてください。ペットを飼ったことのない人はBlogPetの思い出を教えてください。」
実家では、一時期猫3匹、犬一匹飼ってました。
この犬は、確か小1の時から飼い始めて、大学4年くらいまで生きていたので、
だいたい17年くらい長生きした。
また猫のうち1匹も小2か3くらいから、一昨年まで生きた。
この2匹の犬と猫は、旅行好きの家族に連れられて、北は北海道、南は鹿児島まで旅した家族でした。
もう一匹の猫は上記猫の娘で、 半ノラ化しちゃってたのであまり旅行に連れて行ってなかった。
この子が一昨日亡くなったと連絡もらいますた…
 
というわけで、今実家にいるのは残った、一匹の猫のみ。
この猫は、比較的新しい猫でうちの弟が拾った猫。
かなりやんちゃらしい。 

Windowsへパスワードの入力せずログオンする

WindowsPCを一人で使う場合、いちいちパスワードを入れるのはめんどくさい。
だけど、リモートデスクトップなどパスワードを設定しないと使えない機能もあるので、
パスワードはかけつつも、ログオン時にはパスワードを入力せずにすむための方法

Windows 2000(server含む):ファイル名を指定して実行から「control userpassword」
Windows XP:ファイル名を指定して実行から「control userpasswords2」
Windows Server 2003:同上
Windows Vista:同上

詳細はこのリンクを参照のこと

3/15 休日出勤

普段は土曜日は休みなのだけど、急遽休日出勤。
仕事は、事務所にICカードの入退室システムを導入するための、
電源タップとLANケーブルの敷設。

フリーアクセスの床をあけてケーブルを這わせていくのだけど、
机があったり、絨毯の裏がべたべたしてたりとか結構めんどくさい。
何よりいやなのが、これを”スーツ”でやること。

うちの会社は勤務時の基本的な服装がスーツと決まってるので、こんなときでも例外なし。
スーツが汚れるし、そもそも作業しづらいし、何とかしてホシィ。

ほかの会社ではどうなんだろう。
というかそもそもそんなことやらないか。

最近買った音楽 (今日のテーマ)

BlogPet 今日のテーマ 最近買った音楽
「CD、ダウンロード販売、着メロあなたが最近買った音楽を教えてください。」
最近音楽はほとんど買わない。
というか、最後に音楽を買ったのは高校のときか?
レンタルもほとんど使わないので、自分の音楽ライブラリは古いのばっかりで、最近の曲はない。

3/14 WindowsVistaのSP1へのアップデート失敗

WIndowsVistaで使用しているノートPCを所有しているのだけど、
SP1のアップデートを手に入れたので、SP1にアップデートを行おうとした。

その最中に、誤って電源を落としてしまった(電源ケーブルの付け根が弱くなって、瞬断しやすくなっていたのとバッテリーをつけていなかった)ため、
Windowsが立ち上がらなくなったのが午後10時過ぎくらい。
そこからVista を再セットアップ、最低限のソフトの導入、SP1へのアップデートが終わったのが午前2時。
しかも誤ってブックマークとかそんなに重要じゃないけど、地味に痛いものをロストしてしまった。

<教訓>重要なアップデートをするときは、電源が切れない状態にして行いましょう。

active scaffoldのform_ui

ActiveScaffold 1.1からはui_typeに変わって、form_uiが使われている(ui_typeはform_uiへのエイリアス)。
form_uiで使えるオプションの例

  • :calendar

    • カレンダーで日付入力。calendarプラグインが必要
  • :checkbox

    • チェックボックス
  • :country

    • 国名。optionsに:priorityを設定できる
  • :password

    • パスワード入力用のテキストフィールド
  • :textarea

    • テキストボックス。optionsでサイズ(:cols,:rows)を指定できる
  • :usa_state

    • アメリカの州名リスト。optionsで:priorityを設定できる
  • :select

    • プルダウンの選択リスト。optionsで選択肢を設定できる
  • :crud
    • デフォルト

実際に使う場合の例

conf.colmuns[:test].options = { :cols => 100,:rows => 30 }
conf.columns[:test].form_ui = :textarea

3/13 デジカメ

最近デジカメがほしい。
いま持っているのは5年くらい前のオリンパス C-740UZと、携帯(911T)のカメラ。

C-740UZはさすがに古くなってきて、自転車で旅行にいくにはかさばりすぎること、
携帯のカメラでは綺麗に写真が撮れないことから、コンパクトなコンデジがほしいのです。

C-740は光学ズームが10倍もあり、それはそれで重宝したのだけど、
焦点距離のワイド側が38mmで、風景を撮るのにあまり向いていなかった。
自分がよくとるのは風景が主なので、焦点距離の短いカメラをメインに探している。

今のところ候補はこのあたり。

  • LUMIX DMC-TZ5
  • LUMIX DMC-F35
  • Caplio R8
  • FinePix F100fd

SDカードを使えるものをメインに、28mm以下の広角レンズを持っているものから選んでいる。
価格からはDMC-F35かF100fdあたりだけど、10倍までのズームが使えるTZ5も捨てがたい。

好きなサンドイッチは? (今日のテーマ)

BlogPet 今日のテーマ 好きなサンドイッチは?
「3が1をはさんで今日はサンドイッチの日です。あなたが好きなサンドイッチを教えてください。」
ツナサンド。
タマゴサンドも結構好き。
 
甘い系統のサンドイッチは好きじゃない。(というか、菓子パンのたぐいがほとんど嫌いなので) 

作成日時、更新日時を自動登録する

テーブルにある特定のカラムを作成しておくと、作成日時、更新日時を自動登録してくれる

  • created_at => datetime
    • 作成日時
  • created_on => date
    • 作成日
  • updated_at => datetime
    • 更新日時
  • updated_on => date
    • 更新日

こんな感じで

[javascript]一つ前の画面に戻る

ブラウザで一つ前の画面に戻すためのjavascript

history.back();


railsのプラグインのあるサイトを探す

railsにはたくさんプラグインがあり、使う際には以下のようなコマンドを使う

ruby script/plugin install plugin_name

だけど、これではプラグインが見つからないといわれてインストールできないことがある。
そんなときは下記のコマンドでプラグインの配布元を検索・追加してやる

ruby script/plugin discover

URLの一覧が出てくるので追加するならエンターかYをしないならnを押す。

最近オススメのマンガ (今日のテーマ)

BlogPet 今日のテーマ 最近オススメのマンガ
「最近読んではまっているマンガを教えてください」
最近呼んでる漫画は惰性で読んでるのが多い。
そんな中でも、好きなのは「アオバ自転車店」くらいかな。

3/12 シュラフの圧縮

自転車でのキャンプツーリングををする際に、
かさばって、荷物になるものの一つにシュラフがある。

去年の9月に北海道へ行ったときは、
まだそんなに寒くないと思ったので、シュラフを持って行かずに、
シュラフカバーとインナーシーツのみでいったのだけど、さすがに寒かった。

また、夏以外もキャンプをするならシュラフは必須なので、
シュラフをできるだけコンパクトにするべくモンベルのこれを購入した。

今日、購入したものが届いたので早速テスト。

↓が圧縮前のシュラフ。
Sdcf_0001

これをコンプレッションキャップで圧縮すると↓のようになった。
Sdcf_0002

おおよそ高さが2/3ほどになっている。
この状態でもシュラフはまだ柔らかく、もっと圧縮できそうだけども、
圧縮するための紐がこれ以上短くならないのでこれが限界。

もう少し細くなると扱いやすくなりそうなので、
コンプレッションスタッフバッグと組み合わせればもっと小さく、細くなるかも。

3/11 MTBの700c化

いま使用している自転車は、700c化およびドロップ化したMTBなのだけど、そのうち700c化に関するtips。

まず700c化するに当たって確認する必要があるのは次の2点。

  • そもそも700cホイールを入れられるのか
  • ブレーキをどうするのか

まず前者だが、MTBのエンド幅は135mmでありロードのそれは130mmであるため、
基本的にロード用のホイールはMTBにつかない。(できないことはないらしいけど)
そのため700c化するために使用するホイールはMTB用のハブを使ったものになる。
 例:Mavice speedcity,A-Class CITI D1.0,MTB用ハブ+700cリムの手組ホイールなど

また、700c化するとタイヤの外径が大きくなるためフレームとのクリアランスがとれるかどうかも重要。
この場合、700c化するMTBが29erであるなら全く問題ない。というか29erのホイールは700cである。
普通の26インチMTBの場合、入るかどうかは自転車による。
基本的に26x2.10(外径約658mm)のタイヤをはけるMTBなら700x23c(外径約667mm)のタイヤは問題なくつけることができると思われる。
これより太いタイヤをつける場合は、自転車ごとに判断するしかない。
参考としてキャットアイのHPにタイヤの周長表があるので、計算してみるのもいいかもしれない。

次に後者のブレーキの問題。
ホイールが大きくなるため、26インチのリムに対応するように台座かついているVブレーキではブレーキが使えなくなる。
ディスクブレーキの場合は全く問題ないので、ホイールをディスクブレーキ対応のものにすることを前提にディスクブレーキに変えてしまう手が一つある。
ほかに、こういったVブレーキ台座を位置を700cホイールにあう用に変更するアダプターをかます方法もある。



ウスターか中濃か? (今日のテーマ)

BlogPet 今日のテーマ ウスターか中濃か?
「最近ではいろんな種類のソースがありますが、あなたの家ではウスターソースを常備していますか?それとも中濃ですか?それとももっと違うソースですか?」
常備しているソースはお好みソースのみ。
お好み焼きや焼きそばだけでなく、当然フライにも使いますし、
天ぷらに使うこともあります。 
 
ウスターソースは家にあったことはほぼないです。
中濃ソースもそれ以上に使ったことないです。
 
 

postgresqlにtsv(csv)ファイルのデータを登録する

Excelなんかで作った表をデータベースに入力したいというようなとき、
postgresqlでは下記のコマンドを利用することでcsvやtsvのデータを入力することができる。

 〇tsvのとき

COPY hogehoge FROM 'hoge.txt' delimiters '\t' null '';

 〇csvのとき

COPY hogehoge FROM 'hoge.txt' delimiters ',' null '';

hogehogeが追加するテーブル名。hoge.txtが追加するcsv or tsvファイル。フルパスで記載するほうがよいみたい。
最後のnullはデータが空の時の処理。ここではnull値を設定。

プルダウンを連動させる

よくあるフォームの中に、
県をプルダウンから選ぶと、その県の市町村が表示される、
というようなものがある。

これを、railsで再現する。

1.viewの編集

<%= select :record, :pref,["北海道","青森","岩手","山形"] %>
<%= select :record, :city,["県を選んでください"] %>
<%= observe_field(:record_pref,
    :update => :record_city,
    :on => 'change',
    :url => { :action => :live_search }) %>

 まず、県を選ぶプルダウンメニュー(id:record_pref)、市町村を選ぶプルダウンメニュー(id:record_city)を作成し、
 observe_fieldで、record_prefの選択を監視し、何らかの値が選択された時点でrecord_cityを書き換える。
 書き換えるためのメソッド(URL)を指定しておく

2.controllerを編集
 viewでrecord_prefを選択した際に、live_searchというメソッドで処理するように設定したので、live_searchというメソッドを追加する。

def live_search
    hokkaido=["札幌","旭川","函館","苫小牧"]
    aomori=["青森","八戸"]
    iwate=["盛岡"]
    yamagata=["山形"]

    query = request.raw_post

    case query
    when "北海道" then
        params[:city]=hokkaido
    when "青森" then
        params[:city]=aomori
    when "岩手" then
       params[:city]=iwate
    when "山形" then
       params[:city]=yamagata
    else
      params[:city]=["異常です"]
    end

    render :partial=>"city"
end

record_prefに対応する配列を作っておき、record_prefの内容によってparams[:city]の中身を切り替える。
最後に部分テンプレート「_city.rhtml」を使って結果を表示する

3._city.rhtmlの作成
 _city.rhtmlでparams[:city]をselectタグのoption valueに展開する

<%= options_for_select(params[:list]) %>

以上で、プルダウンを動的に変更できるようになる。
ただし、上記内容については未検証。(cotroller部分が微妙)

モンベルのマット

いま、自転車でキャンプツーリングをする際に使用するマットをいろいろと検討しているのだけど、
その第一候補がモンベルのU.Lコンフォートシステムマット。
先週、スプーンを買いに行ったときにマットも見ていたのだけど、コンフォートシステムマットの隣に、
収納サイズがもう一回り小さいマットがあった。

商品をよく見るとウレタンマットではなく、単なるAIRマットらしいのだが、
帰ってから製品情報をネットで確かめようと探しても見つからない。

これは2008春夏の新商品だったのだろうか?
それとも以前出していた商品の売れ残り?

とりあえず、春夏のカタログがくるまで詳細はお預け。

3/10 日本にはbluetooth携帯がほとんどない!?

会社について、RSSの更新をチェックしていたらこんな記事を見つけた。

中国モバイル事情 : Bluetoothと百度

見てたら、しょっぱなからひどい。

日本ではほとんど普及しておらず、搭載している機種を探すのさえ難しい(ドコモの905シリーズではPだけが搭載)「Bluetooth」ですが、中国では70-80%程度の端末に搭載されており、モバイルユーザにとって重要なツールになっているとのこと。

と書いてあるが、日本ではほとんど普及してないとか、搭載している機種がほとんどないとかおめぇドコモやAUしか目に入ってないんじゃないかと。
softbankはvodafone時代からbluetooth搭載の携帯は結構あったし、最近の3Gにはほとんど搭載されてる。
e-mobileもデータカードを除けば、すべて対応しているし。

どこが「探すのも難しい」んだろうか?
まぁドコモやAUだと東芝かパナソニックぐらいしかつけてないから、
「自分が使っているキャリアによっては」ほとんどないというのは正しいけど、この文章じゃ日本の携帯にはほとんど搭載されてないと読めてしまう。

なんて思って読んでいたら、間違って「good!」に投票してしまった。

うっかり話した方言 (今日のテーマ)

BlogPet 今日のテーマ うっかり話した方言
「標準語だろうと思って話した方言はありますか?ちなみに僕の住んでた場所では穴を「掘る」ことを穴を「ほぐ」と言ってました…」
めげる(壊れる)とか、はぶてる(すねる)とかかなぁ。
出身は広島だけど、他地域の人から訛りがないといわれるくらいほとんど使わない。
 
逆に、大学で北海道に行ったときは「ゴミを投げてきて 」といわれてびっくりした記憶が。
まぁこれは大学時代に移ってしまったのかたまに使うことがあります。
 

ActiveScoaffoldで、値を自動設定する。

railsでDBを操作するアプリを作るとき、ある特定のカラムは内部的に処理をして、
データを入力したいということがままある。

そんなときにActiveScaffoldではどうするかというと、
"before_create_save"というメソッドをコントローラに書くことで実現できる。

たとえば、カラムが"id","task","created_by"というテーブルがあるとき、
"created_by"には、ログインして登録を行っているユーザを自動的に登録したいというとき。この場合以下のようにコントローラに記述することで、自動登録が可能になる

class TaskController < ApplicationController
  active_scaffold :tasks

  protected

  def before_create_save(record)
    record.created_by = current_user
  end
end
同様に、"after_create_save"というメソッドも使える。

3/8 ねこねこねこ

自転車屋にホイールの振れ取りを頼んだ後、
近所の路地を中心にポタ。

暖かかったからか、日だまりねこの姿がちらほら。

S054
駐車場でくつろぎすぎなねこ

S060
道ばたで寝っ転がるねこ。

S056
ハトもひなたぼっこ。

帰ってきたら、自転車やから電話。
意外と早くホイールのフレ取りが終わった。工賃2000円

エスカレーターの日 (今日のテーマ)

BlogPet 今日のテーマ エスカレーターの日
「今日は日本に初めてエスカレーターが設置された日だそうです。あなたが覚えている一番昔に乗ったエスカレーターはどこですか?」
さすがにどれが最初かまで覚えてない。
覚えている候補になりそうなのは
 ・ジャスコのエスカレータ
 ・トポス(ダイエー系のディスカウントストア)のエスカレータ
 ・天満屋もしくは、ニチイ(現サティ)のエスカレータ
のどれか。幼稚園~小1くらいの記憶。
 
エスカレータがらみだと、鳴門にあるエスカヒル鳴門のエスカレータは長かった。
もっと長いエスカレータが、香川にあるらしいが…
http://www.excite.co.jp/News/bit/00091150427392.html 
 

3/7 自転車のホイールが振れた

3/2に自転車がパンクしていたことを書いたけど、
どうも、そのまましばらく走ったせいでリアホイールが振れているみたいだ。

結構フレがでかいので、フレ取りで直るかどうか微妙。
明日、自転車屋へ持って行こう。

いまはとりあえず、700c化する前に使っていた26インチのホイールをはかせている。
ディスクブレーキだとサイズが違っても、交換が楽でいい。
それにしても、26x1.25のタイヤってこんなに太かったけ(IRC SMOOTHEを使用)とか、
ホイールが重すぎとか、700cにする前は思ってなかったことを再発見。

Excel 2007

これまでのofficeに比べ、インターフェースが大幅に変わったOffice2007。
データ形式も変わって、場所によっては(うちの会社の総務とか)、
使えなくて2003に戻したという話があったり。

そんな中で、マイクロソフトがExcel 2003とExcel 2007の
コマンド対応表を出していたのでメモ。

http://office.microsoft.com/ja-jp/excel/HA100860481041.aspx

他に「ツール―オプション」の対応が↓
http://pasofaq.jp/office/excel/excel2007option.htm

postgresqlのレプリケーション

postgresqlは標準でレプリケーション(DBの負荷分散システム)の機能が備わっていないので、
外部ソフトウェアを使用する必要がある。

代表的なソフトとしては、

  • PGCluster
  • PostgresForest
  • Slony-I
  • pgpool

といったものがあるようだ。
使ったことがあるのはpgpoolだけだが、
これは、導入するのは比較的楽だけども、
DB自体の複製・バックアップ機能はないのでその辺を他のツールや、
手動でやれば結構使える

[正規表現]URLにマッチする正規表現

URLにマッチする正規表現。

/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/

ruby/ActiveLDAPのメソッド一覧

ActiveLDAPのソースコードから抜いてきたメソッド一覧。

def Base.create_object(config={})
def Base.connect(config={})
def Base.close
def Base.connection(exc=RuntimeError.new('unknown error'), try_reconnect = true)
def Base.connection=(conn)
def Base.can_reconnect?
def Base.reconnect(force=false)
def Base.schema
def Base.search(config={})
def Base.find(config='*')
def Base.find_all(config='*')
def Base.base
def Base.dnattr
def Base.required_classes
def Base.ldap_scope
def initialize(val)
def attributes
def exists?
def dn
def validate
def delete
def write
def method_missing(name, *args)
def methods
def import(entry=nil)
def enforce_types
def apply_objectclass(val)
def attribute_input_handler(attr, value)
def make_subtypes(attr, value)
def make_subtypes_helper(subtypes, value)
def extract_subtypes(value)
def Base.do_connect()
def Base.do_bind()
def Base.do_anonymous_bind(bind_dn)
def Base.do_simple_bind(bind_dn)
def Base.do_sasl_bind(bind_dn)
def base
def ldap_scope
def required_classes
def dnattr
def attribute_method(method, not_array = false)
def attribute_method=(method, value)
def define_attribute_methods(attr)
def array_of(value, to_a = true)

メソッドごとの詳細は調査中。
名前だけでなんとなくわかるのもあるけど。

花粉症の日にちなんで (今日のテーマ)

BlogPet 今日のテーマ 花粉症の日にちなんで
「あなたが実践している(してみたい)花粉症対策を教えてください。」
いや、だから花粉症じゃないって。
ただ鼻づまりはよくあるので、効果的な対策は知りたいかも。

3/6 自転車の3人乗り

どうも世間では、自転車に子供を二人乗せる3人乗りについて、
禁止するだの、それじゃ生活できないだの話題になっている模様。

この問題について、個人的には3人乗りは禁止されて当然とおもう。
というよりも、元々禁止されていたこと。
(例外として、県によっては自転車に一人、背負ってもう一人というのが許可されている場合もあるけど)

禁止するなという人は、上記のように今春から禁止するという話ではなく、
元々禁止されていたことだという認識があるのだろうか?
ただ単に、違法状態であったものを見逃されていただけだというのに。

ただし、コレとは別に自転車の定員についても考える必要はあると思う。
たとえばこのページにあるように、自転車の形と乗車定員についての定義は非常に曖昧で、
地域によって差がある。
タンデム自転車のように、大人が二人安定して乗れる自転車であっても、県によっては二人乗りが認められない場合があるという、
何を目的に乗車定員を決めているのか訳わからない状態になっている状態なのである。

このように曖昧な状態ではなく、車と同じように乗車定員について自転車ごとに定義しておき、
たとえば、

  • 大人は大人用の乗車装置の数だけ乗ることができる
  • 子供は子供用の乗車装置の数だけ、もしくは適当な場所に1つだけ子供用の乗車装置を増設することでもう一人まで乗車可能

というようにしてはどうだろうか。
つまり、普通の大人一人乗りの自転車であれば子供用座席をもうけることで一人まで乗せることができる。
そしてふらっかーずのような子供乗せの機能が標準の自転車であれば、自転車本来の乗車定員は大人1、子供1。
コレに子供用の乗車装置をつけることで大人1、子供2までは容認するということ。
これなら、少なくともいま市場に出回っている自転車で3人乗りも可能。

当然、子供は体重もしくは年齢の制限をかける必要がありますし、自転車の乗車人数について何らかの認定機関が必要になるとも考えられる。

今後、自転車利用をより安全に、そして積極的に行えるようにするなら、こういった自転車周りの法整備は必ず必要になると思うのだけど。

世界一周! (今日のテーマ)

BlogPet 今日のテーマ 世界一周!
「今日は日本航空が世界一周の路線を始めた日です。もし、世界一周をするならどんなルートで旅してみたいですか?」
鉄道と自転車、船を使って旅をしたい。
 
ウラジオストクからシベリア鉄道でモスクワ、ヨーロッパを自転車をメインに、
鉄道をサブで利用しつつ 巡り、船で北米へ。
北米の後は、ニュージーランド、オーストラリアを回って日本へ戻る
 
 まぁ、時間と金がないとできませんが…
 

ITILその1

ITILとは
「サービスマネジメントにおける、ベストプラクティス(成功例)を纏めた書記群」(Wikipedia)
のこと。

ITサービスの運営に関するノウハウや、運営方式が集積されており、
ITサービスマネジメントの規格としてBS15000 やISO/IEC 20000に取り込まれている。

ITILを構成するプロセスのうち、ITサービス運用にかかわる部分を「サービスサポート」という。

サービスデスクでは、下記の5つのプロセスと、1つの機能で構成される

  • インシデント管理
  • 問題管理
  • 構成管理
  • 変更管理
  • リリース管理
  • サービスデスク

3/5 700cドロップMTB

愛用の自転車を紹介。
題名の通り、MTBフレーム+700cタイヤ+ドロップハンドルの(ある意味)変態自転車。

コレ1台で、街乗り・ツーリング(日帰り、キャンプ)をこなすけど、
キャリアを取り付けるためのキャリアダボがないのが難点。

Sdcf_0003

構成

フレームLOUISGARNEAU LGS-XC RACE'06
フォークTRIGON EX MC01
ハンドルNITTO Neat M.196 STI
シートポストGASS BRAGA
サドルselle Success GAGE-2106
ホイールSHIMANO XTハブ+MAVIC OpenPro
タイヤVittoria RUBINO PRO
チューブPanaracer R-AIR
ブレーキレバー&シフターSHIMANO ST-R600
ブレーキSHIMANO BR-R505
フロントディレイラーSHIMANO  FD-M580A-6
クランクSHIMANO FC-M581
リアディレイラーSHIMANO RD-M970
スプロケットSHIMANO CS-HG70-9s(12-23t)
ペダルCrankBrothers Mallet M

MTBのドロップ化とか、700c化とかについての話はまた今度。

花粉飛んでますか? (今日のテーマ)

BlogPet 今日のテーマ 花粉飛んでますか?
「花粉症の人にはつらい季節になりましたが、今年は去年に比べてつらいですか?楽ですか?あなたの地域もできれば教えてください。」
花粉症ではないので、花粉症のつらさはわからない。
職場でもマスクしてる人は、そんなに多くないので、
花粉の飛びようがどうなのかも推測できません。
 

ldapsearchでActiveDirectoryを検索する。

openldapのクライントであるldapsearchを使用して、
ActiveDirectoryの情報を取得する方法。

シェルから以下のコマンドを実行する。

ldapsearch  -B -x -D admin -w password -h dc.example.co.jp -b "dc=example,dc=co,dc=jp" "sAMAccountName=usrname"

引数の説明

-B   :BASE64をデコードする(Solarisでしか使えないかも)
-x    :簡易認証を使用
-D bindDN :bindDNの指定。ここではadminユーザ
-w passwd :認証のためのパスワード指定。
       -Wとすると、プロンプトでパスワードを聞いてくる。
-h host    :LDAPサーバのホスト名もしくはIPアドレス
-b baseDN :検索する際のベースDN
filter  :検索のフィルター。
    ここではsAMAccountNameがusrnameであるデータを検索。

取得したデータのうち、日本語が含まれるものはbase64でエンコードしてあるので、
意味をとるためにはデコードする必要がある。
また、この方法ではユーザのパスワードは取得できない。

[rails]関連(多対多)

多対多の関連を表現する場合、この関連を取り持つテーブル(結合テーブル)が別途必要。

モデル定義では、主従関係はないので、お互いに「has_and_belongs_to_many」を定義する。

例:clubsテーブルと、studentsテーブルが多対多で関連している場合。

clubsテーブルのカラム
    id,name
studentsテーブルのカラム
    id,name
clubs_studentsテーブルのカラム
    clubs_id,students_id

    関連を取り持つテーブルとして関連するテーブル名を"_"でつないだ名前を定義。(つなぐ順番は辞書順)
  カラムを関連するテーブル名+"_id"を設定する。

 

    そして、clubsのモデルは以下のように記述

class Club < ActiveRecord::Base

    has_and_belongs_to_many :students

end

    students側はこう

class Studnet < ActiveRecord::Base

    has_and_belongs_to_many :school

end

 これで、clubs側のコントローラ等で"students"の名前でstudentsテーブルを参照できるし、

   students側からは"clubs"の名前でclubsテーブルを参照できるようになる。

また、使用できるメソッド等はhas_meny(1対多)と同じ。

3/4 UNIFLAME トレイルスプーン Ti

仕事が大手町へ外出後、直帰だったので、
表題のスプーンを買おうと寄り道して渋谷へ。

確かおいてあったはず、と記憶のある店へ行ったところ、
なんか妙に価格が高い(2100円)。
よく見ると、それはフォークもついたトレイルスプーン&フォーク セットTiだった。

個人的に箸があればフォークやナイフはいらないと思ってるので、フォーク付きは無駄。
なので雨が降ってきたのもあり買わずに帰ってきた。

とりあえずコレは、なんかの機会に通販ででも買うことにして、
ほかにsnowpeakの「ソロセット 極チタン」に入るスプーンがないか物色中。

ミシン (今日のテーマ)

BlogPet 今日のテーマ ミシン
「あなたの家にミシンはありますか?最後にミシンを触ったのはいつですか?何に使いましたか?」
ミシンは持ってないです。
たぶん使ったこともないはず。
家庭科の時間でも使った記憶がないので。
  
  

[rails]関連(1対多)

所有しているテーブル側のモデルにhas_many
所属している側のモデルにbelongs_toを設定する。

例:schoolsテーブルが、studentsテーブルを所有(studentsテーブルは、schoolsテーブルに所属)している場合。

schoolsテーブルのカラム
    id,name
studentsテーブルのカラム
    id,school_id,name

    赤字の部分(所有する側のテーブル名の単数形+"_id")をカラムとして定義する。

    そして、schoolsのモデルは以下のように記述

class School < ActiveRecord::Base

    has_meny :students

end

    ここで、相手の関連名は「複数形」にしておく。

    students側はこう

class Studnet < ActiveRecord::Base

    belogns_to :school

end

 これで、schools側のコントローラ等で"students"の名前でstudentsテーブルを参照できるし、

   students側からは"school"の名前でschoolテーブルを参照できるようになる。

 

ひなまつり (今日のテーマ)

BlogPet 今日のテーマ ひなまつり
「あなたのうちの雛人形はどんなの?ひなまつりに何か思い出はありますか?」
男3人兄弟のうちには雛人形なんかない……
と思ったら、素焼きでできた親王飾りをオカンが飾ってた気がする

3/3 自転車のライト

新しいライトホルダーを手に入れたので装着。
Sdcf_0001
使用したホルダーは、コレ
装着しているライトはMINI MAGLITE LED 2AAと、FENIX L2D CE。
別にフラッシングライトとしてKnogの1LED Light。

サイクリングロードで照らしてみたのが↓の画像。
Sdcf_0002
コレのほとんどがL2DによるものでKnogはともかく、
MAGLITEの明るさはほとんど感じない。
ホルダーも固定力は十分。
もっとがたがたなところを走るとわからないけど。

走行距離:5.98km
走行時間:27分
最高速:34.2km/h

[rails]関連(1対1)

所有しているテーブル側のモデルにhas_one
所属している側のモデルにbelongs_toを設定する。

例:studentsテーブルが、profilesテーブルを所有(profilesテーブルは、studentsテーブルに所属)している場合。

studentsテーブルのカラム
    id,name
profilesテーブルのカラム
    id,student_id,name

    赤字の部分(所有する側のテーブル名の単数形+"_id")をカラムとして定義する。

    そして、studentsのモデルは以下のように記述

class Student < ActiveRecord::Base

    has_one :profile

end

    profiles側はこう

class Profile < ActiveRecord::Base

    belogns_to :student

end

これで、profiles側のコントローラ等で"student"の名前でstudentsテーブルを参照できるし、

students側からは"profile"の名前でprofilesテーブルを参照できるようになる。

ruby/LDAPでADに接続する

ruby/LDAPを使用して、WindowsのActiveDirctoryに接続し、情報を取得する方法。

require 'ldap'

#コネクションを作成
conn = LDAP::Conn.new("192.168.0.1", 389)
#LDAPのバージョンを設定
conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION,3)

begin
  
#接続する
    conn.bind('admin','password' )
       
#baseDNの指定
        base='ou=usr,dc=example,dc=co,dc=jp'
       
#検索方法を指定。ここではサブツリーまで検索する
        scope = LDAP::LDAP_SCOPE_SUBTREE
       
#検索フィルタの設定。
        filter = "(objectcategory=user)"
   
#実際に検索。メソッドにはsearch2以外にsearchもある
        conn.search2(base,scope,filter){ |entry|
       
#結果の出力。ハッシュでADのプロパティを指定してやればその情報を表示する
        print entry["displayName"].to_s
        }

#エラー処理。
rescue LDAP::ResultError
    errcode = conn.err
    $stderr.puts(conn.err2string(errcode))
ensure
    conn.unbind()
end

これで、検索までは問題なく可能。

apache2でLDAP認証

apaceh2でActiveDirectoryのLDAPを使用して、
認証をかける方法

  1. apache2のインストール
    • "--with-ldap --enable-ldap --enable-authnz-ldap"オプションをつけてインストールする。
  2. httpd.confの設定
    • アクセス制限したいところに、下記の設定を記入する。

    Options ALL
    AllowOverride ALL
    Order allow,deny
    allow from all

    AuthName "Please enter your Adomain ID and password"
    AuthType Basic
    AuthBasicProvider ldap
    ## for Windows2003 ActiveDirectory
    AuthLDAPBindDN adminuser
    AuthLDAPBindPassword password
    AuthLDAPUrl "ldap://hogehoge.hoge.co.jp:389/ou=xxxx,dc=hoge,dc=co,dc=jp?sAMAccountName"

  3. apacheの再起動

apachctl restart

ミニチュアの日 (今日のテーマ)

BlogPet 今日のテーマ ミニチュアの日
「あなたがミニといわれて思いつくものはなに?」
ミニといわれると、車のMINI。
それも、現行のMINIではなく初代のMINI。
 
母親がこの車好きだったので。 

3/2 近くの公園でお茶

そろそろ梅かなんか咲いているかと、
近所の公園までポタ。


まぁまだ早かったけど。
お茶を沸かして、コンビニで買ったおやつで
まったりと過ごす。

S_198_2

帰りに、後輪がパンクしていることを発見。
前回修理したとこから漏れていたみたい。

とりあえず、修理したけどタイヤに結構大きな穴が開いているので、
タイヤを新しくする必要があるかも

走行距離:11.65km
走行時間:54分
最高速:31.5km/h

3/1 自転車ポタ

浮島町公園までポタ

風が強くて、思うように速度が出せない。
産業道路から東の公園までの道は、周りが工場ばかりなだけ有って大型車ばかり。
そのため片側2車線の広い道なのに走りにくい。

浮島町公園は、羽田の対岸になるので海側から進入してくる飛行機がよく見える。
なので、写真を撮っている人もいた。

走行距離:44.15km
走行時間:3時間7分
最高速:39.2km/h

« 2008年2月 | トップページ | 2008年4月 »

2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ