There’s more interesting things lately than usual. Here’s another set of stuff to discover. I’ve put the more easily digestible stuff up top. This time, it’s a lot geekier. The lower you go, the nerdier it gets.
Humanized Endo–CLI + GUI
The Humanized interface combines GUI and CLI, which really reminds me of emac’s interface…but tons prettier. You can eval text as commands on the page in emacs, as well as executing commands. They basically want to do away with the desktop metaphor. The second link is a presentation. The guy presenting, Asa Raskin, is Jef Raskin’s son…Jef is the guy that started the Macintosh before Steve Jobs took over.
More demo eye candy from Jeff Han.
How google earth works.
It explains some of the MIP-mapping techniques that GE uses, to get good filtering characteristics on its texture maps, so that things look crisp and clear, even at sharp angles.
Distributed version control.
The second link is a talk given by Linus talking up distributed version control and his own version of it called Git. He also spends time ragging on SVN and how much it sucks. Ian’s the only other person I know that’s been using distributed version control with darcs. I’ve tried it, and it’s not too bad. It took some time to understand some of the implications of DVC.
Haskell Faster than C on Great Language shootout benchmark.
I didn’t read into detail, but what I gleamed is that lazy evaluation has its advantages. Read into it what you will. Overall, if haskell has to do work, it is slower than C. But if it can ‘cheat’, it will be faster in some cases.
More on functional style programming.
I’ve been using more functional style programming lately. I like being able to chain things together, though sometimes, it doesn’t make it necessarily easier to read. That’s still dependent on the coder. Functional style programming has its advantages, but it’s not made obvious here.
Lock-free hash tables.
This is kinda neat, actually. It’s a talk on a concurrent hash table algorithm, where it doesn’t use any locks (but it does use fencing during table resizes), and scales to 4000 processors. What I found neat is that the table resizing can be stacked, so that if you have 700 threads writing to a hash table all at once, it’ll exponentially resize as it’s reading and writing, where the reading and writing threads do some of the work copying table entries from the old table to the new table during the resize. More than one resize can be happening at the same time too.