StS2005

Smalltalk Solutions Daily Update: 6/12/05

June 12, 2005 20:09:23.468

Smalltalk Solutions 2005 is coming up quickly - it starts on the 27th! Register now, so you can find out what's going on in the Smalltalk world:

Unit Testing Seaside Components

presentation

Shaffer, C. David: Westminster College

Tuesday 2:45 pm to 3:30 pm

Abstract: I will present the freely available SeasideTesting framework and a small representative set of tests. SeasideTesting is a framework that extends SUnit to simplify developing and running tests of Seaside web components. This framework is unique in that it is designed specifically to allow both testing the rendered HTML result and direct access to the component instances. The advantages and some challenges that come with this capability will be discussed.

Bio: I am an assistant professor of Computer Science at Westminster College in Western Pennsylvania USA. In that capacity I teach all levels of undergraduate Computer Science. I am also sole proprietor of Shaffer Consulting and have been developing software in Smalltalk, Java, Python, C, C++ for more than 15 years. Recently I developed payroll and retirement management software and business to business web applications. I have several years experience with Java/JSP and also develop web applications using Python.

See you in Orlando!

 Share Tweet This

BottomFeeder

Speaking of scripting

June 12, 2005 19:27:54.298

BottomFeeder includes a workspace that allows scripting - but it's deeper than that. If you save your script to file called .btfrc and put it in the same directory as the image (or exe), it will get filed in at startup. For instance, I just had one of the IRC regulars ask me about a change to the localhost server that Bf runs. If you hit this url - http://localhost:8666/btf - while Bf is running, it will give you a list of your subscriptions, along with the top five items. Well, what if you wanted only the new items? Simple enough, if you have a small change to one method:


printHtmlOn: aStream

	(self link isNil or: [self link isEmpty])
		ifFalse: [
			aStream
				nextPutAll: '<a href="';
				nextPutAll: self link;
				nextPutAll: '">'.
		].
	aStream nextPutAll: self title.
	(self link isNil or: [self link isEmpty])
		ifFalse: [
			aStream nextPutAll: '</a>'.
		].
	(self items notNil and: [self items notEmpty])
		ifTrue: [| toPrint |
				toPrint := self allNewItems.
				aStream nextPutAll: '<ul>'.
				toPrint do: [:each | 
							aStream cr.
							aStream nextPutAll: '<li>'.
							each printHtmlOn: aStream].
				aStream nextPutAll: '</ul>'.
				aStream cr].
	aStream 
		nextPutAll: '<br/>'; 
		cr

The only change was in the line: toPrint := self allNewItems. That had explicitly grabbed the top five before. Now, you do need to know the Bf API to make this sort of change. However, the cool thing is that it doesn't need to be a one-off effort. I've used this feature myself, and I know a few other people who have as well. The nice thing is that I didn't have to go out of my way to add scripting support to the application - it just happened. In fact, I wasn't even the first person to notice :)

 Share Tweet This

travel

Visiting Brussels and Beyond

June 12, 2005 18:02:04.300

My family and I will have a few days in and around Brussels, Belgium this summer (in August, after ESUG). We've got no clear idea at this point as to what we want to see - we have a number of thoughts, but they are not organized. We have 4 days to spend - and we don't want to spend most of it in a car or train. Anyone have any good suggestions? Thanks!

 Share Tweet This

smalltalk

Smalltalk - not just for playing

June 12, 2005 12:18:13.509

Interesting post on the power of Smalltalk, but with an odd entry point:

The first thing I noticed was that the Smalltalk community is still alive allthough a bit muted. The impact of Java has definately taken its' toll though. A quick search on jobserve for Smalltalk vacancies identified only 10 or so and they appeared to be for maintance work. It looks like the remaining Smalltalkers are using Smalltalk just out of interest or just for fun in their spare time. With the exception of one or two German Consultancies, most of the Smalltalk related websites were either academic, or open source related - very few businesses.

Here's a Google search for Smalltalk - The Cincom Smalltalk web page comes up 4th, and the Why Smalltalk page 3rd. Admittedly, the Squeak entry in second place might emphasize an academic orientation, but there's plenty of commercial information right there. The top entry, for Smalltalk.org, republishes content from the CST blogs, so that will lead you to plenty of good information as well.

The rest of the article is well worth reading - it's a good promo for the ease of use and power of Smalltalk:

I got to put this idea to the test the other day. Whilst playing with Squeak, my girlfriend decided to pop herself on my knee and took a look at what I was doing. I was playing with the Alice framework port (Alice.org). Alice is a3D graphical framework which allows you to create a 3D world populated by Actors. On the screen was a pink bunny rabbit wearing dark glasses and carrying a drum and a mallet. I entered a few Smalltalk expressions asking the system to 'do-it' each time, and watched my girlfriends expression as the bunny respond to my every command. She soon caught on, and started entering commands of her own: "bunny head turn." Getting bored I was about to issue "bunny destroy" when she stopped me. "No you can't do that to such a cute bunny, make it beat the drum instead". At this point she grabbed the keyboard an typed "bunny beatDrum", but the system responed with: " bunny didNotUnderStand".

That's why I include a workspace in BottomFeeder - I actually use it myself for scripting and experimenting. That kind of end application scripting has led to actual product features, and is something that is well nigh impossible in Java or C#. In applications shipped in those languages, you have a dead end - if the developer didn't consider it, you're just done. Does this mean that just anyone can start coding in the Bf workspace? No, you do need to know the APIs and class names - that's a limitation. But at least you get far enought to have the limitation :)

 Share Tweet This

development

Unnecessary damage

June 12, 2005 11:56:03.453

Incipient Thoughts makes a point about inheritance and polymorphism that points out a problem common to OO development - without regard to implementation language:

In every OO class I teach, I introduce encapsulation and polymorphism as the primary OO tactics, with inheritance a distant third. It's hard to tease apart polymorphism and inheritance, because most OO languages are based on an intimate fusion of the two, unnecessarily.
Inheritance is a very strong relationship between objects. It makes it hard to tease anything apart. Some people experience maintenance problems as a result of pervasive inheritance in OO systems. Justifiably, these people then become skeptical about polymorphism as well, because it is so strongly linked to inheritance. They are then tempted to give up on OO altogether. This is throwing the baby out with the bathwater.

