Pages

2010年11月27日土曜日

[Rails3]jQueryでobserve_field的なことを。

Rails3において、セレクトボックスの連動をしたくなりました。
よく見かける「都道府県-市町村」が連動しているものです。

今まで(Rails2の時)にはそんなことをしようとも思わなかったので
かなり苦戦しました。

新しくなったRails3ではjavascriptの扱い方
が変更になったようです。

今回はjquery-railsを使いjQueryを使える状態にしてあることを
前提にしています。
((view))hoge.html.erb
<%= f.label :prefecture_id %> <%= f.select :prefecture_id, Prefecture.all.collect {|u| [ u.name, u.id]} %>
<%= f.label :city %>
更新スペース
((controller))hoge.rb def city_select @cities = City.where("ken_code = ? AND id > ?", params[:pref_id], params[:pref_id] + "100") render end ((public))application.js $(function(){ $('#prefecture_id').change(function(){ var pref_id = $("#prefecture_id").val(); $.get("city_select?pref_id=" + pref_id); }); }); ((js.erb))city_select.js.erb $("#city_id").html("<%= escape_javascript(render :partial => 'select_city', :pref_id => params[:pref_id]) %>"); select_city.html.erb <% ここにselect要素の処理を書く %>

非常に分かりにくい説明で申し訳ないのですが、どうやらプルダウンの変更のキャッチは
javascript側で行うようです。ですのでjavascriptの知識も少々必要になりそうな予感です。
javascriptはpublicのapplication.jsに記述しています。

2010年10月1日金曜日

[BlueOnyx]ホスティングしている本当の場所。

BlueOnyxやBluequartzでホスティングしている場所は

/home/site/www.hoge.com/

にてアクセスできます。

ですがこれはシンボリックリンクのようで、実際の場所はというと、
リンク場所までたどった後に

$ cd ..

でひとつ上のディレクトリに移動して

$ ls -al

で丸裸!以前神様にやり方を教わったのですがもう忘れてしまい
ました。

もっと簡単だったような。。。

追記
思い出しました。神様は

ls -al /home/site/ | grep www.hoge

で調べていたような気がします。。

2010年9月28日火曜日

[BlueOnyx]mod_rewriteを有効に。

今更ながらWordpressの設置が社内で流行っています。

そこでパーマリンクの設定するとかなんとかで、「mod_rewriteを有効にせよ」
との特命をうけ、いざ出陣。

ググッてみると簡単そうです。何でもhttpd.confのAllowOverrideを
Allにすれば動きそうでした。

が、会社のサーバーはBlueonyx。

/etc/httpd/conf/httpd.confを設定して、
/etc/init.d/httpd restartをしても、まったく反映されません。

なんのこっちゃ。

いろいろ調べたら、自分の技術レベルの低さに驚きました。
結局、

/etc/httpd/conf/vhost/siteXX.include (XXは任意の数字)

というファイルに

<Directory /home/.sites/XXX/siteXX/web>
Options All
AllowOverride All
</Directory>

を追加して、作業終了となりました。

他のサイトでの設定が残っていて、ファイルをコピーしたあと
編集したいのであれば

mv /etc/httpd/conf/vhost/siteXX.include /etc/httpd/conf/vhost/siteYY.include

としてファイルをコピーして、内容を編集するだけみたいです。

ちなみにココの作業のままですが。

2010年9月9日木曜日

[Rails]cycleと言う便利なヘルパー

以前会社に在籍していて、現在は首都で頑張っているであろう神様に紹介してもらったRailsの本は初版だったので、テーブルの色分けをするときには「odd_or_even」とか言うものでぐるぐる回していた記憶があります。

そこで、再度検索してみたところ、便利なヘルパーを発見しました。と言うより、かなり以前からあったようです。

ひげろぐさんがヒットしました。

ああ、便利!

あと、以前退社後に神様と話したときは、「Rubyの事は悲しくなるから聞かないでください」って言われました!

2010年5月29日土曜日

[Ruby]CGIのgetで複数のパラメータでどっぷりでした。

Rubyでcgiを作っていて、次のスクリプトにパラメータを複数渡したいのです。
そこで普通に出てきたのが

