Why Smalltalk hasn't taken over
The secret is revealed here :)
If you've tried out the Minesweeper plugin for BottomFeeder, you may have had problems ranging from it not responding to locking Bf up completely. I've just diagnosed that issue; there's an update online now - for the under development 3.7 beta and for the in production 3.6. Enjoy
I'm catching up on my trade rag reading today, and I just ran across this article in eweek. The article details "reverse migrations" from Linux back to Windows. Now, I'm not saying that such migrations are silly; in many cases, they are probably sensible (I still don't think that Linux is ready for most desktop office users, for instance). However, one of the assertions in the article astonished me:
Combe was initially wary about its sites running on Linux, but it moved to offset that risk by making sure its provider contract had built-in service-level agreements. Case said he was surprised by how well the system worked, but Linux became an issue when Combe's Web applications needed a database, and the only option available to the company was one from Oracle Corp.
What? He hasn't heard of Sybase, DB/2, MySQL or PostgreSQL? As I said above, there are situations where using Linux instead of Windows may not make sense - but this most assuredly isn't a reasonable rationale. I'm kind of surprised that the author of the piece (Peter Galli of eweek) let that comment through unchallenged. The only major DBMS that isn't supported on Linux is SQLServer (for obvious reasons). I'm not sure I buy the TCO arguments either (current uptime of my XP box: 1 day, since the last Windows Update required a reboot. Current uptime of the Linux server running this blog: 314 days). Either way though, that db argument is deeply silly.
I've had qualms about the skills of reporters for quite some time now - the CBS memogate thing is an example of suspect reporting in politics, and this thing looks like suspect reporting in the tech world. Do reporters just not know how to do basic research? Have they even heard of Google? I mean, seriously:
Is it just too hard to spend a minute or two looking things up before letting a blatantly silly claim appear in a story? Heck, later in the same story comes this:
Three years ago, the resort implemented an e-commerce system that used Red Hat Inc. Linux, The Apache Software Foundation's Apache Web servers and MySQL AB's MySQL database; the system was programmed in PHP.
So, there is another db available for Linux, eh? I don't suppose that might have been useful to point out on page 1? It gets worse. The next "don't use Linux" argument came here:
Roy also had concerns about the security and reliability of the system. System failures and escalating costs had the resort reconsidering its Linux decision when, over a weekend in late-summer 2002, in the midst of its season-pass sale - accounting for the sale of about 5,000 passes, the system went down. The e-commerce component stopped working for about a day.
"There was a limit set up within the program that said you can only order 'x' amount of products within one transaction," Roy said. "When one of our guests went over the limit, it crashed the whole store. We then had to manually identify the erroneous credit card charges."
What, so now a programmer error is a flaw in Linux? Who wrote this story, the Microsoft marketing department? If I were Peter Galli, I'd be embarrassed to have my name associated with this slop - it's a 2 page wet kiss to Microsoft filled with shoddy assertions - and it somehow found its way into the News and Analysis section of the magazine! Sheesh.
In this post, I was stunned by the notion that an air traffic control system might be on win 95/98. Commenters pointed out this link, which indicates that the more likely explanation is this:
The elapsed time is stored as a DWORD value. Therefore, the time will wrap around to zero if the system is run continuously for 49.7 days.
This is just too amusing for words. A multi-hour shutdown caused by static typing, and the fact that many typing decisions in languages that require it end up being essentially random. Note to static typing advocates - had they used Smalltalk, this kind of problem would be impossible....
Looks like WebEx is trying to allow presentation operators to become little brother during a conference:
Web-conferencing leader WebEx is set to release a new service Monday tailored for sales professionals, including a tool to make sure that the client is paying attention during a remote presentation.
The "attention indicator" is built into the Sales Center version of WebEx's service, primarily used for presenting PowerPoint slides over the Internet in conjunction with an audio conference call. Start goofing off during a virtual sales call, and the presenter will know it and respond by spicing up the presentation, said Sanjay Dalal, director of market development for WebEx.
I'm not sure that I want that level of intrusion during a presentation, thanks.
I see that Larry O'Brien is using argument by assertion this month in SD Times:
I've previously talked about how explicit versus implicit typing is inserted too often into the entire debate over dynamic languages ( Ignoring the Scripts, Feb. 1, page 29). In an explicitly typed language, the programmer must state that foo is an integer before assigning foo the value 2; in an implicitly typed language, the programmer doesn't. I'm boggled that people argue that implicit typing is a slam-dunk productivity advantage.
Once a codebase gets beyond, say, a few thousand lines of code, you can no longer comprehend it in a top-down manner by reading over the entirety of the source and stepping through a few sample runs. Instead, you've got to dive into the middle, where you think your task is, and start putting together the program structure in your head. For jobs like that, which will become even more common as the corpus of sample and open-source code on the Internet grows, you need all the type information you can get.
I spent many years as a C programmer - yes, I know that the type system in C is far from perfect - but in this case, the example works, because O'Brien's take is that the magic type declarations help the developer make sense of the code. They really don't. If I'm looking at a large body of code, I'm looking for program structure - objects that do things, sets of objects that collaborate. The type declarations are completely meaningless in that regard - whether something is an int, a float (etc) doesn't tell me anything of real value - looking at the API of the object (does it have one? Did the developers actually create one? ) is far more meaningful
I've looked at large bodies of C code, C++ code, Java code, and Smalltalk code. By far the easiest to "grok" quickly is the Smalltalk code - because I can dive right in and see living objects. I once had to debug a socket communication issue between a Java app and a Smalltalk app. I was able to run through the Smalltalk code live, in a debugger (with real objects), and see what it was doing - which pointed me to the Java side of the equation. Over there, I quickly diagnosed the issue - for reasons I still can't fathom, they were sending 80 bytes of data (while expecting to send an entire XML file) and thinking it would work. Did the fact that the socket objects all had type declarations on them mean anything to me? Nope, didn't help a bit. For the most part, the extra verbosity got in the way (I know it's a socket for gosh sake, get the stupid words out of my face!).
But Visual Basic has been and can be an implicitly typed language, while the "dynamic language hacker" traces a genealogy that runs from LISP to Smalltalk to Python. What truly reshapes productivity in those programming systems (note, I didn't say "languages") is an interactive workspace. This has nothing to do with finger typing or compilation speed or debugging (or rather, it doesn't reduce to just these things). Even if you've never used any of these languages, you have undoubtedly used an interactive workspace with your database.
I suppose he never stopped to ponder why it is that dynamic languages tend to have such interactive tools, while static languages generally don't (yes, Eclipse has "edit and continue". No, it doesn't always work, and it's not nearly as flexible). Might be that the rigidity of the static side makes such tools a lot more expensive to build - which explains the dearth of them. O'Brien agrees that interactive tools help - he doesn't consider why they exist in dynamic land, and tend to be lame to non-existant in static land. He might want to spend a few minutes considering the implications.
It looks to me like the fine fellows at SCO are getting the future they so richly deserve - red ink and the possibility of being taken over.
Swimming in red ink from losses and decreasing revenue against the current of increasing legal expenses, The SCO Group Inc. in late August attempted to tread water by restructuring its legal costs and adopting measures to repel takeover attempts.
Meanwhile, Darl McBride is out there putting a happy face on all of it:
Despite the results, SCO CEO Darl McBride introduced the quarterly financial conference call by saying, "The quarter can best be described as one in which the company was firing on all cylinders."
Couldn't have happened to a nicer set of people...
My father sent me another interesting shot of the damage to the beach in his area. The shot below was taken before Jeanne rolled through; after that, the steps down to the beach were partially destroyed.

