June 2010
1 post
現在Wordpress3.0をテスト中
なかなか良くなってます。3.0に対応したかっこいいthemeが見つかったのも大きい。複数サイトに最初から対応してたり、当分verUPはしないよ宣言も落ち着いて対応できます。
どんなプラギンがあるのかとか、多言語を複数サイトで対応した方がいいのか、プラギンがいいのかなどいろいろ調査中です。
プラギンの数多過ぎてデファクトスタンダード探すのに苦労してます。
多言語
問い合わせ
ちょっとしたスライドショー
May 2010
2 posts
リファクタリング:Rubyエディション
読書会行ってきた。
Amazon.co.jp: リファクタリング:Rubyエディション: Jay Fields, Shane Harvie, Martin Fowler, Kent Beck, 長尾 高弘: 本
読んだ本はこれ。第1章の終わりまで。このコードうごかねぇ、インデントおかしいという指摘相次ぐ。コード部分がコードじゃなくて文章になってる。リファクタリングもどこまでどうするかのいろんな人の話が聞けた。
その後の懇親会と言うかダベリングも興味深かった。rubyistには金の匂いのする奴が少なすぎるとか。
April 2010
2 posts
1 tag
rvmを使ってruby1.9.2を入れてみた
rails3.0betaを使うためにrvmをつかってruby1.9.2を入れてみました。rvmは便利なrubyのバージョンマネジャです。
普通に rvm install 1.9.2 って入れるとpreview版が入ってrails使えません。 rvm install 1.9.2-head が正解です。
が、それを使用とするとエラーが(Leopardでのテストです。)、、、ここ見て解決しました。過去のセキュリティーウプグレがcpanを壊してしまったのが原因なようです。rubyを入れるのにperlのcpan入れ直しというなかなか興味深いことが起きます。
1 tag
rails3.0beta2が出たみたいなので変えてみたけど
前とは違ってインストールは
gem install rails —prerelease
だけで終わるようになってます。
rails plugin install git://github.com/odorcicd/authlogic.git -r rails3 rails plugin install git://github.com/intridea/subdomain-fu.git
のプラギンを使ってbeta1でアプリを作ってたのですが、エラーが出ます。ここを見るとモジュールの位置をごっそり変えているようです。プラギンでこういうのに追随するのは非常にめんどくさいです。
おまけにオフィシャルのリリースを見ると
Note that Ruby 1.8.7 p248 and p249 has marshaling bugs that crash both Rails...
March 2010
9 posts
1 tag
rails3.0betaでハマリ(find_byよりwhereがいいみたい)
controllerで
@posts = Post.find_by_user_id(login.id) # SELECT "posts".* FROM "posts" WHERE ("posts"."user_id" = 1) LIMIT 1
こう書いて、viewで
@posts.each do |post|
こう書いてたら、
undefined method `each' for
と意味不明なエラー
@posts = Post.where("user_id =?", login.id) # SELECT "posts".* FROM "posts" WHERE (user_id =1)
こう書き直すと直った。かなり時間が取られた。皆さん気をつけましょう。
1 tag
rails3.0betaでActionMailerを試してみた
前回に引き続きActionMailerを試してみました。ソースはここ。
rails g mailer notifier
でapp/mailers/notifier.rb と app/views/notifierができる。(modelsにできないのが新しい)
こんな感じで書いておくと問題なくメールが送れる。 ヘッダーはこんな感じ。
Subject: Password Reset Instructions
Mime-Version: 1.0
Content-Type: text/plain;
charset="utf-8";
Content-Transfer-Encoding: 7bit
問題は:subjectに日本語を入れた場合、
/app/mailers/notifier.rb:8: invalid multibyte char (US-ASCII)
...
1 tag
routes.rbでの注記
railsでのroute.rbでしてしまったタイポから気になったとこを少々。
resources :productsと書いた場合rake routesは
GET /products(.:format) {:controller=>"products", :action=>"index"}
products POST /products(.:format) {:controller=>"products", :action=>"create"}
new_product GET /products/new(.:format) {:controller=>"products", :action=>"new"}
GET ...
2 tags
authlogicでログインログアウトを実装
前回に続き少しばかり進歩させました。ソースはここにおいてます。ここを参考にしました。
urlの設計はtumblrを意識してみました。
config/routes.rb
:as => ‘login’ って書いておくと、login_pathが’/login’までの相対パスの、login_urlが絶対パスのurlが表示されます。
tumblrを意識しているのでloginはemailとpasswordでの実装です。この際、
app/models/user.rb
と書く必要があります。
次回はforgot_passwordを実装したいです。パスワードのリマインダをメール送信します。TMailからMailに取って代わったようなので日本語も含めていろいろテストしてみたいです。
2 tags
rails3.0betaでauthlogicを試してみました
せっかくなのでrails3の勉強もかねてauthlogicが使えるかどうか試してみました。今のところ大丈夫そうです。rails3がでるまでにログイン認証のつくり込みができればと考えています。
前回作成した環境で動かしています。Lucid alpha 3+ruby1.9.1+rails3.0betaです。3月21日時点、Lucid alpha 3インスコ後sudo aptitude updateとsudo aptitude upgradeをかますとvm上でも画面が表示されるようになってます。
ではスタート。
rails r3b_authtest
rails plugin install git://github.com/binarylogic/authlogic.git
あとは基本的に http://github.com/binarylogic/authlogic_example...
Rose-Tinted: Upgrading to Rails 3 beta (part 2) →
This is the second part of a series of posts detailing my experiences while upgrading to Rails 3. The first part covered migrated configuration and framework files to play nicely with the new Rails 3 APIs. Now, we’ll look at booting the server, fixing dependency issues and walking through our…
1 tag
とりあえずrails3をつかってみる
rails user これでuserプロジェクトができる。
rails c で前の script/console、
rails s で前の script/server
Gemfileというのがある。これに必要なgemを書き込んでおくと、
sudo bundle install で
必要なgemがシステムにインストールされる。
bundle package で必要なgemが vendor/cache にインストールされる。
rails plugin install でプラギンのインスコ。
1 tag
lucidにruby1.9.1とrails3.0betaをいれてみた
ubuntu 10.04 alpha3でやっとserver版がvmware上にインスコできるようになったので(画面はまだ表示されないけどopenssh-serverを入れとくとアクセスはできる)、ruby1.9.1とrails3.0betaを入れてみました。
まずは基本環境
sudo aptitude update sudo aptitude upgrade sudo aptitude install open-vm-tools
次にmysql、sqlite3、imagemagick、gitをインストール
sudo aptitude install sqlite3 libsqlite3-dev mysql-server libmysqlclient16-dev sudo aptitude install libmagick9-dev sudo aptitude install...
Holographic Architectural Imaging by Zebra (via Core77)
建築模型は必要なくなるかもです。
February 2010
2 posts
tumblrのsecondaryブログでできないこと
replyができない。
tomblooのamazonアフィーリンクができない。
twitterが出来るようになってた。
1 tag
rails3.0betaインスコしてみました
当方leopardなものでrails3.0に必要なruby1.8.7をmacportsを使ってインスコしたのですが、portのupdateやcleanupやいろいろ手間かかりました。script/serverがscript/rails serverに変っていることに気がつくのに10分ほどかかってしまいました。久々に2chのrailsスレをみたら活況を呈してました。
railsはコピペベースから始めて動くこと優先で始めたので3.0を機にまじめに勉強してみたいと思います。
インストール方法はこちら。これを機にruby1.9も勉強するか悩み中。
January 2010
6 posts
1 tag
せっかくなんでredmineをインスコ
前回、前々回に続いてredmineのインスコしてみます
git clone git://github.com/edavis10/redmine.git mysql -u root -p
create database redmine character set utf8; create user ‘redmine’@’localhost’ identified by ‘hogehoge’; grant all privileges on redmine.* to ‘redmine’@’localhost’;
exit
cd redmine mv config/database.yml.example config/database.yml nano...
rails使えるまでが非常に簡単になっている件について 続きの続き
sudo mkdir /opt/nginx/sites-enabled
sudo mv /opt/nginx/conf/nginx.conf /opt/nginx/conf/nginx.conf.default
sudo nano /opt/nginx/conf/nginx.conf
user www-data;
worker_processes 1;
events {
worker_connections 1024;
}
http {
passenger_root /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.9;
passenger_ruby /usr/local/bin/ruby;
include mime.types;
default_type ...
rails使えるまでが非常に簡単になっている件について 続き
sudo aptitude install git-core
git clone git://github.com/jnstq/rails-nginx-passenger-ubuntu.git
sudo mv rails-nginx-passenger-ubuntu/nginx/nginx /etc/init.d/nginx
sudo chown root:root /etc/init.d/nginx
sudo /usr/sbin/update-rc.d -f nginx defaults
sudo aptitude install libmagick9-dev
sudo gem install rmagick
sudo gem install mysql #すでにはいっているみたいだけどうまくいかないのでもう一回
rails使えるまでが非常に簡単になっている件について
VM上でのUbuntu 9.10 Serverでのインストール
すごい簡単
sudo aptitude update
sudo aptitude upgrade
sudo aptitude install open-vm-tools #vm上でなければ sudo aptitude install build-essential
sudo aptitude install sqlite3 mysql-server libmysqlclient16-dev
wget http://rubyforge.org/frs/download.php/66163/ruby-enterprise_1.8.7-2009.10_amd64.deb
sudo dpkg -i ruby-enterprise_1.8.7-2009.10_amd64.deb #これでgemもruby1.8.7も終了
sudo...
1 tag
gitを建築プロジェクトに使ってみた今回の結果 補足
前のエントリーが結構なreblogをいただいたので補足します。
コマンドラインの使用は使ったことのない人にとっては逆にそれにしか使わないので、上カーソルで非常にシンプルに使えます。今回はMacでのプロジェクトだったのですが、windowsな方を巻き込んだとしても、windowsでのgit使用は日本語ファイル名の文字化け問題があるのですが、cygwin utf-8版を使っていただくことで問題なく使用可能です。
フォルダのサイズは4GBまでいきました。が、各自のスクラップまでUPされた結果でこうだったのでそれを整理し”git gc”を行うと1.8GBまでになりました。実際のファイルは600MBで残りは”.git”になります。
速度的にはサーバー側が貧弱なこともありあらたに”git...
2 tags
gitを建築プロジェクトに使ってみた今回の結果
gitを建築プロジェクトのレポジトリとして使っているところはあまりないと思うのですが、今回はターミナルなんぞ開いたこともないというような人を巻き込み実用してみたのでそのプロジェクトのフェーズ1が終わったいま、少しばかりまとめてみたいと思います。
とりあえず教えたコマンドは git clone git add . git commit -m “” git push git pull
扱うファイルはほぼバイナリなのでバックアップ、レポジトリ、バージョニングにしかつかわない
ブランチの説明は初ターミナルの人にはややこし過ぎるので、アプリ内(今回はsketchup)のレイヤでその代替とするルール決め。 一般的によくやられる好き勝手なファイル名をつけてその人のブランチやバージョニングとしても他の人には全くを持ってわからないのでここはかなり徹底
...
September 2009
7 posts
JauntyでAnthyがうごかなくなったので
http://www.ashineko.com/ja/gadgets/881-ubuntu904-jaunty-jackalope-on-eeepc701
を参考に
sudo nano /etc/profile
# SCIM
export XMODIFIERS='@im=SCIM'
export GTK_IM_MODULE="scim"
export XIM_PROGRAM="scim -d"
export QT_IM_MODULE="scim-bridge"
scim -d
を最後に足す。
めざせ!脱Mac
脱ヲタと同じ意味での脱Macです。
最近Windowsを使わずにMacを使うことがほとんどになりました。基本的なアプリはそろってるし、textmateとleopardのターミナルとunix系のコマンドが叩けるのがその理由です。
ただ、勉強会に行ってもどんどんとマカーが増えてきました。Macを使っている状態がその他大勢グループにいるみたいで、ちょっと恥ずかしいかもと思ってた時期もありました。IBMにUbuntu積んで、プニプニデスクトップ+zsh+screen+emacsの方がかっこいいかなと思っていた時期もありました。
NX...
1 tag
久々に2chみた
2chはまとめブログのフィードを引っ掛けているだけのかかわりなのですが、久々にRailsスレを直に見に行きました。
久々に見て気がついたのは、書かれている疑問はだいたいそらで答えられるなぁと。
昔JavaScriptの勉強会に行ったときやけに仕様に詳しい人がました(リンク先の人です)。あまりにも詳しいので、どうやってJavaScript勉強したんですか?ってきいてみたら、2chの質問スレに張り付いて質問に対して自分で答えを探して見つけてそして決してレスしなかった。それをやってるとだいたいの質問にそらで答えられるようになってきた。その後仕様書を読み始めた。とおっしゃってました。そういう勉強法もあるんだなぁとえらく感心した記憶があります。
...
1 tag
1 tag
NoMachineNXが恐ろしく速くてLinux系にRemoteDesktopでアクセスするのがためら...
Windowsに対してはリモートデスクトップというかなりストレス無く接続できるアプリがあるのですが、Linux系では画面が波打つストレスのたまるものしかしたなくて使う気にはなれませんでしたが、たまたま、NoMachineNXを知り、速度に驚きました。はっきりいってWindowsのリモートデスクトップより高速です。GUIで画面が波打つことはありません。LANではなくてインターネットで接続しても画面が波打つことがありません。これだけの速度があると様々な用途がおもいつきます。
今回テストした環境は4coreのAMDに8GBのメモリ上のサーバーで動くesxi上で動く10VMのうちの一つに1コア1GBのメモリ上で動くUbuntu9.04にMacからアクセスしたのですが、はっきり言って超快適です。マウスの動きがスムーズです。画面が波打つことがありません。
...
2 tags
ソフトウェアRaidを組んでいたFreeBSDをAcronis True Image...
取り急ぎ、
Manual root filesystem specification: : Mount using filesystem eg. ufs:da0s1a ? List valid disk boot devices Abort manual input mountroot>
セーフモードでやっとのことこんな感じのエラーがでるので、
ufs:da0s1c
でマウントし、
# /sbin/mount /dev/ad0s1d /tmp # /sbin/mount /dev/ad0s1e /var # /sbin/mount /dev/ad0s1f /usr
#/bin/cat /etc/fstab
とかで、状態見て、
# /usr/bin/ee /etc/fstab
で初期のマウント修正。
#...
August 2009
5 posts
1 tag
関連性をつけておくとコードを短くできる →
class Project < ActiveRecord::Base
has_many :tasks
end
class Task < ActiveRecord::Base
belongs_to :project
end
で関連性をつけておくと
@project = Project.find(params[:id])
@tasks = Task.find(:all, :conditions => ['project_id = ? AND complete = ?', @project.id, false])
を
@project = Project.find(params[:id])
@tasks = @project.tasks.find_all_by_complete(false)
に変えられコードを短くできるというお話。
1 tag
Friendfeedのエントリーを全消しするスクリプトを書いてみた
require 'uri'
require 'net/http'
require 'rexml/document'
begin
Net::HTTP.version_1_2
req = Net::HTTP::Get.new('/v2/feed/NICKNAME?format=xml&num=100&start=1')
xml = Net::HTTP.start('friendfeed-api.com',80) {|http|
http.request(req).body
}
doc = nil
doc = REXML::Document.new xml
dels = []
doc.elements.each('feed/entry') do |elm|
dels <<...
1 tag
find_byをつかうとコードが短くなるよ →
@tasks = Task.find(:all, :conditions => ['complete = ?', false])
よりも
@tasks = Task.find_all_by_complete(false)
の方がコードが短い。やってることは全く一緒。
1 tag
||=を使えば値が無ければ=以下を実行、あれば実行しない →
def current_user
User.find(session[:user_id])
end
じゃなくて
def current_user
@current_user ||= User.find(session[:user_id])
end
でDBアクセス減らせますよという話。
1 tag
Railsの復習をかねてRailscastsを見ていくことにします
http://railscasts.com
を#1エピソードから見ていくことにします。
June 2009
2 posts
Macfuseとsshfsを使いgateway先をマウントする
基本的にデプロイはcapistranoを使って行っているのですが、ちょっとした変更のためまでにデプロイツールを使いたくありません。そんな時はcyberduck等のftpクライアントを使いチョチョイと直すのですが、gateway先に潜り込む事の出来るいいftpクライアントがありませんでした。
でもって、Macfuseとsshfsを使いgateway先をマウントする方法が出来るのではと思い、いろいろやっているうちにうまくいったのでご紹介。
Macfuseを普通にインストールします。
sshfsをダウンロードして、sudo mv [元のファイル] /usr/bin/sshfs。
sudo nano /usr/bin/gateway-ssh
#! /bin/sh
ssh [gatewayのhostip] ssh $@
をつくり、sudo chmod a+x...
May 2009
2 posts
ESXi 4
とある案件でESXiを入れましょうと言う事で、インストールしにいってたのですが、運良くVer4が5月21日にでてまして、そちらを入れる事に。
USBへのインストールがddを使ったややこしい方法ではなく、デフォルトで使えるようになってました。新規に購入したサーバーもraidカード付きにしたのでscsiと簡単に認識してくれまして、esxiでの悩みどころが一切無いと言う素晴らしさでした。
vSphereクライアントも日本語化されてましたし、かなり使い勝手いいです。
April 2009
8 posts
2 tags
select文でcheckboxのon/offで挙動の変え方
<%= select("model", "model_id",
Model.find(:all, :order => "name", ).collect {|p| [ p.name, p.id ] },,
:onchange => "#{remote_function(:update => 'body',
:url => { :action => :update_body },
:with => "'id=' + value + '&check=' + document.getElementById('check').checked") }") %>
チェックを含む<input type="checkbox" id=check"...
1 tag
バックアップのお話
お世話になっている会社のraid10を組んだnasのhdがぶっ飛びました。raid1であればまだ解りやすそうですがraid0は中身がバラバラでファイルがつながっているのですから直すのはそう簡単ではありません。安価なnasであればraid0をお勧めします。
またそこの会社では処理中のファイルを変更されないようにnas内のファイルを直いじりしていたようです。これだとファイルサーバーのraidは保険でありバックアップではなくなります。gitとかsvnとか使っていればなぁと思ってしまいます。
で、弊社のバックアップ方法の紹介。
稼働中のプロジェクト => gitのレポジトリとローカル
自分で作成したファイル => GMailに送る
終了のプロジェクト => gitのレポジトリほったらかしとと裸族のお立ち台でHDにコピー...
gitとsvnの違い
間違いを恐れずにgitとsvnの違いを言えばgitは、ローカルファースト、svnはサーバーファーストの違いがあります。
Rails使いだと本体自体がgitで管理されているとかのせいでどうしてもgitになってしまうのですが、プログラミングではないところでもバージョン管理を普及させたいのでいろいろとテストしてみました。
gitの弱点としてあるのはコマンドライン基本、サーバーとの接続はsshが基本、utf8が基本の3点でしょうか。
...
redmineとtracの違い
一番大きい違いで言えばtracは1プロジェクト1tracと言う事。簡単に1プロジェクトを作っては行けない雰囲気です。大きいプロジェクトがいくつもある場合その方が管理はしやすいはずです。(プロジェクト単位でサーバーの移行とか)。その一方で個人ToDoプロジェクトとかそういうものは作っては当然駄目な雰囲気が漂います。redmineは気軽にプロジェクトの追加が出来ます。親プロジェクトと言うのも設定できます。
次にプラグインベースかオールインワンかの違い。Tracでは機能の追加をプラグインで行います。ビルド機能とか、コードレビュー機能とか追加できます。redmineにはまだそのプラグインはありません。その一方で最初からgitがレポジトリとして設定できたりします。
あと、ユーザーごとに表示言語の設定が出来るのがredmineでプロジェクトごとがtracです。
...
1 tag
redmineとgitとmacとwindowsで日本語ファイル名をどうするか
windowsでgitを扱う事自体に壁があるのですが、msysgitだと日本語ファイル名がうまくいってくれない。どうしようかなといろいろ調べてみて、なんとか解決しました。
http://www.okisoft.co.jp/esc/cygwin-20.html
こんなものを作ってくれるえらい人がいました。
cygwin1.dllを上記リンクのように書き換えてください。
cygwinからgitを使います。
setup.exeをダブルクリックして、Develの下にあるgitとNetの下にあるopensshをインスコしておいてください。
このutf-8cygwinからgitをつかうとファイル名は上手く解決してくれます。
ただコメントの日本語入力は今のところうまくいっていません。...
1 tag
Redmineとgitの組み合わせでレポジトリのファイル名が文字化けするあなたへ
リモート側の.git/configの[core]にquotepath = falseを追加すればOKです。
1 tag
gitって空フォルダは管理してくれません
とある物件でeccubeを使う事になったのですが、それをgitで管理しようと思ったらeccubeってインストール用に空フォルダを結構準備していてそれを管理してくれません。
gitで空フォルダを管理しようと思ったら.gitignoreの空ファイルをそのフォルダにおいておくのがお決まりなようです。
かといって、いっぱいあるからフォルダを探し出し一つ一つにtouch .gitignoreするのはめんどくさい。
find . -type d -empty | touch $(ruby -e 'while l=gets do puts l.chomp<<"/.gitignore" end')
で一発です。rubyがでてくるのは仕様ですww。
1 tag
gitosisを使ってみた
gitosisとはどのレポジトリをどのユーザーに公開するか管理するソフト。
非常に便利です。
基本的に
http://openbooth.org/archives/60.html
http://openbooth.org/archives/65.html
http://openbooth.org/archives/82.html
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
を見ればインストールできます。
上記のリンクで足らない事は
/etc/ssh/sshd_configのAllowUsersにgitを足しておく事(上記リンクに従って設定した場合)と
Ubuntuの場合/etc/init.d/ssh reloadじゃ駄目でrestartなこと、...
March 2009
12 posts
1 tag
iscsiがなかなかいい
ubuntuだと
sudo apt-get install iscsitarget
で
/etc/ietf.conf
をチョチョイといじるだけ。
Macな方はglobalSAN iSCSI Initiator for OS Xで、Winな方(XP Home以下は除く)はMicrosoft iSCSI Software Initiator Version 2.08を使って接続。
速いし簡単。ietf.confの設定方法はietf.confでググってください。
1 tag
alias tailall="tail -f /path/to/log1 | sed 's/^/hoge1:/' & tail -f /path/to/log2 | sed 's/^/hoge2:/' & tail -f /path/to/log3 | sed 's/^/hoge3:/'"
.bashrcにこんなのを書き込んで複数のtailを一緒に見ています。
1秒に1アクセスな感じなので、アメブロ式PVでいくと1日86400PVになります。
[追記]
tail -f /path/to/log1 /path/to/log2 /path/to/log3
上記のようなめんどくさい事をしなくても最近のtailは並べるだけでいいようです。
2 tags
railsが2.3.2に、iPhoneOSが3.0に
http://weblog.rubyonrails.org/2009/3/16/rails-2-3-templates-engines-rack-metal-much-more
なんで重なるんでしょうね。
いそがしくなります。
1 tag
現在サーバー移行中です
今までは海外のVPSを使用していたのですが、アクセス増に伴いメモリ不足になってきた事と、固定IPを取得した事もあり、サーバーを以前のように社内サーバーへと移行していっています。サーバーに必要なのはCPUパワーよりもまずメモリです。2GBまで増量しました。
現在PHPで作られているサイトの移行は完了しました。バックアップ体制も整いました。せっかくなのでデプロイをすべてcapistranoに任せようとスクリプトも書きました。非常に快適になっております。
正直、HDもSSDに変更してより安全をとも思ったのですが、capistranoの便利さに目覚め、また、http://github.suitmymind.com/ubuntu-machine/...