<a href="http://www.blogger.com/sample.html?param1=hoge&param2=hage">クリック</a>

というソース。getにて2つ目のパラメーターを渡したい。でも上手く受け取れない。1つ目のパラメータは受け取れるのですが、2つ目が全然受け取れません。

はて、困った、と。

紆余曲折があり、1ヶ月放置した後久しぶりに続きをやろうと思い、いろいろ調べてみたところ、どうやら「&」より後のパラメータが渡っていないのです。

正しいのかは分かりませんが、パラメータの区切りを「&」から「;」に変更したら上手く動き出しました!

<a href="http://www.blogger.com/sample.html?param1=hoge;param2=hage">クリック</a>

細かいところですが、非常にわかりにくかったです。

とは言っても、どうやらcgi.rbはイケてないそうです。

2010年5月14日金曜日

[BlueOnyx]CentOS5へEPELでbacula-clientを。

社内運用のCentOS(BlueOnyx)にBacula-clientをインストールして、他サーバーのBacula-directorに監視させようと言う試みです。

知識不足の為CentOS5にyumやコンパイルでbaculaを入れることが出来ずに困っていたところ(多分依存関係でエラーになる)、とても参考になるページを発見しました。

早速EPELのリポジトリを追加しました。さらに

yum search bacula-client

したところ、見事に発見!ササッとインストールしてみようと思いますが、一つだけ気になる点が。

他サーバー運用のdirectorのバージョンは5.0.1。CentOSへEPELでインストールされるclientは2.0.3。

果たして上手く動くのでしょうか?

追記

先程テストしたところ、DirectorとClientが接続できて無事バックアップとリストアが出来ました。ClientのバージョンとDirectorのバージョンが合っていなくても使えるところなんて本当にかゆいところに手が届くアプリケーションです。

2010年4月19日月曜日

[Bluequartz]のDBがいっぱい。

会社のサーバーはBluequartzで、サーバーのメールが受信出来なかったり、ログイン出来なかったりと愛嬌を振りまきまくってます。

しかしさすがに困ったので社内の神様にお伺いをたてたら以下のような解を頂きました。
ありがたや、ありがたやです。

[root@hogehone db]# pwd
/var/db
[root@hogehoge db]# /usr/sausalito/db4/bin/db_stat -c
684658 Last allocated locker ID.
9 Number of lock modes.
1000 Maximum number of locks possible.
1000 Maximum number of lockers possible.
1000 Maximum number of objects possible.
41032 Current locks.
41032 Maximum number of locks so far.
1000 Current number of lockers.
1000 Maximum number lockers so far.
1 Current number lock objects.
5 Maximum number of lock objects so far.
2046671 Number of lock requests.
2045671 Number of lock releases.
0 Number of lock requests that would have waited.
9119 Number of lock conflicts.
0 Number of deadlocks.
0 Number of transaction timeouts.
0 Number of lock timeouts.
352KB Lock region size (360448 bytes).
25 The number of region locks granted after waiting.
8570728 The number of region locks granted without waiting.

ロックの解放が上手くできなかったので、力技で対処しました。

[root@hogehoge db]# mkdir a
[root@hogehoge db]# mv __db.00* a
[root@hogehoge db]# /usr/sausalito/db4/bin/db_stat -c
12 Last allocated locker ID.
9 Number of lock modes.
1000 Maximum number of locks possible.
1000 Maximum number of lockers possible.
1000 Maximum number of objects possible.
0 Current locks.
3 Maximum number of locks so far.
0 Current number of lockers.
3 Maximum number lockers so far.
0 Current number lock objects.
3 Maximum number of lock objects so far.
36 Number of lock requests.
36 Number of lock releases.
0 Number of lock requests that would have waited.
0 Number of lock conflicts.
0 Number of deadlocks.
0 Number of transaction timeouts.
0 Number of lock timeouts.
352KB Lock region size (360448 bytes).
0 The number of region locks granted after waiting.
152 The number of region locks granted without waiting.

2010年4月16日金曜日

[Perl]App::Ackでの技について。

こんな使い方が出来るとは夢にも思っていませんでした。

ack -l entity_label lib | xargs perl -i -pe 's{entity_label}{navigation_name}'

神様ありがと。