There are two things that hit me in that picture. See that driftwood mass? When I was there in June, that was a good thirty yards up from the water line. Also, it was nearly completely buried. That means that a lot of sand washed somewhere else. The other thing is that large dark area of the beach - there used to be dune over part of that - see how choppy it looks back by the sawgrass? Keep in mind, this is before Jeanne came through. Florida's been through a lot
I'll be giving two talks in November, both on BottomFeeder. I'll be speaking to the Ottawa STUG on November 3rd, and the Toronto STUG on November 4th. I'll be explaining what BottomFeeder is, and going into implementation details - including the recent work to integrate NetResources and WithStyle. The location for the Ottawa STUG meetings can be found here, on the STUG's website. The Toronto meeting's location is detailed here, on their website. See you there!
I get questions on a regular basis about "goodies" - how to submit them to Cincom so that they'll end up on the product CD in the goodies directory. We have a process for that, and it's documented here. The short answer:
It is possible to submit goodies for inclusion in the /goodies/other directory in VisualWorks releases.
This mechanism was created to allow goodie maintainers to be able to update their packages in an automated way. The idea is to provide goodie maintainers with all of the resources they need in order to ensure that the most recent versions of their packages are included in new builds of the VisualWorks product.If you have a goodie that you would like to submit (and maintain) using this process, you should send an email to vw-dev-owner@parcplace.net describing your package. Please make sure to include in this message the official name of the package, as this will be used to create your upload area. The vw-dev-owner will then:
- Create the directory ftp://ftp.cincomsmalltalk.com/pub/goodies/MyPackageName
- Notify you that you must be subscribed to the vw-dev-ann@parcplace.net mailing list (to receive weekly build announcements, notifications of "code freeze" dates, etc.)
- Notify you with your account information for logging in to the ftp server to perform uploads
The rest of the instructions are on the page I linked to above. It's pretty simple, and it allows us to automate the process
Remember that problem in the western US with air traffic about a month ago? TechWorld has a story on it, and the problem seems to be technology and process related:
The failure was ultimately down to a combination of human error and a design glitch in the Windows servers brought in over the past three years to replace the radio system's original Unix servers, according to the FAA.
The servers are timed to shut down after 49.7 days of use in order to prevent a data overload, a union official told the LA Times. To avoid this automatic shutdown, technicians are required to restart the system manually every 30 days. An improperly trained employee failed to reset the system, leading it to shut down without warning, the official said. Backup systems failed because of a software failure, according to a report in The New York Times.
I'm with Strongly Typed on one thing here - the above is just screaming for more information - what the heck is a "data overload"? Even so, I think we can see the outlines of the problem - using MS Windows for a critical service.
In an office environment, reboots may be a pain, but they can be done relatively easily (if a file server is unavailable for a few minutes at 2 am, few workers are going to care) - and if someone forgets to reboot said server and it crashes, it's likely to be more of an irritation than a life threatening problem. Not so in an air traffic control situation. What was the fallout from that?
The radio system shutdown, which lasted more than three hours, left 800 planes in the air without contact to air traffic control, and led to at least five cases where planes came too close to one another, according to comments by the Federal Aviation Administration reported in the LA Times and The New York Times. Air traffic controllers were reduced to using personal mobile phones to pass on warnings to controllers at other facilities, and watched close calls without being able to alert pilots, according to the LA Times report
That's a pretty high level of risk to assign to a system that is - according to the story - known to fail catastrophically on a known interval. Now, it's not like the server running this blog is a "critical" system - but I will point out that typing "uptime" at the console prompt yields an answer of 313 1/2 days (the last time that there was a power outage before IT installed a generator). You think maybe the FAA should have insisted on a system that didn't need the addition of a "reboot on a regular schedule" process? Here's the money quote:
Soon after installation, however, the FAA discovered that the system design could lead to a radio system shutdown, and put the maintenance procedure into place as a workaround, the LA Times said. The FAA reportedly said it has been working on a permanent fix but has only eliminated the problem in Seattle. The FAA is now planning to institute a second workaround - an alert that will warn controllers well before the software shuts down.
The shutdown is intended to keep the system from becoming overloaded with data and potentially giving controllers wrong information about flights, according to a software analyst cited by the LA Times.
Microsoft told Techworld it was aware of the reports but was not immediately able to comment.
I think I'd say "no comment" if I were in their shoes as well...
Update: I got a link to this MS article in the comments, pointing out that Win 95/98 systems may hang after 49.7 days (which happens to be the time interval given in the air traffic story). So.... are they really running an air traffic control system on 95/98? Seems too coincidental to me.
Debate? What debate? There's real news tonight! The Yankees clinched the AL East title for the 7th year in a row. It's time for the playoffs. If the pitching can settle down, I like their chances.
We've seen reports of VisualWorks crashing on 2.6.x (x86) kernels with a segmentation fault. I've just gotten a message from engineering that pinpoints the problem:
There's a kernel patch floating around that implements a kernel barrier to executing code at addresses that fall into the stack or data segments of the process. The intention is to provide a safety net for stack frame overflow attacks. The 2.6.8-1.521 kernel from FC2 uses this patch, as well as several others that muck around with the exec shield system. Since VW runs on FC2 using 2.6.7-1.494.2.2 which also contains the exec shield patch, I suspect that one of the suplementary patches is causing this problem.
This exec check can be globally disabled by executing the following as root:
#> echo 0 > /proc/sys/kernel/exec-shield
Now, we've also heard that the JVM has issues on the 2.6.x kernels; it's likely the same kind of problem. We'll have to address this in the future, but for now, try the suggestion above.
Just look what that bright boy over at Sun is up to now - he's trying to patent a pricing plan:
Sun Microsystems President Jonathan Schwartz, who speaks often of innovation in sales methods and not just technology, is seeking a patent on the company's per-employee software pricing plan, CNET News.com has learned.
Other co-authors of the unpublished patent application, filed in July, are Chief Marketing Officer Anil Gadre and Director of Worldwide Marketing Aisling MacRunnels. In addition, Schwartz is co-author of two other patent applications relating to Sun's three-dimensional Looking Glass user interface.
A pricing plan? Is he serious? Whatever (fairly small) amounts of respect I had for Sun and Schwartz went out the window when I read that. and it's weirder than I thought:
If the patents are granted, Sun will donate any money they generate to charities, Schwartz said.
So he wants to extort money from other companies for a non-original idea, and then give it away? Heck, that fits in with the rest of their business plan (i.e., shovel money anywhere but into their own coffers). He's like Robin Hood's idiot twin.
Hey look - RedHat bought (some of) the old Netscape Server tools. You have to figure that AOL just picked up a bunch of change they didn't expect to have - imagine the sales guy who landed this deal: "hey boss, you'll never guess what we managed to sell off":
RALEIGH, NC - Sept. 30 2004 -Red Hat, Inc. (Nasdaq: RHAT), the world's leading provider of open source solutions to the enterprise, today announced that it has entered into a definitive asset purchase agreement with America Online, Inc. to acquire certain assets of Netscape Security Solutions.
The products to be acquired are derived from the Netscape Enterprise Suite and include Netscape Directory Server and Netscape Certificate Management System. Red Hat plans to start marketing these products as part of its Open Source Architecture over the next 6 to 12 months. Customers will then benefit from enhanced security, manageability and office productivity as these technologies are optimized for devices and applications across the Open Source Architecture.
This is really old, not up to date technology - I'm astonished that anyone wanted it. I guess the only question is how soon Schwartz has one of his patented "insights" on the deal.
The idea that dynamic languages are the future is spreading:
Dynamic languages are high-level, dynamically typed open source languages. These languages, designed to solve the problems that programmers of all abilities face in building and integrating heterogeneous systems, have proven themselves both despite and thanks to their independence from corporate platform strategies, relying instead on grassroots development and support. Ideally suited to building loosely coupled systems that adapt to changing requirements, they form the foundation of myriad programming projects, from the birth of the web to tomorrow's challenges.
ObjectStudio® 7.0 Build 131 Evolutionary Version now available
The ObjectStudio 7.0 Build 131 Evolutionary Version is now available on a 90-day trial basis. This free download includes the latest changes that have been made since the release of ObjectStudio 6.9.1, and contains 31 bug fixes/enhancements. Please view the list below for summary descriptions for many of the issues that have been addressed.
Visit http://smalltalk.cincom.com/downloads/index.ssp?content=objectstudio to download.
Further testing may result in removing changes from the final release - this is an early access build
Update: Some of you may have had a problem installing this build; there was a bug in the installation that has been fixed. If you had problems, try downloading it now
The next release of Cincom Smalltalk is right around the corner - it should hit in November. What's new? Lots of interesting stuff. In ObjectStudio, we have a port of Opentalk, which allows for messaging between VW and ObjectStudio. This is useful because it allows ObjectStudio developers to take advantage of the features of VisualWorks - by creating a simple RPC interface between an existing ObjectStudio application and a VW application server. In this way, ObjectStudio developers can take advantage of the Web Toolkit, Web Services, and the raft of other server-side functionality in VisualWorks. VisualWorks has plenty of new stuff as well - a set of wizards for dealing with Web Services will be one of the most prominent. There have been updates to Store as well, and CE support will be promoted out of beta. To see the whole list of new stuff coming down the pike, visit the information page on our Wiki. We also have a roadmap of future development on the Wiki - that will be constantly updated to reflect market based changes/updates.
What's the easiest way to keep track of these updates? Grab a news aggregator (like BottomFeeder), and subscribe to the Wiki's RSS feed
CNet has a story on the problems with trying to ditch IE - too many sites cater specifically to IE:
For many people, using a non-Microsoft browser such as Firefox is now a must for secure Web surfing--but most still keep a copy of Internet Explorer around just in case.
The problem is that many Web developers create their sites so they work best with Internet Explorer (IE), but not to work as well with browser software used by relatively tiny groups of potential visitors.
This sort of thing can make it very hard to route around the damage that is IE. I run into this every time I need to get on the internal network here - in their infinite wisdom, the internal (or is that infernal?) IT group has made the entire intranet IE specific. Heck, if I forget and try to hit it with Firefox, it tells me that I'm using an unsupported browser and just stops. If I tell Opera to mimic IE and try that, I run into all sorts of IE specific tie ins - it's simpler to just give up and use IE.
This is a bigger problem than that though - I stumble across IE specific sites fairly frequently in my browsing. Heck, the Windows Update service from MS is the biggest culprit here. I have to run IE to patch Windows, and I have to patch Windows if I don't want to be 0wned by some teenager in west nowhere. sigh...
I just fixed an annoying bug that cropped up in BottomFeeder in the last release - the external browser setting not "sticking" after you set it. It turned out to be a state problem in the class that handles external browsing, and it cropped up when I split that class out of BottomFeeder and into a reusable package of its own. It's fixed now, so changes should 'stick'. Sorry about that!
Seriously, who wants one of these? If you spend so much time on the throne that you need a headrest and cup holders, then you have real problems...
SpaceShipOne successfully took off and landed today. This is akin to Lindbergh's flight back in 1927 - the really useful space work is about to start now that the private sector thinks there's money to be made. Here's to the future!

