development

About the rush to web services...

March 13, 2003 22:49:49.386

People wanting performance may want to ponder the stats on this page:

Table 1. Results of the benchmarking applications

TechnologyConnect timeSend string (21,000 characters)Receive string (22,000 characters)Send 5,000 integersClient LOCServer LOCActual message size sending 1,000 charactersActual message size sending 100 integers
Raw sockets0.0022420.0013770.0013596.74067457252,27985,863
CORBA0.0007340.0046010.0021881.52379937182,09027,181
XML-RPC0.0070400.0827550.050199100.33721929174,026324,989
SOAP0.0006100.2941980.2793411,324.29674232104,705380,288

Making the RPC mechanism human readable sure has helped. snicker.

 Share Tweet This

development

I am so impressed with Feedster...

March 13, 2003 21:11:15.415

That I have added it to BottomFeeder as a search option. Check out Feedster here

 Share Tweet This

blog

Blog, no db

March 13, 2003 18:50:57.657

I saw this interesting post from Ted Leung's blog:

David Czarnecki states his reasons for not using a database to store blojsom's entries. Most of the reasons that he lists are quality of implementation issues in other blogs.

I have a different take. The reason that I liked blosxom's filesystem based approach is that ultimately, I view my blog as a part of my personal information infrastructure. And I want to be able to take that infrastructure with me wherever I go (especially after today's Centrino launch). The biggest problem that I have with using a regular SQL database is the disconnected operation problem. The blog has to be up and running on the web all the time. But I want to be able to work on entries on an airplane or on the ferry, and I want an easy way of synchronizing the web version and my private version. I'd rather not write a database synchronization package. So at the moment, the use of the blosxom filesystem seems to be the best that I can do. But the nasty mtime sorting is really a pain.

While I never gave it this level of thought before, this is why I've not moved this blog to a database. Setting up a test environment was vastly simpler - I just ftp all the files from the server - and I can have the whole thing on my notebook as well. With my offline posting tools, being able to post to an offline version of the blog is less relevant for me now, but still possible - and it makes for nifty demos.

 Share Tweet This

itNews

Feedster RSS Search Engine

March 13, 2003 15:10:04.444

I posted on this earlier, but I just realized that it supports another truly cool feature: you can have the feed search returned as an RSS Feed.

So now I have this query coming back as an RSS Feed, so that I can see if anything new on Smalltalk has popped up recently.

This is truly, truly cool.

 Share Tweet This

development

Code Smell - sometimes, it's Language Smell

March 13, 2003 13:26:49.393

Here's an interesting post on the Fishbowl:

One of the tricky aspects of API design, especially when designing the base APIs for a programming language, is deciding what goes in, and what stays out. Think of a string. There are an enormous number of things you can do with strings, but to put all of those operations on the String class would just be impractical and bloated. So as the designer, you take those operations that you feel would be most generally beneficial, such as finding the length, searching for and extracting substrings, and so on, and leave out the rest.

Some languages, such as Smalltalk, Objective-C, Ruby, Python, Perl, CLOS... Okay, a great many languages allow you to add behaviour to existing classes. So, for example, if your application really needs a method that reverses a string in-place and the language designer has decided that's not necessary for the supplied String class, you can add your method directly to the String class and be done with it.

Some languages, and this is where Java sits, don't let you do this. If you want to extend a class, you have to subclass it. And then you're stuck with whatever the superclass has made visible. And you can't do it with String anyway, because String is final. This is why most projects I work on end up having a StringUtil class, and every project ends up with a DateUtil. There are things we want to do to strings and dates all the time, but there's no way to put those things where they really belong, on the String and Date classes. Which is why having a Util class isn't a code-smell per se, it's a smell in the underlying language.

This is an area you can get into wonderfully interesting discussions on. IMNSHO, it is language smell when you can't slap code where it belongs. In VisualWorks, everyone always had their own version of CommonApplicationModel - subbed off of ApplicationModel. What that told me, as Product Manager, was that there were vast unmet needs in the current implementation.

That's what it always means

 Share Tweet This

itNews

Is anyone surprised by this?

March 13, 2003 12:59:27.918

Internet News has a story making the complaint that MS' XML format in the upcoming version of Office will not be terribly interoperable:

Edwards said that Office 2003 beta's handling of the XML file format means that firms will not be able to tap the rich collaborative features of Open Office 2003 without resorting to proprietary Microsoft file formats. And to truly unlock its collaborative potential, firms will have to standardize on the Windows XP operating system (Office 2003 won't run on Windows 9x), as well as Windows 2003 Server, SharePoint Server, Exchange Server, etc. As for the file formats, he called Office 2003's XML "crippled," because it strips XML files of all presentation and formatting information when saving them in the XML file format. It does not do this when saving files in Microsoft's proprietary file formats.

"Although it's still early in the review process, it does look as though XP XML has been so seriously crippled as to be useless to anyone but the big content management and collaboration system providers," Edwards said. "Reports are that when saving to XML, [Office 2003] strips out the presentation and formatting information, leaving near raw content. It appears, at least from the non-enterprise systems user's perspective, that all the really cool collaborative advantages are based on saving files in the XP proprietary format. Which means that "all" the users in the collaborative effort must be on the XP platform, using XP Office, connecting through XP servers. What kind of universal connectivity and exchange is that? XP users won't even be able to collaborate equally with the 200 million Win9x users. Not unless they upgrade."

