Archive for May 2007

Wednesday, May 30, 2007

A Lock-Free Hash Table

Here’s a Google Tech Talk of Cliff Click discussing a Java hash table implementation that supports concurrent access using compare-and-swap rather than locking:

I present a lock-free concurrent Hash Table implementation with better single-thread performance than most Hash Tables, and better multi-thread performance than all other implementations I tried. I demonstrate scaling up to 768 CPUs even with high mutation rates. I show correctness by looking at the problem in a very different light than the usual “happens-before” / memory-order / fencing style of thinking.

RIP Canvas

Adrian Smith (on TidBITS Talk):

Canvas started on the Mac and in many ways is unique in it combination of vector and bitmap tools (although less so now than in its early days). Interesting, I think they beat most of the other players to market with an OS X native version (I’m sure version 8 came out before 10.1 was released).

EagleFiler 1.2

EagleFiler 1.2 adds performance improvements, the ability to drag and drop between libraries (preserving all the metadata), encrypted libraries, search term highlighting, “To Import” folders in the Finder, more flexible query syntax, tags searchable via Spotlight, and more.

Tuesday, May 29, 2007

Google Maps Usability

Daniel Jalkut:

Google has tons of real-estate to work with here, but to find out what’s actually at the cluster point, I have to go back to the ugly list and click items to see where they pop up in the map. With all that space to work with, surely Google could come up with something better.

Tuesday, May 22, 2007

CDFinder 5.0

CDFinder has a new one-window catalog browsing interface and better Unicode and image support.

Monday, May 21, 2007

More New I/O APIs for Java

Frank Sommers at Artima interviews Alan Bateman about the new I/O APIs proposed in JSR 203.

Friday, May 18, 2007

Apple’s 6-bit Displays


Apple’s using displays that are literally dithering some colors for you.

From early day one—literally seconds after the setup assistant had turned over control to the regular Mac OS X, I noticed that the gradient in the menu bar was…notchy. One color did not turn into the other like on any other display. There was banding. Gradients of all sorts looked weird, and I was able to bring up colors in the color panel—light grey colors are perfect for showing it off—that in fact looked like a chess field with two alternating colors.

I noticed the graininess of my MacBook Pro’s screen the first time I turned it on. I thought it might be defective but confirmed that other MacBooks and MBPs also looked that way, so I figured that was just the way newer notebook displays were. Even with the graininess, I much prefer it to the PowerBook’s display, due to the increased brightness. But I agree that Apple shouldn’t get away with this.

It’s normal for batteries to expire if you suck at maintaining them—on the other hand, Apple were advertising that the screens can display millions of colors, and they can’t.

Thursday, May 17, 2007


Terrence Talbot:

When the next major update to Sandvox ships, KTComponents will be no more. All the code is going into the application. And plugins will work just fine. In fact, getting new plugins to build and link will be easier than I ever thought possible.

Instead of linking to the KTComponents framework, the plug-ins will use bundle_loader to link directly to the app.

RIP FreeHand

Andy Finnell:

The somewhat odd thing was that the team knew FreeHand MX was going to be their last release. I remember a certain FreeHand engineer’s response to the question “why are you trying to cram so many features into this release?” as being “Because they’re not going to let us do another.” And to their credit, FreeHand MX was a return to their roots: vector based graphics program for print. At least from this observer’s perspective, it felt like FreeHand MX was the best FreeHand version in a while.

Tuesday, May 1, 2007

ATPM 13.05

The May issue of ATPM is out:

Aliases, Symbolic Links, and Path Finder Aliases

Alexandra Grot:

Path Finder aliases are like regular aliases but that only Path Finder understands. They will always open the original in Path Finder regardless of the program you use to open them. They are actually just special files (with a hidden extension .path) that PF knows how to open, their kind is “Path Finder document.”

Flush vs. Straight

Bram Cohen:

As every poker player knows, the chances of a random set of five cards being a flush is less than the chances of it being a straight. So, if you deal out one card face-up at a time until either five of the dealt cards form a straight or five of the dealt cards form a flush, which is more likely to happen first, a flush or a straight? The obvious answer is a straight, because that’s the more likely hand, but that might not be correct.

This kind of question is difficult to answer analytically, but it’s easy to find the answer using a Monte Carlo simulation.

Bowling in Haskell

Eric Kidd describes one way to score a bowling game using Haskell, with unit tests to show that it works.