Tuesday, October 31, 2006 |
|
|
This has been around for a month, but I wanted to lament that Microsoft has cancelled their plans to hold next year's major conferences in New Orleans. New Orleans is one of my favorite cities (and is a great place to get really drunk hold a conference) and certainly needs the business. Apparently, the airlines have not restored capacity to service the city, raising a nasty Catch-22 when it comes to the city hosting major events. |
Tuesday, October 31, 2006 2:20:16 PM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Knowing
|
|
|
|
Monday, October 30, 2006 |
|
|
My very favorite technical book of last year was Peter Seibel's Practical Common Lisp. APress has recently released Practical OCaml by Joshua Smith. OCaml is the language implemented by F# (I don't know if F# is super- or sub-set -- perhaps the book will clarify). I doubt that lightning will strike twice, but if Smith's book is half as good as Seibel's I look forward to reading it. |
|
|
|
|
|
I've been writing an article about software brittleness and found myself asking a question I can't answer: Why was there so little software chaos in January 2000? There really were hundreds of millions if not billions of lines of COBOL that were at least potentially vulnerable to the rollover bug, those systems really were spread out across a huge variety of industries, including sectors like business and insurance. I've never heard a post-mortem of Y2K that claimed that pre-Y2K remediation efforts were so heroic and wide-spread that the problem was just plain "caught in the nick of time." In the years prior to 2000, I can at least claim that I cautioned against the most dire warnings. In essays in Software Development and in a letter-to-the-editor in response to a Newsweek editorial, I pointed out that the oft-quoted estimate of $600M seemed to originate from the worst-case scenario of a single analyst's report, that most PC-based software was written in languages not vulnerable to the problem, and that while errors would certainly crop up (wrong!), many systems would tolerate the computer's belief that the year was 1900. But... I didn't expect the utter lack of effects. It's a puzzlement. |
|
|
|
|
Sunday, October 29, 2006 |
|
|
Supposedly, a group of scentists and academics in Britain have, on an investment of $8700, used a mathematical approach to win a $13M jackpot. (Source: A Statistical Approach for Winning Lottery -- Group Wins $13M!) Momentarily assuming that there's no "rake" and that the lottery pays $1 in prizes for each $1 in gambling, that's "only" ~1500:1 odds. Not likely, but stranger things happen every day. But, of course, the problem with any kind of approach to the lottery (or, for that matter, stock picking), is that there is a rake. In the case of the lottery, the state takes a large percentage of the income. In the case of stocks, trading costs and the speed of execution have destroyed many a trading "system" (it's surprisingly easy to create a statistical model that works, if execution is instantaneous and free). The scant details seem to describe a technique for covering all numbers in order to increase the amount of payout when those numbers hit (as opposed to, say, the numbers 1-12 and 1-30, which are used by people betting birthdays and anniversaries). I find it highly doubtful that any such technique could beat the rake in a professionally-run, large-scale lottery. If there is a technique, I hope the newly rich academics publish their mathematical techniques, because it will probably necessitate rewriting the textbooks of probability! Oh, and this gives me an excuse to blog a long-held opinion of mine: it's perfectly rational to buy a ticket for a lottery. What's contemptibly irrational is buying two or more. |
Sunday, October 29, 2006 9:50:14 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Offtopic
|
|
|
|
Thursday, October 26, 2006 |
|
|
We went to see The Departed last night. I'm trying to figure out if I should try to figure it out or if, like "Snakes on a Plane," verisimilitude was not it's highest goal. First, though, I have to say how gratifying it is to hear actual Boston accents (Matt Damon and Mark Wahlberg). What you hear 99% of the time from actors is this weird Hollywood concept of what a Boston accent sounds like; it's vanishingly rare to hear an actual accent. Damon, in particular, can sound like he never trained himself out of it. Okay, spoilers hereafter... My biggest question is simple: What was the basis of Costello's relationship with the FBI? If he was protected by primarily honest Feds, then they must have been getting something out of it. But Costello only gave them underlings and people "who were going down anyway." The movie definitely made it seem that Costello was the top of the food chain, so the idea of him being a resource to get to another level of criminal doesn't really make sense dramatically. If, in fact, that was the idea, the Chinese chip smuggler situation would have gone down differently: if that was all a charade perpetrated by Costello and Ellerby (Alex Baldwin), either the Chinese would get away scot-free but compromised (not get busted at the border "with lightbulbs or something") or they would have been picked up that night in a way that let Costello escape (by the Coast Guard, say). So the hypothesis that Costello was working for the Feds seems weak. If Costello was protected by primarily corrupt Feds, then he was never in real danger from Ellerby. In fact, I think this would necessarily imply that Ellerby / Baldwin was corrupt. Ellerby was in charge post-Queenan. If Ellerby was corrupt, Costello would not have been ambushed at the drug raid. So the hypothesis that the Feds were working for Costello seems weak. The plot points came fast and furious in the movie, so I may very well have missed something. Thoughts? I'll offer 3:1 that Scorsese finally gets his "Best Director" Academy Award. |
Thursday, October 26, 2006 8:40:33 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Offtopic
|
|
|
|
Wednesday, October 25, 2006 |
|
|
I have to wire up a ColdFusion to an Axis Web Service. I've spent the past 3 hours trying to figure out freaking classpath issues: something about a ClassCastException from a org.apache.commons.logging.LogFactory. I'm giving up for the day. Stupid freaking classpaths. |
|
|
|
|
|
Incidentally, my normal blog CSS screwed up the rendering in IE7 and Firefox. Since I have not yet updated my dasBlog installation to the latest, I've decided to switch to this staid theme until I upgrade and can do some browser compatibility testing. |
Wednesday, October 25, 2006 9:36:37 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Offtopic
|
|
|
|
|
Patrick Logan says that some Schemers have put a Scheme on the Nintendo DS. Naturally, my first thought was "Hmmm... I wonder if I could do that with XNA?" (Or, more generally, if one could write a self-contained interpreter / compiler that would run on the XBox360). You could certainly do a clunky, self-contained interpreter but the real goal would be something running at chip-level or at least CLR-level. Generating the appropriate bytes is certainly well within the capabilities of the hardware (are you kidding?), but the really, really hard thing would be convincing XNA to start executing your generated bytes as instructions. At the assembly-language or C/C++ level, of course, it's trivial to command the machine to "execute these bytes as instructions," but (one of) the major security-oriented points of managed environments is that such plasticity is forbidden. I suspect that XNA has pretty tight walls around the sandbox to prevent you getting around this limitation, as once you allow this capability, security guarantees become much, much harder. (Not impossible, though, in the case of managed code, since you can still run security checks at load-time -- whether the bytes were generated ten months or ten microseconds ago is irrelevant.) |
|
|
|
|
Monday, October 23, 2006 |
|
|
Computer Gaming World has posted online their first 100 issues, going back to 1981. The first issue has a great essay by Chris Crawford about how computer-based wargames will be different than boardgames. Not surprisingly, he's pretty much spot-on with his analysis. I also enjoyed it because it's a great indication of what a true hobbyist-driven market might look like. Today's hardware is, of course, vast orders of magnitude more powerful but the amount of programming effort available to a single hobbyist is still the same. Looking at "what could be achieved" in those days helps one imagine what could be achieved today. Another thing that really gave me a pang was the page layout that, with its line drawings and inflexibility, reminded me of magazines like Dragon and Microcornucopia. |
Monday, October 23, 2006 12:11:12 PM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Knowing
|
|
|
|
|
The always insightful Peter Coffee has a good new column that offers a couple contrarian observations. To the generally positive buzz over Cisco's new virtual meeting system (HD screens, lighting, surround-sound), Peter makes the skewering concession "If face-to-face meetings were considered the high point of organizational productivity, I'd endorse the idea of throwing bandwidth and hardware at the task of migrating that process to cyberspace." Touche. Coffee frames the article with a discussion of "paved cow paths" which are (apocryphally, one suspects) how Boston's notorious street layout evolved. This comes right up to the edge of software development heresy: paving grass-worn paths is one of the cliches of explaining "patterns;" incrementalism is a watchword of the agile movement; and, for that matter, Boston rules, ok? Coffee's long had an enterprise-level perspective on development and although he holds his fire in this column, I suspect that he may be gearing up for an assault on the common wisdom. |
|
|
|
|
Saturday, October 21, 2006 |
|
|
John Lam, whose RubyCLR bridge has been a fascinating and seemingly highly-successful project, is joining Microsoft. Details are vague, but he says he'll "be working in the CLR team" and "I’m not going to leave the Ruby community" but makes it pretty clear that he's looking to hand off the RubyCLR codebase to the community (hmmm...I have such copious spare time...). I'll be trying to wheedle details out of him, but I still feel that Microsoft will not produce a Ruby but, something at least Java:C#::Ruby:X if not even a little bit more of a Ruby-VB hybrid. Timing-wise let's say that Microsoft has designed a "more dynamic" language (VB.Nexter, Sapphire [Perl->Ruby->Sapphire]). One could well imagine that they might be in a good position to develop a back-room prototype for PDC2007. |
|
|
|
|
Thursday, October 19, 2006 |
|
|
Serious Magic Communicator is a nice product: it combines teleprompter and chromakey (green screen) software, so you can rapidly create "talking head" videos with video or graphics in the background, a la TV weathermen. The quality, of course, isn't exactly Lord of the Rings, but it's a very fast way to produce content. Personally, I've found that it's not quite a silver bullet for producing training videos for software developers, at least not without actually building a small production studio, but it's quite good. Anyway, they've been acquired by Adobe. It may be that Adobe acquired them out of petty cash for some of their other technologies, like their HD codecs, but hopefully it will mean a wider audience for Communicator. |
Thursday, October 19, 2006 7:40:09 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | SD Tools
|
|
|
|
Wednesday, October 18, 2006 |
|
|
I wasn't going to criticize FEMA for spending $400K flying in a response to the quake. Post-Katrina, I was certainly expecting to see some highly visible Federal presence here. But it turns out that they flew 100 experts, including hazmat teams and smokejumpers, more than 2 days after the quake hit, when it was quite clear by that time that we didn't have a crisis. I hope they're enjoying what is, even by Hawaiian standards, some beautiful weather. |
Wednesday, October 18, 2006 3:02:51 PM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Hawaii
|
|
|
|
|
Prob'ly all real Rubists know this, but I was disappointed to discover that Ruby's threading is implemented in the Ruby interpreter's process and, within that, does not take advantage of the native system's threading capabilities. Although I assume that this is an implementation detail and not part of the language spec, it means that at the moment Ruby is incapable of taking advantage of multicore/multiprocessor systems. |
|
|
|
|
Tuesday, October 17, 2006 |
|
|
So far, I've heard that horses at a show up in Kamuela started bucking several seconds before and that fish at a pond in one of the resorts started jumping as much as minutes before the quake. There's even a report about cockroaches going crazy the night before. At the scale of a few seconds, I can certainly believe that different species might sense and react at different rates to the first waves and/or there may be some kind of "precursor" wave. In this case, there was absolutely a "build up" to the major shaking and I find it interesting that Tina had gotten out of bed literally in 1 or 2 seconds before the onset. On the other hand, this island is littered with seismometers due to the volcanoes and if there were long-wavelength precursor waves, they would be visible in the data. Further, while I've heard some theories about gas releases presaging quakes, this quake was not a tectonic slip and originated both 24 miles down and at sea, so if animals here sensed it in the same way they sense a quake in California, you've got a problem with mechanism. Personally, I think that people's need to project certainty onto an uncertain world is one of the strongest mechanisms of the human psyche. |
Tuesday, October 17, 2006 9:51:57 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Hawaii
|
|
|
|
Monday, October 16, 2006 |
|
|
OK, here's some trivia for you: a case fan situated 17 miles from the epicenter of a 6.6 earthquake can be shaken lose to the extent of creating a significant rattle. Now you know. |
|
|
|
|
Sunday, October 15, 2006 |
|
|
Thank god for first-world construction codes.
This morning's earthquake, which occurred pretty much directly offshore from us, was several factors more severe than anything I experienced while living in California. I was in the city of San Francisco for the 1989 Loma Prieta earthquake and I compare that experience to a bumpy subway ride like Boston's "T." The experience of this was akin to what you experience on a wooden roller coaster. Tina was literally two steps from the bed when the earthquake struck. The onset was like children running overhead in a house: patter-PATTER-Rumble-RUMBLE and then "Holy…" I rolled out of bed and grabbed the dog. Cheyenne is recovering from an vestibular inner-ear problem and the shaking probably seemed like more of the same to her, but by the time I got in the doorframe, the shaking had reached a level quite unlike anything I experienced in 19 years living in California. By the time I got into the doorway (and Tina across from me, in another), the sound of breaking glass rose to dominate the low-frequency rumble. It was at that point that I experienced the Code Red adrenalin shot. The first time you parachute, even if you like jumping off high diving boards and riding roller-coasters, after 100' of drop or so, your body recognizes the unique parameters of your current situation and moves you into a different kind of awareness. I had that for the second half of the quake, which I suppose you'll tell me was only half-a-minute long. A lot of people talk about "time slowing" but for me, the experience is dominated by the complete shutdown of inner dialogue. A zen-like peace, I suppose, if zen-like peace involved being scared. The thing that felt very different was the short-wavelength motion. I was holding my dog by the collar and she was going one way and I was going another. The "twistiness" of the shaking was, qualitatively, much different than anything I'd experienced plus, of course, the severity of the shaking was higher. I have a good sense of balance and I was almost thrown off my feet. After the shaking was gone for a few seconds, I let the dog go and we began to assess the damage, which was disheartening. Dozens of pictures fell, including a heavy oil painting whose hanging wire was snapped by the jolting. Most of the appliances "walked" -- the TV was an inch from toppling, the stove had moved 5 inches, the refrigerator had shifted. There was broken glass and ceramic everywhere -- vases, mirrors, the shelves and contents of our tiki bar, and dozens of sentimental tchotchkes. Several things broke because something heavier fell on top of them -- a couple sculptures, my SLR camera, a keyboard. Bookshelves collapsed, others were emptied. That's when the aftershock (or, as they're saying now, a separate 5.8 earthquake) hit. This one felt much more like a "normal" big earthquake. After getting out from the doorframes from that, we heard our neighbor's children screaming. Their mother was working and their dad had run out to grab breakfast. He'd left his kids, age 4 to 8, watching "Left Behind" -- a movie about The Rapture. Somehow I think that their Code Red adrenalin level put mine to shame. So we looked after them until their Dad rushed home a few minutes later. I am frankly astonished that our house wasn't structurally damaged. The miracle of wood, I guess. Our house was flexing, boy -- I could see it. I now viscerally understand what led to the devastation in places like Aremenia and Iran. One of our stone retaining walls shifted significantly and another partially collapsed. The composition of the Big Island is essentially jagged lava rock in all sizes -- the island is so young and amorphous and the way that lava forms is such that the geology hasn't sorted itself out. This is one of the reasons why the images you're seeing from the news of collapsed rock walls and slides and so forth is quite misleading: it's always like that. There are significant slides and slumpages in every rain and while I don't mean to discount that this event was major, the types of rock falls that are making national news are not all that unusual here. After a few hours passed, we went out to get ice. We live above "Mamalahoa Highway," which is a rural two-lane road and, as it turns out, one of the rockfalls which is making national news is about 100 yards away. We went down to Queen Ka'ahumanu Highway, which runs by the airport and, by 11, the triathletes in town for next week's IronMan were thick on the road. We were surprised, but the power was on along the highway and we had no problem buying 30 pounds of ice, some coffee, and some water. Ironically, it's a particularly lovely day here. The other islands in the state, all of which are suffering blackouts presumably related to the earthquake, have the additional misery of heavy rains. True to form, we heard several rumors about this structure's roof collapsing and that place being destroyed and these all turned out to be exaggerations. One thing that's getting extensive coverage on the news is the structural damage to the local hospital. I probably shouldn't say anything, since getting Federal funds to pay for a new hospital would be awesome, but the condition of that hospital was a local disgrace before this morning. Power came back on at 1 in the afternoon and I received yet another education in the way of TV news. Just as in the 1989 Loma Prieta earthquake, when the media concentrated on the (relatively minor) damage to San Francisco when in fact Santa Cruz and Watsonville were devastated, radio and TV coverage seemed to cover the power outages throughout the state. As for the local reports they're putting on the airwaves, I admit that shaking varies from place to place and it's possible that someone another twenty miles down the road or over in Oahu had a worse experience than we did, but I think it's even more likely that there's a knowing complicitness between the eye-witnesses and the media about what makes good TV -- "emphasize the terror, emphasize the close call, use words like 'devastation' and 'war zone'" (I just had a flashback to the movie "Jaws" and the mayor saying "But as you can see, it's a beautiful day..." just as Alex Kintner is paddling out on his inflatable raft...) Oh, did I mention the waterspout that we had Friday? |
Sunday, October 15, 2006 4:21:03 PM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Hawaii
|
|
|
|
|
CNN is incredibly over-dramatizing the situation in Kona. They are getting over-wound-up quotes from people who are saying "like a war zone." This is not true!
One of the "highway blockages" is 100 yards from my house -- it's a couple big rocks in the road. Too big for a person to roll away but hardly cause for national coverage. It's a beautiful day here (unlike the rest of the state), power's back up, water's on.
|
Sunday, October 15, 2006 2:19:02 PM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Hawaii
|
|
|
|
|
That sucked. We're directly onshore from the epicenter, as we understand it.
We're okay, though, and the house (pretty incredibly, given the experience) doesn't seem to have any structural damage. Much more extensive blog posting to come.
Power is on (for the moment?) and water is back on.
On Queen Kaahumanu highway, the IronMan triathletes are back training. Can't let a little temblor spoil your training. |
|
|
|
|
Friday, October 13, 2006 |
|
|
I absolutely love that what's playing out re. Korea, which presumably expended approximately 1/6 of its enriched uranium on Sunday, is "Geez, I don't know. If you did, mighty impressive. But, y'know, if I were Iran, I wouldn't buy anything from you on the basis of that. Maybe you'd better try again... five more times." |
Friday, October 13, 2006 10:38:29 AM (Hawaiian Standard Time, UTC-10:00) | Disqus link | Offtopic
|
|
|
|
|
(Warning / Reassurance: this is not a technical post on how to use packrat parsing to evaluate type declarations.) Steve Yegge calls this image a "treatise on non-inferring static type systems...one of the most insightful Computer Science papers ever published": He then goes on to say "[Different styles are] perfectly OK with me, as long as they understand that it's not some proven silver bullet — it's just a style thing." which is exactly true. But the funny cartoon has been reproduced here and there by implicit typing advocates. John Lam wonders "if static typing advocates really look at the world this way." No, we don't. We look at type declarations this way: Explicit type declarations are primarily for the task of understanding code. As Jeff Atwood recently pointed out, "if you ask a software developer what they spend their time doing, they'll tell you that they spend most of their time writing code. However, if you actually observe what software developers spend their time doing, you'll find that they spend of their time trying to understand code." Now, people of good faith can argue about what should be the result of evaluating "1/3" but silent conversion to an integer of value 0 (as happens in Ruby) is something where one can imagine a misunderstanding arising. Explicit typing advocates think that the additional four keystrokes of "int x = 1/3" is a small price to pay (especially because there is always a type intention during assignment). (Incidentally, I use the terms "explicit" and "implicit" typing, not the misleading-for-this-purpose terms "static" and "dynamic." See this column from 2004.) Steve Yegge, in his original post, laments that he finds it "pretty farging depressing that a simple declaration" like ArrayList<int> myListOfInt = new ArrayList<int>(); "can be haiku-sized in Java." But ignores that what he's declared has capabilities (i.e., constraints) that go beyond the equivalent "myListOfInt = Array.new" The fair comparison is: ArrayList myListOfInt = new ArrayList(); myListOfInt = Array.new As far as the finger-typing burden goes, for a 60WPM (360CPM) typist, it's 40 characters versus 23 -- 1/9 of a second versus 1/16 of a second. Sometimes I get farging depressed from programming, but not over stuff like that. Again, people of good faith can argue about which is actually easier and less error-prone to understand. I'd certainly agree that an expression like (int)(((float)a/b)*c) is annoying both to write and understand (did I balance my parentheses? Did I do the necessary casts?). But whether typing is implicit or explicit, the closer a program approaches the ideal of one statement per line the easier it is to understand. And, as programs approach that ideal, the relative burden of typing explicitness largely falls away. Since it's a blog post, I will use an anecdote to "prove" my point: Packrat parsing is the hot new thing in compiler techniques. It is described very clearly in this article, which uses Haskell as the implementation language. Readable as it is, for me to "get" a complex algorithm, I like to implement it myself. So last Sunday, while watching football, I worked through the article's example in Ruby. Packrat parsing evolves from a top-down predictive (aka recursive-descent) parser. That means parsing an expression like "1+2*3" from left-to-right, suspending judgement on "what you've got" as long as "what's remaining" is ambiguous. (So, for instance, when "what you've got" is "1+" you don't know if "what's remaining" is going to be a number or, as is in this case, the result of a multiplication.) Writing top-down parsers is easy and, sure enough, by the time Bledsoe even tried to hit T.O., I was getting "7" back my Ruby work. The knock on recursive-descent parsing is that when an ambiguity is resolved, you have to backtrack up "what you've got" until you find an alternative and then you have to reparse the expression from that point forward. (Traditionally, you'll also hear that top-down parsing cannot handle as many grammar forms as bottom-up, but in the realm of programming languages, that's a | |
| | |