とちぎテストの会議04メモ

岩切さん会社をHackしていたら出版流通をHackすることなったでござるの巻 #toteka - Speaker Deck あんた本気?と自問する。本気でノックしていると、ドアが開くことがある。 外様だからこれまでの習慣に縛られない目でみてHackできた 自分達をdisするのやめ…

%

def foo(step, str) Fiber.new do loop do (step-1).times do Fiber.yield('') end Fiber.yield(str) end end end fizz = foo(3,'Fizz') buzz = foo(5,'Buzz') 100.times do |i| s = fizz.resume + buzz.resume puts s.empty? ? i+1 : s end 剰余つかわない…

再帰しない

配列いらない & メモに近いよね、とツッコミがあったので... def fib(n) return 0 if n == 0 p,t = 0,1 (n-1).times{p,t = t,t+p} t end なんだかな... ちょっとズルしてみた def fib(n) p,t = 1,0 n.times{p,t = t,t+p} t end

再帰

再帰を使わないでフィボナッチ数 hfib = Hash.new do |h,k| if k < 2 h[k] = k else h[k] = h[k-1]+h[k-2] end end 15.times{|n| p [n,hfib[n]]} は再帰するので def fib(n) s = [0, 1] while s.size <= n s.push(s[-1]+s[-2]) end s[n] end 15.times{|n| p …

euler

ところでeulerは昨年末に75問ができたところでとまってる。

ruby-gnome2

WindowsのRuby1.9でruby-gnome2が動くかためしてみた。Rubyはhttp://rubyforge.org/frs/download.php/74298/rubyinstaller-1.9.2-p180.exeをインストール。 Rubyのコマンドプロンプトから gem install gtk2 cairoのRDocでエラーが出たけどモジュールは入って…

euler

http://projecteuler.net/index.php?section=problems の1ページ目、50問くらいできた。 とRubyで知ったのでRubyを使っているのですが、1.9のPrimeが1.8より断然早くて素晴らしい。 ちなみにp50はこんな風に書いてみた。 require 'mathn' limit = 1000000 pl…

PrintWindow

PrintWindowはWindowsXPからつかえるそうな。だけど、見えてないウィンドウ(ShowWindow(SW_HIDE)してある)をPrintWindow()したらまっくろになってしまった。

PopCnt

仕事でintのビット数を数える処理が必要になった。 SSE4あたりではPOPCNTがあるらしいが、そんな新しいCPUとかコンパイラはつかってないのでどんなアルゴリズムがあるか調べてみた。 こんなのがあって int popcnt1(unsigned int val){ unsigned int bits = v…

Hashタプル

復習のつもりでついでに予習 7.6あたりの['name', 'rwiki' nil]は['name', 'rwiki', nil]ですね。階乗サーバーのHashタプル版のnotifyはこんなの require 'drb/drb' require 'multiplenotify' ts_uri = ARGV.shift || 'druby://localhost:12345' DRb.start_s…

バリア同期

復習。 barrier.rb class Barrier def initialize(ts, n, name=nil) @ts = ts @name = name || self @ts.write([key,n]) end def key @name end def sync tmp, val = @ts.take([key,nil]) @ts.write([key, val - 1]) @ts.read([key, 0]) end end TupleSpace…

9.10

Ubuntu 9.10がリリースされたので、早速アップグレードしてみた。 いつもどおり(?)hgfsによるホストとの共有フォルダが見えなくなった。 open-vm-toolsのコンパイル(http://d.hatena.ne.jp/you-ssk/20091027/1256649892)もできなくなった... 困ったよ、と思…

Ubuntu open-vm-tools

VMWare PlayerでUbuntu9.04を使っているのだけど、いつのまにかホストとの共有フォルダが見えなくなっている。 たしか8月にも、そんなことがあって以下を参考にモジュールをコンパイルしなおして解決した。http://omake.accense.com/wiki/VMwareUbuntu9.04今…

ブラックスワン

そいえば、本を見たら、実家の近く城跡のお堀で黒鳥がいたのを思い出した。何年ぶりに思い出したんだろ?白鳥にまじって黒いのがかっこよかったな、ブラック・スワン

64

64bitのWindowsXPでkernrateを使おうとおもったらはまった(CPUはXeon)。 KrViewのkernrateがだめ、2003のResourceKitToolsもだめ、、x64のがない。動くんだけどプロセスのプロファイルが取れない、これができなくては意味がない。で最終的にWDKにAMD64のkern…

AdvancedWindowsDebugging

asin:0321374460:image の翻訳がでるのですねasin:4048676083:detailむー、お値段がデバッグテクニック徹底解説なみだ。 asin:4891003529:image

Implementation Patterns

最初は図書館で借りたんだけど、手元に欲しくなったので結局買った。 買ったのは翻訳された実装パターンなんですが。複合メソッドってComposed Methodのままでよかったんじゃないかなあ、SBPPの翻訳でもComposed Methodのままだったし。

u

でeipより前のアセンブリを表示するのに u addr -20と使っていますが、自分は ub addrとするかなあ。 ちなみに関数を表示するのは uf func-symbolで

ダンプの極意

Windowsダンプの極意 エラーが発生したら、まずダンプ解析!作者: 上原祥市出版社/メーカー: アスキー・メディアワークス発売日: 2008/11/27メディア: 大型本購入: 13人 クリック: 100回この商品を含むブログ (40件) を見るカーネルモードの解析のしかたが書…

Advanced Windows

ななめ読み中。第3章 ハンドル値はプロセスを基準にした相対値になっています process-relativeが相対値ってなんか違和感あるなあ

Windows via C/C++

なにげに Advanced Windows 改訂第4版 の第6部ウィンドウシステムは Windows via C/C++ (softcover) (Pro-Developer) からは無くなっていのね。索引でVIQとかRITとか探してもないわけだ

DTW

DebuggingToolsforWindowsがバージョンアップされていたのね(6.9.3)。dtコマンドに機能追加されたみたいだけど、どんなもんか使ってみようっと。

VC9

VC2008ExpressEditionを使ってみてSTLのコンテナやstringの変数の表示ができるのかあ、 って感動していたらVC8からできてたんですね(http://d.hatena.ne.jp/NyaRuRu/20050406/p3)。激しく取り残されているなあ、仕事ではいまだにもっと古いバージョンのVCを…

ハンドルリーク

ハンドルリークしていたとき、どんなハンドルがリークしたのかお手軽に調べたいなと。windbg使っていれば !htrace -enable しておいて、アプリケーションを操作してハンドルが増えたところで、ブレークして !htrace -diff とするとハンドルとそのハンドルが…

kernrate

http://blogs.technet.com/markrussinovich/archive/2008/04/07/3031251.aspxにも少しだけ書かれているけど、自分もkernrateはアプリケーションの性能調査で使います。pid=1234を10秒測定するには kernrate -s 10 -p 1234 とか、ntdllのどのコードが多く実行…

例外

WindowsXPでベクタ例外を試してみようと思ってAddVectoredExceptionHandlerのハンドラを書いて登録した。適当なアクセス違反を起こすコードと、ハンドラが動いたことをみるためにハンドラにはOutputDebugStringを書いて試してみた。 で、ハマった。例外ハン…