The two don't have to be so tightly linked, and - in the place OO originated (Smalltalk) - they really aren't. I have plenty of polymorphic objects in BottomFeeder that have no inheritance relationship at all. However, the two are commonly linked in the teaching of OO, and it's not unusual to see large inheritance trees in Smalltalk projects. Which is too bad, because Smalltalk makes ad-hoc polymorphism far easier to achieve than Java, C# - you don't have to go out of your way to define a formal interface, for instance.

There's a good example in the post using an "edit" feature of a Wiki, which points out how inheritance is an unnecessary complexity in this case.

 Share Tweet This

logs

What's up with search engine access this week?

June 11, 2005 23:30:13.327

Here's the search engine accesses to my blog over the last week - I'm not really sure I understand what happened here - there was a rather large spike from last week:

6/11/05 Search engine look

So what's up with that? Why the sudden increase in search engine accesses? Strange stuff, these logs.

 Share Tweet This

logs

Weekly Logs - 6/11/05

June 11, 2005 13:20:59.259

Well, it's time to have a look at the logs again. First up - BottomFeeder weekly downloads.

PlatformBottomFeeder Downloads
Windows520
HPUX475
Mac 8/9343
Sources268
Linux x86209
Mac X172
CE ARM86
Update38
Solaris15
Windows98/ME11
Linux Sparc8
AIX4
SGI3
CE x862
Linux PPC2
ADUX1

That's an average of 308 or so a day over the last week, which is where things have been at lately. Being cross platform has its benefits - A lot of my download rate is for platforms that have no other viable RSS/Atom answer right now. Let's take a look at the stock HTTP accesses to the blog site:

ToolPercentage of Accesses
Mozilla44.4%
Internet Explorer31.1%
Other11.6%
Java2.6%
Google Bot2.5%
BottomFeeder2.5%
Net News Wire2.3%
MSN Bot1%
BlogLines1%
Opera1%

A little more variety than last week, but not vastly different. What I'd really like to do is compare User Agent access to the main cincom site and the blog site - I suspect that IE accesses over there are a lot higher. Finally, let's look at the RSS report:

ToolPercentage of Accesses
Mozilla23.4%
BottomFeeder17.9%
Net News Wire14.4%
Other15.4%
BlogSearch4.9%
NewsGator4.2%
SharpReader3.5%
Safari RSS3.3%
BlogLines3.2%
Lilina2.1%
Planet Smalltalk1.8%
Feed Tagger1.7%
MSN Bot1.7%
Internet Explorer1.6%
Feed Demon1.5%
Liferea1.4%
RSS Bandit1.2%
Feed Reader1%
Shrook1%
Jakarta1%
Python1%
Google Bot1%
JetBrains1%

You can see that I trawled my way through the "Other" category (compared to last week) and added a few entries - the variety of tools in use to read RSS continues to grow, at least according to my logs.

 Share Tweet This

media

Rewriting History

June 11, 2005 11:46:59.504

Sometimes, an industry analyst gets a story so very, very wrong that they try to completely airbrush history. Members of the MSM like to accuse bloggers of this, but I just found a whopper example from Tom Yager of InfoWorld. On June 6th, before the Apple conference, he wrote about the (then rumored) Apple/intel thing. I can't link to the story because it's just gone - instead, I took a photo of it:

Yager blows the Apple story

Now, it's hard to make out in there, but you can click for a bigger image. Compare that with the posted commentary from Yager on June 6 (note the "updated 9 June" snippet on the left). Here's a piece from the dead tree version:

Might Apple sell an x86? I doubt it. Might Apple shrink-wrap OS X for PC Systems? Who cares?

...

I'll tell you my pet scenario: IBM leaked the details of the top secret PowerPC 970MP processor to needle Apple into committing to a volume purchase. Apple doesn't like to be jerked around, so it had a sit-down with Intel over cucumber sandwiches and chortled, "You must promise not to tell anybody about this"

Compare that to what's posted at that link - some crow eating, but not a lot, and the print column is straight down the memory hole. The point isn't that Yager got this wrong - heck, go Google intel and Apple and see how many other people got this stuff wrong. Heck, look here, on my blog, and see where I fantasized about Apple "thinking different" and using the iTanic. Yager wants to airbrush history though: "Me? Predict that Apple would never, ever go to intel just days before it happened? Never, I never said such a thing! Why, try finding it in Google!".

So much for all those editors and fact checkers that keep "professional" writers honest - as opposed to the bloggers, who can just re-edit history. Yeah, right...

 Share Tweet This

marketing

Slamming a blog strategy

June 11, 2005 10:48:01.423

Scoble slams UPS in response to this article by Robert Manning of UPS. However, Manning does have a few good points. Rather than rush out and start blogging, you should have some idea what your plan is if you go at it from the "corporate blog" side. On the other hand, if you approach it as Sun and MS have - just let the employees go out there and provide a human voice rather than a corporate drone - then you can be more laissez-faire about it.

However, that doesn't mean that corporate marketers get to ignore the blogosphere; far from it. Witness the Kryptonite and Kensington issues, for instance - would you rather let those things sit and fester, or be able to respond immediately? That Kryptonite response was from weeks after the incident, when the damage was already done. As best as I can tell, Kensington has yet to respond.

What you product marketers and product managers need to be doing is paying attention to product mentions. How? Via search feeds. Using BottomFeeder as an example, I can set up search feeds using Feedster, Google, Yahoo, MSN, BlogPulse, BlogDigger, A9, and Three headline news services. I can also add searches that need to be manually set, like those from PubSub. Here's what it looks like:

Search Feed Results

You can click that for a bigger image. The point is that by subscribing to a search for "kensington lock" I can find all the references - positive and negative - that flow through the sphere. For my product - Cincom Smalltalk - I search on

  • Smalltalk
  • Cincom Smalltalk
  • ObjectStudio
  • VisualWorks
  • Cincom

