Ruby Read

According to Tim O’Reilly’s always interesting quarterly analysis of the book industry, Ruby is doing extraordinarily well, with a 689% quarterly increase in sales and is now approaching Perl in terms of book sales.

Caveats include the (some would say profound) difference between book sales and use. Most Perl programmers already have accumulated books on the topic. Similarly, C# showed a spike in book sales, but that is almost certainly largely a reflection on the release of VS2005 and not an indicator of a sudden shift towards that language.

Having said that, an important component of programming language popularity is “buzz” and the perception created by a sudden increase in books/seminars/articles. With sites like Digg creating “flash-interest,” and increasing the volatility of the marketplace for attention, “buzz” may play an even bigger role in whatever The Next Big Language is than it did in the success of C++ and Java (two languages whose success was undoubtedly boosted by the amount of associated teaching / discussion).

On Being Dugg

On June 19, I posted 3 articles, “15 Exercises to Known a Programming Language,” which came to the attention of Digg and was, for a few days, on the front page (and even the top item) in the Programming theme.

I’ve finally gotten around to reviewing my logs. While the article got about 8 times as many hits as my next-most-popular article ever (about ~40,000 hits), the click-through to the second and third articles dropped dramatically (5297 and 3919). I’m not disappointed by these click-through rates: each article was several hundred words long.

It’s difficult to determine how many people subscribe to your RSS feed, since there is not a 1:1 relationship between hits to your XML file and “eyeballs.” My blogging software (dasBlog), like many, puts a Web bug in each post, though, so I use the average number of aggregator-based reads as an indicator of whether my blog is gaining or losing ground. By that standard, it doesn’t appear as if being Dugg made a long-term difference. From my baseline rate, I saw a 17% spike in June (the month the article appeared) and a return to the baseline (actually 94%) in July. (Hmm? I should switch that to median rather than average?)

In terms of immediate economic boon, I have a minimal AdSense presence on my Website. AdSense TOS forbids discussion of your actual income, but in the spectrum of latte-book-graphics card-rent, 40K hits from Dugg was in the high-latte / low-book range.


The article was pretty on-topic for this blog, so I was hoping to pick up some long-term readership. While I may have done that, it’s not apparent in the data. I have been having a long-term growth in my aggregator reads, and while there was a spike, July actually fell back a little (on the other hand, my posts in July have been pretty lame, because of my hardware problems).

The 40K direct hits are nothing to sneeze at. I imagine that if I had been pitching something (a book, a tutorial, etc.) and had embedded an ad in the article, that might have led to some income. However, I think in-post contextual ads are beyond the pale, so for me it highlights the fact that ad revenues for a programming related blog are trivial. (Having said that, I am convinced that blogging is easily the most cost-effective form of marketing there is for a consultant. Absolutely worthwhile.)

Hardware Woes Continue

I finally got a dual-processor motherboard that boots (a Tyan S2885) only to discover that I only have 2GB of “registered” DDRAM, making my other 4GB of RAM worthless on this computer. Well, easy enough to deal with later, I think, happily screwing the motherboard down into my case. Now, slide the drive cages into… Now, slide the drive cages into… Wait a second…

While my Antec case technically “fits” an EATX motherboard, the drive cages are perfectly aligned in the airspace above the primary CPU slot. I tried all 3 cooler formfactors I’ve acquired in the past 3 months: none fit. So now I need to buy another case ($170 + $50 shipping).

Oh, and I forgot that while the motherboard booted, it didn’t with 2 CPUs, so I spent an hour debugging RAM configurations before I noticed that the 8-pin CPU power plug only had wires going to 4-pins. So that was another order ($5 for the cable + $20 shipping).

I love Hawaii, but boy do I miss Fry’s.

Variable Length Arrays (Not) In Visual C++

The C99 language standard added support for variable length arrays (VLAs):

 void foo(int len){  float myArray[len];  ... } 

In porting some C# code to C++, I had a method signature like that, so I tried to use a VLA. Sadly, VC++ 2005 produces “error C2057: expected constant expression,” “error C2466: cannot allocate an array of constant size 0,” and “error C2133: ‘myArray’ : unknown size”. I’ve confirmed that this is a compliance thing: the code works with

gcc -std=iso9899:1999

. Pity.>

Sloppy: Calibri @ 100%

Sloppy: Calibri @ 100%

Friday, July 21, 2006

7:36 AM

Microsoft’s new font, Calibri, is good-looking, but not at the default size and resolution it’s provided in Office 2007. Look at the c-e boundary:

Heck, it looks better at 98%:

But it looks its best at higher-resolutions (124%):

I don’t know if this is the fault of the font, the display subsystem, or the application, but it’s sloppy.


Created with Microsoft Office OneNote 2007 (Beta)
One place for all your information

Makers of NaturallySpeaking Raising Expectations for Voice Recognition

NaturallySpeaking 9, coming out in August, claims to dramatically reduce the time it takes to model your voice, achieving the best-possible recognition soon after opening the box.

For some people, that best-possible recognition is said to be 99%. Maybe. I’ve probably gone throught the “voice training” process a dozen or more times over the years. Not only have I never achieved 99%, I’ve never achieved anything usable.

There are several factors: one is that “tethered to your computer, wearing a noise-cancelling headset, and watching the dictation in realtime,” is not appealing to me. The second is that when you make a typo you are off by a coupe letters and then you get back on track. When a voice-reco system fails, the error mode is a parlor-game chain of semi-homonyms “wrecks a beach” == “recognize speech”.

I’m ever optimistic, though. As a writer, I’d love to be able to do significant amounts of work using a digital recorder (PDA, smartphone, what-have-you) on the beach. I’ve even thought of trying out those lost-cost (human) transcription services. Maybe I’ll give that a shot this National Novel Writing Month.

Posted in AI

I HATE Hardware

The last thing I saw last night was something about “Do not turn off or remove the power cord from your computer” for some no-doubt-critical update. This morning, my desktop doesn’t POST. It hangs right at the point the RAM count happens.

Now, I don’t think an OS upgrade can effect POST, so perhaps it’s a bad RAM chip. But I pulled all but one chip this morning and it still didn’t boot. Then I replaced that chip and it still failed. So the odds against it being the RAM seem high.

Meanwhile, on my new system that I’m building to replace the motherboard whose hard-drive controller blew 6 weeks ago, the replacement motherboard doesn’t POST at all: no BIOS announcement, no nothing.

Power’s coming through a UPS, which should condition it adequately.

At the moment, I have no desktop. I _so_ don’t need this.

Oh, and you have to be nuts to buy new chips and motherboards before next Thursday, when Intel launches their new chips and AMD will undoubtedly respond with huge price cuts.