1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#require 'brhute'
#require 'derb'
# XXX how to make this a nice iterator ? change context of a Fiber is hard
class Pp_iter
include Enumerable
def initialize(image, sx=0, sy=0, mx=100, my=100)
@domain = "www.pointerpointer.com"
@baseurl = "images/"
@image, @sx, @sy, @mx, @my = image, sx, sy, mx, my
@x, @y = sx, sy
end
def next
url = "%s/%s/N%0.4d_%d_%d.jpg" % \
[@domain, @baseurl, @image, @x, @y]
@y += 1
if @y > @my
@y = 0
@x += 1
if @x > @mx
raise(StopIteration.new("iteration reached an end"))
end
end
return url
end
def subset
# XXX we are redoing 1 time the same url
x, y = @x, @y
@x = mx = x + [@mx - x, 10].min
@y = my = y + [@my - y, 10].min
puts "XXX subset %d %d %d %d" % [x, y, mx, my]
Pp_iter.new(@image, x, y, mx, my)
end
end
def test_iter
Pp_iter.new(73, 0, 0).next do |url|
puts url
end
end
def test_iter_subset
i = Pp_iter.new(73, 0, 0)
puts i.next
puts i.next
puts "SUB"
s = i.subset
puts s.next
puts s.next
puts "MAIN"
puts i.next
puts i.next
end
#urls = Pp_iter(73, 0, 0)
#brhute::Brhute_ip(urls)
# Distributed Execution for Ruby:
# de = derb.run_on_hosts(['_g', '_sd'])
# de.execute(Pphidden, urls.subset)
|