And why exactly is this a surprise? Regardless of what you think of MS vis-a-vis anti-trust - if you had the hold on the Office market that they have, what would possess you to make it easier on competing (and free) tools?

 Share Tweet This

smalltalk

Eliot Miranda speaks on Smalltalk adaptive

March 13, 2003 12:32:09.549

Eliot Miranda recently spoke at Stanford - a video feed of his talk is available. Check it out!

 Share Tweet This

itNews

The RSS Search engine rocks

March 13, 2003 10:53:25.362

I have to give a lot of credit to Scott Johnson for his work on the Roogle RSS Search Engine. There have been a lot of comments on this tool, but this one

Here's a homework project. Go to the RSS Search engine. Now go to Google. Search for these words: "InfoPath" and "OneNote." What do you notice? I like the quality of the RSS results a LOT better

I think I understand why Google bought Pyra better now. Try doing a search for Smalltalk in both places as well - for fairly obvious reasons, I like the results better ;-)

 Share Tweet This

general

Audio/Visual hell

March 13, 2003 10:47:20.823

Getting the replay tv hooked into the various a/v components was the usual holler fest - my wife and I reduced to jello before we got things working in something resembling the way we wanted. The stumbling block was audio going out of the TV. Instead of having to set the Receiver, VCR, and TV on separate inputs, we wanted to have the TV pumping audio back out from whatever it was tuned to.

This was harder than any reasonable person would want

The nicely labeled Audio out always took out whatever was coming in from the antenna/cable feed - regardless of what input it was tuned to. Arghhh! We had to shudder open the manual.

Sidebar - how is it that Sony has such brilliant folks building hardware, and then hires people with a minimal grasp of English to write the manuals? Would it be too much to ask to get an understandable manual?

Anyway, back to hell. The manual claimed that we could get what we wanted by plugging the jacks into the Audio out "var/fixed" plugs on the back of the TV. That was obvious (not).... and it didn't work, at least not right off. The "var/fixed" referred to the volume being pumped by the TV. For reasons not at all clear to me or my wife, setting it to "variable" on the TV silenced the audio output, while setting it to "fixed" gave us audio - but controllable only by the receiver's remote, and not the TV's remote. That led to some swearing. The TV and the receiver are the same frelling brand!

So this morning, I'm reading Ellen Goodman's column, since Instapundit referenced it. Now, I'm no luddite - I have a 100 Mbit house (wired) LAN, and an 11 Mbit wireless house LAN, two replays, and a number of computers on the LAN. But heck, there was a lot of common sense in that article. A lot of the electronics are getting too complex - maybe audiophiles understand it all, but I sure don't. My Living Room Receiver seems to constantly forget whether the CD input is analog or digital, and the readout on the blasted thing requires me to lie on the floor to read it!

There's a market opportunity for some vendor that makes a sharp break with current component plugs, and goes to something simpler, like a USB based interface whereby the receiver figures out what it's got plugged into it when it powers up. The current ugly proliferation of remotes and oddball cables can't be making anyone happy

 Share Tweet This

education

Teaching Smalltalk to kids

March 13, 2003 10:22:38.019

I've learned at least as much this time around as the kids I've been working with. This looks like a good place to start next time around. Today, I'm going to use the EToys demo that is in Squeak, and then next week, try to come in with a new one. When I teach this class in the spring, this is the way I'm going to go about it.

 Share Tweet This

BottomFeeder

Aggregators and memory

March 13, 2003 1:32:25.640

According to this post, BottomFeeder is in the same ballpark as Radio, and a fair bit smaller than Syndirella. Bf weighs in at 36MB of RAM on my machine, with the contents of 100 feeds sitting in memory.

 Share Tweet This

general

Whoo Hoo! The Replay is back

March 13, 2003 0:01:27.313

The 80 hour replay is back and set up, with the new 51" widescreen TV. We are busy configuring it now. My wife's first word's when we got it back:

"My Preciousssssss"

 Share Tweet This

development

How the C world holds development back

March 12, 2003 16:14:40.415

Here's an interesting piece that I found on Lambda the Ultimate - hat tip to Michael Lucas-Smith for pointing it out to me. Here's an interesting quote:

In my (limited) experience, nobody at a university has any clue as to what OOP really is about. In one "advanced" Java class, the professor once said that he had never been able to find a purpose for inheritance and that it would be best not to use it

Wow. And one of the stated reasons for going with Java is that the students come out of college already knowing it. Hmmm. Based on this, there's a reason for not using Java. And this is consistent with my interactions with Java people who did not start out in Smalltalk - there is very, very little understanding of OO principles. Not that inheritance can't be done badly; it quite often is, and deep inheritance trees are typically a danger sign. But look at that comment above - no discussion of pros/cons, no explanation as to why using composition is often better (see class List in VisualWorks, for instance) - just a flat No.

Take a look at this comment further down in the Lambda thread

I was about to make a snide comment along the lines of "How would you write a GUI toolkit in Java without using inheritance? Without subclassing you would need to add a hook interface for every imaginable behaviour of every component!"

Then I started to remember how Swing is written :-)

Later on in the thread we find this piece of brilliance:

Inheritance is the key to separation of interface and implementation, and hence polymorphism, in a statically typed OO language. This is perhaps the primary facet which separates languages like Java from "object-based" languages like VB.

Frankly, I don't know how projects of any significant size are accomplished using dynamically-typed languages, with their lack of interface inheritance

Translation: I've never worked in a dynamic language, so it can't possibly work. You have to love these people. This seems to be the pattern of learning going on in Java and C# - We know nothing about these other technologies, so they must be bad. Richard Gabriel had it about right in Worse is Better.

The more things change....

 Share Tweet This

BottomFeeder

New BottomFeeder code

March 12, 2003 12:48:16.837

I've uploaded a new BottomFeeder parcel - the upgrade manager should pick it up. I am also pushing up an entire new build, so that anyone grabbing the gzip files should immediately have the latest stuff.

The timezone code should now work on Mac OS X, thanks to the Heeg folks.

 Share Tweet This

smalltalk

Croquet - more info

March 12, 2003 11:11:44.290

Now that slashdot has noticed Smalltalk, maybe there's some interest. This year's Smalltalk Solutions show has a keynote by one of the Croquet developers. Come hear David Smith tell you what it's all about!

 Share Tweet This

development

Pinging weblogs.com - blog updates

March 12, 2003 10:24:57.188

Simon Willison writes:

Blogs I would read a lot more often if only they pinged weblogs.com when they updated.....

Without pings, they languish at the bottom of my blogroll where I won't notice or visit them. My blogroll is my only mechanism for keeping track of the blogs that I read regularly - aggregators just don't do it for me, and with tabbed browsing my blogroll is almost as efficient for staying up to date.

Personally I don't check there - I use BottomFeeder to aggregate. My peeve is the lack of a good RSS Feed. Still, I took this point to heart - my habits aren't everyone's - and updated the blog to ping weblogs.com after each update. I'll have to look at blo.gs and see about pinging it as well....

 Share Tweet This

development

Buffer Overflows - how to avoid them

March 12, 2003 9:39:48.287

Linux Today writes on Buffer Overflows:

"Buffer overflow problems always have been associated with security vulnerabilities. In the past, lots of security breaches have occurred due to buffer overflow. This article attempts to explain what buffer overflow is, how it can be exploited and what countermeasures can be taken to avoid it.

"Knowledge of C or any other high level language is essential to this discussion. Basic knowledge of process memory layout is useful, but not necessary. Also, all the discussions are based on Linux running on x86 platform. The basic concepts of buffer overflow, however, are the same no matter what platform and operating system is used..."

Here's a hot tip - use a better language. Those of use using better tools (Smalltalk, anyone?) don't have this problem. So long as developers choose to create tools in primitive languages, problems like this will persist. Time to leave the sharp sticks and pointy rocks behind guys.

 Share Tweet This

smalltalk

Smalltalk gets slashdotted

March 12, 2003 9:34:16.771

Croquet got noticed by slashdot this morning. The common misinterpretations are already running amok - it's slow, it's interpreted, yada yada.

Cool to see Smalltalk get noticed though.

 Share Tweet This

itNews

Fries and WiFi?

March 12, 2003 9:15:19.269

Lots of people have been talking about this McDonalds WiFi experiement. Apparently, they are going to put in access points in a few cities, and offer an hour of free access if you buy a value meal.

I'm sure business travelers will like this; I would have loved such a thing when I was traveling more often. Still, McDonald's is not my ideal for hanging out and surfing. Starbucks seems much nicer, and has lots more power outlets. Not enough seating though. McDonalds, if they want this to work out, is going to have to install more access to power.

What I'd really like to see is places like Borders or Barnes and Noble doing this - they have comfortable seating, books, and coffee - just about perfect for this kind of niche. Unlike McDonalds - which mostly wants to shepard people in and out - those outfits are encouraging people to linger. What better way to do that than to offer WiFi?

 Share Tweet This

BottomFeeder

New BottomFeeder capabilities

March 11, 2003 23:57:29.048

I had someone complain about the fact that BottomFeeder always launched a new browser in Linux. I had no idea how to go about reusing an existing browser - but there were helpfule folks on the IRC channel, (thanks pete!) who lent a hand.

So now, in the latest dev build, you can launch a page from Bf and have it reuse an existing browser - so long as it's Netscape or Mozilla.

 Share Tweet This

development

How the other 90 percent suffers

March 11, 2003 19:36:51.465

Next time someone says that Java is the answer, have them read this. Then show them your development cycle in Smalltalk.

No, I haven't finished laughing quite yet:

Interesting thread at TSS about 'edit/compile/debug/startup cycle for people on various J2EE projects'.

I'm pretty much sure that any VS.Net user will laugh at us seeing all these wasted minutes and seconds on silly compile/deploy cycles. Ant and Maven are a solution to a problem: treating software development like a factory line consisting of many steps which can be automated. The problem is with all these steps and complexity of each step we end up struggling with a giant slow build process.

The solutions offered look awfully complex to this Smalltalker...

 Share Tweet This

development

Looks like MS is serious about the XML integration

March 11, 2003 15:00:46.276

Matt Croyden spotted something interesting:

Here's the MSDN article. I'm not sure if the final version of Office 2003 will be as ugly as these screenshots, but I hope not. It looks like the Easter Bunny got in a fight with Office 2003 and Office 2003 lost.

Seems you can integrate things like Google's web services (just like I did in BottomFeeder - the picture is amusing.

 Share Tweet This

cst

Updated Cincom Smalltalk Product Roadmap

March 11, 2003 13:44:48.657

Have a look here for the up to date roadmap presentation.

 Share Tweet This

cst

Cincom Smalltalk and .NET - Technology White Paper

March 11, 2003 12:49:11.884

The .NET White Paper has been updated - mostly some wordsmithing from the marketing folks. Have a look, and send feedback to me

 Share Tweet This

BottomFeeder

New BottomFeeder parcels up

March 11, 2003 11:54:49.321

I've got new BottomFeeder parcels posted. The new stuff uses some code from Holger to set the TimeZone and local time at startup. It doesn't work yet on the Mac; hopefully someone with a Mac will get that working.

 Share Tweet This

blog

Pingback and weblog pings now working

March 11, 2003 9:55:26.367

I had a few issues with my pingback and weblog ping code, which are now sorted out. The problem was all on my end; improper use of the XML-RPC library. An update just showed up on weblogs.com, so it looks like it works now.

 Share Tweet This

law

Yet another over the top software patent:

March 11, 2003 8:24:20.327

Aspect Oriented programming - the approach, not a particular implementation - has been patented. Spotted on Ted Neward's blog, who in turn reported it from here.

Sigh

 Share Tweet This

itNews

Deja Vu all over again in IT

March 11, 2003 8:20:07.678

The Fuzzy Blog writes on vendor/consultant squeezing in the IT sector, and how it's going to hurt:

From the Wall Street Journal:

Mr. Kheradpir Puts the Squeeze on Tech For clues to the tech sector's failure to revive sagging sales, pay a visit to Shaygan Kheradpir. Verizon's chief information officer relentlessly pushes his charges to get more out of less equipment, an attitude that spells gloom for tech giants.

The article is excellent and a wake up call I suspect for a lot of us. This is very similar to what I wrote recently about all vendors getting squeezed in the down economy

this is not surprising to me. I've been saying that the outsourcing trend is nothing new either - it went through manufacturing like a scythe as back when I was in high school (anyone remember the movie "Mr. Mom"?)

What's new is things like outsourcing and cost cutting hitting IT. In a very real sense, it's a sign that the industry is growing up - customers are starting to hold us accountable. This also went through manufacturing - see this story on GM and GE cost cutting around suppliers.

 Share Tweet This

development

Test-First and GUI development

March 11, 2003 8:12:17.998

John Lam makes some interesting observations about test-first as it relates to GUI development:

I've been spending a fair amount of time recently writing GUI rendering code. I've also been spending a fair amount of time recently grappling with unfamiliar API's. These experiences have revealed two areas where test-first development doesn't quite work:

  1. GUI rendering code where "correctness" is determined by how something must look
  2. Early stage implementation where interface churn is the norm

The first case encompasses virtually all of GUI development, regardless of whether your GUI is an HTML page or a traditional Windows application. In these cases, whether or not something is "correct" depends on how an object appears. Unfortunately, there are usually several different ways to render the object, all of which yield correct results. Furthermore, it's really hard to determine how an object is rendered programmatically, whereas it is usually quite simple for a human to determine if an object looks "correct".

Yeah, I can definitely see that. A lot of the GUI is subjective rather objective. A test can tell you conclusively whether or not a transaction happened - it can't tell you whether the foreground and background colors are frelled. Ultimately, you're going to have to do some human factors work.

 Share Tweet This

development

I know how this feels...

March 11, 2003 1:07:09.030

Gordon Weaklien writes:

Jon Udell is right. The problem with writing for the web isn't that there are no editors, the problem is that your editors speak up only after you've stuck your foot in your mouth, as I just did when I labeled scope and polymorphism as design patterns

Yep. The Test comes first, then the lesson....

 Share Tweet This

development

The talk at XpDc

March 10, 2003 23:53:29.230

The talk went pretty well - I didn't get to meet Matt Croyden, local blogger - maybe next time. The presentation was fairly well received, and generated a good conversation - lots of good points and questions. The upshot of the conversation seemed to be that there are cultures surrounding the various programming camps, and that the culture surrounding Smalltalk encourages frequent testing - more so than the C language family. IMHO, this is due to the fact that in C , Java, C# (et. al.), you spend a fair bit of time just trying to make the compiler happy - a situation that simply does not come up in Smalltalk. All by itself, that explains a lot of the differences.

I think I got most of my points across, and had a good exchange of ideas with the group.

I handed out a few NC CD's - I should have had more. Of course, people can always follow the download links. Afterwards, we headed out to a local watering hole for some more conversation. All in all, it was a very pleasant time.

 Share Tweet This

blog

Light posting today

March 10, 2003 15:56:28.485

and it'll stay light until after the XpDc meeting. I'll be bringing VW NC CD's along as well. I had a bunch of errands to run this afternoon, and spent this morning pondering poorly formed XML. Some people apparently think that any old HTML tag can just be slapped right into their RSS feeds....

 Share Tweet This

blog

Light posting today

March 10, 2003 15:56:20.176

