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.
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).
Graphics Mac Mac App Sunset
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.
EagleFiler
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.
CDFinder has a new one-window catalog browsing interface and better Unicode and image support.
Frank Sommers at Artima interviews Alan Bateman about the new I/O APIs proposed in JSR 203.
Jesper:
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.
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.
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.
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.”
Path Finder
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.
Eric Kidd describes one way to score a bowling game using Haskell, with unit tests to show that it works.