movies

ROTK Extended

December 14, 2004 18:47:40.652

Well, where to begin? The scene at Orthanc makes a lot more sense with Saruman back in. Of course, without the Scouring of the Shire it runs differently than the book - but as I thought when I first read about that, I realized that the scouring would seem very anti-climactic on screen. The wrapup with Saruman should have been in the original - it worked very well. Heck, his "brigands and dogs" speech to Theoden makes Theoden's later admission to Eowyn - that it was not him that saved the day at Helm's Deep also makes more sense. There's even a small shot of Pippin being distracted by the Palantir as he and Merry dance on the table - his obsession is fleshed out much better.

As with Two Towers extended, Eowyn's love for Aragorn is played out more as well - and they flesh out her healing and bonding to Faramir. At some points, I felt like the extended Two Towers was cobbled together - it didn't "fit" as well as the extended Fellowship did. This extended edition really meshes well - it looks like Jackson took his time and did a great job. It's a lot of small things - there are little characterization bits tossed in throughout - including more of the competition between Legolas and Gimli that was spread through the books.

Watching Gimli on the Paths of the Dead is worth the price of the CD all by itself - the added scenes in this section are really well done, and seem to be core, not added. It was a nice touch the way Legolas recited the prophecy about the paths of the dead - and how they relate to Aragorn. The wrap to that set of scenes explains how they got to the ships as well - although fans of the books already understood that bit. It's kind of cool the way Peter Jackson is the first pirate to die :)

One very nice touch - as Denethor Walks to the tombs with Faramir, Pippin looks on - and we can see a single white flower on the White Tree (again, a difference from the bok - but a nice touch with Denethor proclaiming that hope is dead. While I'm here, can I say how much I love the arrival of the Rohirrim? Theoden's speech, the music, the charge itself? It's the most uplifting part of the entire film. The battle scene with Eowyn, Merry, and Theoden runs a bit different as well - it all fits together better.

There's a nice addition after the council where they decide to march on Mordor - Aragorn takes up the Palantir to announce himself to Sauron. That's something I missed from the books. And Frodo and Sam's forced march with the orcs - the scene timing here works a lot better.

The "Mouth of Sauron" played differently as well - I think I would have preferred the way it went in the book. The form of confrontation there was more subtle, but also more satisfying, I think.

So in summary? Very good, better than the other two extended dvd's. The timing of events is better, and it "feels" more complete. Well worth the price.

 Share Tweet This

marketing

MSN Desktop search thought

December 14, 2004 16:11:03.784

Sriram Krishnan likes MSN search better than Google's tool for that - for one, he likes the client side interface. I can buy that; Google's search works for me, but I can see where he's coming from. On the browser choice though?

Some people have been complaining about MSN imposing IE on them. I really don't understand their logic - do you complain when Windows Explorer uses IE? MSN desktop search uses IE in almost the same way that Windows Explorer does. In fact,when I used Spy++ on the results, I saw good old SysListView32. Frankly, seeing desktop search results in a browser window is something that Google hopes will catch on - but which I very much doubt.

Sriram - some of us have cut off IE completely. Heck, I avoid my company's VPN services because the intranet requires IE - I sure as heck am not going to abide a desktop search tool that wants it. When MS learns to spell security - and tabbed browsing - get back to me. And no, SP2 isn't the answer...

 Share Tweet This

movies

It's a geek holiday!

December 14, 2004 10:55:49.747

The extended edition of Return of the King is out today! Off to the video store!

 Share Tweet This

security

It's ecosystem

December 14, 2004 8:38:43.313

Ben Hammersley's post about the upswing in blog comment spam demonstrates something - security has more to do with the size of the ecosystem than with anything else. Why is Windows such a huge target? Because there are so many Windows systems available - anything that hits a vulnerable system has a lot of potential new places to spread. Posit a nasty Mac worm, for instance - as it tries to propagate out, what are most of the systems it tries to hit going to be? Windows boxes. Now look at the various infection rates for Windows worms, virii, and trojans... it's not a huge surprise. Sure, MS has culpability here - but even if they had been trying hard since the release of Win98, Windows would still be the major target.

You are now seeing the same thing in the blogosphere. The popular blog servers are getting hammered, while I've gotten in the low dozens of comment spams. Until 2 weeks ago, I wasn't even trying to filter it out - it just wasn't a problem. Why? It's not due to my entry forms being more secure, it's due to their being rare - only a handful of blogs use my server, so the ecosystem isn't big enough to support bots. The ecosystem for things like Blogger, MT (etc) is big enough - and that's why there's an accelerating "arms race" of spam bots and spam blockers out there - and why you see lots of bloggers throwing their hands up and turning comments off.

I don't have a solution, other than suggesting that you take "the road less traveled" in selecting blog server software. The trouble is, that mostly requires a level of technical literacy beyond the reach and/or interest of the vast majority of people.

 Share Tweet This

cst

Clearing the decks

December 14, 2004 8:16:51.812

With the release of CST fall edition, we are in a pause mode before we really get started on the next release. We have a planning meeting set for January, where we'll hash out what the priorities are for the next release (and for the next few cycles in general). This isn't completely up in the air; see our roadmap for a broad sense of our direction. Still, this is a great time to give us feedback. We got a lot of that in Frankfurt, and we would like more - please visit the survey page, and send me your ideas

 Share Tweet This

humor

Dohh

December 14, 2004 7:13:36.978

Bob Congdon points to some punny beer...

 Share Tweet This

law

Standing athwart Progress, with lawsuits

December 13, 2004 20:55:53.387

That shouting against the forces of progress you hear is the MPAA, with more initimidation lawsuits lined up - BoingBoing has the details. Bottom line - if you run a BitTorrent server, it looks like they'll presume you guilty on the spot. In the warped universe inhabited by the stunted minds of the MPAA, technology is just bad

 Share Tweet This

spam

Wiki Spammers

December 13, 2004 20:23:32.258

I've noticed that the wiki spam (on the CST and VW wikis) is consistent:

  • The same set of pages gets hit over and over again
  • All the spam is being entered manually (at least, it looks that way based on the patterns)

Based on that, I have to assume that someone has outsourced spamming to cheap offshore typists of low moral character. Yay.

 Share Tweet This

blog

A small hole

December 13, 2004 20:18:07.752

It seems that my spam filtering code for this blog server had a small hole in it - and sure enough, someone exploited it this afternoon. I patched it as some moron was trying to comment spam various blogs; he hit two, and was trying the third when I updated the spam detection code to plug the hole. A bunch of attempted spam comments dropped into the spam trap folder. I repaired the other posts, and now things are back to normal. Yet another reason that I love being able to hot patch a server...

 Share Tweet This

smalltalk

New Smalltalk Blogger

December 13, 2004 19:47:08.936

Blaine Buxton points to Andres Valloud's blog. I met Andres a few years ago in California - he can speak his mind, as you'll see on that blog. Now all he needs is a feed...

Update: As noted in the comments (and in an email Andres sent me), the feed is here

 Share Tweet This

cst

Seaside for VW

December 13, 2004 9:38:36.251

I missed this cls announcement a little over a week ago - Michel Bany, one of our consultants in Europe has been keeping the VW release of Seaside up to date:

I just published Seaside 2.5b5 for VW on the public repository. It is based upon Seaside2.5b5-avi.9.mcz 27-Oct-2004 17:15, i.e. the very latest version of 2.5b5.

This port includes a new feature : the ability to run behind multiple front-end servers with multiple different url naming structures.

Bundle to load :

  • SeasideForWebToolkit
  • SeasideForSwazoo.

 Share Tweet This

itNews

Penn State tells students to ditch IE

December 13, 2004 9:29:37.617

The knocks against IE keep coming: Linux Today reports that Penn State is advising their students (80,000 of them) to use something other than IE for browsing. I suspect that this will reach what Malcolm Gladwell calls a Tipping Point relatively soon - and MS seems mostly oblivious to the problem.

 Share Tweet This

spam

Inventive spam titles

December 13, 2004 8:27:39.656

More from the inventive spam title saga - I just got something titled Pliable and Soluble. Do I really want that?

 Share Tweet This

development

How's that again?

December 13, 2004 8:26:14.468

I'm trying to reconcile the two halves of this paragraph from this post by Gregg Graham

When I discovered Smalltalk and Java in the mid 90's, I began to be turned off by the complexity of C++. However, I've come to terms with it, realizing that no other popular computer language combines the efficiency and expressive power of C++. The fact remains that it's a difficult language, in which it's easy to create a big mess. Reading and applying Meyers' book is a good safeguard against such messes.

As to efficiency, if you want to write your own garbage collector, sure. As to expressive power... compared to Smalltalk or Lisp? Huh?

 Share Tweet This

BottomFeeder

GMail in your aggregator

December 12, 2004 15:56:30.490

If you want to read your GMail in your aggregator, have a look here at Google's support page for that - Bf is their only recommendation for Linux.

Update: Apparently, you need a GMail account to see that page...

 Share Tweet This

smalltalk

Smalltalk in small places

December 12, 2004 14:11:32.985

Dave Anderson of Genify reports on Smalltalk MT use in the simulation industry:

I just came back from boothing at I/ITSEC 2004 (the inter-industry training, simulation and educations conference). This is THE event for the sim community (especially military).

I am happy to report that Smalltalk MT was embedded in several applications showing at the conference. Here are some examples:

  1. A collaborative multi-player virtual environment showed off MTs ability to perform fast network requirements.
  2. A LIDAR analysis program showed off MTs ability to utilize DirectX 9 and a GPU to do huge amounts of feature extraction analysis from a LIDAR image.
  3. Military symbols were being shown in other vendors applications by MT. This is using MTs ability to use SVG (scalable vector graphics) and GDI+.

So while we may not be building whole applications with MT (apart from the development environment of course), we are demonstrating that Smalltalk can be used for what it is very good at - MetaData representation. This content can then be delivered in the form of a DLL or a COM component to other applications (including other Smalltalks).

So next time you see a GIS application, or military application it may be Smalltalk MT inside :-)

 Share Tweet This

