パスワードファイル操作のまとめ

パスワードファイル新規作成

htpasswd -c ファイル名 ユーザ名
New password: パスワード
Re-type new password: パスワード

ファファイルに追加(パスワード変更)

htpasswd ファイル名 ユーザ名
New password: パスワード
Re-type new password: パスワード

コマンド引数でパスワードを指定

htpasswd -cb ファイル名 ユーザ名 パスワード

ユーザ削除

htpasswd -D ファイル名 ユーザ名

Floatクラスで基数指定付きto_s

ちょっと必要だったので、小数も指定基数でto_sできるようにしてみた。
ただ、指定基数によっては無限小数になる場合があるので、第2引数でto_sの最大長を指定できるようにしてみた。

class Float
  alias :to_s10 :to_s
  def to_s(base=10, max=20)
    raise ArgumentError, "invalid radix #{base}" if base < 2 || base > 36
    return self.to_s10 if base == 10
    clone = self
    c = clone.to_i
    str = c.to_s(base)
    clone -= c
    if clone != 0
      str += '.'
      while clone != 0 && max > 0
        clone *= base
        c = clone.to_i
        str += c.to_s(36)
        clone -= c
        max -= 1
      end
    end
    str
  end
end

こんな感じで使えるはず。

irb(main):042:0* 3.1415926535.to_s(2)
=> "11.00100100001111110110"
irb(main):043:0> 
irb(main):044:0* 3.1415926535.to_s(3)
=> "10.01021101222201021100"
irb(main):045:0> 
irb(main):046:0* 3.1415926535.to_s(16)
=> "3.243f6a8822e88"
irb(main):047:0> 3.1415926535.to_s(36)
=> "3.53i5ab1nu1od65oswd6b"
irb(main):048:0> 3.1415926535.to_s(1)
ArgumentError: invalid radix 1
	from (irb):4:in `to_s'
	from (irb):48
	from /usr/local/ruby/bin/irb:12:in `<main>'

とりあえず、問題なさそうなので良しとするか。。。

Pascalの三角形をやてみた

http://rubyist.g.hatena.ne.jp/moira/20090729/1248837435
を見て別のアプローチで再帰使わずにやってみた。
(階乗の計算では再帰使っているけどw
かなり速い!!

class Numeric
  def fact
    return 1 if self.zero?
    return @cache until @cache.nil?
    @cache = self * (self - 1).fact
  end
end

def pascal(n)
  n -= 1
  (0..n).map{|x| n.fact / (x.fact * (n - x).fact)}
end

pascal(32)

FireFox3.5でProxy設定を素早く切り替える

PCを別の環境へ接続して作業したりする場合にProxyを切り替える、なんてことはよくある。

FireFox3.5にするまではSwitchProxy Tool 1.4.1を使っていたが、
いつまでたっても3.5対応がされない。。
強制インストールするとFireFoxが変な動きするし(汗


が、見つけた!Multiproxy Switchを使えば、いいみたいだ。
ってか名前変わっただけで、使い方もデザインも同じやし・・

ツール→オプション→詳細タブ→ネットワークタブ→接続設定なんてやらなくても、ステータスバー等からすぐに切り替えられるのでオススメです!

iTunes 8.2の更新がされない..

この記事によれば、iTunes 8.2がUpdateにより適用されるはず。
アップル、iPhone 3.0に対応するiTunes 8.2を公開 - AV Watch


だが。。。iTunes 8.2bをインストールしているせいなのか、
Updateの対象にならない・・・なぜですか?

まぁとりあえずもう少し待ってみるか。。


追記
なんかAppleのページ行ってみてiTunesのページ行ったら最新版ダウンロードできた。
iTunes 8.1 をダウンロード」って書いてあるの嘘やん!!!(2009/06/03 01:10)

PerlワンライナーでURLエンコード/デコード

こんな感じかな?
ワンライナーじゃないwww)

URLエンコード

コード
perl -e '$ARGV[0]=~s/([^\w ])/"%".unpack("H2",$1)/eg;$ARGV[0]=~s/ /\+/g;print"$ARGV[0]\n"' 【エンコードしたい文字列】
テスト
> perl -e '$ARGV[0]=~s/([^\w ])/"%".unpack("H2",$1)/eg;$ARGV[0]=~s/ /\+/g;print"$ARGV[0]\n"' "test テスト"
test+%83e%83X%83g

URLデコード

コード
perl -e '$ARGV[0]=~s/\+/ /g;$ARGV[0]=~s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;print"$ARGV[0]\n"'【デコードしたい文字列】
テスト
perl -e '$ARGV[0]=~s/\+/ /g;$ARGV[0]=~s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;print"$ARGV[0]\n"' "test+%83e%83X%83g
test テスト

"