Golfing with Smalltalk
If you play golf and want to keep track of your statistics, there's a new online application for you: GolfNumbers.com. Powered by Cincom Smalltalk. Check it out, and try not to duff to many out into the rough.
If you play golf and want to keep track of your statistics, there's a new online application for you: GolfNumbers.com. Powered by Cincom Smalltalk. Check it out, and try not to duff to many out into the rough.
On our trip through Kansas, it was impossible not to notice the difference in average intelligence between Lawrence, the university town, and Liberal, a beef-processing and Walmart town. In 1900, the costs of moving away from one's home town were high. You'd see your family and friends only once every year or two. You'd talk on the phone or communicate via telegraph only in an emergency. These costs discouraged enough folks from moving that every town had its intellectuals. They dreamed of moving to Manhattan, but they never did. You'd find them at the library, in the local theater company, running a Great Books club, etc.
There's some truth to that - a related thing occurred to me while reading about the flue epidemic (1918) last night. The civic associations that took over when local government failed were all run by women; most of the women who ran civic organizations then have jobs now. Social change has many interesting side effects - but back to Greenspun's point. Further down, he makes a point that I think works against his theory over the long haul:
In 2006, you can move 300 miles away and get back home every weekend on an Interstate highway in a few hours. You can move 2000 miles away and get back home every month for $300 round-trip on an airliner. For a fixed $20 per month, you can get a voice-over-IP phone and make unlimited long-distance calls. For free, you can exchange email and instant messages. You can get the benefits of moving, associating with other smart interesting people, without many of the costs formerly imposed on those who moved away from their home towns.
That same technology allows a lot of smart people to move to "dumb" lower cost areas, and still work with the "smart" people. Consider - I live in suburban Maryland. Existing homes in my area are going for $750k and up. We don't live near a river or the ocean, either. My sister lives in suburban Texas. Down there, she and her husband were able to afford a house on one income. Heck, when I look at housing prices in Ohio, near where Cincom headquarters is, I get shocked - the prices there are less than half what they are here, and the weather is no worse. I'm in my forties, and established - but believe me, if I were 24, and just starting out - there's no way I could even begin to afford living in my area. That reality, combined with the technology advances in communication, are going to have distributive effects of their own.
I had to turn trackbacks off - the inbound spam was too much. I'll extend the filtering I do for referers to the inbound trackbacks and comments this week, but in the meantime, I just had to stop the flood.
I don't dispute the theory here, but I'd sure love to see where the data came from. Via Dale Wolf, I see this:
According to Jim Lanzone, Senior Vice President of Search Properties at Ask Jeeves, there are 36,000 blogs that "really matter" since they have 20+ subscribers. That means only a small percentage of blogs have enough relevant material to gather a community around them.
The thing that is generally useful from Lanzone's analysis is that subscriptions for blog feeds through Bloglines gives us a relative understanding of the blog world:
Level 1 -- 36,000 blogs that are serious enough to garner 20 subscribers.
Level 2 -- 14,363 blogs that have +50 subscribers
Level 3 -- 437 blogs that have +1,000 subscribers
Level 4 -- 60 blogs that have +5,000 subscribers
Level 5 -- only one blog with +50,000 subscribers
Here's the gist of my question. I periodically go to BlogLines to see how many people are subscribing to my blog through BlogLines. Yesterday, that number was 302. Today, it tells me that there are zero with public profiles. So either BlogLines reset that data, everyone who was subscribed dropped off, or they all en-masse decided to hide their profiles. Occam's razor leads me to the first conclusion, but - the loss of that data tells you something about how slippery this area is.
So say my Bloglines subscribers are still around 300. When I looked at my logs today, I noticed that there are over 4600 unique IP addresses subscribed to one or more of the feeds on cincomsmalltalk (across all blogs). There are other online subscription services too - Newsgator comes to mind. I'm sure there are others I'm forgetting. The point is - I have no easy way of telling how big the community around the blogs on this server is. I can get a rough feel based on commenting frequency and log activity, but that's very rough - and the subscriber numbers are a lower bound anyway, due to proxy servers - if 10 people from Cincom subscribe to your feed, for instance, it will look like one unique IP.
Bottom line - does anyone have a methodology that captures anything that resembles real data on this stuff?
It's that time again - first up, BottomFeeder download activity. Not much changed from last week, it ran at a rate of 257 per day:
| Platform | BottomFeeder Downloads |
| Windows | 570 |
| Sources | 497 |
| Linux x86 | 200 |
| Mac X | 98 |
| CE ARM | 88 |
| Update | 80 |
| Mac 8/9 | 76 |
| HPUX | 39 |
| Solaris | 38 |
| Linux Sparc | 30 |
| AIX | 28 |
| Windows98/ME | 28 |
| Linux PPC | 11 |
| SGI | 7 |
| CE x86 | 4 |
| Source Script | 4 |
| ADUX | 2 |
I'm always fascinated at the 1 or two Alpha downloads; that's a very, very back version of BottomFeeder now. Next, let's see what went on with HTML pages accesses last week:
| Tool | Percentage of Accesses |
| Mozilla | 66.6% |
| Internet Explorer | 18.6% |
| MSN Bot | 8% |
| Other | 3.7% |
| Everest/Vulcan | 2% |
| Megite | 1.1% |
The Mozilla share has been rising of late - I wonder if my audience is changing, or if my audience is moving to Mozilla? Hard to say. Finally, the syndication tool report:
| Tool | Percentage of Accesses |
| Mozilla | 25% |
| BottomFeeder | 17.2% |
| Net News Wire | 9.7% |
| BlogLines | 8% |
| Other | 7.6% |
| Safari RSS | 4.9% |
| Internet Explorer | 4.4% |
| Google Feed Fetcher | 3.7% |
| RSS Bandit | 3% |
| MSN Bot | 2.3% |
| NewsGator | 1.7% |
| SharpReader | 1.6% |
| Planet Smalltalk | 1.5% |
| Magpie | 1.4% |
| JetBrains | 1.1% |
| News Fire | 1% |
| BlogSearch | 1% |
| Liferea | 1% |
| Feed Reader | 1% |
| Feed Demon | 1% |
| Java | 1% |
| Attensa | 1% |
One interesting result there, and in the HTML accesses - I've had a fair number of hits from something called Everest/Vulcan over the last few weeks, and that just disappeared. I wonder if it was being tested - it seems to still be under development.
But both Ruby and RoR have things that the other products lacked when first out: a vocal, convinced and evangelizing community, a low barrier to entry, an amazing product, and a philosophy where the programmers' ease is at the front. The whole thing is just elegant.
That was a comparison with things like Lisp and Smalltalk. Now, I'll admit that Smalltalk has not always been easy to get ahold of. The community has made that easier though - there's Cincom NC, which is free for personal use, and there's the fully open source Squeak. The various other vedors make it easy to get started too. Admittedly, making the jump from files to an image is asking a little more, but we are working on making the intro process simpler.
I wonder if the hypesters in the Ruby community would comment on the fact that learning a new tool or technique actually lowers programmer productivity and product quality initially. The eventual benefit is achieved only after this learning curve is overcome. Therefore, it is worth adopting new tools and techniques, but only
(a) if their value is seen realistically
(b) if patience is used in measuring benefits.
So... C was a mistake - no one knew it back in 1978, so it should have been ignored. Java was an error in 1995 - clearly, it was a waste of time for anyone to learn it. Add in your own favorite language; everyone can play!
I guess McGovern believes that Cobol was the uber-answer, since any new tool that came along afterwards lowered product quality initially. To be enterprisey, you never want to take risks. Stay with the herd.
Chris Petrilli rips James McGovern yet another new one. It needs to be done just about every time McGovern opens his mouth.
Jon Udell goes through the ways he prepares to speak; I know this drill pretty well. I've never actually prepared a talk in advance (as in, had a prepared text). Maybe it would be a good idea; I don't know. I've always used what he calls "mode two", a set of slides to remind me about what I wanted to say. I tend to do a lot of ad-hoc demos though, so I "wander off the reservation" a lot.
I have no real idea how effective I am at this; I've been getting in front of groups for years, so I assume I'm not horrible. It would be nice to get some feedback from people who have attended one of my talks though.
Speaking of Lost - my friend Mike thought I was talking about it here; last week's episode really was interesting. I don't think that the entire show is inside Hurley's head, but - they certainly set it up so that it could be seen that way.
So what is going on? I have no idea. My wife and I tossed around the idea that everyone on the island had committed suicide, so they were all in purgatory. We were able to come up with reasons (based on the flashbacks) why most of the characters would be depressed enough for that; there are a few exceptions (Sun? Then again, she could be a murder-suicide with her husband).
Of course, that doesn't answer what the numbers are about, or a few other things. What about the kids who "the others" stole? Is that because they don't belong in purgatory? Then again, if the plane crash didn't really happen, then why would the kids have been there in the first place? There's also the whole "psyche experiment" feel to a lot of the stuff in the hatch.
When they finaly end this, it wouldn't surprise me a bit to see a St. Elsewhere style ending.
Update:This post was beyond the pale. I'd delete it, but I'd just as soon - unlike some people on the net - leave my mistakes out there for all to see.
First, have yourself a working product that starts getting some industry buzz.
Second, get yourself bought out.
Third, spend the next 2 years rewriting the system into a different language's syntax - which also requires a rewrite of all the libraries.
Yes, that will certainly get you into a revenue producing situation more quickly. And before someone tells me I'm simply being a language bigot, it would be every bit as silly if the entire thing went Java to Smalltalk. However, at least this guy will be happy; it's all enterprisy now.
Can brilliant marketing beat superior engineering? If you meet someone who advocates this, I think you may have just met a sales consultant who wants to sell you a bridge.
And further down:
If you believe that marketing beats engineering, talk to some of the Madison avenue folks who tried to defend the railroads and the steamships against air travel.
Well, I suppose it depends on the full definition of "better". IMNSHO, Smalltalk is vastly better than Java. However, Java is (mostly) free, and it has the advantage of being similar (syntactically) to C and C++. Thus, in engineering terms, Java is what you might call an 80% solution that counts as "good enough" for a lot of people. And yes - good marketing around an 80% solution will beat lesser marketing around a 95% solution every day of the week.
The bug I referenced earlier was truly, truly stupid. I save blog entries in a serialized object file - one file per day, with each file being a collection of the post objects (with their associated comments, etc). When comments come in, the system looked up the existing entry, appended the new comment, and sent it off to the storage system for saving.
If you think about that, the problem is obvious. Say two people comment at about the same time. The first process gets started reading in the existing post, and is out on I/O. The second process does the same thing. They both append their comments to the post, and then they save. The save is serialized to prevent problems, but - in this case - the last one in "wins". That's why some people have seen a comment show up, and then disappear.
After I got a complaint about that, the problem came to me quickly - but I was in the car at the time. So this morning, I sat down to refactor the problem. The new code was pretty easy to slap in, and simplified the way comments get saved. So now the problem's gone - all that's left is the embarrassment over how stupid it was :)
I've had a couple of people ask me about lost comments recently - there have been cases where a comment went in, and then disappeared. I thought about that while I was driving yesterday, and I figured out that yes, it was a possibility if two or more people commented in rapid succession. So, I've been working on a fix this morning - and I'm testing it against my local (test) server. When I'm convinced that I didn't add a new bug, I'll upload the fix.
Update: the fix is uploaded.
We went to see "Inside Man" yesterday - it's a nice bank heist yarn. The story develops very well, and - while the escape route for the perps seems obvious, there is a twist. Jody Foster plays a bitchy "fixer" - and the personality type is not one she normally plays. Denzell Washington was good as the uncorrupted detective. The payoff at the end has been described as weak, but I rather liked it. It may not be a great movie, but it's a fun 2 hour ride.
Microsoft is big enough that they could try and do they right thing. No chance of that though - they are promising more investment in evil DRM.
Microsoft Corp. said Wednesday it would increase investments in digital rights management (DRM) to guard against piracy and support the wireless industry, as more tunes, pictures and video clips are sent over the airwaves to mobile phones.
Just what I need, how nice. Quick, fetch someone from Microsoft to explain the *cough* innovation *cough* here.
Keith Braithwaite has an excellent article up on the "magic" enabled by having objects all the way down. He uses the classic explanation: how #ifTrue:ifFalse: works in Smalltalk:
Anyway, imagine that Java were an OO language and that if, therefore, were a method. There would be a potential problem (assuming the near universal eager evaluation of function arguments). Our imagined ObjectJava code might look like this:
if(condition, {doOneThing();}, {doAnotherThing();});
which kind-of suggests that both the one thing and the other would get done.
...
The syntax of our invented ObjectJava is pretty bad there, );}); isn't a thing of beauty, although it's not much worse than the way some real Java looks. The Smalltalk equivalent is much neater. Continuing with our janitorial example:
aDoor isAlarmed ifTrue: [self disarm: aDoor] ifFalse: [self openNormally: aDoor].
It doesn't look a lot different, but the fun is in the implementation (which is right there in the base libraries, not baked into the language syntax:
ifTrue: t ifFalse: f ^ t value ifTrue: t ifFalse: f ^ f value
As Keith says, the beauty of that is this: the power involved in having that in the standard library is not closed off as a "language implementor only" feature - anyone can create code like that, and it ends up living at the same level as other library code. For instance, there's a method in the Collection library called #select:, which is used like this:
someCollection select: [:each | "each object that satisfies the condition here ends up in a new collection"].
That answers a new collection, where the members satisfy the boolean condition in the block. Want a new collection method that can be used against any collection? Just go ahead and add it to class Collection and boom - there it is, same level as #select:. No "helper" classes, no piles of code to get around the fact that it wasn't where it belonged. Going back to Keith's article:
Perhaps most astonishing about the Smalltalk approach is that Boolean values and selecting different actions based upon them is not part of the language. These are facilities provided by methods of classes in the Smalltalk standard library! This library (the "standard image") turns out to contain a large number of overlapping Embedded Domain Specific Languages--one of which, provided by the classes Boolean, True and False is specific to the domain of two-valued logic. That's a very remarkable thing. Most remarkable is what it says about the business of writing programs in Smalltalk.
There is no mechanism available to the Smalltalk programmer to create programs other than the creation of EDSLs
What that means is that the DSL tools that many vendors - like Microsoft - are pounding sand to create in languages like C# and Java - can be easily created in Smalltalk. Just ask Steve Kelly. Smalltalk isn't just another language - it's a level up, where you can set your amp to 11.
As Alan points out in the comments, the following command, run before you start VW up on a Linux system where it crashes, may solve the problem:
xset fp rehash
If you have problems running BottomFeeder on your Linux distribution, try that as well.
CNet reports what we all know - people who use DVR's skip the ads. This is hardly surprising, but I expect a response from the TV industry that's every bit as intelligent as the RIAA's response to downloadable music - denial followed by aggressive fighting against the inevitable. It's already started - newer ReplayTVs don't have commercial skip, and that feature has never been part of TiVo or the cable box DVRs on the market.
The problem is the business model. The industry is built on ad sponsored content, and time shifting just destroys that. As a commenter on CNet noted, no one is fooled into thinking that a fast forwarded ad counts as viewed. The logical answer would be to adapt - product placement, ad crawls (like the news crawls on the cable news networks), etc. That's not what I expect though. I expect a rear-guard action to somehow force viewers to watch ads. It'll be stupid, and it'll torque off viewers - but it's what I expect.
This piece in InformationWeek gave me pause. It's not that I have any fear of globalization, or any doubts about it happening; it's clearly happening. If my reading of history has taught me anything though, it's that nothing is inevitable. Consider Preston's summary:
Globalization has officially arrived. Even that bastion of progressive thought leadership, The New York Times, in the person of columnist Thomas Friedman, now realizes that the "flat" business world in which we live won't be structured country by country. We can disagree on whether that trend ultimately serves our long-term economic interests, but there's no disagreeing on whether it will happen. It's here, to stay.
Read anything written by a late 19th/early century person - particularly a European - and you'll see the same sort of triumphalism. The people of that age were witnessing a historic binding together of the economies of Europe. Regulations were minimal, cross border movement and trade was large (and growing). Nothing, people thought, could stop any of that - I'd recommend "Europe's Last Summer" in order to get a sense of that.
Then came the wreckage of the first world war, followed by the rest of the 20th century. Cross-border trade in Europe didn't approach pre-WWI levels for decades. Which takes me back to the supposed inevitability of growing globalization and seamless, cross border trade and movement. The last time people in the West had the thought that "nothing could stop this", they were in for a very, very rude awakening.
The Smalltalk Solutions Coding Contest starts today, at 9:30 am EDT - so there's still time to send Michael a last minute entry note.
As I said last night, you can still get the Smalltalk Solutions discount if you register with the ST135 code. Sign up now, so you can attend talks like Thomas Hawker's:
Database limitations and other constraints have required OOCL to migrate critical, high-volume activity of its primary enterprise system from Visualworks and Gemstone to Java, C#, and Oracle. Only a subset of functions will be moved, resulting in a complex, peer-to-peer distributed system. EAI of some form is required, but what should it look like? What are the key requirements and design trade-offs? What impact will it have on performance? This seminar will examine the practical aspects of creating an EAI framework around Web Services, including creation of support facilities, new Gemstone-resident code, and solutions to maintaining data and platform neutrality for both client and server operations.
See you in Toronto!
This post brings out what I meant here, when I said that being able to play popular games on a Mac meant the end of Windows (for me, at least - probably for a lot of other people as well). It's summed up here:
Both Mac and Windows camps have been buzzing these past few days with news of Boot Camp. Apple’s Boot Camp is an essentially just an installer that includes Windows drivers and a basic partioner. BIOS support is included in a separate update. Note, this is beta software and Boot Camp isn’t even the final product name. But what is more telling I think, is that this is going to be intergrated into Mac OS X Leopard. As it stands now, it’s a one time thing. Apple obviously intends for Leopard and Windows to be run side by side, (not just Windows) and I’m going to outline the importance of this in the following article.
Boot Camp is cool, but it's half a loaf. Having to reboot in order to run a game is not enough. If Leopard ships with the ability to run Windows apps without having to leave OS X, then I'd say that Microsoft has a huge problem. I said awhile back that MS was busily painting itself into a corner with Vista, and that it was going to cost them. The response from a few people was "sure, but what's the alternative?" Well, I think that alternative is becoming clearer. I've been recommending the Mac as a saner alternative for non-technical people for awhile now; the only gap has been "what about all those Windows apps?". When that gap goes away, it's a whole new ballgame.
Apple has dropped a bomb on the entire industry, and it's only starting to become clear how big the explosion could get.
In an article on "Why Ruby won't become mainstream", Cedric Beust says this:
Have you ever come across Smalltalk or Lisp programmers? You know, these people who, no matter what you tell them, will always respond that "Smalltalk did that twenty years ago" or that "Nothing has been invented since Lisp". They listen to you patiently with an amused light in their eyes and when you're done talking, they will just shrug away your points and kindly recommend that you read up on a thirty-year old technology that was the last thing they ever learned and that has been dictating every single technical judgment they have offered since then.
I don't know any Smalltalkers who aren't familiar with Java and/or C#, as well as other languages. I find plenty of Java developers who live completely inside the Java bubble though. Sure, we Smalltalkers can be arrogant snots - but it's not due to a failure to learn anything new. Quite the contrary, actually.
Some people have reported problems running VW on Linux - various distros, with the common denominator being a failure to start up. We've identified the problem, but are still working on the best approach to fixing it. Here's the description that comes from our internal bug tracking system:
Logging in using the default window manager (or any WM that launches the Gnome suite of applications) and session causes a program named 'gnome-settings-daemon' to start. Part of the initialization of this process involves creating the directories ~/.gnome2/share/cursor-fonts and ~/.gnome2/share/fonts that are prepended and appended, respectively, to the X server's font path. Unless the user has installed any fonts under these directories, they are both considered to be "invalid" by the X server since the fonts.dir file in both will not contain any font data. This causes the XSetFontPath() request (sent by gnome-settings-daemon) to fail. Internally, the first action taken by XSetFontPath() is to clear out a static variable named FontFileBitmapSources that contains data about each of the configured directories in the X server's font path. Each directory in the argument to XSetFontPath() is processed sequentially and data is added to FontFileBitmapSources at the successfull completion of adding the directory. If one of the directories should fail the initialization process (e.g., it doesn't exist, isn't readable, or doesn't contain any fonts), then any directories in the path that come after the failed directory are ignored. On encountering an invalid directory, XSetFontPath() returns and the server sends a BadValue error to the client. gnome-settings-daemon discards the error. The behavior of XSetFontPath() described above can be seen on any official version of X11R6.
There's more, but here's the bottom line - in trying to get a font match, the font logic in the VM fails because of the empty pre-pended font directory. So we've diagnosed the problem; the fix will likely involve surfacing some of the font logic out of the VM and up to the Smalltalk level, where it can be handled more easily.
By law, the federal IT shops have to listen to people like McGovern, and try (and fail) to build over-engineered uber-solutions that no one needs:
We also discussed why the Federal government who happens to be blessed with an act of Congress (The Clinger Cohen Act) that mandates Enterprise Architecture while the rest of us in corporate America have to run around selling it and pushing metrics still can't be successful. It was encouraging to know that the federal government has finally realized that they too can at least learn from corporations and are starting to recruit consulting firms from this demographic instead of always going with the same old ones that got them in the hole they were in.
The funny thing is, he almost recognizes the problem. Now if he'd just notice that the corporations that work like the feds tend to fail too....
I have two quick updates for Smalltalk Solutions:
See you in Toronto!
Well, other than price that is. If you get an intel based Macbook you can download a nifty little utility from Apple called Boot Camp which allows you to set up a dual boot of windows xp / vista and linux. Apparently games play nice and fast as well.... So now you have the sexyness of apple hardware, the sexyness of OS/X and all the apple apps, and all your normal windows apps as well, plus the availability of Vista when it ships in 200?.
Pretty much it. If I can run games like Civ 4 on the Mac, I'll have absolutely no reason to own a Windows box.
I reported that insiders at Sony had leaked pricing details for the PS3 the other day; Sony is now denying those reports:
Sony Computer Entertainment Europe has claimed reports that its senior staffers let slip how much the company plans to charge for the PlayStation 3 when the console ships next November are "incorrect".
Instead, head of the the company's French operation, Georges Fornay, says he was "misunderstood" when he appeared to indicate a price range for the PS3 during an interview with French radio station Europe 1 this week.
Hmm. That sounds an awful lot like the politician's "I was taken out of context" response to me. It should be interesting to see where the pricing does end up.
Morgan McLintic ponders the meaning of links, rank, and influence. I'm with him up to this part:
Perhaps a more sure way to gauge influence is to count the comments themselves, and the number of participants in those comments and the frequency of times those commenters engage. A lively discussion involving a range of different people, would suggest strong influence on that audience. They are engaged in the content, as evidenced by their being spurred to action to share their opinion.
Well, to some extent. On most blogs with comments, the signal to noise ratio gets lower and lower as the number of commenters rises. This is especially true of the big political blogs; pick an arbitrary political blog that allows comments (the side of the aisle the blogger is on doesn't matter) - and you're bound to see trolls. Lots of them. Happens in the tech sphere too - witness the mud slinging that goes on over at Scoble's place sometime.
There's a point past which comments become fairly useless. Does the sheer volume indicate influence? It might. It's hard to say at this point. The tools we do have - Technorati, et. al. - are still pretty blunt instruments.
I can't tell whether I'm getting spammed or whether the Google bot has been hijacked, or is bing imitated. I've been getting trackbacks all day, on a limited number of posts, that all have something like "Good Information Good Information...", where the second one is a link to Yahoo. The puzzling thing is, by examining my logs, they are all coming from the Google bot - at IP address 66.249.72.104. Running traceroute verifies that the IP in question is from Google; so why the heck am I getting trackback spam that leaves a link to Yahoo from their bot? Very strange.
I get asked about Smalltalk exception handling from time to time, and - specifically - I get asked how it differs from what's done in Java. The primary difference is in how the context stack is handled. In Java, when you get to the handler code, the stack has been unwound and is just gone. Not so in Smalltalk - as a matter of fact, the stack is an argument held in the exception. Here's a simple example - I'll use the NetResources library to try and retrieve a non-existant url, and toss a breakpoint into the handler code so you can see what's going on. Here's the relevant code:
response := [client executeRequestDo: [:connection | client getNotifyingResponse: connection]] on: (self class httpExceptions, Error) do: [:ex | self behaviourForException: ex. nil].
We've wrapped the actual HTTP request in a handler that sends all exceptions to a method called #behaviorForException:. That's done so that we can respond appropriately based on the kind of exception that crops up. Here's that method:
behaviourForException: ex ex class = Security.SSLBadCertificate ifTrue: [Security.X509.X509Registry default addCertificate: ex parameter parameter]. (self class possibleTimeoutExceptions includes: ex class) ifTrue: [self updateCacheResponseCodeOnly. ^self class triggerTimeoutEvent: url]. (ex isResumable and: [self class exceptionsWeShouldResume includes: ex class] ) ifTrue: [ex resume] ifFalse: [self reportTheErrorType: ex]
See that part at the bottom that checks for resumable (and worth resuming) exceptions? If we get there, what will happen is simple - the system will return to the point where the exception got thrown, and simply proceed as if it hadn't happened. You might ask yourself, why would we want to do that? As it happens, there's code in the calling method to handle things like HTTP redirects and Authorization requests - so those exceptions are simply resumed. So anyway, a brief demonstration - here's a screen shot of an attempt to fetch a non-existant URL:

Now, here's an inspector on the exception:

And drilling down, the context itself:

All of which shows how it can be useful to have access to the full stack in a handler. resuming isn't the only thing you can do, either - you can have the exception return to the (original) caller with some default value, you can resend the exception (or another) - it's pretty wide open.
I'm posting this question to a couple of mailing lists as well - as you may know, we've been fixing up our OS X VM support for two reasons: first, the current VM is not as stable as we'd like, and second, Apple is switching to the x86 CPU. This question deals more with the PPC platform though: is 10.2.x level support important to you, or would having VW support 10.3 and up be sufficient? Thanks.
There's still plenty of time for Advance Registration for Smalltalk Solutions 2006 in Toronto - which is being sponsored by LinuxWorld/NetworkWorld this year. Sign up now, so you attend experience reports like mine, on building and maintaining a Smalltalk based web application server:
In 2002, James implemented a web log server in Cincom Smalltalk (VisualWorks) and has been posting to that blog, building a community of fellow Smalltalk bloggers, and enhancing the Smalltalk server. James will guide you through the process of building, maintaining, updating and scaling a Smalltalk web application server and show the ancillary areas of the technology XML, RSS, XML-RPC. He will show the ease of modifying a Smalltalk server in place, without taking it offline and the transition from single user to multi-user all without downtime.
See you in Toronto!
A few days ago, it was the Wiki. This morning, it was the blogs - there were a handful of spam comments across three of the blogs here when I got to the PC this morning. Cleaned up in a few minutes, but still an annoyance. I understand the spams that have links back to pharmaceutical products; what I really don't get are the ones that just have random keyboard entry. What's up with that?
HDBeat is reporting that the PS3 will be selling for around $600:
That's what a few French websites are reporting, apparently stated by Sony Europe boss George Fornay in a radio interview. That would convert to roughly $613 American dollars and make the PS3 the most expensive videogame console out by quite a bit. He apparently confirmed that the Playstation was delayed to work out Blu-ray copy protection issues (that we still haven't seen a final design for the controller, system or a finished game does not appear to have been a contributing factor), and that it should launch in the range of 499 to 599 euros. He justified the high price by saying it was cheap for a platform capable of reading Blu-ray discs.
That will be interesting to watch. For one thing, they'll be losing $200 to $300 on each console sale - and that's way more than Microsoft is losing per console (never mind that Nintendo is in the black on per console sales). Additionally, $600 gets above the level of "easy disposable" income spending - it gets into the "we'll have to talk about it" level of spending for families.
Take the GameCube, for instance - it started at $150, and now goes for $99. At either level, there are a lot of middle income people willing to buy on impulse at that level. At $600? That goes beyond impulse for most middle income folks, IMHO. It's going to be a tough launch, IMHO.
Well, I got taken in by the spam job on our Wiki yesterday. 15 or so pages were modified, and I didn't see anything when I eyeballed them - so I left them alone. As it happens, there was a ton of pharmaceutical spam buried in each modified page, using a hidden div. I hadn't noticed, but one my colleagues did and fixed things.
I have a script I use for mass restoration when this sort of thing comes up; I guess I should have used it. One more nasty trick to keep an eye out for...
There's still time for Advance Registration for Smalltalk Solutions 2006. There are lots of great talks - say you aren't that familiar with Smalltalk, and would like to know where it's being used, as well as how and why? Well, Martin McClure of Gemstone is covering just that:
What do people actually do with Smalltalk? This fast-paced survey with demonstrations visits uses of commercial, open-source, and research Smalltalk technologies in commerce, government, education, entertainment, and manufacturing. We'll see uses of Smalltalk large (hundreds of gigabytes) and small (less than 100K bytes), running on or embedded in a wide variety of hardware. The short demonstrations -- totaling more than half the seminar time --will include a virtual juggling system and the Seaside web application framework.
See you in Toronto!
"The Sopranos" may be fiction, but it sure sounds like Paulie is advising the thugs at the RIAA on tactics - in a settlement discussion with an RIAA goon, a college student relates the following:
But as much as I tried to argue that I was in as unique a situation as someone with medical expenses, there was no getting through. Bowie even had the audacity to say, “In fact, the RIAA has been known to suggest that students drop out of college or go to community college in order to be able to afford settlements.”
"That's a nice college education you got going there, kid. We wouldn't want anything to happen to it".
Have a look at this thread on tech.memeorandum - developers sure don't like it when the dread term "user" is applied to them. No, "users" are those poor saps who have to deal with the applications we throw over the fence. Having the shoe land on our feet makes it all different, somehow.
The New York Times got a little over-excited in their description of the "new world of software" offered by web componentry - take this, for instance:
Indeed, blocks of interchangeable software components are proliferating on the Web and developers are joining them together to create a potentially infinite array of useful new programs. This new software represents a marked departure from the inflexible, at times unwieldy, programs of the past, which were designed to run on individual computers.
Hmm - I've seen that promised before - in fact, every new buzzword fad that crosses the industry promises it. The initial hype surrounding Java, for instance, promised a world of interoperable Java components everywhere. What I really like is their quote from Tim Bray, followed by the Times reporter's description of XML:
"These tools are changing the basic core economics of software development," said Tim Bray, director of Web technologies at Sun Microsystems and one of the designers of a powerful set of Internet conventions known as Extensible Markup Language, or XML, which make it simple and efficient to exchange digital data over the Internet.
Angle brackets to the rescue, apparently. The main gushing is over services like S3, and the various Google applications and Yahoo applications that can be wired together using Http APIs. That's cool, sure - but you can't really base your company's future on the free implementation, because you'll end up at the mercy of whatever outages they have - I wrote about that the other day. There's also an over-abundance of confidence in a single business model - the online application that's supported by contextual ads:
Early examples of the trend were tiny companies with significant ideas, like the consumer Internet software start-ups Flickr, a Web-based photo-sharing site, and Del .icio.us, which makes it possible for Web surfers to categorize and share things they find on the Internet. Both were acquired last year by Yahoo.
That's all funded by things like Google's AdSense - and it seems to me that there's a major correction coming in that market, based on the burgeoning threat of click-fraud. Especially when the ultimate vendor seems to benefit from the fraud (not by propagating it, more as a side-effect). Eventually, the people buying ads are going to start wondering exactly what it is they are paying for. When that happens, the business model behind a lot of the free services out there are just going to implode.
Of course, no article like this is complete without some mention of how this new trend is going to save us all from offshoring:
Even more striking is the suggestion that a broad transformation of software development might reverse the trend of outsourcing to India, where highly skilled but low-paid programmers are plentiful.
Hmm - if this trend is leading to more easily funded startups, with people working out of their homes, then how exactly does that "reverse the trend"? If distance and location end up mattering less, then cost would be one of the leading factors in any funding decision, seems to me. Not so, say the experts:
"Transforming the economics of software development completely transforms the rationales for outsourcing," Michael Schrage, a Massachusetts Institute of Technology researcher, wrote in the current issue of CIO magazine.
Given the argument being advanced in this article, I don't see how. If I can hire people from anywhere, and they can build me a new application by mashing up pre-existing components using net APIs - why wouldn't I just go with the lowest cost provider of the programming expertise? Either Schrage hasn't thought that through, or the Times decided not to add his further thinking on the subject. As I read the article, that assertion makes no sense.
Ultimately, what puts the larger vendors at risk isn't the web, or Ajax, or software components - it's a couple of different things. In the case of Microsoft, it's simply their size, and the way they've been building software. By trying to bundle everything into Windows, they've created a huge, unmaintainable ball of mud that no one understands. Realistically, they need to do what Apple did with OS X - throw it all away and start over. I'm not sure that they have the intestinal fortitude to do that though, and they'll end up suffering for that.
Sun? Their problem is even simpler. By introducing Java a decade ago, they commoditized their entire market. Sun's business was built off selling proprietary hardware at profitable prices. What Java did was destroy most of the rationale for buying Sun hardware. Why buy from Sun when you can "deploy anywhere"? When Sun wonders why commodity intel boxes have overtaken them on the server side, they can have a look at the Java division for their answer.
As to IBM, they've adapted to the emerging software trends better than either MS or Sun. They had the disease that Microsoft is suffering from in the 80's, and they seem to have learned from that painful experience.
So is this a new world of software components that "changes everything"? I don't think so. During the 90's, Microsoft Windows was the OS on the vast majority of desktops, and they crreated a working component model - COM. A large set of components emerged that could be wired together by end developers building Windows applications. Which is to say, we've been here before.
Update: Dare Obasanjo has a much more concise summary of the article:
I've heard that it's hard to take newspapers seriously because when they write about things you are knowledgeable about they get it wrong. John Markoff does an excellent job of proving that old saw right.
About the size of it
Doc Searls got a photo of the same storm I blogged about last night. He used a real camera, so his photo is a lot more impressive.
Advance Registration for Smalltalk Solutions 2006 ends April 23rd - the day before the conference. There's a lot of great stuff this year, including the Toronto location with LinuxWorld/NetworkWorld. For instance, Giorgio Ferraris is talking about RAD in Smalltalk - using Cincom Smalltalk:
Smalltalk is an extremely productive environment, this presentation is about a framework for VisualWorks Smalltalk, that allows the development of standard data entry applications at a speed close to using a 4GL, but with an application strongly based over an object-oriented architecture, so, when the play will became hard... The talk is an updated and enhanced version of the one from Smalltalk Solutions 2005. Similar concepts have also been used in the development of Java and C# frameworks. The intended audience is developers and managers facing the day to day dilemma of building fast or building well. Experience in building business applications (in any language) is required.
See you in Toronto!
Financial Times has an article up about the HD-DVD vs. Blu-Ray war, and seems to be of the opinion that this war is a bad thing for consumers. I disagree - we have two potential paths here, and while Blu-Ray has some technical advantages, the HD-DVD format is going to be vastly cheaper in the near term. What consumers will get is an actual choice as to what they value more. Better than the industry deciding by fiat, IMHO.
My suspicion is that cost will win out in the short term, and that will end up driving the long term. Here's the relevant detail from the story:
And so, the war is on. Toshiba, which has recruited Microsoft and Intel to its camp, is in the middle of a 40-city US tour to promote its HD-DVD format and hopes to steal a march on the competition by shipping the first $499 players to retailers later this month.
Sony, meanwhile along with Philips and Pioneer persuaded Dell, the world’s biggest personal computer maker, and most of the Hollywood studios, to back the rival Blu-ray format it began developing more than a decade ago. Its players are expected to go on sale a few months after HD-DVD and will cost twice as much. Yet the Sony coalition believes its technology is superior. It is also hoping to secure a boost from the November launch of the PlayStation 3 video game console, which has been fitted to play Blu-ray discs and is expected to fly off the shelves.
Unless Sony and its partners can find a way to drop that price, I suspect that the 2X factor will be a killer. The fact that the Blu-Ray will ship in the PS3 won't matter so much IMHO - I seriously doubt that the PS3 will displace the stock DVD player from the stereo component stack. Next Christmas, when the real sales battle starts to pick up, prospective buyers will see one thing: the respective price tags. Technical superiority simply won't trump a 2X difference. If you disagree, step into the Wayback machine and ponder the mid-80's sales figures for plain old DOS IBM clones versus the Macintosh.
Now, I could be wrong - one of the critical backers Sony has (so far) is the movie industry. If the market has tons of Blu-Ray disks, and only a relative handful of HD-DVD disks, things might go the other way - even with the price differential. It will be interesting to watch this play out.
BitWorking demonstrates that RSS is not the only point where personal politics enter the syndication space; witness this post on Atom 0.3 vs. 1.0
This is very cool - Gabe Rivera, the guy behind memorandum, has started up a version of the tracker for baseball. There's already a tech tracker and a politics tracker - now there's one for baseball fans. I am so subscribed :)
I've been mostly ignoring the hype about the dangers of Avian flu, but I think I might start perking my ears up now that I've been reading "The Great Influenza: The Epic Story of the Deadliest Plague In History". It's a nice background on the run up to the epidemic - the situation of medical science in the US at the time (only just out of the dark ages), and the people who made it that way. That's followed by a description of the how the flu spread - it was greatly helped by the US mobilization for the war. The huge military cantonments that were built for new draftees were ideal breeding grounds.
The scary part of that pandemic was how many young people got killed. Normally, flu kills the weak - the very young, the very old, and those who have compromised immune systems. That one killed people in the prime of life, and the reasons are truly terrifying: apparently, the body's immune system went into overdrive against the virus, and killed the lungs as an unintended side effect. Not in a pleasant way, either - the descriptions sound reminiscent of the symptoms of Ebola.
In most respects, this book is scarier than any horror flick...
Patrick Logan is pleased that OOPSLA will be in Portland this year, and notes an interesting symposium on the day before the formal conference start:
The day before OOPSLA will be the Dynamic Languages Symposium.
Maybe OOPSLA is worth attending again.
Hmm - I don't like the look of this weather info for my area:

That's a severe T-Storm warning, and a Tornado watch. Swell :/
Update: A few minutes later, the sky went from daylight to this - and we even got a little hail.

Bryce Kampjes announces a Smalltalk party in London (UK), April 8:
We're holding a Smalltalk party in London on Saturday the 8th, this Saturday. Stephan Taylor will be talking about software process. The same Stephan Taylor that wrote "Pair Programming with the Users". Oli Bye will be demoing SqueakNOS, Smalltalk running as it's own OS. And I'll be talking about Exupery, a JIT for Squeak.
There are details here.
Rogers points out that the movie industry can be every bit as stupid as the music industry:
Six studios have begun selling movie downloads this week on Movielink . Purchased movies can be kept forever for computer viewing and burned to DVD but can't be watched in DVD players. There's also a limit on the number of computers that can view a movie, and the service and site require Internet Explorer and Windows Media Player.
Prices for new movies are higher than DVDs -- Nicolas Cage's The Weather Man sells for $27 on Movielink and $22 on Amazon.Com . So you're getting less convenience at more cost, though no one had to package, ship or stock the movie.
Hmm. I can pay extra for something that I can't watch on my HD capable, 51" TV? Or I can pay less and watch it there. I think the morons at Movielink need to look up the phrase "value proposition".
Update: Sheesh, I missed the best part. Not only is MovieLink Windows specific, it's IE specific. Here's the text you get in Firefox:
Sorry, but in order to enjoy the Movielink service you must use Internet Explorer 5.0 or higher, which supports certain technologies we utilize for downloading movies.
Click here to get the latest version of Internet Explorer. We do not support Mozilla or Netscape. We apologize for any inconvenience this may cause.
So it's a useless service that only runs in the least capable browser on the market. All that and you can't use your stock DVD player. Such a deal!
I will vote for whoever, Democrat or Republican, promises to get rid of Daylight Savings Time. In the alternative, I will vote for whoever implements my wife's plan whereby Fallback occurs on Monday morning at 8am and Spring Forward occurs on Friday afternoons at 4pm.
Heh.
It's the end of the sports drought for me - I've never followed basketball or hockey, so once football season wraps up, it's just dead until April. It's back to baseball though - the season is finally starting. If the Yankees pitching staff can hold up, they'll do fine - but that's a big if. When your ace is only two years younger than I am, it's not a positive sign, IMHO.
Smalltalk Solutions 2006 is coming up fast - the show starts in 3 weeks. There's still plenty of time to register - and don't forget to contact us about the STIC discount! Registrations gets you into all of the talks, both LW/NW and StS - including tutorials. For instance, Blaine's got an interesting sounding talk:
Smalltalk has a highly reflective and lively environment that can be used to augment traditional unit testing. It allows us to do things that are only dreamed about in other environments. We can easily question and interrogate code or any aspect of the system. It is not hard to implement tests to ensure code correctness, enforce metrics, and scrutinize resource allocations. You can be creative and take the stance of using tests to stop and minimize the cost of change. There is a large variety of characteristics that can be tested, from run-time correctness to code quality. This presentation will give real world concrete examples in Smalltalk.
See you in Toronto!
It's reassuring to know that Microsoft isn't the only company out to hose me off for not having the "correct" technology mix - the new hi-def DVD players are going to ship with the same kind of stupidity embedded: If you don't have the right cable, then you'll get a downgraded picture. So like PVP-OPM, you'll have:
These people can all go... somewhere. I see no reason to replace my perfectly good HD capable TV, and Hollywood's fantasy fears about piracy aren't convincing me. When you have a product that doesn't give me the finger, let me know.
I managed to pare my reading list down some while I was on the road - I finished three of the books I've been plowing through:
The first two are part of my continued history reading - the Wedgwood book is both deeply fascinating and deeply disturbing. If ever there was a time for the phrase "All it takes for evil to succeed is for good men to do nothing", it was that era in Central Europe. Throughout the petty kingdoms that then made up Germany, there were multiple possible paths to peace throughout the time of that war; none were ever taken, as there was always temporizing or possible princely advantage.
The second book was really interesting. Taken from contemporary Arab chronicles, it shows how the deeply split Arab world saw (and responded to) the crusades. The short answer is, they did not respond well, initially. The Islamic Empire had long since split up into multiple independent feifdoms, and many of them were at war when the Europeans first arrived. It's an eye opening account, especially if you've only ever seen the history from the Western side.
The third book was far lighter, but - ironically enough- I had more trouble getting into it. I first started reading it a year ago, and put it down. The story is actually quite interesting, but it's slow to develop. It picked up speed at the halfway point though, and I really liked the sections on the non-humans. There's some good commentary in the book on what can happen when you think the horizons are closed, and everything that can be discovered has been. In that sense, the book reminded me somewhat of "Infinity Beach", by Jack McDevitt.
Next up, I'm switching gears a bit - I've just received "Freakonomics", by Steven Levitt and Stephen Dubner. We'll see how that goes.
Having a child get into middle school is an excellent way to learn just how much you've forgotten. I taught math at the secondary level years ago, and yet - when my daughter came to me with some simple (7th grade) geometry problems, I discovered just how much had leached out of my brain over the years. Use or lose it applies pretty darn well to knowledge.
On the other hand, I have a tool at my disposal that past generations of parents didn't - the web and search engines.
How mad would you be if the power company turned off your power for several hours without warning, or if you woke up in the morning to find that you couldn’t take a shower? Pretty mad I imagine. I was just a little bit annoyed last night because my flickr backup wasn’t working. I couldn’t have retrieved anything from S3 if I had wanted to, but thankfully I didn’t need (or want) to.
What if I were building out a Carson -style startup using S3 for storage? That would have been 7 hours of downtime for my app too. Hopefully the beta testers weren’t too pissed off. Hopefully I wasn’t showing a demo of it to anyone.
This is why some of the hype over services like these are over-blown. You simply cannot build a business on a service over which you have no control. That control doesn't need to be physical, of course - lots of things are manufactured from parts that come from all over (just in time manufacturing). You think companies that build that way don't have service level agreements in place with their suppliers?
Ahh, the wages of being a complete jerk in public: Rogers Cadenhead has switched over to Atom. The various technical issues that cannot be resolved in RSS have been dealt with in Atom, and even erstwhile allies like Rogers have moved on. I've never updated my Atom feed here, but perhaps it's time to do so.
Still catching up, the logs for the last week. BottomFeeder downloads proceeded at a 266 per day clip; the details:
| Platform | BottomFeeder Downloads |
| Windows | 519 |
| Sources | 436 |
| Update | 391 |
| Linux x86 | 132 |
| Mac X | 126 |
| CE ARM | 91 |
| Mac 8/9 | 78 |
| Solaris | 29 |
| HPUX | 22 |
| AIX | 13 |
| Linux Sparc | 10 |
| Windows98/ME | 7 |
| Linux PPC | 5 |
| SGI | 2 |
| ADUX | 1 |
| CE x86 | 1 |
| Source Script | 1 |
On to the HTML Pages:
| Tool | Percentage of Accesses |
| Mozilla | 60.2% |
| Internet Explorer | 18.8% |
| MSN Bot | 1.3% |
| Everest/Vulcan | 3.8% |
| Other | 13.9% |
| Megite | 1% |
| Google Bot | 1% |
Looks a lot like the previous week. Finally, RSS tool accesses:
| Tool | Percentage of Accesses |
| Mozilla | 24% |
| BottomFeeder | 16.8% |
| Net News Wire | 9.7% |
| Other | 11%% |
| BlogLines | 7.9% |
| Safari RSS | 4.4% |
| MSN Bot | 4.3% |
| Internet Explorer | 4% |
| Google Feed Fetcher | 3% |
| RSS Bandit | 2.2% |
| NewsGator | 1.7% |
| Planet Smalltalk | 1.5% |
| Magpie | 1.4% |
| SharpReader | 1.1% |
| JetBrains | 1% |
| BlogSearch | 1% |
| Liferea | 1% |
| News Fire | 1% |
| Java | 1% |
| Feed Reader | 1% |
| Feed Demon | 1% |
That looks a lot like the previous week as well.
Time to catch up on my log posts, which I missed with the travel of the last week and a half. First up: BottomFeeder downloads from 2 weeks ago, which ran at a rate of 275 a day:
| Platform | BottomFeeder Downloads |
| Windows | 545 |
| Sources | 489 |
| Update | 290 |
| Linux x86 | 171 |
| Mac X | 111 |
| Mac 8/9 | 97 |
| CE ARM | 89 |
| Solaris | 36 |
| HPUX | 32 |
| Linux Sparc | 23 |
| AIX | 17 |
| Windows98/ME | 11 |
| Linux PPC | 8 |
| SGI | 3 |
| Source Script | 3 |
| ADUX | 2 |
| CE x86 | 2 |
Next: The weekly HTML page accesses:
| Tool | Percentage of Accesses |
| Mozilla | 67.7% |
| Internet Explorer | 17.1% |
| Everest/Vulcan | 4.2% |
| MSN Bot | 3.8% |
| Other | 3.6% |
| Google Bot | 2% |
| Megite | 1.6% |
I love one week anomalies like that sudden jump in Mozilla accesses. Anyway, on to the RSS tool accesses:
| Tool | Percentage of Accesses |
| Mozilla | 26.2% |
| BottomFeeder | 18.7% |
| Net News Wire | 8.9% |
| BlogLines | 7.9% |
| Other | 9.4% |
| Safari RSS | 4.8% |
| Internet Explorer | 3.6% |
| Google Feed Fetcher | 3% |
| RSS Bandit | 1.8% |
| NewsGator | 1.8% |
| Magpie | 1.6% |
| Planet Smalltalk | 1.6% |
| SharpReader | 1.5% |
| JetBrains | 1.1% |
| BlogSearch | 1.1% |
| MSN Bot | 1% |
| News Fire | 1% |
| Liferea | 1% |
| Java | 1% |
| FeedFlow | 1% |
| Everest/Vulcan | 1% |
| Feed Demon | 1% |
Still a lot of tool diversity there.