development

Just in the way

December 12, 2004 0:48:38.261

While reading this post from Sam Gentile, all I could think was this - the type system is just standing in the way of productivity:

This is freaky stuff-) I have been doing some experimenting while putting together my Adavanced COM Interop talk for VSLive! today. Of course it can't be possible for the Type Library Exporter to export a Generic Type to a COM type since there is no concrete type. It doesn't make sense. I wanted to see what happens anyhow in ILDASM. What about if I use a Generic Interface and then instantiate a class implementing the generic interface with a concrete type such as double? That should export and it does. BTW, I am using the evil ClassInterface.AutoDual instead of the correct way to export with the ClassInterface.None as it doesn't export with the interface. It looks like the Type Library Exporter is doing the right thing. It skips the generic interface and keeps going as there could be (and are) other types.

Go read the whole thing, and see what kind of unnatural acts the type system of COM can lead you into...

 Share Tweet This

news

First newspaper casualty?

December 11, 2004 15:56:36.189

Is this Slashdot story a harbinger of things to come, or a one off? The various stories I've seen on falling circulation numbers points towards harbinger I read the NY Times and WaPo a lot, but I rarely buy the hardcopy. Here's the upshot of the story:

"The LA Times announced that it is folding its national edition on 12/31/04. The Times spokesperson said the paper's mission has been to reach 'key Washington, D.C., and New York audiences,' and that 'other electronic ways of reaching those audiences became more plentiful.' The folding edition will be replaced by "remote printing" by NewspaperDirect, and their email highlights, Top of the Times. Is this the way all our newspapers will be going?"

 Share Tweet This

logs

How people access the Feed

December 11, 2004 13:10:14.014

I've been taking a look through the Apache logs to see what tools people are using to access my blog via the RSS feed. Here's the top results

BottomFeeder 20%
Net News Wire 16%
Mozilla 11%
NewsGator 9%
SharpReader 9%
RSS Bandit 4%
Internet Explorer 4%
News Fire 2%
BlogLines 1%

The only surprise there is IE - are 4% of my readers looking at the DOM tree in IE, or is there some RSS tool for IE I've missed? There are two other notable results that I'm not sure how to trace - 4% of my readers are using the C library "Soup" to access the feed, but I have no idea what tool that might be part of. Likewise, 2% are using the Universal Feed Parser, but again, I'm unclear on what tool or tools are using that. If you add the percentages up, you get to 86% - leaving 14% to bots and tools I don't recognize.

 Share Tweet This

itNews

Top Twenty Software guys?

December 11, 2004 11:31:02.666

So I see where Sys-Con has a list of the top twenty software developers. It's a bogus list - notably absent from consideration? Donald Knuth and Alan Kay. Some of the people on the list haven't really created anything - they've merely cobbled together other peoples ideas - and badly at that. So who put together this list? Why the heck are Kay and Knuth absent? What about people like Grace Hopper?

 Share Tweet This

cst

Late updates from Heeg

December 11, 2004 10:10:55.639

With the release of Cincom Smalltalk, Fall 2004, we have two announcements from our partner, Georg Heeg:

As promised, I uploaded the current version of L10N to our server. So please feel free to try it out. Additionally I will ask Karsten to put it into the public repository as recommended (excluding the documentation) and I'll ask Simone to out it on a more regular place on our web site.

We have also been asked by several people to get the new Windows CE Look and Feel iploaded. So I uploaded it here. Please send any comments to Chris Burkert.

 Share Tweet This

wwuc2004

Another User's Conference Summary

December 10, 2004 13:43:38.314

Monika Laurent - Cincom's Smalltalk Marketing Manager in central Europe - has sent me a summary from the conference:

Much Smalltalk during the First Worldwide Cincom Smalltalk User's Conference

Last week the first worldwide Cincom Smalltalk User's Conference was successfully held in Frankfurt, Germany. If you did not participate - we are sorry to say that you really missed a great event.

It was indeed an international event: More than 90 participants from all parts of the world gathered during the two and a half days in a charming hotel close to Frankfurt. Attendees came from the United States, Canada, the Republic of South Africa, and various countries all around Europe (Germany, Switzerland, Austria, Belgium, France, Italy, Croatia, United Kingdom, Finland); speakers came from the United States, Canada, India, Australia, the United Kingdom, Finland, Switzerland, and Germany.

For the first time ever Cincom Smalltalk customers and partners had the chance to meet with Cincom's worldwide elite of VisualWorks and ObjectStudio engineering in one place. And they used their time!

The official conference program included more than 20 presentations and live demonstrations given by Cincomers and Cincom partners - and was expanded 'on the fly' with several demos of customers who had made the audience curious about their VisualWorks and ObjectStudio applications. During the three "Customer Advisory Board" sessions, Cincom Smalltalk management and engineering gained a lot of useful feedback from customers and partners on ongoing and planned development projects.

The Smalltalk with Cincom's engineers continued over lunch and dinner - and time passed too quickly. Much more time could have been spent discussing the interesting topics in greater detail.

For more information on the 2004 conference content please visit the product manager's blog. There you'll find also links to supplementary notes by conference participants.

The final response was in unison: We will meet again when Cincom organizes the second worldwide Cincom Smalltalk User's Conference.

Anyone have any suggestions for next year's site? I'm voting for WiFi at the location :)

 Share Tweet This

development

UML or DSL?

December 10, 2004 12:27:32.639

I think Grady Booch's interest in UML gets in the way of thinking through what's happening with Domain Specific Languages:

However, we do disagree with Microsoft's rejection of the UML in favor of proprietary domain-specific languages, as noted not only in Jack's book but also in Alan Will's blog. To be clear, as Jim Rumbaugh has commented back to me, our observation - and that of our customers - is that the UML has proven itself useful much of the time, yet there are a few purposes for which it may be less appropriate. In many cases, the semantics of the UML are pretty close to what you need, although they are deeper than necessary; in such cases, a suitable UML profile is sufficient to focus the language, which allows you to leverage standard UML tools and training and yet eliminate the bloat. In those cases where the business concepts are more naturally expressed in a specialized syntax, then inventing a suitable DSL is reasonable. At the extreme, this is essentially the path that Charles Simonyi has been trodding for some years, a path that requires a very very deep and integrated underlying semantic model. Indeed, as I've pointed out in one of my earlier blogs, the root problem is not simply making one set of stakeholders more expressive, but rather weaving their work into that of all the other stakeholders. This requires common semantics for common tooling and training, so even if you start with a set of pure DSLs, you'll most often end up covering the same semantic ground as the UML.

Interestingly enough, I was speaking to Steve Kelly of MetaCase at the recently concluded User's Conference about this. Have a look here - and review also the SPR numbers on this stuff. The issue with UML is that it's a solution oriented at software development in general - it doesn't really say anything about your domain at all. While the MS "factory approach" is likely flawed, they are on the right track with DSLs. Steve showed me what kind of results you can gain in a specific, well understood domain with tools like MetaEdit+ - it's absolutely amazing - and no, UML isn't going to get you there. I'd suggest grabbing the MetaEdit+ demo and seeing what's possible.

 Share Tweet This

analysts

Where's that cluestick again?

December 10, 2004 12:11:37.164

I see that Information Week is quoting Gartner on what's coming up in software development:

Automation and visualization are a necessity for mainstream companies that aren't necessarily sophisticated users of IT, says Michael Blechar, research director in the app-development group at market researcher Gartner. "Although they're able to do simple kinds of Java and .Net things well, when it comes to the most complex stuff, they're failing miserably," he says. "Those companies are finding that the only way they can use less-sophisticated developers to build more-sophisticated Java and .Net applications is through the use of visualization and code automation."

