esug2006

## Cryptography for Smalltalkers

September 5, 2006 4:15:51.920

 After a good night's sleep, all I need is coffee :) First up today is Martin Kobetic, who's going to reprise his Smalltalk Solutions talk on Cryptography. He's going to cover various algorithms that we've implemented in Cincom Smalltalk, and how to use them with other systems. That's Martin on the left, starting his talk

Martin's giving a background on public key algorithms - the basic points are:

• Hard to derive the private key from the public key
• The keys are based on hard problems

The system is simple to use: You encrypt with the public key, and you decrypt with the private key. This way, anyone can encrypt, but only people with the private key can read the messages. Using this:

```
keys := RSAKeyGenerator keySize: 512.
allice := RSA new publicKey: keys publicKey.
msg := 'Hello World' asByteArrayEncoding: #utf8.
msg := alice encrypt: msg.

bob := RSA new privateKey: keys privateKey.
msg := bob decrypt: msg.
plain := msg asStringEncoding: #utf8.

```

Of course, you need to cooperate to generate the private key. You use the public key to establish a private key, and then you need to manage that. The above is just an example using RSA; we also support Diffie-Hellman and others.

There's also support for digital signing and hash functions, which can be used for:

• integrity
• authentication
• non-repudiation

The idea behind digital signatures is that they are authentic, non-reusable, and unalterable. You sign with a private key, and then verify with the public key. You get a boolean response as to the authenticity of the message.

```
"sign"
alice := RSA new privateKey: keys privateKey.
msg := 'Hello World' asBytArray.
sig := alice sign: msg.
sig asHexString.

"verify"
bob := RSA new publicKey: keys publicKey.
bob verify: sig of: msg.

```

We also support DSA, including the newer modifications to it. Using DSA is the same as RSA (above), using class DSA instead.

Technorati Tags: ,

Share

esug2006

## Bob Nemec on STIC

September 5, 2006 5:01:20.123

Here's Bob Nemec, talking about what's new with STIC. One of the cool things is that all the new STIC sites - Smalltalk Solutions, Smalltalk-Central - are Smalltalk powered (VA and VW, respectively).

And, of course, the new logo:

The specific color choices there are mine :)

Technorati Tags: , ,

Share

law

## The joy of legalese

September 5, 2006 5:14:49.192

Ed Foster shines a spotlight on an interesting clause in the Microsoft Windows XP EULA:

17. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL INJURY, FOR LOSS OF PRIVACY, FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD FAITH OR OF REASONABLE CARE, FOR NEGLIGENCE, AND FOR ANY OTHER PECUNIARY OR OTHER LOSS WHATSOEVER) ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OF OR INABILITY TO USE THE SOFTWARE, THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES, INFORMATON, SOFTWARE, AND RELATED CONTENT THROUGH THE SOFTWARE OR OTHERWISE ARISING OUT OF THE USE OF THE SOFTWARE, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY PROVISION OF THIS EULA, EVEN IN THE EVENT OF THE FAULT, TORT (INCLUDING NEGLIGENCE), MISREPRESENTATION, STRICT LIABILITY, BREACH OF CONTRACT OR BREACH OF WARRANTY OF MICROSOFT OR ANY SUPPLIER, AND EVEN IF MICROSOFT OR ANY SUPPLIER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Next, Ed explains what that means:

In plain English, what this paragraph means of course is that Microsoft isn't responsible for any damages caused by their software. But because the list of things the company is not responsible for includes breach of contract, LinuxAdvocate's article points out that this also means "Microsoft is not liable even if they break the terms of this agreement." I must have read this damage limitation paragraph half a dozen times, since it's common to many of Microsoft's EULAs, but that little irony had escaped me.

That's the sort of thing I'd expect from a loan shark, not from a vendor. Wow.

Technorati Tags: ,

Share

esug2006

## Quick Hits at ESUG

September 5, 2006 6:04:56.830

Next, some quick demos of various tools. Object History, which lets you keep track of things like past breakpoint history with an object (Francois Pujols)

Next, Dakar Testing, which extends SUnit and the RB (Karsten Kusche and Damien Cassou - both students) - all of the code they showed is in the public store.

Next, Alexandre Bergel on Realtalk - connecting Smalltalk to small devices (sensors with ~ 4k of storage) and driving/reading them:

Stefan Donolf on the MediaGenix SuperModel, which they use to capture the different models they use in their apps (domain, storage, XML, et. al.). They've done this in order to automate the generation of standard UI forms from their models.

Technorati Tags: ,

Share

events

## Smalltalk in LA

September 5, 2006 8:00:16.317

The Los Angeles Smalltalk User's Group is meeting:

LASTUG Meeting

Date:
Monday September 11, 2006

Time:
7:00 pm - 9:00 pm

Location:
High Tech High, Los Angeles - Meeting Room

17111 Victory Blvd
Lake Balboa, CA, 91406

Description:
There is usually an after meeting at Jerry's Deli on Ventura and Petit in Van Nuys that goes on to an indeterminate time.

If there is a problem getting there call Darius Clarke, Mike Klein or John Dougan for assistance. The phone numbers are in the LASTUG contacts database on Yahoo!.

Technorati Tags:

Share

esug2006

## The Art of Seaside

September 5, 2006 8:24:43.222

It's after lunch, and Lukas Renggli is up to talk about Seaside. This is a simple 10 steps "getting started with Seaside" demo. So for this, there's no templating, no "clean" urls, and most state is shared. That's not the way Seaside has to be done, but it's a simple way to get started. I don't have the ESUG DVD handy, which is too bad - there's a pre-built Seaside image on that CD (along with the Squeak VM).

The demo is a simple "To Do" app - two classes - ToDoItem and ToDoList. The demo is going to take that to the web with Seaside.

Seaside apps are built out of components - Views and Controllers. Components keep their state in instance variables. Yes, this is an example of MVC at work.

Step 1: Create a ToDoListView class. Add the boilerplate to register the application, and you get a base application in your browser at the name you registered. To get some content, you override the method #renderContentOn: to get some application speciic content. Rendering is a read-only phase (meaning: don't change state in this method!).

```
"assumes a model has been defined"
renderContentOn: html
html self model title.

"class method "
renderClass
"answer the specific render class here"

```

Note - this uses new APIs in Seaside. From here, you can start customizing the render method (and having the domain handle rendering for each component) as you wish - so you can get a list, etc. With a simple rendering, we get this:

The html object understands a bunch of things, so you can ask it to push out things like divs, css, etc via built in protocol. For instance:

```
html div
class: 'title'
with: self model title.

```

Built into Seaside are a bunch of convenience things in the browser that allow you to look at what's going on in the browser.

To get interactivity, you define callback methods. So:

```
html anchor
callback: [self inform: anItem due]
with: anItem title.

```

That will create a link, with the title showing. When the link is clicked, the callback block will fire. So what about forms?

```
"there's no need to specify #text: for submit buttons if you want the default"
html form: [html textInput
value: text
callback: [:value | text := value].
html submitButton text: 'Save'].

```

There are convenience methods for the various html form elements - checkboxes, etc. Now, component replacement: Call

```
"Assumes the creation of ToDoItemEditor, which will know how to render itself"
edit: anItem
self call: (ToDoItemEditor new model: anItem)

edit: anItem
result := self call: (ToDoItemEditor new model: anItem copy).
result ifNil: [^self].
self model items replaceAll: anItem with: result.

```

You can nest components as much as you want. What are the benefits of Seaside?

• No url fiddling
• No state serialization
• Implemented complex workflow
• separated design and logic

Technorati Tags: , ,

Share

esug2006

## Code Optimization

September 5, 2006 10:44:52.135

 Next up, after a coffee break: Code Optimization with Adriaan van Os of Soops. He's working on their rule-based data warehouse application - a decentralized coupling of the electricity markets (Netherlands) with VW. The latter is calculation intensive.

Optimization is hard, and it's hard to predict where the problems are. Sometimes, you can make an application harder to extend and maintain after optimization. You can also run into problems with platform specific code (using tools like VW).

Advice: Concentrate on the design first, and optimize if you have to. To analyze:

Time millisecondsToRun: ["code here"]

{Multi)TimeProfiler (VW)

(Multi)AllocationProfiler (VW)

If you do timings, run the test multiple times and average. Things that will pop out: LargeInteger use, running into the allocation ceiling. It's still hard to get consistent results. When you do see the profiler, you need to filter out areas you don't care about.

bear in mind as well - there are "special" selectors in VW (and other Smalltalks) which get optimized. You can actually change that - look in DefineOpcodePool for details. There are also optimized selectors that will be inlined - see MessageNode class.

