2009年10月18日日曜日

三日坊主

なんとかせんと・・・いかんぜよ・・・

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

2009年5月17日日曜日

生存報告兼ラーメン

久しぶりに生存日記兼ラーメンの話でも。
最近ちょこちょこラーメンを巡り歩く(?)のが好きです。
今日新宿でほぼ1番人気(?)(09/05/16時点の食べログ参照:http://r.tabelog.com/ramen/tokyo/A1304/)といわれる風雲児にいってきました。
おいしさは結構おいしいと思いましたが、めちゃくちゃ最高かといわれるとそうでもないです。
以下写真。


この味なら、やすべえのほうがおいしいしお得感もあるのではないかなーと思いました。

2009年5月5日火曜日

gitgit

gitのお勉強で何かいいところないかなーと探してて最近では

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とかで見てもらうとして、実用的そうなのは以下のコマンドです。

 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を管理するまでの作業ログ

2009年4月17日金曜日

twitter

もっといいものがgemで公開されていました。
しかもgemで。

http://jugyo.org/blog/2931

色もつくようになってるし、便利すぎる。。