general
June 22, 2005 22:29:12.989
I'm already in Florida ahead of the 2005 Smalltalk Solutions show - spending a few days in Melbourne Beach, where my parents live. My daughter is enjoying a visit with her cousins, who live in Texas. We went out to the beach today - as you'll see in these pictures, it wasn't a great looking day today. Warm enough, and the water was nice (good surf too). Here's a shot looking north, up the beach:

That looks a lot different than it did last year. The dunes were a lot higher. Have a look at the other view, looking south:

Now, compare that to the post-hurricane shot that my parents sent me last year:

That driftwood was mostly buried before the hurricanes, and we used to use it as a towel rack. Now it's just gone. The sea bottom is different too - the drop off is closer to shore than it was last year. In general, you can really see the difference. Another thing I found interesting - lots and lots of the houses are still damaged (nearly a year later!). Have a look at these condos that are beachside, and part of my parent's neighborhood:

Apparently, only three of the units there are in use right now - you can't see it in the picture, but many of those units have been completely gutted. Finally, a happier picture - my daughter and her cousins going into the water with my brother in law:

Share
rss
June 22, 2005 13:50:36.057
BitWorking mentions the launch of the MicroFormats website, and asks a question about aggregators:
One question this raises is how does this markup survive a trip through an aggregator? I have done a little testing and found that Bloglines keeps class attributes intact. Are there exceptions? Do 'rel's pass through unmolested? What do other aggregators do?
Well, I certainly don't preserve the XML as it passes in BottomFeeder. As content is read and parsed, I create Feed and Item objects, and those are what get saved to disk. Keeping the original XML around would bulk up the save file size quite a bit, so I simply haven't seen a good reason for doing it. Unless the micro-content is in the description/content element, in which case it will still be present. What I ought to consider is some kind of user accessible extensibility system for defining things to look for...
Share
StS2005
June 22, 2005 9:30:41.055
Cincom is having a customer/partner get together on Tuesday evening at the Wyndham (Smalltalk Solutions) - if you are a Cincom Smalltalk developer, or interested in our products and services, come enjoy the barbecue! We'll have flyers announcing the event at the show - see you there!
Share
humor
June 22, 2005 9:24:46.223
Lambda the Ultimate points to an amusing contest using C:
Inspired by Daniel Horn's Obfuscated V contest in the fall of 2004, we hereby announce an annual contest to write innocent-looking C code implementing malicious behavior. In many ways this is the exact opposite of the Obfuscated C Code Contest: in this contest you must write code that is as readable, clear, innocent and straightforward as possible, and yet it must fail to perform at its apparent function. To be more specific, it should do something subtly evil.
Heh. Unlike a lot of C code out there, it shouldn't be unintentionally evil :)
Share
marketing
June 22, 2005 8:47:36.210
James Governor makes a small error in describing a putative Eclipse evangelist:
I can easily imagine a really excellent Eclipse RCP blog that was not written from a developer perspective, but that of an end user. So Ryan makes a great point but I would probably not be so binary. Authority and credibility comes in many different shapes and sizes. It increasingly comes from communities of interest, rather than "top down high church you shall obey" certifiers (Pace Michael Lewis and Stephen Johnson). High priest geeks are still high priests, and those are the folks we need to keep on their toes, regardless of the field of authority.
Eclipse's end users are developers, given the nature of Eclipse. IMHO, any non-developer evangelist for Eclipse would not be useful at the end user level - what information of use would they convey?
Share
BottomFeeder
June 21, 2005 22:18:39.047
Sometimes I forget just how many tools I've added onto BottomFeeder. Have a look at this post from this morning, for instance - where I went through a script I used to find feeds that had not been updated recently. I mentioned that after doing a few manually, I went ahead and wrote a script - to which Troy responded that I ought to have support in the tool itself.
Oddly enough, I did have such support (although there was a bug that could bite you on it, which I've just patched). Have a look at the System>>Feed Maintenance menu pick - it brings up a tool that looks like this:

It's a pretty simple tool - select the cutoff date, hit the button, and you get a list of feeds that haven't updated since the cutoff (by default, 60 days back, once you get the update). Select the feeds you want to delete, and then just remove them - boom, all gone. So Troy - the functionality is already there, I had just forgotten about it :)
Share
law
June 21, 2005 21:37:55.263
I love technologically incompetent people attempting to say useful things about the IT space - here's Judge Penfield Jackson (of the MS case that settled in 2001) waxing nostalgic:
"Windows is an operating system monopoly, and the company's business strategy was to leverage Windows to achieve a comparable dominion of all software markets," Jackson said. "Nothing has changed, to my observation, in the five years that have elapsed since my decision...Microsoft has won the browser war in the United States. Netscape Navigator, if it is still available at all, has only a small fraction of the browser market."
Hey Penfield - while IE still commands a huge market share, the leading edge has been adopting Firefox for quite some time now - and Safari (on Apple) is showing up more than you might think. The market responded while Jackson was blathering. And in case anyone is still wondering what he was really after, have a look at this:
Jackson, who is now an attorney at the Jackson and Campbell firm, used Tuesday's appearance to fire back at the appeals court. "When the reversal of my consent-decree case rulings on the contempt petition finally came down, it became apparent to me that I faced a very real prospect of reliving the 'trench warfare' experiences of my colleagues who had handled the AT&T and the IBM antitrust cases."
He wanted his shining moment in the sun. Instead, he got more than his 15 minutes. Thank goodness he's not on the bench anymore.
Share
smalltalk
June 21, 2005 15:54:58.010
I got this job notice from the ESUG mailing list - there's an
English and German description for the job, which is in
Switzerland:
netstyle.ch is looking for an experienced SMALLTALK DEVELOPER as
a project team leader
Your duties:
In the context of client projects your key task is to develop
demanding web applications with Smalltalk. Your assignment starts
with the conception and analysis of customer needs and ends with
the transfer of the application in the productive environment and
the following maintainance. In conjunction with a small team you
are responsible for the realisation of the projects. As a main
developer you are directly involved with the technical realisation.
You are managing the teams work and coordinate the realisation of
the project together with the project manager.
Your profile:
We are looking for candidates with wide experience in the area of
object-oriented applications in Smalltalk and the conception and
development of such applications. You have well-founded education
in computer science and several years of experience in managing and
realising challenging projects. Preferably you also have know-how
in the area of web applications. You may be characterised as highly
autonomous and love to work in a young and dynamic team. As the
leader of the project team you posess good communication skills.
You speak fluent English, preferably also German.
What we offer:
We offer you a chance to lead innovative projects in a small
ambitious company. Thanks to our openness for new and
unconventional approaches and open source technologies you have the
possibility to broaden you horizon continuously. An uncomplicated
work atmosphere with good personal relationsships within a small
team promote a pleasant work. Interested? Do not hesitate to
contact us!
Please send us your CV per e-mail or snail mail to:
netstyle.ch GmbH
Christoph Wysseier
Dählhölzliweg 18
CH-3005 Bern
Switzerland
info@netstyle.ch
GERMAN:
netstyle.ch sucht einen erfahrenen SMALLTALK ENTWICKLER als
Projektteam-Leiter Ihre Aufgaben: Im Rahmen von Kundenprojekten
entwickeln Sie anspruchsvolle Web- Applikationen mit Smalltalk. Ihr
Aufgabengebiet beginnt mit der Konzeption und Analyse der
Kundenbedürfnissen und endet mit dem Übergang der
Applikation in den produktiven Betrieb und der danach folgenden
Betreuung. In einem kleinen Team tragen Sie die Verantwortung
für die Umsetzung der Projekte und sind als Haupt-Entwickler
direkt an der technischen Realisation beteiligt. Sie leiten die
Arbeiten im Team und koordinieren die Entwicklung des Projektes
zusammen mit dem Projektleiter.
Ihr Profil:
Wir suchen einen erfahrenen Entwickler mit ausgezeichneten
Fähigkeiten im Bereich, Konzeption und Entwicklung von objekt-
orientierten Applikationen in Smalltalk. Sie verfügen
über eine fundierte Informatik-Ausbildung und Erfahrung bei
der Leitung und Realisation von anspruchsvollen Projekten.
Vorzugsweise verfügen Sie über Know-how im Umfeld von
Web-Applikationen. Sie zeichnen sich durch eine hohe
Selbstständigkeit aus und arbeiten gerne in einem jungen,
dynamischen Team. Als Leiter des Projektteams sind Sie eine
Persönlichkeit mit guten Kommunikationsfähigkeiten. Sie
beherrschen die englische Sprache schriftlich und mündlich;
Deutsch ist nicht zwingend erforderlich.
Was wir bieten:
Wir bieten Ihnen die Chance in einer kleinen, aufstrebenden Firma
innovative Projekte zu leiten. Dank unserer Offenheit für
neuartige und auch unkonventionelle Ansätze und open-source
Technologien haben Sie die Möglichkeit, Ihren Horizont stetig
zu erweitern. Ein unkompliziertes Arbeitsklima mit guten
persönlichen Beziehungen innerhalb eines kleinen Teams
erlauben ein angenehmes Arbeiten.
Haben wir Ihr Interesse geweckt? Dann zögern Sie nicht, mit
uns Kontakt aufzunehmen! Bitte senden Sie uns ihre
Bewerbungsunterlagen per E-Mail oder Post an:
netstyle.ch GmbH
Christoph Wysseier
Dählhölzliweg 18
CH-3005 Bern
Switzerland
info@netstyle.ch
Share
travel
June 21, 2005 13:52:35.658
My daughter and I arrived in Melbourne Beach a couple of hours ago - she's visiting her cousins and grandparents for a few days - I head off to Orlando for StS on Saturday. In the meantime, I'll be spending some time on the beach. Ahh, relaxation....
Share
marketing
June 21, 2005 12:24:26.252
Ryan Lowe makes a great point in the course of noticing that the Eclipse foundation is trying to hire an Eclipse evangelist:
Not only would a project give the evangelist invaluable experience with the Eclipse platform and something to blog about but it would also help them sympathize with developers, the exact people they are evangelizing to. It would put the evangelist on equal footing with other developers -- the evangelist wouldn't just be some suit telling me to use a platform because of x,y and z.
Exactly. An evangelist who isn't living on the platform just isn't credible - how can he (or she) possibly empathize with real users and their problems? I can tell you from experience - I spent many years as a sales engineer, doing demos, writing examples - and while it was useful, it never really gave me the same experience that our customers have. Over the last few years as the Product Manager, I've written (and deployed) some real applications - both client and server. It's given me a much better perspective on the highs and lows of the Cincom Smalltalk platform - one I don't think I could have acquired any other way.
Share
general
June 21, 2005 12:16:04.658
Being offline does give me time to do something I need to do -
"spring cleaning" on my feeds. I've crept up over 300 feeds again,
and that seems to be my personal overload point. So here I am at
30,000 feet, deleting feeds. I have a pretty simple methodology for
this - as a first pass, I just blow away anything that hasn't
updated in the last 2 months. I suppose I ought to enable the Bf
feature that tracks that and disables feeds in that state, but
there it is :)
Of course, I ddidn't want to do that by hand, so I wrote a
script in the workspace BottomFeeder
provides:
| ts |
ts := Timestamp readFrom: ('5/1/05' readStream).
RSSFeedManager default getAllMyFeeds select:
[:each | | all |
all := each allItems.
first := (all notNil and: [all notEmpty])
ifTrue: [all first]
ifFalse: [nil].
shouldUse := first notNil
ifTrue: [first pubDateString < ts]
ifFalse: [true].
shouldUse]
It's a simple selection script, and it returned an inspector. With that, I could just walk through the list of feeds, and send the appropriate message to the UI when I wanted to delete one. Much nicer than walking through it manually. I suppose I ought to add this sort of "find the unupdated stuff" thing as a standard feed search. The end result? Back down to 286 feeds, which feels much more manageable to me :)
Share
travel
June 21, 2005 12:15:53.171
I should really know better than to book a flight this early in the morning. As I write this, it's just after 6 am - and I'm sleepy. It's a short hop to Charlotte NC, followed by a wait, followed by my flight to Orlando. I suppose I should be happy that I'll have a full day in Florida, but I'll probably want to sleep most of it away :)
Share
law
June 20, 2005 21:17:18.535
Here's a great
story outlining the utter absurdity of the DMCA, and it even includes a typically asinine statement from Jack Valenti. An Intel exec was at a technology/law kind of meeting, and laid this out:
“I used a program to copy a few seconds from the DVD of
the movie Rudy,” he said. “It’s the scene showing
the final game of the Notre Dame season with Rudy’s family in
the stands cheering wildly when he got to play. I then spliced in
some snippets of pro players doing a touchdown dance from NFL
Films, and I overlaid it with audio from ‘Who Let the Dogs
Out?’
"I stitched this all together with video of my son, and it
turned out to be the piece of home video that gets watched the most
in our house. When relatives or members of the football team come
over, we pop it in and we just laugh. The added scenes and music
really bring it all to life.”
There was just one problem. “It turns out to do this, I
violated the DMCA. I used the DeCSS program to circumvent the
encryption and access the movie clips on the DVD that I own,”
Whiteside told the aides. “The end product is a DVD that I
don’t sell or distribute but is considered a derivative work
under copyright law.”
And cue the idiotic statement from Jack Valenti:
To their credit, none of the congressional aides flipped open their cell phones to call the attorney general. (When I described Whiteside’s home movie to Jack Valenti, he said, “He’s committing a violation of federal law.”)
Gee Jack, what's he doing wrong here? Is fair use that hard a concept for you? I guess so, since you insisted on pointing out the illegality, without noticing how stupid it makes you look.
The Intel exec has the right idea:
“This is precisely the kind of exciting consumer creativity that should be enabled,” he said. “I don’t claim to have all the answers. Should I have to go clear rights to use ten seconds from Rudy in my son’s video, or does it fall under fair use? Should I have to pay pennies for every second of a snippet? I don’t know. But I do know that we have to figure out a way for consumers to do something creative without breaking the law.
The MPAA has an easy answer, and it's the one they use for comedic effect in the Capital One ads - the answer is "NO", without regard to what the question is.
Share
security
June 20, 2005 21:02:44.312
Frank Hayes spots a security violation that's going to cost the University of Kansas some heartache - and probably some money:
That banging sound is my head against the top of my desk. The Associated Press is reporting that 119 University of Kansas students were notified by e-mail that their financial aid was in jeopardy because they had failed classes. Unfortunately, all 119 notices were sent in a single message that included 119 e-mail addresses in either the to: or the cc: line.
I suspect that many of these students won't need financial aid after the settlements are done. I also suspect that some heads are going to roll in the IT department...
Share
travel
June 20, 2005 20:58:23.599
I'm not sure what possessed me, but I arranged a flight to Florida for 5:30 am tomorrow. I'm taking my daughter down to visit her grandparents and cousins, and staying through Smalltalk Solutions. Tomorrow promises to be a bleary eyed day...
Share
humor
June 20, 2005 20:50:15.042
Share
blog
June 20, 2005 20:33:37.481
Tim Bray explains why he would like to see a basic blog tool that was hacked in Java patched up:
Henry Story has been struggling mightily to turn Bloged from a weekend hack into a real blogging tool, because near as I can tell, there isn’t such a thing that’s in Java and works about the same everywhere
Well, it's not in Java, but it does work about the same everywhere - the BottomLine posting tool that comes with BottomFeeder. It's written in VW Smalltalk, so it's instantly portable to a very wide array of platforms. WYSIWYG editing, of course.
A side note - since it's not in Java, I haven't had to "struggle mightily". Too bad for Henry, I suppose...
And here's a screen shot
Share
itNews
June 20, 2005 18:06:28.137
James Gosling demonstrates a lack of awareness of how servers work:
The problem ended up being with the metaweblog API and its realization in Roller: while Roller allows the publication date to be set manually through a web page, there's no access to that through metaweblog. Which leads to all the thrashing about other blog APIs, like Atom. I'm so looking forward to something that works...
In any reasonable server, the publish time has nothing to do with the posting API - the server assigns the time stamp based on when you push the post to a published state. Atom adds some ancillary meta data around that - specifically, a "modified" attribute that's supposed to allow you to differentiate the original publish time from some later edit time. [This is what he's on about above, which makes the next lines unnecessarily harsh on my part - I'll leave it here though, rather than try and airbrush my original post...] Is Gosling completely clueless, or just unable to write clearly? There are problems with the MetaWebLog API (specifically, passwords are sent in the clear. Yes, one could use https to deal with that issue) - but they have nothing to do with the publish time of a post....
Update again: The problem is the "writing clearly" part. He's migrating old content to a new server. Since he works at Sun, and the Roller guy works at Sun, you would think that they could have worked out some kind of import scheme. That's what I should have said...
Update: Apparently, easy to find permalinks and correct links in the RSS file are over his head too. I've updated the link in the post above after noticing that the original wandered off to a test server (at least, it looks like one....). I then had to hunt for the permalink, since putting it near the post would apparently be obvious or something. Sheesh.
Share
itNews
June 20, 2005 14:03:50.613
So what's wrong with Remote Assistance? Who knows, but apparently, MS support isn't allowed to use it:
Bright and early Saturday morning, the reader called the Windows support number. "I was glad that at least my case ID was still there, but I still had to confirm every detail one more time," the reader wrote. "The Windows support tech I talked with sent me an e-mail with three links -- one to download an installer cleanup utility, and others to install .NET framework and upgrade it. He was very good and we were done in ten minutes. Then I asked him two questions. How come this procedure is not in the knowledge base articles? He developed it himself, he said. Since I had problems copying and pasting URLs from multiple lines in his email message, why does he not use Remote Assistance? Because Microsoft does not let them."
That's just.... interesting.
Share
smalltalk
June 20, 2005 11:34:33.196
Share
humor
June 20, 2005 11:18:59.664
Share
StS2005
June 20, 2005 11:16:48.615
In a comment to this post, Wilkes Joiner asks if StS presentations will be posted. The presentations should be up shortly after the show - in addition, I'll have notes for all of the talks I attend, and I expect that other people will have similar notes that will get posted. Check here during the show for updates, and - for a back channel look - hop on the Smalltalk IRC channel.
Share
smalltalk
June 20, 2005 10:29:23.634
Torsten points to a derivative of Little Smalltalk called Parla - you can grab it here. It's a tiny little thing (64k VM!) that will give you an introduction to how Smalltalk (and similar systems) work.
Share
smalltalk
June 20, 2005 10:06:50.772
Share
general
June 20, 2005 0:21:50.167
So I have a new wire from the cable box, a new cable modem, and a new router. And still, I'm playing the old "unplug, replug" game with the hardware. Joy.
Share
logs
June 19, 2005 11:30:55.587
Time for my weekly look at the log files. First up - the weekly BottomFeeder downloads. Volume is holding steady in the low 300s (around 320 per day last week):
| Platform | BottomFeeder Downloads |
| Windows | 565 |
| HPUX | 441 |
| Mac 8/9 | 342 |
| Sources | 253 |
| Linux x86 | 208 |
| Mac X | 173 |
| CE ARM | 97 |
| Update | 62 |
| Solaris | 25 |
| Windows98/ME | 21 |
| Linux Sparc | 19 |
| AIX | 18 |
| Linux PPC | 6 |
| SGI | 5 |
| ADUX | 5 |
| CE x86 | 2 |
| Source Script | 2 |
Those download numbers aren't much different than they have been - but again, you can see the value in having a seamless cross platform tool - there's a lot of interest from platforms that aren't well served by other tools. I'm relieved to see the Win98/ME numbers dropping - maybe that means less overall use and a pattern of upgrading to newer releases of Windows? One can always hope :) Now I'll have a look at the accesses to the blog pages on a per-tool basis:
| Tool | Percentage of Accesses |
| Mozilla | 55.3% |
| Internet Explorer | 31.6% |
| Other | 6.7% |
| Google Bot | 3.7% |
| MSN Bot | 1.7% |
| BottomFeeder | 1% |
That's access to the html blog pages by tool - it's pretty clear that my readership is skewed over towards Mozilla based (likely Firefox) tools. Finally, let's have a look at the tool accesses to the RSS feeds:
| Tool | Percentage of Accesses |
| Mozilla | 22.8% |
| BottomFeeder | 18.8% |
| Net News Wire | 14.4% |
| Other | 7.4% |
| Safari RSS | 4% |
| NewsGator | 3.9% |
| BlogLines | 3.4% |
| Java | 3.1% |
| SharpReader | 3% |
| BlogSearch | 2.9% |
| Lilina | 2% |
| Planet Smalltalk | 1.8% |
| Liferea | 1.8% |
| MSN Bot | 1.5% |
| Feed Demon | 1.4% |
| Internet Explorer | 1.3% |
| Feed Reader | 1.2% |
| Feed Tagger | 1.1% |
| RSS Bandit | 1% |
| Opera | 1% |
| Python | 1% |
| Google Bot | 1% |
| Jakarta | 1% |
| JetBrains | 1% |
You can see that I've broken "other" down a bit more - there's more variety in the reader space than I had been tracking. It still looks like I'm getting a disproportionate number of Mac users, which is interesting.
Share
marketing
June 18, 2005 18:14:39.143
For someone in my position (Product Management), a news aggregator is more than interesting - its an absolute necessity. For instance - the only reason I found a reference to a BitWise Magazine article on Smalltalk is a BlogPulse RSS search for references to "Cincom Smalltalk". I have similar searches set up using Feedster, PubSub, and Google. I track references to VisualWorks, ObjectStudio, Smalltalk, "Cincom Smalltalk", and our Smalltalk competition. I also look for references to myself and to BottomFeeder.
There's simply no way that I'd have the time or patience to follow that many bookmarks in a browser. It doesn't catch everything, to be sure - there's no substitute for communicating with your customers and prospects. But it's a highly useful piece of the puzzle.
Share
security
June 18, 2005 12:09:51.213
My daughter is going to a pool party today, and I get the fun of fixing up the parent's hacked computer. Who knows what I'll find when I get there, but I'm sure it will take awhile to clear out. Ahh, the joys of unattended IE use, old, unpatched versions of Outlook, and no firewalls...
Share
development
June 18, 2005 0:50:42.281
Dermot Hogan thinks that OOP is the problem rather than the solution:
There is no silver bullet: Object Oriented Programming has failed.
What? But surely the world and its dog Microsoft and Sun, naturally are object-oriented … C# (which some cynics would argue is little more than a Java clone) and even Visual Basic (God help us all!) are class based. Well, so they might be, but in the twenty or so years since object-oriented programming emerged from the universities, there is not one single documented, cast-iron, nailed-to-the-ground, proven case study that OOP works.
Here's a tip Dermot - we haven't found anything that works that well yet - the various non-OO systems out there haven't exactly covered themselves in glory either. Well heck, none of this is a huge surprise. The people doing development in Java and C# now - for the most part - never actually learned OO. They were C programmers who picked up a C++ compiler, and then went with the syntax flow. Along the way, their OO knowledge hasn't really grown any.
That's the basis of an awful lot of development projects, and it's a reason (hardly the only one) why many fail. Sure, Smalltalk projects fail too - I'm not about to claim that Smalltalk is a magic wand that will wipe away all your problems. However, it is simpler, cleaner, and easier to develop with. Which means that at least one of the layers of complexity in software development is lost when you use Smalltalk. In any case, back to the article - here's Dermot's great example of OO's failure:
For example, there’s a little thing in the banking world called “reconciliation”. It means tracking down and fixing the host of small errors introduced by the users of the system - people, in other words. Now just try to find a real person in an OOP design. Hmmm - difficult. Anyway, reconciliation fundamentally requires cross-referencing, cross-checking and often painstaking detective work. At the bottom, this requires looking inside what is going on which is directly contradictory to the whole idea of OOP.
None of the designers working on the class library thought of this, of course. Reconciliation? That’s what clerks do! Of course, the great OOP banking system was delayed - and delayed. Delayed because nobody who had the misfortune to use the class library could work out what the hell it was doing. I don’t know the end of the story, whether the great OOP banking system was ever built, or whether it joined the 70 percent or so of failed IT projects. Somewhat disillusioned, I left for pastures new.
Sigh. It would be nice if he identified the actual problem here. This issue has nothing to do with OO, or procedural, or functional (etc.) development. It has to do with non-interaction with actual users of the system. You know, that real world customer thing that the agile folks like to talk about. I'd bet good money that the designers of Dermot's system walled themselves off and designed this thing in glorious isolation - and were then stunned when they discovered all the hidden use cases (like reconciliation). Surprise! Not dealing with actual users has consequences. If Dermot fails to realize that, then woe betide the next system that he works on, because it will fail for the same reason, and he'll be utterly stunned.
Next, we find that Dermot has an eye for the obvious:
What I’d done was to modify the behaviour of a base class. And this behaviour had then propagated with effortless ease through the whole damned system. But, with financial systems, this is a no-no. In a typical financial system, all responsible users have to sign off on a change before it goes live. After all this is real money we’re taking about here. Especially if it’s the bank’s own. With this particular system, that sign-off involved users in most of the capitals of Europe!
The point is that when you modify a base class, you potentially change the entire derived class functionality. So, you have to re-test all of the down-stream bits of the system. While you can easily find the ancestor of an object, it’s not so easy to find the descendants. It’s even less easy (to err on the side of understatement) to find the users of the descendant systems and get them to re-test, especially if the bug didn’t directly affect them in the first place. Eventually, I had to put the bug back into the base class and override the troublesome code in the one derived class that was the cause of the problem.
I guess the concept of a change request in a mission critical system is an utter mystery to Dermot. Heck, a lot of things are an utter mystery to him. Say his system had been fully procedural, and lots of components relied on a few shared libraries. Now, say you changed the behavior of one or more of those libraries. Wow! We have the exact same problem, and there aren't any objects in the vicinity! Perhaps the problem isn't OO, and it's instead a matter of process. Too bad Dermot isn't capable of seeing that, and instead wants to find something other than his own limitations to blame. See, here's the final kicker:
So what’s the silver bullet then? That’s the point there isn’t one, and there never will be. To understand that, just dump all your books on OO methodologies and read “The Mythical Man Month” by Frederick P. Brooks. More of Fred Brooks next month. OOP is snake-oil.
If he'd actually understood any of what Brooks wrote, this op-ed piece wouldn't have happened. OOP isn't snake oil; it's one possible solution to the software development puzzle. Simplicity and consistency help a lot (which is where I think Smalltalk comes in), but hey - I don't think anything will help Dermot's development problems. He needs to go back to basics, and figure out stuff like use cases, listening to end users, that sort of thing. Until he figures that out, it really doesn't matter what he uses.
Share
open source
June 17, 2005 18:43:33.706
Mark Bernstein receives evidence that IBM is, in fact, using Open Source as a cudgel to beat small firms with:
Last time I looked, IBM had pretty much bet their farm on open source.
Bizarrely, they just emailed Eastgate (and, doubtless, lots of other vendors) with a demand that we certify that we don't use any open source software. If we do use any open source software, they want a pile of paperwork for each one. The email threatens that firms that don't comply will be dropped from the approved license database.
You'd think IBM would want to encourage people to use systems from companies like, well, IBM.
They do... so long as that includes the use of expensive systems like WebSphere and the army of consultants that comes with it.
Share
open source
June 17, 2005 12:58:07.767
Rafe Colburn tries to pass off a real danger as "move along, nothing to see here" thing:
Basically there are two kinds of software out there. Software that's too big to die, and software that isn't. If the software is too big to die, then it doesn't matter whether it's open source or not. If MySQL AB were to shut its doors tomorrow, the MySQL database would be just fine. Companies like Google and Yahoo rely on it, it's provided by hundreds of hosting providers, and it's mature. It's no more likely to suddenly go unmaintained than Microsoft SQL Server or Oracle.
That's true to an extent - even users of IDMS still have a home, for instance. Having a home doesn't mean that support will be cheap though. Quite the contrary - moribund legacy-ware is usually a very expensive proposition. The danger isn't that support would dry up - rather, it's that it would suddenly get very, very expensive, and possibly hard to get.
Share
itNews
June 17, 2005 12:40:55.221
Here's a chance to get some recognition for a Smalltalk application near you - write up a short essay on your favorite app, and why you like it:
About The Contest: How do you win? It's easy.
- Read our editors' essays. This week, ten TechWeb editors have written their hearts out to convince you that their favorite software applications are the best there are. Read them — because they're clever; because you'll learn about some really fantastic tech; because they'll clue you in on the type of essays we're looking for; and because, well, we've worked hard on these!
- Write 200 to 500 words about some software you're nuts about. Impress us with your erudition, make us laugh, dazzle us with your well-reasoned arguments, do something to make us sit up and take notice. Remember, in our contest -- as in life -- style counts. Write as often as you like -- but each entry has to be about a different product, technology, or true story.
- Send us your deathless prose using the contest form on the last page of this article.
- Keep your fingers crossed!
All entries must be received by July 5.
The prizes look pretty nifty - grand prize is an iPod Photo.
Share
management
June 17, 2005 11:37:35.632
Jonathan Schwartz really needs to read this article - the one I blogged on yesterday:
How? It's trivially simple. Why do carriers give handsets away for free? Because they make money on the subscription necessary to receive the handset. Why do banks give away free checking, or free credit cards? Because they acquire new customers. Why do Google and Yahoo! give away free search? Because there's a fortune in the end result.
So why on earth would we give our OS away for free?
Because it'll ensure those without the economic wherewithal to pay for it will still consider using it. Companies that suffered from piracy a decade ago now know the lesson well - piracy is a good thing so long as the pirates are folks who could never afford your products. So stop calling them pirates, call them users. Free software has no pirates. As I've said forever, there's value in volume, even if you're not paid for it.
The strategy he outlines only works when you have very, very large volume. Even then, you'll notice that MS jacked the prices up for MSDN subscriptions - which ought to tell you something about the limits of free/cheap pricing in the heavy volume arena. The problem with giving things away is that the number of people who will actually pay you for related services tends to be really small - which again, calls for massive volume. Here's a tip - Open Solaris won't have massive volume - which means that Sun will be losing money on this right from the start.
Combine that with their highly dubious purchase of StorageTek, and you have to wonder what they are smoking out there...
Share
smalltalk
June 17, 2005 11:21:33.560
An EJB/Java developer spots Seaside:
So why not have a look at Smalltalk - its much more OO and more dynamic than Java. You can change the program while it is running and as soon as you have understood a few concepts you can use it. For web application building I would recommend the www.seaside.st framework and for development either the free open source Squeak project (http://minnow.cc.gatech.edu/squeak) or the non commercial version of VisualWorks (http://www.cincomsmalltalk.com). Take care - Smalltalk is a drug - you will find Java less powerfull after you have really understood it. Use the free smalltalk online books (http://www.iam.unibe.ch/~ducasse/FreeBooks.html) to get started or the Web tutorial for Seaside: http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Seaside Tutorial
I like the way he sums up:
What took you so long to realize this? ;-) EJBs are a major catastrophe rather than a technology which helps you get the job done. Too much Noise in between your coding, loads of XML and other stuff which has nothing to do with what you really need to do. Besides, most EJB apps are damn slow and fat...
Share
open source
June 16, 2005 17:40:05.920
I've often thought that Open Source in the hands of big companies is a cudgel used to beat the life out of smaller ones - apparently, Mark Fleury just woke up to this fact after IBM purchased the main competitor to JBoss (GlueCode) and made the entire thing free. The IBM pitch?
The pitch to customers is this: You get the software for free and service and support at a bargain rate. And it all comes from IBM, a name you can trust.
Meanwhile, Fleury seems to be utterly stunned by this turn of events:
He claims IBM is trying to put his privately held company out of business. He is furious, but also stunned: He says Gluecode could hurt sales of IBM's WebSphere as much as it hurts JBoss, yet IBM doesn't seem to care.
Well duh. Let's have a look at IBM's cash on hand as compared to Fleury's outfit - seems IBM has a much bigger pile. Which company is going to drop dead first, IBM, or JBoss? The beauty of this for IBM? Since they released the software as OSS, they get to play the good guy (20 years ago we would have called this a predatory practice). The gap toothed crowd over on Slashdot hasn't really figured out who benefits from OSS yet - here's a hint - it's not the small guy. What I really love is the hue and cry aimed at Microsoft for things like bundling IE and Media Player (horrors! they all say) - meanwhile, IBM does the same thing in a less visible sector of the market, and it's all good. Here's the kicker on it:
But if Microsoft, for all its billions, is doomed by the open source movement, as many open source proponents believe, then what chance does Fleury's 130-person startup stand against IBM, a company that had $96.5 billion in revenue for 2004, aims to use software as a loss leader and can absorb losses for years?
Indeed, IBM's assault on JBoss raises big questions about whether stand-alone open source software companies can ever make enough money to sustain themselves. Because their code can be freely copied, these companies can't charge for their programs. Instead, they hope some users will pay for service and support.
Problem is, most people just take the free stuff and run. Only 3% to 5% of JBoss customers buy support contracts.
Look at those stats in the last paragraph again. You wonder why I keep saying that I've seen no viable business model behind open sourcing Cincom Smalltalk? That paragraph explains why that's the case. In order to "make it up" in services and maintenance, you have to have a huge customer base. It's actually the same problem you get into when you try and sell inexpensive developer licenses for a product like ours - in order to fund things, you have to sell (or in the case of free software, ship) gazillions of copies a year - every single year. Or, limit the size of your staff to a very small number. For free stuff, you have to hope like heck that no one else decides to be a free rider on your software - meaning, repackaging it and offering cheaper support than you can afford to offer (like, say, is happening to Red Hat right now). The real kick in the pants:
No wonder no one is making any real money at this. JBoss operates at a loss, as does MySQL, the open source database company. Novell (nasdaq: NOVL - news - people ), the No. 2 Linux distributor, is losing money. After a decade of losses, Red Hat earned $45 million last year on sales of slightly less than $200 million, but 40% of its profit came from interest income rather than operations.
There's a reason IBM supports Linux and other free software projects - it's a way for them to take a free ride on product development and vacuum up the available services revenue. There's a phrase that covers this:
TANSTAAFL
Share
development
June 16, 2005 10:36:21.013
Scoble takes Joel to task for a few comments, and goes off on a rant:
If your employees get bored, can they go over and talk with some of the world's top experts on Linux? Oh, and think no one wants to come work at Microsoft? Well, the founder of Gentoo just came to work here. Sorta invalidates your theory that the Slashdot crowd won't come to work here too, don't ya think? Do you have any people who've written operating systems where you work? This Microsoft employee has written two. Do you build tools that let you build a new OS in minutes?
Well. Since you can build a new OS in minutes, I expect Longhorn will be out next month, eh? MS has a serious inertia problem when it comes to shipping, and there's a reason for it - everything depends on everything else. If MS has anyone on staff that understands the concept of loose coupling, they are locked away in a closet somewhere, probably to protect their own sanity.
You want to know why Longhorn - and VisualStudio, and SQLServer, etc, etc are late? Tight coupling. Remember the kerfuffle a few years back when MS said that it would be impossible to remove IE from Windows, because it was embedded there? People ranted about all the wrong things when that came up. The problem wasn't that MS was trying to strangle other browsers; the problem was that MS actually did embed the guts of IE in the OS, and thought that it was a reasonable thing to do. Longhorn may not be the last OS MS ships, but it's going to be close - they've tied themselves into a set of tightly coupled knots from which it will be really, really hard to escape.
What Scoble needs to ask himself is this:
- Over the last five years, how many versions of the flagship products has MS shipped?
- Compare and contrast that to what Joel's firm is doing.
Heck, compare and contrast it to what we do here at Cincom Smalltalk - we have a product who's history dates back to the 70's - i.e., it's far, far older than anything MS is doing. We manage to put out a major release once a year, and a minor release in between each major release. People knock Smalltalk for its supposedly monolithic nature, but we manage to keep updating, extending, and adding to it - with regular releases. While there's more coupling at the core (kernel, if you will) level of Cincom Smalltalk than we would like, we recognize that and are working to change it. Meanwhile, MS just keeps coupling stuff more and more tightly - and the release cycles get longer and longer.
Sure, MS has some cool technology. It also has huge problems.
Share
management
June 16, 2005 9:46:39.804
PR Differently points to a news article on people getting "fired for blogging". Here's the thing though - the people covered weren't fired for blogging per se - they were blogged for either:
- Airing "dirty laundry" in public
- Discussing sensitive corporate material in public
- Embarrassing the company in public
Well gee, get me a cluestick for these folks - those acts will get you washed and waxed if they become public. You think a signed letter to the editor doing any of the above would be looked at kindly by management? What makes you think that blogging will be any different? Here's one of the cluebots they talked to, a guy named Paul Whitney:
Like a growing number of employees, Peter Whitney decided to launch a blog on the Internet to chronicle his life, his friends and his job at a division of Wells Fargo.
Then he began taking jabs at a few people he worked with.
His blog, gravityspike.blogspot.com, did find an audience: his bosses. In August 2004, the 27-year-old was fired from his job handling mail and the front desk, he says, after managers learned of his Web log, or blog.
Well. Insulting co-workers in a public forum, and he's shocked that there were consequences. Here's his reaction:
"Right now, it's too gray. There needs to be clearer guidelines," says Whitney, who has found another job. "Some people go to a bar and complain about workers, I decided to do it online. Some people say I deserve what happened, but it was really harsh. It was unfair."
Harsh and unfair? What did he think was going to happen? Say you did exactly what he did, but in a loud voice in the employee cafeteria. You think maybe people might have been irked by that? A blog is is the quintessential "loud voice" - sooner or later, people are going to notice what you are saying. For instance, here's the sort of thing that likely got noticed. If you make personal attacks on co-workers, identifying yourself and the firm in question, it shouldn't be a huge surprise when the pink slip arrives.
Share
movies
June 16, 2005 8:16:35.579
The PVRBlog notes an upcoming shift in the movie rental/purchase business:
Edward Jay Epstein covers Rupert Murdoch's drive to kill off the movie rental business by adding DVRs to the DirecTV network to create video-on-demand. The main challenge is that Wal-Mart has forced the movie companies to give physical retailers (Wal-Mart) a 45-day window of time where movies cannot be distributed electronically. Is this a Wal-Mart vs. DirecTV battle? I can't imagine it being that simple. However, a future where we don't travel to Blockbuster (or Tsutaya here in Japan) is obvious for those who enjoy NetFlix. With the 100 and 1000 Gb/sec. retail consumer fiber-optic networks in Asia, VoD for movies is not far away.
This is going to be a fairly big change. Right now, the rental model still works. If we have big enough pipes, and large enough storage arrays though - all bets are off. This is ultimately what the MPAA and the RIAA fear most - a basic change to the current industry model. It's not that there's no money to be made there - it's more that there's comfort in inertia.
Share
management
June 16, 2005 8:13:15.581
Frank Patrick points to this piece by Seth Godin (and a few other related pieces) on the concept of "good enough". Here's the riff from Seth I want to highlight:
I don't think so. I think that the open nature of the web and the hypercompetitive environment of worldwide competition are pushing things in two different directions at the same time. First, the hyper-cheap, sort of junky stuff that discounters and others want to sell in volume. And second, the relentless pursuit of better. (RPB). RPB is the opposite of good enough. It's not Jack Welch's six sigma nonsense in which engineers codify mediocrity. It's a consistent posture of changing the rules on an ongoing basis.
Well, that all depends on what "better" is, with respect to things like cost. For instance - I could own a better car than I do. It might cost me a ton more money though, and give me years of car payments. Am I "settling" by staying with the late model sedan, or deciding that I'd rather spend the money elsewhere? Opportunity cost plays a large role in any supposed pursuit of "better", because virtually no decision - business or personal - is made in isolation.
Share
development
June 15, 2005 22:21:29.554
News flash - "browse senders" is hardly a new thing. And yet, people using MS tools seem amazed by it:
Here's an example. Let's say I want to add attended transfer (where you have a call, press transfer, dial a number, talk to the new call, then hangup to connect the two). I'm looking in the source I'm familar with (the IAX protocol area), and see iax2_hangup(). That's a packet-level call, so when someone physically hangs up, that, somehow, gets called. Where? Well... right click the function, Call Browser -> Show Calls To:
Only implemented in Smalltalk back in the late 70's sometime, and - probably in Lisp before then. I guess if it doesn't come with curly braces, it doesn't exist :)
Share
StS2005
June 15, 2005 22:00:41.501
I just received this announcement from Ann at Precision Systems, one of the corporate sponsors of this year's Smalltalk Solutions:
ENTER OUR RAFFLE FOR SMALLTALKERS: WIN AN APPLE IPOD OR AMAZON$!
Anyone can enter our free drawing. To enter, simply fill out this form
We will be giving away:
- an Apple iPod, and
- ten Amazon.com gift certificates
You don't need to be present at the drawing, which will be held at the conclusion of:
SMALLTALK SOLUTIONS 2005: JUNE 27 - 29 IN ORLANDO, FL!
Precision is proud to be an official convention exhibitor. There will be an impressive array of speakers, tutorials, workshops and exhibits of Smalltalk products and services. See the convention website for details
We hope to see you there! Good luck in the drawing!
Anne Miller
Precision Systems Design, Inc.
Smalltalk Staffing Group
SmalltalkGroup@PrecisionSystems.com
See you in Orlando!
Share
examples
June 15, 2005 13:38:43.098
I haven't posted an honest to goodness example in awhile -
here's how to accomplish the common UI need to "zoom" a widget. I
didn't come up with this code myself - in the finest Smalltalk
tradition, I stole the code from the file viewer, which supports
this as well.
In BottomFeeder, you can zoom the HTML pane to cover the entire item view/html view area. To do that, you need to figure out where your new widget bounds are, and then use them. Here's the "outer" method in Bf that either zooms or unzooms, as appropriate:
actuallyZoomHTMLView: htmlView topLayout: topLayout splitter: splitter2 top: top
| sub myDivider |
sub := self widgetAt: #feedID.
myDivider := (self getComponentFromSubcanvas: sub withID: #Divider2).
(self isZoomed: top)
ifTrue:
[self
unzoomHTMLView: htmlView
topLayout: topLayout
splitter: splitter2
top: top.
myDivider beVisible]
ifFalse:
[self
zoomHTMLView: htmlView
splitter: splitter2
top: top.
htmlView takeKeyboardFocus.
myDivider beInvisible].
self currentBuilder window refresh.
htmlView beVisible
Now, there are a couple of curious things in there, including
the #getComponentFromSubcanvas: message send. In Wrapper (as
opposed to Pollock), it can be a pain in the butt to grab a wrapped
UI if you haven't kept the builder around. in Bf, I wrote a
convenience method to deal with that.
The arguments coming into that method are the wrappers for the
html pane, the layout for the item grid (or list) pane, and the
wrapper for the splitter. All the wrappers are retrieved like
this:
wrapper := self builder componentAt: #widgetIDHere.
while the layout is retrieved:
wrapper := self builder componentAt: #splitterID.
layout := wrapper component layout.
Having all that, we now have enough information to actually
resize the pane. That code is a simple convenience method in
BottomFeeder:
zoomHTMLView: htmlView splitter: splitter2 top: top
"zooms the HTML view, covering the item pane"
top beInvisible.
splitter2 beInvisible.
(htmlView component layout)
leftFraction: 0;
leftOffset: 0;
topOffset: 0;
topFraction: 0
The unzoom method looks similar:
unzoomHTMLView: htmlView topLayout: topLayout splitter: splitter2 top: top
"unzooms the HTML view, exposing the item pane again"
(htmlView component layout)
leftFraction: 0;
leftOffset: 0;
topFraction: topLayout bottomFraction;
topOffset: topLayout bottomOffset.
top beVisible.
splitter2 beVisible
What you are doing here is handing the wrapper a new layout frame to live in (thus the four arguments, telling it what the edges are). This is easy enough to extend to any widget or set of widgets, and, in fact, the code in Bf should be more generalized. It works though, and I haven't had a strong desire to muck with code that works well :)
You should be able to adapt this idea to your own UIs easily - and if you need an in image example, have a look at class Tools.FileTools.FileBrowser - specifically, at the #toggleZoom method.
Share
StS2005
June 15, 2005 11:07:46.069
Share
humor
June 15, 2005 10:36:25.351
Share
itNews
June 15, 2005 8:35:48.783
If you cast your mind back 10 years, you'll recall the various stories about the disasterous baggage handling system at Denver International Airport. Well, ComputerWorld reports this morning that the system is being retired, and DIA is returning to - wait for it - manual handling:
After more than a decade of trying to make Denver International Airport's computerized baggage system work as designed, United Air Lines Inc. is giving up on the technology and returning to manual handling procedures.
"It's never worked up to its potential," United spokesman Jeff Green said last week. He added that the airline has spent "enormous amounts of money" on the system over the past 10 years, but it's still used only for luggage heading out of Denver on United and some baggage transfers between flights. The system has never been able to process luggage from arriving flights.
Here's where I explain the title. The system has never worked properly, and yet it stayed online for a decade, causing who knows how many problems over that time. There were stories that first year advocating the action that they just took now, but no one was willing to admit defeat then.
This happens in IT projects as well, and it tends to get worse as more money is spent. There's kind of a tipping point past which failure becomes too ugly to contemplate - someone would have to explain all the consulting fees, all the hours spent, etc. etc - it's just easier for all involved to try and muddle through. In the meantime, large amounts of business damage accrue, and for what? The pride of a small cadre of management who won't admit that mistakes were made.
Share
events
June 15, 2005 7:43:14.092
Whoops, I can't read a calendar - this was last week (see the comments) - here's what you missed:
A final reminder: the next meeting of the Toronto Smalltalk User
Group will be TODAY, Wednesday, June 8 at 6:30.
The meeting will be on the 42nd floor (not the 47th, as in the
past) of the Bay Wellington tower, 181 Bay Street (Bay &
Wellington, the north tower). When you step out of the elevator, go
left, then left again. We're at the end of the hall. Look for the
'Northwater' sign.
Our web site is still down. We're still correcting a
registration error... and the paperwork is a nightmare.
Jean-Luc Roche will talk about his experience in France...
The "Mutuelles du Mans", one of the two big Smalltalk users in
France, developed all their corporate software with VisualWorks
v2.5 in the early 90's. They never took the time to keep up to date
with new Smalltak releases and, by 2002, they were faced with the
rather daunting task to port all their applications to VisualWorks
v7.
The most challenging aspect of the project was arguably to
migrate the environment development to StORE, the SQL-based
repository that ships with VW v7 and replaces ENVY. I propose to
take a look at the porting strategy we used, to describe the
difficulties we met and, in that process, to explore the
differences between ENVY and StORE.
Bob Nemec
Toronto Smalltalk User Group
www.smalltalk.toronto.on.ca
Share
development
June 15, 2005 7:38:17.933
Via Steve Kelly, I came across this gem from Stefan Tilkov:
Definition: Worst-of-breed; composite noun: a strategy mixing a set of approaches, technologies or solutions so that the disadvantages add up to a disastrous combination no single item would have been able to create.
Example: Java + XML configuration files, which combines the verbosity and pain of having to create lots of meaningless code typical for statically typed programming languages with the runtime error probability of dynamic languages due to small typos, sometimes adding up to a solution that looks like an obfuscated programming contest application.
Heh. That's about the size of it. Productivity is over here.
Share
smalltalk
June 15, 2005 7:27:19.737
Brian Foote has some pictures from Smalltalk Solutions 2001 posted here. I'd link to one of me, but I think I was asleep when it was taken :)
Share
events
June 15, 2005 7:18:38.289
In Omaha this month? Check out the Omaha STUG meeting:
OK, this month's meeting is real special. We're teaming
up with the SPIN group to present a really cool presentation!
Here's the details: This month we have a real treat. Mike Cohn, a
Denver Scrum expert, will introduce us to Agile Estimating and
Planning.
We'll look at why traditional planning fails, how to overcome
those problems with a story-driven process, how to estimate and
plan with stories, and why agile planning works.
We'll round out the evening with an interactive estimating
exercise over pizza that will give you specific techniques to apply
in your own work.
About Mike Cohn. Mike founded Mountain Goat
Software{1} in 1993 to help organizations apply agile development
methods to difficult software problems. Mike is certified in
Scrum{2} and author of User Stories Applied and the forthcoming
Agile Estimating and Planning (Fall, 2005)
Venue:
7pm next Tuesday June 21 2005,
Northern Natural
Gas, 1111 S 103rd Street, Omaha,
Room 149
Join us! If you plan to attend, visit www.omahaspin.org and register.
Share