I wonder if they recall this table from Capers Jones - scroll down a bit, and note that Java is at level 6. Now scroll up - see where C++ is? All that forward motion to get nowhere. Since C# is Java in MS clothing, we can slot that at 6 as well. Now scroll down to Smalltalk, and ponder the number you see there. Now go back to the Gartner quote, and recall their brilliant advice about "putting Smalltalk into maintenance mode".

After you digest all of that, have a look at Frank Hayes' article - the top part where he lists project failure results:

Department of Corrections: Last month in this space, I reported on The Standish Group's most recent Chaos survey. I said that only 28% of IT projects succeed, 18% are canceled, and 51% are "challenged" -- seriously late, over budget and lacking expected features. Some readers wrote in to point out that the numbers don't add up: 28% plus 18% plus 51% makes only 97%.

They're right. I botched the numbers. That 51% comes from 2003. This year, 54% of U.S. IT projects fell into the challenged category.

Yeah, the numbers were wrong. But at least they weren't ridiculous -- or worse.

Yes, a lot of that is management failure - of which a not insignificant part is "let's rewrite all of our (working) software in (insert current fad language here)". A ton of that was aided and abetted by those bright folks over here.

 Share Tweet This

wwuc2004

Cincom Smalltalk 2004 User Conference: Summary

December 10, 2004 11:46:51.100

It was a great conference - we had a great turnout, and it was especially pleasing to see so many ObjectStudio developers. We don't tend to get as many of them at the StS conferences - I hope that changes next summer. In any case, there's a lot of good information on what went on at the show online already. I blogged a little more than half of it - although on day two, there were parallel tracks - I haven't solved the whole "two places at once" problem yet. Here's a list of pointers to notes:

There's a Wiki Page up with presentations available - more should be posted as time goes by (the dialup connection at the hotel was less than ideal - browse back there over the next few days/weeks). Finally, I expect that Niall Ross will have copious notes to share in the near term future - I'll post them (or a link) when I get word of them.

 Share Tweet This

analysts

So dumb they must be popular

December 10, 2004 10:29:11.951

Does Gartner do anything valuable? I suppose there's the chuckle we get from reading their "analysis" - on the other hand, corporate management listens to them (which raises interesting questions all by itself, but never mind...). So what set me off this morning? Have a look at their latest predictions in ComputerWorld:

LAS VEGAS -- In an eyebrow-raising forecast, Gartner Inc. researchers said they believe that as many as 50% of the IT operational jobs in the U.S. could disappear over the next two decades because of improvements in data center technologies.

Donna Scott, a Gartner analyst, said IT workers face a situation similar to that in the manufacturing field, which has lost jobs over the past several decades as automation has improved. Similarly, standardization of IT infrastructure, applications and processes will lead to productivity improvements and a major shift in skill needs, she said.

"There will be more room to automate, and that means there will be reduced labor cost," said Scott. "This is a long-term change."

Hey Donna - care to pull up some analyst predictions from 1984 and see how prescient they really were? Do you realize that you're trying to make predictions about 2024 here? I have another question as well - Who the heck cares? Are there really any corporate IT managers who are planning 20 years out? Heck, take a look at Frank Hayes dissecting this

According to analyst Donna Scott, speaking at Gartner's annual data center conference in Las Vegas, up to half of all IT operational jobs could disappear over the next 20 years because of improved data center automation.

Got that? Gartner's telling us what we can expect for data center staffing circa 2024. That'll come in very handy for the next quarterly IT budget adjustment, won't it?

It's easy to make fun of a prediction like this. We know the numbers aren't meaningful, because no one can gin up useful numbers two decades in advance. Just looking a few years out, predictions get shaky.

For example, only three years ago, Gartner Chairman Michael Fleisher predicted that half of the household-name IT vendors wouldn't exist in three years. That pronouncement made for some big headlines in 2001, just as Hewlett-Packard was swallowing Compaq. But it's not a prediction you'll see Gartner bragging about these days.

You want more money for critical projects? Take whatever you pay Gartner, and apply it to something useful. Heck, just take those bills out to the parking lot and burn them. You'll still lose the money, but at least you won't be making stupid decisions based on the loss...

 Share Tweet This

management

Not helpful

December 10, 2004 10:19:15.637

This ComputerWorld short, - in a handful of paragraphs - demonstrates just about everything that's wrong with too many IT shops:

Employees spend an average of 30 minutes per week either trying to fix their own PC problems or working on a co-worker's PC problems, according to research by Compass America Inc., a Chicago-based IT benchmarking firm.

This self-sufficiency and helpfulness may seem like a good thing, but from the company's point of view, it's not very cost-effective, says Scott Feuless, a senior consultant in Compass' Houston office. For starters, it may be a sign that end users have little confidence that the IT help desk can really help or that users don't know that the help desk could solve their problem. Plus, that 30 minutes of lost work productivity is hurting the company and could be reduced to an average of 10 minutes with a top-notch help desk, Feuless says.

Companies take a 3% productivity hit from users futzing with their PCs, and that could be cut to 1% with a first-class help desk, Feuless says, citing Compass' database of more than 7,000 benchmark studies.

The very first question that companies should ask themselves is why users tend to avoid the help desk whenever they can. Could it be that Dogbert's No Help at All Desk is painfully close to the truth at too many shops? Well, what do the experts that ComputerWorld asked recommend?

  • Make the help desk a one-stop shop for PC fixes, so calling it isn't viewed as a waste of time.
  • Negotiate service-level agreements to monitor the performance of the help desk.
  • Standardize PC hardware and software so the help desk can effectively come up with standard fixes.

The first one isn't a bad idea, although I have serious doubts about the second. Why? Because the end result of that is usually a sea of paper reporting that drowns both help desk staff and end users. Yeah, that's what everyone needs when there's a problem - more paper. The last suggestion is perhaps the most inocuous but stupid one there. It sounds great - standardize the systems, and then everything will be fine. But... is everyone doing the same kind of work? Do the admin assistants need the same systems as the marketing guys? What about the software developers - do they get the same commodity desktop or laptop that the middle manager does? It's an idea that appeals greatly to IT management, but ends up dis-empowering the entire company. There need to be standards, but they need to be flexible standards.

On second thought, maybe it would be easier to just keep routing around the damage...

 Share Tweet This

smalltalk

Smalltalk Meetup in DC

December 10, 2004 9:09:52.005

I just received notice about a Smalltalk Meetup Event here in the greater DC area. The date on that page is off - it's going to happen on the 20th of January, not the 13th. I'll be there, looking to see what's up in the local Smalltalk community.

 Share Tweet This

development

Deafening Silence

December 10, 2004 8:23:19.205

Has Iron Python entered some unnamed ring of Borg heck in Redmond? Patrick Logan spots Ed Dumbill pondering that. And people wonder why my initial enthusiasm for using the CLR for Smalltalk has been waning...

 Share Tweet This

management

Of ISPs and Airlines

December 10, 2004 8:16:57.336

This sort of thing - See Ed Foster's blog - is so widespread through ISPs and Airlines (not to mention tech support in general) that it is most certainly a management directive - deny, deny, deny - even in the face of overwhelming evidence:

Three phone calls were routed to tech support staff who said they couldn't help and were not sure who at Adelphia could. Finally on his fourth attempt he managed to get through to an Adelphia tech who would at least discuss the issue. "I explained the hacking attempts and provided her with the Adelphia incident number from their e-mail," the reader wrote. "I re-stated the IP address of the system used in the hacking attempt. After a minute or so she repeated what the e-mail had said -- the IP address of the system was NOT an Adelphia address. After explaining what the WHOIS tool was telling me and how a reverse DNS lookup was supplying the adelphia.net system, she conceded that it was in fact an Adelphia system. She put me on hold for a few minutes, then returned to say that the matter is under investigation."

This is how airlines deal with bad weather and maintenance issues. Just try to get a straight answer about your flight time in most delay situations - it's positvely amazing to watch. Exactly what is the supposed benefit here? The customer facing employees end up looking like bufoons, and customers end up with a lower level of respect for the brand. Explain to me how that's a good thing?

 Share Tweet This

itNews

So not relevant

December 9, 2004 23:34:48.423

The sale of the IBM PC division to a Chinese firm may mean a lot of things, but - unlike David Gelertner and Dave Winer seem to think, it won't have a whole heck of a lot to do with how PC's operate. Exactly what was IBM doing in the PC OS space before this sale? Working on Linux. What are they going to be doing after the sale? Working on Linux. What's changed? Not a blessed thing. Is the hardware really the problem we have in this space? If you think so, I have a bridge to sell you. Here's what Dave Winer had to say:

I don't usually read the Wall Street Journal, but today I did, on the flight from Seattle to Boston. There was a great op-ed piece written by David Gelertner, a computer science professor, on the IBM sale of their PC product line to the Chinese company. He said something that needed to be said. There's still a lot more work needed to do on PCs. Today's computers work like shit. I'm constantly fighting spyware and can't control what information is on what computer. Sure, we've made a lot of progress, but in some ways we're moving backwards. He said he's sure that these problems will be solved, but now he's pretty sure it won't be by an American company. If not IBM, who will do it?

I have a tip - look over here for the source of your problems...

 Share Tweet This

StS2005

StS 2005 - Call for Participation

December 9, 2004 23:21:41.018

The Smalltalk Solutions technical program has presentations in a variety of formats, covering a wide range of topics of interest to Smalltalkers.

  • Keynotes are presentations by leading industry figures on topics of particular interest. Keynote speakers in previous years have included Alan Kay, Dave Thomas, George Bosworth, and Scott Ambler. Our first confirmed keynotes for this year is Niall Ross on "The Value of Smalltalk", discussing his experiences in building complex financial applications, and the benefits of using Smalltalk. Further talks to be announced.
  • Tutorials present technical tpics in-depth, in a hands-on format. Tutorials are normally a half-day long, and have limited attendance, offering close interaction with the presenter. Tutorials topics in past years have included the Seaside continuation-based web framework, tuning Garbage Collection, Test-Driven Development, the Refactoring Browser rewrite tool, and the forthcoming Pollock GUI framework for VisualWorks.
  • Experience reports and demos present work on Smalltalk projects, sharing experiences in real-world development and/or showing the capabilities of the resulting projects.
  • Technical talks present an overview of a particular topic. These cover a wide range of topics of interest to Smalltalkers.
  • Birds of a Feather (BOF) sessions are informal discussions organized by attendees. These are organized outside of the regular conference schedule, and are often used as discussion forums for particular products or Smalltalk dialects.
  • Camp Smalltalk is an organization dedicated to creating open source Smalltalk software. We provide space, power and network connectivity for attendees to participate in Camp Smalltalk efforts.

For more information please contact Alan Knight

 Share Tweet This

smalltalk

Squeak and EToys presentation: Geneva

December 9, 2004 23:14:44.149

Stephanne Ducasse has announced a Squeak/EToy presentation in Geneva on the 1th of December - the page is in French

 Share Tweet This

smalltalk

LiveWeb in Squeak

December 9, 2004 22:48:49.796

Chris Double points to some very cool sounding work going on in Squeak.

 Share Tweet This

cst

Cincom Smalltalk Winter 2004 Released!

December 9, 2004 22:05:05.351

The winter release of Cincom Smalltalk is out! We blesed the latest build this last week, and CD manufacturing has commenced. Shipment should start before the end of the year - so depending on mail deliveries, you could see the release before New Years. There's a lot of new stuff for ObjectStudio and VisualWorks - Opentalk for ObjectStudio, new platforms for VisualWorks, the DotNet Connect is now supported. Here's a link to the details page. We (the Cincom Smalltalk team) are having a planning meeting in early January, so don't expect to see any vw-dev builds until after that. In the meantime, have a look at our roadmap, and take our latest direction survey. Now's the time to let us know what you think!

 Share Tweet This

BottomFeeder

What's coming in BottomFeeder

December 9, 2004 22:04:47.101

There's a bunch of improvements coming up in the next release of BottomFeeder - I've got most of these ironed out already. I've got to talk to Rich about the doc - but things should be ready to roll shortly after that. So what's new?

  • A new font definition tool - if you don't like the fonts that are offered for display, you can now change them, and have them loaded at startup. See the System>>Define Fonts menu item
  • Scripting support - Bob Westergaard created a script running tool a few months ago, and I've enhanced it by making SAX drivers available for easier script creation. See the "sample scripts" directory for a few examples - you'll need to install the plugin, and then place any scripts you create in the "scripts" directory (create if it does not exist). All scripting is in Smalltalk. Scripts support one pseudo-variable called 'runInterval'. If you wish to define it, do it like this:

runInterval := 24.

Make sure to include the period. This sets the update frequency for your script to once every 24 hours. The value will be taken as a number of hours.

  • More events reported from BottomFeeder
    • #bottomFeederStarting:- sent with the feed viewer as an argument. Allows plugins to take notice of startup
    • #bottomFeederQuitting - allows plugins to be notified of application quit (as opposed to image quit, which is also reported)
  • Regular Expressions are now supported for internal searching
  • The Amazon search capability is fixed - there was a bug that prevented new searches from being defined
  • Shutdown will be faster - the save files are only saved if there have been user changes since the last save
  • A raft of new plugins
    • Asteroids
    • Xonix
    • GoldenMonkey

Now you can waste time while your feeds update!

  • A much faster and more robust HTML display component. Software With Style has upgraded their tool, which enables much better BottomFeeder performance
  • Better offline browsing capability - with the local cache created by the underlying network libraries, you should see images with your feeds while offline (assuming that they have been cached)
  • Lots of bug fixes, including one that could cause problems in Newspaper view

I should be able to get this packaged up and released relatively soon. Once I do that, I'm going to undertake a fairly significant refactoring of the feed save functionality. We'll have to see how long that takes.

 Share Tweet This

marketing

One minute there...

December 9, 2004 22:04:31.861

I suppose I can't help myself - I'm on a plane with nothing better to do, so I decided to read Jonathan Schwartz' latest screed. He actually makes a number of good points about the PC industry's direction - it likely is moving more and more in the same kind of direction as phones, set tops boxes (etc.) - consumers may well go for subscription plans. There's the small issue of there being no local competition (in my area, I can get Comcast for network access. Or, if I don't like that, I can get... Comcast). That's something of an issue in his vision, but it's likely not a permanent issue.

So anyway, I was rolling along through his article, being somewhat amazed at the concept of Schwartz managing to makes sense - when I stumbled into this paragraph:

So what's happening to the PC industry? It's moving from the old world, in which one buys a PC and cares a great deal about its comparitive hardware features (does it have a DVD player?), to one in which the hardware is nearly identical, and the value's moved to services available through the device. Over the network. Battery life matters more than processor speed. Size of display more than disk. Access to Yahoo! Personals matters more than all of the above.

Umm, no. Clearly, he's not been out and about looking at the sales of things like Half-Life2 recently, or at the kinds of system requirements needed. Here's a hint - you won't be placing the multiple gigabytes of graphics that come with the game on a remote server anytime soon. Network play? Of course! Heck, that's been huge since Starcraft, and it's only getting bigger. In the consumer space, games are driving the industry. I know plenty of people who've either bought a new system or done serious upgrades just to be able to run a new game (like Half-Life2).

