kounoike さんのブログ

gentoo-2006.0 on VirtualPC 2004-SP1

MSDN-AA 経由で Virtual PC 2004 を使っていたのだが,無料化したので無料版の方の2004 SP1に入れ替えた。・・・あれ。install CD が kernel panic だ。 回避法:起動時にオプションで docache を付ける。 ついでにいくつかメモを。
  • キーマップ選択はスクリプトがこけてる。/dev/vc/0とか叩こうとするが実際にあるのは/dev/vc0など。起動中の選択では無視して loadkeys jp106 とすれば良い。
  • InstallCDの中に何か追加したいときは,*.isoを-o loopでマウント&コピーしておく→image.squashfsを取り出す→カーネルでSquashFSを有効にしたマシンでマウント・中身をコピーする→てきとーに入れたいものを入れたいだけ入れる→sys-fs/squashfs-tools-2.xを入れてmksquashfsする (2006.0のカーネルは-3.xを認識してくれない) mkisofs -R -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -iso-level 4 -hide-rr-moved -c boot.catalog -o new-installcd.iso new-dir/って感じでisoができる。

巨大なファイルを http でダウンロード

メモ。 ccollect->dar->mkisofs とやって作った 4.5GB の .iso ファイル1個をクライアントPCに移そう,という話。FTP で生パスワード流したくないし,FTP/SSLは色々面倒。http でやっちまえ~というときの話。Opera 最強。

dar の bzip2 圧縮が遅すぎる。

ccollect で世代別バックアップができるようになったら,圧縮&暗号化などしてメディアに書き込みたくなってくるのが人情というもの(?)です。 圧縮・暗号化・差分バックアップと読み書きのエラーに対する耐性を考えると,候補は afio と dar あたりでしょうか。 で。dar が遅い遅いと思っていたら -y で bzip2 を使った場合がやたらと遅い様子。対象が悪いのか圧縮率もほとんど変化なし。4倍の時間差とは・・・

Link: 続・配列から効率良くプレースホルダを作る - にぽたん研究所

続・配列から効率良くプレースホルダを作る - にぽたん研究所 「SQLのプレースホルダ作成に使う」という状況を考慮すると,「必要な要素数は限定されている」とか,「ある程度の上限がある」とかの仮定を入れても良いと思います。 「必要な要素数は限定されている」という仮定を使えば,作った文字列をキャッシュするとか。 my %cache = (0 => ''); sub placeholder_from_array {   my $num = scalar @_;   $cache{$num} = substr('?,' x $num, 0, -1) unless exists $cache{$num};   return $cache{$num}; }   「上限がある」という仮定を使えば,事前に長い文字列を作っておいてそこから切り出すとか。

Nagios で証明書の監視 (高木浩光@自宅の日記 - サーバ証明書の期限切れ事故を防止するには?)

高木浩光@自宅の日記 - サーバ証明書の期限切れ事故を防止するには? Nagiosでも監視できる。 $ check_http -h ...  -C, --certificate=INTEGER     Minimum number of days a certificate has to be valid.     (when this option is used the url is not checked.) ... $ check_http -C 21 www.verisign.com OK - Certificate will expire on 06/01/2007 23:59. $ check_http -C 300 www.verisign.com WARNING - Certificate expires in 291 day(s) (06/01/2007 23:59).  

ccollect でスナップショットバックアップ

|
ささだ君の講義にお邪魔させてもらったときにpdumpfsの話があったのを機に, 自宅サーバやらもろもろのバックアップ体制をしっかりしようと思い立って色々と調べてみました。 その中でccollectが良い感じだったので導入してみました。ccollectの主な特徴は以下の通りです。
  • rsyncとハードリンクを使ったディスク容量・実行時間の面で効率の良い世代別スナップショットバックアップツール
  • ディレクトリとファイルの構造を使った分かりやすい設定方法で,独自の設定ファイル構文などを覚える必要がない
  • rsync+sshによりリモートバックアップも可能
  • 複数のソース (バックアップ元) を定義できる
  • ソースごとにpre_exec, post_execスクリプトで事前/事後の処理を追加可能
  • /bin/sh, bc, pax, date, rsync, ssh (リモートバックアップを行うときのみ) といった,paxを除いて普通に入ってるツールを使ったシェルスクリプト一つだけで動く (paxの依存は後述のパッチで除去することも可能)