Joseph Pelrine has some interesting thoughts on sustainable development - he uses conditioning as a metaphor:
Training is divided into strength and conditioning. Strength training is at a higher intensity level (around 80% of the 1 rep mex, for fewer repetitions - normally 6-8), while conditioning is at a lower level (around 60% of the one-rep max, for more repetitions - normally 10-15). Training at lower levels is considered to be a waste of time, since the body is working neither in the aerobic nor anaerobic areas. Some of these ideas and principles may be applicable to the intensity level of a development team. In the worse case, they are interesting as System Metaphor. If the team's one-rep max is their maximum velocity, something between 60% and 80% of that would be a sustainable pace which would also be accepted by the customer. Through training, the one-rep max may (and hopefully should) be increased. Don't know how to apply this to development, though.
Well, there's no hard and fast rule - I think this is something like the line about art - "I don't know much about art, but I know what I like". You know sustainable pacing when you're doing it - likewise, you know a death march when you're in one. I've been on "you'll work 12 hours a day and like it" projects, and that's an attempt by management to push you to the 1 rep max on a daily basis. It doesn't work, and the results tend to be really sloppy. It's somewhat puzzling - management seems to understand that not "just anybody" can run a division, or a company. Why do so many of them think that developers are interchangeable parts?
BlogLines has published a web services API for things like synching and blogrolling - it's probably something I need to look at for BottomFeeder. I already support synching via HTTP (with another running instance of BottomFeeder) and via file import - but this would offload the problem. I'll be taking a look at the APIs and seeing what's necessary.
In most cases, damage from a storm (or earthquake, etc.) is remote - it happens "somewhere else", to people we don't know. As it happens, Frances and Jeanne both came very close to Melbourne Beach, FL, where my parents live. They live over on the ocean side, across the causeway on a barrier island. They still don't have power - but my dad managed to find an internet cafe and sent me this:

That's a shot of what's left of the stairs to the beach. In the background is a partially buried (old) uprooted tree - when I was on that beach in June, that tree was much further back from the water - and there was a much bigger set of dunes. The dunes that protect the island have been chopped down to just about nothing; if they get unlucky enough to get hit again, you could see new inlets over to the Indian River. This set of storms got my attention.
Update: - my parents got off easy. Have a look at this CNN story for an example of how bad some people got hit.
I'm not the only one who's wondering exactly what it is that Jonathan Schwartz has been smoking recently. Go read this Groklaw article - it echos a lot of what I've been posting on the subject. I like this in particular:
I have another suggestion. How about we start calling a patent covenant with Microsoft a patent covenant with Microsoft? When some noticed with concern Sun's "Limited Patent Covenent and Stand-Still Agreement" with Microsoft, filed by Sun as an exhibit with their most recent 10K, whereby Open Office was not protected from patent infringement lawsuits by Microsoft but Star Office was, Mr. Schwartz believes they are just anti-Sun loonies, as he graciously put it on his blog on September 16, in a message to the "Open Office Community":
"Please do not listen to the bizarro numbskull anti-Sun conspiracy theorists. They were lunatics then, they are lunatics now, they will always be lunatics. We love the open source community, we spawned from it. We'll protect that community, that innovation, and our place in it, with all our heart and energy. . . . OpenOffice matters. Moreso every day."
All right. If Exhibit 10.109 doesn't mean what it says, then what does it mean? One possibility is that it means that Sun doesn't want to be legally responsible for work it doesn't control. OK. Why not cover the parts they do and did control? Why not at least cover everything up to the present? And if they don't control it, how come they hold a dual copyright with the Open Office project? They can't have it both ways. If it's theirs, why didn't they protect it along with Star Office? And if it isn't theirs, on what basis do they claim copyright rights? These are not rhetorical questions.
Quick, someone get Schwartz his meds...
I've just slapped up another new development build of BottomFeeder - follow the download links and scroll down to the dev links. Things are looking better - I think it's going to be ready for release soon. There are a few known bugs that I need to iron out, but's getting there. This release will mark a big improvement in the tool.
Smalltalk Solutions 2005 information is up on the StS website - we will have hotel and registration information up soon. The conference will be in Orlando this year, from Monday June 27th to Wednesday June 29th. Bring the whole family next year!
Scoble says this like it's a good thing:
Keith Hurwitz and I tried a little test tonight. He sent me an email protected with our digital rights management (restricted rights built into Outlook). I wanted to see if Kunal's OutlookMT tool would post it. It didn't. Test succeeded!
Does it break copy/paste? Because if it doesn't, it's achieved nothing. If it does, then it'll end up being a true annoyance. There's another question as well - what if you send a DRM marked mail to someone like me who doesn't use Outlook? Does this mean that I simply won't get the mail, or does it mean that the DRM will leak off? You could argue that it's broken either way.
IMHO, this is exactly the wrong way to fight this battle. Tell people that stuff is confidential, and then apply consequences if they violate that trust. This smacks me the same way that "zero tolerance" policies in the schools do - it assumes that everyone is too stupid to use judgement, and instead imposes lame policies on the entire class. Color me entirely unimpressed...
Brian Bommarito is learning Smalltalk and blogging about it. Subscribe to his feed here, and welcome him onboard!
NBC is announcing that Jay Leno is stepping down after his current contract is up (2009) - and being replaced by Conan O'Brien.
Yahoo News picks up the JP Morgan Story
The banking giant used the Smalltalk development suite to develop its 'Kapital' financial risk management and pricing system.
"Smalltalk allowed us to develop Kapital much quicker than other languages would have," said Colin Lewis, vice president of JPMorgan.
"It provides good return on investment and saves costs associated with training and marketing for new products."
JPMorgan had estimated that to build Kapital in another language would have required at least three times the amount of resources to develop and maintain the application.
Lewis added that the Smalltalk part of its systems requires very little modification across differing operating systems - the bank uses Solaris, Windows NT and Linux.
"Portability and stability is a big issue for us," he said in a statement.
Smalltalk, explained its developer Cincom Systems, is based on 'pure' object-oriented techniques, and is easy for developers to use because it requires no in-depth knowledge of programming languages.
Lambda the Ultimate links to an interesting article discussing types, modules, and objects. take this, for instance:
Smalltalk-80 was an important and enlightening experiment in just how far object-orientation can be taken in a programming language. It is simple, compact, and shows a rare and refreshing integrity of concept. To accomplish its goals, it introduces the idea that the variables of a class can be either class variables or instance variables, and the methods can be either class methods or instance methods. This turns the class into a mixture of two fundamentally different concepts - type and module - with very different semantics. Smalltalk manages to do this relatively cleanly.
Unfortunately, two more recent languages, C++ and Java, have taken this same distinction and turned it into a gratuitous mess. Let's look just at these two languages for a moment, then come back to Smalltalk.
The author then goes on to demonstrate how the consistency of Smalltalk makes it simpler than the alternatives. I do have a quibble on one thing:
Smalltalk pays a high price elsewhere for taking object orientation to the extreme, notably in complete loss of static typing and serious runtime efficiency penalties. Special, one-instance forms of classes are, for many programming problems, not as good a conceptual match as modules. But at least it provides a single, consistent, and syntactically explicit call mechanism.
That's simply not the case. Smalltalk doesn't suffer from "serious runtime efficiency penalties" - arithmetic can be slower in Smalltalk (although it need not be - see the work done on StrongTalk, for instance) It's an interesting article either way
Via BobCongdon comes a link to a bloody version of smack the penguin. Watch him bounce and leave a trail of blood...
Thanks to Michael, we now have a cleaner browsing experience in the development versions of BottomFeeder. Michael integrated an interface to LibTidy, a nice library that cleans up nasty html. For now, you'll want to grab the rev of the library that's appropriate to your OS; when I package this all up, I'll bundle libraries for all the platforms I can. There are going to be a few missing - and I have no way to build a rev of the library for those platforms. The good news is, we still have support for parsing HTML in Smalltalk, just not as cleanly as LibTidy does - so it'll all work even if you don't have it installed
In the comments, Rich asks what LibTidy does. It's an "HTML Cleaner", more or less. It takes HTML as input, and outputs a cleaned up XHTML document - unclosed tags closed, etc. - which makes for far easier document handling. It's also a good example of reuse - instead of spending time writing such a thing in Smalltalk, I'm just using something that already exists.
It's interesting that I ran across this post on HTML Tidy - because it's quite possible that it will be part of BottomFeeder shortly. We are still testing it out, but things look positive.
Dare Obasanjo points out how some feeds follow the RSS specs (in so far as you can call them specs, but never mind) exactly - but end up creating a nightmare for aggregators and the users who use them. He points to a specific feed, and tells us exactly what's wrong with it - specifically, the issue of using the same link for multiple items (without a GUID being present):
Now how does the RSS aggregator tell whether the item with the title "I am item 1" is the same as the one named "I am item one" with a typo in the title fixed or a different one? The simple answer is that it can't. A naive hack is to look at the content of the
element to see if it is the same but what happens when a typo was fixed or some update to the content of the ? Every RSS aggregator has some sort of hack to deal with this problem. I describe them as hacks because there is no way that an aggregator can 100% accurately determine when items with the same link and no guid are the same item with content changed or different items. This means the behavior of different aggregators with feeds such as the Cafe con Leche RSS feed is extremely inconsistent.
This is the sort of thing that drives us aggregator authors nuts. Presumably, authors want their content to be read. Is there a reason that some of them have to make it so blasted hard?
I expect everyone in Florida is suffering from Hurricane fatigue - certainly my parents (currently holed up in an Orlando hotel) are - Frances and Jeanne both came very close to Melbourne Beach, where they live. I've been watching coverage of the storm on the various cable channels - a few minutes ago, MSNBC was showing video of damages to the Eae Gallie causeway. I've driven down that road many times; now there's a boat smashing up against the side of it and debris all over it - not to mention the flooding of the approaches. It's a little odd looking at damage to areas you know well. Here's hoping that Florida doesn't have any more of these to deal with this year.
Jonathan Schwartz has an interesting article up on grid computing - Sun sells a service based solution here, and it might fit some people's needs. It's not as simple as he makes out though:
So when we announced our $1/cpu/hour pricing for our N1 Grid (as opposed to the ever so slightly different ones everyone seems to be building), we knew we'd strike a chord. Why build and operate what Sun could deliver as a web service? Priced by the drink, no less.
So we're now engaged with a growing population of companies to talk about leveraging an "on demand grid" for their workloads. We're also engaged with a number of CIO's who've asked their teams to benchmark their internal compute grids against $1/cpu/hr. All in, all up, at least there's now a benchmark. If they buy from us, they can simply turn the bill over to their internal clients.
And if nothing else, we've now put a stake in the ground. If you're paying more than $1/cpu/hour, odds are you're overpaying (and possibly overbuilding - another customer told me utilization in their xSeries blade farm was below 10%!).
That's hardly the only issue. If I have a complex set of calculations to offload, then I rather suspect that performance issues are one of the things I need to worry about (on Wall Street, I happen to know that this is the case). In that event, a web services accessible grid may not cut it - the network is still a whole lot slower than the local cpu. It all depends on the job and bandwidth of course - the faster the network connection gets, the more easily possible this may be - it may turn out that Sun and Schwartz are actually on to something with this idea. We'll see how it turns out.
Another day, another hurricane strike for Florida. From the reporting, it looks like a lot of the residents are starting to get evacuation fatigue; i.e., they are planning to ride this one out. That's probably a mistake - it's a Category 3 now, and could get stronger yet. There's also the fact that the Dunes got lowered on a lot of the barrier islands by Frances.... this could be very dangerous. My folks are heading out again; everyone else should as well.
I think I underestimated the level of pain in New England after last night's game. Go over here to the Globe's coverage and see just how far into the Sox' heads the Yankees have gotten. Interestingly enough, last night's game was the 1918th game between the two team.... spooky :)
This post is an example of how a good RSS tool can help you find problems quickly. I have to give credit to feedster for this one - I use a feedster RSS search in BottomFeeder, and that's how I ran across Gary's problem. I have a search set up for the word "Smalltalk", and that's how I find things like Gary's post. If you're in a position like mine and you aren't using an aggregator and Feedster to track your product - you must be nuts.