Which is not to say that laptops, chat, and downloadable phone games aren't big - they are. But they aren't the only thing going on by a longshot. And sure, as he says - handset sales are exploding. But... an awful lot of that is trade up (how many phones have you had in the last 3 years? I've had about 7). Try typing on a cell phone sometime, for instance - if you need to do serious work, it's not going to be happening on a cell phone. What's going on here isn't the artificial divide that Schwartz would like to believe exists - there are very few people who choose to have a cell phone instead of a laptop. Most of them are choosing both.

Schwartz is still pining for the Network Computer. It's arrived already, and it's called the cell phone. Sadly for Jonathan Schwartz, that really doesn't help move SPARC servers much.

 Share Tweet This

rss

The RSS permathread makes it to slashdot

December 9, 2004 22:04:16.214

The RSS perma-thread (otherwise known as "help, no bandwidth is left!") has found its way to slashdot:

"As RSS is becoming more known to the mainstream users and press, the bandwidth issue reported by many sites (Eweek, CNet, InternetNews) related to feeds is becoming a reality. Stats from sites like Boing Boing are showing a real concern regarding feeds bandwidth usage. Possible solutions to this problem are emerging slowly, like RSScache (feed caching proxy) and KnowNow (even-driven syndication). RSScache seems to offer a realistic solution to the problem, but can this be enough to help RSS as it reaches an even bigger user base in the upcoming year?"

Apparently, the work done by popular sites like Yahoo, Google (etc) can't be applied, due to the different spelling of the acronym...

 Share Tweet This

development

On a roll

December 9, 2004 22:04:02.530

Patrick Logan is on a roll - take a look at his explanation of the baggage carried by the CLR. The JVM is stuffed with it as well.

 Share Tweet This

smalltalk

The Amp goes to eleven

December 9, 2004 22:03:41.955

A commenter on Patrick Logan's blog makes this comment:

Considered Opinion writes in a comment... Perl > Python > Lisp > Smalltalk - and none are well suited to typical business applications (good at all of: Security, GUI, RDBMS, Reporting, Distributed Computing, Reasonable Performance...)

[ed: To which Patrick replies:]
Ignorance is bliss.

What he said. If that's what you think of Smalltalk, you should take a look at what Cincom Smalltalk ships with:

  • Security? Check, we do SSL and various encryption algorithms
  • GUI? Check, we do that. On the ObjectStudio side of Cincom Smalltalk, it's native Windows. And look over here - you can get full interop between VisualWorks and ObjectStudio now, and it's only going to get better
  • RDBMS? Check, we do that. Have a look at GLORP to see where things are headed
  • Reporting? Via COM or the DotNet Connect, we support all the Windows reporting tools. Have a look at Software with Style to see what you can do with WYSIWYG XML and some XSLT.
  • Distributed Computing? Check, we do that. We support CORBA, DCOM, Web Services - and we have our own Smalltalk to Smalltalk protocol, used between VW and ObjectStudio
  • Reasonable Performance? Take a look at BottomFeeder - it's a Smalltalk application. The VM used by VisualWorks is world class and fast

Some people don't know what they don't know...

 Share Tweet This

travel

Headed Home

December 9, 2004 7:29:54.635

It was a good conference, and I wish it were longer. We had a lot of good talks - I blogged a fair bit of the show (scroll down). I'll be getting Niall Ross' notes as soon as they are ready, and will post them then.

 Share Tweet This

wwuc2004

VisualWAF - a Web Toolkit add-on

December 9, 2004 6:57:45.396

VisualWAF is a Web Toolkit add-on created by the Heeg company. Andreas Toenne is giving the presentation. The Knowledge Base application described in the previous talk used this framework to create the web application quickly.

VisualWAF is a Web application framework that brings MVC style development to web development. Again, there's a live demo in this talk. Quick look at web apps - not like Smalltalk:

  • Transaction oriented
  • Stateless
  • Everything is text (HTML, etc)
  • primitive presentation options
  • No interaction between transactions

Bottom line - not very Smalltalk like. (ed: See Avi's blog for another Smalltalk reaction to web development - Seaside). I have a flight at 2:15 today, so I'll miss Avi talking about it later today].

What did Heeg want out of this - make web app development as much like stock GUI development as possible. Preserve the application concepts of GUIS in the web environment, all while allowing web designers to do their thing with CSS/HTML (etc).

  • View - service for providing a response
    • Visual elements as HTML
    • presenter of domain values as HTML
    • possible creator of web pages
  • Controller - service for the request
    • Interpreter of user interaction
    • Converter of HTML requests to Smalltalk objects/responses
  • Larger granularity than GUI-MVC

So now we run to the demo. You start by defining the "ApplicationModel". This allows the developer to define the website by writing a few methods in this class (in Web Toolkit, you edit a config file and/or use a tool to do this). The options that are normally controlled via the web toolkit configuration tool are instead specified in code. Sending #initialize to the class sets things up. There's also a way to specify tasks (mapped to requests). Once you define a task, you've got a simple property form in the browser to fill in. You then need to specify the domain model - again, it's a matter of specifying attributes of a page. Finally, you have a view class. You could specify the entire page here - you can also use a template (ssp page) that gets passed in.

When you specify attributes and actions in the editor, code generation creates the stub methods (for things like submit buttons). You then simply need to fill those methods in (the same way you do when building a GUI). It's a simple engine for building servlest/script pages - gives you a choice of specifying html in code, or using ssp pages. It's built on top of Web Toolkit, so it leverages what you already know. It's a Heeg product - available from them on a consulting or licensed basis

 Share Tweet This

wwuc2004

Koramis SpecSheet Web app

December 9, 2004 6:57:32.293

Hans-Peter Fichtner is an electrical engineer talking about their Smalltalk web application. Interesting talk title: "Electrical Engineers and How Smalltalk saved me from an Error". Koramis builds technical software engineering tools in the process/plant control area.

What do a cup, a toilet tank, and a lock (canal) have in common?
The definition of an application liquid level

So you have differences in the process, environment, control, and auxiliary power. There are millions of pieces of products with thousands of attributes, The SpecSheet reduces these products to their component functions. So what they needed was:

  • A new web based app for transparent device specification by many users
  • A summary of the most important functions and specifications for the components

We got a walk-through of the web application next - it's a nice looking application, but I can't really convey that here - even if I did have screen shots.

So how did they get to Cincom Smalltalk (VisualWorks)? In 2001 they started to look at web enablement. In 2002 they got a recommendation to look at VW. In 2003, they started to work with Heeg, and it's been a success since then. The product is being launched in January, and has a real chance at becoming an industry standard - Koramis works with 600,000 people in 75,000 engineering companies.

 Share Tweet This

cincom

Cincom's CEO interviewed

December 9, 2004 6:57:19.034

Cincom CEO Tom Nies was interviewed by Senior Analyst Killian Brandon of the Wall Street Reporter. a few days ago. The interview is hosted live on the Wall Street Reporter website at Tom Nies interview

 Share Tweet This

wwuc2004

The Value of Smalltalk

December 9, 2004 6:57:05.759

Niall: "I find it hard to explain things that I've learned from experience, rather than via theory". The first time he was faced with a manager who was pitching Java as the new end all, be all, he needed to explain why Smalltalk had value. This presentation is his latest attempt at an answer - why it is that Smalltalk gives business value. He gives these talks because he would like to become more convincing, and he would like to help others become more convincing. So, he's trying to put together a set of examples that show why Smalltalk is more productive. He gave his last 'Value of Smalltalk' presentation at ESUG (PDF) three months ago, using a real commercial system as example. Now here is another, with a second real commercial example system.

The presentation was delayed when Niall's system suddenly decided that bringing the presentation window back up from the taskbar didn't mean the audience would get to see it :) An audience volunteer provided a notebook, USB flash drives were used, and things proceeded; provided some light amusement for us.

Smalltalkers often call statically-typed languages, 'Stiffly typed languages'. This is not just abuse. (Yes it is abuse but it is abuse with a point - pointed abuse.) When Niall started in IT he bought into CMMI notions like 'Coding from a spec is like walking on water - it's easier when it's frozen'. This is for those who think that they are clever enough to get it right first time. Painful experience taught Niall he wasn't. And that his team mates and managers weren't either.

Agile says, First make it run, then make it right, last make it fast. Accept that we are unlikely to be correct right off. First make it run (i.e., wrong). Last, make it fast is just the same point. Making it fast often means making it stiff - you want to introduce hard to change things late (if at all).

Back to languages - C#, Java (etc) - stiffly typed. They are like a bad employee - hard to get them to do anything at all, harder still to make them do the right thing. The type system is the ultimate up front optimization - it reverses the agile idea - first make it fast, then make it right, last make it run last. Super process if humans could do it but they can't.

An example - an insurance system. The system had to handle personal insurance products throughout their life-cycle. Used by sales people, back office staff, analysts, and others. There were frequent changes in business logic (to improve, to deal with new law/regulations, etc). The cost of change is a key issue.

The rate of change drove them to build a meta-data system. It grew to handle hundreds of insurance products. Once it was in place, it was easy to add new ones. It was handled by a team of about 10 developers. After a merger, they saw other teams with other approaches. One (larger) team had 700 hand-coded forms that dealt with only 9 insurance products and the rest were not much different. In theory, the merger was eager to acquire the recognised IT efficiency of the Smalltalk-using team. When the teams met to decide how, the political compromise solution was to reuse the design, but rewritten in C#: let us all be equal(ly ignorant of the language, as we've none of us written a line of C# before). (Niall said it a bit more tactfully and stressed this was just for background; he was here to talk about the positive value of Smalltalk, not the negative value of many mergers.) However it did provide language comparison experience.

Niall talked through why Smalltalk's pure object model makes it far easier to build meta-data systems. C# and Java stand in the way. It was very hard to come up with patterns that mapped the existing design onto C#. C# and Java are designed against meta approaches. But the harder problem was psychological. "You can take the developer out of Smalltalk but you can't take the Smalltalk out of a developer". Unfortunately, the converse is also true; none of the non-Smalltalkers could resist the static-typed language saying 'don't do this' about the meta-patterns. The upshot - if you need to deliver a meta-data-driven system, then expect to fail in C# or Java.

As well as getting delivered in the first place, the insurance system gave rapid delivery of new products. In the Smalltalk system, changes were delivered fast, in the others much more slowly - and it also required a larger team. As for scalability - low hundreds of products versus 9 was the worst case comparison but not unrepresentative !!

Lastly, Smalltalk lets you reengineer. Any complex system will need this over time. Niall talked through what happened when the system's chief engineer suddenly realised he could use the meta-system to show the user visually what data in the UI was impacting a selected business logic rule. He knew the users would love it but the system hadn't been written for it and key data wasn't captured together. It took him just one week to complete a complicated custom refactoring that rewrote code scattered through the 5000 class, 100,000 method system.

(Smalltalk is also better when you need to refactor, i.e. migrate, data; any complex system needs that too. Niall had no time to talk through the example on that thanks to the computer problems at the start; catch it in Orlando).

 Share Tweet This

wwuc2004

ObjectStudio Futures

December 8, 2004 10:09:00.447