2010年4月2日金曜日

[GVim]使い方いろいろ

NERDTree(ファイルエクスプローラー)
:NERDTree ノードツリーを開く
s ファイルを縦に分割して開く
i ファイルを横に分割して開く
数字 ctrl-w +  数字行だけ分割を広げる
数字 ctrl-w -  数字行だけ分割を狭める

履歴を開く
:MRU

折りたたみ
zf 選択範囲を折りたたむ
za 折りたたみ解除
zi 折りたたみ表示の切り替え

バッファ操作
"ay 選択範囲をレジスタaに保存
"ayy 行をレジスタaに保存
"ap レジスタaをカーソル位置にペースト
"reg レジスタの情報を一覧表示

screenコマンド
$ screen -ls リスト表示
$ screen -r アタッチ

ctrl + a, ":sessionname [名前]"
ctrl + a, ctrl + d デタッチ
ctrl + a, ctrl + c 新しいwindow
ctrl + a, A タイトルをつける

ctrl + a, ctrl + p 前へ
ctrl + a, ctrl + n 次へ

2010年4月1日木曜日

[Git]branchをpushするとき。

gitを使っていて、branchでの作業を求められました。
はて、どうしたものか。

branchを作るところまでは簡単にできました。

それではpushは?そこで会社の神様に聞いてみました。
神様は一行でまとめてきました。

$ git push origin /topic/hoge

せよ、と。

なるほど、なるほど。こりゃメモしておくしかありませんね。

2010年3月24日水曜日

[BlueOnyx]CentOSへRubyをインストール。

会社運用のサーバーでRubyのsinatraが動いたら凄くない?と言う事で、早速会社で運用しているBlueOnyxへRubyのインストールを試みました。

OSのバージョンはCentOSの5.4でした。普通に

# yum install ruby

だと、1.8.5が入るので1.8.6を導入すべく検索して見つけたのがこちらです
# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -K rpmforge-release-0.5.5-1.el5.rf.i386.rpm
rpmforge-release-0.5.5-1.el5.rf.i386.rpm: (sha1) dsa sha1 md5 gpg OK
# rpm -i rpmforge-release-0.5.5-1.el5.rf.i386.rpm
# sed -ie 's/enabled = [01]/enabled = 0/' /etc/yum.repos.d/rpmforge.repo
# yum --enablerepo=rpmforge list
rpmのバージョンが0.5.5-1に上がっていたのでそこだけ修正して上記サイト通りに実行。本当にありがたいです。コピー&ペーストでもスムーズに実行できるほどでした。

使い方はよくわかりませんがcheckinstallもインストール。コンパイルを避けたい自分にとっては便利そうなモノに見えました。
# yum --enablerepo=rpmforge install checkinstall

続いてRubyをダウンロード。
すかさず解凍。

# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.bz2
# tar xfj ruby-1.8.7-p249.tar.bz2
prefixが指定されていますが、参考ページ通りにconfigure、おまけにmake。

# ./configure --prefix=/usr
# make

自分の環境の時にはwarningを吐いていました。ご愛嬌です。
どんどん進めて

# usr/sbin/checkinstall --fstrans=no

Installing with make install...

========================= Installation results ===========================/usr/bin/installwatch: /var/tmp/ShQERjYhPKfWRrThreTr/installscript.sh: /bin/sh: bad interpreter: Permission denied

**** Installation failed. Aborting package creation.
Cleaning up...OK
Bye.


でエラーで終了。なんで??

しょうがないから普通にインストール。

# make install

気持ち悪いけどとりあえず、Rubyが動くようになりました!

2010年3月5日金曜日

[Ubuntu]グループウェアのAipoをインストール

一般の会社っぽく、社内でもグループウェアを使おうという動きに対応して、オープンソースのAipoを導入してみました。

Ubuntu9.10ではinstaller.shはエラーで使えません。検索すると親切なサイト様を発見。

無事起動することが出来ました。

ですが、この後ちゃんと社内で使ってくれるのかは不明です。

[Ubuntu9.10]自分以外が作ったフォルダの共有。

社内でローカルサーバーを作成中です。主な用途はファイルサーバーとして使います。
ディストリビューションは茶色が堪らないUbuntuを選択しました。

