Heh - Cincom Smalltalk is ready
Bob reports that all is well with the release - and he has the weights and measures to prove it!
A brief look at the referrals
I grabbed last week's logs again in order to see where the referrals might be coming from - I don't provide counts on the server side, so I had to run some scripts to cut that stuff out. This is fairly procedural code, because it's just slapdash stuff in a workspace - but Smalltalk is good for that kind of thing, given the immediate response. After reading in all the log entries, I had to clean up the list - my log viewer does this, so I just stole code from there:
"take the logs and cut down to the real referers"
cruft := #('.jpg' '.gif' '.js' '.png' '.swf' 'inc/' 'servlet/'
'css/' '.wmv').
cleans := refs entries reject: [:each | | val | val := cruft
detect: [:each1 | '*', each1, '*' match: each command] ifNone:
[nil]. val notNil].
cleans := cleans reject: [:each | | val | val := ReferralScanner
currentRejects detect: [: each1 | each1 match: each referer]
ifNone: [nil]. val notNil].
That yanks out all the image fetches, and css, etc, etc. Next, I ran through the entries to figure out what the top referers were:
"now that we have that, we can get some data" dict := Dictionary new. cleans do: [:each | | stream cmd total| stream := each command readStream. stream through: Character space. cmd := stream upTo: Character space. dict at: each referer ifAbsentPut: [cmd->0]. total := (dict at: each referer) value + 1. dict at: each referer put: (cmd ->total)]. collection := OrderedCollection new. dict keysAndValuesDo: [:key :value | value value > 20 ifTrue: [collection add: key->value]]
That creates a dictionary of associations, matching up the referers to the pages on my server (and the counts from that source). Finally, sorting it:
collection := collection asSortedCollection: [:a :b | a value value > b value value]
Then it's just a small matter of pushing out an HTML table:
More than one of those is actually from Martin Fowler's "Humane Interface" post - I had to intervene manually to clean that up. I also eliminated all the posts that got 20 or fewer referrals. That list also doesn't include the scads of search engine referrals, because they didn't tend to cluster over the week I looked at. Now that I have a script, I'll probably take a periodic look.
CST Installation on Ubuntu
As a commenter pointed out here, there are issues installing Cincom Smalltalk on Ubuntu Linux. We've had reports from numerous people, and have been looking at the issue. The reason this is going to still be an issue (in the short term) for the upcoming release is that we only ran across this problem late in the development cycle, and didn't think it warranted holding up the entire release.
Having said that, we hope to have this solved prior to the next release.
The downside of outsourcing
Outsourcing has been a huge trend for some time now, but there are minefields - you really, really don't want to outsource critical business functions. Sure, your own IT systems can fail too, but it's kind of like what you tell your (small) kids when they want to carry something delicate - at least if you break it, you know who's fault it is. With that in mind, witness the Saleforce.com outage:
A Salesforce.com outage lasting nearly a day cut off access to critical business data for many of the company's customers on Tuesday in what appears to be Salesforce's most severe service disruption to date.
Salesforce stores customer information for thousands of businesses, delivering data "on-demand" via the web. The lack of that data interfered with some customers' sales and customer service activities on a critical pre-holiday business day.
When you rely on external suppliers for mission critical functions, you are gambling. It's one thing if you have a small company, and building out that kind of infrastructure is beyond you. It's another thing entirely if you had such infrastructure, and decided to save a few pennies. That'll be a fun conversation with executive management.
Seaside in the Rails House
Avi has been interviewed for the Rails Podcast - the audio (especially at the beginning) is a little rough. It's cool to see cross-pollination between Smalltalkers and other dynamic language enthusiasts.
Whose problems are you solving?
Mini-Microsoft interviewed a Google (ex-softie) employee recently. I love some of the comments - they are (to me at least) indicative of a large problem in the developer community at large, and a serious one for Google specifically:
[...] You get none of this in Google. Some of my fellow graduates with a deep interest in systems joined Google and got thrown into messing around with JavaScript! Can you imagine how dissapointing it is for someone who has sharpened and honed their low level C and assembly skills and hacked around with the Linux kernel day in and out to be slaving on with something WAY high up from the metal like JavaScript and having to deal with a bunch of assholes during code reviews? Sure they are making more money than me in free lunchs and stocks (not much difference in the starting base pay at all tho).
This is exactly the kind of guy Microsoft should be happy they lost. Why? Because he has no idea who's problems he's trying to solve. He wants to be a "cool hacker" - meanwhile, his employer wants him to solve actual problems that real users have - and he's irritated by that. The more of these people MS transfers to Google, the better off MS will be, and the worse off Google will be. And then this:
This week at Google, I spent three days in Mountain View, and the last two days working from home. My team includes guys in our New York Times Square Engineering office as well as folks in Mountain View. On Monday, I flew up to Mountain View and arrived in the office at 10am. I worked until 3am and guess what. I wasn't the last one in my area of the building the leave! There was plenty of company. All these guys are proud of their work, love what they are doing, and wanted to nail their deadlines and then take a few days off for the holidays. At 330am I arrived at my apartment, slept for a few hours, and then arrived at the office at 8am, grabbed a free hot breakfast, and put in another full day leaving work at 4am. Again, i was not the last one to leave. I work in an area where a team is preparing for an upcoming launch and 90% of that team was there when I left at 4am, and they were there when I returned at 830am the next day.
That's not "energy", you fool - it's called a death march. If you need to work hours like that running up to a launch, then your team or your product manager (probably both) screwed up. In a huge way. The resulting launch will likely be bug ridden - and with the kinds of hard to understand, caffeine-buzz driven bugs that take eons to iron out. I begin to understand why gmail is still listed as "beta", and why Google Analytics got overwhelmed on day one - it's because of the work ethic listed above.
Management tip: If your team is working this way on an ongoing basis, you have a serious problem that needs fixing right away. It can be fun for some people for a few weeks (or even months), but then it leads straight to shoddy code and burnout.
Yeah, there's a plan. Scoble is right about this guy.
Atom Update in Bf
I made some modifications to the Atom support this morning - a lot of the link information coming in from some feeds was wrong, so I sat down and had a look at it. A few small changes later, and I was getting better base url information for the feeds I had spotted troub The upda le in.te is available on the server.
Cincom Smalltalk Winter Release: Ready
The winter release is ready - the master CD was validated this afternoon. However, Cincom takes the week after Christmas off, so - even though it's ready - it won't actually ship until after the new year. We should be ready to update the NC download site shortly as well, probably before the New Year.
So, when you get back to your office after the holidays, expect to see the new release arriving!
Finally Ready for Christmas
I'm finally ready for the holiday - shopping done, tree and decorations up. I still have no idea where my month went.