This is being given by Helge Nowak, our German tech sales rep - which means I can take notes instead of being up in the front of the room :). ObjectStudio is an important piece of Cincom Smalltalk - while VW gets most of the (verbal) attention, OST is used quite a bit in Europe - particularly in German speaking Europe. What we are looking for here is direct feedback from our customers as to where we should be heading with the product - there are a couple of possible routes forward on the VM level.

First off, why are we at something of a crossroads at the VM level? OST has a byte code interpreter, not a JIT. That means that relative to other Smalltalk implementations, it's execution can be slow for certain CPU intensive operations. We have a fast, cross platform (including Windows) execution already - the VW VM. However, OST is a Windows specific product which ties fairly tightly to things like the Windows GUI and COM components. So, that puts the MS CLR (the engine used by the various .NET languages) out there as something we need to investigate.

What have we learned about from our OST customers?

  • Future Proof
  • Faster access to new stuff
    • XML
    • Web
    • Web Services
  • Better GUI
  • Better DB connectivity
  • Faster execution

We are addressing a lot of that already - by bringing Opentalk to OST, we have connectivity and interop with VW, and the stack of services it supports. We have improved execution speed over the last two releases, and made a number of improvements to the COM framework. So that leaves us with a discussion that we need to have both internally and externally: do we take a serious look at the CLR, or do we extend and enhance the existing VW execution engine to support the things OST needs (Native Windows widgets and full COM support, for instance). This would be of interest to both OST and VW customers - it would extend OST services to VW users - and there are plenty of them that VW users would be happy with (Native Widgets, full COM Support). Of course, OSt users would benefit as well - much faster execution and (better) access to the stack of VW services.

One of the primary issues in front of us is customer impact. Either change will result in some level of migration effort for end users of OST - we would like to minimize that impact as much as is possible. With that in mind, let's look at both options:

ObjectStudio for .NET?

  • Get rid of the OST VM and move to the CLR
  • OST running on the CLR and inside the .NET framework
  • Smalltalk objects fully interoperating with .NET objects

This would mean an OST VM layer glommed on top of the CLR. It's an interesting question as to how big that layer would be - it all depends on how many services can simply be handed off to the CLR. Why would we want to go this way?

  • Possibly better VM performance
  • MS' stated direction for Windows based development
  • Better UI look/feel (i.e., new widgets - that would mean a re-write of what we have)
  • New, standard DB support
  • Interaction with the (large) universe of .NET objects

What problems would we have?

The possible solution to that is Whidbey, which is a long term plan on their part to get to better support for dynamic language features. Sadly, it looks like a lot of where they are going is not going to give us much of what we need. For instance, the CLR lacks support for these kinds of things - i.e., we would have to glom these into our own layer:

  • No interactive mods to the system
  • No save/restore of an image
  • No senders/implementors (existing VS support assumes files, not an image)
  • No way to find all instances
  • No way to find all references to an object
  • No way to do #become:
  • No way to change the class of an object
  • No way to change the superclass of a class

Whidbey would be the first reasonable CLR to start with (and it's a ways out). The MS roadmap is not completely clear to us on this. What it amounts to is this - we would have to create our own dynamic layer on top of the CLR, and that would be a non-trivial task. In the process, we would lose some of what makes Smalltalk... Smalltalk. Additionally, some of the migration (on the part of customers) would be onerous - existing GUIs would need to be redone. If we could get there, the end result would likely be good for customers (with the above caveats). The problem is, it might be a good ways out - due to the current lack of support in the CLR. And before someone else brings up Iron Python again, note carefully what Patrick said about it.

What about OST/VW co-habitation?

This would mean OST uses the VW VM (with changes made by us in both directions as required). It would not mean sacrificing existing OST services - these (GUI, COM, etc) would move to the VW VM. The end result would be that VW code and OST code would be (mostly) portable between the two systems - potentially opening up the entire VW stack to OST users. Again, we would build an OST compatibility layer on top of the VW VM. The difference here is, all the engineering effort (and code) would be accessible to us, so changes could be made on either end.

In either case - VW VM or CLR - we really can't deliver an interim release. Either the migration will be done or not; once the decision is made, we'll be going in that direction until a final release is ready to be used. The biggest benefit: We can make this work exactly like the current ObjectStudio product. The caveat there is that going all the way there may limit our ability to make use of extant VW tools in VW. On the other hand, there may well be migration effort (the level would vary) if we made use of the existing VW tools.

How does this match cuctomer needs?

  • State of the art VM
  • Faster access to new technology
  • Faster execution
  • Better GUI
  • Better integration into (new) MS technologies, but less seamless (than a .NET direction)
  • Better tools
  • Support for Linux (and other platforms) - with migration effort

To get to ObjectStudio .NET - it's a radical approach. It's also highly dependent on Microsoft's direction and delivery schedule. It's also the case that we would need access to outside knowledge (i.e., raising the expense of doing this). Translation to you - it would take longer. What about using VW - all the knowledge is in house, and the delivery would be under our control.

This is the point where we need help from the ObjectStudio community. We want - and need - your feedback.

 Share Tweet This

BottomFeeder

Three new Game plugins

December 8, 2004 8:52:50.802

Hat tip to Steve Kelly for providing me updated versions of three games - Xonix, Asteroids, and Golden Monkey. He packaged them up as BottomFeeder plugins, and they are now available as updates on the dev upgrade path. Very cool

 Share Tweet This

wwuc2004

Tools and Pollock

December 8, 2004 8:52:36.703

This is mostly demos from Vassili - there aren't really many slides (and he's used a VisualWorks framework for slides anyway...). So where are we in terms of tools in VisualWorks? What we have now are "legacy" tools from the ParcPlace/ObjectShare days, plus new tools that have been submitted from the community. At present, tools integration is kind of like having a single fire hose to put out multiple house fires - there's a lot of integration that needs to be done. What we'e done over the last few years is to concentrate on the user interaction level - making the tools more user friendly and modern (especially the look/feel). We're going to see a few Pollock demos, but - here's a caveat - Pollock is currently at Feature Set I - meaning, it's partially complete, but not yet "baked". In other words, some of the underlying infrastructure may well change.

First up - Trippy, the inspector introduced in VW 5i.3:

Pragmas in VW.


size
	<primitive: 62>
	^0

The code in the method does not execute - this calls into the VM. It's not really a pragma. What Vassili is talking about is things like menu pragmas:


browseAllProbedMethods
	<menuItem: #(#_BrowseProbes #pdp '&Browse Probes')
		icon: nil
		nameKey: nil
		menu: #(#menuBar #probes)
		position: 30.1>

That's Smalltalk code that gets executed, not a call out to the VM (or in the case of DLLCC, to a DLL). The syntax is somewhat limited - you can't just write any old Smalltalk code. If you look at the byte code though, you'll see some attributes - you get a method with a label:

if you define new pragmas, you need a (class side) definition method. Initially, pragmas came in to allow ad-hoc extension of menus (without the issue of multiple applications waxing the same method):


example
	<example: 1 difficulty: #medium>

	"code here"


pragmaDeclaration
	<pragmas: #instance>

	^#(example:difficulty)

So - how do we find pragmas if we want to browse for them? Well, clearly you can iterate over a set of methods and look for annotations. However, when a class gets a pragma added you'll get a change message - #instancemethodChanged (for instance side pragmas). There's a class called Pragma that has some protocol making it easier to find them in the system. Immediately, Joseph Pelrine noted that this could be used to make it easier to locate test cases in SUnit.

Moving on - the bottom of the launcher is actually a tool dock, to which you can add your own tools. There's a monitor for Store and for change sets there already:

So to add something to the tool dock, add a method to the launcher:


applicationOpener
	<component: 100 class: #[BrowserOpener] #spec #windowSpec>

	^self newTool: BrowserOpener

So what about adding auto-completion? It turns out that there's a tool module for that - in the #postBuildWith: method you add a completionDriver - have a look at the way it's used in method lookup, etc. in the the current system. There's a reusable dialog as well - IncrementalSearchDialog


dialog 

	requestWithSuggestions: #('one' 'two' 'three' 'four')
	filterBlock: : [:entry :suggestion | entry, '*' match: suggestion].	

As a side thing, Vassili is showing us ad-hoc delegation with pragmas - very cool. You can easily define a set of allowable message names to relay onto a defined object.

Finally, we're looking at the Settings framework. That's a cool piece of work - I've mucked with it a fair amount in BottomFeeder. Learning the settings framework will walk you through pragmas as well. One nice thing I discovered is that it's easy enough to change the settings storage mechanism. VW uses an XML file, and allows you to save individual settings pages. I was able to override that in a subclass to save to an ini (key=value pair) style file. It's a very nice piece of work. The nice thing is this - if you mess up when defining a setting, the settings tool itself handles it (showing a "debug" button in development