and it'll stay light until after the XpDc meeting. I'll be bringing VW NC CD's along as well. I had a bunch of errands to run this afternoon, and spent this morning pondering poorly formed XML. Some people apparently think that any old HTML tag can just be slapped right into their RSS feeds....

 Share Tweet This

BottomFeeder

fixing more HTTP issues in Bf

March 10, 2003 12:18:37.934

There were a few more updating issues with the new HTTP code, which I think I've addressed. In the process, I ran across some oddball XML parsing barfs; there are a handful of feeds I follow that currently have bad XML - unclosed HTML tags, invalid characters. The landscape for well formed XML isn't getting any better...

 Share Tweet This

BottomFeeder

New BottomFeeder 2.8 dev build up

March 9, 2003 23:40:00.234

I'm uploading a new dev build. I've also slapped up the new parcels for the upgrade manager. It seems that in the transition to the new HTTP access I split out, I broke the handling of gzip decoding. That's now handled.

 Share Tweet This

xp

XP in DC tomorrow night

March 9, 2003 14:11:36.663

Just a reminder that I will be speaking at the XP DC Group tomorrow night. Follow the link for details.

 Share Tweet This

xp

XP in DC tomorrow night

March 9, 2003 14:11:36.663

Just a reminder that I will be speaking at the XP DC Group tomorrow night. Follow the link for details.

 Share Tweet This

BottomFeeder

Upcoming Attractions

March 9, 2003 14:03:01.538

If you would like to see what's coming in the 2.8 release of BottomFeeder, then have a look at the User's Guide for 2.8.

Kudos to Rich Demers for this excellent work!

 Share Tweet This

itNews

Sun to Linux - Drop dead, please....

March 9, 2003 13:11:51.145

Sun wasted no time making hay from the SCO lawsuit:

"Sun is waisting no time taking advantage of the SCO lawsuit against IBM. They are making statements trying to play up Solaris as a safe harbor for worried Linux and IBM users. John Loiacono, VP of Sun's operating platforms group, "For people looking at the issues at hand, we are a safe harbor. We have absolute rights to our technology ... We're changing our strategy around Linux (but) we're pausing because we're trying to figure out what the implications of this are going to be". So, this begs the questions... What are the short term implications for the new Linux based desktop we've been hearing about from our fair weather friends? How will the SCO lawsuit affect Sun's long term strategy with Linux and Open Source?"

So how does this all play out? The smart thinking seems to be that SCO wants to be bought. In the meantime, it could make for some entertaining industry watching from the cheap seats....

 Share Tweet This

development

An RSS Search Engine

March 9, 2003 8:15:44.650

This looks interesting - an RSS search engine, playfully called Roogle. It's only just been put up, but it's an early sign of what Google will likely do with their purchase of Pyra

 Share Tweet This

BottomFeeder

mailto: now works in BottomFeeder

March 9, 2003 1:46:08.290

After this post, I had it pointed out to me that mailto: links in BottomFeeder (and Twoflower) did not work. They do now. On Windows, the mail tool associated with mailto: links will be spun up. On other platforms, a mail window will open, allowing the user to send mail to the recipient specified in the link.

 Share Tweet This

java

So how many Java servers run the "wrong" JVM?

March 8, 2003 15:40:50.517

This is an interesting post. apparently, the way Java installs, the JVM optimized for client usage (rather than server) is the default:

Amazing, then, isn't it, that most default installations of Java-based (as opposed to native-code implementations) J2EE containers don't make use of the VM tuned specifically for long-running server operations?

...

