2009年6月5日金曜日
ArchLinux
最近はArchLinuxなるものを先輩に触発されて使っています。
ArchLinuxというのは、
http://www.archlinux.org/
で配布されてるLinuxです。Wikipediaとかを見るとわかりやすいと思うのですが、「自分で作っていける」というのがモットーになっています。要するに、最初インストール時は必要最低限のツールしか入っていなくて、Xいれたいとかと言う人は最初からすべて自分でいれていってねというものです。
といっても、それほど難しいわけではないです。pacmanという(いわゆる、aptitudeやyumみたいなパッケージ管理ツール)のがあって、これを使えばすべてのパッケージを簡単に追加したり削除できたりします。なので最初にいれてしまえばあとは更新するだけで末永く使えます。(タッチパッドとか音とかちょっとてこずりましたが・・)
私はXに、Xfce4を入れて使ってます。PenM1.2Ghzのノートマシンで動かしてますが、サクサク動いてていい感じです。XはArchLinuxだとhalというのをインストールすることで大体勝手に設定してくれます。
@何がいいかというと、パッケージの更新頻度がはやいということです。これは最強です。ArchLinuxのパッケージを更新されている方々はほんとすごいと思います。
実際に1回いれてみるとすごさが分かると思います。なかなか日本語の文献が少ないのが傷ですが、ArchLinuxのWikiを見れば英語ですがほとんどのトラブルを解決することができます。
最近ようやく日本のレポジトリ(山形大学)ができて、浸透してきているという感じです。
どんどん使っていこうかなーと感じてます。
参考サイト:
ArchLinux本家 http://www.archlinux.org/
ArchLinux2ch http://pc11.2ch.net/test/read.cgi/linux/1209312675/l50
ArchLinuxインストール。 http://www.tinyogre.com/linux/arch.shtml
ArchLinuxというのは、
http://www.archlinux.org/
で配布されてるLinuxです。Wikipediaとかを見るとわかりやすいと思うのですが、「自分で作っていける」というのがモットーになっています。要するに、最初インストール時は必要最低限のツールしか入っていなくて、Xいれたいとかと言う人は最初からすべて自分でいれていってねというものです。
といっても、それほど難しいわけではないです。pacmanという(いわゆる、aptitudeやyumみたいなパッケージ管理ツール)のがあって、これを使えばすべてのパッケージを簡単に追加したり削除できたりします。なので最初にいれてしまえばあとは更新するだけで末永く使えます。(タッチパッドとか音とかちょっとてこずりましたが・・)
私はXに、Xfce4を入れて使ってます。PenM1.2Ghzのノートマシンで動かしてますが、サクサク動いてていい感じです。XはArchLinuxだとhalというのをインストールすることで大体勝手に設定してくれます。
@何がいいかというと、パッケージの更新頻度がはやいということです。これは最強です。ArchLinuxのパッケージを更新されている方々はほんとすごいと思います。
実際に1回いれてみるとすごさが分かると思います。なかなか日本語の文献が少ないのが傷ですが、ArchLinuxのWikiを見れば英語ですがほとんどのトラブルを解決することができます。
最近ようやく日本のレポジトリ(山形大学)ができて、浸透してきているという感じです。
どんどん使っていこうかなーと感じてます。
参考サイト:
ArchLinux本家 http://www.archlinux.org/
ArchLinux2ch http://pc11.2ch.net/test/read.cgi/linux/1209312675/l50
ArchLinuxインストール。 http://www.tinyogre.com/linux/arch.shtml
2009年5月17日日曜日
2009年5月5日火曜日
gitgit
gitのお勉強で何かいいところないかなーと探してて最近では
AMAZON :
WEB+DB PRESS Vol.50
が個人的におすすめです。
実際読んでいるのですがgit初心者(私)にとっては非常にわかりやすいです。(gitのためだけにつぎ込むのも考え物ですが。といっても他についても勉強になります。)
@書いたくないとかという人は
やる夫で学ぶ gitcore-tutorial
とかもいいと思います。
AMAZON :
WEB+DB PRESS Vol.50
が個人的におすすめです。
実際読んでいるのですがgit初心者(私)にとっては非常にわかりやすいです。(gitのためだけにつぎ込むのも考え物ですが。といっても他についても勉強になります。)
@書いたくないとかという人は
やる夫で学ぶ gitcore-tutorial
とかもいいと思います。
2009年5月2日土曜日
指定したportをkillしたいとき
Linuxで特定のportを使っているプログラムをなんとかして消したいと思うときが時々あります。
例えばRailsでmongrel動かしているとき。なぜかmongrel_rails cluster::restart とやっても再起動しないことがありました。あとrubyで複数のmongrelを使ってるときいつのまにかport埋まってていちいちpid特定してkillするのも面倒です。
で、なんとかしてRuby使ってportkillできないかなーとか思って調べてみたんですが直接Rubyでプロセスをいじれるようなメソッドが見つからなかったので(どなたかもし知っていればぜひ教えてください。)systemコマンドのlsofというコマンドというものを使うことにしました。
詳しくはmanとかで見てもらうとして、実用的そうなのは以下のコマンドです。
このコマンドで少なくともDebian etch環境では
という風に出てきます。
ただし、root権限で実行しないとすべてがでてきません。一般ユーザー権限で実行するとその実行したユーザーが現在ポートを使っているプログラムしか出てきません。
これを使って適当にプログラムを書きました。
(結構オレオレ仕様が入っています。rootでしか使えないのはちょっとやりすぎですかね。。@個人的練習のためにgithub(http://github.com/syou/tools)にもおいてあります。)
注意:このプログラムはENV使ってます。ENV環境はそれぞれのディストリビューションによって違う可能性があります。
これでどんどんkillできるー(だめだけど)apacheでも何でも
例えばRailsでmongrel動かしているとき。なぜかmongrel_rails cluster::restart とやっても再起動しないことがありました。あとrubyで複数のmongrelを使ってるときいつのまにかport埋まってていちいちpid特定してkillするのも面倒です。
で、なんとかしてRuby使ってportkillできないかなーとか思って調べてみたんですが直接Rubyでプロセスをいじれるようなメソッドが見つからなかったので(どなたかもし知っていればぜひ教えてください。)systemコマンドのlsofというコマンドというものを使うことにしました。
詳しくはmanとかで見てもらうとして、実用的そうなのは以下のコマンドです。
lsof -i -n -P
このコマンドで少なくともDebian etch環境では
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 2368 root 3u IPv4 8087 0t0 TCP *:22 (LISTEN)
sshd 2368 root 4u IPv6 8089 0t0 TCP *:22 (LISTEN)
という風に出てきます。
ただし、root権限で実行しないとすべてがでてきません。一般ユーザー権限で実行するとその実行したユーザーが現在ポートを使っているプログラムしか出てきません。
これを使って適当にプログラムを書きました。
(結構オレオレ仕様が入っています。rootでしか使えないのはちょっとやりすぎですかね。。@個人的練習のためにgithub(http://github.com/syou/tools)にもおいてあります。)
注意:このプログラムはENV使ってます。ENV環境はそれぞれのディストリビューションによって違う可能性があります。
#!/usr/bin/ruby
require 'optparse'
#raise ENV["USER"].inspect
#raise ENV["_"].inspect
##############################################
# portkill.rb 09/05/01
# Usage: portkill.rb -p PORT
# (Only root can run this program.)
#############################################
unless ENV["USER"] == "root"
puts "root required.(please su or sudo!)"
exit(-1)
end
port = 0
ARGV.options do |opt|
opt.on('-p PORT', 'port number.'){ |v| port = v.to_i }
opt.parse!
end
if port.to_i.zero?
puts "Usage: portkill [options] \n\t-p PORT\t port number."
exit(-1)
end
puts "port #{port} process is searching now..."
finds = []
first_line = nil
ports = %x(lsof -i -n -P).split(/\n/)
ports.each_with_index do |port_line, i|
if i.zero?
first_line = port_line
next
end
split_line = port_line.split(/\s+/)
_port = nil
#raise line.inspect
split_line.each do |s|
if s.split(":").size > 1
_port = s.split(":")[1].to_i
#tmps << _port
end
end
if _port == port
finds << { :description => port_line, :port => _port, :pid => split_line[1].to_i }
end
end
if finds.empty?
puts "port #{port} process doesn't find in all proceses!"
exit(0)
end
puts "find #{finds.size} count processes."
puts first_line
finds.each{ |k| puts "[find] #{k[:description]}"}
finds.each do |f|
puts "#{f[:pid]} is killing now.."
%x(kill #{f[:pid]})
end
puts "done."
exit(0)
これでどんどんkillできるー(だめだけど)apacheでも何でも
2009年4月29日水曜日
github
github(http://github.com)でアカウントを取ってみました。この機を機会にgitコマンドについて覚えたいと思います。
今まではsvnを使っていたのですが、gitとsvnの明確な違いはいわゆる分散レポジトリというものがあるということらしいです。(あまりよく理解してない。)
一時的にコミットしてごにょごにょやりたいときに使えそうです。
アカウントは
https://github.com/syou
とりあえず作ったTreeは
https://github.com/syou/tools/tree
です。
インストールとかはとても詳しく解説されているサイトさんがたくさんあるのでそちらに任せたいと思います。
ただ、コマンドが多いので覚えるのがなかなか大変そうです。。
参考になったサイト:
http://wota.jp/ac/?date=20080602 ヽ( ・∀・)ノくまくまー(2008-06-02)
http://www.ideaxidea.com/archives/2008/10/githubcomphpusersjp.html github.comでphp-users.jpを管理するまでの作業ログ
今まではsvnを使っていたのですが、gitとsvnの明確な違いはいわゆる分散レポジトリというものがあるということらしいです。(あまりよく理解してない。)
一時的にコミットしてごにょごにょやりたいときに使えそうです。
アカウントは
https://github.com/syou
とりあえず作ったTreeは
https://github.com/syou/tools/tree
です。
インストールとかはとても詳しく解説されているサイトさんがたくさんあるのでそちらに任せたいと思います。
ただ、コマンドが多いので覚えるのがなかなか大変そうです。。
参考になったサイト:
http://wota.jp/ac/?date=20080602 ヽ( ・∀・)ノくまくまー(2008-06-02)
http://www.ideaxidea.com/archives/2008/10/githubcomphpusersjp.html github.comでphp-users.jpを管理するまでの作業ログ
2009年4月17日金曜日
2009年4月14日火曜日
ARGV
Rubyの話です。
何気なく、ARGVの処理で毎回毎回
とか書くのはなんか美しくない(?)とか思ってRubyのAPIを探ってみると
optparse::チュートリアル
というのがきちんと用意されていました。(さすがAPIの用意が周到すぎる。)
詳しくは、上記のサイトを見ればわかると思うのですが、例として適当なプログラムを示しておきます。
実行結果:
これを使うと特に何も意識しなくても引数指定プログラムが簡単にできるということを初めて知りました。調べるものだなぁ。
何気なく、ARGVの処理で毎回毎回
ARGV.each { |opt|
case opt
when "-t"
...
}
とか書くのはなんか美しくない(?)とか思ってRubyのAPIを探ってみると
optparse::チュートリアル
というのがきちんと用意されていました。(さすがAPIの用意が周到すぎる。)
詳しくは、上記のサイトを見ればわかると思うのですが、例として適当なプログラムを示しておきます。
#!/usr/bin/ruby
require 'optparse' #optionsを使うために必要
ARGV.options do |opt|
opt.on('-a', '-b') { |v| p v } #複数指定も可能
#[VAL]とすると、-bがあった場合、引数は
#どっちでもよいことになる。(vにはtrueが入る)
opt.on('-c [VAL]') { |v| p v }
#VALとすると、-cがあった場合、引数は必須。
#(ないと、missing argumentsと中断はしないが警告がでる。)
opt.on('-d VAL') {|v| p v }
opt.on('--ee'){ |v| p v } #ロングオプションも可能。
#実際にコマンドラインのパースを行う
#*上記以外の引数が与えられると、invalid optionと警告がでる。
#(プログラムは終了しない)
opt.parse!
end
#以下を実行すると、無効な引数が指定された場合、
#UsageOptionsがでて、プログラムの実行が強制中断される。
ARGV.parse!
p "OK"
p ARGV
exit(0)
実行結果:
% ./test.rb -a -b -c CALLC -d CALLD --ee
true
true
"CALLC"
"CALLD"
true
"OK"
[]
% ./test.rb -a -c -g -h -k
true
nil
test: invalid option: -g
Usage: test [options]
-a, -b
-c [VAL]
-d VAL
--ee
% ./test.rb -a -c -d
true
nil
test: missing argument: -d
"OK"
[]
これを使うと特に何も意識しなくても引数指定プログラムが簡単にできるということを初めて知りました。調べるものだなぁ。
2009年4月13日月曜日
2009年4月10日金曜日
ウイルスバスター・・・
ウイルスバスターを1,2年くらい前から3ライセンス!っていう欲に負けて使っていたのですが、つい先日ウイルスバスターを消去する決意をし、消しました。
っていうのは、ウイルスバスターなぜかsambaとかネットワークをデフォではじくのです。設定しろとかいうかもしれませんがデスクトップのKaspersky君は何事もなく通してくれてしっかり仕事をしてくれています。(ウイルスバスターしかも結構重いし。。)
ってことで消しました。消そうとしました。が消えませんでした。
・・・途中で止まるんですね~これが。
「ドライバをアンインストールしています。」ってなあたりで固まってうんともすんとも言わなくなりました。
1時間以上たってもそのままなので仕方ないので強制終了させ、サポートの方を調べてみると、ここにツールを使った方法がのっていたのでこれをみて削除しました。
・・・思うんですが、このツールみたいになんでさくっとアンインストールできないんですかね。(Windowsインストーラとの兼ね合いもあるんだろうけどそれにしてもツールだとあっさりしすぎ。)
そしてアンインストール後のPCは数倍軽くなってました。(軽くなりすぎ)
というわけでノートには新しくKasperskyとかでも入れようと思います。ウイルスバスターは・・個人的には無理です。
っていうのは、ウイルスバスターなぜかsambaとかネットワークをデフォではじくのです。設定しろとかいうかもしれませんがデスクトップのKaspersky君は何事もなく通してくれてしっかり仕事をしてくれています。(ウイルスバスターしかも結構重いし。。)
ってことで消しました。消そうとしました。が消えませんでした。
・・・途中で止まるんですね~これが。
「ドライバをアンインストールしています。」ってなあたりで固まってうんともすんとも言わなくなりました。
1時間以上たってもそのままなので仕方ないので強制終了させ、サポートの方を調べてみると、ここにツールを使った方法がのっていたのでこれをみて削除しました。
・・・思うんですが、このツールみたいになんでさくっとアンインストールできないんですかね。(Windowsインストーラとの兼ね合いもあるんだろうけどそれにしてもツールだとあっさりしすぎ。)
そしてアンインストール後のPCは数倍軽くなってました。(軽くなりすぎ)
というわけでノートには新しくKasperskyとかでも入れようと思います。ウイルスバスターは・・個人的には無理です。
2009年4月8日水曜日
rubyとtwitter
さる人からtwitterやろう的なことをいわれて始めた(wataminで登録してます。)のですが、わざわざtwitterのサイトに行くのも面倒なのでなんか作業とかしてる合間にtwitterをすぐ投稿できるような仕組みないかなーと思ってちょっと調べてみると、twitterは何かAPIが公開(日本語例ならこことか、本家ならこことか)されてるようです。
ただこれに目を通すのは(AMAZONとかのAPIに比べれば楽かもしれないけど)これもめんどいです。
なので楽にするためにrubygemsを使います。
調べてみると、Rubyのgemには twitter(ここや日本語ならここが参考になると思います。) と twitter4r(こことか。)があるようです。
どっちを使ってもいけるみたいなんですが適当にtwitter4rとかを選んでみました。
環境は、debian/etch, ruby1.87, gemが使える状態です。
インストールは本家rdocをみればわかるように至って簡単で、
でできます。(jsonのエラーが出たらgem install jsonでjsonインストールすればいいと思います。)
つなぐ方法は以下のようにやるだけでできてしまいます。(例外とかはほとんど考慮してません。)
使い方は、普通に
./twitter.rb 送る内容
でできます。
ただ、毎回パスを指定するのはいやなので自分は(zshの場合です。).zshrcに
とか適当にaliasをつけて
とかでできるようにしました。
twitterにはなんか詰まったときとか(愚痴を?)書こうと思います。
ただこれに目を通すのは(AMAZONとかのAPIに比べれば楽かもしれないけど)これもめんどいです。
なので楽にするためにrubygemsを使います。
調べてみると、Rubyのgemには twitter(ここや日本語ならここが参考になると思います。) と twitter4r(こことか。)があるようです。
どっちを使ってもいけるみたいなんですが適当にtwitter4rとかを選んでみました。
環境は、debian/etch, ruby1.87, gemが使える状態です。
インストールは本家rdocをみればわかるように至って簡単で、
gem install twitter4r
でできます。(jsonのエラーが出たらgem install jsonでjsonインストールすればいいと思います。)
つなぐ方法は以下のようにやるだけでできてしまいます。(例外とかはほとんど考慮してません。)
#!/usr/bin/ruby
require 'rubygems'
require 'twitter'
require 'time'
email = "hoge@hoge.com" #メールアドレスを書く。
pass = "hoge" #パスワードを書く
tw = Twitter::Client.new(:login => email, :password => pass)
unless tw.authenticate?(email, pass)
raise "This user cannnot authenticated.(login as #{email}) \n"
end
if ARGV.size >= 2
printf("投稿するときは引数は1つにしてください。 \n 終了\n")
exit(0)
end
tw.status(:post, ARGV[0])
printf("SendMessage : #{ARGV[0]} \n")
exit(0)
使い方は、普通に
./twitter.rb 送る内容
でできます。
ただ、毎回パスを指定するのはいやなので自分は(zshの場合です。).zshrcに
alias twitter="~/ruby/twitter/tw.rb"
とか適当にaliasをつけて
twitter テスト。
とかでできるようにしました。
twitterにはなんか詰まったときとか(愚痴を?)書こうと思います。
2009年4月6日月曜日
親子丼と牛丼
こんばんは。いつも眠いsyouです。
突然なのですが最近、なか卯の親子丼が好きです。行くとなぜか毎回親子丼しか食べてません。(2,3回しかいってませんが。)
http://www.nakau.co.jp/
なんか吉野家にも最近親子丼が出てるらしいので今度食べに行ってこようと思ってます。
(ちなみにランプ亭のを食べに行ったことあるけど個人的には なか卯 > ランプ亭(値段的にも))
ただ思うのは、人と一緒に食べに行って先の人が「牛丼」を買ってから、私が「親子丼」を買うと、席に着くときには牛丼が置かれているのは早すぎな気がします。(どんだけついで出すのはやいんですか。)
さすがに親子丼は数秒ででてくるってことはないんですが、牛丼の恐ろしさを知った気がします。
突然なのですが最近、なか卯の親子丼が好きです。行くとなぜか毎回親子丼しか食べてません。(2,3回しかいってませんが。)
http://www.nakau.co.jp/
なんか吉野家にも最近親子丼が出てるらしいので今度食べに行ってこようと思ってます。
(ちなみにランプ亭のを食べに行ったことあるけど個人的には なか卯 > ランプ亭(値段的にも))
ただ思うのは、人と一緒に食べに行って先の人が「牛丼」を買ってから、私が「親子丼」を買うと、席に着くときには牛丼が置かれているのは早すぎな気がします。(どんだけついで出すのはやいんですか。)
さすがに親子丼は数秒ででてくるってことはないんですが、牛丼の恐ろしさを知った気がします。
2009年4月4日土曜日
rinaiとかyasnippetとか
最近までrailsを編集するのにemacsでemacs-railsを使っていたのですが、サーバー側のemacsにrinari, yasnippet(このときver0.5)とかを入れてみました。
入れてみると結構いい感じです。(しばらく使ってみてよかったらノートにも導入しよう。)
以下やったことです。
rinari, snippetは基本的に
emacsとRinariで快適Rails開発!
を参考にさせていただきました。導入の仕方がわかりやすく書かれています。感謝。
上のサイトを参考にすれば導入には問題ないです。
あとサーバーだとsshを使ったりすると思うのですがこのとき大体色が制限されたり、後ろが黒い画面だと結構見にくいので
~/path/rhtml/rhtml-fonts.el
109行目付近から
・・・(略)
のように色が設定できるので適当に自分の好きな色に変更するといいと思います。
yasnippetは結構使いやすいです。
docは
http://yasnippet.googlecode.com/svn/trunk/doc/index.html
にあるようですが、なかなか量が多いですね。。
%を入力してTab : <% -%> の補完
%hを入力してTab : <%= h @item %>の補完
なんかいいのがあったらまた書こうと思います。
入れてみると結構いい感じです。(しばらく使ってみてよかったらノートにも導入しよう。)
以下やったことです。
rinari, snippetは基本的に
emacsとRinariで快適Rails開発!
を参考にさせていただきました。導入の仕方がわかりやすく書かれています。感謝。
上のサイトを参考にすれば導入には問題ないです。
あとサーバーだとsshを使ったりすると思うのですがこのとき大体色が制限されたり、後ろが黒い画面だと結構見にくいので
~/path/rhtml/rhtml-fonts.el
109行目付近から
(defface erb-face
`((t (:background "paleturquoise")))
"Default inherited face for ERB tag body"
:group 'rhtml-faces)
(defface erb-delim-face
`((t (:background "black")))
"Default inherited face for ERB tag delimeters"
:group 'rhtml-faces)
・・・(略)
のように色が設定できるので適当に自分の好きな色に変更するといいと思います。
yasnippetは結構使いやすいです。
docは
http://yasnippet.googlecode.com/svn/trunk/doc/index.html
にあるようですが、なかなか量が多いですね。。
%を入力してTab : <% -%> の補完
%hを入力してTab : <%= h @item %>の補完
なんかいいのがあったらまた書こうと思います。
2009年4月3日金曜日
あれっすね
何を書こうか考えるのですが・・・思いつかないんだなー
ネタ探し中!
最近買った本とか。読んでよかったら感想書くかもしれません。
Railsデプロイ
サーバーの構成について。
プログラミング言語Ruby
Rubyの本質に迫れる!らしい。
その他:
ネットサーフィンする人の方が仕事の生産性高い?
ネットサーフィンの正当性が確認された!
ネタ探し中!
最近買った本とか。読んでよかったら感想書くかもしれません。
Railsデプロイ
サーバーの構成について。
プログラミング言語Ruby
Rubyの本質に迫れる!らしい。
その他:
ネットサーフィンする人の方が仕事の生産性高い?
ネットサーフィンの正当性が確認された!
登録:
投稿 (Atom)