Now on to the Pollock section of the presentation. I won't have screen shots for any of this stuff, since all the relevant examples aren't available to me at the moment. Looking at tooltips - In VW, the tip pops up as soon as the mouse goes over the relevant screen object. On the Mac (for instance), you need to linger the mouse over the same place for a moment before a tooltip appears. The way this works is a finite state machine, cycling between armed (ready to, but not yet), cool (not active), warm (firing), reaper (get rid of the tip). Most systems (like the mac) don't do "Warm" - VW does. That's why you get a tip for each toolbar button as you move the mouse across the toolbar - the FSM cycles between "warm" and "reaper".

We are having a look at the Pollock version of the completion driver now - same thing as the current implementation, except that the code is cleaner.

 Share Tweet This

wwuc2004

XP in Cincom Smalltalk

December 8, 2004 8:52:18.190

Vassili Bykov and Joseph Pelrine on XP - it's an unscripted talk. Joseph - "Without VisualWorks, and Envy, and Gemstone, XP never would have happened. Something else might have happened, but it would have been as crappy as many other things in Java".

Joseph: What would you do differently, if your customer could only pay you for one day of software development? Especially if, by doing something different, he would be able to afford yet another day of software development? What would become important, and what would become less important?

The consultants view: The customer is healed when all of his money has been removed. To increase the quality of your code, bring these practices into your team:

  • Pair Programming
  • TDD
  • Refactoring

You should also have some (minimal) coding standards. A team should be able to agree on some set of them that makes code consistent across the development team. Continuous integration - always being able to have a functioning version of your project - is crucial. If it's a PITA to do a build, you'll do it less often...

This talk is more like an interactive bull session between Joseph, Vassili, and the audience. There's a lot of good humored back and forth with the audience. Jospeh and Vassili are now launching into a TDD session with VisualWorks - starting with a test for a simple application. One thing right off - his first test is a simple one that passes - and Joseph points out that this is a bad idea in general - it gives you no new information When you write new code, the test should fail (because it should precede the new code). So they walk through a simple exercise of creating a Person class, with the test driving the required code. It's all basic stuff, but it demonstrates how a pair programming, TDD session ought to run (at least, how one in front of a live audience should run :) ).

A small aside at this point about the benefits of Smalltalk - it's a real boon to have the refactoring/test tools built right into the development tools - you don't have to step out of one toolset and into another in order to get things done. To get from where you are now to TDD - take what you normally do in a workspace and slap them into a test class instead - it automates the process.

Finally, Joseph is previewing what's coming in the next rev of SUnit - TestErrors and TestFailures will be full classes, and he's added report logging (using the same format that ANT uses). "If you don't know enough to write the test, do you know enough to write the code?"

 Share Tweet This

itNews

IBM PC Refactored?

December 8, 2004 8:52:02.642

InfoWorld points to a LinuxWorld story on a fascinating possiblity in the PC space - could IBM be interested in buying Apple?

When the news got out last week that IBM is considering selling its PC unit, rumors started swirling that Big Blue may be maneuvering to buy Apple. LinuxWorld has the story here. The LinuxWorld article says that swallowing Apple would be one way for IBM to avenge rival Microsoft for that "bad blood over early versions of Windows."...

The big question - would Apple still be Apple after such a thing? I have my doubts...

 Share Tweet This

development

Re: Lightweight, Portable, and What, Again?

December 8, 2004 8:51:47.824

In response to this post, Patrick Logan has some thoughts on an appropriate place to start for a "Universal VM":

I would consider Erlang/OTP, Gambit Scheme, Cincom (VW) Smalltalk as better starting places (among several others), for inspiration if not implementation in support of this vision. Note that Gambit Scheme has hosted Erlang in a prototype that appears to be roughly equivalent in scalability. Note that the Cincom Smalltalk VM appears to be scalable for web systems and capable of running Python a good bit faster than CPython. So I am nominating them as candidates for hosting multiple languages on multiple platforms in support of the dynamic vision above. And with a fair bit less overhead than is apparent in the dotnet runtime as per its own definition.

Believe me, this is something we've thought of - and it's something we are seriously considering...

 Share Tweet This

smalltalk

Smalltalk and Version Control, again

December 7, 2004 20:13:00.480

There were a lot of comments on this post, as well as posts on other blogs. Peter William Lount has some more commentary up today

 Share Tweet This

blog

Umm, no

December 7, 2004 20:04:26.633

I think Scoble hasn't thought this one through:

Om Malik says that the personal blog is dead. Oh, yeah! Well, personally, I know a whole lot of people who are publishing blogs for just their friends and family. You wanna read some blogs that have very few readers? Just click randomly on the page at Weblogs.com. You'll find lots of blogs you haven't heard of yet. The question is, are any of them interesting?

Or, visit MSN Spaces and look at the "just updated" part of the page.

But, sadly, OM is right. It's getting harder and harder to keep up with the rapidly-spreading blogosphere. In the end, it's going to be automatic tools that really help you find the good stuff.

You mean like TV killed radio? Or do you mean the way Radio had earlier killed off magazines? And as useful as Amazon's "readers who bought this also bought blah" is, I still tend to focus in on new books by authors I already like. In the same way, I seriously doubt that I'll cede control to a search bot for all my news - I'll continue to personally look for people who I find interesting. Search will get better, but it will augment, not replace what we do now.

 Share Tweet This

wwuc2004

The first day ends

December 7, 2004 19:55:13.363

The first day of the show is over. It was a good day - lots of good conversations with users of VisualWorks and ObjectStudio, lots of good presentations. My notes are up - scroll down. I'll get Niall's copious notes at some point in the future and post those as well. I got the pictures from Andrew McNeil, our guy in Sydney, Australia. Here's how I looked this morning, talking about the product roadmap:

 Share Tweet This

wwuc2004

DotNet Connect for VisualWorks

December 7, 2004 19:52:22.146

Andreas Toenne of Heeg is going over the DotNet connect for VW. .NET is Microsoft's managed platform (their answer to J2EE). Huge, growing library of windows libraries and services. It's (in theory) the future development/deployment platform for Windows based applications. It is easier to work with than C++ - a big step up. Not as productive or simple as Smalltalk, but a step up for the C++ world. The .NET connect is our way of interfacing VW applications with a C# (or other CLR based) application. Most of this talk is demo again. The demo is a simple one - captures mouse clicks, and sends them to VisualWorks to chart.

First step - install the DotNet connect into the environment (load the parcel using the parcel manager). Second step - create (edit, compile) the C# application. There are already some pre-generated links for things like WindowsForms.

Next - start the wizard. The wizard allows you to adjust settings - what to import - the assembly or assemblies in question, for instance. The wizard imports all the methods/constructors (notifying you of problems along the way) - allows you to filter out any you don't need to hook to as well. What's generated is some C++ code that needs to be compiled (an nmake file is created as well).

Important here - you need not buy anything from MS here - you can download the free tools from MS (all command line). You can also, of course, work with VS itself.

Next - Load in the generated Smalltalk code (the wizard created that as well). Right now, this is a set of (load order important) .st files. By the next release, this step should be a lot simpler. What comes in is a namespace, some stub classes that are needed, and an external interface class that hooks to the DLL (generated in the step above).

Finally, we need to link up the events that are coming from the dotNet dll with your Smalltalk code - here you need to write some code. I'm sitting at the back of the room here, so I can't actually make out the code itself - there are demos shipping with VW 7.3 (including the NC). At this point, you often need to go back to the generated C interface and change the relevant API to be threaded.

There are a few choices for talking to a .NET application:

  • Expensive
    • Web Services
  • Intrusive
    • CORBA
    • COM
  • Direct (the DotNet Connect)
    • Custom marshalling
    • Communication via TCP or C calls
    • proxy in the .NET world

The way in for us is through the unmanaged bridge that MS put in for all the existing C/C++ code out there. On the VW side, a proxy layer was built to manage that communication.

Limitations

  • The CLR is a superset of C# or C++
  • Not all legal types are importable
  • Some illegal types are not detected
  • No support for Mono at this point