Link: TLSWrap

TLSWrap 良い。素晴らしい。FFFTPとかに対してプロキシ的にFTP over SSL/TLSを提供してくれる。Windowsではインストーラを使うとサービスとして起動してくれる。 デフォルトではlocalhost:7000ポートで待ち受けているので,FTPクライアントではここに接続させる。で,ユーザ名をusername@host:portの形で書く。これだけ。 ユーザ名を#username@hostとすればデータコネクションを暗号化しないので軽くて幸せ,かも。 %username@hostとするとFTP/SSLのimplicit認証を使う。+3username@hostで多分SSLv3で接続・・・ってややこしいんだよなぁ。ftps周り。

Collatz予想 64bitも桁あふれ

前のエントリの続き。 前のエントリで,こんなテーブルを使って数ステップまとめて進むという改良を入れました。 8i + 0 ->  4i +  0 ->  2i +  0 ->   i +  0 8i + 1 -> 24i +  4 -> 12i +  2 ->  6i +  1 -> 18i +  4 ->  9i +  2 8i + 2 ->  4i +  1 -> 12i +  4 ->  6i +  2 ->  3i +  1 8i + 3 -> 24i + 10 -> 12i +  5 -> 36i + 16 -> 18i +  8 ->  9i +  4 8i + 4 ->  4i +  2 ->  2i +  1 ->  6i +  4 ->  3i +  2 8i + 5 -> 24i + 16 -> 12i +  8 ->  6i +  4 ->  3i +  2 8i + 6 ->  4i +  3 -> 12i + 10 ->  6i +  5 -> 18i + 16 ->  9i +  8 8i + 7 -> 24i + 22 -> 12i + 11 -> 36i + 34 -> 18i + 17 -> 54i + 52 -> 27i + 26   ここで,8i+4と8i+5に注目です。この2つの値はどちらも4回 (経過を見ると3回) の操作で同じ値に合流しています。つまり,任意のi>0について,g(8i+4)=g(8i+5)が成り立ちますので,h(n)の計算の過程で8i+5は計算する必要がありません。こんなパターンはk(2^k*i+jの形でテーブルを作るときのk)が大きくなるとより多く出現します。例えばk=16なら65536個のjのうち,19275個を調べれば十分です。この処理を入れたのが以下のコードと前のエントリに載せた結果です。Danさんのコードは分かりやすくていじりやすくて良いですね。

どこまで行けるか? Collatz予想

Danさんのコードを元に改良をしていたのですが,itaさんがほとんど同じことをされていたので,もう一捻りしてみました。 その結果10^10がcygwin on Pentium4 2.6GHz上で6分程度で計算できるくらいには高速化しました。 $ time ./collatz_tab 10000000000 check table: 10226 / 32768 (ratio:0.312073) h(10000000000) = 9780657630 where g(9780657630:246f8fdde) = 1133 real    5m59.225s user    5m58.718s sys     0m0.140s     この結果を出したコードはこちらに。このエントリでは「一捻り」の前までです。 そうそう。「世界記録は2^58」とか色んな話を読みますが,Collatz予想の検証には今回のお題の「f^k(n)=1となるk」を求める場合と「f^k(n)

Gentoo@vpslink-Link1

| |
VPSLink Link1を取ってみた。最低スペックのLink1 (RAM:64M Disk:2GB) にしてみたところ・・・
  • emerge --sync (rsync) がこける
  • gcc, glibc, libperlなど片っ端からコンパイルこけまくる
  • glibcのlocale作るところでUTF8系がこけまくる
と問題連発。 まあ,RSYNC_EXCLUDEFROM/PORTAGE_RSYNC_EXTRAOPTSとか設定したり,手元のgentoo-box上のopenvz上でbuildpkgして逃げたりと,色々と対処法があって・・・色々と遊びがいがあって,楽しい。楽しすぎる。 メモリ不足に対処するぜ!ってことで-Osにしたり,manなんて要らない!ってFEATURES="nodoc noman noinfo"したり。Gentooならではの醍醐味というところか。
コンテンツのシンジケート