WS* Presentations
Thanks to a tip from Bruce Badger, I've got the presentation I posted this morning available in PDF format now:
Enjoy
Thanks to a tip from Bruce Badger, I've got the presentation I posted this morning available in PDF format now:
Enjoy
I got this from Andrew McNeil, Cincom's man of many hats in Australia:
I am please to announce that Joseph Pelrine will be presenting at both the Sydney Smalltalk Users Group and ACS NSW OOSIG meetings in February.
- On Tuesday 15th February at the Sydney Smalltalk Users Group
- Cooking with SUnit - Recipes for Unit Testing in Smalltalk (a preview of Smalltalk Solutions 2005)
- On Thursday 17th February at the NSW ACS OOSIG meeting
- Extending XP With Scrum
Scrum, one of the agile processes, has been used to develop systems and products since 1995 on thousands of projects in hundreds of organizations. Scrum implements in several days and delivers increments of functionality within thirty days. Scrum wraps existing engineering practices. This session compares Scrum and XP contrasting their strengths. One of the interesting things about both XP and Scrum is that they're both explicit about the areas that the other process is vague in. Although the processes complement each other quite well, there is still quite a bit of fine-tuning that needs to be done to get them to mesh, and not mess, with each other.
Joseph Pelrine is C*O of MetaProg, a company devoted to increasing the quality of software and its development process, and is one of Europe's leading experts on eXtreme Programming as well as Europe's first certified ScrumMaster Practitioner and Trainer. He has had a successful career as software developer, project manager and consultant, and has spoken about it at such diverse places as IBM, OOPSLA and the Chaos Computer Club. A member of the International Association of Facilitators, he is strongly interested in properly applying soft skills such as communication techniques and retrospective facilitation to agile processes.
The venue and time for both talks will be:
ACS - NSW Branch Office
Level 4, 122 Castlereagh Street
Sydney
6:00PM - 7:00PMThe ACS doors close at 6:00PM so please try and arrive by 5:45PM. If you are late there will be a number to ring on the door, but being on time will be much appreciated.
From approx 7:30 we will adjourn for dinner/drinks
Sounds like fun - wish I could be there!
Via d2r I ran across this post discussing the type systems of Java and Ruby. Other than the example using a private method (Smalltalk has no such thing), you can apply the same comparisons to Smalltalk:
Java uses inheritance (loosely speaking) as the mechanism for defining the type of an object. An object "is a" X if it implements X. While Ruby also supports inheritance, establishing "is a" relationships is not its main purpose. In Ruby an object is of a certain type if it behaves as that type. Thus the saying "if it walks like a duck and quacks like a duck, then it must be a duck" or as it is commonly called, Duck typing. It must be noted, however, that while Ruby has classes, objects are not explicitly declared of to have a certain type.
So, what, concretely, defines what type an object is in Ruby? Well, that's the wrong question to ask. But if you'd still like to hear an answer, an object, conceptually, is of N! types (made of the subsets of all the combinations of methods exposed by the object), where N is the number of methods exposed by the the object,
In a sense, Ruby shifts the notion of type to the client (the client being the code that uses a given object). Thus, an object is (or not) of the type required by client if it implements the operations required by the client.
I like the term "duck typing" too - it's a nice shorthand for how dynamic systems work.
One of the ThoughtWorks guys spots an interesting variance in results between MSN search and Google search. Accidental, purposeful, who knows? Given Microsoft's reputation, I know what most people will think :)
"java sucks"
Google: 410,000
MSN: 846,373".net sucks"
Google: 3,000,000
MSN: 245,041
This summary of Gosling's thinking on types explains the difference between the static and dynamic camps very well:
static typing gets you to prod faster, scripting gets you to demo first. easy to write small things, harder to wrote big things.
Yesterday, Feb 1, 2005, Cincom CEO Tom Nies was interviewed live for the Wall Street Reporter's FOCUS on Enterprise Software Analyst and CEO Roundtable Forum. The complete interview will be available in audio shortly, on the Wall Street Reporter web site as well as in print by the end of Feb. The print report is an in-depth focus on the Enterprise software market. Tom highlighted industry trends as well as Cincom's recent successes and future strategies. The live broadcast lasted approximately one hour.
It's a bad sign when an office cleanup yields 4 boxes of stuff for the basement (obsolete electronics, papers, etc), and 4 trash bags to the trash. Where was I actually sitting?
The front of my office, facing the bay window:

The back of my office where everything else is stuffed:

After my saga with the excitement of file copying in Windows, I was ready to look at Macs. Well, you know how that went. So today, I'm looking through my cd's, trying to find a backup - finally found one. Slap it in the drive - try to have a look at it. Bam - Explorer just locked up hard. I couldn't kill it (although I could remove access to the shell by attempting to kill it). I couldn't eject the CD normally, but even ejecting it manually - and replacing the bum CD with a good one didn't help - still locked hard. I had to do a hard (power cycle) reboot to recover
So I slap the CD into my Linux box, hoping maybe it can read it. No dice, it's apparently scarred badly; Linux won't mount it. But hey - it didn't lock the system down attempting to. What I'd like to know is, what bright guy in Redmond thought that a timeout on reading a CD ought to be infinite? And who was his cohort that decided that the Task Manager will just pretend to kill the blasted thing? Gads.
Mike will mourn the death of Enterprise, but I say good riddance to bad writing. There's a reason it had low ratings - cardboard cutouts for characters, plotlines that made no sense - it's long past time that the "powers that be" at Paramount sent Berman and crew on a permanent vacation. If they have any dreams of a new Trek series, I'd suggest that they watch some good sci fi first - they could start with Battlestar Galactica. They could then have a look at SG-1 and Stargate Atlantis. They might notice that these shows all have 3 dimensional characters. For that matter, they could have a look at the new Fox show House, which has real characters as well.
This seems to be a recurring theme with Dave Winer - he thinks everyone should want to view the news the same way, in a newspaper view type of mode. In BottomFeeder, there are a number of was to view new stuff. You can switch to "all new" mode, and that itself has two modes - a list of all the new items in a 2 pane mode, or the tree of feeds/items in a 3 pane mode. I started with just the 2 pane mode, but added the second view due to user demand. Personally, I like reading the new stuff in 2 pane mode - but people's tastes differ.
Likewise, I added a newspaper view awhile back, and you can slam BF into that mode - selecting a folder in that mode will place all the new items in a scrolling newspaper view. It pages, because larger HTML views are somewhat unwieldy. What this amounts to is that Bf allows users to customize the way they view new stuff - it doesn't provide a single way. I would have preferred staying with a single way, but my users had other ideas :)
Darren Hobbs on defining power:
Java and .NET are powerful. The environment takes care of interacting with the devices, memory and cpu registers. Its easy to model human concepts on these platforms.
Java and .NET are not powerful. If low-level functionality is needed that was considered too dangerous by the system designers, there is no way to access it from within the environment.
Smalltalk is powerful. The environment takes care of interacting with the devices, memory and cpu registers. Its easy to model human concepts on this platform.
Smalltalk is powerful. Low level functionality is implemented in the same language as high level concepts. If access is needed, the code is accessible from within the environment. The virtual machine can be extended by adding custom primitives.
Smalltalk is powerful.
Yesterday, I railed about a bum CD I was trying to read. The reason I wanted to read it is that I had backup data on that CD, and I needed it. Well, I found a way to recover this morning - I grabbed CDRoller, which was able to read and recover the stuff on the CD - and for only $29.95. It was well worth the expense.
I suppose I should take this as a positive sign of sorts... the Cincom Smalltalk blogs apparently get enough traffic to warrant their own spambot. Until this morning, the failed spam attacks (I archive them) came in drips and drabs, and seemed to be manual efforts. Then this morning my archive folder showed over a dozen attacks, all from different sources - but all within a few seconds of each other. They all failed; they were targeting older posts, and comments are off for those.
As to why link spam - comments and referers - are so prevalent, read this Register article. It's got some instructive points:
Sam - let's call our interviewee Sam, it's suitably anonymous - lives in a three-bedroom semi-detached house in London, drives a vintage Jaguar and runs his own company. But "it's not not all rock and roll and big money", says Sam. What isn't? Spamming websites and blogs with text to pump up the search engine rankings of sites pushing PPC (pills, porn and casinos), that's what.
For that's what Sam does, pretty much all day long. He - we'll use the male notation, it's easier - would do this anyway for fun, but it's more than fun; he says he can earn seven-figure sums doing this. Sam is a link spammer. He's unapologetic about it. Skilled in Perl, LWP and PHP, Sam's first professional programming was done aged 13, when he sold some code to a gaming company. He's 32 now, and spoke to The Register on condition of anonymity.
That explains the economic angle - the potential revenues are high, and it's easy to do. Generating link spam is far, far easier than email spam - all you need to do is push a boatload of http posts and gets - the hard part is the list of where to hit. Apparently, these people do market research. The more interesting question is why this started happening all of a sudden - blog comment spam, referer spam, and wiki spam were virtually non-existant as recently as two years ago. What changed?
They're just exploiting a weakness in a system which blossomed just at the time that Google cracked down on the previous method that spammers used, where huge "link farms" of their own web sites pointed circularly to each other to boost each others' ranking.
"It was around December 2003: Google did what was called the 'Florida update'. It changed the algorithm that measured how high a site should be ranked to spot 'nepotistic' links and devalue them. So if you had a link farm of sites with different names which linked heavily to each other, they were pushed down," explains Sam.
So the link spammers - who prefer to call themselves "search engine optimisers", but get upset when search engines do optimise themselves - turned to other free outlets which Google already regarded highly, because their content changes so often: blogs. And especially blogs' comments, where trusting bloggers expected people to put nice agreeable remarks about what they'd written, rather than links to PPC sites. Ah well. Nothing personal.
So we can file this under unintended consequences. Google (and other engines) made a change in their ranking scheme to address link farms. The result has been, IMHO, worse than the cure - it's offloaded the problem from Google down to the rest of us. Google is trying to deal with it - they recently proposed nofollow, a scheme I've discussed before. Suffice to say, I don't think it's likely to work. For one thing, there are going to be lots of blogs and wikis that don't implement the tagging scheme. For another, the spammers just won't care that much.
The bottomline is, this kind of escalation is just going to continue. With the kind of revenue potential in this, no technical fix is going to get rid of the problem completely.
The "drowning in information" meme pops up every so often - first it was too many emails, then it was too many bookmarks... now it's too many RSS feeds. It is possible to read too many sources and waste time - this article summarizes the problem quite well:
We have always lived in a world where there was more information available than any one person can comprehend, but before email, the internet, blogs and RSS feeds, the limiting factor was not the existence of the information but gaining access to it. The form of the information limited the speed with which it could be accessed: having to go to a library, find the right book or journal, turn the pages, reading them one by one; gaining an introduction to an expert, persuading them to sit down with you and discuss the matter at hand; or doing empirical studies in order to reveal the information sought. It all took time.
Now the data we seek is easily accessible and the problem has shifted - it's not finding information that's the issue, it's finding the right amount of the right information. The limiting factor is no longer access but discrimination. There is so much information available that it's hard to know which bits to trust.
I've reached the point of too many sources myself - I now subscribe to 300+ feeds, and it's not really possible to keep up (at least, if I want to get anything else done). How Scoble manages to deal with 1200+ is beyond me, and the guy who noted a problem with importing 5100 feeds into BottomFeeder - I can't figure that out at all. It's now possible for lots of information to come in very, very quickly - the hard part (which is what the linked article discusses) is differentiation - figuring out which sources to trust, as opposed to those that ought to be ditched.
Like the author, I have no faith in tagging schemes or meta-filters - there's no real way to deal with the variant categorization schemes people come up with (and the sometimes entertaining results of searches demonstrate the limits to categorizing content that the author himself didn't categorize). Figuring out what to read online is a lot like deciding what books you want to read - you'll find things you like, and get led to related content. Friends will introduce you to stuff they think you'll be interested in. There's no silver bullet here, regardless of the dreams espoused here
A reader pointed this language table out to me, along with this comment:
This diagram is interesting. Smalltalk is very particular in that there are only 2 influences shown, and after that linear development. Also notice how nothing has changed in the world of languages in the past 7 years. I'd bet that's when all the other languages incorporated most of ST's features in a bastardized way.
Food for thought.
Rich has updated the doc set for BottomFeeder. It's all online:
It's all valid transitional XHTML now, and it looks very good. Thanks Rich!
Phil Ringnalda explores some of the implications of nofollow down the rabbit hole:
On the other hand, if nofollowed links count against link numbers, but then drop their allocated PageRank on the floor, then Google and friends have handed weblogs a pretty poison pill. If your entry has three internal navigation links, a link in the body of the post, and twenty comments amounting to thirty nofollowed links between links in the comments and commenter URLs, then rather than split that page's PR in four pieces, Google will split it 34 pieces, three for you, one for the site you linked to, and 30 that it essentially keeps for itself.
Read the whole thing
Ted Leung extends a comment made by Phil Windley:
Phil: Java is preferable to C++ in exactly the same way that driving a 1994 Chevy Impala is preferable to driving a 1978 Ford LTD.
Ted: And of course neither is anything like a BMW, Acura, Porsche or Ferrari.
Heh. Supply your own definition of what the analogs are; you know what mine is.
I thought I'd have a look at OpenOffice - lots of people have been talking about it, and I've made my love of Word known. Well - if you like slow and bloated, you'll love OpenOffice. I hadn't used it since I did some Word to PDF conversions the other day - and I'd rebooted since. Yet there was OpenOffice, insisting on chewing 50 MB. Sheesh. Meanwhile, starting Word takes a fraction of the time and consumes 1/5th the memory. Color me unimpressed...
I decided to take a look at last week's web traffic, and came to some interesting numbers. Unlike the last time I did this, I haven't split out XML access from overall access for the first set of numbers - this is overall, for all pages on the cincomsmalltalk site:
| Tool | Access Percentage |
| Mozilla/Netscape | 33% |
| Internet Explorer | 21% |
| BottomFeeder | 12% |
| Net News Wire | 8% |
| SharpReader | 3% |
| BlogLines | 2% |
| NewsGator | 2% |
| Liferea | 2% |
| Planet Smalltalk | 1% |
| Other | 16% |
Now, taking just the accesses for the XML files (which now makes up nearly 50% of all page traffic):
| Tool | Access Percentage |
| BottomFeeder | 24% |
| Mozilla/Netscape | 16% |
| Net News Wire | 16% |
| SharpReader | 6% |
| NewsGator | 5% |
| BlogLines | 5% |
| Internet Explorer | 3% |
| Liferea | 3% |
| FeedDemon | 2% |
| Planet Smalltalk | 2% |
| RSS Bandit | 1% |
| JetBrains | 1% |
| PubSub | 1% |
| Other | 15% |
I did some rounding, so some of those numbers are a bit imprecise. Still, there are some interesting things there. I have a lot of Mac users hitting the feeds, but - if they hit via the browser, they sure don't use Safari. Adoption of the Sage plugin for Mozilla seems to be going up smartly as well.
I got bogged down with work today, so posting was non-existant this afternoon. Off to the Gamecube now...
Ian Bicking had a few things to say about syntax extension today:
With syntactic simplicity you get languages like Lisp, Smalltalk, Logo, and Tcl (in more-or-less increasing order of simpicity and regularity). Advantages:
- Not much syntax to learn (and easy syntactic mastery).
- In some cases a highly manipulatable syntax -- leveraged quite a bit in Lisp (i.e. macros) and some in Tcl. People usually don't get that far into Logo (though they could). And maybe a bit strangely no one seems to care to go down that path with Smalltalk.
Yeah, Smalltalkers tend not to extend the syntax of the language that often. You'll see some examples of extension if you look hard enough in VisualWorks:
In general, you can replace the compiler for any class - look for implementors of the method compilerClass. Just look at the protocol expected by Class Compiler, create your own class that supports that protocol - and off you go. Mind you, it's not something that neophytes are going to want to get into - but it's a nice capability to have.
Doc Searls asks: "Is there a tool to map bloggers?" Well, that depends on whether or not you include the relevant data in your feed. There's a Geo module for RSS, and - if you include that data in your feed - an aggregator could use it. BottomFeeder, for instance, includes a "Map It" menu pick for feeds that include that information.
Dare Obasanjo points to a post by Michael Brundage titled "Working at Microsoft". Sounds a lot like other organizations I've been with - unlike the "borg face" people like to apply to Microsoft, it's a real place with real people - making the same good and bad decisions that everyone makes. Interesting reading.
Bloglines bought by Ask Jeeves? I don't know if this is true yet - I've only seen it reported by Mary Hodder. This could easily be a co-marketing thing. Anyone else seen reports on this?
Update: Scoble and Danny Ayers are also reporting this. Still haven't seen anything other than Mary Hodder's post being referenced though. Morgan McLintic points to a ZDNet story on this.
I posted here about RSS and information overload. Well, I took some of my own advice to heart this morning. I had slowly managed to get my feed load up over 300 - which, at least for me, is way, way more than I can pay attention to. I went through my feeds looking for stuff I rarely pay attention to and started weed whacking. I managed to get it back under 300 - I expect I can do better than that with a little more work - there are lots of blogs in my list that haven't updated in eons, for instance. Back to the weeds it is...
Via Instapundit, I see that the RIAA is out there making new friends every day:
Music Industry sues dead woman
Gertrude Walton was recently targeted by the recording industry in a lawsuit that accused her of illegally trading music over the Internet. But Walton died in December after a long illness, and according to her daughter, the 83-year-old hated computers. More than a month after Walton was buried in Beckley, a group of record companies named her as the sole defendant in a federal lawsuit, claiming she made more than 700 pop, rock and rap songs available for free on the Internet under the screen name "smittenedkitten."
That's the RIAA in action - always creating good PR...
Via Scoble I found this article on managed code in dotNet. I had run across Gosling's comments on this earlier, and not given them much thought. However, the post Scoble linked to made me consider Gosling's comments. As you're well aware by now, I see little value in declarative typing (what most people refer to as static typing, but I'm specifically speaking of typing as used in the C/C++/Java/C# universe here). However, there's something more intriguing than that going on here - from the article:
What Gosling is getting confused is that pure C and C++ is not supported by .NET, since pure C and C++ is unmanaged and .NET only supports managed code. What .NET supports however, are Microsoft's managed extensions to the C++ language. Managed .NET code is as safe as any Java code, no matter if it's written in C# or managed C++. I'm sure that Gosling actually knows this, its hard being a developer today and not knowing the basics of .NET and managed code so this seams to be another below the belt punch from Sun towards Microsoft.
Well, not necessarily. You can run unmanaged C++ in a way that interoperates with the CLR (our dotNet connect takes advantage of this fact). What I think Gosling is actually doing is taking a shot at that hole in the dotNet system without making it clear - he's conflating the two things. It's what people call FUD when it comes from MS or IBM :)
Via Blaine Buxton comes news that Steve Wessels is blogging. Steve was a trainer/consultant for Digitalk (and then ParcPlace-Digitalk) back in the day - he's been heavily into Squeak of late. Here's his feed link
Here's my prediction - Patriots by 10. I think the Pats are just too deep for the Eagles. We'll see how well that prediction holds up in a few hours...
Ok, this Slashdot story is just too bizarre:
"MSNBC points to the court cases spawned by virtual worlds. Recently, Tom Loftus notes, a virtual island in one of the MMORPGs sold for $30,000, enough to attract commercial attention. Apparently, some businesses create third-world sweatshops, where low-wage laborers are being paid to play and accumulate enough virtual merchandise, so that an eBay sale of it makes the operation profitable. 'One such business, Blacksnow Interactive, actually sued a virtual world's creator in 2002 for attempting to crack down on the practice. The first of its kind to center on virtual goods, the case was eventually dropped,' MSNBC says." Update: 02/06 18:59 GMT by Z: We ran a story about the sale of the virtual island, and Terra Nova has a lot of commentary on the sale of virtual goods. For comparison, the economic impact of this phenomenon is roughly equal to that of Namibia or Macedonia.
Is this a weird world we live in, or what?
I missed the spread (I called it Pats by 10) - but boy oh boy, did the Eagles ever deserve to lose. What the heck was their offense doing during that last touchdown drive - down by 10, under 6 mnutes left - and they were huddling on every play? When they finally got the ball back with under 50 seconds left, they were calling one play at a time and throwing the ball down the middle of the field? Good gosh, the offensive coordinator should be flayed alive.
The Planet Smalltalk site moved - and they are finding lots of new Smalltalk blogs! Here's the rss feed
One thing I should point out about using BottomFeeder on Linux (or Unix) - there's no way (that I know of) to specify a "default" browser. On Windows or Macintosh, Bf will - if you spawn a browse request - sent that request to the default browser. On Linux or Unix, the default browser is WithStyle, the browser we use in the html pane. Now, WithStyle is a good tool for basic browsing, but it's not a full browser replacement by any stretch (nor is it intended to be). Here's what you do:
After that, browse requests (unless you specify Bf as the destination) will go to the external browser.
Update: as it happens, there was a bug. Grab the latest update for the browsing component (named Browsing-Assist in the update tool), and it should be resolved.
Doc Searls points to Dale Wolf's screed on the death of traditional marketing. It's nice to see Cincom getting some presence in the blogsphere.
Sci Fi Wire has some interesting news on casting in the two SG series:
Bridges will join SG-1 as Gen. Hank Landry, the new head of Stargate Command, when Jack O'Neill (Richard Dean Anderson) is promoted to oversee Homeworld Security. Bridges will have a regular role on SG-1 and will also appear in a few episodes of Atlantis.
Oscar winner Gossett joins the cast of SG-1 in a recurring role as a Jaffa leader who vies with Teal'c (Christopher Judge) for political control of the new Jaffa nation.
Pileggi, best known to SF fans for his recurring X-Files role as assistant FBI director Walter Skinner, takes on a recurring role in Atlantis as a hard-nosed colonel who butts heads with Dr. Weir (Torri Higginson) and Maj. Sheppard (Joe Flanigan).
Production on both Stargate SG-1 and Stargate Atlantis is set to begin in March for summer premieres on SCI FI.
It will be interesting to see how well SG-1 does with the effective loss of two main characters - O'Neill and Hammond. I'll have to see how well Beau Bridges fills that gap; I have qualms. As to Atlantic - I'm curious as to how we get a colonel in the cast - I thought that Major Sheppard was the ranking military guy - either the story is wrong on the wire, or they are about to do something wonky...
I'm off on a quick trip to corporate - we hired a new marketing person for the Smalltalk group, and we have a set of "getting started" stuff to talk about. many of you will already be familiar with her - Suzanne Fortman. I'm trying to convince her to set up a blog here, so with any luck, you'll be hearing more from her.
Chris Petrill makes a good point about some of the more bizarre numbering schemes used by open source projects (Firefox, anyone?)
Please, if you release software to the public and consider it usable and reasonably stable, do not number it some absurd 0.3.1, or whatever. If you release it to the public, it's a 1.0 release to start with. From Charles Miller:
Too many Open Source projects treat Version 1.0 as some kind of Holy Grail that can only be reached when the project is perfect. I find that highly annoying, because it makes it really, really difficult to tell a sketchy alpha from production code that is just still in pre-1.0 because the author wants it to do everything.
Nothing is ever "feature complete." Nothing is ever "bug free." Don't pretend you'll ever finish the project, and certainly not without people actually using it, if that's your goal. If it's not your goal, don't release it.
I've learned a lot about this through doing BottomFeeder. The temptation to muck with the version numbers for reasons that have nothing to do with the code are just amazing...
Dale Wolf says that traditional marketing is dead. Well, have a look at Phil Ringnalda's reaction to an announcement by the news owners of Bloglines:
Feed on Feeds is rough as a cob, it keeps triggering what I think is a Firefox frames bug and setting the feedlist frame's source to about:blank, the autodiscovery is far too simpleminded, taking the first application/rss+xml it finds, ignoring Atom and not offering a preview when there are multiple feeds to be found, there's some extra escaping going on in titles, so I read mnot’s Web log and some seriously twisted post titles from AKMA, the HTML (lack of) security is frightening, not being able to read or even subscribe to a feed when it's in a temporary not-well-formed state is a pain, and you know what? None of that matters, for three simple reasons: freedoms 1 through 3. I can fix the things that bother me, where I could never fix Bloglines; I can tell you how to fix them, or fix them for you; I can give Steve my fixes to put in a future version, or if worst comes to worst and we disagree about what it should do too completely, I can come up with a new name and head off in another direction.
Bloglines did many nice things for me, and I sincerely wish Mark all the best with Ask Jeeves, but it's time for me to see what I can do for Feed on Feeds, rather than wait for the monetization hammer to come down on Bloglines.
A culture used to being able to blip past with TiVo and ReplayTV is not sitting still anymore.
Gordon Weakliem hits on a number of things I thought I'd comment on. To wit:
That's exactly the problem with comments: you lose control of your content. It's just not worth it to spend any amount of time composing a comment when you're losing control over whether or not the comment even will be published. It's like sending a letter to the editor: they get thousands a day, yet maybe a dozen get published daily. Why bother expending all that effort? It's amazing the practice has survived. On the other hand, when you post to your own weblog, you own the content, and nobody can take away the fact that you've had your say.
It's actually an open question as to who owns the content (depending on who you host with, and whether it's a corporate blog or not). Information Week has an entire article on this:
The trend is forcing IT, human resources, and legal departments to come up to speed quickly. The issue of who owns the copyrights to Weblogs, in particular, seems to have caught some people off guard. Mark Potts, chief technology officer for Hewlett-Packard's management software business, says that he would be surprised if his Weblog, which is hosted on HP's Web site, was copyrighted by his employer. "That's an interesting question," he says.
But, after checking the company's policy, an HP spokeswoman discovered that the rights to Potts' content belong to the company and not the CTO. "HP owns the copyright for anything written by an HP employee published on an HP Web site, including blog entries," the spokeswoman says via E-mail.
So interestingly enough, you may not own the content. Information Week points out that Microsoft is not being clear about ownership on the new Spaces system - and I'd be curious to know what anyone's actual rights are with hosted solutions like BlogSpot (etc). It's just not clear at the moment. Having stirred a can of worms there, let me go on to Gordon's next comment:
One other trend that really bothers me is the current fad of using CAPTCHA in comments, and in particular, the fact that these systems almost never have any sense of identity to them. That is, once I've passed the CAPTCHA test, I have to pass it every time I visit the site. That's a serious disincentive to post a comment, particularly when some of these weblog operators generate CAPTCHAs with pretty extreme distortions.For my part, I disable comments on posts older than a certain threshold. These sort of protections are never applied to Comment API implementations (realistically, how could they be?). One really has to wonder when we'll see widespread spamming via the Comment API; probably around the time that CAPTCHA and comment expiration become widespread enough to cause some real pain for the spammers.
Hmm - I have no idea why Gordon thinks that the CommentAPI should be wide open while the rest of the system gets locked down. In this server, comments all pass through the same check/save system, whether they come from the CommentAPI or from the web form. Are other systems really so broken that the same isn't true? Makes me wonder...
I'm in meetings at corporate today - and it's a dash from one to the next until late this afternoon. The good news is, we are getting started on the marketing and business plan for the next year. The bad news is, I have to attend all those meetings...
Stephanne Ducasse has some announcements from Esug:
Call for contributions for the
13th International Smalltalk Conference
Saturday 13 august to saturday 20 august
Brussels
http://www.esug.orgFor 13 years, the European Smalltalk User Group (ESUG) has organized the International Smalltalk conference that aims at being a live forum on the cutting edge of software technologies. ESUG attracts people from both academia and industry for an entire week af activities. Every year about half of attendies are engineers using Smalltalk in business while the rest of attendies are students and teachers using Smalltalk for both their research and courses.
Like every year, this year's edition of the event will include the regular technical program with high quality invited speakers. As well, we'll have a research track with an excellent program committee, a business day about Smalltalk's successfull use in the market place, and a technology awards program where prizes will be distributed to the authors of the best pieces of Smalltalk related software.
THIS YEAR we are looking for YOUR EXPERIENCE Reports using smalltalk so please come to tell us more on your experience and projects
Here is a non exhaustive list of topics we are interested in:
- XP pratices
- Development tools
- Experience reports
- Model driven development
- Web development
- Team management
- Meta-Modeling
- Security
- New libraries
- new UI framework
- educational material
- Embedded systems
- Submissions due on 1st of May 2005
- Notification of acceptance on 15 of May 2005
- Paper of 25 pages max
- The best papers will be published in a special issue of Elsevier
- Computer Languages and Systems
- Submissions Deadline: 21st of May 2005,
- Notification of acceptance: 21st of June 2005,
- Final version: 31st of July 2005.
ESUG Education Conference Information
- Submissions due on 1st of May 2005
- Notifications on 21st of May 2005
- 3 pages max describing the software + URL to download the software
- Submissions due on 30th of june
- Notifications of elegibility on 15th of july
Are you a student who wants to attend ESUG (the first European Conference on Smalltalk)? ESUG has again a student volunteer program so you can get the conference for free. Your duties will be low and you will have to help a bit the local organizers. ESUG will not pay the travel but the conference will be free and possibly the hosting will be also free depending on the number of students.
That's a lot of information on this year's ESUG conference - check it out - I'll see you there.
Sometimes, in all our efforts to "cover the bases" in a marketing effort, we miss the truly obvious. take this post from WonderBranding, for instance:
"I've done everything possible to create good relationships with my female clients," a doctor announced to me during a recent seminar, with just a hint of smugness. "I've decorated my office with soothing colors and have a fountain in the waiting room to ease any nervousness. There are a variety of magazines on the coffee table that appeal to different personalities... I even have a cappucino corner where patients can make themselves a beverage. I've covered all the bases - there's nothing left."
I let his statement hang like Air Jordan for a few ticks of the clock, then asked him,
"How long do your patients have to wait in the waiting room before they're escorted in to see you?"
It was like hitting him with a two-by-four. One of the most important aspects of the patient experience, yet he was so far inside the bottle he couldn't see it. How much simpler it would have been to focus on the biggest complaint that most patients have these days - interminable waits without explanation - instead of interior decorating or refreshments.
This is a common problem - we think we've covered the bases, but - in fact - we've typically missed something important. The problem we create for ourselves is that we assume that we know what people want - but we don't bother to ask what people want. This is something that Doc Searls co-wrote an entire book about - The Cluetrain Manifesto. It's also something that Dale Wolf has been on about in his marketing blog.
The WonderBranding post covers a bunch of territory on addressing this - I'll summarize briefly: The key is to figure out what people don't like about your product/service and deal with that. This might be something specific to your product, or it might be something endemic to your industry - either way, you need to find a way to address that concern. The flip side of that is to figure out what it is that your loyal customers keep coming back for - figure that out and build on it.
Shelley Powers points out the logical end game to nofollow by analogy. She's not wrong...
My whirlwind day of meetings at corporate is over - now all that's left is the conference calls (did I mention how much we like conference calls?). I head home in the morning, and will get there early enough for morning coffee. Off to bed for now.
I stayed at the airport hotel in Dayton last night - a simple hotel, but they had free Wireless, so I'll likely stay there again. I left the notebook up overnight, figuring I'd have BottomFeeder grab updates overnight so that I could read them on the flight. Well - that was before Microsoft decided to "help" me.
I have Windows set to do auto-updates, which is (in theory) the best practice. When I got up this morning I looked at the notebook and had the wtf?? moment - I was no longer logged in. My first thought was "oh crap, what didn't the firewall stop?". Well, that wasn't it. My event logs looked a little suspicious - remote access system activated at 3:10 am, then nothing until I logged in at 6 - that was in the security section of the Windows Event log. Wandering through the application section, I noticed that Windows update had helpfully downloaded an update to the .NET framework, and that apparently required a reboot. I hadn't realized that Windows would reboot itself - must make server deployments fun if you forget to turn that feature off.
Panic averted, I headed over to the airport. It's probably a good thing I'm in good health and have a strong heart though - both look like requirements for running Windows. A little tray notice such as: "your machine has been rebooted after a software update" would have been helpful...
A Smalltalker familiar with dotNET (he's been involved in C# projects for the last 18 months or so) pointed me to this MSDN article - the second of a series on the presumed move from software craftsmanship to software factories. I'm not so sure that we'll get there anytime soon, at least not with Microsoft leading the way. Here's an interesting admission:
The first reason is the current economic model for commercially sustainable reuse. In the previous article, we discussed the Language Framework pattern, which describes the progression toward automation:
- After developing a number of systems in a given problem domain, we identify a set of reusable abstractions for that domain, and then we document a set of patterns for using those abstractions.
- We then develop a runtime, such as a framework or server, to codify the abstractions and patterns. This lets us build systems in the domain by instantiating, adapting, configuring, and assembling components defined by the runtime.
- We then define a language and build tools that support the language, such as editors, compilers and debuggers, to automate the assembly process. This helps us respond faster to changing requirements, since part of the implementation is generated, and can be easily changed.
The first two parts of this pattern are within reach for most organizations, but the third part is not. Developing language-based tools is currently quite expensive, and therefore makes economic sense only in broad horizontal domains, such as user interface construction and data access, where the necessary investments can be amortized over a large customer base. For this reason, commercial implementations of the Language Framework pattern are supplied almost exclusively by platform vendors.
Look at that last paragraph - Developing language-based tools. Here's a tip - these folks might want to talk to Steve Kelly at MetaCase. The tools that MS thinks are too hard for most of us are not, in fact, out of reach - unless you insist on using low productivity development platforms - like, say, the ones Microsoft (and Sun, and IBM) promote. Here:
We are now at a point in the evolution of the software industry where frameworks and tools must become more vertically focused, in order to realize further productivity gains. They must provide more value for smaller classes of problems. This breaks the current economic model because markets for vertically focused frameworks and tools are too small to support platform plays, and because the domain knowledge required to develop them is housed mainly in end user organizations that have not traditionally been software suppliers.
The premise is correct - the expertise does exist only in end user environments, and the generalized frameworks that MS is after are just too hard to build if you work in static environments. There's simply not enough flexibility in the CLR or the JVM to support that kind of work - static typing, the need to cast repeatedly to accomplish anything useful, and the continual larding of new language "features" simply makes those environments more and more complex - makiing it harder and harder to actually get anywhere.
Steve kelly demonstrated the MetaCase tools to me at the Cincom Smalltalk User's Conference last December - it's an amazing little system - it allows you to build domain specific languages (leveraging the expertise of the end organization). The key thing is, it's hard to build tools like the ones MetaCase have - at least, if you use straightjacketed environments. Smalltalk removes the artificial complexity from the tool building exercise, and lets us take that next step - the one MS wants to get to. They have the right ideas - model driven design and domain specific languages - but the wrong tools with which to implement those ideas. If you want to see those ideas in action, visit the guys at MetaCase
Later in that article I posted on earlier is this gem:
While CORBA attempted to use a similar strategy, its complexity required major investment by platform vendors, which limited its scope. The simplicity of XML-based protocols significantly lowers the barrier to implementation, ensuring their greater ubiquity. By encoding remote method invocation requests as XML, they avoid interoperability problems caused by platform specific remote procedure call encoding and argument marshalling. Also, by obtaining broad industry agreement on standards, they have designed platform interoperability in from the beginning.
Ok, let me pull out the 40 ton cluestick and explain something to the author - the various XML mechanisms for interop (SOAP, XML-RPC, etc) are no simpler than CORBA. I've worked with both, and - in fact - the current WS* developments look astoundingly like the process the OMG used in the 90's for CORBA. It's all the same stuff, this time using text instead of binary. You want to secret to XML's success? It's not simplicity - it's port 80. To get a CORBA service working between 2 entities, I have to get security personnel all around to agree to open specific ports. The XML protocols take a pass on that by using HTTP as their transport mechanism.
XML is not simpler, and anyone who tells you it is selling something.
The Register reports that Carly Fiorina is out at HP:
Carly Fiorina has left her post as chairman and chief executive of HP with immediate effect. Robert Wayman, HP's CFO, takes over as interim chief executive and will lead the search for Fiorina's replacement. He retains responsibility for finance.
Patricia Dunn, an HP director since 1998, becomes non-executive chairman of the firm.
In her valedictory statement, Fiorina said: "While I regret the board and I have differences about how to execute HP's strategy, I respect their decision. HP is a great company and I wish all the people of HP much success in the future."
The Register notes that it's an odd point for a CEO to bow out; they have some speculation though:
Fiorina's sudden departure follows rumours that HP's board of directors was unhappy with her patchy performance and was looking for ways to reduce her responsibilities. HP said on Monday that Sanford Litvack was leaving the board and would be replaced by Thomas Perkins who was an HP director between 2002 and 2004. He originally left because at 73 he was too old to sit on the board - HP policy says directors should not be over 70 years old.
fascinating. Update: Misbehaving has a few thoughts on this, from the "women and technology" POV
If you were trying to access any of the server functions earlier this morning - the blogs, the survey application, or the NC download application - you probably got an error or a timeout. Something went wonky after I went to bed last night, and I had to give the server a kick when I got up today. It's all back online now.
Mark Bernstein asks a good question - If spammers make money by spamming products nobody could conceivably want, wouldn't you suppose they could make even more money selling stuff that someone might want?. I think I have an answer to that. The broad middle of the market views spam as an annoyance at best - and downright obnoxious at worst. Most corporate entities don't want to be seen that way. Tells you something about the ones that don't mind right there...
STIC is pleased to announce that Niall Ross will be delivering a keynote address at Smalltalk Solutions this year:
Cary, North Carolina, Feb. 9, 2005 - Smalltalk Solutions is the premier forum for bringing together Smalltalk users, developers, and enthusiasts. This year's conference will take place June 27-29 in fun-filled Orlando at the Wyndham Orlando Resort. The Smalltalk Solutions 2005 Conference Board is pleased to announce one of this year's keynote speakers:
Niall Ross - The Value of Smalltalk
Abstract: "Some languages are better than others", is often said by experienced software engineers. It is as often disbelieved by IT managers who suspect that those technical differences their team gurus talk about don't really impact the business. Managers are not programmers. Managers care about rapid delivery, scalability and the ability to refocus their systems on new opportunities, not about dynamic typing, late binding, a fully-exposed meta-model, few reserved words and classes as first-class objects. Why should language features matter to them?
Niall uses detailed examples from real commercial systems to illustrate how certain features of Smalltalk feed directly into business values. His talk is an attempt to bridge a chasm of understanding and (more importantly) to give others the means to do so in their own workplaces. Language choice is a major driver of project success or failure, yet is much neglected and often influenced by irrational considerations. By showing ways in which particular features of Smalltalk impact particular business needs, Niall hopes to help people find the words that can bridge the gap.
Bio: Niall ended his undergraduate career with two intellectual interests: computing and the theory of relativity. A quick check of how much commercial work was available to relativity and gravitation theorists decided him to do academic research in that field and then seek a commercial job in computing, rather than the other way round. Niall started working commercially in IT in 1985. He was at first assigned to designing and implementing software engineering process improvements and only three years later did he begin significant writing and delivering of commercial software. This experience taught him that intelligent people can nevertheless form foolish ideas about software engineering if they have not worked at the coding coalface of real large commercial projects.
Learning from this, Niall spent the nineties working on software to manage complex, rapidly-changing telecoms networks. A side effect of this work was that it taught him much about how scale and rate of change affects software. Early in the nineties he discovered Smalltalk. The more he used it, the more he came to recognize its its power in this area. This perception was strengthened when he spent a year delivering a telecoms management system in Java.
At the end of the decade, Niall formed his own software company to offer consultancy in meta-data system design, in Smalltalk and in agile methods. He has since worked on a variety of meta-data-driven systems, mostly in the financial domain. He also leads an open-source project (http://customrefactor.sourceforge.net).
Niall has made many presentations at IT conferences over the past two decades. Presentations relevant to his Smalltalk Solutions 2005 talk include:
- Solving the XP Legacy Problem with (Extreme) Meta-Programming, Niall Ross and Andrew McQuiggin, Smalltalk Solutions, 22nd-24th April 2002, Cincinnati
- XP-rience: eXtreme Programming Experience, Niall Ross, 10th European Smalltalk Summer School, Essen, 25th August - 1st September 2001
- The Business Case for Adequate Reflection, Niall Ross, 8th European Smalltalk Summer School, Ghent, 30th August - 3rd September 1999
Those of us writing corporate blogs received another cautionary tale today:
Mark Jen, a blogger whose candid comments about life on the job at Google sparked controversy last month, has left the company.
"Mark is no longer an employee at Google," a Google representative said in response to an inquiry Tuesday. Efforts to reach Jen for comment were not immediately successful.
Jen's departure comes less than a month after he joined Google as part of a wave of new hires and began recording his impressions of his new employer, including criticisms, in his blog.
Update: Scoble adds some useful thoughts on the subject. Jeremy Zawodny has some details and observations
Patrick Logan points to more stuff in that MSDN article that I missed:
The file has been the central container of work in software development for over thirty years. All of a project's structure and logic is ultimately reduced down to files and directories. The tools that surround software development are built around this concept, too. This article explores the concept of file structure, and contrasts it with an emerging view of Model Driven Architecture... It seems clear that the file is a relic that has outlived its usefulness for software development... The modern development environment has not yet fully caught up to the object-oriented shift. All of the tools still rely on a file to be the container of source code. While some contain modeling capabilities as well, the models exist as different entities than the file and its code.
Or to quote someone: "Source code in files.... how quaint". In case MS is looking, the answer is over here. We knew that code in files had outlived their usefulness 3 decades ago :)
One of the interesting capabilities of VisualWorks is overriding. Now, this doesn't mean simply redoing a method in a subclass - no, it means something that is potentially more powerful - but also more dangerous. What you can do is redefine a method in an existing class in a loadable component - either a Store package or a Parcel. You have been able to do this since the beginning with Smalltalk - all overrides do is add some traceability to the process. let me give a small example:
For BottomFeeder, we use a network component called NetResources, a library built on top of the VisualWorks HTTP client support. We needed a higher level library to support things like mod-gzip that the client lib did not (yet) support. In any case, as part of the implementation, we overrode the definition of the class HttpClient. Here's the VW 7.2.1 definition:
Smalltalk.Net defineClass: #HttpClient
superclass: #{Net.NetClient}
indexedType: #none
private: false
instanceVariableNames: 'request proxyHost keepAlive connectionStream useProxyAuthorization '
classInstanceVariableNames: ''
imports: ''
category: 'Net-HTTP-Support'
In contrast, here's the overridden definition we used in VW 7.2.1:
Smalltalk.Net defineClass: #HttpClient
superclass: #{Net.NetClient}
indexedType: #none
private: false
instanceVariableNames: 'request proxyHost keepAlive connectionStream useProxyAuthorization originalResponse '
classInstanceVariableNames: ''
imports: ''
category: 'Net-HTTP-Support'
We added an instance variable in order to have better error handling. This was fine, and it all worked without any issues before we started the port to VW 7.3 (which went live in December - see here for details). Here's the 7.3 definition of that class:
Smalltalk.Net defineClass: #HttpClient
superclass: #{Net.NetClient}
indexedType: #none
private: false
instanceVariableNames: 'request proxyHost keepAlive useProxyAuthorization connection entityParsingOptions cookieAgent enableCookies protocol '
classInstanceVariableNames: ''
imports: ''
category: 'Net-HTTP-Support'
As you can see, a number of new instance variables were defined (and the class now natively handles mod-gzip). We took out our mod-gzip handling, but we didn't immediately notice the more dangerous thing - our (obsolete) class definition did not have any of the new instance variables - and they are used in the code. Well, that led to some bizarre errors (in development). As it happens, VW will deal with undeclared references by creating a variable in the Undeclared dictionary. After running Bf in development a few times, I had a lot of state in Undeclared. The trouble is, when running threaded Http accesses, multiple clients ended up sharing things that they had no business sharing! Fixing up the definition solved that problem
The bottom line? Overrides are useful, but - with each migration to a new release you have to carefully examine your overrides to see if they are still congruent with the system. In our case, they weren't. It's useful to be able to patch problems in place, and it's also easy to trace - I always store system overrides into a separate package so that I know where to look. The key is - you have to actually look
Now this is good news for Sci Fi fans - Galactica has been picked up for a second season! Maybe some of these poor deluded folks will tune in and see what quality sci-fi looks like. A note to those of you who have been giving this a miss based on the campy 70's show - this is nothing like that one. The baseline premise is the same, but just about everything else is different. The cast is good - they really, really convey the nearly hopeless situation that humanity finds itself in. The Cylons make a lot more sense - they seem to be more cyborg than robots. The Galactica looks old and gritty, and they play into that. If you haven't looked, catch up with one of Sci-Fi channel's marathons!
In reference to this thing I've spent all day on, there was an interesting report from a denizen of the Smalltalk IRC channel - apparently, a guy from MS was speaking on the topic in Switzerland today. I've replaced the guy's IRC handle with anonymous - if you really want to hear directly, visit the channel. Anyway - I report, you decipher:
[14:35] <anonymous> that microsoft presentation was so bad
[14:36] <anonymous> (how bad was it?)
[14:36] <anonymous> indescribably bad
[14:37] * anonymous is low on metaphors
[14:37] <anonymous 2> what presentation
[14:38] <anonymous> this guy http://blogs.msdn.com/jackgr/
[14:39] <anonymous> 50 minutes on "hey, look, a software productivity crisis"
[14:39] <anonymous> 10 minutes of Visual Studio screen shots
[14:39] <anonymous> 15 minutes of questions
[14:40] * anonymous was shut down by the moderator for flaming microsoft
[14:40] <anonymous> and I'm supposed to be one of the pro-MS guys
[14:40] <anonymous> so much for my rep :)
[14:40] <anonymous> hey he did say that MS was adding Smalltalk protocols to C#
[14:40] <anonymous> good god, whatever that means
[14:41] <anonymous> totally unprompted by any Smalltalk reference whatsoever
[14:41] <anonymous> 93% of the audience was saying "wtf?"
[14:41] <anonymous> the other 7 guys were cheering that he mentioned Smalltalk
(but still not knowing what the hell he was talking about)
[14:43] <anonymous> someone asked if any of this stuff worked with Unix or Linux
[14:43] <anonymous> he said that if we had Unix questions we should talk to SCO, and if we had Linux
questions we should get the community to implement it for us
[14:43] <anonymous> really shot his credibility to hell
I've been so busy making fun of this that I nearly missed something interesting - Alan Kay was interviewed recently. There's a lot of good stuff in there, but I particularly liked this observation:
Perhaps it was commercialization in the 1980s that killed off the next expected new thing. Our plan and our hope was that the next generation of kids would come along and do something better than Smalltalk around 1984 or so. We all thought that the next level of programming language would be much more strategic and even policy-oriented and would have much more knowledge about what it was trying to do. But a variety of different things conspired together, and that next generation actually didn't show up. One could actually argue 14as I sometimes do 14that the success of commercial personal computing and operating systems has actually led to a considerable retrogression in many, many respects.
You could think of it as putting a low-pass filter on some of the good ideas from the '60s and '70s, as computing spread out much, much faster than educating unsophisticated people can happen. In the last 25 years or so, we actually got something like a pop culture, similar to what happened when television came on the scene and some of its inventors thought it would be a way of getting Shakespeare to the masses. But they forgot that you have to be more sophisticated and have more perspective to understand Shakespeare. What television was able to do was to capture people as they were.
That's one of the reasons that the tagline here is Scene, not Herd. Go read the whole thing.
Priceless, from the Smalltalk IRC channel:
[15:51] <alan> ah, but it's not enough to to have a service oriented *architecture*. You need a service oriented *Lifecycle*
[15:51] <alan> or SOL, for short.
[15:51] <petrilli> I've been SOL for a long time
[15:51] <jarober> *cough*
Lambda the Ultimate points to an interesting post about the painful slog that is C# development
We've been using C# for a couple of years now, and are getting tired of the verbosity. Especially tired of copy/pasting and changing a couple of identifiers, and I imagine many other people are, too. After seeing some of the macro capabilities of Lisp, we got jealous. After some googling and browsing, I ran across Ned Batchelder's python-based code generation tool, Cog.
Cog lets you build ad-hoc code generators in python, in your source code files.
The fact that you have to find a tool (surprise! written in a dynamic language) to make C# development not suck should be a big, huge hint that perhaps you ought to follow the Python thing and see where it leads - you might end up in Python, or Ruby, or Smalltalk, or Lisp - regardless, you'll end up being productive.
If you follow this advice, you'll be sure not to get cancer. I make no guarantees over what other problems you may develop... Be safe, eat carrots
This is hilarious (at least if you've set up a blog). make sure you aren't drinking anything you don't want spewed on the screen :)
I currently have 49 invites - first come, first served. Send your requests to jarober@gmail.com