He may not know it, but Gary Short really wants dynamic typing. Just look at how C# makes him lie to the compiler....
I'm giving a talk on the implementation of BottomFeeder at StS 2004 - there's still time to register, btw! Anyway, saying I'll talk about the implementation is a bit broad - what am I going to discuss?
I've now given a variation on this talk three times - to two STUG meetings, and at ot2004. The STUG talks were more technically oriented, but I got a lot of good feedback at ot2004 about it. So before I really get into implementation, I'll (briefly) do two things:
- Explain what a blog is - it's easy to assume that "everyone" knows what a blog is. It's still something of an insular world though, so I'll provide a brief overview
- What's an Aggregator? Again, as with blogs, not everyone knows what one is. I'll again give a brief overview of what an aggregator is.
Then I'll talk about how I stumbled into this field, followed by some of the implementation details of BottomFeeder. I've uploaded the slide deck here. I've made a few changes since I sent in the presentation for the StS CD, so it might be worth downloading. I'm speaking bright and early - 8:30 am on May 5th. See you there!
Many people have heard about the 1980's Van Halen contract rider specifying "no brown M&M" be present backsatge; here's the back story on that. Fascinating bit of trivia.
Holger released a new rev of Twoflower this morning, so I was able to update BottomFeeder to use it. This fixes some of the font issues (especially with bolded text) that had been present in the previous cut. I also received notice that Bf doesn't support urls that look like this:
That's shorthand for Basic Http Authorization - it's a way of providing the information up front instead of waiting to get prompted. The Http code wasn't parsing that out, and was instead barfing on that as an invalid url. I've addressed that in the latest update to the Http-Access module - that sort of url is now fully supported in the dev stream.
Chris Pratley, the Program Management manager for Word (amongst other things) discusses Word and its movement from "worst to first" in market share. It's an interesting read, and explains one thing very clearly (at least to me) - Word was a far, far better product back when it had meaningful competition. At this point, Word's developers have utterly forgotten what end users want, and it shows. What do I mean? Well, here's my list of irritations with Word - none of them utterly crippling, but the collection would make me switch products in a heartbeat if a decent competitor existed. Word Perfect isn't it, because it mostly stinks in the same ways (my Wife uses it).
It didn't used to be this way - I recall liking Word for Windows 2.0. It stayed out of my way, and did what I wanted. The current product mostly gets in my way, and does things I dislike:
- Bullets and Numbering - yes, I've mentioned this before. However, I shouldn't have to use copy/paste to ensure that a bullet goes where I want it. This part of Word is just broken
- Those adjusting menus - they drive me nuts, because all my learned behavior from older versions of Word is shot. When I pull a menu, the items aren't where I expect them - and often aren't there at all until I pull the whole menu. It ought to be easy to turn this off - but the options don't look obvious to me
- The HTML export - the HTML created is a mess. Does no one in Redmond actually know HTML? Based on Word, my guess would be "no".
Doesn't look like a long list, does it? It's not - but the mess with bullets ticks me off every time I use the product. It's a constant, low level irritation, just like the menu thing. The irritation is exacerbated by the knowledge that this stuff used to work - I know that I did not have to fight bullet lists every step of the way in WfW 2.0. It's been a downhill slide since 2.0, as far as I'm concerned - regardless of what the reviewers have said...
I made the mistake of upgrading my mail client the other day. For reasons that defy my understanding, it's interaction with one of the mail services I use changed - Eudora 6.0 read the mail just fine, and 6.1 wouldn't. I sent some time looking at the failure messages, and realized that it had a wild idea as to what the server name was - I had included the www. in the host name, and Eudora suddenly was baffled by that. Removing the leading www. solved the problem. Now back to my 200 inbound messages....
National advertisers plan to cut spending on TV commercials as ad-skipping devices take hold, according to a survey. Web advertising is expected to benefit from the shift.
Now that advertisers have noticed that the model is failing, what's next? I suspect that subscription services are going to really start to drive broadband....
Panopticon Central has some interesting points on what people notice in a UI. Specifically, the status bar:
But what this really makes me think of is a usability test they did on Access one day to see how effective text placed in the status bar was. The test went like this: the user was given some task to do in Access. Unbeknownst to them, we'd stuck a message in the status bar that read "If you notice this message and tell the usability lead, we will give you $15." Want to guess how many people got the $15? Zero. After that, we were careful not to put any important information down in the status bar, because it was 100% likely that no one would ever see it.
Combine that with the research showing that people often just hit return to any dialog box, and you have a real issue. I guess any user notification that's important just has to be part of the core UI.
Yes, we were slow about this :) Still, better late than never. The presentations from last year's StS are online:
Presentations from Smalltalk Solutions 2003 are now available at: http://www.whysmalltalk.com/Smalltalk_Solutions/ss2003/ss2003presentations.htm
Smalltalk Solutions 2004
For those of you local to the Seattle area, or if you just happen to be in town for a day, we have added a one-day pass for the conference. The one-day conference pass is $200 USD and gives you full access to that day's events (except for tutorials). One-day passes can only be purchased at the conference. I look forward to seeing everyone next week in Seattle for the 2004 show.
It's not too late to register - details here. See you in Seattle!
This feature is directly based on a request from a user - folder level item viewing. What does that mean? Well, it's pretty simple. If you select a folder, all the items for that folder will show up in the item view. I have to tune this some; the item view isn't showing the originating feed at this point. That's why it's a dev stream only feature :) I'll get that fixed today.
Update: I've added the feed information to the table view when you select a folder.
NBC is going to run an earthquake disaster movie next week - "10.5". The premise is that a magnitude 10.5 (ouch) Earthquake hits the west coast of the US (apparently, more than 1). You have to love these quotes I got from the CNN story on the show:
Howard Braunstein, executive producer of the miniseries, acknowledged that the film is meant as "fun entertainment" and plays loose with the facts.
Asked whether he consulted scientists in developing the project, Braunstein said: "Not really. We went on the Internet for backup research."
Julia Lerman has posted again on the whole Women in Technology thing - brought on by this post by Ted Neward (and a bunch of others she links to). It really is a curious thing to me. My wife is a software developer, and she likes to point out what a great career software development is for women (meaning what, exactly?). Well, the fact is that many (not all, but many) women end up taking a "time out" in their career when they have children. This time out can be a complete break from the field or reduced hours.
The truth of the matter is, software is a (relatively) easy field to keep up with - the state of the art simply hasn't advanced all that much over time. Picking up the changes, even after a few years out, just isn't going to be that hard (seriously - if you were a Java developer 4 years ago, just how hard would it be to get going with C# and .NET?). So it's kind of confusing that more women don't choose this field. The options for flexible work hours are better than a lot of other fields, part time hours are fairly easy to accommodate, and time out of the field isn't going to get you hopelessly outdated. This tells me that the problems are cultural - and strongly so, as they override a lot of things that ought to make the field inviting. I'll be looking for Julia's comments from the BOF she says she'll be running at TechEd 2004 - maybe some answers will come out of that...
I'm giving a talk on BottomFeeder at StS 2004 - the slides are done, but I'm curious about one thing - is there anything in particular about the implementation that potential attendees would like to hear about? I've given variations on this talk twice now, and gotten a different set of questions each time. If anyone who plans to attend has thoughts on this, I'd love to hear them. Oh and btw - there's still time to register for the show! See you there.
I won't be the only one blogging events at StS this year - Michael Lucas-Smith will be blogging the events he attends - if he can get is notebook configured, that is :). Rich Demers will be there as well, although I have no idea whether he'll be blogging on it. Sames and Alan will be there as well. This year I have a USB stick, so if anyone else transcribes notes that they'd like to see published, just find me - it should be easy enough to do. This is going to be a great show, and I look forward to seeing everyone there!
The last few days we've been catching up on an HBO series we weren't sure about at first - Deadwood. Deadwood is based on events in the town of Deadwood, South Dakota in 1876. This is one of the nice things about a ReplayTV, btw - we had been saving the shows, but hadn't really decided whetehr to watch them - when we had time, we started. It turns out that they are pretty good. Now, I was sleepy last night, so I was dozing in and out - when suddenly there's McCall, shooting Wild Bill Hickock in the back of the head in a poker hall. That woke me up - everyone knows about the "Dead Man's Hand" (Aces and Eights). So off I went to Google, looking for information on the show and on Deadwood itself. Here's the info page from the series - it seems to be based on actual events, with some additional material added in for storytelling.
It's been entertaining so far - I think I like this better than "The Sopranos" (which has been getting tired this season, IMHO). It's been more compelling than "24", "Alias", and "Enterprise", that's for sure. Highly recommended - watch it on Sunday's, or limber up that Replay or TiVo
RFC 3023 is broken because it ignores practice in the XML world and this has even been noted by the very authors of the spec who've expressed that they'd like to update it. If RSS Bandit actually followed RFC 3023 then we'd cause our users to have difficulties with a large percentage of the feeds they read since lots of them are served with text/xml MIME types but aren't encoded in us-ascii. Specs are not the perfect and irrevokable Word of God set that are set in stone. Many of them are ambiguous, contradictory and in some cases infeasible to implement.
This gets to be very nasty very fast. First off, most of the posts with a mime type of text/xml (at least in my experience) are not us-ascii. They fall into a few categories:
- No explicit charset listed, but actually uses iso-8859-1
- No explicit charset listed, but actually uses utf-8
- A charset listed, which is used
- A charset listed, but the feed is actually encoded in another (typically iso-8859-1 and utf-8)
In a sense, it no longer matters what the standard says - out in the wild, people are actually doing all sorts of wild things. The practical impact of this in BottomFeeder has been items that are readable, but have specific characters (typically double quotes and/or apostrophes) munged. Browser developers have addressed this by building charset guessers - they score the text for 'goodness' in a few common charsets if there's none listed, and pick the winner. I've not done that; instead, I have options to change the encoding on the fly if the text "looks wrong".
I don't expect this to get better anytime soon - the tools are already out there, and there's confusion in every direction over what the "right" assumptions are....
You can still register for StS 2004 - I've been putting a few finishing touches on my BottomFeeder presentation. I've made a few changes since I spoke at ot2004, based on how that went. It looks like it's going to be a good show - lots of interesting talks, and a lot of good people coming out. Seattle's a great place for the show as well - it's a great city to hang out in. See you there!
It seems that everyone else likes KB2 - Ebert and Roeper gush about it, and the press has been generally positive. My wife and I went last week, and we were positively underwhelmed. There were some good fight scenes, although none as good as the first movie - and the dialog dragged. It really slowed down once Uma Thurman found Bill - at that point, the last act was like crawling through molasses - it just wouldn't end. The first movie was an excellent "B" movie - this one disappointed me as much as the final Matrix did. At least I'm not alone in this - Thomas Hibbs had the same reaction I did.
Now, if you want to see a good movie, run, don't walk, to The Alamo. This is a very well paced film - and historically accurate as well. It kept me interested far, far better than KB2 did. I'd recommend this film to anyone.
ESUG is looking for sponsors for their 2004 event, and for technical submissions - here are all the details:
Hi, this is a simple call for help in pushing Smalltalk.
ESUG is organizing a conference every year. This year the conference will be at Anhalt University in Koethen, Germany September 6-10. See the call below
If you want to help Smalltalk: SPONSOR us! To sponsor you can
- JUST attend and enjoy the conference: http://www.esug.org/
- be a first class sponsor such as
Now you may wonder what we are doing and why you would give us money! We are doing a lot of actions to promote our favorite language. Much more than certain other group ;). ESUG is doing a lot for Smalltalk!
- Our new web site is entirely made in Smalltalk: It is SmallWiki a new wiki implementation: http://kilana.unibe.ch:9090/smallwiki/
- Organizing a great conference around Smalltalk. Ask people that have been there. They will tell you that ESUG is a source of energy for Smalltalk.
- Bringing new blood in the community:
- Since two years ESUG have student volunteers. These are students that are interested in Smalltalk. Coming to the conference is the best way for them to see the technology from their own point of view (without a teacher telling them). We would like to thank the slovenian companies among which ishttp://www.eranova.si - they are sponsoring the travel of some Rumanian students. So if you want to see young blood in Smalltalk this is the way to do it!
- Sending books and cds to universities worldwide. A list of universities is at: http://www.esug.org/promotionactions/selecteduniversities/
- Creating and distributing the ESUG CD: http://www.ira.uka.de/~marcus/EsugcD.html
- Present tutorials supporting Smalltalk in education forums and open-source conferences
- Helping local groups help themselves and grow. ESUG sponsored the Squeak german association http://www.squeak.de/
- Collecting the free smalltalk books: http://www.iam.unibe.ch/~ducasse/FreeBooks.html.
We are individuals like you that like Smalltalk. Although we are all volunteers, we need some money to organize the ESUG activities listed. If you like this effort please send us your contribution to help us continue.
The ESUG Board
Call for contributions for the ESUG 12th International Joint Event
Call for contributions for the
ESUG 12th Internatioanl Joint event
6-10 september 2004
For 12 years, the European Smalltalk User Group (ESUG) has organized an International Event that aims at being a live forum on cutting edge software technologies that attract during a whole week people from both academia and industry. 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.
As for every year, this year edition of the event wil include the regular technical program with high quality invited speakers. This year, we're honored to have Dan Ingalls as a keynote speaker. Besides, we'll have a reseach track with an excellent program committee, a business day about Smalltalk successfull use in the market place, and a technology awards where prizes will be distributed to authors of best pieces of Smalltalk related software. Of course, we plan to have as usual, various informal events, like Camp Smalltak, a physics teacher evening, and a series of introductive tutorials to Smalltalk
THIS YEAR we are looking for YOUR EXPERIENCE Reports using smalltalk so please come to tell us more on your experience and projects
Regular technical program
- http://www.esug.org/conferences/twelfthsmalltalkjointevent2004/ regulartechnicalprogram/
- Summary of 1 page max
- Submissions due on 15th of june
- Notification of acceptance on 15th of july
- http://www.esug.org/conferences/twelfthsmalltalkjointevent2004/ researchtrack/
- Paper of 15 pages max
- Submissions due on 21 of May 2004
- Notification of acceptance on 1st of july 2004
- Camera ready version due on 21st of july 2004
Smalltalk Business day experience reports
- http://www.esug.org/conferences/twelfthsmalltalkjointevent2004/ smalltalkbusinessday/
- Summary of 1 page max
- Submissions due on 15th of june
- Notifications on 15th of july
Innovation Technology Awards
- http://www.esug.org/conferences/twelfthsmalltalkjointevent2004/ innovationtechnologyawards/
- 3 pages max describing the software URL to download the software
- Submissions due on 15th of june
- Notifications of elegibility on 15th of july
This is going to be a great event, and I'll be there, attending and blogging. If you can't make it to StS 2004, make it to ESUG!
I added a cross feed guid resolution and cross feed item referencing to BottomFeeder earlier this week. I just added a setting to allow those to be optional. Why? Well, it's a somewhat expensive operation (memory wise) if you have a lot of feeds. I had one user on old hardware complain that Bf had suddely gotten very slow, and it dawned on me that the reference gatherhing was the root of his problem. This likely means that I need to consider my implementation. In the meantime, it can be turned off in settings.
Specs are great, especially when there are so many of them. Take a gander at this comment thread on Sam Ruby's blog - it shows just how confusing this area is for everyone, myself included....
In subscribing to the Learning Seaside blog, I started seeing bad characters in the RSS Feed. In taking a look at this, I ended up refreshing my memory on the standards for http transmitted documents and for xml documents. It's an interesting little pathway into heck - here's the rules:
- Http transport: iso-8859-1
- XML documents on the file system: UTF-8
- XML via some transport (like HTTP or MIME): The transport default
Here's the relevant section on xml docs from the 1.0 spec:
In the absence of information provided by an external transport protocol (e.g. HTTP or MIME), it is a fatal error for an entity including an encoding declaration to be presented to the XML processor in an encoding other than that named in the declaration, or for an entity which begins with neither a Byte Order Mark nor an encoding declaration to use an encoding other than UTF-8. Note that since ASCII is a subset of UTF-8, ordinary ASCII entities do not strictly need an encoding declaration.
That's where, IMHO, a bunch of problems crop up. You create an XML document, encoded in utf-8. Now you make it available on a website, but forget to add encoding information. In most cases in the US, this isn't going to lead to any (obvious) problems. However, say this document comes from Europe, and has characters with accents (et. al.). Suddenly, you have badly encoded characters that show up on the client side as interesting garbage. Browsers mask this problem by having complex and sophisticated encoding guessers - they score the document if it doesn't have a declared encoding, and show you what seems best - and it usually works. Mozilla allows you to change the encoding if your eyeballs think the guess was wrong.
That's where I've ended up with BottomFeeder - I don't have the expertise to create a guesser, so instead I offer an encoding menu for the user in case it "looks wrong". For my example above, changing the encoding to utf-8 fixed all the issues in the feed. The choices I've made available are: utf-8, iso8859-1, iso8859-15, ms-1252. That ought to cover most of the bases, and allow people to fix clearly wrong encoding presentations.
In general, this whole area is a mess, and creates headaches for all of us who have decided to walk into it...
Smalltalk Night at the Space Needle
Tuesday, May 4th, 2004
6:30 pm - 10:30 pm
Keep your Tuesday night open while in Seattle because STIC has planned a fun-filled night at the world famous Seattle Space Needle for conference attendees. We have reserved a banquet room high above the Seattle skyline for you to enjoy. Hors d'oeuvres and drinks will be served starting at 6:30 followed by a delicious dinner and entertainment later in the evening.
As an entertainment destination, the Space Needle is in a league of its own. The Space Needle is located at Seattle Center. That's an apt description of where we are: the center of Seattle. Whatever your interests - theatre, ballet, opera, professional sports, rock-n-roll history, roller coasters, science, movies, shopping, exploring or just plain walking around - the city unfurls from the Space Needle.
Built in 1962, the Space Needle served as the symbol of that year's World's Fair. It has since become the symbol of Seattle, and one of the most recognizable structures in the world. The privately owned Space Needle is managed by the Space Needle Corporation
See you in Seattle!
There are many languages and tools that developers can choose for the development and deployment of mobile applications. Smalltalk likely isn't one of the ones they would immediately think of - after all, Smalltalk has been around for many years, and is not nearly as well known as Java, C, or C#. However, Smalltalk has many advantages - it's the original OO language, and is much simpler - and more powerful - than Java, C, or C#. Cincom Smalltalk is a direct descendent of the original Smalltalk developed at Xerox PARC in the late '70s. Recently the 2003 Turing Award, considered the "Nobel Prize of Computing" was been given to Dr. Alan Kay for leading the team at Xerox PARC that invented Smalltalk, as the first complete dynamic object-oriented programming language. Now Smalltalk supports a wide range of platforms - including mobile devices.
What do developers of mobile applications need? They need a development and deployment platform that allows them to develop on traditional client platforms as well as on mobile devices. They need a platform that has the same power available on a full scale platform, without all of the bloat that normally comes with that. They need a platform that is easy to work with, and easy to update in the field. Why should developers select Cincom Smalltalk for mobile devices instead of the alternatives? The answer is simple - Cincom Smalltalk offers a low cost, low risk, high value development and deployment platform:
- Low Cost
- Creating software for the mobile platforms is expensive. Using Cincom Smalltalk, development can proceed on a "pay as you go" model, driving down up front development costs
- Rapid Return on Investment
- Smalltalk is an extremely agile and productive system for the development of applications. Capers Jones research over the course of a decade shows that Smalltalk is three times as productive as Java. The same research shows that the rate of errors produced when using Smalltalk is dramatically lower
- High Value
- Complete binary portability - developers selecting Cincom Smalltalk can develop on their favorite platform and then deploy to any other - including Windows CE, Windows Mobile for Pocket PC, Windows XP Tablet PC Edition and Linux - with no changes. Cincom Smalltalk supports the x86, XScale, and StrongARM based mobile devices, as well as standard Windows, Unix, Mac, and Unix workstations and servers.
- Software Updates - updating software deployed to mobile devices is not simple - unless you use Cincom Smalltalk. Cincom Smalltalk applications can be updated quickly and easily, without requiring a full redeployment
- Complete Power - unlike J2ME or .NET compact edition, Cincom Smalltalk offers all the power of the full platform - whether the deployment is to Windows XP, Unix, Linux, MacOS, or Windows CE. No compromises are necessary.
- Complete interoperability with the relevant standards - Cincom Smalltalk offers full support for all the relevant communication and interoperability standards.
- Low Risk
- Maturity - Cincom Smalltalk has been under continuous development and deployment for over thirty years now - with great success at a number of Fortune 500 firms. None of the competing solutions can point to a similar record of robustness and maturity
- Stability - Cincom Systems has been in business since '68, under the leadership of the same CEO - Mr. Thomas Nies. Cincom has been supporting many of its products for more than thirty years - a record of stability that few firms can match
- Support - Cincom pioneered 24x7x365 support decades ago, and offers "whatever it takes" support to its customers. Developers selecting Cincom Smalltalk will never have to wait long for a solution to support issues
That's a white paper I created to point out the benefits of Cincom Smalltalk as a development/deployment platform for mobile devices. We are about to release full support for CE4 devices on x86, XScale, and StrongARM based devices with the release of VisualWorks 7.2.1 (part of Cincom Smalltalk spring 2004), due in May. We pushed a press release here
Bob Congdon imparts some words of wisdom on optimizing. Nothing new or earth shattering, but something that far too many people ignore - I've fallen victim to early optimization more than once myself:
Optimization matters only when it matters. When it matters, it matters a lot, but until you know that it matters, don't waste a lot of time doing it. Even if you know it matters, you need to know where it matters. Without performance data, you won't know what to optimize, and you'll probably optimize the wrong thing.
The result will be obscure, hard to write, hard to debug, and hard to maintain code that doesn't solve your problem. Thus it has the dual disadvantage of (a) increasing software development and software maintenance costs, and (b) having no performance effect at all.
Too many times I've been at a customer site and had an exchange like this:
Them: Your product is too slow
Me: Have you profiled? Do you know know what's slow?
Them: No, we haven't profiled. But we know the problem is in (insert some vendor library here)
Invariably, I've whipped out the profiler, and found that the problem wasn't where they thought it was. Sometimes it is Cincom code; we are hardly perfect. However, it's almost never been where the developers thought it was....
I've just added some new support in the development stream of BottomFeeder - three new features:
- The "View New in Folder" menu pick now obeys the tree view setting - if you have opted to stay in 3 pane mode for such views, this view now obeys that
- If multiple items you've downloaded share the same GUID, then marking any of them read or unread will affect all of them. of course, if you read during the update cycle and read one item before the next downloads, you won't see this happen
- If an item has any related items - i.e., other items you've downloaded that refer back to it - there's a menu option offering a view of the related items.
These options are still somewhat experimental, and have only been released to the dev stream - so if you see problems, please report them!
One of our (Cincom's) technical field staff attended the Seaside talk in bern, and I got this report from him in email:
I attended an SSUG presentation yesterday in Bern. This presentation was about Seaside, the revolutionary Smalltalk web application development framework.
The slides can be obtained from http://www.iamexwi.unibe.ch/studenten/renggli/choose/
There were about 25 attendees and I could talk with a few people. There is a unanimous agreement that using Seaside for a web application should outperform all other current technologies (ASP, J2EE, PHP, Zope, Struts, MVC, etc) in term of development speed. The speaker, Lukas Renggli, is a student at University of Bern but also work for a swiss company named netstyle that creates web application for their customers. For some of their customers they are using Seaside, together with Squeak. One of their complex apps was demoed during the talk, this was for an insurance company with 50000 customers (?). The app was completed in 3 months by two people. See http://www.netstyle.ch. They also demoed something smaller (Available at http://kilana.unibe.ch:8888/) that was done by 1 person in 4 days.
I also met Ian Prince from a swiss company named inextenso. They are currently building web application that they do using Zope (a Python based framework). They are now reconsidering they choice for Zope after they started looking at Seaside. See http://www.inextenso.com We promised to meet again in the near future. He wrote a report from that SSUG talk at http://blogs.inextenso.com/seaside/blog/learning
Stephane Ducasse wrote that Seaside has the potential to make Smalltalk a "killer app" for web applications, because other languages like Java and PHP do not allow the implementation of the Seaside concepts. Some other languages would be OK though.
Sounds like a great talk; I'd love to see a similar one done here in North America. Avi?
Alan Kay - The father of Smalltalk has won this year's Charles Stark Draper Award from the ACM. This award is often dubbed "The Nobel prize of computing". Alan Kay shares the prize with other Xerox PARC alumnis Robert W. Taylor and Butler W. Lampson, and Charles Thacker. The best quote came from Alan Kay:
Kay added: "I have said to powerful computer industrialists: By all means use the ideas, but please try to understand and use the entire idea, otherwise what happens are the gross caricatures so often found in commercial vendor software. The evidence indicates that they didn't understand or heed my request."
Charles Miller has some really insightful thoughts on releasing software. Read the whole thing; this summary really does sum it up:
Anyway, as I was saying in the first paragraph, I used to think that the hardest thing a software project had to do was make the painful cut of features and bugs for 1.0. It turns out I was wrong. The hardest thing to do is, in fact, to make the cut for 1.1. The moment you release 1.0, you start getting these incredible things called users, who find all those bugs you never turned up during development, and who make really cool suggestions for things you could add.
Everyone who has ever released software that gets used learns this one the hard way...
AT&T Wireless gives us an excellent example of de-motivation in action:
However a new CIO appointed in April 2003 from Indian offshoring firm Wipro had his own techniques for motivating the IT staff, which borrowed heavily from Dilbert's Pointy Haired Boss. At Merrill Lynch, Christopher Corrado had been responsible for sending tech jobs offshore.
"Former employees say morale wasn't helped by Corrado's first presentation to the IT group, in which they say he proclaimed, 'Come in every day and expect to be fired'. Intended to inspire the troops to greater effort, the talk backfired," reports CIO magazine.
That's a sure-fire way to motivate the troops - letting them know just how much in danger their jobs are. Maybe if this bozo had gotten the same speech from his management...
Seth Finkelstein thinks that the "A-List" bloggers are the new gatekeepers in the blogosphere. Let me just relate my experience on this. I started blogging in the summer of 2002. I was getting something like 10 pageviews a day for the first few months. It accelerated some with the addition of an RSS feed, but not tons. Building up a readership (my pageview count averages around 2500 a day now) took a long time and took a lot of work. What's it take? Well, regular postings, on topics that people find interesting enough to read and/or discuss. It's helped that I've blogged a few conferences - some of the readers who followed conference writeups have stuck around to read whatever else I blather on about. It's not magic, and it doesn't require affirmation from A-Listers (gosh knows I haven't gotten it or tried to get it :) ). What it takes is consistently putting out content that other people are interested in. Nothing more, nothing less.
John Dvorak has had plenty of stupid things to say before, and he stays true to form here - he's off on a rant about how useless chat (AIM, IRC, etc) is. Oh? Sure, there's wasted time involved (just as there is in ad-hoc "water cooler" meetings in an office - but it's like any other conversation mechanism - it's as useful or as useless as the people involved care to make it.
So I'm trying to send mail to a BottomFeeder user - not using my corporate (Cincom) mail (why that doesn't work is another story for another day). So I send the mail off, using my Comcast account. Boom - notice from SpamCop that it's been blocked, due to spam from the server in question (i.e., the comcast mail server). So let me get this straight - because some people using Comcast as an ISP are sending spam (likely infected PC's), all of us using comcast as an ISP are being punished? That's bad enough - I figured ok, I'll try and contact SpamCop with a question. No dice on that:
- No email addresses for contact on their website
- I registered for their support frum, but since I'm not a customer, I can't post a question
- No phone number on their website
So who the $%^&*() are these evil people? They filter out major ISP mail servers and leave no opening for complaint? I guess I have to contact comcast and see what (if anything) they can do for me. SpamCop - evil morons from heck.
There's been a lot of talk about sealed/final since I posted here. In various posts (like this one from Ted Neward, the assertion is made that languages like Java and C# (any CLR based language, actually) need this capability, while Smalltalk doesn't. That sounded wrong to me, but I'll get to it. The other argument came across in a brief conversation I had with Joshua Bloch after this talk at ot2004. The argument goes like this: There's a pyramid of developers, with elite developers at the top (in small numbers) - with most living at the bottom two rows of the pyramid. making classes "final" protects this class of developer from themselves. I've pondered these two arguments, and had a few conversations about them on the Smalltalk IRC channel, with people who have experience with Smalltalk, Java, and C#. Here's what we came up with:
In Java, interface inheritance is the way to do things. A change in the API or semantics of the interface will ripple through all users - even though they aren't inheriting from the base class. So exactly what have you saved people from? Nothing except the option to inherit from a class if they wanted to take on that responsibility. So posit a class SecurityChecker and a method checkPassword(). That method should only take an instance of String, not some subclass or compatible class. That kind of security is arguably ok - but making it impossible to subclass String for any reason, ever - is overkill. The controls belong at a finer grain. What "final" ends up doing is cutting off your nose to spite your face. Here's a question: who's in a better position to know whether subclassing is appropriate:
- The library developer who has never seen the end developer's code
- The end developer who has seen both the framework and the end developer code?
Ted and Joshua Bloch say the library designers are in the better position. I say that's just silly - it really is akin to deciding that you are going to protect your children from all possible harm that could come to them by standing next to them 24x7. Sure, they'll be better protected. They'll also grow up as less than adults. This kind of protection means that developers have lots of (potentially better) options closed off to them, and they'll create crufty code. Worse, they'll start thinking that it's a good idea. The protection extended to them has ended up crippling them.
So now we come to arguments that Whidbey (the next gen of VisualStudio) should declare classes final by default, forcing developers to open them if they so choose. For the reasons given above, I think this is an awful idea. It will end up creating inflexible code - and since api changes ripple through a declared interface anyway, it offers few of the supposed benefits. I really have no idea why anyone thinks this is a good idea...