Kurt Stephens

Nerd Up!

The only way to implement the future is to avoid having to predict it. -- Piumarta
Fighting entropy one day at a time...

The Unreasonable Effectiveness of Computing

Kurt on Sun, 2008-07-20 15:09.

In 1960, the physicist Eugene Wigner published an article titled The Unreasonable Effectiveness of Mathematics in the Natural Sciences , arguing that the way in which the mathematical structure of a physical theory often points the way to further advances in that theory and even to empirical predictions, is not a coincidence but must reflect some larger and deeper truth about both mathematics and physics.

Is computing the deeper “truth” about mathematics and physics and reality in general? Is the true nature of reality computational? — The universe as cellular automation operating on simple rules at very small discrete scales giving rise to emergent properties at larger scales.

Ruby DataMapper : dm-more Gem cannot be installed

Kurt on Sun, 2008-07-20 06:13.

dm-more depends on merb_datamapper (!?!) version 0.9.3 which does not appear to exist yet:

++ gem install dm-more
ERROR:  Error installing dm-more:
	dm-more requires merb_datamapper (= 0.9.3, runtime)

Not sure what to do about it.


LL source on github, LL Design Talk Slides

Kurt on Sat, 2008-07-19 16:22.

The source for LL is available at http://github.com/kstephens/ll/tree/master.

Also located there are the slides from my June 2008 talk at the Chicago Lisp Users Group on the design of the LL object-oriented Scheme interpreter:

http://github.com/kstephens/ll/tree/master%2Fsrc%2Fll%2Fdoc%2Fll_system_...


Paul Graham: Beating the Averages (with Lisp)

Kurt on Mon, 2008-06-09 12:23.

This has been around for a while but I think its important enough for me to make another link to it:

http://www.paulgraham.com/avg.html


Parameterized Word Tagging in Latently-Typed Languages

Kurt on Mon, 2008-06-09 04:28.

Abstract

I have been interested in optimal low-bit tag schemes on machine words in latently-typed languages. There are different schools of thought on how to handle the trade-offs between Fixnums (integers smaller than word size) and allocated objects.

Ian Piumarta’s libid object library is a very simple prototype-based object system with unresolved method delegation. It is used in the Pepsi/Coke COLA system (available at http://vpri.org/fonc_wiki/index.php/Sources) as the basis for all object representations and meta-behaviors. libid assumes that a reference to an object’s method table, or “vtable” resides at the word before the object’s address.

Scheme Implementation: tak Benchmarks: Ikarus wins!

Kurt on Mon, 2008-05-26 05:29.

Performance of running the following Scheme code:

(define (tak x y z)
  (if (not (< y x))
      z
      (tak (tak (- x 1) y z)
           (tak (- y 1) z x)
           (tak (- z 1) x y))))

Results:

(tak 18 12 6) (tak 30 15 9) 
(tak 33 15 9) (tak 40 15 9)

ikarus			 0.25 sec
chicken		 1.41 sec (precompiled)
oaklisp		 2.63 sec
mzscheme	    	 2.65 sec
scheme-r5rs	 	 5.89 sec
guile			 7.91 sec
larceny     		10.35 sec
LL  			12.93 sec

Ikarus is burning up; LL needs some heat. :)


Postgres and Ruby: Blocking LISTENs for NOTIFY

Kurt on Fri, 2008-05-23 15:56.

http://devblog.famundo.com/articles/2006/12/07/improving-postgres-listen...

Unfortunately this hack blocks all threads. It should use rb_thread_select(), not select().