Even with all this, trust the results you get from actual profiling and timing - don't make assumptions about what "should" be faster.

It helps to keep Blocks "clean" - declare variables in the innermost scope, don't return from inside them. With numbers, avoid fractions and large integers unless you can't, and use Doubles. Also, this:

10.0 * 10

is faster than

10 * 10.0

Put the higher generality first. With collections, avoid intermediate collections and repeated iterations. Pre-size them if you know "about" how big they should be.

Another thing to bear in mind: optimization "tricks" (like message A is faster than message B) can change across releases of your Smalltalk product. It also helps to pick the right collection (i.e., IdentitySet or Set, IdentityDictionary/Dictionary) based on what keys you plan to use.

If you have lots of conditional statements, you might well have too few classes and too little polymorphism. If you need a "case" statement, put the common cases at the top.

Caches often help, but keep them simple, and make lookups fast. You don't want to give back in lookup.

For Gemstone, most of this applies, but there are a few more things:

• Objects may be on disk, not in memory
• make use of identity because of that
• Objects may be distant (network/disk) - minimize copying/replicating
• GC is harder with shared objects

Now he's giving some examples, with results. I'm not copying that all down :) The idea here is, check the results!

Recommendation: Travis Griggs' StS talk.

Share

cincom

## Cincom Press Releases

September 5, 2006 18:40:31.023

You can track Cincom's Press Releases in your news aggregator again - subscribe here. Powered by Cincom Smalltalk, of course :)

Share

esug2006

## Tuesday Evening at ESUG

September 6, 2006 4:05:11.037

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

And here are Martin Kobetic and Suzanne Fortman:

Share

esug2006

## Silt at ESUG

September 6, 2006 4:09:28.111

I gave my talk on the Silt server this morning - Suzanne took some shots while I spoke:

Technorati Tags: , ,

Share

esug2006

## Mondrian

September 6, 2006 4:22:52.204

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.

Share

esug2006

## Innovation Awards at ESUG

September 6, 2006 7:24:53.240

There were 8 competitors for the Innovation Awards this year, and here's how it came out:

1. Plopp (Squeak)
2. Mondrian (VW)
3. SqSquare (Squeak)

And here are a couple of shots I took - Noury announcing, and then the three award winners:

Technorati Tags: ,

Share

esug2006

## UbiquiTalk

September 6, 2006 8:04:15.852

 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:

• Dynamic set of devices - devices can join/leave the network at any time
• Software may be added/removed/suppressed at any time
• Network may be Ethernet, WiFi, Bluetooth...
• Very heterogeneous hardware mix with varying specs

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.

• Remote Communication: must be IP based
• Automatic Discovery: detects connect/disconnect
• Services Registry: White pages (name), Yellow pages (description)
• On demand deployment at runetime: (to do) - automated download and installation of services clients

Service Definitions:

• Application Entry Points
• Reactive or proactive
• 3 parts: provider, client (typically GUI), administration
• GUI: Targeting various devices

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 :/

Technorati Tags: ,

Share

travel

## Around the Hotel

September 6, 2006 15:31:26.837

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.

Share

travel

## Charles Bridge

September 6, 2006 15:43:38.308

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.

Share

travel

## King Wenceslaus

September 6, 2006 15:59:55.686

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):

Share

spam

## Why I don't use Captchas

September 6, 2006 16:22:52.981

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.

Technorati Tags: ,

Share

podcast

## Interview with Rowan Bunning

September 6, 2006 18:29:33.580

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.

Share

esug2006

## Georg Heeg: Integrating Smalltalk Systems

September 7, 2006 4:16:19.609

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:

• ObjectStudio and VW are Smalltalk systems
• Both owned by Cincom
• VW is descended from the same source as Squeak (ST-80, Xerox PARC)
• ObjectStudio was developed under the name Enfin, and was originally designed as an "Enterprise OO Development Environment"

Enfin

• Ease of use
• Enterprise integration

VisualWorks

• Execution speed
• Sophisticated meta-model

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:

• Compiler
• Debugger
• Namespaces

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:

• Direct Primitives
• Numbered Primitives - <primitive: 123>
• Named Primitives - <osprim: MFC openWindow>
• Module/EnfinModule
• ExternalProcedures

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

