Tuesday Evening at ESUG
Here's a shot of the hotel lobby as people chatted after the day's talks:

And here are Martin Kobetic and Suzanne Fortman:

Here's a shot of the hotel lobby as people chatted after the day's talks:

And here are Martin Kobetic and Suzanne Fortman:

I'm off to interview Rowan Bunning (of Software with Style), so I'm missing the Mondrian presentation. Here's a picture of Tudor Girba, talking about the visualization system they've built:

You can get info on Mondrian here.
![]() |
Noury Bourqadi is doing a talk on ubiquitous computing - i.e., Smalltalk on, or communicating with, various devices (small devices, mostly). The main thing - devices have become diversified and mobile (phones, PDAs, etc). Additionally, the type of wireless connection varies (WiFi, Bluetooth, etc). |
Building software to deal with these devices and communications protocols is getting more and more complex, which delays product delivery. Goals? Help developers build for these environments. Some assumptions UbiquiTalk makes:
UbiquiTalk is middleware. It's a framework for domain objects and UI. It handles unanticipated remote interactions and heterogeneous hosts. A host can be anything with a network interface, and a service is anything that can be reached remotely. There are application services and middleware services.
For the middleware, you get a services registry, automatic host discovery remote communications, and on-demand deployment at runtime. On the framework side, there's code to handle and configure all of that stuff.
Service Definitions:
Thus far, there are two implementations: PCs (desktop/laptop), and PDAs.They are actively looking for partners, and there's a fair amount of future work to do. I didn't get the middle of this talk - jet lag caught up with me, and I fell asleep :/
I took these two shots near the hotel the other day - it was my first indication that I was in the former communist bloc :

That's a statue of Soviet Marshal Koniev, who was called (by the Soviets) - "the savior of Prague". Martin Kobetic, who's originally from this area, translated the text below for me. The gist of it is to name Koniev as a great hero of the Soviet Union and Czechoslovakia.

The afternoon social event at ESUG this year was a walking tour of Prague. We had an excellent tour guide, and saw a lot of interesting things - and she filled us in with local color along the way. I've posted a few shots of the Charles Bridge (named for Charles IV, a medieval King of the area). The bridge is about a third of a mile long, and dates from the 13th century.

That's looking back at the tower by the statue of Charles. Here's another:

That's looking at the far end from old town, into the area where Prague Castle is.

That's an interesting spot - people touch the engravings on the right and left (you can see how polished they are as a result) and make wishes. When I took this shot, there was a long line looking to do that :)

I just liked that statue - I think the "crown of thorns" is in Hebrew.
We started the tour in the square in "the new town" (dating from the 14th century - "old town is older"). In that square there's a statue of King Wenceslaus (yes, from the carol):