Across a number of the search engines. When I find positive references, I can publicize them - maybe even approach the person or company in question for a success story. When I find a negative response, I can follow up and get more details. That latter part is where a corporate blog may come in.

If you find yourself responding to commentary that comes in this way in a repetitive fashion, it may well be worth your while to get an FAQ posted. From there, you may decide that you need a more open, interactive forum - like a blog. Either way, you need to be tracking the commentary - because the positive and negative points are being made whether you engage them or not.

 Share Tweet This

BottomFeeder

Plugging the pieces together

June 10, 2005 20:42:54.257

Over the last few years of development work on BottomFeeder, the application has changed in one very important way - what started out as a monolithic, big ball of code has become a set of reusable components that have been plugged together. That's not true in all cases; the RSS parsing is still too tightly coupled to the application - a looser coupling could make for a fully reusable Smalltalk library for dealing with RSS and Atom. However, that's the exception here. The application now includes, between core components and plugins, 30 pieces that can be updated in a (mostly) independent fashion. Of course, updates to one sometimes require new APIs available in another, but you get the idea.

So what's there? Let me walk through the list:

  • SpellChecker - a pluggable spell checking module. It depends on the presence of the ASpell shared libraries, which are readily available for Linux and Windows, and can (in theory at least) be compiled for other platforms
  • GIF Support - a library for reading GIF format
  • WinGDIPlus - a Windows specific library that uses native libraries to convert various image formats into something that Smalltalk can use
  • EpiWin32Folder - a Windows specific library that enables use of the directory selection dialog (as opposed to the file selection one)
  • Emote-Support - used mostly by TypeLess, it provides a set of emoticons, enabling auto-replacement of ASCII-art
  • ExtraEmphasis - a library that simplifies various VW font usage scenarios
  • ExtraActivity - a library that makes it easier to animate Visual Components. Used mostly bu WithStyle
  • Weaklings - adds a simple "Weak" mechanism for instance variable slots in an object
  • VRCommonDialogs - a cross platform set of common dialogs
  • Http-Overrides - this is really part of the NetResources library. It separates out the overrides required by that library, so that changes needed after a new VW release are easier to track down
  • NetResources - a basic library for wrapping the VW net clients libraries with a highter level API
  • NetResourcesHTTP - a high level API for HTTP access that simplifies access, and adds support for things like caching, digest auth, and more
  • PatchFileDelivery - a general settings driven library for delivering application level updates (parcels) via HTTP. Supports download and save, and download and load immediately
  • Browsing-Assist - a library that supports spawning a web browser on an URL across platforms. On Windows and Mac, this "just works", and has APIs for spawning new or reusing. On other platforms, the browser must be specified
  • OSTimeZone - a cross platform library for setting the time in VW to match the PC clock
  • XmlRpcClient - a library for making XML RPC calls and handling the responses
  • XML Configuration Files - a library for storing configuration information (or serializing objects) in an XML format.
  • BottomFeeder - the basic BottomFeeder application itself
  • Twoflower - the Twoflower Http parser, used by WithStyle if LibTidy is not present or fails
  • WSBundle - The Software With Style code base
  • LibTidy - a library that wraps the C based LibTidy. This library takes arbitrary HTML and cleans it up, returning valid XHTML.
  • Win32TaskbarSupport - makes VW Windows and menus cognizant of bounds, including the taskbar - prevents menus from disappearing behind the taskbar
  • Windows TrayIcons - a Windows specific library with a simple API - allows you to drop an application into the tray
  • IRC-BottomFeeder-Typeless - the Typeless IRC plugin to BottomFeeder
  • Blog-Tools - the Blog posting plugin, which supports Blogger API, MetaWebLogAPI, and the MT API. Also available Standalone, as BottomLine
  • WinMineGame - Minesweeper
  • GoldenMonkey - a game
  • Steroids - Asteroids game
  • Xonix - the old Xonix arcade game
  • EnclosureHandler - manager for downloading/saving enclosures automatically

That list has grown over time - I started out with three components that could be updated at runtime! I should also point out that an awful lot of those components were written by other people - in particular, Software With Style is responsible for the excellent NetResources and WithStyle components - without which, BottomFeeder would be a lot less nice.

 Share Tweet This

sports

Holy contracts batman!

June 10, 2005 18:58:32.783

You have to see it to believe it:

The "cursed'' 1919 contract that shipped Babe Ruth from Boston to the Bronx sold at auction Friday for a staggering $996,000, delighting its new owner -- a die-hard Yankees fan -- and a hunger-relief group designated to receive a financial windfall from the sale.

All I can say is, whoa....

 Share Tweet This

humor

Humorous local media moment

June 10, 2005 18:20:17.397

My wife spotted this headline in a local newspaper - I don't think I need to add much commentary:

humorous headline
 Share Tweet This

development

Too many bad ideas to count

June 10, 2005 16:47:18.902

Richard Mansfield has been scarred by the "C" language family. In this article, he tries to explain why OOP is bad. What he mainly explains is something very simple - he's only been exposed to OOP done wrong, and drawn bad conclusions from this:

To the extent that OOP is involved in components such as text boxes (not much, really), it's very successful. GUI components are great time-savers, and they work well. But don't confuse them with OOP itself. Few people attempt to modify the methods of components. You may change a text box's font size, but you don't change how a text box changes its font size.

What he's doing here is arguing against a concept that predates OO - encapsualtion. I was confused by this trashing of basic programming concepts until I read the short bio at the end of the piece:

Richard Mansfield has written 32 computer books since 1982, including bestsellers 'Machine Language for Beginners' (COMPUTE! Books) and 'The Second Book of Machine Language' (COMPUTE! Books). From 1981 through 1987, he was editor of COMPUTE! Magazine and from 1987 to 1991 he was editorial director and partner at Signal Research.

It looks to me like Richard started out in assembly, and his exposure to OOP has been through the marvelous examples provided by C++, Java, and C#. In those languages, you get OO as the supposed main play, but it's surrounded with stupidity like primitive data types, "final" class definitions, etc, etc - it's no wonder he's come away with so many bad ideas:

For a while it was a success, but things took a turn. In those early days, computer memory was scarce and processors were slow. Processor-intensive programs such as games and CAD had to be written in low-level languages just to compete in the marketplace. To conserve memory and increase execution speed, such programs were written in assembly language and then C, which conformed to the computer's inner structure rather than to the programmer's natural language. For example, people think of addition as 2 + 2, but a computer stack might work faster if its programming looks like this: 2 2 +. Programmers describe it as little Ashley's first birthday party: the computer starts counting from zero, so to the machine it's her zeroth birthday party.
When fast execution and memory conservation were more essential than clarity, zero-based indices, reverse-polish notation, and all kinds of bizarre punctuation and diction rose up into programming languages from the deep structure of the computer hardware itself. Some people don't care about the man-centuries of unnecessary debugging these inefficiencies have caused. I do. Efficiency is the goal of OOP, but the result is too often the opposite.

He then goes on to argue that data and functionality need to be separate - that this somehow increases the odds that your code will be flexible:

I find that leaving the data in a database and the data processing in the application simplifies my programming. Leaving data separate from processing certainly makes program maintenance easier, particularly when the overall structure of the data changes, as is so often the case in businesses (the most successful of which continually adapt to changing conditions). OOP asks you to build a hierarchical structure and thereafter try to adapt protean reality to that structure.
Encapsulation, too, is a noble goal in theory: you've reached the Platonic ideal for a particular programming job, so you seal it off from any further modification. And to be honest, constructing a class often is fun. It's like building a factory that will endlessly turn out robots that efficiently do their jobs, if you get all the details right. You get to play mad scientist, which can be challenging and stimulating. The catch is that in the real world programming jobs rarely are perfect, nor class details flawless.

This is where I think he runs off the rails. Inheritance is one aspect of OOP, but it's not the end-all, be-all. In fact, most of us recognize that deep inheritance trees lead to obfuscation more than they lead to elegance. But never mind that - what I want to know is this: If I have a set of functions over here, and the database over there - as opposed to a set of objects over here, and the database over there - how is the former easier to update than the latter? If the form of the data changes, guess what? The functions (or methods) need to adapt. Richard seems to think that a rigid separation somehow makes this easier - either he's smoking something, or he's never worked on a non-trivial system. I spent years working in C, and I also spent a fair bit of time in Basic (and other similar languages). Believe me, Smalltalk makes it far, far easier to deal with code migration issues than anything else I've ever worked with.

Mansfield has discovered that the Emperor has no clothes, and he thinks the Emperor is OOP. What he hasn't figured out - most likely through lack of exposure - is that C++, Java, and C# do not define OOP. In fact, they are all fairly ugly hacks pretending to be OO, while preserving the nasty familiarity of C style syntax. If he wants to blame someone, he can look at the supposed giants: Stroustrup, Gosling, and Hejlberg - who have managed to inflict a few megatons worth of damage to the software development field during their careers.

 Share Tweet This

weather

Storm info for Florida, Gulf coast folks

June 10, 2005 12:39:25.808

If you live on the gulf coast or in Florida, here's a feed you should subscribe to - the National Hurricane Center. The stock website is here. At present, they have good info on Tropical Storm Arlene (scroll down); last year, I kept track of all the storms that crossed Florida via that feed. My parents live in Melbourne Beach, FL, so these things are of interest to me.

 Share Tweet This

blog

Changing the structure

June 10, 2005 11:24:47.252

When I first created this blog server (back in 2002), the basic server structure differed a fair bit. I've been evolving the code (mostly without having to restart the server) over time, and I'm about to make another such change - to the storage mechanism. The running implementation now dumps every blog item into one directory (per blog). So, every post I've ever made sits in a file somewhere in the same directory (one file per day). At some point, that's going to be a problem in terms of the file system. So, I've made a small change - underneath the basic storage directory are per-year directories, and each post just drops into that directory. The cool thing is, that change required only three small method changes - I'd refactored the storage code awhile back, so it was simple.

Harder is the fact of the existing server, it's caches, etc. Once I made the simple code change, I had to get the server updated - files relocated and caches updated. Moving the files was easy, because they are named based on date: a file named vw_blog13-5-5.blg is from the 13th of May, 2005. Quick work to rearrange all of that. Then there's the caches - for quick lookup, there are a few caches that needed updating - for instance, the category cache:


blogs := (BlogSaver default keys) asOrderedCollection.
blogs do: [:each |
	| blog |
	blog := BlogSaver named: each.
	blog cache setupSearchCategoryCache].


Another short script of the same sort for the keyword cache, and it's done. I'll convert the server to this new structure sometime this weekend, and the cool part is, no one should notice the change.

 Share Tweet This

esug2005

Looking for ESUG info?

June 10, 2005 9:35:50.966

If you want up to the minute info on the ESUG conference, then you should subscribe to this feed.

 Share Tweet This

law

Bad ideas beget more bad ideas

June 10, 2005 9:18:39.976

Here's a story proving that bad copyright ideas aren't solely a US problem - look at what the Europeans are pondering:

European recording companies are pushing to extend terms of copyright to nearly 100 years to be more in line with U.S. law.

So the idea is to prove equivalent levels of idiocy?

 Share Tweet This

tv

When I think it can't get worse

June 10, 2005 9:13:27.042

I get news like this:

Kim Delaney, Beau Bridges and David Cubitt will reprise their roles from NBC's hit SF miniseries 10.5 in 10.5: Apocalypse, a sequel that began filming in Montreal last week.

The whole plot was an improbability drive :)

 Share Tweet This

StS2005

Smalltalk Solutions Tutorials

June 9, 2005 18:56:08.414

 Share Tweet This

customers

Satellite Forces and Cincom

June 9, 2005 18:53:18.800

I blogged about Satellite Forces last winter, and now we have a press release on our progress together:

OTTAWA, ON - Cincom Systems, Inc., a global leader in business process application development, announced today that they intend to pursue a partnership with Satellite Forces International (SFI), a leading developer of business management applications.
 Share Tweet This

cst

Yet more meeting pics

June 9, 2005 18:50:11.091

I have two more meeting pictures - Suzanne had a real digital camera (as opposed to my camera phone), and had me snap a shot of her, Eliot, and Georg:

Suzanne, Eliot, Georg

Here's a lower quality one of Sherry Michael and Sam Shuster:

Sherry and Sam

That's what I have from the meetings - there should be a bunch of pics coming from Smalltalk Solutions though - along with my blogging of the events.

 Share Tweet This

media

Media Hackers?

June 9, 2005 18:41:20.178

Steve Rubel reports that some people are yearning for some kind of "more authentic" ecology of podcasting - this is inspired by the news that Rush Limbaugh is now podcasting (although, I should note that it's a for pay service - you have to pay to access to the podcasts):

Dave Winer and Steve Gillmor have coined a new phrase - media hackers. I like it. Dave envisions a future where the biggest podcaster is not Rush Limbaugh, but media-hacker stars that have yet to come to the forefront.

Well, I have serious doubts about that happening (at least in large numbers). There's a reason that I go out of my way to listen to James Lileks, for instance - he spends time on his podcasts. Go over here and give on them a listen - you'll find an eclectic mix of pop culture references, Sci Fi riffs, and a variety of interesting (and often quite odd) music. There's only a new one once every few weeks, and part of that is likely due to the effort he's putting in.

Add to that something else - Lileks has a "radio voice" - he comes across very well. I've tried to listen to Winer's casts - they ramble, he moves away from the microphone (making it hard to hear him), and he's "all over the map" in terms of topics. In other words, there's no focus. It takes time to listen to an audio broadcast, whether it comes over the air or over the wire. If the speaker isn't focused and interesting, what's the point? Ultimately, if you expect to gain listeners, it's going to take actual effort. Rambling about whatever comes to mind just isn't going to cut it - for the same reason that it won't cut it in an editorial page writer.

 Share Tweet This

cst

Planning meetings accomplished

June 9, 2005 18:33:15.141

We had a good set of meetings, and I now have a full plate of things that need to be done - I don't have anything specific to discuss, since we didn't change directions at all - have a look at our roadmap for where we are headed (and note that I plan to update that doc)

 Share Tweet This

development

Value Models - not just for Smalltalkers anymore

June 9, 2005 6:50:02.369

Ted Leung points to some useful resources for learning about the ValueModel pattern - including a reference in a book you may already have on your shelf.

 Share Tweet This

cst

More team pics

June 8, 2005 22:29:16.475

I have some more photos - these are higher quality, as they came from a real digital camera

dinner at PF Changs

Starting on the left, that's Eliot Miranda, then Ron Weeks (ATG engineering manager), Vassili Bykov, Sherry Michael, Sam Shuster, and Kuroda-San. On the right side, we have MaryAnn Nelson (sales), Alan Knight, me (mostly hidden behind Alan), Andreas Hiltner, Helge Nowak, Bruce Boyer, and Claude Poole (Smalltalk engineering manager). Here's another shot:

dinner at PF Chang's 2

You can't tell who that is in front of Eliot, but that's Georg Heeg. Sam's in the back there, making a loud point :)

 Share Tweet This

cst

Meeting Follies

June 8, 2005 14:55:16.199

After a hard day of meetings, a little fun is required - here's a picture of a few of us out at PF Chang's last night:

Dinner at the meeting 2

From the left, that's Georg Heeg, Suzanne Fortman, and Eliot Miranda

 Share Tweet This

marketing

What am I missing here?

June 8, 2005 12:27:44.923

Dare Obasanjo points to an MS response to a Sun benchmarking test (XML parsing). However, I didn't see the common XML file that these tests should have been using - I saw a description of the XML, but no sample. So.... what am I missing? Without common test data, this is all meaningless. Is there a link to the XML test data that I'm missing here?

 Share Tweet This

travel

Cognitive Dissonance Watch

June 8, 2005 9:30:33.122

Wired News reports that United is adding WiFi - I have hated flying United, but with WiFi in the mix? Hmmm. If I can just get past the intense dislike....

United Airlines gets FAA approval for wireless internet access during domestic flights, but the FCC still has to OK it. Some international carriers already provide the service -- for a fee of course.
 Share Tweet This

StS2005

Smalltalk Solutions Daily Update 6/8/05

June 8, 2005 9:27:54.554

Register today for Smalltalk Solutions so you can find out about the wxSqueak project:

Introduction to wxSqueak

presentation

Gayvert, Rob: Independent Consultant

Tuesday 4:45 pm to 5:30 pm

Abstract: wxSqueak is an open-source project which blends Squeak with the wxWidgets cross-platform GUI library. This presentation will start with the project goals and the main features of wxWidgets that are used in wxSqueak. Some of the more interesting technical challenges will be discussed, with particular focus on callback mechanisms. The current capabilities of wxSqueak will be demonstrated, and a roadmap for future development will be presented.

Bio: Rob Gayvert is an independent consultant, and has been working with Smalltalk since 1989.

See you in Orlando!

 Share Tweet This

rss

The value of RSS

June 8, 2005 1:36:51.146

Via ION RSS:

"Just received an update that IBM's CIO's office is testing out RSS for internal communications. At this moment we have 3 feeds up and running on the IBM intranet. [...] The intranet is the first source IBM'ers turn to when they are looking for information and contains our profile, our contact details, personalised data according to profession etc... With these 3 RSS feeds we're certainly going in the right direction."

There's your business value right there - automated information flow instead of haphazard emails. Does it work for everything? Of course not. Is it well suited to a large amount of internal communication? You bet.

 Share Tweet This

smalltalk

Bitwise Magazine and Smalltalk

June 7, 2005 17:58:21.045

Have a look at BitWise, which got a plug over on the astares blog. They have a story on Squeak this month, and they will be covering Dolphin 6 and Cincom Smalltalk in upcoming editions. Bookmark that site!

 Share Tweet This

cst

First day of meetings done

June 7, 2005 17:55:08.105

Our first day of the planning meeting is done, and, as usual, we haggled and argued over priorities and the relative importance of various aspects of the product. No, I'm not about to spill any "dirty laundry" we discussed :) We have another day of this tomorrow, at which point we should be ok for another half year. In the meantime, let me know what you think we should be up to.

 Share Tweet This

StS2005

Smalltalk Solutions Daily Update: 6/7/05

June 7, 2005 14:58:01.099

Register for Smalltalk Solutions now, and find out what Cincom and our partner Georg Heeg have been up to with ObjectStudio:

Integration of Smalltalk Systems – E.g. ObjectStudio inside VisualWorks

presentation

Heeg, Georg: Georg Heeg Objektorientierte Systems

Tuesday 4 pm to 4:45 pm

See you in Orlando!

 Share Tweet This

cst

Things we would like to know

June 7, 2005 9:38:56.992

Interestingly enough, with the way we package Cincom Smalltalk we don't get a really good idea of what people are using. What do I mean by that? I mean that we ship both ObjectStudio and VisualWorks, with all their various components. So at our end, we would really like to know:

  • Are you using ObjectStudio, VisualWorks, VSE? Which ones do you have in development/production
  • For the Cincom Smalltalk product(s) that you use, which components are you making use of? Which ones do you plan to make use of?
  • What platforms (OS/hardware) are you developing on? What about deployment?

This kind of information would help us a lot. Please send me feedback on this, either in comments or email.

 Share Tweet This

general

In planning meetings

June 7, 2005 9:23:04.700

I'll be in a planning meeting with engineering all day today (and tomorrow), so I won't be posting much. We should have a productive meeting, and I'll push out any useful details that I can

 Share Tweet This

smalltalk

Explaining Smalltalk's richness

June 7, 2005 0:24:07.916

David Buck illustrates the richness of the Smalltalk libraries - and the comparitive paucity of the C# and Java ones. Throw the "final" wrench into the mix and you get productivity loss.

Suppose, though, that Smalltalk could know (maybe by type inference or by declarations) the types of the variables and it implemented a kind of Intellisense similar to that in Visual Studio. What you'd find is that the list of available methods is about 10 times larger than those in C#. This highlights the fact that the C# libraries are really quite sparse.

Read his whole post - the table he posted is quite revealing.

 Share Tweet This

travel

The joys of summer travel

June 7, 2005 0:18:12.641

I got to experience one of the true joys of summer travel on the east coast today - thunderstorms. It was hot today - temps went past 90 with pretty high humidity. On the east coast, that means one thing - late day T-Storms.

So of course I arranged my flight to Cincinnati for 7:50 pm. I arrived at DCA to find flights backed up like crazy - the 5:40 departure to dayton hadn't left yet (it never did - they put some of those passengers on our flight). We boarded around 8, and then just sat until 9, as a rather nasty storm rolled by. Then they re-opened the door, and put on a few refugees from the earlier flight.

Maybe next time I'll have the sense to fly earlier in the day :)

 Share Tweet This

cincom

Cincom background from the top

June 6, 2005 15:41:29.864

Cincom CEO Tom Nies was interviewed by the Wall Street Transcript recently - note the highlighting of Cincom Smalltalk:

TWST: We'd like to begin, if you will, with a brief historical sketch of Cincom Systems, and a picture of things as they are now.

Mr. Nies: Cincom is one of the founders of the software industry. We were organized in 1968. Our foundations were laid in the areas of database management and applications development technologies. In 1980 or so, we began to provide applications systems with manufacturing and financial applications as well. Then, in the mid 1980s, we began to offer text and text-management and text-content systems. During the latter half of the 1980's decade, we also provided Network Management Systems, and today offer CRM, Call Center, and Configuration Management systems. In the applications development technology area, we provide Smalltalk offerings, which are major object-oriented technologies. We're now the world's leading Smalltalk provider as well. In the past three years, we've expanded our offerings beyond software. We now provide outsourcing services for application development, application hosting, call centers, and business process outsourcing.

Get Smalltalk from the source - download Cincom Smalltalk NC now.

 Share Tweet This

itNews

Apple to intel

June 6, 2005 14:46:37.755

Ted Leung points to the press release. To answer Ted's query about clones, turn to the News.com story:

After Jobs' presentation, Apple Senior Vice President Phil Schiller addressed the issue of running Windows on Macs, saying there are no plans to sell or support Windows on an Intel-based Mac. "That doesn't preclude someone from running it on a Mac. They probably will," he said. "We won't do anything to preclude that."
However, Schiller said the company does not plan to let people run Mac OS X on other computer makers' hardware. "We will not allow running Mac OS X on anything other than an Apple Mac."

Let the attempts to build an OS X capable wintel machine begin :)

 Share Tweet This