• Processes run at different priorities
• Windows Events are handled (almost) any time
• Shared queues move events to the target processes
• Implemented in C

ObjectStudio

• The caller of all execution is the Windows event model
• All message sends in the ASendQueue are executed when the Windows Event is empty
• Implemented in C++

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:

• In OST, Smalltalk message sending is slow, while calling C is "free"
• In VW, message sends are fast, while calling C is expensive
• This has driven different optimization schemes :)

Another issue: file-in some .st code in VW:

• If a load takes 1000 seconds
• 900 are refreshing the RB
• Of 100 seconds
• 90 are repeatedly relinking the system
• Of 10 seconds
• 9 are disk flush
• 1 second compiling

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:

• Immutability
• Declare pool dictionaries
• In the modeling tool, export in ASCII (binary format is incompatible)

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?

Technorati Tags: ,

Share

esug2006

## Erlang

September 7, 2006 5:49:24.844

 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:

• create large numbers of processes
• work the same on different OS's
• are garbage collected
• are location transparent
• cannot damage other processes
• are defined in the language
• creating and destroying processes should be lightweight

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:

• No sharing
• pure message passing
• no locks

Sharing gets in the way of fault tolerance. This gives us Concurrency Oriented Programming:

• A style where concurrency is used to structure the programming
• large number of processes
• complete isolation of processes
• no sharing of data
• location transparency
• pure message passing

So the design rules:

• Identify the concurrent operations in the problem
• identify the message channels
• write down the set of messages seen on each channel
• write down the protocols
• write down the code

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:

• Highly concurrent - hundreds of thousands of parallel activities
• Real time
• Distributed
• High Availability - down times of minutes/year - never down
• Complex Software - millions of lines of code
• Continuous Operation - years
• Continuous Evolution

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.

Technorati Tags: , ,

Share

itNews

## Bursting the Vista Bubble

September 7, 2006 6:18:15.909

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.

Technorati Tags: ,

Share

esug2006

## Seaside for Web 2.0

September 7, 2006 8:10:59.810

 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: XHTML CSS RSS AJAX

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.

Technorati Tags: , , ,

Share

podcasting

## Another podcast coming

September 7, 2006 9:32:37.223

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.

Technorati Tags: ,

Share

esug2006

## Scrum in Practice

September 7, 2006 9:57:51.158

 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.

"Slice it like Sashimi"

There are three Scrum roles:

• Product Owner - represents customer, users
• Scrum Master - guides process
• Scrum Team - 5- 10 people - multi-disciplinary, builds product - self organizing

At Wizard:

• 2 Week Sprints
• 2-4 hour reviews and meetings
• retrospectives integrated into review
• task allocation often left open
• testing on development server - bug reports from tool
• transition to QA server - formal change tracking

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 :)

Technorati Tags: , , ,

Share

esug2006

## ESUG 2006 Pictures

September 7, 2006 10:01:08.716

Wondering what ESUG 2006 in Prague looked like this year? Check out Adriaan van Os' pictures.

Technorati Tags: , ,

Share

development

## Microsoft has Iron Python...

September 7, 2006 15:03:11.112

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:

Share

podcast

## An Interview with Georg Heeg

September 7, 2006 15:07:34.171

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: , , , , ,

Share

DRM

## "For the Artists" Explained

September 7, 2006 15:23:09.164

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..

Share

media

## Article Published

September 7, 2006 15:40:16.817

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.

Technorati Tags: ,

Share

PR

## A new candidate for worst negative PR Event

September 7, 2006 15:52:45.513

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: ,

Share

esug2006

## Gemstone 64

September 8, 2006 3:41:06.915

 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:

• Smalltalk: VW and VA
• Java
• C/C++
• Unix shell (topaz)

Why 64 bit? Customers wanted to get past the 4 gb of addressable memory limit:

• 2-3 gb page cache limit
• 1 billion object 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:

1. Phase 1: 64 bit address space
2. Phase 2: 64 bit object identifiers

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.

Technorati Tags: , ,

Share

esug2006

## Rethink Smalltalk

September 8, 2006 4:58:14.909

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:

• Personal Mastery: "If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual" (Dan Ingalls)
• Storage Management: "To be truly object oriented, a computer system must provide automatic storage management" (Dan Ingalls)
• Reactive Principle: "Every component accessible to the user should be able to present itself in a meaningful way for observation and manipulation" (Dan Ingalls)

