Sunday, December 31, 2006 |
|
|
According to InformationWeek, Umakant Sharma, seeded 2nd in a tournament in New Delhi, was caught with a Bluetooth headset stitched into a cap that he wore "pulled down over his ears" during competition. According to the All India Chess Federation, accomplices fed him moves from a chess program. He's been banned by FIDE for 10 years. This reminds me of something I've discussed before -- during Gary Kasparov's famous 1997 battle with Deep Blue, he demanded that the program's code be escrowed because Kasparov was of the belief that no computer could generate such play and that a human or humans must be feeding the machine moves. That response -- an expert in his domain asserting that computer behavior "must be from a human" -- always struck me as more important than the ability of the computer to ultimately grind down the world's best chess player. The response was the first, and to date, closest thing to a triumph in the Turing test. I have to admit it also reminds me of my own scandalous behavior in 3rd grade, when as a Cub Scout I made a pinewood derby car into which I could slip a fishing weight after the official weighing. I was caught because my car didn't just win the race, it ran down the ramp about twice as fast as anything else (objects of different mass might fall in a vacuum at equal speed; objects with wire axles running through a wood block, not so much). Needless to say, that was the end of my time in scouting. (Although, to be fair, they actually wanted to have some kind of disciplinary thing and then let me continue. Somehow I never made it over to the Brennan's house for that meeting.) |
|
|
|
|
Friday, December 29, 2006 |
|
|
Well, more or less... There's really no way to program XNA, even in 2D modes, without learning HLSL. |
|
|
|
|
|
Damien Guard has released a preview of Envy Code R , a good-looking programming font. At the moment, I think it looks best at higher font-sizes: I would definitely consider this for use in presentations.  Incidentally, the image is from some utility programs I've been writing for iTunes. I got an iPod for Christmas, something I asked for in part because I was under the impression that the iTunes software, being as dominant in the world of music management as Office is in the world of spreadsheets, must be reasonably competent. iTunes sucks. It must have crashed twenty times in the past five days. And not just crashed, but hung processes, minutes-long freezes, cryptic memory-error messages: an entire litany of bad program behavior. The only thing I like about it is that it unlocked my DRM-ed music and figuring out how to "Convert to MP3" was the work of a few seconds. After a year or so of relying on Pandora and KEXP, the "Party Shuffle" in iTunes seems just absurd. The only other thing I like about iTunes is that it has a COM interface, which implies that I can unlock a couple facilities. First up, I'm going to see if I can write a program that cleans up "genre" tags so that they provide a more relevant personal view. For instance, I have a lot of what most people would simply call "punk rock," but for me, I need to divvy that up maybe 5-6 sub-genres. On the other hand, even though there are many genres of hip-hop, I'd only need maybe 2 or 3. I've got an algorithm in mind... |
Friday, December 29, 2006 9:32:45 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Knowing
|
|
|
|
Thursday, December 21, 2006 |
|
|
Absolute times to calculate a fixed range of the Mandelbrot set:
| Machine | Concurrency | Language | Time |
| Dual-Opteron | Singlethreaded | C# | ~0.81
| Dual-Opteron
| Multithreaded
| C#
| ~0.45
| Dual-Opteron
| Singlethreaded
| C++
| ~0.50
| Dual-Opteron
| Multithreaded
| C++
| ~0.38
| XBox 360
| Singlethreaded
| C#
| ~4.4
| XBox 360
| Multithreaded
| C#
| ~2.1
| XBox 360
| GPU Shader
| HLSL
| ~0.05
|
This isn't even fair because the non-GPU timings are strictly timings of the calculation loop. The GPU timing is actually derived from my frame-rate.
I'm having some trouble getting my shader to run on my desktop (ATI All-In-Wonder with Radeon X800), but will post that number when I can.
 |
|
|
|
|
|
Ah, that's more like it. This is a graph of duration (in seconds) versus the number of threads during a calculation of a Mandelbrot set using the XNA Framework on the XBox 360 (Neil: The previous graph was normalized speed, as you suspected. For more on labeling the Axis in Office 12, see the next post.) In order to have the XNA Framework distribute processing, you must explicitly set the "thread affinity." This must be done within the worker thread (presumably early in the ThreadStart delegate) and, on the XBox 360, you must not use the values 0 or 2, which are reserved. Thus, I use code like this: struct ThreadWorker { int processorAffinity; static int processorAffinityIterator = 0; internal ThreadWorker() { switch (processorAffinityIterator) { case 0 : processorAffinity = 1; break; case 1 : processorAffinity = 3; break; case 2 : processorAffinity = 4; break; case 3 : processorAffinity = 5; break; default : processorAffinity = 1; break; } if (++processorAffinityIterator == 4) { processorAffinityIterator = 0; } } internal void ThreadRun() { Thread.CurrentThread.SetProcessorAffinity(processorAffinity); ... begin work ... |
|
|
|
|
|
Properly chastised by Neil Bartlett for not labeling my Y Axis on a graph, I added such a title to my next attempt. I then cut-and-pasted that image, which resulted in this being pasted into my blog editor:  And yet, I had already typed the Axis Title, as this screen capture of my Excel chart shows: Now if only I could also figure out how to add a title for the X axis! Thank God for the Ribbonbar! |
Thursday, December 21, 2006 8:40:59 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Office12
|
|
|
|
Wednesday, December 20, 2006 |
|
|
UPDATE: See this new post It looks like XNA does not distribute processing across the multiple cores of the 360: This is identical code (a Mandelbrot calculation of a fixed size) running with multiple threads. While my desktop machine speeds up with more threads (peaking at 3), the XBox 360 running XNA runs at almost exactly the same speed. Incidentally, the graphic shows normalized speeds. The actual performance of the XBox 360 is 1/5 - 1/9 that of my desktop (4.43 seconds as opposed to ~.8 seconds single-threaded or ~.47 with 3 threads). |
|
|
|
|
|
Sweet. Stay tuned for performance benchmarks, concurrency and GPGPU programming experiments on the 360, and maybe even some games...Maybe even a domain-specific language for writing board games. |
|
|
|
|
Friday, December 15, 2006 |
|
|
As far as I can tell, the only mistake he made is charging way too little ($19.99) and admitting his age. Other than that, ANTLR Studio for Eclipse looks professional as all get-out. |
|
|
|
|
Wednesday, December 13, 2006 |
|
|
Microsoft has released-to-manufacture Microsoft Robotics Studio (via Dan Fernandez). We got a Roomba as an early Christmas present and I gotta' tell you, it's won over my extremely-skeptical wife. My least favorite chore is sweeping our long, steep driveway and I'm very tempted to get another and mod it for the task (put a plow on the front for the leaves and stones, desensitize or shut off the bump sensor, maybe turn off the brushes altogether. I looked at the Roomba API and it seems straightforward.). Man. If I had a robotic driveway cleaner and an autonomous frog-killing blimp? That would be totally sweet. Totally. |
Wednesday, December 13, 2006 1:31:35 PM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Knowing
|
|
|
|
|
John Montgomery points to this interesting article on the physical effects of Coca Cola. (Short version: you get a sugar spike, one more potent than you could stand if the taste of sugar wasn't cut by the use of phosphoric acid.) I gave up my daily Coke early this year and, doing very little else, dropped from The Most I've Ever Weighed to Less Than I've Weighed In Fifteen Years. ~240 calories a day ~= 7200 calories per month ~= 2 pounds worth of calories. Once I learned to diagnose the "coming off the morning coffee, ingest coke" urge and manage it with a not-vastly-sugary snack, I haven't really missed it on a daily basis. I still keep a six-pack around and I admit that I drink a can before Ultimate games! |
Wednesday, December 13, 2006 12:56:12 PM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Offtopic
|
|
|
|
|
Here's a scholarly, but clearly written, article on a generalized algorithm for implementing dataflow using shared memory. Dataflow is a very intuitive calculation model (think "spreadsheet"). When I saw this paper I thought "Wasn't it known that dataflow could be automatically parallelized?" but maybe not. One way or the other, it is now. The authors even show how their algorithm can be tweaked to improve cache coherency. Nice. |
|
|
|
|
|
Sadly, it sounds all artsy-fartsy with the blimps moving towards sound or somesuch. Sigh. If your autonomous blimps can detect and move towards sound, at least let paint the target with a laser sighting device to instill an appropriate feeling of dread. Plus, the party's being held in a wind tunnel, so that doesn't make these things sound like they could do much to prevent escape from The Village. If I had an autonomous blimp (how many times have I typed that phrase over the years?), I would outfit it with targeting lasers and set it to work discovering the calling places of the invasive coqui frog, a dime-sized creature that produces a 110 dB (!) whistle. |
Wednesday, December 13, 2006 11:51:42 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Offtopic
|
|
|
|
Tuesday, December 12, 2006 |
|
|
Microsoft just announced that the next PDC will be held October 2 - 5 in Los Angeles. Forecast calls for lingering late-season wildfires and a chance of LINQ...
|
Tuesday, December 12, 2006 12:45:08 PM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Knowing
|
|
|
|
|
I spent about an hour last night playing with the release of XNA Game Studio. My first impression is that someone at Microsoft needs to contract me to write some tutorials! Heh heh heh. Actually, I'm greatly looking forward to incorporating XNA into a series of articles I'm pitching on GPGPU programming. Basically, I've written the same program in Ruby, C#, C++, C++ with OpenMP, C++ with assembly language, HLSL, and I'd like to add implementations in Accelerator, PeakStream, and any other GPU-based languages / libraries I can find. It'll be fascinating to see how the XBox 360 stacks up in "one design" racing. (BTW, as much as I love Ruby, it is slaughtered in this type of comparison.) Say... I wonder if I could develop a tutorial that ran on the XBox 360 that combined audio-video / screencasts / etc. teaching how to program in XNA Studio. I mean, I know I could produce the tutorial, I just wonder if the "XNA Creator's Club" would allow me to distribute it (i.e., sell it) via XBox Live. Hmmm.... |
|
|
|
|
|
Alan Zeichick brands ECMA a "vendor-driven standards body" and decries "the competitive aspects of turning one company's impossible-to-implement spec into an industry standard." I'm a little more sanguine about ECMA, but only because I'm skeptical that standards (or open source) have nearly the importance they're generally accorded. (I'm well aware that this is sacrilege.) |
Tuesday, December 12, 2006 11:58:17 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Knowing
|
|
|
|
Monday, December 11, 2006 |
|
|
Where's the LHS on 6-x;? And does that say "parent friendly" under the "x++"? |
Monday, December 11, 2006 9:40:54 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Knowing
|
|
|
|
|
I imagine that every single person who reads this blog other than my sister (Hi Donna!) knows who Jon Udell is and knows that he is joining Microsoft. In the small world of "people who make their living by writing about software development," Jon is clearly the leading light on the technologies collectively known as "Web 2.0." Jon has the rare ability to move between high-level conversations with technology business leaders, advocating new ways of sharing information, and demonstrating technical points with his own code. He makes surprising connections between technologies and between technologies and homely matters (LibraryLookup and his walking tour). Typically, he's constructed these demonstrations with very accessible tools -- XML, JavaScript, etc. There are two things that I worry about Jon's new position: - To what extent will the inherent imperative to advocate MS technologies stifle him?, and
- Will he be reduced to just a conduit of information (Microsoft's new A-list blogger) or will he continue to contribute new creations?
Oh, and I'll throw in: - Will direct knowledge of unannounced initiatives keep him quiet on the very subjects on which he's passionate?
Unfortunately, that last is almost a given. Whether the subject is the way that young people learn programming, design and implementation of dynamic languages, or concurrency, there have been thought leaders at Microsoft who've essentially "gone dark." Presumably, that's so that they can actually make something rather than talking about it, and I suppose there's some value in that. But there's also value in people who are in the public realm batting around ideas without behing beholden to commercial interest, especially when those people have the rare ability to crank out demoes. One of the most encouraging things to come out of Microsoft in years was Ozzie's "Live clipboard" -- if the boss (or the boss plus a House-like crew of apprentices) produces small conceptual demoes, then one can guess that small conceptual demoes just might be a route to corporate success. Finally, I have to say that it worries me a bit that Jon is leaving New Hampshire. One of the things that I've admired about him is that he showed that a person could have his finger on the pulse of the industry while living in the place that they love -- I very consciously took Jon as an example when making the decision to move to Hawai'i. |
|
|
|
|
Friday, December 08, 2006 |
|
|
For a few years, I've been a happy subscriber to Musicmatch Universal, a system that gave me on-demand streaming of a sizeable music catalog. Musicmatch also had a $.99 song-purchase facility from which I bought a few songs. Although I've always hated the Musicmatch player (bloated, self-updating, etc.) I was content enough. Oh, sure I had to "authorize" my hardware, but how hard was that? If you're shaking your head in disgust at my naivete, fair enough: I'm neither 8 nor 80 and I ought to know better than to trust a technology company to provide service. But, you know, just because you know something unethical is prone to happen, it doesn't make it less unethical when it does. Musicmatch was bought by Yahoo. One day, for some reason I allowed my Musicmatch Player to update itself into the Yahoo Music Player. "Sign in with your Yahoo id" it prompts. "Uh oh!" I thought, since Musicmatch used my email address and my Yahoo id is something different. But perhaps they'll map the two behind the scenes -- it's not like that's rocket science. Of course they don't. I now no longer have Musicmatch software and all of the songs I bought refuse to play on any device. Of course they don't respond to my customer service complaints. It turns out that the amount of music I'd bought was not just a handful, but perhaps a dozen albums or so worth of legally purchased, royalty-paying music. Music that was so easy and convenient to buy digitally that I didn't give it a thought. Except that now that it's been taken away from me by the vagaries of the industry, I shan't ever buy DRM'ed music again. Instead, I'll think about this experience and the greed and incompetence of the music industry. I'll think "Those frackers took more than a hundred dollars from me, is it immoral for me to recover that music (illegal, yes, but immoral)?" At best, they've converted me to buying CDs and ripping them. At worst, they've made piracy tempting. Yes. Right. Geeks are supposed to know that DRM only inconveniences the honest and does nothing to deter the dishonest. Lesson learned. |
Friday, December 08, 2006 11:35:58 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Offtopic
|
|
|
|
Thursday, December 07, 2006 |
| | |