humor

Pizza with a conscience

June 6, 2005 14:22:23.305

If you like Lileks, then you simply can't miss today's bleat. A small sample:

And don't miss the Vision Statement. The slogan, "Pizza with a conscience," suggests that ordinary pizza is sociopathic, or at least has no opinion on factory farms and doesn’t care that the cheese cultures were kept in small smelly pens all their lives, or that the green peppers were doused with pesticides to make them robust and tasty. If your corporate pizza had a conscience, man, you would hear the ingredients weeping as you opened the box. Which is such a buzz killer. Eat me! Chew hard! I cannot bear this burden any longer - would that I crisped up in the oven and ended my life as a black wisp of smoke, evaporating like the cry of a baby seal in the cold arctic air. Yes, that’s what I want. I want the pizza shop’s slogan to be something like "Sausage so fresh the screams of the pig still bounce off the slaughterhouse wall!" Really I do.

Heh - it's worth reading in full

 Share Tweet This

itNews

Sun's fuzzy math

June 6, 2005 12:25:08.695

Jonathan Schwartz explains how $1Bn in cash is actually better than $4Bn in cash:

Let's start with basics. Pat Martin and team have done a fantastic job turning StorageTek around. They're profitable, and cash flow positive. On a non-GAAP basis, combined with Sun, we believe the deal will be accretive (additive) to earnings within the first year. Making money is a good thing. (Sun employees will recognize that as Priority 1.)
On a cash basis, here's an even simpler calculus for non-accountants - although the deal takes $4.1 billion to complete, STK has $1 billion in cash - meaning it takes $3 billion net to acquire the company. On $3 billion in cash, Sun generates around $100M in interest income. Using the cash instead to own STK swaps our interest income for STK's net income and cash flow. Which both exceed, obviously, our $100M in interest income. The shareholders are better off.
On top of this, we get the benefit of a common corporate infrastructure, increased purchasing power with suppliers, increased coverage - opportunties that represent upside to the above figure. And that's before we get to new revenue opportunities.