ファイルを貯め込む為のHDDは以前windowsで使っていたntfsフォーマット。

さて、どうしたものか。

フォルダの共有は右クリックで「共有」を選ぶと自動でsambaがインストールされます。
自分が作ったディレクトリはそれで簡単に共有が出来ます。

sambaのGUI設定は今はメニューには無いので端末を起動して

$ shares-admin

で起動できます。

さらにNTFSを共有するに当たり、自動でマウントさせる為にパッケージマネージャーでntfs-configを導入。オマケにNTFS上のディレクトリの所有者の問題が出たので

$ sudo vim /etc/samba/smb.conf

を入力して結局設定をvimで編集。[Global]のディレクティブ(?)に
usershare owner only = False

を追加して対処。社内で使うだけなのでとりあえずOKと言うことにしましょうか。

2010年2月28日日曜日

[Rails]searchlogic v2でテーブルのソート的なもの。

一覧表示をした時にソートが出来たらカッコいい。

簡単に出来る方法を探している時に出会ったのがsearchlogic

インストールして使ってみました。使い方はいたって簡単でした。

controllerで

@items = Item.search(params[:search])

して、viewでは

<%= order @items, :by => :name %>

などとすると、実際の表示は

name▲

みたいな表示を勝手に作ってくれました。

まさに便利。

2010年2月19日金曜日

[DELL]71PXPでモニターの切り替えボタンって。

単にPrintScreenだけでした。

2010年2月13日土曜日

[Puppy Linux]古いIBMのノートに4.2をインストール

兄がノートパソコンを新しく(中古)購入したので、今まで使っていたIBMのノートパソコンはもういらないとの事でした。しかし、惜しくなったのか「小学生の娘に使わせたい」と言いはじめました。

IBMのノートパソコンはもともとwin98SEがインストールされていたようで(自分が触ったときはwin2000が入ってました)、どう頑張ってもXPをインストールしてストレスなく動かすことは不可能。メモリすら128MBでした。最近まで良く使っていたなと思うほどの低スペック。

そこで考えたのがPuppy Linux。

あまっているメモリがあったのでとりあえず128MBを追加。つづいてCDからブートして、起動後のGUIのメニューからインストールを選択。HDDをフォーマットして、swap領域を作って後は適当にOKをクリック。

簡単にインストールできました。インストール後、メニューが英語になってしまう所はご愛嬌。Googleで直し方を検索したら簡単に日本語になりました。

動作はいたってサクサク。小学生が何かするには十分なレベルだと思います。子犬ちゃんの壁紙も小学生のハートをわしづかみにしてくれることでしょう。

ワード、エクセルのファイルも開けるし、お絵かきソフトも付いてて至れりつくせりです。
当分現役を続行してくれると思います。

子犬ちゃん最高。

2010年1月24日日曜日

[Rails]FuncyUploadでファイルと一緒に値を送信。

FancyUploadを使って画像をアップロードしようと色々試していた所、
画像はすんなりアップロード出来るようになったのですが、uploadボタンを押したときのhidden_fieldのパラメーターがコントローラーのcreateで取得出来なくて3日つまづきました。
こんな時どうするんでしょうか?

少し強引だと思いましたがsessionに値を入れて試しましたがダメでした。

結局、FancuUploadのフォーラムで解決済みでした。

onBeforeStart: function() {
 up.setOptions({
  data: 'text=<%= hoge %>'
 });
},

という感じのコードをnew.html.erbなどに追加して対応しました。

2010年1月20日水曜日

[Rails]FancyUploadとPaperclipでアップロードを試みる。

ファイルのアップロードをするために、今回はPapermagicを選択しました。更に使い勝手にこだわってflashのアップローダーを探していました。

そこで見つけたのが下記の2つ。
・SWFupload
・FancyUpload

いつもお世話になっているサイトで採用されている、と言うことでFancyUploadを使ってみようと思います。
幸いなことにGitHubにサンプルがあったのでダウンロードしてscript/serverして見て動作を確認したところ、実にすばらしい挙動を見せてくれました。

rails2.3で動いていました。

SWFUploadもサンプルがあったのですかRailsのバージョンの関係で上手く動かなかったので次回にとっておきます。