I was asked during my presentation today why I don't use Captchas on my blog comment forms. Well, I answered that I've never liked them. Had I seen this, I would have had a better answer - it's a job offer:
I will provide a piece of software that will display CAPTCHA's - you will provide the service of solving them for one 50 hour week. Post your price and internet connection type.
Right now, the bidding is under $1 an hour. At that price, it will be well worth the spammer's time to pay.
I've done my first podcast - an interview with Rowan Bunning, the Product Manager for Software With Style. We spoke for almost 12 minutes, and I've just gotten the audio put together for download. We spoke in a room that had something of an echo, which accounts for the sound. The interview is an mp3 file, so it should be easy to grab.
Enclosures:
[http://www.cincomsmalltalk.com/audio/rowan_interview_final.mp3 ( Size: 4565892 )]
It's Thursday morning, and Georg Heeg is up to talk about the ObjectStudio 8 project. The Heeg company was founded in 1987, and has been involved in Smalltalk since that time.
OST and VisualWorks:
Enfin
VisualWorks
Customers want both, but don't often know that they need the meta-model. So - why is Cincom doing this, given the sad history of product integration (across the industry). There was an HPS2OS project that did not succeed. However, Georg points out that Smalltalk is all about modeling - so we should be able to model one system in another.
So ObjectStudio 8: Model ObjectStudio using VisualWorks meta-modeling. It uses reflection capabilities:
There were significant differences, including such things as the process model. Both OST and VW live in the same image. They share the same Smalltalk kernel and most of the same base classes. Both base OST and base VW code work (mostly) unchanged from previous releases.
The idea for this was originally Georg's - he had vocal chord surgery in 2004, and couldn't speak for 2 weeks - he started this project then, and it's become a full project inside the Cincom Smalltalk team. After that time, he could load the OST codebase - didn't all work, but it did load.
After that, he hired a new team member, Jorg, who had worked on the Windows CE VM as an intern. He's been doing much of the DLL integration for ObjectStudio 8, as well as primitive migration. That started at a rate of one primitive per day (there are 450!). That's where things went to making the OST C/C++ codebase into a VW callable DLL. He started that in February of 2005. He got a basic version completed by JUne of 2005.
At that point, compatibility testing started in earnest. If a component didn't work right, they wer either fixed, or replaced. For instance, ObjectStreams have been replaced by BOSS. This took much longer than originally anticipated :)
The original strategy was to not modify the VW VM at all. Some bugs did need to be fixed, and the Event system had to be changed somewhat - but that was it. The goal for ObjectStudio 8 on the Smalltalk side was to make VW namespaces invisible. Classes live in namespace ObjectStudio, globals live in ObjectStudio.Globals. Here's Georg in front of a (not clear in the picture) architecture diagram:

And here's a capture of the image Georg sent me afterwards:

Another set of issues came up in the way code is stored. ObjectStudio uses a different chunk format, and also stores code in CLS files (one class per file) - with additional complexity in secondary files (somewhat like the .NET partial class files, actually). The answer was a new compiler for ObjectStudio, with a new parser (both written in VW, at the Smalltalk level).
There were also some syntax differences - in OST, you can use:
{ ["code here"] ["code here] }
to define an array of blocks. The VW compiler didn't do that, so they created code transformations that changed that kind of code over. As well, in ObjectStudio, you can assign to a method parameter. Again, transformations were defined to generate temp variables. Finally, there were some semantic differences - here are a few examples:
| Code | VisualWorks | ObjectStudio |
| 1=0 ifTrue: [1] | nil | false |
| [:n | ] value: 1 | 1 | nil |
| Array new add: 1 | Error | #(1) |
| (Array new: 1) at: 1 put: 7 | 7 | #(7) |
The team defined a set of substitutions in order to execute ObjectStudio versions of messages that are like the examples above - i.e., where OST specific behavior should be preserved.
There were also mappings for the ObjectStudio chunk formats, so that OST 8 can read and write the classic OST file formats. In ObjectStudio, there is a very string integration between Smalltalk and C: there are numerous cases where the image and the VM call back and forth. OST has always been intepreted, so optimizing this callback scheme made sense. So there are five ways to call C:
To handle this, a wrapper DLL was created using DLLCC. It uses __oop as a parameter and return type. It calls ObjectStudio primitives using a simulated ObjectStudio stack.
Another issue: In OST, object pointers never move - and this assumption gets used (for instance, in Windows API calls). In VW, the garbage collector moves object pointers all the time. The solution was to make OST OPTR objects into a C++ wrapper class, which handles this. Primitives either map directly to VW primitives, or got replaced by auto-generated replacement code, which goes into the wrapped DLL.
In ObjectStudio 8, Unicode capabilities are available, period. No more variant VMs and images.
Finally, the process model differences.
VisualWorks
ObjectStudio
This is where some modifications to VW event handling had to be made. There are specific subclasses now that communicate directly with the Windows Event system, rather than a generic cross platform wrapper.
ObjectStudio also has some interesting features missing from VW: for instance, class proxies. It has the same name as a missing class, and handles DNU by loading the missing class/application. This gives ObjectStudio lazy loading. In VW, you have parcels, but they don't do lazy loading.
A few Performance Issues:
Another issue: file-in some .st code in VW:
This has been optimized. A pleasant side effect is, it helps both VW and OST. New stuff for ObjectStudio: Store, the RB, the debugger, the inspector, related tools (code critic, etc). Note: ObjectStudio developers do not need to migrate to Store. They can continue to use the same source code control tools they use with their current ObjectStudio code.
Where are we? We have been working closely with a customer for feedback and porting data. We intend to have a first preview (beta) ready for general customers to see in the winter. Some known incompatibilities:
Georg's parting question: Integration of Smalltalk systems is possible. So, are there other systems that should be integrated? Squak, VA, VSE? Smalltalk-X, Dolphin, Gemstone? What about other languages, like Ruby, Java?
|
Now we have Joe Armstrong - an invited speaker to talk to us about Erlang. I've always been curious about Erlang - Patrick Logan has said good things about it, for instance. He's worked in Smaltalk, and likes it. His work has been in telephony, and Smalltalk was a bit slow for their purposes (this is way back). Ordered a Tektronix Smalltalk machine (that's how far back :) ) - but there was a two month wait for it. |
In the interim, he fell into Prolog by accident. By the time the Smalltalk machine arrived, he was more interested in working with Prolog. He gave the Smalltalk machine away, and Objectory came out of that donation. In further experimentation, he added concurrency to Prolog - and this is where Erlang was born - Joe is the inventor of Erlang. He's curently a senior system architect at Ericsson AB.
One thing that Erlang is very good at is creating large numbers of processes. In Java, for instance, processes map down to the OS (threads) - and that takes away predictable behavior. So what you want is:
Niall Dalton: Erlang is Smalltalk the way Alan Kay wanted it to be - this got a nice laugh from the audience :)
Assertion: To make a fault tolerant system, you need at least two computers. That means that you are doing distributed programming. To simplify the problems, have:
Sharing gets in the way of fault tolerance. This gives us Concurrency Oriented Programming:
So the design rules:
Try to make the design isomorphic to the problem - i.e., a 1:1 correspondence between process/message structure in the model and the problem.
In 1998, Erlang got banned at Ericsson, due to a "we must use standard languages" wave (sounds familiar). The upshot was, Erlang got open sourced, and the Erlang folks formed Bluetail. Bluetail was later acquired.
The basic concept here: systems should be black boxes that can communicate - failures in one black box should not crash another black box. This leads to making all communication asynchronous. The problem domain:
So to get this:
| Concurrency | processes |
| Error encapsulation | isolation |
| fault detection | what failed |
| Fault identification | why it failed |
| Live code upgrade | evolving systems (multiple versions at same time) |
| Stable storage | crash recovery |
Isolation is key here: It's why hardware components are easier to build. Erlang is designed to operate concurrently via message passing, with isolation. So:
Processes have share nothing semantics and data must be copied. Message passing is the only way to exchange data. Message passing is asynchronous. My program should not be able to crash your program.
Programming for Errors: If you can't do what you want to do, try and do something simpler :) Using these techniques, they've built a 9 nine's reliable GPRS system in Europe.
InfoWorld's Oliver Rist is underwhelmed by Vista:
Instead, I now have a much slicker-looking version of Windows XP ¦ along with significantly increased hardware requirements. I don't mind the 1GB of RAM baseline so much. But the need for a 3D-accelerator in any PC that wants to run Aero sticks in my craw. Executives will start out seeing reason, but soon enough they'll want Aero running everywhere. That means fancy-shmancy video cards. And fancy-shmancy video cards mean added complexity, and that means more trouble for the desktop admin set -- all for something that really amounts to glitz and little else.
I'm starting to think that Vista is astonishingly like Sony's PS3: it's an incremental improvement over the previous generation, but it's being pitched as a huge change. The big price tag for fairly small benefits is not a great marketing campaign, IMHO.
|
Lukas Renggli is up again, this time talking
about Seaside and how it fits with the "Web 2.0" meme. So Seaside
does a lot of things out of the box:
|
Heh. He said I'd get on their case for bad RSS. Lol :)
This talk is about Seaside's use of AJAX, which gives you client level interactivity.
You want to concentrate on your web app, not on browser issues (especially browser incompatibilities). Seaside masks that by using Javascript [ed: Depending on how well your browser handles Javascript: see TinyMCE, for instance...].
The integration is via the Scriptaculous Javascript library. It handles things like drag and drop, in place editing, etc. The important thing is, you can express all of this in Smalltalk - Seaside has APIs for that.
Here's a small example of something interesting: shared state across multiple browser instances:
Example:
html effect
id: 'hint';
shake.
becomes:
new Effect.Shake('hint');
You integrate this the same way we saw in the short example 2 days ago.
The kind of code you can write:
html (updater | periodical | request | evaluator) [OPTIONS]; * [HANDLER]; * [TRIGGER]; * [CALLBACK]; *
Note: I don't guarantee that the code examples are perfect :)
"in place editor" html span script: (html inPlaceEditor triggerInPlaceEditor: [:v | anItem title]; callback: [:r | r render: anItem]; with: anItem title. "drag & drop" html form id: 'checkboxes'; with: [ html div id: 'items'; script: (html sortable tag: 'div'; onUpdate: (html request triggerSortable: 'items' callback: [:v | self model item: v])); class: 'items'; with: [self renderItemsOn: html]]
For debugging, you can usually debug in the Smalltalk debugger. If you have issues at the Javascript level, use Firefox and the FireBug extension that gives you some Javascript debugging capability. And see scriptaculous.seasidehosting.st.
I interviewed Georg Heeg this afternoon, and I expect to post the talk this evening. This one is a bit longer; 25 minutes, plus whatever I add for lead-in/coda.
![]() |
The next session is Rowan Bunning talking about Scrum - Rowan's the Product Manager for SwS, so methodology is something he'd be interested in. |
Rowan started with Wizard (from which SwS was spawned). They've been a Smalltalk shop for the last decade, and he's been in the Information Services group (one of 5 there). They made a move from bespoke applications to products awhile back.
He learned about Scrum from Scott Ambler's presentation at the 2003 Smalltalk Solutions - he's become a Scrum Master and Mentor since. Scrum is used extensively at Wizard and Software with Style now. Why?
Scrum has executive backing at Wizard, and it delivers positive reinforcement to the developers. Smalltalk works really well for rapid development, which makes it even better.
Scrum uses a defined process - you try to make reality follow an upfront plan. It's also empirical - you continually adapt and adjust based on how things are going.
There are three Scrum roles:
At Wizard:
The rest of this session was a walk through of how they might take a task and move it through the cycle. An excellent point made: Avoid Critical Risk Tasks at the End of a Project. Words to live by in product development :)
Wondering what ESUG 2006 in Prague looked like this year? Check out Adriaan van Os' pictures.
Sun has picked up JRuby. Boy, you would think this dynamic language thing was important, or something. I did find two things to quibble with, one in the Ruby posting:
Will they [ed: The JRuby guys] work on JRuby full time?
Yes, but they also have a mandate to think about developer tools. Right now, developers who use dynamic languages like Python and Ruby are poorly served, compared to what Java developers have.
Perhaps Tim missed Smalltalk, which has always had superior tools.
Then, patrick Logan spotted this (via Jon Udell) from Jim Hugenin:
I'm not a dynamic language zealot, and in general I don't really understand zealots. I wrote the first three versions of the IronPython compiler in Python, but today it's written in C#. Part of the reason is that now I understand it, so the values of prototyping, and the looser thinking that really helped a lot in the early days, don't really help as much any more. Also there are now more people working on the compiler, and there are some real benefits to the static typing, and the support you can get from Visual Studio.
Well, I think Jim missed the boat there. Why? Well, it came up in Georg's talk about ObjectStudio 8 today. ObjectStudio 8 will be hosted inside VisualWorks, and the compiler (which was in C in classic OST) is now a subclass of the SmalltalkCompiler in VW. Why is that good? Because it made the whole process a heck of a lot easier: you write Smalltalk faster than C (or C#), period. It's also a heck of a lot more extensible that way. Having a language level compiler for Iron Python would have opened up a lot of cool things to developers; having it in C# just locks it away in useless-land.
Technorati Tags: dynamic+languages
Today, I interviewed Georg Heeg. he's got a long history with Smalltalk, and works very closely with Cincom now on Cincom Smalltalk - both in development and in services for our mutual customers. You can listen to the MP3 file here.
Technorati Tags: esug, smalltalk, objectstudio, visualworks, cincom, heeg
Enclosures:
[http://www.cincomsmalltalk.com/audio/heeg_interview_final.mp3 ( Size: 9460800 )]
It seems that the interests of the artists have more in common with the rest of us than with those of the RIAA or the MPAA:
On last night's episode of The Tonight Show, actor Ben Affleck revealed that he used his video iPod to help him prepare for his role in the upcoming movie Hollywoodland. Portraying the late George Reeves who starred as the original Superman, Affleck put every episode of the original series to his video iPod to he could watch them repeatedly in order to get a feel for Reeves' mannerisms.
Since the original Superman series is unavaiable through the iTunes Music Store, is can likely be assumed that Affleck acquired DVDs of the series and used his computer to "rip" them into iPod-compatible format. This is in stark contrast with the movie studios' collective claim that the simple act of ripping a legally purchased DVD into a computer is a violation of the law.
The RIAA and MPAA continue to bray at the moon, and continue to become less and less relevant..
This is neat - I got an article published in "Network Support" magazine. Click this link to see the cover, and then on the part of the cover that shows a Javascript jump to page 16. Click anywhere on the page to zoom and make it readable :)
Update: It appears that I have access to this, but most people don't. I'm not logging in, so I have no idea why.
I missed the HP story earlier this week, but boy - those guys stepped in it. In their zeal to find the source of an information leak, they started dumpster diving on their board members. That raises the obvious question: if they are willing to delve into the privacy of their own board members, just how far would they go with a blogger? Or a reporter? Or a line employee?
I think Scoble said it best:
I’m sure the board of directors at HP is hoping this one just blows over. Here’s a hint. It won’t. Until you get rid of Pat. A message MUST be sent that the ends do NOT justify the means.
Apparently, these bozos learned nothing from the Sony rootkit fiasco: trying to stay silent (or worse, as Sony initially did, trying to justify the mistake) just doesn't work. This is now a PR black mark, and someone is going to have to pay for it - just like someone at AOL had to pay for their mistakes.
Technorati Tags: marketing, communication
![]() |
First up Friday morning - Norm Green, Smalltalk engineering director at Gemstone. The main topic: Gemstone/64. Gemstone is a privately held firm, with a very experienced development team - many have been there 10-20 years. |
Brief background: Gemstone is an Object Oriented Database. Objects are stored in object format - there are no relational rows or columns, no O/R mapping. Gemstone supports ACID transactions. Gemstone is also a Smalltalk dialect - it comes with a complete set of kernel classes. The database contains the data and the behavior, which makes it a full multi-client, multi-language application server:
Why 64 bit? Customers wanted to get past the 4 gb of addressable memory limit:
For a 100 gb database, only 2% of the database can be cached, which can lead to issues - you only get 2-3 gb page cache (depends on the platform). They came up with a 2 phase project:
In phase 1, they improved performance, and addressed some of their garbage collection issues. They can now support very large page (shared) cache: up to 16 TB. That gives you a "database in memory" capability.
In the old design, old objects sometimes persisted, even when they shouldn't have. That's been addressed. Online backups are now safe, and garbage collection has been parallelized and improved greatly.
The biggest thing they did in phase 1 was a major change to the VM design (which is how the stuff above was accomplished). Norm has benchmarks for the improvements in performance. The entire rewrite took 15 months. The new VM is in use by customers in production.

In phase 2, they increased the possible size of databases - up to 32 TB in size. They further improved VM performance - 30-50 percent VM speed performance. By moving SmallIntegers to 2^60 from 2^29, they were able to add additional bytecodes. Doing more in a single bytecode improves performance. Additional extensions (new class: SmallDouble) are compatible with the 64 bit work being done on VisualWorks.
How do you upgrade? You need to be on Gemstone 6.1.5 or later. When they deployed to a major shipping client, performance improvements (DB side) of 30-50 percent were seen in the field, although there was an increase in the network load (larger bytecodes). The VW client runs slower (30-50 percent) because 64 bit ids become LargePositiveInteger objects. They are working on that, but it should also improve with 64 bit VW client (on their roadmap).
They currently support Solaris and HP - adding AIX and Linux (64) shortly. Their roadmap has a number of items for future performance improvements on it.
Mathieu van Echtelt of CosmoCows - here's the intro to his session. They've created a development environment on top of VisualWorks for building Business Administration systems.

Their systems are mixed, involving Smalltalk, and C, Javascript, HTML. They use Seaside to try and keep those under control - even with the Squeak VM, they use the Slang Smalltalk subset to do modifications. Their goal has been to build along the lines of the original Smalltalk design principles:
The rest of the session was a live demo
Rob Vens is talking about an interesting topic: building and distributing freeware using VW. I do that - BottomFeeder :) Rob's first language was Smalltalk, so even though he's not currently working with ST at work, he does shareware/freeware work in it.

Rob started doing these kinds of apps by making things he'd built for his own use available (personal finance applications to start with). Problems?
I identify strongly with all of those, as I face the same issues in my projects (BottomFeeder and Silt). More issues he encountered:
Tools: VisualStudio (scripting), 7-Zip, Xara3D, Axialis Icon Workshop, ResHacker for Windows exe files. His update scheme involves downloading and replacing the entire deployed image/executable.
For distribution, he uses his own website - you choose a platform and download.
Platform Compliance: this is always hard, as are icons, and version/readme file issues. Tracking bugs? User feedback? Not easily tracked, mailing lists didn't work out.
After ESUG wrapped up, I went out to jog, so I could find my way to the castle. Once I did that, I went back and walked up with my camera. Here's a view of the entry, looking at Kohl Fountain and the Chapel of the Holy Cross:
It's beautiful up on that hill, and if you visit Prague, make sure to head up there. I walked across the castle grounds, outside, and took this photo looking back at the gate:
Here's another shot of the same location, from further back:
Here's one more: A shot of St. Vitus Church:

I'll have another post in a few minutes with shots from the Mala Strana and old Jewish Quarter areas.
I walked from the castle down the hill and across the bridge to Mala Strana, an older part of town. The old Jewish Quarter (mostly empty of Jews since WWII) is in that area as well. Here's a small monument to 1968 I passed by:
Here's a monument erected after WWII, to commemorate the victims of the Nazi occupation:

On the same theme, here's an ad for the museum of communism: you can't read the lower text (bottom right), but it says: "directly above McDonald's ". Hilarious:

I fly back home in the morning - it'll be a long day.
James Governor quotes Bruce Schneier on which matters more to Microsoft: security holes, or DRM holes?
If you really want to see Microsoft scramble to patch a hole in its software, don't look to vulnerabilities that impact countless Internet Explorer users or give intruders control of thousands of Windows machines. Just crack Redmond's DRM.
Way to create good PR, Microsoft. The irony is, the patch has already been hacked. So, anyone else want the MS engineers to spend their time on something valuable? Or should they keep being the RIAA's butt boys?
Technorati Tags: security
The HP Board's probe snagged two CNet reporters along with the board members. meanwhile, I heard on the Buzz out Loud podcast (for September 8th) that Patricia Dunn was "shocked" to find out about the pretexting to get private data. Sure, sure - she's shocked in exactly the same way that the police chief in Casablanca was "shocked" to find gambling going on at Rick's Cafe.
Just how stupid does Patricia Dunn think we are?
Technorati Tags: news
Technorati Tags: stupidity
Awhile back, Troy sang the praises of Fair Trade Coffee. At the time, I expressed cynicism along these lines: If a commodity can have its market price raised by being tagged as somehow fairer, the motivation to game the system (in order to scheme even more profit from the commodity in question) would be overwhelming.
Well, color me unsurprised by the story in the Financial Times this morning: "Ethical Coffee Workers paid below market wages":
"Ethical" coffee is being produced in Peru, the world's top exporter of Fairtrade coffee, by labourers paid less than the legal minimum wage
I'm shocked, shocked to find out that there's gaming of the system going on. meanwhile, the Fairtrade people are utterly unwilling to deal with reality:
As the board member of one Peruvian Fairtrade-certified coffee producer told the FT: "No certifier can guarantee they will purchase 100 per cent of a cooperative's production,, so how can they guarantee that every bag will be produced according to their standards?"
I seem to recall making that point, and then being roundly criticized for it :) What Fairtrade mainly accomplishes is this: it provides a way to add markup at the consumer end without having to actually do anything at the producer end. The bottom line: if you buy Fairtrade coffee so that you can feel better about it, don't. Just buy the non-Fairtrade stuff, because all you're really doing is providing extra margin to the sellers. In fact, it's worse than that; you're providing them a huge incentive to screw you and the farmers over. To make that point more brutally obvious:
The FT has been told of Fairtrade coffee being planted in protected national forest land in the northern Peruvian jungle.
Using global satellite mapping, a Canadian NGO found that about 1/5th of all coffee production in one Fairtrade certified association was illegally planted in protected virgin rainforest.
Oops.
On my way out to ESUG, I ran into bozo security at BWI - including being told that the list of banned items is classified (never mind that you can view that list online, here). Well, not to be outdone, the security folks at Heathrow have also removed their capacity for thought.
Consider two things:
Here's the really stupid part about all this. The bozo security checks generate huge lines outside the secure area. What do you call a huge mass of people that have been herded into a central area, where there's no security check? I don't know what the morons at TSA call it, or what the equivalent set of morons in the UK call it, but I call it a target waiting for a bad actor to notice it.
Time for my weekly look at the logs - BottomFeeder downloads were brisk, at a pace of 232 per day:
| Platform | BottomFeeder Downloads |
| Windows | 583 |
| Update | 395 |
| Linux x86 | 184 |
| Mac X | 93 |
| CE ARM | 83 |
| Mac 8/9 | 80 |
| Windows98/ME | 51 |
| Sources | 30 |
| Solaris | 24 |
| Linux Sparc | 23 |
| HPUX | 22 |
| AIX | 21 |
| Linux PPC | 18 |
| SGI | 11 |
| ADUX | 7 |
Those are nice numbers - I plan to push a new release with all the bug fixes shortly. The HTML accesses:
| Tool | Percentage of Accesses |
| Mozilla | 50% |
| Internet Explorer | 36.6% |
| Planet Smalltalk | 5.6% |
| MSN Bot | 2.2% |
| Other | 2.2% |
| Opera | 1.4% |
| Megite | 1% |
| BottomFeeder | 1% |
Firefox edged up a bit. Finally, the RSS accesses:
| Tool | Percentage of Accesses |
| BottomFeeder | 27.3% |
| Mozilla | 16.4% |
| Other | 9.6% |
| Net News Wire | 8.3% |
| Safari RSS | 6.1% |
| BlogLines | 5% |
| Google Feed Fetcher | 4.1% |
| Internet Explorer | 3.8% |
| NewsGator | 3.7% |
| Planet Smalltalk | 1.9% |
| RSS Bandit | 1.6% |
| Opera | 1.4% |
| Liferea | 1.3% |
| Akregator | 1.3 |
| SharpReader | 1.2% |
| RSS 2 Email | 1% |
| JetBrains | 1% |
| News Fire | 1% |
| MSN Bot | 1% |
| Java | 1% |
| Lilina | 1% |
| BlogSearch | 1% |
And that wraps another week - the diversity of aggregation tools is still quite large.
Tim Bray has been looking for a new car, and has come to a conclusion on the UI issue - i.e, whether it's easier to switch computers, or cars:
The computers are, by and large, an easier switch than the cars. Yes, the pedals and steering wheel and shifter are consistent, but getting the windshield wipers to do what you want is a research project on every car, as is setting the interior lighting and adjusting the audio for bass, treble, and so on, and a bunch of other minor functions that you need to do all the time. But cutting and pasting and moving files and editing text and browsing the web and reading mail and improving photos and so on, these days that’s all much of a muchness, whatever computer you’re sitting in front of.
I have to say that I agree. I'm not shopping for a new car, but I rent them on travel a fair bit. A decade ago, it took me less time to get out of the rental lot. Now, I always make sure to spend a few minutes locating things like the seat adjustment, the radio controls, the wipers, defroster... you get the picture. You might wonder about the radio, but in my experience, even those are harder to deal with than they used to be.
Scoble hyped Amazon's Unbox the other day, and has now linked to a bunch of deeper (and not positive) reviews:
A couple of days ago I said that Amazon might be the fearsome Microsoft killer we were expecting Google to be. But after reading the latest reviews of Amazon’s new Unboxed, I should take that back.
Follow the link to Scoble's blog for the reviews - the one that sticks in my head was Friday's podcast from Buzz Out Loud - Tom Merrit was livid over the way Unbox works. He had a few large complaints:
His irritation came not with the phoning home, but with the fact that it did so without telling him. The DRM is what makes it useless though; why download something that can only be played in one viewer? I have a large scree TV; I probably want to use it. This is yet another example of the MPAA standing between customers and what they want, and it's not going to help their sales.
Update: Tom Merrit goes into great detail on the problems here, on his blog
The RIAA's scattershot strategy of suing anything that moves ran into a snag last week - they found a plaintiff that was unwilling to to pay his lunch money to make them go away:
In Elektra v. Wilke, the Chicago RIAA case in which defendant Paul Wilke has moved for summary judgment, the RIAA has filed a motion for "expedited discovery", alleging that it does not have sufficient evidence to withstand Mr. Wilke's motion. The RIAA's lawyer said
"Plaintiffs cannot at this time, without an opportunity for full discovery present by affidavit facts essential to justify their opposition to Defendant's motion.
Here, let me translate: "We didn't think we'd need any evidence. We intended to extort a few thousand dollars from this guy, and move along to the next victim. Since when do we need actual facts?"
Oh boy, my dishwasher has decided to take up smoking - again. Last time was an epic saga of marginal performance by Sears repair. The same symptoms happened this time, with smoke pouring out of the front panel. I'm fairly certain that it's no longer under warranty, but I'm on the phone now to verify that. If it is under warranty, I'll have to wait for the part again. If it's not, we'll be buying a new dishwasher. Maybe we can get something quieter...
Technorati Tags: dishwasher, sears
Over in the MSDN forums, Martin Unterholzner recently discovered Gemstone, and how much easier it makes life for the application developer:
Recently I started to work on a Smalltalk project using Gemstone as ODBMS. Gemstone goes one step further than other ODBMS systems like db4o. Gemstone does not even require an explicit query or storage operation of your objects into the DB. It is enough to make your business object subclass of PersistentObject such that it will automatically be stored and read. In this way, only minimal coding overhead is required enabling object persistence (almost) for free. However, for providing this powerful mechanism the database and the virtual machine need to be closely linked together.
With the integration of LINQ into .NET Microsoft is going to dramatically increase the value and the productivity of .NET. Nevertheless, I am wondering if Microsoft has the intention to develop a native ODBMS technology for .NET in the near future since, being the producer of the .NET framework, it has the opportunity to integrate a powerful object oriented database engine providing the same features as Gemstone does for Smalltalk.
Gemstone is the simplest thing that could possibly work for object persistence - it's a Smalltalk implementation and a database, so you can drive your objects right there on the server. What if you have a well entrenched RDBMS as the "database of record"? Well, Gemstone can act as an application server/cache in front of said DB, and drop data to it on a regular basis - they have RDBMS connectors for that kind of thing. There's a non-commercial version of Gemstone right on our NC CD, so you can download it and try it out.
Ahh, it's headlines like this that I like to see:
With the A.L.’s Best Record, the Yankees Are All Smiles
That's how things should be at this time of year :)
I commented on Unbox (Amazon's new video service) yesterday - today, I see that there's a pretty good summary on the problems available at Uninnovate:
Even though downloaded movies cost just as much as regular dvds, Amazon won’t let you watch the movies on your DVD player. Unbox allows you to back-up downloaded movies on blank DVDs, but the backups are encypted to prevent you from doing anything useful with them. Amazon has taken what was potentially the most compelling feature of Unbox and removed it from the service. This is classic uninnovation.
And how does Amazon want you to watch your expensive downloaded movies on your new HDTV? Amazon’s only suggestion is to buy a clumsy Windows Media Center PC and use an antequated s-video cable to connect it to your television. Welcome to picture quality circa 1995.
The bigger problem is that most PC's are nowhere near the TV, so running an S-Video cable is kind of pointless to begin with. Things get even worse - the license agreement they ship has some pretty egregious clauses - for instance, you have to agree to apply any and all patches Amazon ships for Unbox. Amazon also reserves the right to delete all your downloads if you uninstall Unbox (and uninstallation is no picnic - see Tom Merrit for that mess). To cap it all off, they can change your terms of service at any time. So, I can pay the same amount that a DVD costs me down at Target, only the DVD from Target will play on any device I own. This is one of the most stupidly crippled things I've ever heard of. Somewhere in the bowels of Amazon, there's a smart guy who made that point at a meeting 12 months ago - maybe if he or she is lucky, they'll have a chance to say "I told you so".
James Governor has the best description of DRM I've seen yet:
DRM is digital lard.
its greasy, opaque and is going to give a lot of users heart attacks.
That's simply brilliant :)
Technorati Tags: humor
I mentioned earlier that we rolled in the new website today. One thing that is not complete is all the url mappings. We've mapped many of them over, but some 404 responses are still out there. If you run into any, please send me the details.
Technorati Tags: smalltalk
This is interesting news - Sun has fully open sourced Strongtalk, including the VM. From the site:
Strongtalk development was halted before it was fully productized, so considerable work remains to polish-up Strongtalk before it is ready to be used in real-world applications. But with the release of the virtual-machine source code, a whole new world of possibilities has opened up. What will become of Strongtalk? Now, the answer is finally in the community's hands!
I'm sure that our VM engineers will have a look, but there's no telling what can be gleaned from this.
I'm in the process of putting together a new dev build of BottomFeeder. This should lead to a quick release of 4.3 - there were a number of bugs in 4.2 that I'd like to roll up into a general release. I'll have the dev build up later today, and - if everything looks good - roll a new release this week.
Update: the new dev build is up
There's more proof that a negative PR event can't just be brushed away - HP's Patricia Dunnis stepping down:
Hewlett-Packard Co. said Tuesday that Patricia Dunn will step down as chairwoman of the computer and printer maker in January amid a widening scandal involving a possibly illegal probe into media leaks. She will be succeeded by CEO Mark Hurd.
Hurd will retain his existing positions as chief executive and president and Dunn will remain as a director after she relinquishes the chair on Jan. 18.
"I am taking action to ensure that inappropriate investigative techniques will not be employed again. They have no place in HP, " Hurd said in a statement.
This is fairly fast for a large organization to move, but there was still the requisite round of denials and explanations from Dunn first (which only made things worse). It's a new world of PR now - 10 years ago, you only had to deal with the trade press (and maybe the general media if the firestorm got big enough). Now, there's the whole "Army of Davids" thing - which may not be enough to effect change all by itself, but can certainly generate enough heat and light to get the notice of everyone else.
Hey look - researchers have discovered the blatantly obvious: air travel helps spread flu:
Scientists have found what they call the first real evidence that restricting air travel can delay the spread of flu -- a finding that could influence government plans for battling the next influenza pandemic.
Air travel has long been suspected of playing a role in flu's gradual spread around the globe each year, but yesterday, Boston researchers said they finally have documented it: The drop in air travel after the September 11, 2001, terrorist attacks seemed to delay that winter's flu season by about two weeks.
In other news, the same crack research team announced that the sun rises in the east.
Technorati Tags: flu
Avi Bryant explains the nature of reality to Joel Spolsky:
Joel’s wrong. Yes, Ruby is slow, and yes, that has to do with Ruby’s naive implementation of method dispatch, but no, it’s simply not true that you can “never get something compiled down” to the point where it’s fast enough. A proper implementation of a duck typed language will get method calls down to a single jump plus a single compare, 95% of the time. There’s no vtable indirection needed, which means that it’s generally faster than C++, because branch prediction works and the pipeline doesn’t stall.
In general, Smalltalk can do message dispatch faster than C++. Read the rest of Avi's post for a complete explanation.
Technorati Tags: dynamic, smalltalk, ruby, c++, performance
This is interesting - apparently, you can execute a "super super" (starting as far up the chain as you like) in VisualWorks. Eliot Miranda posted this in comp.lang.smalltalk:
perform: selector withArguments: anArray startingAbove: aBehavior "Send the receiver the message indicated by the arguments, starting the lookup in the superclass of aBehavior. The argument selector is the selector of the message. The arguments of the message are the elements of anArray. Invoke messageNotUnderstood: if the selector is not understood by the receiver. Fail the primitive if aBehavior is not the class of anObject or any of its superclasses, or if anArray is not an Array with the same number of elements as the number of arguments expected by the looked-up method." <primitive: 515 errorCode: ec> ^self primitiveFailed
So to test that out, I defined a small hierarchy:
Object Grandpa Dad Son
Each implements a method #foo, which prints to Transcript, telling me who got executed. So, I ran these in a workspace:
son := Son new. son foo son perform: #foo withArguments: #() startingAbove: Son. son perform: #foo withArguments: #() startingAbove: Dad
As expected, the first prints the result from class Son. The second executes the one from class Dad, while the last line executes the one from class Grandpa. Kind of neat, but this is definitely a dangerous hack to rely on - especially if your runtime can have new classes inserted into a hierarchy via dynamic updates.
Technorati Tags: cst
Here's a question: who's paying for the bandwidth upgrade that YouTube just got?
"We selected Level 3 because we needed a carrier with a highly advanced, stable, scalable network and a service portfolio that would enable us to manage the magnitude of growth that we continue to experience with more than 100 million videos being watched per day on our site," said Steve Chen, chief technology officer and co-founder at YouTube. YouTube has been one of the Web's breakout hits, hitting the spotlight late last year with the popularity of the "Lazy Sunday" video from Saturday Night Live's Adam Samberg and Chris Parnell (which was later "reclaimed" by NBC and moved to its site). YouTube's subsequent popularity has led to substantial bandwidth requirements, estimated by some reports to cost up to $1 million a month.
Note the comment about NBC reclaiming popular content. I still don't know what the heck the business model for YouTube is, or how they intend to keep paying the bandwidth bills. Sure, they have tons of viewers. Monetizing that is an entirely different question though, and thus far, I just haven't seen anything.
I'll go back to something Jason Calacanis let slip on a Gillmor Gang podcast awhile back, too - if a big player were to buy YouTube, then the mother of all lawsuits would fall on them (copyright infringement) about a nanosecond after the deal was closed.
Update: John Dvorak made a similar point on August 30.
There's a fair bit of piling on Joel Spolsky this morning - I had a go at him here, after seeing Avi Bryant's post. This morning, there's a lot more - Bob Congdon, John Lam, DHH, and finally, Jeff Atwood, who asks (after a long list of Joel's most insane posts:
All of this makes me wonder: has Joel Spolsky jumped the shark?
I think there's a simpler explanation for this. Based on the success of his company, I very much doubt that Joel is an "in the trenches" developer anymore. He started the long march into the ranks of the formerly technical awhile ago, and now he's fully there - complete with idiosyncratic ideas based on out of date information.
It's clear that Joel knows his stuff when he talks management, product management, and marketing. It's less clear that he has anything useful to say about the practice of code production. That's not a bad thing - it simply means that he's no longer doing that work. Maybe it's time he recognized that.
Jon Udell notes the rising interest in dynamic languages.
Technorati Tags: dynamic languages
We've added another Smalltalker to the lineup here: Chip Dice. He'll be talking about practical issues surrounding Smalltalk use in a business environment.
Subscribe here.
Technorati Tags: blog
Cingular should have picked a better error message when they decided to start filtering out references to Engadget in their forums:
Oh, Cingular. We know you're pissed at us -- you stopped returning our phone calls a while ago after we posted that product roadmap we got our hands on -- but banning all mention of our name, as well as our URL, from your user forums is a little cheap and heavy-handed, don't you think? Guess you don't want your users making informed decisions about your service. Anyway, we must be doing something right, because here's the message users get when trying to post anything to Cingular's customer forums with the word "engadget" in it:
The message body contains the following prohibited content: 'Engadget' You must remove this content before submitting your post.
That just makes them look lame. You have to wonder about the brain wattage of the genius at Cingular behind that...
This would be funnier - if it weren't so close to the mindset of the RIAA and MPAA:
"The great thing about our product is that it puts an end to all those troublesome issues that can arise when so-called content is mixed in with valuable DRM," said Microsoft representative Christopher Dixon .
"We have found that it is easier if we remove the superfluous content part that has traditionally been included in digital downloads. This is DRM that works."
File under sadly true...
Technorati Tags: humor
Wired reports that iTunes 7 DRM is already cracked:
The latest version of Hymn can already remove DRM protection from songs purchased from the iTunes 7 store to enable playback on non-iPod players.
So let me get this straight: DRM irritates paying customers, and prevents them from moving their music around as they want to. Bad actors can move music around at will. So....
From a marketing perspective, exactly whose needs are met by DRM? The customer? No. The seller? No. Who then? RIAA members too stupid to read, perhaps?
The Yankees have the sort of problem most teams would kill for: more good players than there are spots to play them in. Matsui and Sheffield have been out for months, but both are back now. Their replacements have helped power the team to the commanding lead it has now, so - where to put them?
Technorati Tags: yankees