Ryan Twomey

RT @TUAW AT&T offers app so you can report crappy service. Huh? http://bit.ly/5qZ3hX [post]

What’s up with $AAPL? Down some 12+ points in the last week.

Just found a neat trick in photoshop: command click a layer’s icon in the Layers screen to create a selection of it. Great for masks.

RT @engadget FusionGarage plans media event to tell its side of the CrunchPad story http://bit.ly/5C9qTw

RT @joefiorini here’s how http://to./ was done http://news.ycombinator.com/item?id=974148. pretty neat. (via @ryanbriones)

RT @qrush How the… http://to./

Ugh

Too bad the formatting for that previous entry got all screwed up.  Check out the link to really get a good idea for what’s going on.  The explanation behind that graph is fascinating.

J is for JVM: Why the ‘J’ in JRuby?

From a post at the Engine Yard blog:

For starters, I’ll say that although Hotspot is a mystery, it does a generally great job at performance. The truth is that dynamic profiling is the path to excellent performance. HotSpot is much more clever than we are. It has the benefit of profile data from the running application to inform itself.

It also has the ability to de-optimize code. As strange as it sounds, this detail ends up being the catalyst to great performance.  When Hotspot does an optimization it puts a cheap guard in front of the optimization to make sure the rationale for the optimization still holds true. If the guard ever fails then it de-optimizes back to a slow path. The reason why this rocks, is that Hotspot can then be super speculative with aggressive optimizations. If the informed bet pays off, it pays off huge. If it doesn’t pay off, it gets reset with additional knowledge for a future potential optimization and some extra cost for trying out the not-quite-right optimization.

Here’s a demonstration of Hotspot in action:



In this graph we’re running a mandelbrot generator many times and plotting the amount of time it takes to generate it each time. If you look at JRuby 1.4.0 on the right side JRuby isclearly smoking Ruby 1.8.7 and doing very well against 1.9.2preview2. If you look at the progression as JRuby starts, you can see that we start slower than 1.8.7 but rapidly pick up steam as Hotspot kicks in.

Very interesting to see the performance of using JRuby (i.e. the Java Virtual Machine with HotSpot) versus a straight Ruby run.

OH: blocking an IP range to stop spam is equiv to “We’ve gotten spam from the state of CA so we’ll block email from there”. @cwalcott

How to hire programmers

Great post on how to hire programmers, distilled into three distinct questions:

There are three questions you have when you’re hiring a programmer (or anyone, for that matter): Are they smart? Can they get stuff done? Can you work with them?

At Draconis, we pretty much follow exactly this formula.  In the past, I’ve thought about asking brain-teaser-type questions, but always came back around to myself: if I were asked that question, would I think it’s a fair reflection of my abilities (regardless of whether I got it “right” or not)?  The answer was invariably no.

I’ve often thought that HR people hiring programmers are tempted to force programmers into the same hiring mold of other jobs, like manufacturing: if they can do X task, then they can do Y job.  Yet programming requires so much more thinking: ultimately, you’re solving problems rather than going through the mechanics of a job.  The difference is vast.

In the past, I’ve scoffed at the (in)famous hiring questions of Microsoft and other large companies being used in startups.  In a large operation, programmers can often be pigeonholed into single tasks where repeatable mechanics can be tested and measured (and where those brain-teaser questions might work).  In startups and consulting companies, a programmer needs to be smart and versatile.  There’s a world of difference, and I think this article sums up what works nicely to hire smart and versatile programmers.

Managed to get some of my shopping done today, all online.

Made it to Baltimore. Very long drive, but got enough sleep so feeling okay so far. The dog is loving the waterfront.

Finished reading The Time Machine by HG Wells the other day (had been a while). Such a great book. http://bit.ly/7CnxbU

Great perspective on the App Store approval debate: Apple is not evil. iPhone developers are stupid. http://bit.ly/8UKVo8

IBM’s VP of Deep Computing, David Turek, confirmed that the Cell processor has reached the end of the line. Turek then put a more positive spin on the news by stating the obvious truth that heterogeneous multiprocessors, of which Cell was the first mass-market example of, are here to stay, so insofar as IBM continues to produce such chips, Cell’s basic concepts and ideas will live on in the company’s product line.