Draft for Atom
Atom has a draft specification now - I suppose I'll have to take a look...
Well, it seems I'm not done dealing with Internationalization issues in BottomFeeder. After posting the new builds, I still got reports that menu operation could be slow. I took a look at the process of UserMessage lookup, and found out what's going on down there. When a catalog is needed, the base directory specified ('catalog' in Bf) is expected to have sub-directories. What subdirectories? Well, that depends on the language setting and locale setting for your system. On my Windows XP box, with a US locale, it's looking for wither catalog\en or catalog\en_US. In Russia, that would translate to catalog\RU (and so on for other places). If there's no such directory, then the catalog is 'missing', and that's where the slowdown happens. Now, there may well be a better way to deal with this than what I just posted as an update (check the toolbar in Bf for downloadable updates), but it ought to work. At startup, Bf checks for the catalog that shipped with the install files, and for the directory structure that is expected on the system in question. If the expected directory structure doesn't exist, it will get created, and the English language catalog will get copied over. If there's a better way to deal with this, I'll make changes as appropriate. Eventually, if I get translated catalogs, I'll add settings to allow the user to specify the catalog to use.
If you like Lileks, then you should definitely have a look at this collection from him. Learn everything you ever wanted to know about the intersection of celery and loose underwear :)
Last time we went off to play Trivia, we bet all of our points on the last question, got it wrong, and came in dead last. So almost anything we do tonight will be an improvement. I'll post up a few questions later, and see if anyone else can figure them out.
Well, we were cruising until the last question - we had a shot at second place. We blew it though, and ended up fifth. Here are a few of the questions:
I'll post the answers in a day or so
Patrick Logan points to this screed by Warren Harrison. IMHO, Harrison is the "clueless dabbler". In his IEEE article, he decries end user programming, calling such stuff "dabbling". maybe he should talk to Alan Kay. Here's the part I really liked:
The next wave of end-user programmers were writers of spreadsheet macros. They were notorious for making mistakes, such as the Florida contractor who used the Lotus 1-2-3 spreadsheet program to prepare a bid in the 1980s. Mistakes in the macro resulted in a bid that was too low to recover costs. After winning the contract, the contractor tried to sue Lotus because of the programming error. While a trained professional developer would have tested the macro to make sure it worked correctly before staking a major bidding decision on the results, the end user omitted this important step.
What planet does this guy live on? Apparently, he never read about the Ariane V disaster. Or the huge percentage of professional projects that fail. Here's a cluestick Warren - the "professionals" absolutely suck at this work too - the track record indicates that the so called "dabblers" are not the problem. What's worse is that he can't sort out risks:
Can it be true that software manipulating my credit history could have been written by an accountant with no concept of software testing or development processes? How many e-businesses have failed because of lost orders or payments placed through a Web site written by a self-taught Perl or HTML "programmer" who is really a marketing assistant and has never heard of file locking?
Hmm - let's see - which do I fear more - software written by an accountant who understands accounting, but isn't a software professional, or software written by a software professional who doesn't understand accounting?. I've seen both in my career, and I'd much, much rather take the former. Warren can trust his money to the latter - be my guest. Either one of these can be a problem - but the domain is the far, far more complex of the two. It's sheer arrogance to think that learning about file locking is somehow harder than mastering GAAP rules.
If we want secure and safe software, we have to make it possible for the domain experts to create that software. Banishing them from the field sounds like 1960's glass house thinking to me. I only hope that this guy's mindset isn't very widespread...
Ted Leung spots the Croquet talk from last year, and has a few thoughts on it. It's worth reading the whole thing - he mentions a number of good kay comments. I found this comment at the end of Ted's post interesting:
Much as I love Lisp, it seems to me that the Smalltalk community, led by folks like Kay, are continuing to demonstrate a convincing agenda for forward progress, while the Lisp community is perennially struggling with basic infrastructure issues like which dialect of Lisp/Scheme, which windowing environment, etc. Perhaps this is due to the conception of Smalltalk as a system, in addition to a language.
I feed better about the difficulties in auto-updating an application - it's apparently not that clear in .NET either. Julia Lerman posted about her difficulties with the built in support in .NET. Interestingly enough, it sounds like I had less difficulty building my own system in Smalltalk than that. Ahh, productivity....
This is a dev stream update only, but it adds a nice enhancement to the tool. Some people like using the new Newspaper mode in Bf, but they would also like to be able - assuming the feed supports it - make comments on items without having to switch back to individual items view. So, I've added a link to the end of each item that will bring up the comment tool for the item in question. As always, let me know if there are problems
I'll be in Canberra on the 22nd - here's what's up that day:
A general invitation to two seminars in Canberra on Thursday 22nd July
Venue for both seminars:
Australian National University (ANU)
Room N101 on level one of the Computer Science and Information Technology
Building which is nearest to the Barry Drive entrance to the university
(building number 108, sector G4 on the ANU campus map - see the links below:)
Department of Computer Science Seminar
4:00PM to 5:00PM
Blogging and Syndication - Trawling the Internet for Meaning (The feeding, reading and seeding of Blogs) - James Robertson (Cincom Systems )Canberra Linux Users Group (CLUG)
from 7:00PM
Blogging and Syndication - Trawling the Internet for Meaning (The feeding, reading and seeding of Blogs) - James Robertson (Cincom Systems )plus
Customisable XML presentation technology using WithStyle - Michael Lucas-Smith (Software WithStyle)Abstracts:
Michael Lucas-Smith's presentation:
Recent years have seen many software development projects moving away from desktop clients to Web Applications. Unfortunately, whilst today's Web Applications offer some benefits (particularly for implementors), they constitute a significant step backward for users. Usability and productivity suffer as user interfaces are 'dumbed-down' to fit a request-response model reminiscent of green-screen terminals. The IT industry has again manufactured new limitations that need not exist.WithStyle WebUI is a 100% Smalltalk user interface technology that frees user interfaces from the limitation of Web Browsers that were not designed to meet the UI requirements of business applications. The quality rendering capabilities of the With:Style technology prove the strength of Smalltalk as a first-class user interface platform that need not be fragmented and tied to Java or Windows-specific front-end technologies.
As a customisable XML presentation technology, WithStyle offers many deployment models and even more possibilities for rich, 'hybrid' user interfaces through integration with Pollock (a new GUI framework for VisualWorks). It fits in naturally with server-side Web applications and emerging Service Oriented Architectures. Demonstrations will include XML Editing and Scripting client-side behaviour with Smalltalk.
James Robertson's presentation:
This session will discuss blogs, blogging, and some of the associated technology (RSS in particular). The focus of the talk will be whether blogs are something of relevance - for project managers, marketing staff, or developers. I expect an interactive session with many questions, as well as an interactive introduction to what a blog is. I'll be taking the tack that blogs are, in fact, useful and worth investigating. I have my own blog - http://www.cincomsmalltalk.com/blog/blogView - and I also sponsor other blogs on our site - http://www.cincomsmalltalk.com/userblogs. A quick check of the InfoWorld site, the O'Reilly site, Microsoft or Sun will demonstrate that many of the industry analysts and evangelists have started blogging - what this talk will explore is whether anyone in the audience should be.The talk will reference BottomFeeder - an open source RSS/Atom news aggregator. Other technical issues covered will include:
- Development issues (dealing with RSS, character encoding issues)
- Deployment issues (building a deployable and installable application)
- Cross platform issues (Unicode, character sets, libraries, look and feel)
- On the fly updating of a deployed application
See you there!
Ok, this is someone with way, way too much time on their hands. Or to quote one of the more cynical denizens of the Smalltalk IRC channel: that's like dog**** collecting itself.
You can be taken seriously in your field as a blogger - the two major US political parties are taking bloggers seriously:
More than 30 independent Web journalists have been accredited to cover the Democratic convention, and the Republicans say they'll also credential so-called bloggers.
So, would going into battle with accordion music be considered a war crime?
The Air Force has been looking to replace the accordion player of its band's Strolling Strings music ensemble since the musician retired two years ago. So far, the search has been fruitless.
I'll be off the air for awhile - I'm about to head to the airport, and from there to Sydney, Australia. I'll be resurfacing in about a day, completely exhausted after 22 hours traveling (plus taxi rides to/from airports!). See you all on the flip side (of the world :) )
Well, the trip hasn't been off to a great start. I arrived at BWI over an hour ahead of time - but, I have no status on United, so I had to wait in the long line to check in. That was ok, because the flight was delayed. Not to worry, the ticket counter agent assured me - I had plenty of leeway for my connecting flight. Then came my first check - no electronic visa had been filed for. Apparently, when an American travels to Australia, they have to pay $20 (USD) and file an electronic document. This is something I was told my corporate travel agent would handle. $20 lighter (and a hassle to get a receipt - they don't normally have receipts for these) - I was past that.
On through security. I got to the gate, saw that nothing was happening and sat down. Second check - they called me (and three other people) by name to the counter. First, my frequent flyer card had been left at the front desk, and second, my connection to Sydney was blown - the airplane I wanted to fly was in Pittsburgh... weather had diverted it. Well, that was swell. The gate agent (I should have gotten her name so I could praise her properly!) started looking at alternatives for the four of us headed to Australia. A man and his son on their way back home, a woman on her way to a wedding, and me, on my way to various talks. She figured we could get on a flight to LAX at 6:50, and then catch a Qantas flight to Sydney, arriving roughly ontime. Great - but that required paperwork from the front desk, other side of security. She sends a guy to get that, and to retrieve my forgotten card. A few minutes later the guy comes back - with my card, but without paperwork, Groaning ensues - our faithful gate agent gets back on the radio, seeing of she can get paperwork, or alternatively, get us onto a United flight from LAX. No dice on either one:
There was the third check; now what? Well, the gate agent doesn't give up. Continuing to work with us, she starts looking at alternatives. Fly out the next morning, fly out the next evening (but all these flights are very full). Looks like a bad situation - if we don't leave today, the woman off to a wedding will miss the entire thing! Not to mention that her travel bag might be on the plane to LAX, because we almost got on that one... Possible salvation:
It turns out that United has a bunch of people needing to get to San Francisco, so they line up a new plane to make that flight (the priginal is still stuck in Pittsburgh). That plane finally arrives, and we look good - better than good, because our intrepid gate agent has bumped us all to first class so that we can get off the plane (2 hours late, with a 2:15 window originally) quickly and run to our departure gate in SFO. This woman is one of the nicest gate agents I have ever dealt with - whoever was working gate 15 today deserves a raise!
Well, as I write this I've just finished a nice meal in first class (although no power on this plane - United is just primitive compared to American that way). We are part way to SFO, and I don't know how this will turn out yet. Will I make my original flight? Or will they have to arrange new routing? That might not not be so bad - one routing had a 10 hour layover in Honolulu (beach!). Will the woman on the way to the wedding make it? I'll find out later...
Well, we had more excitement. We got to SFO, and the fun started up again. First off, we landed - and the gate we were supposed to go to was still in use. So we waited. United was holding the Sydney flight, so we were ok that way - but it was a pain. Finally, they take us elsewhere - another terminal entirely. No problem they say - someone will meet you at the gate.
The 4 of us trying to make this flight get off, and find no cart. Instead, we have to go down through the "airport personnel only" part of the airport to the tarmac, get on a bus, and get shuttled over to the other terminal. By this time, the guy with a health problem is hyperventilating, and that will be a problem.... later. We get up to the terminal level, and the United guy in the elevator with us just... takes off. Huh? Well, another agent shows up and tells us where to go. Off we dash, to the flight. We get there, and then another delay - United is trying to figure out whether or not they should allow the sick guy to fly. They call a doctor in Chicago (it's now 1 AM California time!), and he says ok. We push back...
And then they change their minds. Back to the gate we go, and they take the guy off the plane. At least we finally take off. I managed to get some sleep - it's not like I had anything else I could do - no power at the seats, no LCD screens for movies/tv, and to top it off, my seat light is burned out. So much for the books I packed :( I had a decent enough flight even with all that - good conversation, and my seat was an exit seat - over 4 feet of legroom in front of me. But it wasn't over yet.
Arrival in Sydney - and we have to wait on the tarmac again. Wonderful. Finally get to the hotel around 10 am (local time), and I'm completely zonked. I love travel...
So I'm in the Saville hotel. It's a very nice suite I have - big living room, nice bedroom, kitchen, fridge - and there's shopping (a mall, food store, the works) nearby. It would be great - if only I had internet access!. No broadband, and I can't get the Tinkpad to dial the phone. Grrrrrrr. And I know the modem works - I ran over to the Sydney Cincom office and tested the modem out.
I'm getting mail from people telling me that they are seeing hosed up menu in BottomFeeder. I suspect that this is an index problem with the catalog; I'm hoping that the latest update fixes the problem. If it doesn't, let me know
No one guessed any of the trivia questions; here are the answers:
Now back to ranting...
Glenn Erlich pointed me to this article in Fortune on Alan Kay. It's apparently a story over on slashdot as well, but - as per usual - the slashdot crowd doesn't get it If it doesn't come with curly braces, they never do :). Glenn also points out that the Croquet project has a new project page
This is just priceless. Take a look at Panopticon's comments on Boo, a new language for the .NET platform. Here's the short definition of Boo:
Boo is a new object oriented statically typed programming language for the Common Language Infrastructure with a python inspired syntax and a special focus on language and compiler extensibility.
Panopticon points to Don Box, who says "I wanted a language I could extend with my own constructs." Of course, Don could have had that years ago by looking at Smalltalk. or Lisp. But hey, progress is progress - at least he's moving in the right direction. Now look at what Panopticon thinks:
This is one of those ideas that's always seemed to me to be great on the face of it but questionable because of the law of unintended consequences. On the one hand, how can you argue with giving people the ability to extend the language as they see fit, especially given the fact that compiler releases can be a year or more? On the other hand, it's so easy to screw up language design even when you've been doing it a long time that I wonder if you won't quickly have a language that's no longer comprehensible by man or machine.
In a nutshell, that's the way a lot of people look at dynamic languages - it's the software version of what about the children? that you often see in politics. Don't give those darn developers sharp tools - by golly all they'll do is hurt themselves. Better to strangle productivity than risk that!
Julia Lerman explains why you need one for Windows. If my laptop did this while I was traveling, I'd be dead:
I just went through a nerve-wracking few hours after doing the latest Windows Update. After rebooting, well, attempting to reboot, all I got was a message that said "NTLDR Missing, Press CTRL-ALT-DEL".
After some digging (and being thankful to have the calm Don Kiely here) it seems that because of a large pile of tmp files on my c: drive, it created a problem for the NTLDR file (NT Loader) that was exacerbated (look it up) by the update.
Windley reports that Mexico's AG is now lowjacked:
Mexico's Attorney General now has a non-removable microchip implanted in his arm to give him access to the countries crime database and track his movements. The device will be deactivated after he leaves office. I guess if someone kidnaps him now they'll be forced to cut off his arm to keep from being tracked.
Now, combine that with Joi Ito's story from Japan:
Japan: Schoolkids to be tagged with RFID chips
Japanese authorities decide tracking is best way to protect kidsThe rights and wrongs of RFID-chipping human beings have been debated since the tracking tags reached the technological mainstream. Now, school authorities in the Japanese city of Osaka have decided the benefits outweigh the disadvantages and will now be chipping children in one primary school.
The future arrived while I wasn't looking...
We had a little luncheon here in the Cincom office - Cincom is celebrating the fact that we paid off all our external debt this week. That's not the funny thing I noticed though - I had a coke with lunch, and I thought it tasted a little off. Then I looked at the can - and there's the tell-tale yellow stripe - it's New Coke. Clearly, the Aussies are not discerning enough in their soda drinking :)
Bf has some problems with Asian fonts - in the html display pane. The good news is, assuming that the fonts are installed, the base application is getting the correct fonts (with the fonts installed, I titles are showing up properly). What isn't happening is proper display in the HTML component. I've sent an email off to Holger, the author of Twoflower - hopefully, I'll have a resolution shortly
The techno.blog quotes a great quote from Alan Kay at his 2003 ETech presentation:
Most software is made by programmers creating text files that are fed to a compiler and loader which makes a runable program. One can tell how early- or late-bound a system is by looking at the things that can be changed while the program is running. For example, it is generally true of C based systems that most changes in the program have to be done by going back to the text files, changing them, and recompiling and loading them. This is even true of Java. Organizationally, this often leads to at most one or two system builds a day before most bugs can be found.
A late-bound system like LISP or Smalltalk can change pretty much everything while it is running -- in fact, both these systems are so good at this that their development systems are written in themselves and are active during runtime. For example, a program change in Smalltalk takes less than a second to take effect, thus many more bugs can be run down and fixed.
But late-bound has some deeper and more profound properties that include abilities to actually change the both the structure and metastructure of the language itself. Thus an important new idea can be assimilated into the constantly evolving process that is the system.
Another aspect of late-binding is the ability to change one's mind about already instantiated structures that are already doing work. These can be changed automatically on the fly without harming the work they are already doing.
Etc. Wheels within wheels.
These ideas are not new, but they are quite foreign and out of the scope of the way most programming is done today. -- Alan Kay.
To summarize - you want a system with no downtime? Use Smalltalk. You want a system that has to be taken down and up every time you make even a small change? Go ahead, use one of the "analyst approved" mainstream systems. I'll be over here, being productive...
Gary Short points out how - even though it has libraries for lots and lots of stuff - .NET hinders productivity in critical ways. This isn't unique to .NET - Java has exactly the same problem - sealed classes. Here's a great example:
Here at Scotland On Line a colleague is working on an ASP.Net project. There's a requirement to add a number of working days to a DateTime object. A quick look at the DataTime object shows us that there's no such method. Now if we were using Smalltalk we'd be able to inherit from the DateTime object and add our AddWorkingDays method, but 'cos we're using C# and the library designers have sealed the class, we can't. Grrr!
So now we have to create a wrapper class, something like this.....
namespace SOL.UtilityClasses {  public Class DateTime   {     private System.DateTime _dt;     public DateTime(System.DateTime theDate)       {          _dt = theDate;       }         public SOL.UtilityClasses.DateTime AddDays(double NumberOfDays)     {        _dt.AddDays(NumberOfDays);        return this;     }     // Implementation of all the other bahaviour we need.      //Implementation of the new method we need     public SOL.UtilityClasses.DateTime AddWorkingDays(int NumberOfDaysToAdd)       {          //...       }       } }...and recreate all the funtionality we need, then we have to add the extra functionality. What a waste of time!!! Why are these classes sealed, come on Microsoft you can trust us, we know what we're doing, you don't have to seal every class in the library!!
This is my answer to those who tell me "but in niche systems like Smalltalk, you have to write your own libraries for things the big vendors provide" - yeah, but Smalltalk doesn't stand in your way and block forward progress. In the case above, a Smalltalker would have added a method to class DateTime and moved on.
I notice that Giulio Piancastelli was trying to learn Smalltalk, but gave up - he tried to do this in a workspace:
foo: n |s| s := n. ^[:i | s := s+i.]
He ran into trouble getting a "Nothing more expected" error from the system (Squeak, in this case). Now, for those of us who are Smalltalkers, this is clear - you don't write methods in a workspace, you write them in a browser, in a class. Here, he's trying to write a method in a workspace. Like I said, clear to us Smalltalkers - obviously not clear to a neophyte.
This is an expectations issue. People expect to write code and then compile it "en masse" - which just isn't what you do in Smalltalk. You can write the kind of code he wanted to write in a workspace, but not as a method - a method is typically attached to a class. You can script in a workspace, but you just omit the method entry point. That's what threw Giulio; he didn't realize that he was supposed to create a class, add a method, and then write some script to drive it in a workspace. Probably a better book would have helped - certainly for VisualWorks, a walk through the examples workspace would have helped (as well as a look at the tutorials).
However, that's obviously not enough - VW has tutorials and the examples workspace - what should we be doing that we aren't? I'd like to be able to help people like Giulio not get discouraged.
Last night I spoke to the Australian Computer Society's OOSig and the Open Source Sig - the topic was Blogs, Syndication, and BottomFeeder. It went pretty well - there was a higher than average turnout, and we had a good discussion on the topics. One thing hit home to me again when I gave this talk - Syndication (RSS/Atom) and News Aggregators are still very much a niche usage. I started out by asking how many people knew about and read blogs - maybe 5 people raised their hands (out of 20+ people). It shrank to 2 people by the time I got to "how many of you know what a news aggregator is?". As cool a topic as many of think this is, there's a ton of end user education left to do. Oh, one last thing - I said I'd get the presentation posted - here are the slides
Chris Double points to a source claiming that the JVM ought to be able to support continuations. That's cool, but - based on Sun's concepts of OO, I would guess that they'll invent a completely silly new language construct to support it (assuming they do support it, that is). Why have a simple, extensible language when you can lard on complexity?
I've just had to add a line to my rejects file (which is used to filter referers on the CST blogs) - apparently, some web monkey at the iaea thought that referer spamming was a good thing. Yeah, there's a way to make your organization look good. Bah.
Alan Knight is going to be on the OOPSLA panel for The Great J2EE vs. Microsoft .NET Shootout. Others on the panel: Anders Hjelsberg, Don Box, John Crupi, Rob High. I won't be at OOPSLA this year, but that should be a very interesting panel discussion. If you have suggestions for Alan, he's open to feedback - check his blog (link above) for an email link.
I was pointed to this interview with Tim Bray (of Sun). His comments on RSS are interesting, but I laughed out loud reading this:
Q: You have said that the claims of pundits that .NET is a threat to Java technology's future are silly. And that .NET fails to hit the 80/20 point where you do 20% of the work and see 80% of the benefits.
A: Java 1.0, when it first came out, was very lean and mean. And that was excellent, because people could learn it and become proficient in it quickly. Since then, the Java language has grown into its current, sophisticated, expansive shape. It's going to be tougher for .NET to replicate that kind of successful growth.
Many of the design decisions about .NET were made before it came out. But with Java 1.0, the community collectively was able to build all the extra layers that make up what we have now.
I guess Tim doesn't remember that all the new things in Java 1.5 (or is it Java 5 now?) were either copied from .NET (auto-boxing) or rushed through after noticing that they were part of .NET (generics). He's had the Kool-Aid, just like Scoble over at MS....
John Urberg comes to an interesting conclusion on how tools and "culture" affect software development in a given language:
So are there any tools that make it easy to build business objects? How about Smalltalk? Nearly every Smalltalk comes with a real MVC implementation that allows you to bind object properties to controls. Distribution of objects is built into many Smalltalks. You can use the Gemstone database on the backend and all the persistence is taken care of for you. And all this was available a decade ago.
So what's the lesson? Tools have certain ways they want you to use them. Tools like PowerBuilder and .Net want you to pass around SQL result sets. Tools like Java make you write everything from scratch. Tools like Smalltalk want you to make objects. So folks using .Net are going to avoid fighting the tool and assume OO is not a good thing for the business layer. Folks using Java are going to write lots and lots of libraries. And Smalltalk folks will shake their heads and wonder when people will finally get a clue.
Read the whole thing for the introduction to that concludion...
Tom Sullivan of InfoWorld asks a good question - when we say that "80% of IT projects fail", we never define failure - it's common to toss around numbers like 60%, or 70%, or 80% - heck, I do it all the time - but what falls under that classification? It'll be interesting to see what he reports.
I got this from one of our customers in the education field - it's an interesting take:
I am an associate professor of computer science at Bucknell University in Lewisburg, PA. I am writing because I am interested in getting some "real world" experience using Smalltalk.
I came to Bucknell and started teaching software engineering in 1988. For years I taught my course using C++ and I was always frustrated by my inability to teach software design effectively. C++ was too much of a barrier. When Java came on the scene, I gave it a try. I found it better than C++, but not nearly good enough. Finally, I came across Smalltalk.
I started using Squeak in 1999 and I had an epiphany! I started teaching my software engineering course with Smalltalk in 2000, and I was amazed at how much the students responded to it. I needed to spend a week (or less) at the beginning of the semester explaining the language, and there were no more language issues for the remainder of the semester. Amazing!
The last time I taught my course I used VisualWorks. The students still appreciated Smalltalk, but I realized that I could be even more effective if I had experience using Smalltalk in an industrial setting. I think it would be even better if I had an opportunity to work with a group such as yours which is developing applications in Smalltalk. This would allow me to bring work experiences into the classroom.
That made my day!
Had a nice trip around Sydney today - went down to the harbor and met some friends - took a ferry across to Watson's Bay. We had lunch at Doyle's, which overlooks the water. That was quite nice, but the clouds started to role in and it got cold as we sat there. It wasn't bad for walking though, so we went up the hill to Sydney Harbour National Park, which is a nice place with a great view of the harbor outlet - you've got the rocks below, and the Pacific as far as the eye can see. I still don't have a digital camera, so photos will have to wait. If you want an idea of where I went, have a look here - the guy who wrote that has some nice shots of the area. I didn't go to any of the beaches (it's winter here now, and today was no beach day :) ). It was a nice day out, and I had a pleasant drive back with the local Cincom rep and his wife - who took me on a guided tour of various parts of Sydney. A bit chilly by the end of the day, but it was all very nice. Now I just have to find dinner...
Blaine Buxton finds Paul Graham off on a good rant about languages:
"I suspect few housing projects in the US were designed by architects who expected to live in them. You see the same thing in programming languages. C, Lisp, and Smalltalk were created for their own designers to use. Cobol, Ada, and Java were created for other people to use.
If you think you're designing something for idiots, odds are you're not designing something good, even for idiots."
Heh - a bit strong - but he's got a point.