Today's fortuneIn Brooklyn, we had such great pennant races, it made the World Series
just something that came later. -- Walter O'Malley, Dodgers owner User loginNavigation |
Pleasant surpriseRecently, while reviewing my mailing lists subscriptions on http://lists.debian.org/, I noticed that the incoming mails were received by IPv6, much to my surprise. This confirms that my whole mail system (Postfix + Courier IMAP) is fully IPv6 capable. A pleasant surprise indeed !
Mandelbrot in scheme, now in Block Structure™
#!/usr/bin/env guile
!#
(define (mandelbrot left right bottom top)
(define cols 78)
(define rows 39)
(define iter 36)
(define (density n)
(cond ((= n iter) #\ )
((and (>= n 0) (<= n 9)) (integer->char (+ n 48)))
((and (>= n 10) (<= n 36)) (integer->char (+ n 35 -10)))
(else #\.)))
(define (mandelbrot left right bottom top)
(do ((i 0 (1+ i))) ((>= i rows))
(do ((j 0 (1+ j))) ((>= j cols))
(let ((x (+ (* (/ j cols) (- right left)) left))
(y (+ (* (/ i rows) (- top bottom)) bottom)))
(write-char (density (let lp ((c (make-rectangular x y))
(z 0+0i)
(k 0))
(cond ((or (= k iter) (>= (magnitude z) 2)) k)
(else (lp c (+ (* z z) c) (1+ k )) )) ))) ))
(newline)))
(mandelbrot left right bottom top))
(mandelbrot -2 2 -2 2)
Distributed caching with memcachedA fellow cow-orker mentioned memcached at work today. The API seems rather simple and easy to use and BDB-like for data access. Slashdot, Wikipedia and Facebook are already using this tool to speed up web site access. With such a nice little software package, all I need is a reason to code, hehe.
Finally got mein Das KeyboardAfter five days of UPS futzing around with the delivery (you know, border fees, showing up on lunch hour, not having any change for the fees, etc...) I have finally received my Das Keyboard. I am typing this post on the new keyboard and it has a very satisfying feel, with a sweet clicky sound. Typing is now effortless and the computer feels like a brand new appendage. I will bring it to work tomorrow and torture-test it by writing PERL code (yes, that is torture according to the Geneva convention). Good buy, a little on the expensive side, but worth it. As a side note, usbos01, the SixXS PoP I use was down for over 5 days. It has come back up today, I hope it is more stable in the future.
Fun with IPv6 cont.Yesterday, I configured a whole IPv6 network, complete with a multi-subnet tunneled architecture. As far as I can tell, the new network works reliably with little latency penalities. I was surprised at how easy the setup was, considering my limited IPv6 routing knowledge. If you are hesitating to upgrade to IPv6, here is a good reason: soon there will be a bunch of high-quality porn available only on IPv6. You may want to substitute another reason when you talk to your boss about it though. IPv6-ly yours, Jonathan
Having fun with IPv6A few days ago, I got my SixXS account reactivated(an email bounced back in 2006, never bothered to get my account re-enabled). I now have a tunnel and a full /48 subnet set up. This gives me exactly 1,208,925,819,614,629,174,706,176 addresses to play around with. I hope it is enough :P. For comparision, an "ideal" IPv4 network would have 4,294,967,296 addressable hosts. x2a.org is thus IPv6 enabled. Comments welcome as to IPv6 reachability and performance. Cheers, Jonathan.
A simple Mandelbrot program in Scheme
(define cols 78)
(define rows 39)
(define iter 36)
(define (density n)
(cond ((= n iter) #\ )
((and (>= n 0) (<= n 9)) (integer->char (+ n 48)))
((and (>= n 10) (<= n 36)) (integer->char (+ n 35 -10)))
(else #\.)))
(define (mandelbrot left right bottom top)
(do ((i 0 (1+ i))) ((>= i rows))
(do ((j 0 (1+ j))) ((>= j cols))
(let ((x (+ (* (/ j cols) (- right left)) left))
(y (+ (* (/ i rows) (- top bottom)) bottom)))
(write-char (density (let lp ((c (make-rectangular x y))
(z 0+0i)
(k 0))
(cond ((or (= k iter) (>= (magnitude z) 2)) k)
(else (lp c (+ (* z z) c) (1+ k )) )) ))) ))
(newline)))
(mandelbrot -2 2 -2 2)
|
Friends
Mainstream media |