To fix this, if you can get at the command-line used to invoke the JVM, add the "-server" option into the command line parameters. If this is somehow hidden away from you, simply rearrange the options found in the jvm.cfg file in the JDK to list the "server" option first. Bear in mind, however, the comment at the top of the jvm.cfg file: this file format is subject to change and may use a different mechanism sometime in the future. (Case in point: the JDK 1.3 mechanism didn't make use of the keywords following each entry-KNOWN, ALIAS, and so forth.) Future J2SDK releases may change this mechanism, so be prepared to do a little spelunking when J2SDK 1.5 is released.

Now sure, it's easy enough to deploy VW servers badly - deploy an image without mucking about in MemoryPolicy and ObjectMemory, and you'll eventually get bitten. I guess what I'm curious about is, how many people even know about these sorts of server tuning, without regard to development tools?

 Share Tweet This

BottomFeeder

New Btf screen shot up

March 8, 2003 15:34:51.207

I've posted a new screen shot of BottomFeeder. It occurred to me that the old shot was getting long in the tooth....

 Share Tweet This

cst

The Cincom Smalltalk .NET story

March 8, 2003 15:18:03.714

We have a draft white paper out on Cincom Smalltalk and Microsoft's .NET platform. Jave a look, and send feedback to me.

 Share Tweet This

java

Private JRE's - what a concept

March 8, 2003 13:24:32.338

So some folks in Java land are figuring out that versioning issues might require shipping a custom runtime:

Ted has a post detailing how to use a private JRE install for a java based app to side step versioning issues. This is great stuff, I used Ted's earlier white paper on the subject to do a private JVM on a current project. If you're a Java guy you need to be reading Ted's blog.

While I understand what the motivation is, doesn't this minimize the "it's standard, it's everywhere!" argument for Java? I can build faster in Smalltalk, and ship a custom runtime (smaller as well). So where's the advantage?

 Share Tweet This

development

With refactoring, the regressions...

March 8, 2003 13:11:09.932

After the refactoring I did, testing continued to show regressions here and there. Not a big surprise. I think I've got all of them fixed though; testing hasn't turned up any new problems.

The bottom line is, I think the 2.8 BottomFeeder release looks good for synching up with the VW 7.1 release. When VW goes gold, I'll package a new image, and push Bf. The objective now is to not have to do a new base image build after that until VW 7.2 ships.

 Share Tweet This

cst

goodies with 7.1

March 7, 2003 15:09:10.901

There will be some new goodies shipping with 7.1:

I've slapped together a brief "How-To" on the blog as well, which should ship on the CD. It's not full doc by any stretch of the imagination, but it should be enough to get interested parties going.

 Share Tweet This

itNews

What the internet is - and isn't

March 7, 2003 11:22:25.643

Here's an interesting article:

Here's what it isn't:

  1. The Internet isn't complicated
  2. The Internet isn't a thing. It's an agreement.
  3. The Internet is stupid.
  4. Adding value to the Internet lowers its value.
  5. All the Internet's value grows on its edges.
  6. Money moves to the suburbs.
  7. The end of the world? Nah, the world of ends.
  8. The Internet's three virtues:
    • No one owns it
    • Everyone can use it
    • Anyone can improve it
  9. If the Internet is so simple, why have so many been so boneheaded about it?
  10. Some mistakes we can stop making already

and here's what it is:

All we need to do is pay attention to what the Internet really is. It's not hard. The Net isn't rocket science. It isn't even 6th grade science fair, when you get right down to it. We can end the tragedy of Repetitive Mistake Syndrome in our lifetimes - and save a few trillion dollars worth of dumb decisions - if we can just remember one simple fact: the Net is a world of ends. You're at one end, and everybody and everything else are at the other ends.

Go read the whole article - there's a lot more

 Share Tweet This

development

Refactoring for fun and profit

March 7, 2003 11:14:18.461

I finally decided that the Http access code in BottomFeeder was too spread out and hard to understand. So with the aid of the RB, I refactored it. I already had an HttpClientModel class I had built awhile ago to centralize such access, but I had not been using it. This morning I changed that - I was able to get rid of bunches of duplicated code, and shove all the app's requests through a simple API. Made it a lot easier to toggle between straight requests and conditional-gets. The nice part is, it made the Http access work better - the duplicated code was slightly different in variosu places, and now it's all far easier to work with.

 Share Tweet This

BottomFeeder

New BottomFeeder base builds up

March 7, 2003 0:32:39.385

I'm pushing new base builds again, since a new VW 7.1 build came out. Again, this will stop happening once 7.1 ships. In the meantime, download the latest dev builds here.

They should be done uploading in about 2 hours.

 Share Tweet This

general

Polemicism and all that...

March 6, 2003 19:12:05.942

I have a tendency to rant first and ask questions later. However, the comment chain on the referenced post was both civil and interesting. Have a look also at Sam's related post on his blog.

 Share Tweet This

development

Land of Low expectations...

March 6, 2003 14:47:27.592

Sam Gentile raves about C# - this link in particular.

Ho hum. Nothing VW hasn't had since 5i.3, and we have FTP support as well. The world turns, and the C family of developers continues to re-invent wheels we already have....

 Share Tweet This

smalltalk

Camp ST at Smalltalk Solutions

March 6, 2003 13:05:28.304

Some questions and commentary on CampST at ST Solutions, from the Camp ST mailing list:

Ralph Johnson

ST Solutions will be in Toronto July 14-16. I assume that many of us are going. So, my question is what kind of presence Camp Smalltalk wants to have. In my opinion, our presence should be mostly to advertise our projects, and we should not try to get any work done. Do people agree with this? Who is planning to go? Would you be willing to help present some of our projects?

Jon Hylands:

Since I live in Burlington (west of Toronto), I will be there. I'll be presenting my AUV again as a demo, but other than that I have no real plans, other than to hang out at Camp Smalltalk like usual.

Alan Knight

Also, I wonder if it might be interesting to also have some more formal activities related to Camp Smalltalk. For example, it might be interesting to give talks on some projects, rather than just the usual informal sessions in the Camp Smalltalk area. Or it might be worthwhile having a scheduled session explaining what Camp Smalltalk is, for those unfamiliar. A panel discussion about open source in general, and the Camp Smalltalk efforts in particular, might be an interesting event. If anyone has ideas, or is willing to do something, please let me or one of the other program committee members know

 Share Tweet This

BottomFeeder

Text input searches now work in Bf

March 6, 2003 12:04:19.609

A seldom used feature of RSS is the textinput tag. BottomFeeder seems to be one of the few aggregators that actually do anything with it. We do one of two things:

  1. If the title element contains the (case insensitive) text 'comment', then we treat the feedback as being appropriate for the feed items, and assume that appropriate information will be found in the item GUID. In this case, we enable feedback when items are selected
  2. In the absence of that text, we assume it's a feed level thing, and construct a query that will display results in the html pane

So how do do the two things? For item feedback, we construct a POST, with the contents set to an uRL Encoded form - with these elements:

  • title - set to some text that identifies the following text as a comment
  • name - this key is actually whatever came in the name element, with the value set to the description text (from the displayed text field)
  • username - I added an input field allowing the user to type in a name, defaults to 'anonymous'
  • itemID - I grab the GUID that was set, and the back end should be able to identify which post the comment goes to based on the GUID

So the contents might look like this, with the type being POST, set to 'application/x-www-form-urlencoded' charset: 'utf-8':

title='Comment'&username=anonymous&itemTitle=RSS Item=Title here&itemID=guid

My back end - a blog - picks that up and adds the comment. What if it's not seen as item level? Then we construct a GET that looks like this:

http://www.theURLHere.com?query=blah

where 'query' is whatever they sent in the name element, and 'blah' is the text the user entered. The results of the query are then displayed in the html pane.

All pretty easy to add!

 Share Tweet This

xp

XP DC Talk

March 6, 2003 2:07:45.194

I'm giving a talk on XP in Smalltalk at the XP DC Group on March 10:

The eXtreme Programming Users Group of Washington DC (XpWdc) will be meeting on Monday March 10, 7-9 PM at the Yorktown High School in Arlington VA.

Who: Everyone interested in XP, regardless of experience level, is welcome to come and can benefit from attending. Customers especially are encouraged to attend.

Where: Yorktown High School Room 1B 5201 N. 28th Street Arlington, VA

Directions can be obtained on the YHSLUG website

It would also be interesting if Mr Robertson has a time to write a summary of what he will be discussing.

And here are the slides I'll be presenting

 Share Tweet This

xp

XP DC Talk

March 6, 2003 2:07:45.194

I'm giving a talk on XP in Smalltalk at the XP DC Group on March 10:

The eXtreme Programming Users Group of Washington DC (XpWdc) will be meeting on Monday March 10, 7-9 PM at the Yorktown High School in Arlington VA.

Who: Everyone interested in XP, regardless of experience level, is welcome to come and can benefit from attending. Customers especially are encouraged to attend.

Where: Yorktown High School Room 1B 5201 N. 28th Street Arlington, VA

Directions can be obtained on the YHSLUG website

It would also be interesting if Mr Robertson has a time to write a summary of what he will be discussing.

And here are the slides I'll be presenting

 Share Tweet This

development

Test-First and .NET?

March 6, 2003 0:24:22.709

So there's an NUnit for .NET. I'm reading Gordon's Weakliem's comments:

I recently had to add a method (message?) to a web service and I took a test driven approach, though somewhat modified. In my case, I defined the WSDL interface, generated my server code, and then stub it out enough to compile, and then built my tests. One thing that I took from the experience is that it requires a great deal of discipline to break old habits (not my strength), that writing good tests is hard, and that using a Mock Object strategy really adds a lot of development overhead. But then, so does fixing bugs.

There's that Mock Object thing again. Yet another reason that Test-First is better in Smalltalk

  1. Write the test - it fails, because you have no objects yet
  2. Start writing code
  3. Test until you get all green

Note the lack of the Mock Object step. You might need Sham Objects - real objects with faux data, but that's another story.

 Share Tweet This

development

my WOAD .NET Notes

March 6, 2003 0:16:12.325

 Share Tweet This

development

.NET Demo

March 6, 2003 0:09:39.232

Now, a .NET demo.

Website on his home server for picture display (and why you wouldn't just use static HTML for this?). Thumbnail pictures and main display.

ASP.NET developer studio is an IE driven project page thing. Slow. Slow.... We watch while his demo fails on a DNS lookup failure on 'localhost'....

Oh.My.God. It generates a veritable blizzard of asp code on the page. The page is just filled with C#.

Ok gang, let me tell you that compared to the VW way of doing this - I am completely unimpressed. I'll take DreamWeaver and the Refactoring Browser any day.

 Share Tweet This

development

The "real" .NET

March 6, 2003 0:09:33.533

Key elements - all that stuff from my other post.

Design Goals

  • Consistent OO programming environment
  • Code execution environment with versioning
  • Code safety features (signing)
  • Eliminates performance problems of scripted/interpreted environments
  • Consistent developer experience

Types of Apps Same as ever - console, GUI, scripted, web, Mobile

Theoretically portable. They have an implementation on Sparc (surprise!)

Framework classes - similar to the Java diagram....

".NET is about services" - plug and play architecture is what they tout here. runtime system diagram looks a lot like the Java one.

Good thing!! - Smalltalk shows up on the list of supported languages!

All communications based on industry standards (Web Services)

Touting the versioning system heavily. I'll note that you ought to look here for a comment on that from a developer in the field:

Source: ShowUsYour-Blog!

I am the Framework. I run managed code. I am without flaw. (repost)

Had an interesting experience today; a friend sent me an assembly and asked me to check it out. I referenced the assembly in my application and starting writing some elite code that consumed it. Project compiled fine but when I executed the app. it blew up and complained that assemblies couldn't be found - System.Xml in particular.

Welcome to SxS ( side by side execution ). What my friend had failed to tell me is that his assembly was built on Version 1.1 of the framework and I only have Version 1.0 installed!

Thankfully this fine article - http://www.3leaf.com/default/articles/ea/SBS.aspx - told me how to rectify the problem by adjusting my configuration settings to map to the V1.0 assemblies.

So it's not as seamless as the consultants would have you believe, it seems....

ASP.NET - server side object model for the page - sounds a bit like VisualWave or AidaWeb. More like AidaWeb, to be honest. ASP.NET can be done in any .NET language. Session support, browser detection/support. Yeah, sounds a lot like AidaWeb to me.

Multi-platform .NET - MONO For Linux and Sparc, plus Windows (for Apache) Includes C# and VB.NET compilers (certified) Supports lots of database vendors Complete language binding to GTK

Note what this means - .NET from MS does not support using ASP.NET on Apache (etc). Have to use IIS. So much for real portability.....

So - who's using it? Early Adopters and Microsoft. My take on this - it's the next silver bullet for all the IT shops that most recently jumped on Java and J2EE. Pitfalls - MS (not known for Enterprise support). Also, optimized more for SQL Server than other databases (surprise).

The consultants recommendation - get your toe in the water, build departmental apps - don't bet your business on it yet.

Claim - C# is a big leap forward from Java. I asked "how?" The answer - distribution (library) more keywords (a bad thing). i.e., SOSDD. These guys totally confuse "the language" and "the platform".

 Share Tweet This

development

.NET - "Cool things"?

March 6, 2003 0:09:29.222

Cool Stuff, as they say

DataSets (part of ADO). in memory databases (Prevlayer?). native format is XML. XPath querying, not SQL. This will be confusing.... Can be connected to a data adaptor for movement in/out of an RDBMS.

What about O/R mapping? Use XSLT to swizzle the data from XML to db or vice versa. I seem to recall an article on how hard XSLT is recently. Tag line - This is the modern way of doing O/R mapping (insert restrained laughter on my part here....)

C# Semantic support for all CLR stuff Singleton support Single and multi-cast call backs via Delegates Lots and Lots of keywords (they think this is a good thing.... Lots and lots of method modifiers. "Architects will control this" Overrides are possible, but has lots of rules....

Lots of fun here for the architects. XP will not be native here....

Remoting Replaces DCOM with Web Services (UDDI, WSDL, SOAP). Tag line -"Allows completely transparent factoring of business logic across tiers" ROFL - where have I heard that before....

BizTalk The commercial thing to bring order to this. MS answer to WebLogic, et. al. This one is not free.

 Share Tweet This

development

.NET Overview at WOAD

March 6, 2003 0:09:25.363

This is going to be a stream of consciousness thing - I'm taking notes as the talk proceeds. So on with it!

What is .NET? A whole "platform" for Enterprise Systems Not just Web Services Gigantic, "State of art"

  • Security
  • Distributed Computing
  • XML Standards
  • Versioning (of libs)

.NET Platform (From the Bottom)

  • Common Type Specification (CTS)
  • Intermediate Language (IL - Byte Code)
  • Common Language Specification (CLS)
  • .NET Extended Class Libraries (across all supported languages)
  • .NET Base Libraries (across all supported languages)
  • Common Language Runtime (CLR)

"Any language" (in practice, 3) - and, there's the fact that there are whatever limits MS imposed (type system, etc).

Base Class libraries provide all the framework classes for common stuff, including reflection, OS stuff, COM interop - etc. No CORBA support built in.

IL - it's compiled (JIT). IL sits on the CTS and is "language neutral" editor sidebar - but what about dynamic languages? Dave Simmons has posted extensively on the difficulty he has had. Even C has issues - but can run as an Unmanaged application.

Question - what about unmanaged - what's the penalty? No GC, resource management, etc. If you run unmanaged, you don't live with that. Note - this is a good thing for Smalltalk, in my opinion....

Learning Curve - How long? They say "a couple of weeks". Mind you, it's effectively an OS unto itself.

Compiling and running - compile code to an assembly. Assembly gets loaded (with platform rules (security, memory checks, etc). Application Domain created, then OS process. All managed apps are garbage collected.

Deploying - Assemblies are deployable units of software. Similar to parcels in VW, but with a lot of extra stuff - security (could be certificate based), dependencies, version identification (can deploy multiple versions to same platform - that's a cool feature. Deployment consists of copying the assembly out - like Parcels.

GUI stuff - Windows Forms stuff has not been ported. Only the web stuff really has (to different operating systems, that is). They seemed to think this is next to impossible....

A CLR will run all .NET programs in a single OS process (for performance purposes). There are Application Domains to separate things. There is a remoting infrastructure to allow splitting across multiple CLR sharing. NOTE - This is pretty much what VW does....

CLR Security Customizable, granular permissions. Role based, based on ID of the process. Also code level security based on the trustworthiness of the code itself (certificates).

Question - this sounds complex. Are there tools to help? Yes, there are admin tools for this. The security stuff can be turned on or off; there's overhead for this.

Question - NSA has not blessed .NET? Amusing, because NSA does not constrain itself that way.... (question from a Navy developer).

More questions on security - why is it in the .NET platform, instead of the OS? Answer? The CLR is the new operating system....

More security - enforcement can be as granular as the method level. Assemblies can be signed (certificates). Editor sidebar - can't this get to be a complete nightmare if/when assemblies come from multiple sources with various certificates? i.e., a vibrant third party market... Recall that MS told people not to trust their own certicates last year after a security breach....

 Share Tweet This
-->