Apparently, my Java 1.5 download was corrupt
I got some help from one of the commenters on my blog, and we came to the conclusion that my JDK install was hosed. So I blew that away, and grabbed the 1.4.2 JDK. Then I re-unzipped Eclipse, made sure that the JDK was in the path in front of the Oracle crap, and it worked. Now I'll have to install the other tools again and have a real look. Thanks to all those who were helpful. And a lump of coal to the one or two of you who weren't :)
Java Setup: No Progress
Well, I'd love to take a look at some of the Java tools out there (for ideas), but I can't get there. There is some kind of oddball configuration issue on my system. I've installed the latest Java 1.5 JDK; I've changed the CLASSPATH to eliminate the Oracle stuff and have just a path to the JDK lib directory; I've pre-pended my PATH with the 1.5 bin directory. Never mind the tools; here's what I get just trying to compile a simple "Hello World" program:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/code/Symbol$ClassSymbol at com.sun.tools.javac.main.Main.bugMessage(Main.java:628) at com.sun.tools.javac.main.Main.compile(Main.java:615) at com.sun.tools.javac.main.Main.compile(Main.java:544) at com.sun.tools.javac.Main.compile(Main.java:67) at com.sun.tools.javac.Main.main(Main.java:52)
Clearly, there's something very basic wrong with my configuration - but I'm at an utter loss as to what. I've tried specifying the jvm to use via command line args and path specification to the javac compiler as well - and I get the above. I'd like to thank the various people who have been honestly helpful - this is confusing to me as well. I've had people asking me questions about Smalltalk installation that were equally as befuddling to them and me, so I know this kind of problem from both ends.
Downloading CST Non-Commercial
A question came up in the comments here, and it looks like we need to update our website to be less confusing. The question? Based on the options listed here, what do you download? Well, I can explain the options here, and get a request in to update that page.
- Download the ISO Image - this will grab the entire CD, and let you either mount that (depending on your OS/available tools) or burn a CD. You can then install from that
- Download components - grab only the pieces you want. This is useful only if you already know how CST works, and know what to get
- ObjectStudio - just grab ObjectStudio, which is Windows specific
Regardless if which one you select, you'll get taken (ultimately) to a login/registration page. Once you go through the process, you'll get the three options above, plus a new fourth: grab a network based installer which will download a 5MB executable (pick your platform) and then do the install via the network.
Yes, the page that the commenter mentioned is too confusing - I'll have it fixed.
More Predictions
John Battelle has a set of predictions for 2006 up - a number of them deal with Google. They all seem fairly reasonable to me.
Search feed overload
One of the things I use is search feeds - I have a bunch of them (40+) set up in BottomFeeder. I use a variety of search engines, and I have them returning things on competing products, on Smalltalk mentions, BottomFeeder mentions, and, of course, the vanity feed (my name).
Well, as Troy pointed out yesterday, a rather more famous James Robertson hit the news. That's made my vanity feeds nearly useless :/ Not a lot I can do about that, and I don't think there's a heck of a lot to be done at the search engine level, either. I guess all I can do is wait for the news to die down :)
On a positive note, that news got such wide play that I suspect our name was googled a lot over the last few days. At least I can be amused by the puzzled reactions of news junkies looking at the top result.
Seasonal Time Compression
I don't know what it is about this year, but December just disappeared. I didn't even have to travel this month - and thank goodness, since we had no time anyway. I've finally gotten all the shopping done, and all my gifts wrapped - my wife is still doing her end of that. We've only just gotten to the Christmas decorations. I need that wayback machine :)
Ahh, Predictions
I just ran across the first prediction page for next year (well, at least the first one I've seen). The first item is highly amusing:
Mozilla will release an upgrade to Thunderbird that interfaces to gmail through an API, and has full support of labels, archiving, etc
Hmm. I hate to break it to you, but that happened, a long while back. Gmail is available via pop and smtp already (which is how I use it). Eudora interfaces to it just fine, and I have to assume Thuderbird does as well. The rest seem reasonable, although number 14 is, well, amusing. And 16? Delusional at best :)
Where's the innovation?
Jonas Bonér has some interesting thoughts on Java and language innovation over the last decade. I know that many people I speak to have mentioned that the last decade of OOPSLA has been a do-over - same old ideas, recast in Java. Anyway, it's a mostly thoughtful piece, with some honest questions. The one glaring flaw is the idea that AspectJ represents innovation. It's a compile time hack attempting to mimic Lisp MOP. Which goes to my comment: nearly all the useful ideas to date have come through Lisp and Smalltalk - and everything else has been poorly implemented (and in too many cases, poorly thought out) "improvements" to them.
meanwhile, back in DRM-land
Sony's legal problems continue to get worse:
Texas Attorney General Greg Abbott expanded his lawsuit against Sony BMG Music Entertainment on Wednesday, alleging that a second form of anti-piracy technology used by the label violates the state’s spyware and deceptive trade practices laws.
Abbott sued Sony BMG in November, saying the world’s second-largest music label surreptitiously included spyware on millions of CDs through technology known as XCP. That technology, included on 52 Sony BMG titles, could leave computers vulnerable to hackers, he said.
The new allegations involve an unrelated CD copy-protection technology known as MediaMax, which was loaded on 27 Sony BMG titles, including Alicia Keys’ “Unplugged” and Cassidy’s “I’m a Hustla.”
This is getting to be a hugely expensive headache for Sony - and, if the criminal charges go forward, it could get worse than just expensive. The RIAA and the various labels are going to have to re-think their positions.
Time Waster
Here's a fun time waster I got via a link on the Smalltalk IRC channel - try to keep that red block from hitting anything. The best I managed was just over 18 seconds - see how you do.
The fault
In the comments here, I have a number of people telling me to uninstall Oracle stuff and move on from there. Well, here's the thing - I actually use the Oracle tools (my Smalltalk source code repository is an Oracle DB on my Linux box). So, suggestions that I start yanking software I actually need out will not be taken seriously.
In contrast, let me explain something - I have VW 2.5, 2.5.1, 2.5.2, 3.1, 7.1, 7.2.1, 7.3, 7.3.1, and 7.4 all installed on this system. None of them interfere with any of the others. And yet, I'm being told that to get Java to work I have to yank out an installation that is (or should be) unrelated to what I'm doing?
Please. If Java is that brittle, then I'm simply too busy to be bothered. Maybe I'll try installing some of this stuff on my Mac after I upgrade the memory (256 is all it has at present, and that's not going to be enough with the heft of these tools).
The Saga Continues
Well, it seems that my configuration is confusing the tools. The 1.3.1 install that Eclipse was moaning about was from an installation of Oracle Tools (something I did over a year ago) - it seems that Oracle buries a JRE in there. So, I grabbed the latest 1.5 from Sun and installed that. It complained about installing files as it got close to finishing (apparently, I should have quit Firefox before starting). The upshot? I ended up with a corrupt set of files. So, I blew those away and have started installing the 1.5 files again.
Meanwhile, NetBeans seems to be fixated on an older rev that I blew away, and won't start or uninstall. That's lovely - highly friendly, that. IntelliJ collapsed after I uninstalled the version of the JDK I told it I had - it's idea of informing me there's a problem is a modal dialog with one button that pops up over and over again. Not impressed with that either. So, I think I'll have to just delete NetBeans and IntelliJ, and start the installs over.
All this just to look at tools that supposedly have great features I need to borrow from :)
Update: Ok, I removed all the old JRE and JDK stuff from the system, grabbed the 1.5 stuff from JavaSoft, installed, and dutifully rebooted Windows. Then I unzipped the Eclipse files again, and tried that. No dice - as it's trying to set up a workspace, it tosses an exception - java.lang.ExceptionInitializerError. Even better, eclipse is still running, as is the JVM it started. I couldn't delete the offending directory until I killed both. Restarting eclipse led to the same error.
I don't think "simple" describes what I'm seeing. There are words that do describe it, but they aren't family friendly...
Let's look at NetBeans
Well, I'm really starting to wonder about the raves that Eclipse gets. They don't include a Windows installer (heck, even I include one for BottomFeeder) - IntelliJ and NetBeans both do. I'd suggest they run off to find NSIS and have a look at that - it's simple, and it's free. Doing so would probably get rid of the problems I had.
So anyway, after a brief look at IntelliJ, I'm grabbing NetBeans. First set of points over Eclipse - they ship an installer for Windows. Heck, it's smarter than the IntelliJ installer - rather than trusting me to find a JDK, it searched for a suitable one at install time. Which limits the number of setup mistakes I could make.
Well, that was shortlived. On trying to run, it tells me that it can't find java.exe in a tiny dialog box. I think I've found the source of the odd Eclipse issue, and of many of these other ones - my path has a 1.3.1 JRE in it, which was installed by Oracle's client. So it looks like I need to muck with the OS level path. Joy.
On to the next tool
I tried running Eclipse again this morning - I had previously added the JDK I installed so that I could browse Java sources - now it crashes on startup. I'm sure I'm doing something wrong here, but it's more trouble than it's worth. I downloaded IntelliJ to take a look at that.
First off, they have an actual installer - and when you get it installed, and create a package, it asks you which JDK you want to use. Right off, this was better than Eclipse - it worked. So anyway, I added a new project to work on, and it went ahead and indexed the JDK for me, so that browsing would be possible. That's where I hit a point I'm not following.
There are a bunch of ancillary Java libraries with sources (network, security, plugin, etc) - but the runtime - rt.jar - shows up as an unbrowseable thing. Again, I'm sure I'm missing something here, but I have no idea how to just browse the base Java libraries.
Ok, just to get a feel for the tool I go down the tree to a package that has source - ldapsec.jar. I open the tree to StartTlsResponseImpl, and select it. Nothing. Ok, I have to double click to get source. Why that is, I have no idea - seems like a bad idea to me on the usability front.
Well, on to the project I created. I select my project - and have a "what now?" moment. Yes, I know that people downloading CST NC have the same issue, which is why we have the WalkThru document. So, off to the help, and it tells me what to do - I create a new file in the project (analogous to creating a new class in a CST package, mostly). Now, a fair bit of my problem here is my burned in expectations as a Smalltalker - I really don't think about source files, and I know that this is not a problem for most developers - so this is an issue on my end, not the tool's. I do notice that there are a bunch of XML files already associated with my project - gosh knows what those are, but I'll leave those alone. So I created a simple program:
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); //Display the string.
}
}
Hit "Build", and got a compiler error. Hmm. I suppose it's significant that the tool tells me that it can't resolve "String" - likely means I've got some configuration thing wrong. I have no idea what that might be though, so I can't really get into any of IntelliJ's refactoring - I have to figure out how to get it properly set up first.
Fitting the square peg in
The Yankees have a center fielder - Johnny Damon. Now, it'll be interesting to see how he looks with shorter hair and no beard :) Seriously though - he should make for a great leadoff hitter.
No change, no change!
Seems that Bruce Eckel is unhappy over all the attention that Ruby (specifically, Ruby on Rails) is getting - so he wrote up a counter to Bruce Tate's "Beyond Java". I don't think he's unfair to Tate's book, although I must admit that I have more sympathy for Tate's argument. In any case, Eckel recycles the "Humane Interface" discussion from awhile back, and - like most of the Java enthusiasts - misses the point:
Martin's argument is that Java's List interface requires you to say aList.get(aList.size -1) to get the last element, and this seemed silly to him. Which it is, if you have unified all sequence containers (that is, list containers) into a single type, as Ruby and Python do. Java, however, follows the C++ STL approach of providing different types based on the efficiency of various operations. The Java libraries do not unify to a single list type because of efficiency issues, so you have to decide if you are going to be fetching the last element from a list a lot, and if you are you use a LinkedList, which does have a getLast() method -- a fact which was completely left out of Martin's original discussion, and the ensuing firefight (other than some ignored comments).
What he misses is the pragmatic approach that Ruby and Smalltalk take. Convenience protocol is no bad thing, and - given decent tools (like Smalltalk has), lots of methods in a class aren't a problem. At least in Smalltalk, most of the convenience protocol landed in the Collection classes based on many, many years of usage - and Ruby was, to a large extent, modeled on Smalltalk. The big problem in a language like Java is that you can't just add a new method to an existing class - instead, you get an explosion of "helper" classes wrapping them. I suppose that's a pragmatic approach given Java's design, but I wouldn't call it an instance of good design.
Eckel approaches all that with the thought that developers should know up front that they'll need a given method, and then pick the right class. Umm, yeah - I always have full information when I get started. I guess in his world, he never runs into that "oh, crap" moment when you realize that some object is missing protocol that would make life simpler. Elliotte Harold, who weighed in on this extensively, never really got that point either.
Anyway, David Heinemeier Hansson (the Rails guy) had some thoughts on Eckel's response to Tate:
I'm losing track of the ill-conceived comparisons, but I do know what's astoundingly clear: Bruce Eckel doesn't like Ruby, he doesn't like the attention its getting, and he doesn't like people such as Bruce Tate fueling that attention. No beef, that's cool. But why not just say it like that?
You could even have presented yourself as the polar opposite to the so-called hyper-enthusiasts: A hyper-detractor! The label comes complete with a cape, an evil smirk, and long tirades about how the other side is no match for your master plan.
David does get a bit too snarky over Eckel's changed opinion on Python - it is possible to change your mind over time. Writing extensively on the web simply makes it possible for people to find your old opinions more easily and imply it's some kind of hypocrisy.
Hat Tip to Tim Bray.
Firefly: Just not popular enough
''In the end, it was what it was: a tough sell,'' says Whedon, adding that it appears the Firefly saga has reached its conclusion. He has no regrets -- and he's moving on.
Sad news for me - I loved that show, and liked the movie quite a bit. It's simple though; not enough people liked it.
Un-Knowing
Dave apparently missed the memo on Wikipedia versus "real" encyclopedias. As I've said before, the main areas of contention are going to hit topical pages - biographies of living people and items on events where many of the protagonists are still alive.
I fail to see how any encyclopedia is going to do well in those areas - unless you play "my facts win, because I'm me".
Rigid vs. dynamic, from the trenches
If you don't trust my word on this debate, have a look at this piece, which goes through things at Amazon. Good read, and a lot of good points. Also way too long for me to hack out snippets and comment. Read the whole thing, and ponder.
He doesn't know what he doesn't know
Here's James Gosling explaining why Java isn't a "scripting" language"
The biggest was concerns about performance and the inevitability of scale. I can't remember how often I've had experiences where someone has proudly shown me some system they've put together using the scripting-language-du-jour: things like an Adobe Illustrator clone written entirely in PostScript; a satellite groundstation diagnostic system written as TECO macros; a BASIC compiler written as Emacs macros; fourier transform algorithms in PostScript... This list is endless. They always ended with "this is so cool, but I'd like it to be as fast as {C,Assembler,whatever}". People get into scripting to quickly build small quick things, but they often grow far beyond where the initial concept started.
Another was about testing, reliability and maintainability. One of the common properties of scripting languages is brevity. This tends to lead to omitting declarations, weak typing and ignoring errors. Generally a great thing if you're quickly putting something together; not so great if you want checks and balances that crosscheck correctness.
It's telling that he lumps all scripting/dynamic languages together as weakly typed (casting in Java, anyone?). Makes me wonder if he's even looked at Smalltalk or Ruby - since both are strongly, but dynamically, typed. In Smalltalk, you can't get a type error - you'll get a well understood exception.
Then there's his assumption of slowness - not all dynamic languages are interpreted. Lisp, for instance, has implementations with type inferencing and all the speed of optimized C. Most Smalltalk implementations use a JIT, and are plenty fast (although, doing arithmetic tests is not an area Smalltalk shines at). Ruby is interpreted, but there's at least one project - YARV - out to create a JIT.
The fun part is, Gosling caught a lot of crap for that post, and mostly backed off, retreating into the "chains are good for you" position:
One of the slogans that was brought up in the commentary to my previous blog entry was "freedom vs. safety". Once upon a time I used to believe that: it has certainly been conventional wisdom for years. But a lot of the time, the truth is actually that safety is freedom (eg. a good safety harness and rope give you the freedom to climb a mountain).
When I'm writing a function and declare a parameter to be an Image, I am free to trust that it is an Image. I'm free to trust that no one's array access has smashed my data structure. Examples abound.
Ahh yes, argument by assertion. "Examples abound", so he needn't give any. I've made this point many times - the kind of error that type checking catches is extremely rare - it's come up a handful of times for me over the last 13 years of Smalltalk development. The kind of type checking that Java requires comes at a high cost - it catches errors that almost never come up, and adds in expensive rigidity (generics are simply the latest attempt by the Java guys to muck their way past the casting issue).
Which reminds me - casting is a lie to your compiler, and walks right past this vaunted type safety. So if the "safety"offered by Java style typing is so phenomenal, then why do you allow casting at all? Wouldn't you be even more safe and more free without it?
Working at Home
Generally, I love working out of my home office - it would take a lot to get me back to the commuting/office style of things. However, it's not all peaches and cream - I'm constantly reminded of this Dilbert Strip, which I taped to my door - all the frames are the same, and Dilbert is talking to Ratbert and Dogbert:
CAPTION: What the Work-At-Home Person Says
DILBERT: Don't disturb me unless the house is on fire.
PANEL TWO
CAPTION: What the Rest of the Family Hears
DILBERT: I am your servant. My specialty is killing spiders.
PANEL THREE
CAPTION: What the spiders hear
DILBERT: The house is full of wounded flies.
I thought of that when I read this WSJ piece on the travails of the work at home person. I don't have trouble with my company - Cincom is actually pretty good about that, partly because we have so many work at home staffers. However, it took me a few years to convince my wife and daughter that I was, in fact, working in my office. Which is why that Dilbert strip ended up on the door :)
The joys of weblog apis
So Troy is testing out the mt api support that I built into the Silt server. For an idea as to what kind of fun this is, have a look at the results for a Google search on "mt API". Good luck finding anything useful - I had to dig into the Google cache for SixApart docs.
Anyway, in response to getCategoryList() I was sending back an array of structs, as requested - but I was letting the code fall through to the same API in metaweblog API. The difference is that the meta API sends back a number of key/value pairs in the dictionary, while MT only expects two - category id and name (and a third, isPrimary, for specific posts). Silly me - I thought extra dictionary entries would be ignored.
Not in the tool that Troy was testing though. So, I've got that fixed and uploading to the production server. Now to find out where my next misconception comes from.
The opposite of QOS
Here's a shady action on the part of an ISP:
Shaw cable has, this year, begun to roll out traffic-shaping technology on their network using technology from Ellacoya, and reportedy by this Wall Street Journal article. It seems they started using this service in early 2005 in the greater Vancouver area, probably because Shaw's network is most overloaded in that market. There have been reports that they are rolling it out to Edmonton, Saskatoon, and Winnipeg. Check out the reports, there's a lot of talk.
Ellacoya's technology works by "deep packet inspection" which is a type of firewall that's super-intelligent. That is, it doesn't just know about IP and TCP or UDP ports, it can also look inside the packet and see if it's FTP, HTTP, Bittorrent, kazaa, and etc. Therefore, it's not affcted by port numbers. This technology, while impressive, is not perfect. It can mis-identify packets, and requires constant upgrades to keep track of all potential types of data traversing the internet, of which there are many, and the possibility to create a new one today exists.
The issue here isn't that the ISP is doing this; it's that they are doing it quietly, leaving customers to figure out why their service is affected. The downside is, people tend to have fewer options with local ISP's than with other vendors - leaving them fewer options to effectively punish the provider.
A caveat - there are reports that this is exaggerated, but it's still worth watching.
The static/dynamic divide
He says he’s walking away from Microsoft’s Web development tools. He’s going to Ruby on Rails and won’t be back until we get the magic back. Well, that’s what we’re working hard on and why we’re doing the Mix06 event.
One question, though. Have you checked out the latest ASP.NET and Visual Studio 2005? If so, what about it turns you to Rails?
To get that, he's going to have to wade into the dynamic language/static language debate :)
Now that's a ship name
For all of you who still enjoy 7th grade humor, I give you... the ship.
Emergency Call? No Dice
Theater owners are solving the wrong problem - they want to jam cell phones:
With flat panel prices in free-fall and sizes approaching those anaemic megaplex screens, it’s no wonder the National Association of Theater Owners is in a panic about the decline in consumers willing to slap down a near-sawbuck to watch a flick. What to do? Well, it looks like cellphone jamming is the new baby jeebus in an industry attempt to lure your azz back into their buttery seats. See, NATO (er, yeah) has announced plans to petition the FCC for permission to jam cell phone signals within theatres to “block rude behaviour”
Would actually making the audience aware of a rule (silent/vibrate/off) - and enforcing it wit expulsion if need be - be just too hard? I don't typically have to worry about emergency calls during a movie, but some people (doctors, for instance) might not have that luxury.
Maybe theater owners should ask Hollywood to create a better product instead.
Which Action Hero?
Via Rob Fahrni - which hero are you? Looks like I'm:
| You scored as
Captain Jack Sparrow . Roguish,quick-witted, and incredibly
lucky, Jack Sparrow is a pirate who sometimes ends up being a hero,
against his better judgement. Captain Jack looks out for #1, but he
can be counted on (usually) to do the right thing. He has an
incredibly persuasive tongue, a mind that borders on genius or
insanity, and an incredible talent for getting into trouble and
getting out of it. Maybe its brains, maybe its genius, or maybe its
just plain luck. Or maybe a mixture of all three.
Which Action Hero Would You Be? v. 2.0 created with QuizFarm.com |
Someone get Ebert a cluestick
How in the world can anyone think it was a bad year for the movies when so many were wonderful, a few were great, a handful were inspiring, and there were scenes so risky you feared the tightrope might break? If none of the year's 10 best had been made, I could name another 10 and no one would wonder at the choices. There were a lot of movies to admire in 2005.
News on box office attendance numbers in 2005:
A box-office jolt from the magic kingdoms of Kong, Narnia and Hogwarts will close Hollywood's year with some holiday cheer, though not enough to offset the biggest decline in movie attendance in 20 years.
What Ebert isn't seeing is that lots of the "critically acclaimed" movies are movies that don't get much box office. I think the movie industry - and Ebert - might be able to learn something from a thing Sam Goldwyn supposedly said: "If I want to send a message, I call Western Union".
And please, enough with "risky" movies and "edgy" scenes. More acting, more story lines, less commentary. And whatever you do, keep George Lucas away from the script.
Live Editing of Controversial Content
Rogers' exploration of the editing practices of Jim Wales makes the same point I made awhile back - topical content is going to oscillate for a long while - especially when the content is covering something on which people disagree. Biography pieces on living people definitely fall into that bucket :)
Design is language specific
Bjarne Stroustrup on language usage:
One reason often quoted for learning Smalltalk is that it is ``pure'' and thus force people to think and program ``object oriented.'' I will not go into the discussion about ``purity'' beyond mentioning that I think that a general purpose programming language ought to and can support more than one programming style (``paradigm'').
The point here is that styles that are appropriate and well supported in Smalltalk are not necessarily appropriate for C++. In particular, a slavish following of Smalltalk style in C++ leads to inefficient, ugly, and hard to maintain C++ programs. The reason is that good C++ requires design that takes advantage of C++'s static type system rather than fights it. Smalltalk support a dynamic type system (only) and that view translated into C++ leads to extensive unsafe and ugly casting.
The reverse is true as well, of course. Once you get past a high level view of your system, design will get to be language specific - you'll approach the same task differently in C++, Smalltalk, Java (et. al.). Which language to use depends on a best fit analysis - clearly, I'm of the opinion that Smalltalk is a better fit for most application level tasks. But the larger point is what Bjarne said.
Small Tool Survey
I've tossed out a new Survey on our website - it's short, with a few questions about your tool desires. Let us know what you think, and send me email if you have comments that go beyond the survey.
Thinking in Public
Another thing that I should mention in the context of this post - and the comment trail after it. On this blog, I do an awful lot of "thinking in public" - I tend to post my first impressions, not after long cogitation on an idea. Which means, my initial take on an idea does not always represent the sum total of my thinking on a subject - and a mostly dismissive reaction doesn't mean that I'm not discussing the idea with our engineers.
Having said that, bear in mind that our engineering team is engaged in a pretty darn big project - we are building a system that is as large and comprehensive as J2EE or .NET, with a fraction of the engineers that Sun and Microsoft have. Sure, Smalltalk is marvelously productive, which is why we are able to stay in the game - but we do have resource limits, and - as such - a large part of what I do is prioritization.
Which side do they drive on?
If you ever wondered about where driving habits (as in, which side of the road) come from, here's a background page. Interesting how much influence Napolean had over the process in Europe, especially in the case of Austria.
Why New Orleans will be smaller
Read this from Philip Greenspun and you'll understand:
We did three sightseeing/photo flights over New Orleans. The first was with Vincent, who oriented me to the area. The second was with Ernie, who pointed out some additional sights and breaches in levees. For the third flight, we removed the left door of the R22 and left it with the FBO. Tony flew from the right seat while I took photos out the open left side of the helicopter. Flying above the city, you realize what a tough challenge rebuilding is going to be. Some of the high ground neighborhoods are more or less back to normal, with the exception of blue tarps covering damaged roofs. The low-ground neighborhoods, however, whether formerly rich or poor, are deserted. It looks as though a 1970s-style neutron bomb was detonated leaving the buildings and cars, but killing all the people. No homeowner in one of those neighborhoods is going to be able to rebuild without taking on a tremendous risk. What if the other people in his neighborhood decide not to rebuild? He will have spent $200,000+ on a new house in a dangerous abandoned area.
There are two levels of risk involved here. One is the risk the putative homeowner is willing to put up with, based on the level of abandonment. The other is even harder to get around - the level of risk a mortgage lender is willing to deal with in order to fund rebuilding in what's now recognized as flood plain. Sure, it's always been flood plain - but potential lenders have had that fact put in front of them now. Between those two things, I expect that large parts of New Orleans will simply never get rebuilt, regardless of what kinds of aid packages go into the project.
Tornados
Yes, this is Scoble talking about an MS product:
The other night Chris Pirillo recorded a podcast in his house with a bunch of geeks talking about Xbox 360. It’ll give you some sense of what we’re experiencing tonight. I can’t believe the quality. Sorry, Maryam, we’re going to buy an HD screen in 2006. I’ll go more into debt for one. It’s just so freaking cool.
But, the lines outside retail outlets with XBox 360 consoles aren't hype, anymore than the fascination with the Apple Nano is. I think Microsoft might well have a small tornado on their hands here.
What's This? First Place?
It's an unnatural act in December:

Football that matters in December in the Meadowlands. Even better - Looks like Washington wins this week over Dallas. The Giants play the Skins next week, but then they play the hapless Raiders the last week of season. All they need to win the division is one win.
Eclipse Running
With some help from the IRC Channel - I got pointed here - I was able to get Eclipse running. Seems I had to specify the VM path - there's likely something going on with my search path.
So, there it was - not showing any of the system code. I followed some advice from this thread, and Eclipse promptly crashed with a fairly useless error message. Now, even given my previous post (the chirpy one about Civ 4), it's entirely possible that Civ 4 left my machine in a weird state. On the other hand, VW and BottomFeeder are operating fine, and the sometimes shaky Eudora hasn't crashed.
So my evaluation is still nebulous. Of course, this is Windows, and experience has taught me that "works on my machine and not yours" is common enough. I don't have a new enough Linux box to contemplate running Eclipse (It's a PII 400 - although, I should point out that VW runs just fine there :) ). Anyway, I'm still looking.
Civ 4, Third Thoughts
Maybe my reboot requirement from the first time I tried the game was something else, because I've played a few times since then without any problems. At first, I disliked the UI (relative to Civ 3), but it's grown on me. I also managed to get in a couple of network games with Michael - timezone issues prevented taking the games to completion, but I was ahead in one, and he had me in the second.
So ultimately, I think I'm now happy with the game.
Smalltalk, Intellisense, and misconceptions
I think it's clear, based on some of the comments here, that some of the people reading this blog don't get what I was after in that post - and don't get my take on Intellisense, either. Let me start with the Eclipse post. I am honestly curious - I haven't looked at the product in awhile, so I downloaded it. I keep getting what looks like a nonsensical error about a JDK revision that - so far as I can tell - isn't installed on my machine. I'm assuming that I'm supposed to start Eclipse via the 'eclipse.exe' file in the main directory, not via the 'startup' JAR file. Sure, I was snarky in that post - but if you read this blog and you haven't come to expect that, well, I'm not sure you get me yet :)
As to Intellisense - I've seen what the Dolphin guys are doing (which is the same thing as a couple of optional add ons to VW do, for that matter). I've also seen how it works in Eclipse, and in VisualStudio. Personally, I just don't find the feature helpful, but I do know that people differ on this. Here's the thing about Smalltalk though - I stated here that sure - a static language like Java (or C#) will be able to give you more precise information for that kind of feature. What I also said is that, IMHO, the benefit that comes from that is far, far lower than the overall loss of flexibility that those typing schemes also give you.
As other people have said about Smalltalk, it's clay in a developers hands. In contrast, Java and C# are more like balsa wood. Sure, you can build useful things from balsa wood - but it's a brittle material, and you can easily snap things off. Clay is more malleable. It's not a perfect analogy by any means, but it drives at the point I'm trying to make. I understand the benefits that static typing gives at a tool level. It's just that the cost is, in my opinion, far too high.
Sony's Mess might do some good
It looks like Sony's DRM mistake may be causing blowback where the labels really, really don't want it - with the artists:
The battle between artists and Sony BMG over the use of Digital Rights Management (DRM) copy protection on audio CDs just got even more interesting as some more artists have decided to act. This time it is My Morning Jacket, who's album "Z" is copy protected. They are doing their very own recall of the CDs and get this... they are burning unrestricted copies of the CDs themselves and sending them out to fans. Oh I wonder how Sony BMG feels about that.
Let the fun and games begin!
IM Clients question
Dare has a post up on a cross-protocol, browser based IM client (Meebo), and the liklihood that they'll be acquired. That raised a question in my mind though - and it's not meant to be a nasty question - I'm honestly curious. What do MS, Yahoo, and AOL get out of their IM clients? I mostly use AIM, but that has to do with which network most of the people I deal with are on. I don't use AOL for anything else, and I haven't paid them for anything, ever. At one point I used MSN as a backup for dialup access, but I gave that up eons ago too, as I started traveling less, and hotels started having broadband access.
So honest question - what actual benefit are these guys seeing from their IM networks?
What a shocker - Orlowski misses the real story
I'm not sure that Orlowski would know what a fact was if it started stalking him. In an all too predictable hit piece on the accuracy of Wikipedia, he has a lot of fun at Jimmy Wales' expense. I guess he didn't see this piece on the overall accuracy of Wikipedia versus Britannica.
The reality is, Wikipedia's issues with accuracy has far more to do with the controversies on topical issues than it has to do with anyting else. I think I mentioned that awhile back.
Weekly Log Analysis: 12/17/05
Time for my weekly look at the logs. BottomFeeder downloads stayed in their zone, at 355 per day. The breakdown:
| Platform | BottomFeeder Downloads |
| HPUX | 580 |
| Windows | 476 |
| Mac 8/9 | 410 |
| Sources | 392 |
| Mac X | 199 |
| Linux x86 | 126 |
| Update | 79 |
| CE ARM | 71 |
| Windows98/ME | 37 |
| Linux Sparc | 31 |
| AIX | 21 |
| Solaris | 19 |
| Linux PPC | 14 |
| SGI | 13 |
| Source Script | 7 |
| ADUX | 6 |
| CE x86 | 1 |
Those HP numbers always amaze me - who knew there were so many HP users interested in an aggregator? Off to the HTML blog page report:
| Tool | Percentage of Accesses |
| Mozilla | 50.6% |
| Internet Explorer | 31.2% |
| Other | 6.9% |
| MSN Bot | 4.7% |
| Google Bot | 3.6% |
| Java | 1% |
| Opera | 1% |
| BottomFeeder | 1% |
Either my audience switches between IE and Mozilla a lot, or a fair proportion of my audience is variable. There's just not a lot of consistency between the IE and Mozilla numbers, week to week. Finally, the RSS tool distribution:
| Tool | Percentage of Accesses |
| Mozilla | 24.3% |
| Other | 15.7% |
| Net News Wire | 8.9% |
| BottomFeeder | 8.7% |
| Liferea | 5.2% |
| Safari RSS | 5.1% |
| Java | 4.2% |
| Internet Explorer | 4% |
| BlogSearch | 2.9% |
| Magpie | 2.4% |
| SharpReader | 2.3% |
| Planet Smalltalk | 2.1% |
| NewsGator | 2% |
| RSSReader | 2% |
| Feed Reader | 1.3% |
| RSS Bandit | 1.3% |
| Feed Demon | 1.2% |
| JetBrains | 1.2% |
| BlogLines | 1.2% |
| MSN Bot | 1% |
| Python | 1% |
| News Fire | 1% |
| Google Bot | 1% |
Still a lot of tool diversity there.
Six Apart shows class
You should compare the way Six Apart dealt with a crisis (yesterday's Typepad outage) with the way most companies deal with one. Unlike, say, Sony (lots of denial and stupidity, finally followed by a grudging admittance of something, but not quite wrongdoing), Six Apart got right out in front of the outage and was extremely transparent about it. Now, I don't want to compare the actual problems - they were nothing alike. I'm talking about the responses.
If you look through the postings around the sphere yesterday, you'll notice that there wasn't much (if any - I didn't see any) outrage, and people seemed to be happy with how Six Apart was treating them. Just have a look here - Anil Dash gave a candid interview on the issue on the day it happened. Not weeks later, like too many companies out there.
I may not use their software (I wrote my own server), but I like the way they do business.
A tip on Humor
Doc tries to explain Howard Stern:
Even though I didn't catch much of the final show, I did think of a way to explain the complex ironies of Howard's humor to those who can't see it through politically corrective glasses: When Howard seems to be making fun of Wendy the Retard , he's having fun with her; and when he seems to be having fun with Daniel Carver the racist , he's making fun of him.
I've never found Stern to be funny. Back when he was married, he was somewhat amusing in a 7th grade bathroom sort of way - mostly from the "his wife lets him do what?" kind of perspective. After the marriage ended, so did that question.
I can hear 7th grade level locker room humor anywhere though, and I don't feel a particular need to seek it out. Another thing - if you have to explain something as simple as what Doc tries to explain above - it's not, in fact, simple. I've watched Stern on TV, and I've listened to him on the radio. It's not at all clear that he's anything other than a misanthropic fool to me, and I don't think I'm particularly humor impaired, or a fan of PC notions. Stern is the classic shock jock, and his shtick has ratcheded up the shock meter over the years as people have gotten used to one shocking set of humor after another.
I've seen real comedians, and while they don't necessarily eschew cursing, they can be funny in almost any context without having to reach back to 7th grade. George Carlin comes to mind. Or the late Richard Pryor.
So how do you use Eclipse?
The last time I downloaded Eclipse, about a year ago, it was slow, but easy enough to install. I figured I'd have another look, since the Java fans who read this blog keep telling me how wonderful it is.
Well, it may well be wonderful. I have no idea though, because I can't get it to run. I downloaded it from eclipse.org easily enough - but then the app told me that it needed JDK 1.4.1, and all I had was JDK 1.3.1. That's where the real fun started
First check - follow the links from the Eclipse sit to the Sun download page - there's JDK 1.4.2. No 1.4.1 in sight. I figured that ought to be close enough, so I grabbed it. That's when I found the marvelous installer that Sun has. Now, I know that the Cincom Smalltalk installer has not always been perfect - but this one did some basic stuff wrong. No cancel button, and it reported progress for awhile, and then just stopped - leaving me wondering whether it was still running. Finally, it finished - and then it asked me to reboot. What's up with that?
Ok, back from the reboot - and Eclipse still tells me I only have 1.3.1 installed. Look at CLASSPATH in a DOS shell - nope, that points to the new stuff. Installed Programs? Nope - no sign of anything with a 1.3.x version anywhere there. Joy. Off to the registry - nope, nothing there.
In desperation, I go into the directory and try starting the file called "startup" instead of the one called "eclipse". Fascinating - that works. But it opens up without any sign that it sees the JDK, so I expect I'm not seeing it the way I'm supposed to. Clearly, I'm missing something here. I have no idea how to even evaluate this thing.
CORBA Redux
Looks like reality finally caught up with the hype - the public UDDI registries run by IBM, SAP, and Microsoft are being shutdown. Wow, who would have guessed that a system like the CORBA registry - but using XML and HTTP instead of binary mechanisms - would also fail to reach widespread usage? It's almost like we've seen this movie before.
Who controls the vertical?
Tim Marman points out that the customer is in control:
My "relationship" with Engadget really illustrates this well. I used to read Gizmodo but switched over when Engadget first offered full-text feeds. Gizmodo has since added full-text feeds, but it was too late: at this point I consider myself a loyal Engadget reader. It's one of the few sites I will read when I don't have my aggregator. Even when I do, I still visit the site a lot to leave comments. I also link to them a lot, and while I may not have Scoble's 18,000 readers, I send some traffic your way - that should at least help make up for the "lost" visits from me, right? ( Oh, and unlike Robert, it's not that I actively refuse to link to sites with partial-text feeds - it's just hard to link when I've already unsubscribed and won't see your content ).
It's really very simple: RSS lets the customer control the conversation. In exchange for that control, we will gladly reward you with our loyalty - and we'll be happy doing it. But if you're going to do this, you can't do it half-assed - don't give us partial feeds!
I'm not as hardline on partial content as Tim or Scoble are, but that's not the point - the point is, customers have a lot more power in the conversation than they used to. Marketing departments are figuring this out very, very slowly.
How to kill real voices
Just follow the steps outlined by Marketing Sherpa, and you too can have a corporate blog with all the identity of Borg. I mean, have a look at what they suggest:
Before you get in a room with stakeholders to discuss the blogging issue, you must understand what you hope to gain from blogging -- because the direction of that discussion will depend upon your answer.
This falls under their "Set Goals for Blogging" theory. I started this blog back in 2002. Did I have goals? Heck, at the time, I wasn't really sure what I was doing. I started because I thought it might be cool to build a blog server using the Cincom Smalltalk Web Toolkit - I even made it multi-user at first. That stopped, and I eventually invited a community here.
And setting a direction? heck, I don't have one - I post on things that interest me, as they come up. I don't have even a vague plan for what I'll post - it's all ad-hoc and driven by events. I read a lot of content, and a lot of what I read is from RSS searches for keywords of interest to me and my area of business. Step one should be "read what other people are saying about you".
I rather suspect that a "goal oriented" blog would get really dull, really fast - just like the political blogs that stay "on message" get really dull. If you want to sound like a corporate version of one of the "talking points" folks that show up on the political talk shows every night, follow their advice. Just don't be surprised when you end up with something that no one but the trolls cares about. Here's the kicker on that:
In other words, the company's communications strategy should be mirrored throughout the company's blogs -- but they can show more of a person's or company's personality.
Here's a tip: If this is what you think, then don't even bother. Your "blogs" will be the same kind of puffery as the press releases you already have.
The only useful thing in the entire piece is the idea about a blogging policy - letting people know what corporate considers out of bounds on an official (i.e., hosted on corporate servers) blog would be useful - that way, no one will be confused about what the boundaries are. But - those boundaries should err on the loose end.
Hat tip to Scoble.
iTanic - a cautionary tale
I've been meaning to comment on this story all week, but I've been like Barliman Butterbur - one thing drives out another. From CNet:
Eleven years and billions of dollars later, Itanium serves instead as a cautionary tale of how complex, long-term development plans can go drastically wrong in a fast-moving industry.
Despite years of marketing and product partnerships, Itanium remains a relative rarity among servers. In the third quarter of this year, 7,845 Itanium servers were sold, according to research by Gartner. That compares with 62,776 machines with Sun Microsystems' UltraSparc, 31,648 with IBM's Power, and 9,147 with HP's PA-RISC.
I'm not convinced that HP will stay with the chip either. Everything I've read about this chip says that intel allowed a technical idea to run ahead of market research, and they paid the price for it. Read the story - it's a good overview of the problem.
What a day
BottomFeeder release issues. CST Winter Release issues. My Christmas shopping is barely started, and I still have to get a tree. And, my daughter has a girl scout party in a few minutes.
I think I need an extra week in this month.
Old Smalltalk Report Access
LtU has a post up on access to archived PDFs of the Smalltalk Report:
For 1996 there's a link to each of the pdf files and there's a pdf index for the earlier issues 1991-1995 afaict we must play with the URL to reach the pdf file, so '91 issue 1 SMAL0101.PDF and '92 issue 3 will be SMAL0203.PDF
Hiccup in the CST Winter Release
We are going to have a slight hiccup in the winter release - we found that we have to re-package, due to a small installer problem - a "typical" install could lead to confusing results (especially in the non-commercial release). So, we are doing a re-package, and should have that all ready early next week. However, Cincom takes a holiday during the week after Christmas, so that will push the official release out until after the new year.
You mean Unreal tournaments aren't mission critical?
Cees noticed that MS has finally realized that the graphics engine doesn't belong in the kernel:
Well, well, well. After 15 years, the original NT group is being proven right: Microsoft is moving the graphics out of the kernel again, reversing a decision that lots and lots of people frowned upon when they moved graphics into the kernel between NT 3.51 and NT4. Back then, most people concluded that it was the major reason that NT4 wasn’t just as rock-solid as NT3, and it seems that they’ve finally gotten the message.
I wonder how many kernel hacks ought to be removed now that they aren't trying to speed up Doom anymore...
Mac issue fixed
Update: The new files are uploaded. Just grab the new Mac files
I found and fixed the Mac issue. I'm going to push new builds for that platform, but in the meantime, here's the fix:
- Start BottomFeeder
- Don't select anything in the tree view
- On the toolbar, select the third icon from the left, and download LibTidy
- Restart BottomFeeder, and it should work fine
My apologies for this - if you would rather download an entire new build, I'm doing that now, and will update this post when I have it
Researching a Mac OS X issue with Bf
Troy reported a crashing issue with BottomFeeder on the OS X platform - I was able to reproduce it on my mini, and I'm in the bowels of the application debugging it. I'm not sure what it is yet, but I'm on the trail. At this point, if you see this problem, please let me know



