telnetの自動化

KVM(というかqemu)で-monitor telnet::4444,server,nowaitみたいなオプションを指定すると、モニタにtelnet接続できる。 telnetなので基本は対話的にコマンドを実行するしかないが、expectを使えばスクリプトに組み込むことができる。sleepとechoとパイプで…

さくらのVPSでSFTPサーバ

利用開始直後から鬼のように海外からアクセスが来るので、自衛が必要になる。 いろいろやってみたが、fail2banとChrootDirectoryを組み合わせるのがメンテも楽で良いのでfail2banと、internal-sftp(v4.9以降のOpen-SSH)が簡単に使えるFedora13を入れなおした…

さくらのVPSにWindowsをインストール

簡単に手順だけでも。OSはWindows Server 2008 R2にした。TechNet Subscription入ってたので。使うもの: KVMホスト(インターネットからsshで入れるようにしておく) 20GBの仮想ディスクを用意して使いたいOSをインストール # qemu-img create -f raw sakur…

KVMとiSCSIによるSANブート環境の構築[ゲスト:WindowsXP]

インストーラがiscsiに対応していないので、 1.ローカルディスクにインストール 2.iscsiブート可能なInitiatorを導入する 3.iscsiのLUNにローカルディスクのデータをコピー の順に作業を行う。必要なもの XPインストールメディアあると便利なもの LinuxのKVM…

PowerShell over Cygwin SSH

SSH越しにCygwinからPowerShellを起動しようとするとプロンプトが戻らない。 が、-Commandで呼んだ後に「Enter」を押せばCygwinのプロンプトには戻れるので一計。 <Cygwin>$ echo "" | powershell -Command "Get-Process" 予め鍵を仕込んでおいてリモートから <Remote>$ ssh </remote></cygwin>…

Intel DH67BLでLinuxを動かす場合のNIC認識方法

KVM検証用にCore i7-2600(8CPU認識+Intel VT-dだとi7-2600一択)とDH67BLを買ったが、Fedora14をインストールしたらオンボードNICの82579Vが新しすぎて認識されない。 AsusのP8P67 PROあたりでも採用されているようだ。とりあえず検索してみたら、Forumに対処…

KVMとiSCSIによるSANブート環境の構築[ゲスト:Fedora14]

方針 仮想化は手軽に検証や試用ができて非常に便利だが、仮想マシンを数多く作ろうとするとディスクI/Oがボトルネックになりがちである。 そこでスケーラビリティを向上させるため、ストレージをKVMホスト管理下から完全に外す方法を検討する。二次的効果と…

BSoD

高負荷テストばかりやっていたら、KVM上で青画面が出てしまった。

KVM上でWindowsを動かす時の備忘録

適当に試すだけならいいが、実際に運用しようとするとI/O周りで苦労する。 あくまで個人的な範囲で(SANとかなしで)不自由せずに使える設定を煮詰め中。 とりあえずvirshとかvirt-managerは使わずにqemu-kvmでそのまま叩く。 準備 ホストはFedora 13。Core …

Fedora 13 インストールメモ

GIGABYTEマザーを使用している場合、Fedora-13-x86_64-DVDからのインストールがうまくいかない。 ブートすらしてくれないのだが、原因はよくわからないらしい。 回避策はいろいろ見つかっているが、LiveCDからのインストールは、要らないパッケージがガンガ…

HashAlgorithmの実装(CRC32,CRC16)

.NET Frameworkの抽象クラスSystem.Security.Cryptography.HashAlgorithmの実装としてCRC32とCRC16を求めるクラスを作った。 基本的にMD5CryptoServiceProviderやSHAxxxCryptoServiceProviderと同じように使うことができる。 CRCの計算にはいろいろな流儀が…

Suffix Arrayの計算

LarssonSadakane法で接尾辞配列を求めるプログラム。 基本的にqsufsort.cそのまんま。実行結果 10 : a 7 : abra 0 : abracadabra 3 : acadabra 5 : adabra 8 : bra 1 : bracadabra 4 : cadabra 6 : dabra 9 : ra 2 : racadabra Program.cs using System; nam…

Fedora 11 on Windows Virtual PC

とりあえず成功した方法を書いてみる。 が、不必要な操作も混じっているかもしれない。 インストール自体はLive CDからと普通のインストールメディアから成功。 ネットワークインストールはうまくいかなかった。 まず新しいvhdを用意。一度失敗して数十KBの…

Linux on Windows Virtual PC

せっかくなのでLinuxも動かしてみた。 UbuntuとFedora 11をゲストOSにしてみたけど、Fedora11が大変だった。

Windows 7のXPモードを試してみた

手持ちのノートPCにWindows 7(64bit)を導入したので、XPモードを試してみた.Windows 7専用のWindows Virtual PCとXP Modeをインストール. 続いてXPの仮想マシンに,7側から使いたいXPのアプリ(画像ではJane)を普通にインストール. 仮想マシンからログオフ…

誕生日のパラドックスでみるクイズマジックアカデミーDS