I think he went to the Abraham Beame institute for Advanced Finance - Bill Lyons was the other well known graduate of that school. Remember this post I made over the weekend - now read the last paragraph above. I've seen the results of "common corporate infrastructure", and it's not pretty. Then he touts the acquisition of sales staff:

With this transaction, Sun and STK combine to create one of the largest dedicated storage sales and service forces in the world - and combining our product roadmaps makes us a supplier of the broadest product line in the industry. (And unlike other notable industry combinations, there is near zero product overlap or redundancy - so customers can be assured of a seamless transition and roadmap continuity.) With healthcare information privacy, Sarbanes-Oxley, new FDA regs, securities compliance - anyone want to bet against the growth of archival storage or information lifecycle management? We'll be 3,000 folks stronger in going after the opportunity (which, at last count, measures about $65 billion annually) - and not just with tape, but with the combined organization and roadmap.

All I can say to that is LOL. When PPS and Digitalk merged, the first people who bailed were the sales folks. Why? They knew that there was going to be a period of uncertainty during which commissions were going to be harder to come by. There are always other opportunities for good sales people - the best ones at StorageTek are either out the door already, or interviewing. What Sun is going to end up with the low performers.

This is an amazing post by Schwartz, actually. Sun has been hearing a crescendo of "WTF??" reactions from all over, so they have to explain what passes for strategic thinking there with an immediate post from the COO. There is an interesting side point here - the fact that they posted this to a blog rather than (or in addition to) a standard press release is interesting.

 Share Tweet This

BottomFeeder

Fixed Enclosure Handler

June 6, 2005 10:25:02.727

There was a nasty settings bug in the Enclosure handling plugin for BottomFeeder - I've posted an update that solves the problem. Just check for updates and load the plugin.

 Share Tweet This

space

Bring the Sand Wedge

June 6, 2005 8:37:03.167

Wired reports some good news on the Mars Rover Opportunity - NASA has gotten it out of the sand trap it had gotten stuck in. It took them a month, but it's done.

 Share Tweet This

itNews

Drink that koolaid!

June 6, 2005 8:21:11.330

In a story about the rumored Apple move to intel, Wired manages to guzzle some koolaid:

What's new this time is a fast, transparent, universal emulator from Transitive, a Silicon Valley startup.
Transitive's QuickTransit allows any software to run on any hardware with no performance hit, or so the company claims. The technology automatically kicks in when necessary, and supports high-end 3D graphics. It was developed by Alasdair Rawsthorne.

Umm, yeah - I've got some software right here that manages my perpetual motion machine - it works great, and better yet, I can now get it to run on any hardware with no performance hit thanks to this.

If Apple has licensed QuickTransit for an Intel-powered Mac, all current applications should just work, no user or developer intervention required.

I love it when you hear the phrase "should just work, no intervention required". It's time to grip your wallet tightly when you hear that. Here's the thing - there is no painless platform move. If Apple is going to a new chipset, there are going to be porting costs, period. Now, the author might have a point as to why Apple is interested (intel's new DRM technology). But the whole "pain free" migration? If you wanted that, you should have been using Smalltalk - where the move between platforms truly is seamless - and BottomFeeder is an example of that.

 Share Tweet This

blog

nofollow: the aftermath

June 6, 2005 8:09:55.526

I was initially enthusiastic about the nofollow idea from Google, but I quickly lost that and became extremely skeptical. Now there's a good summary post by IOError on what the outcome of all this has been - and it's not been the problem for spammers that some people initially thought it would be:

As we've seen, rel="nofollow" is Google's way of having bloggers effectively delist themselves from search engines under the guise of protecting them from comment spam. If you want your site to have more Google juice, and who doesn't, people have to link to you without rel="nofollow". It's that simple. Nofollow hurts the entire blogosphere, and if carried to its extreme, will result in most blogs being relegated to obscurity as they drop out of the top 100 search engine results.

Pretty much the size of it. The spammers don't care - so long as there's a link to follow, PagRank is just so much fluff to them. What this has done is de-emphasize blogs in Google's ranking scheme, which is something they've apparently wanted to do. Better yet (from their perspective), most of the bloggers cheerfully followed along.

 Share Tweet This

itNews

Talk about your desperate to please

June 5, 2005 15:10:58.170

Jonathan Schwartz tries to see if any of the warm glow that Apple emits might reflect his way:

So I'd like to personally invite you to adopt Solaris 10 as the underpinning of the next generation Mac. We both respect Unix, both respect innovation*, and both clearly see volume opportunities in extending choice to developers. We'd love to work together.

Sure, as if Apple would spend tons of cash to attach itself to a boat anchor like Sun. How's that StorageTek acquisition going for you Jonathan?

 Share Tweet This

humor

Sunday Follies

June 5, 2005 12:30:09.084

I picked my daughter up from a sleep over this morning (these should be called stay up all night overs, for truth in advertising purposes :) ) Anyhow - as we walked home, she made a point of telling me how hard it had been to fall asleep after getting such a good night's sleep Friday, and how she wasn't really tired. I sent her up to change, and found her fast asleep a few minutes later, after I wondered why things were so quiet. Not tired my foot :)

 Share Tweet This

media

Are podcasts really that big?

June 5, 2005 11:28:42.751

I keep hearing cheerleading on how big podcasting is getting, but I'm sure not seeing it in my subscriptions. In RSS, podcasts would be announced via enclosures. The draft Atom 1.0 spec has support for the same kind of thing (and heck - BottomFeeder already supports it :) ).

But let's take a look at my feeds and items. Here's a small script I ran against my 291 subscriptions:


| allEnclosures allAudioOrVideo |
rejectBlock := [:matchString :url | ('*', matchString, '*') match: url].
allEnclosures := RSS.Enclosure allInstances.
allAudioOrVideo := allEnclosures collect: [:each | each url].
allAudioOrVideo := allAudioOrVideo reject: [:each |
	(rejectBlock value: '.png' value: each) | 
	(rejectBlock value: '.jpg' value: each) | 
	(rejectBlock value: '.gif' value: each)].
^allAudioOrVideo


So what did that give me? A collection of 14 video and audio enclosures. At the very least, the feeds I subscribe to don't advertise podcasts as enclosures very often. Heck, Dave Winer, who's a huge proponent of the genre, almost never uses Enclosures - he just slaps a link to podcasts he's done straight into his items. So are people finding podcasts the same way they find other web content - just by stumbling on it? Is it simply the case that most blog client tools don't support Enclosure definitions? BottomLine does, although that support is specific to the Silt server (I can't see a general way of supporting client side enclosure definition in any of the APIs out there).

Oh, and another small aside here - see that Smalltalk script up there? That was run from a workspace in the runtime. Smalltalk is just cool that way.

 Share Tweet This

StS2005

Smalltalk Solutions Daily Update: 6/5/05

June 5, 2005 11:09:02.854

Register today for Smalltalk Solutions - look at this keynote on domain driven design that Eric Evans is giving:

Domain-Driven Design Purch

Tuesday 2 pm to 5:30 pm

Abstract: Large information systems need a domain model. Development teams know this, yet they often end up with little more than data schemas which do not deliver on the productivity promises for object design. This tutorial delves into how a team, developers and domain experts together, can engage in progressively deeper exploration of their problem domain while making that understanding tangible as a practical software design. This model is not just a diagram or an analysis artifact. It provides the very foundation of the design, the driving force of analysis, even the basis of the language spoken on the project.

The tutorial will focus on three topics:

  • The conscious use of language on the project to refine and communicate models and strengthen the connection with the implementation.
  • A subtly different style of refactoring aimed at deepening model insight, in addition to making technical improvements to the code.
  • A brief look at strategic design, which is crucial to larger projects. These are the decisions where design and politics often intersect.

The tutorial will include group reading and discussion of selected patterns from the book "Domain-Driven Design," Addison-Wesley 2003, and reenactments of domain modeling scenarios.

Bio: Eric Evans is a specialist in domain modeling and design in large business systems. Since the early 1990s, he has worked on many projects developing large business systems with objects and has been deeply involved in applying modeling and Agile processes on real projects. Out of this range of experiences emerged the synthesis of principles and techniques shared in the book "Domain-Driven Design," Addison-Wesley 2004. Eric now leads "Domain Language", a consulting group which coaches and trains teams to make their development more productive through effective application of domain modeling and design.

See you in Orlando!

 Share Tweet This

management

Received Wisdom

June 5, 2005 10:00:21.255

In a political post on one of the blogs I read, I saw a great summation of the problem that many companies get themselves into - certainly this is what befell ParcPlace back in the 90's, and I think it's what's wrong at Sun now:

When American corporations have lost their way and can't figure out how to improve their market position, a common "solution" is to merge with another similarly befuddled company. This allows both companies to "grow," and permits executives to put off hard decisions for years amid talk of "synergy" and restructuring.

Look at the telecom sector - I think there's a reason that BellSouth has been successful. They haven't had to deal with the kinds of internecine warfare that crops up after a merger. Instead, they've been able to concentrate on their core business. I can tell you from experience - when entities of roughly equal size merge, there's no synergy - there's infighting.

 Share Tweet This

general

Trivia Bust

June 5, 2005 9:05:49.887

Last night our daughter was of at a sleepover, so we headed off to meet friends at "The Three Nines" - a typical enough "drink until you drop" kind of place. While the ambiance isn't much, the food is good, the drinks are cheap - and the staff are quick to note when your glass is empty or your plate is pushed to the side. All in all, it's a good location for a trvia game. Which is not to say that we did well :)

A week ago, we managed to come in second, barely missing first. Last night, we were completely clueless - for far too many of the questions, we just had no idea. We came in dead last, with only a handful of correct answers. Still, it was an enjoyable enough evening, a good night out with friends. We had been going to a game that the same guy was running at a local establishment, "The Luna C Grille". That ended pretty badly - the service there was just awful, the food mediocre (but expensive).

The Columbia game had been at another local bar, but things got ugly there between the guy who runs the game and a few drunken regulars. The management of that place inexplicably decided that having 70 people in once a week was less relevant than the desires of about a dozen regulars. Who knows - maybe they do spend as much as the larger crowd if they come in every night.

Back to the game at the "Luna C" - the first week there were 7 teams, around 50 people total. That's a big crowd for this place - it's not usually that full. The service was just awful. The waiters spent a lot of time ignoring us, and looking annoyed when they did have to deal with us. This performance was repeated the next couple of weeks. It wasn't just us, either - fewer teams started showing up (one team was banned by the management when they became incensed enough with the lack of service that they just walked out). By the time Glenn (the guy who runs the game) called the game off at that location, only one team had not announced that they wouldn't come back.

This place is a mystery. My daughter is fond of a couple of the dishes there, and it's convenient to our house - so we've gone in a few times. The service has never been good. The place is trying to be an upscale restaurant, but - they are behind a Giant supermarket and the windows look out on the local gym. Scenic, it's not. Even if that's what they're going for, being rude to paying customers gets you one thing and one thing only - bad word of mouth. They now have that in a pretty big way, having irritated a whole bunch of locals who play in this game.

If you live in the Columbia, MD area, or are passing through - here's a tip. Avoid the Luna C Grille. You can pay a lot less for mediocre food and bad service.

 Share Tweet This

logs

Search engine references

June 5, 2005 0:52:01.451

I have an update to the search engine access report I put up last week - here's a chart (click on it for a larger version) of referrals to the various blogs here from search engines. I've added data for the AltaVista engine this time around:

spring 2005 search engine rankings at smalltalk rants

There's a definite downward trend going on with respect to search engines. My daily traffic has been the same or slightly up over that time interval, but it looks like fewer people are finding the blogs via net searches. Not sure what that means at this point.

 Share Tweet This
-->