I like the way Danny Ayers captioned the link to the CNet story on WinFS:
I'm getting closer to the 3.8 release of BottomFeeder. I just made a fix to a new thing I added in the dev stream. Some people on Linux were having problems with spawning an external browser, so I had added a setting to specify which shell to use (sh, csh, etc) - instead of defaulting to csh. I had neglected to specify the correct arguments for using sh - which meant that it didn't work (it wasn't reading one line and quitting). That's been addressed. I've been making modifications to the "search in BottomFeeder" feature as well - if you have text selected, the search tool will prompt with that text - otherwise it will use the current item title. I also added an option in that tool to search by feed title - if you have as many feeds as I do (293), sometimes it's easier to just do a search :)
Tom Carter, a computer consultant with Clover Link Systems of Los Angeles, said the application has a hard limit of 32,000 changes in a single month.
"This probably seemed like plenty to the designers, but when the storms hit last week, they caused many, many crew reassignments, and the value of 32,000 was exceeded," he said.
That piece of state had to have some kind of type assigned to it by the developer, who went ahead and assigned a supposedly safe one. Safe until it overflowed, that is. Now, at this point I'll get all the usual suspects who will point out that they should have use BigInts. And sure, that would have solved the problem - if they had thought of it. It's clear to me that they weren't going to think of it until they got slapped by it. Now, in some of your more modern software development systems, you are protected from this kind of problem - you simply can't get an overflow. Then there are the newer, less modern ones - like this and this, for example - where you can.
The more I hear about that tsunami, the worse it sounds. Whole villages swept away, many of the missing will never be accounted for. In the meantime, we can try and help the survivors - here's a link to the relevant Red Cross fund. My daughter wanted me to include a donation from her; she gave me the money she just got from the tooth fairy.
Daniel Brookshier has an interesting article on the many impediments to open source projects - for example:
If you look at the change logs of most successful open source projects, you will only see a few names and in many cases, just one name. The reason is that a small group or just an individual does all the work. The key reason is that volunteers are just plain hard to motivate. Motivation is hard! Back to herding cats, there is little that really motivates a cat that can be used to train it. People are really very similar to cats. Look at what open source participation offers: no cash, little recognition, and hard work. Not much more than a sense of accomplishment and many can get that from watching the 10th season of survivor. Where do volunteers come from? A lot of volunteers come to projects because they need something. They have a scratch that needs itching. Some are willing to contribute to make the changes they need. But this is a mixed blessing
There's a simple issue with most open source projects - money (or, the lack of it). Think about the really successful open source projects - one way or another, they have funding. Without funding, it's hard to find the time and motivation to pull a project through. It's one thing to "slap some code out" and quite another to keep after a project day in, day out. There's also a problem related to the above (and Daniel brings this up later in the article) - developers will tend to work only on things that bother them (personally). If you have a funded project (with bug reports coming in, etc) - there's some motivation to fix things that "aren't interesting" - like, say, the UI. Without funding, many things tend to get to - at best - about 80% done. At that point, all the interesting problems have been solved, and what's left is just boring detail. With funding, there's a way to get that boring stuff done. Without funding, it's really quite hard.
Slashdot is ready to give you something to fret over:
"It's not news at all that scientists predict an eventual "mega-tsunami" that will sweep across the Atlantic that will still be anything from 60 to 150 ft high when it hits the U.S. Eastern seaboard. This Old News, however, suddenly seems fresh. Like an asteroid hit, it could be millenia away, or tomorrow, that a volcano in the Canary Islands just off Africa drops half a trillion tons of rock into the Atlantic. A short description of the problem from BBC News and some more graphic descriptions (of up to 100 million dead) and shrewd commentary on the politics of warning from journalist Gwynne Dyer."
If you've sent me (or any other Cincomer, for that matter) email over the last two days, be aware that we haven't received it yet. Cincom takes the week between Christmas and New Year's off, and our IS guys are taking advantage of the downtime to upgrade the mail server. It went offline yesterday, and should be back up this evening at some point.
Mark Bernstein has been counting the number of posts he's made over the course of the year; I figured those numbers ought to be interesting for me as well. I was able to grab the answers easily with a small script ran on the server:
| all date02 date03 date04 all02 all03 all04| all := (BlogSaver named: 'blog') allBlogs. date02 := Timestamp readFrom: '1/1/02' readStream. date03 := Timestamp readFrom: '1/1/03' readStream. date04 := Timestamp readFrom: '1/1/04' readStream. all02 := all select: [:each | each timestamp >= date02 and: [each timestamp < date03]]. all03 := all select: [:each | each timestamp >= date03 and: [each timestamp < date04]]. all04 := all select: [:each | each timestamp >= date04]. Transcript show: '2002: ', all02 size printString; cr. Transcript show: '2003: ', all03 size printString; cr. Transcript show: '2004: ', all04 size printString; cr.
The answers I got surprised me a bit. It was 502 for 2002 (I started the blog mid-year that year). Then I hit 2248 for 2003 - and thus far, 1908 for this year. I have doubts about my ability to make 340 posts between now and the end of the year :)
The Smalltalk Industry Council has made available presentations from past Smalltalk Solutions] that can be found at http://www.stic.org/Smalltalk_Solutions/index.htm Only presentations from 2004 are currently available, but other years will soon follow.
Don't forget that you can still show your support for Smalltalk and join STIC at the low cost of $39.00. Take advantage of the many benefits your membership in STIC entitles you too.
- Receive a $75 discount for the next Smalltalk Solutions Conference
- Receive a discount to the ESUG Conference (price to be determined)
- Have your name listed on the STIC Web site.
- Post a link to your personal, non-commercial homepage on the individual membership list
- Be kept involved with STIC efforts to promote Smalltalk.
- Interact with the others in the Smalltalk Community
- Receive reports of STIC activities
- Opportunities to become involved in STIC planning.
Join STIC today by visiting http://www.stic.org/member/memberships.htm
Any questions or comments can be emailed to me at firstname.lastname@example.org
Look at all the links to Continuation based web apps gathered on Planet Lisp. Looks like a trend.
I found this in the esug mailing list:
There is now a local newsgroup hosted on news.totallyobjects.com especially for Ambrai Smalltalk.
It is comp.lang.smalltalk.ambrai. Point a newsreader at news.totallyobjects.com or for surrent users - refresh your list of groups. Please note that as this is a local list to our server it will not be available through google groups.
The Smalltalk Resource
I didn't expect a lot of intelligent analysis of this airline computer glitch, and I haven't been disappointed:
The cancellation of 1,100 Christmas Day flights by Comair because of computer troubles is prompting calls for more investments in backup systems and other technologies to prevent further groundings and damage to an already struggling industry.
The foul-up was hardly the first: A computer glitch grounded 40 Delta flights in May. A power failure created a computer problem that forced Northwest to cancel more than 120 flights in July. A worker keystroke error grounded or delayed some American and US Airways flights for several hours in August.
"Obviously, the airlines have become way too dependent on computers," said Terry Trippler, an airline industry expert in Minneapolis. "Imagine a computer glitch and all the Wal-Mart stores across the country shut down, (founder) Sam (Walton) would come out of his grave."
Too dependent on computers? What does she expect, huge binders with reservations and crew allocations as a backup? Good gosh, the issue isn't the dependency on software - it's almost certainly a lack of decent testing. The very first question that should be asked of the people who provide ComAir with software should be "Where's your testbed setup?" Anyone want to take bets on the variety of puzzled looks that would come of that question?
Proving that the Atom folks aren't the only ones willing to discuss how many angels can dance on the head of a pin, there's an argument on the RSS Aggregators mailing list over enclosures. Supposedly, the spec states that there can be only one enclosure per item. Interestingly enough, the spec is silent on this matter (although it implies that you can have multiple title/description elements - go figure). In the wild, people are already using multiple enclosures in single items - which means that the horse has already left the barn. As per usual, the argument is now devolving into a "but you should follow the spec" hand waving exercise.
I swear, I read a near future thriller recently that had robots like this being used by the super-spy heros. It's getting to the point where you can't turn around before some sci-fi aspect of fiction has popped up in the news...
Aircraft the size of bees that get the energy they need by feeding themselves a diet of dead flies could be buzzing around the battlefields and motorways of the future, thanks to research in southwest England.
The aircraft, up to 15cm long and equipped with sensors and cameras, could have a number of uses in civilian life and modern warfare, including reconnaissance missions, traffic monitoring or fire and rescue operations.
By "digesting" its own fuel, the aircraft could become autonomous and operate without the need for refuelling, changing batteries or recharging from the mains.
I can see the consumer angle on this one already - combine that with the Roomba, and you'll have something.
d2r wonders when Hollywood decided that physics were just so passé:
I guess what I'm wondering is: when did breaking the laws of physics became fun? The Matrix is one of the earliest of its kind, accounting for the little detail that, you know, it happened in a simulated reality (and they are responsible for bullet-time, at least in live-action, Anime is really were it comes from). Mission: Impossible pushed things a bit, but hey, it's Mission: Impossible. M:I2, though, was way over the top, and then things started to come off their tracks. Why is it that blockbusters seem to be resort to CG when the script ain't working, even if they aren't dealing with aliens or twisters or whatever?
I think you really do have to consider a lot of these flicks to be live action cartoons.
My sister seems to be adamant about getting me back to my older reading habits - first she got me interested in fantasy again by getting me started on the Wheel of Time books by Robert Jordan. Now, she's kick starting my old interest in sci-fi with the Well of Souls series. I haven't read a decent sci-fi yarn in years; I've been on an alternate history kick (and recently, a WWI history kick). The Chalker books remind me of the old (pre-bloat) Heinlein books - fast paced, light, but interesting. The first one is a quick read, and I've just gotten some of the follow ons for Christmas, so it looks like my reading schedule is pretty full. That's not even counting the Stephenson books from last Christmas that I haven't dug into yet, or all the new history books people got me this year. All that and a gamecube...
So if you play your new Gamecube non-stop, this User Friendly cartoon definitely applies. I'm going to acquire either a blister or a callous on my thumb, that's for sure...
It's a bad sign when your dishwasher starts to smoke. We had just finished running through the enormous pile of post-Christmas dishes, and I was out getting carry-out... my wife called to let me know that the dishwasher had taken up a smoking habit. We had noticed a burning plastic smell a couple of days ago, but had not been able to figure out what it was - at the time, we thought maybe we just had too many things plugged into to that circuit. Now it's clear - an expensive appliance was demanding more money. Sigh...
If you want to get some idea of the reaction to that mega quake the other day, then Sriram Krishnan is the guy to read. He's in Chennai, one of India's harder hit cities. This snippet tells you a lot:
If you want a sense of the scale of the disaster, you just have to look at this comment I saw from a BBC reporter this morning from some resort in Thailand - "This region has been relatively fortunate in that it has seen only around a thousand deaths". When people start saying that they're lucky 'coz only a 1000 people died, you know that things are bad.
I'm glad to hear that Sriram's family is ok.
Pick all three - Patrick Logan explains
Our initial intuition is that reliable systems must be specified up front, and since static type information is easy to specify up front, then this must be the foundation of reliable systems. Almost the opposite is the case. We do need up front specifications, but they should be simple expressions of small parts of the ultimate system. Those specifications should be in the form of tests and dynamic (and concurrent) models, and simple solutions that fail fast.
There's been some instability in recent BottomFeeder builds - it looks like most of that has been related to thread safety issues in the LibTidy interface and the SpellChecker interface. The latter wouldn't affect you unless you use TypeLess or the blog tool; the former could burn you, since we interface tp LibTidy on Windows and Linux to clean up inbound HTML for display. Updates are now up on the site, for both dev and non-dev paths - it should help. Tip of the hat to Michael for the fixes. Next up in dev - I'll be taking a look at the RegEx thing that Bob worked on
To wrap up my Christmas, I have some pictures. Here's a digital camera shot of "Christmas Town" - it's something we put up every year:
Then I've got two pictures my daughter did today:
Maybe I don't want a smart phone:
The malware, MetalGear.a, which masquerades as a Symbian version of the Metal Gear Solid game, disables antivirus programs and also installs a version of the Cabir worm identified earlier this year, according to SimWorks International, which issued an alert on Tuesday.
The Cabir worm, in turn, attempts to spread a second Trojan program, called SEXXXY, to nearby phones through the Bluetooth short-range wireless protocol.
Almost makes one pine for the bulky analog models of yore...
"I did not fall off the bridge the third time!" I expect to hear a lot of that with the Donkey Kong trail in the Mario Go Kart game.
In response to an email query, I've added an "Add Feed" button to the toolbar of BottomFeeder. I've also fixed the annoying ampersand in the tooltip help for the "Exit" button. Grab the dev update, restart, and have a Merry Christmas! If I get any spare moments, I'll be trying not to embarrass myself with the new GameCube...
Esmertec is pleased to announce today the release of its OSVM product for evaluation trials
OSVM is a new paradigm for embedded software development that enables increase in developer productivity and reduction in software development and system maintenance costs.
OSVM is real-time secure software platform for extremely memory constrained devices. It allows creating object-oriented applications and enables full serviceability, dynamic updates and maintenance in the field. This platform comes with a comprehensive integrated programming environment which supports efficient incremental development with instant integration of program changes in a dynamic iterative programming workflow.
The automatic memory management and the compactness of OSVM execution platform reduce the hardware costs of the system while increasing the security and reliability of the product. The high level of serviceability enabled by this dynamic and always-on software platform allows analysis, correction and transparent update of the software in the field. This improves field testing and reduces dramatically the maintenance costs of the system.
This release is now available for evaluation. If you are interested in trialing or knowing more about the product, please contact email@example.com.
Thanks and best regards,
CH 8600 Dübendorf
We had to have a mini-crisis for Christmas too. Last Thanksgiving, we had a flood in the basement. That was due to an over-full washing machine and my wife's attempt to get it to fill past where it wanted to - she succeeded too well, and it overflowed onto the floor all night. One shop-vac later, and we had it cleaned up. So this morning I came downstairs for coffee, and found the Christmas tree on it's side. Panic! Fortunately, we only lost one ornament (not one of the sentimental ones either), and somehow found all the ornament hooks. Absolutely amazing - we even managed to get the tree topper into a better location, and the lights look ok. Somehow, it all works out.
Merry Christmas, everyone!
Patrick Logan points to Ted Leung talking about generics in Java:
As I listened to the generics discussion, my mind was thinking something like this:
- Generics extends the amount of static type checking that you can do.
- Static typing checking is good because you make fewer mistakes.
- But wait, now you have to worry about wildcards and type bounds.
It seems that for average programmers this could be more work than writing the code itself. So now you can make a mistake in writing the specification (type) that is supposed to keep you from making a mistake. Doesn't sound like a bargain to me.
All that just to send a message you know is implemented in the set of possible recipients. In Smalltalk, we don't even need specific generic support - because we do that sort of thing naturally. The stiffly typed crowd tie their knots tighter and tighter, don't they.
If you use Smalltalk, you just put a halt right there in the SSP page - into the normal Smalltalk debugger you go. Over in ASP Land, it's a trifle more complicated than that. But hey, rebooting every few minutes probably aids your productivity, right?
Smalltalk, on the page: <% self halt. %>
or, over in ASP-Land:
Here's the drill. What I discovered yesterday while frustrated enough to physically throw my laptop out the nearest window.
- Start debugger.
- Wait until the process load starts, then HANGS.
- Open Task Manager.
- KILL aspnet_wp.exe.
- New aspnet_wp.exe starts.
- Process continues to load in debugger.
ICK! I had this problem while working at Paramount. I never did figure out the real fix for it. This will work for a couple of debugging sessions, then you get to reboot the machine.
And they call this the future... You could also ponder Seaside...
An interesting post appeared on the VSE (Visual Smalltalk Enterprise) mailing list recently; here's the description:
The original Visual Smalltalk dialect by Digitalk has survived ten years of proclaimed discontinuity. Paradoxically, the languishing commercial interest in this legitimate successor of the Smalltalk lore had a positive consequence: it protected the product from sophistication. After stripping out the over dimensioned Envy-like Enterprise development environment, and forgetting the PARTS that nobody seemed to use in real projects, we are left with a simple, powerful, compact and fast Smalltalk implementation. Even though Visual Smalltalk does certainly have a prominent history, it is neither perfect nor finished. As it is usually the case with every corpus of fruitful intellectual work, there are still many interesting details waiting to be completed. To begin with, there is one crucial problem in Visual Smalltalk: it has a bunch of hidden classes and methods that nobody has disclosed so far. This document is an attempt to repair that historical mistake. It explains how to recuperate all hidden classes and how to retrieve all missing Smalltalk source code.
The mail came from Leandro Caniglia; here's a link to the document he posted. It's a Word document, about 86k.
The ArcterJournal lets slip a great rant on the current state of IE, and where that leaves developers:
Lets be honest here. There won't be any new updates to IE for a very long time will there? It's been said so many times, the IE renderer supports a billion languages, versions, and testing it in the wiz-bang microsoft test facility takes years for a single change. Are the changes required to give proper standards support coming anytime soon? I really doubt it, and that makes me sad, because it causes more work for me, the people I work with, and makes our products not nearly as good as they could be. Hell, even saying "support only IE" won't work because writing code for IE 6 (windows) still varies greatly compared to IE 5.X (latest on OS/9 and OS/X). You guys almost did us a favor by not supporting IE on the Mac anymore, which would have meant we could write for IE6/Mozilla, which would have been a bit easier, but later reversed the decision and re-supported IE 5 on the Mac.
So I ask again, how is the IE team working to make sure their browser is the best?
There's also that helpful way they decided to stop supporting the old Netscape plugin API, and instead decided to invent a new Active/X based scheme - breaking a bunch of code and lowering security in one fell swoop. Sigh...
In a post on the value of TDD, Sean McGrath says this about dynamic languages on the stiff VMs:
Jython : Anybody coding in a statically compiled programming language that is not using a dynamically typed programming language for the tests, has missed a golden opportunity for a productivity leap. In the C world, CPython. In the .NET world, IronPython. In the Java world, Jython.
If your productivity goes up that much, why limit those languages to tests? Why not just ditch the stiff language altogether and get a leg up on your competition?