The rest of the session was a live demo

Technorati Tags: ,

Share

esug2006

## Packaging freeware/small apps in VisualWorks

September 8, 2006 6:00:17.525

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?

• Small team (just yourself, usually)
• Lack of free time
• High but inconsistent release schedules
• Anonymous user community
• As many platforms as possible
• Bug and feature driven
• Very much depending on user feedback

I identify strongly with all of those, as I face the same issues in my projects (BottomFeeder and Silt). More issues he encountered:

• Packaging
• Distribution
• Installation
• Platform Compliance
• Versions, bugs, feature requests
• User feedback
• Licensing
• Making some money?

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.

Technorati Tags: ,

Share

travel

## Prague Castle and Mala Strana

September 8, 2006 15:54:31.976

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.

Share

travel

## Around Mala Strana

September 8, 2006 16:07:52.170

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.

Share

DRM

## Security vs. DRM

September 8, 2006 16:16:54.933

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:

Share

PR

## The HP thing gets worse

September 9, 2006 14:37:26.976

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:

Technorati Tags:

Share

news

## Fair Trade Coffee: A sham

September 9, 2006 14:43:21.707

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.

Technorati Tags: ,

Share

travel

## Silly Security, Part II

September 9, 2006 14:44:37.252

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:

• In Prague, the fellow in line in front of me had a huge bottle of orange soda in his laptop bag. No problem - on the plane to the UK he went. Apparently, bad actors only care about flights between the US and the UK
• At Heathrow, I arrived with my laptop bag and a small paper bag. The bag held my headphones and camera bag, because I didn't want to crush either one. Nope: one bag limit. I could carry my book, drape the headphones around my neck, and stuff the camera into my laptop bag, so long as I only had one bag. What that did to improve security, I have no idea.

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.

Technorati Tags: ,

Share

logs

## Weekly Log Analysis: 9/9/06

September 9, 2006 18:55:12.566

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.

Share

general

## UI Consistency

September 10, 2006 9:27:51.590

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.

Technorati Tags: ,

Share

DRM

## Unboxed: undone by DRM

September 10, 2006 9:35:57.222

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:

• The files that come down play only in the Amazon player
• Amazon's software runs at startup whether you want it to or not
• Amazon's software tries to phone home at startup (probably for updates)

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

Technorati Tags: ,

Share

law

## Evidence? Who needs Evidence?

September 10, 2006 10:13:29.577

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?"

Technorati Tags: ,

Share

general

## Oh boy, dishwasher part II

September 10, 2006 10:33:30.493

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: ,

Share

smalltalk

## The value of simple

September 10, 2006 15:29:23.858

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.

Technorati Tags: ,

Share

sports

## Things are back to normal

September 11, 2006 0:51:30.335

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 :)

Technorati Tags: ,

Share

news

## Remember

September 11, 2006 7:39:27.969

A solemn day for all Americans

Technorati Tags:

Share

DRM

## Unboxed and Un-Smart

September 11, 2006 7:51:57.068

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".

Technorati Tags: , , ,

Share

DRM

## Best Description of DRM Ever

September 11, 2006 7:56:53.473

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:

Share

cst

## The new website is live

September 11, 2006 15:14:57.161

The new version of our website is now live - if you navigate here or here, you'll land on it. There's an RSS feed available, so you can follow changes in your aggregator as well. We expect to have more CSS options for the site soon - in the meantime, enjoy the upgrade.

Technorati Tags: ,

Share

cst

September 12, 2006 0:23:36.689

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:

Share

smalltalk

## Strongtalk goes open source

September 12, 2006 9:34:14.883

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.

Technorati Tags: ,

Share

BottomFeeder

## New BottomFeeder build coming

September 12, 2006 10:43:20.301

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

Technorati Tags: , ,

Share

PR

## Dunn is Done

September 12, 2006 11:31:30.777

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.

Share

news

## In other news of the obvious...

September 12, 2006 11:53:13.342

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:

Share

development

## Explaining the Nature of Reality

September 12, 2006 15:29:21.690

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: , , , ,

Share

smalltalk

## Variant Method lookup in VW

September 12, 2006 19:55:12.117

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
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:

Share

itNews

## Who's paying for that?

September 12, 2006 20:12:05.375

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.

Technorati Tags: ,

Share
-->