The documentation covers all the limitations (I didn't get all of them down here). The performance is very good - method calls and returns are very fast.

Future steps:

  • Next version: NConnect
    • 100% integration with VisualStudio
    • Project-Wizard generated solution
  • DotNet GUI inside VisualWorks Windows (without any detour through COM)

You can see a high level view of this in our DotNet Whitepaper.

 Share Tweet This

wwuc2004

ObjectStudio on the Web

December 7, 2004 19:52:07.146

Alan, Len, Andreas, and Mark are demonstrating a usage of Opentalk to publish data from ObjectStudio to the web. It's a simple demo - an SSP page and servlet on the VisualWorks side, with Opentalk used to communicate back to ObjectStudio for the data.


"get the name from the form data and then use it to get data from ObjectStudio"
name := self request anyFormValueAt: 'name'.
data := self class defaultServiceReference select: name.

Note - you can't just expect to pull a stock ObjectStudio client/server application and push it behind a VW web application - you have all the single user/multi-user issues that would need to be addressed. The summary from Alan - it was more work to create the simple HTML pages than it was to code up the data transmission piece.>

Question: Has anyone used this in the real world yet?
Answer: Yes and no. There are some OST customers using the preview version that shipped with 6.91. As well, Opentalk itself has been used in production by many people using VisualWorks.
Question: What about the documentation? Is it well documented?
Answer: Yes, the documentation shows all this.

 Share Tweet This

wwuc2004

Alan Knight - Web Applications

December 7, 2004 19:43:21.219

Now we have the first technical talk of the talk of the conference, after my overview of product directions. Alan's talking about Web Toolkit - the VW Web Application server capabilities. This all started (for VW) back in 1995 with VisualWave. in 2001 we introduced the Web Toolkit with VW 5i.4 - an ASP/JSP compliant toolkit. It started out sharing most of the infeastructure with Wave, and has been increasingly sharing infrastructure with Opentalk - instead of 2 server frameworks, we are converging towards one.

Why WTK? "Standard", but better. It's simple, reliable, secure. It's also easily debuggable - i.e., - slap a halt inside an ssp page and bang - into the debugger. Contrast that with the equivalent in WebSphere (etc) jsp - lots and lots of extra boilerplate. What Alan is really on about is the latest and greatest in WTK, along with some tips

  • Internationalization
  • Scalability
  • Headless and Subsystems

With 7.3, we have better international character support. One of the issues is that the web started out very English-centric, and international support has been very much a catch up game. One of the main things we did in 7.3 was to separate the locale and charset - which had been tied together in previous releases. What are the main charset issues?

  • The web runs on ISO-8859-1
  • International characters can be in domain names, urls, forms, etc....

The probem with URL encoding? What encoding is it? The standard seems to be converging towards utf-8. Typically, browsers use the encoding of the page containing a linked url. This tends to get ugly. Here's what we do:

  • Try utf-8
    • If it doesn't decode, it's not utf-8 (go to next encoding)
    • If it does, we'll try to see if we could resolve the result (to a servlet, wave app, etc). If we can, we do
  • Can we find a session (in WTK/Wave)
    • If so, does the session have an encoding? If so, try it
  • Fall to default if not
  • Configurable - you can change/disable it
  • Form data is different - you just have to know. Use accept charset and hope that the browser honors it.

What about scalability? Pure Smalltalk scales quite nicely (proxying from web server directly to the WTK server or exposing the WTK server directly). Gateways allow connectivity and interoperability. We've got a Perl gateway in this release, primarily for use with Apache. We also updated ISAPI. NSAPI and FastCGI have been deprecated. Configuration of these can be a pain - you need to check the doc for your web server carefully.

What about memory tuning? You need to look at both ObjectMemory and MemoryPolicy. In 7.2.1 and 7.3 we have modified these - LargeSpace has been made much bigger - this is to deal with socket buffer issues. The upper bound has been moved down to 160MB, so you need to check that. We have implemented some buffer reuse, but it's not yet optimized. You really, really need to test this out for yourself!

Load Handling? There are now parameters for:

  • Within an image
    • Maximum connections
    • Process priorities
    • Socket parameters
  • Delay on accepting new connections
    • Accept that you can't handle everything
    • Better to serve a smaller number of connections well, instead of a larger number badly
    • Degrade gracefully

There is an Opentalk based load balancer that ships with the product. There is also a more general (and more generic) Opentalk balancer that well be adapted to replace the WTK specific balancer. We do not support session migration.

Subsystems/Headless support. We added a defined startup/shutdown procedure to this release. Before, there were a few big methods in ObjectMemory that did everything. We've refactored it all. They are kind of like Unix run-levels. There are subsystems for the Windowing System, for User Applications (main() ), for Opentalk. This replaces being a dependent on ObjectMemory. That's still supported. You can specify pr-reqs and command line options. This makes headless operation more definable. You can easily drive it this way:


WindowingSystem canActivate: false.
WindowingSystem canActivate: true; activate.

There are a number of useful command line flags:

  • -headless
  • -headfull
  • -pcl
  • -filein
  • -doit (evaluates code and runs)
  • -evaluate (evaluates code and quits)
  • -settings (specify an xml settings file)

You can disable these for end user applications!

Heeg has created a nice goodie called VisualWAF - it's a layer above WTK for application development. There's also Seaside, which is now shipping as a goodie in 7.3. Then there's WithStye, an XML editing/display toolset for VisuaLWorks.

Question: from Georg: What do you use to create a simple, easy to edit website? I recommended WithStyle, and Andrew McNeil has demos available.

Question: What about multi-language websites? You can have specific tags that specify their encoding. Answer: That's fine, the server is ok with that. It's only an issue with form data, query data (etc) that comes back - need application specific logic there.

Comment - several people would be interested in the WithStyle demos - we'll have that going in the "Meet the Experts" room.

 Share Tweet This

wwuc2004

Opentalk for ObjectStudio

December 7, 2004 19:41:45.357

Len Lutomski and Andreas Hiltner are up with the new Opentalk for ObjectStudio stuff - they'll have a live demo of VW <--> ObjectStudio interoperability. Cross platform as well, with the VW side running on a Mac.

So, There's a demo of a chat application (shipping on the CD) - and they'll go over the cross dialect portability issues. First, what's Opentalk? Opentalk is the framework used in VW for the creation of communication protocols. ObjectStudio 7.0 contains a release quality version of Opentalk ST-ST (Smalltalk to Smalltalk). ObjectStudio was extended quite a bit to achieve this - the upshot is that Opentalk in ObjectStudio is identical (at the user level) to Opentalk in VW - so user code will move between the two easily.

ObjectStudio now supports multi-image applications, including VW images on non-Windows systems. This extends support for OST features to VW users, and of VW features to OST users.

Now they are showing the demo - chat windows on Windows in ObjectStudio, and their analog over on the Mac in VW.

Len's now going through some basics. Three topics:

  • request brokers
  • initial references to remote objects
  • pass modes

This stuff is all discussed in the doc. A request broker implements the API of interest to applications. A protocol implementation consists of

  • an adaptor - mapps ST messaging to a protocol type
  • a transport - implements transport layer (e.g., TCP)
  • a marshaler - marshals/unmarshals objects onto/oof the wire
  • a dispatcher - regulates message handling on either end of the wire - typically process per message

Creating a broker (you can specify the address for systems with more than one network interface). A broker is actually a fairly complex object - the simple API below flares out to define all the parts described above (adaptor, transport, marshaler, dispatcher). That means that you can customize these parameters, or derive your own protocols and slot them into this api easily.


"create it"
broker := RequestBroker newStstTcpAtPort: 1900.

"start the broker"
broker start.

"stop the broker"
broker stop.

Now, why would you want to customize the dispatch? In VW, a new process is just a lightweight VW process. In OST, it's a Windows thread. That could tie a Windows system down quickly - you'll want to configure pool dispatch. There's some basic protocol for testing connections - echo and ping. Echo sends an object across and then gets it back. So you test marshal and unmarshal on both ends.

Now, to actually accomplish something you need to reference some object on the remote side. A reference is a local proxy object that re-implements doesNotUnderstand: to forward messages. When you send a message to a reference, you are sending it across the wire. There are two ways:

  • Programmatic construction
  • Server registry

"create"
broker objectAdaptor 
	export: someObject 
	oid: #greeting.

"reference remotely"
remote := clientbroker 
	remoteObjectToHost: 'localhost' 
	port: 1907 
	oid: #greeting

"server registry"
broker registerService: Random new id: #random

"client"
remoteObject := (clientBroker
					activeBrokerAtHost: 'localhost'
					port: 1907)
				serviceById: #random.

What about pass mode control? Pass mode is how it's transmitted - for instance, by reference or by value. Copying a large object across the wire can be expensive. Passing by reference is cheap, but messaging that object may be expensive. You need to balance the two. By default in Opentalk, most things (not immediates, literals, few others) are passed by reference. You can override that at the class or instance level - there's an API to coerce the pass mode. You can customize down to the instance variable level if desired. Opentalk supports several pass modes and pass mode controls - check the documentation.

What about cross dialect issues? You need to be aware of them - they are all documented. Base classes are mapped already - so VW and OST collections pass between each other seamlessly. There are some disparities in Magnitudes:

  • OST Decimal, VW FixedPoint
  • Float/Doubles (ObjectStudio only has the equivalent of the VW Double)

The error messages coming from OST and VW will differ as well (i.e., the error strings from things like MNU, for instance. That wraps things up, and unfortunately, time was a little rushed. I think a number of people are going to want to see this in the demo room later. Another upshot - having done this, porting Opentalk to ObjectStudio means that it should be fairly easy to port over to other Smalltalk implementations.

 Share Tweet This
-->