昨日のエントリですべての問題を見るには約82万問解答する必要があるとしたQMADSだが,遊んでいると割と同じ問題をみかけることが多い. 同じ問題に出会う可能性がどれくらいかという話は,誕生日のパラドックスと呼ばれる有名な問題から知ることができる. …

クーポンコレクタ問題でみるクイズマジックアカデミーDS

コナミスタイルのQMADSのところに ■怒涛の収録クイズ問題数、「70,000問」以上! お客様に満足いただける、膨大なクイズ問題を収録いたしました。 とあるので,全ての問題を出し切るのに何問くらい答えればよいのか期待値を計算してみた. さすがにややこし…

ファミリーマートの全国分布図

ファミマ版も作ってみた. 全国展開を謳っているだけあってセブンよりは分散しているが,北海道は札幌にしかない. あとは沖縄に多いのがわかる.とりあえず比較. セブン青ファミマ赤で50%重ね合わせ. 東北あたりは結構出店地域が被っているのに対して,関…

セブンイレブンの全国分布図

セブンイレブンの勢力図を作ってみた. 各点の色はあまり関係ない. セブンイレブン・ジャパンのサイトにある店舗一覧から住所抽出 ↓ 東大の空間情報科学研究センターでアドレスマッチング ↓ NGDCからshoreline引っ張ってくる ↓ それぞれデータ整形してプロ…

定数3による整除算

昨日のexactDivideBy3()の不具合はちゃんと調べたら修正できた. ボローを伝搬させるところのif文に誤りがあった. たとえば mag[0]=2, mag[1]=0,mag[2]=1 みたいな状況で間違えた答えになる. 正しいものに書き換えたので,Divide(3)をやめてExactDivideBy3…

乗算の高速化

昨日の計算時間があまりにも遅かったので,BigIntegerのMultiplyにKaratsuba法と3-way Toom-Cook法を追加して高速化した. 実装はここにあるものを参考にしたが,これを移植したところ,非常にまれにバグる..自分のミスだと思うけど・・・ どれくらいまれ…

階乗の高速計算

nCrの計算が高速にできたので,それを使ってn!の値の高速計算にも利用できないかなーと思って実験してみた. 任意のnについて (n:偶数) (n:奇数) が成り立つので,分割統治法で計算できる. public static BigInteger Factorial(int n) { if ((n & 1) == 0) …

組合せの数

折角BigIntegerを用意したのでいろいろ検証.入山徳夫氏によるnCrを高速に求めるアルゴリズムはかなり速い. n!/((n-r)!r!)は必ず整数になるので,先に約分を行って分母を消してから残りを掛け合わせる. public static BigInteger Combination(int n, int r…

BigIntegerの平方根

BigInteger.csに平方根計算を追加した. 多倍長整数の平方根計算の速度はhttp://mitv2.net/algorithm/intsqrt2.htmlに詳しくある. ただ,ここにあるような初期値をtoString()使ったりpow()使ったりして10進で求める計算は必要なくて,2進で一桁大きい数を用…

関係演算子のオーバーロード

C#

正常に動作する次のようなEqualsメソッドを用意した状態で,何も考えずに「==」演算子をオーバーロードするとコケる. public override bool Equals(object obj) { ・・・ } // これだと arg1 が null のときに死ぬ public static bool operator ==(Class ar…

JavaコンパチなBigInteger

pythonとかrubyとかJavaだと最初から多倍長整数を扱うことができるけど,C#には残念ながらない. 一応J#経由で使うことはできるけど,nextProbablePrimeとかないしなあってことでJava互換な多倍長整数クラスを作ってみた. The Code ProjectのC# BigInteger …

シフト演算子の移行

JavaにあってC#にない演算子に「>>>」がある. ないのにはもちろん理由があって,そもそも必要ないからなんだけど.. どういうことかというと,Javaには符号なし変数が用意されていないので基本的にシフト演算子を使っても算術シフト(右シフト時に空いた部…

ナベアツ数考(4)

またしょーもないこと考えてみた.定義: k番目のナベアツ数N_inv(k)を第k項とする数列をナベアツ数列(nn)とする. 定理: ナベアツ数列 (nn) = 3,6,9,12,13,15,... には無限に素数が存在する. こんなもんいつ使うんだって話はとりあえず保留. ナベアツ数…

ナベアツ数考(3)

俺,ナベアツ数のこと,わかったつもりになっていた. でも本当は何もわかっちゃいなかったんだ. ナベアツ数考(2)の実験結果からも分かるとおり,N_inv(n)はy=xに漸近する関数である. これに対して二分探索でアプローチするのはあまりにも性急だった. 逆…

ナベアツ数考(2)

どうせなら逆ナベアツ数も考えてみたい. 要するにn個目のナベアツ数は何かという話. 定義: 自然数に現れる昇順でn番目のナベアツ数をN_inv(n)とする. N(N_inv(n)) = n. だけど, N_inv(N(n))は常にnになるとは限らないので,N-1(n)とは書きたくない. …