gadgets

Another PS3 Hit

August 31, 2006 9:31:45.545

Here's a problem for the upcoming PS3 that Sony can't do much about: manufacturing problems with the laser components:

Things are looking dicey for both HD DVD and Blu-ray, because a key component has suddenly become scarce: blue laser diode yield rates are only 30% according to Nichia, a company responsible for 80% of the blue laser diode supply. The diodes are used in both HD DVD and Blu-ray players, and the shortfall will severely limit the number of players that can be shipped.

It could be even worse: if this rumor is true, then the PS3 will be delayed (at least in quantity) past Christmas:

Sources said only Pioneer and Plextor are currently able to maintain shipments of products using the blue diodes, with Toshiba soon joining them. Another source says any new models using those diodes might be postponed until 2007.

Hat tip Scoble.

Technorati Tags: ,

 Share Tweet This

spam

Blacklists and Email

August 31, 2006 10:05:19.992

Ed Foster classifies Comcast's inability to properly handle blacklists as a preview of non-neutrality. The problem:

A reader who is a Comcast broadband customer had a disturbing experience recently. "I'm at a total loss about how to handle this situation," the reader wrote. "An e-mail to me from a friend got bounced apparently by Comcast. He resent it to my G-Mail account so I could see it. It said that his message was "Blocked for abuse. Please send blacklist removal requests to blacklist_comcastnet@cable.comcast.com ' among other stuff. So apparently there exists a Comcast blacklist that I cannot control that stops e-mails and that requires my correspondents to ask to be permitted to send me messages."

I like his summary better than his introduction - there, he figures that this is almost certainly incompetence. I wouldn't be surprised if it's fear of a lawsuit. Say customer A gets a message (or more than one) from someone, and he complains to Comcast that the message is "hate mail". I can definitely see scared management talking to overly excitable lawyers first, and blocking an entire domain. I can see the same thing happening with overly aggressive spam filters.

Heck, here at Cincom, the spam filters have been improperly tuned - they were junking all mails that had snippets of Smalltalk code in them. That made things real easy for support, I can assure you.

The root of this problem has very little to do with neutrality, and everything to do with an over-reliance on automation. Spam detection tools are just that: tools. I think too many shops just crank up the settings and never bother to look at the results - they never realize what the false positive rate looks like. That's a management issue, not a technical one.

Technorati Tags:

 Share Tweet This

web

Social Software as fad?

August 31, 2006 10:30:49.464

Nick Carr quotes Ryan Carson on social software:

I just don’t have time to use all of these amazing apps, and I’m guessing you might not too. I’m a fairly typical web citizen. I’m 28, married, make a reasonable wage, own a house and I have a few close friends. You’d think I’d be a web app company’s dream, but I’m not. How come? I’d love to add friends to my Flickr account, add my links to del.icio.us, browse digg for the latest big stories, customise the content of my Netvibes home page and build a MySpace page. But you know what? I don’t have time and you don’t either.

I think I have to agree with that. I started using del.icio.us about a year ago; I stopped after a few weeks, because the extra effort didn't seem worth it. Heck, I only just started using technorati tags in my blog posts recently, and I've had support for it in my posting tool for awhile.

The current mix of social software seems to me a lot like the last big fad, which centered around services like LinkedIn. Other than responding to other people's requests for a link, I haven't had anything to do with it. The bottom line is, these things take effort to use. Not tons, but effort. It's simpler to just not bother.

I'm sure that some people find these apps useful and compelling. I'm not one of them though, and I'd guess that most people aren't.

Technorati Tags: ,

 Share Tweet This

blog

Text Resize works for IE now

August 31, 2006 13:24:46.876

I went through the style sheets, and changed all the absolute font sizes to percentages - which makes the text resize option in IE work for the blogs here. I may not have the various sizes perfect yet; I'll have to systematically go through and eyeball it

Update: I restored the original themes for water, air, impact, fire, and plastics - they just looked wrong. I'll have to do a lot more testing. So, if you use IE and want to resize text, I'd recommend using the Cincom, Cst, or Stic themes.

 Share Tweet This

sports

Guilty Pleasures

August 31, 2006 18:23:01.631

I have to admit: watching the Red Sox meltdown has been a real pleasure. As a Yankee fan, it's especially enjoyable (even more so after 2004). It seems that this guilty pleasure is not limited to Yankee fans though:

But the Red Sox losing five straight to the Tampa Bay Devil Rays and Kansas City Royals, then following that with two six-game losing streaks, the first including that five-act meltdown against the New York Yankees, the second still going as this is written -- and if I type fast enough the losing streak will still only be six when I finish: It's not a Yankees swan dive but we'll take it around here as the next best thing, the fall of the Evil Empire Mini-Me.
This is fun because, aside from watching your own team win and luxuriating in the schadenfreude of witnessing a Yankees loss, nothing is more fun than watching the Red Sox disintegrate.

Well, except for that part about the Yankees, yeah :)

Technorati Tags: , ,

 Share Tweet This

management

You can't hide anymore

August 31, 2006 21:20:07.944

It used to be that companies could quietly bury costs in a contract, secure in the knowledge that few would notice - and that the only pressure they would face would be a few cranky (snail) mails.

Those days are gone, thanks to the net - blogs and podcasts in particular. I heard about Verizon and BellSouth deciding to keep bozo charges on their DSL bills after a regulatory change - and there was plenty of other noise about it - Engadget fills us in:

In case you haven't been following the exciting world of telecom regulation lately (and really, why would you?), the FCC recently mandated that DSL providers no longer have to pay into the Universal Service Fund that's meant to subsidize rural and low-income phone service (and that may induce all kinds of pork-barrel spending, but that's a whole other story right there). Anyway, the elimination of this surcharge was supposed to be passed along to consumers in the form of lower monthly bills -- and many companies, including AT&T and Qwest, did just that -- but the sneaky suits over at Verizon and BellSouth decided to keep charging customers almost the exact same fee, though for different reasons. Verizon claimed that it had "developed new operating costs" in the previous year, justifying this so-called "supplier surcharge," while BellSouth began calling theirs a "regulatory cost recovery fee" -- even though the USF contribution regulation no longer existed.

These are the kinds of stupid vendor tricks that used to work, and don't work any longer. There are still plenty of suits out there that haven't caught up yet though.

Technorati Tags: ,

 Share Tweet This

development

How to just get by

September 1, 2006 0:53:27.014

Joel Spolsky gives development advice that boils down to this: whatever you do, don't try anything different - you wouldn't want a competitive advantage or anything:

Last summer when we had a group of interns build Copilot , we had to decide what language to use for new code. I know that typically on new projects there's a long evaluation period where you decide what technology to use, along with lots of debates that include some crazy person actually wasting quite a lot of time evaluating Squeak and Lisp and  OCaml  and lots of other languages which are totally, truly brilliant programming languages worthy of great praise, but just don't have the gigantic ecosystem you need around them if you want to develop web software. These debates are enormously fun and a total and utter waste of time, because the bottom line is that there are three and a half platforms (C#, Java, PHP, and a half Python) that are all equally likely to make you successful, an infinity of platforms where you're pretty much guaranteed to fail spectacularly when it's too late to change anything (Lisp, ISAPI DLLs written in C, Perl), and a handful of platforms where The Jury Is Not In, So Why Take The Risk When Your Job Is On The Line? (Ruby on Rails).

Yep, be like everyone else, building on exactly the same frameworks - there's the ticket.

Alternatively, you could try the route Avi's taken with DabbleDB...

Ironically, it seems that in his own shop, he doesn't exactly follow his own advice:

Finally -- as to what we use -- Copilot is C# and ASP.Net, as I mentioned, although the Windows client is written in C++. Our older in-house code is VBScript and our newer in-house code is C#. FogBugz is written in Wasabi, a very advanced, functional-programming dialect of Basic with closures and lambdas and Rails-like active records that can be compiled down to VBScript, JavaScript, PHP4 or PHP5. Wasabi is a private, in-house language written by one of our best developers that is optimized specifically for developing FogBugz; the Wasabi compiler itself is written in C#.

Hmmm - a custom development language that is specifically designed to solve their problems. Hmmm.

 Share Tweet This

web

Second thoughts on Social Sites

September 1, 2006 1:23:55.990

Well, I guess you can file this report from Techcrunch under "what do I know, anyway":

New Hitwise findings indicate that MySpace sent more US traffic to online retail sites last week than MSN search, the third largest search engine on the web. That’s big news, as it’s tangible evidence that youth oriented online social networking is a market driver of serious proportions.
The Hitwise report puts Yahoo! as the source of 4.69 percent of traffic to online retail sites, MySpace as 2.53 percent and MSN search at 2.33 percent for the week ending August 26th. Google leads the pack at 14.93 percent.

I guess the commenters under my earlier post on this were on to something :)

Technorati Tags:

 Share Tweet This

PR

This is odd

September 1, 2006 10:35:48.841

Well, I wonder about this: Tom Foremski passes on a tidbit from Waggner Edstrom, the PR firm that works with Microsft (and has for quite awhile):

Paul Abrahams works very closely with Microsoft and is in Seattle on a regular basis, advising the software giant on many strategic aspects of its operations. I haven't heard from Paul in a while, so it was a delightful surprise when he called me just an hour ago.
What he wanted to tell me was that he had written a column for the UK PR Week trade publication on blogging. "I've mentioned you in it," he said. "But I've basically said, regarding all this stuff about blogs, I just don't get it..."

Either Waggoner is trying to be cute, or there's some delicious irony there, given how open Microsoft has been with blogging.

Update: Waggener Edstrom responds

Technorati Tags: ,

 Share Tweet This

management

When Elephants Dance

September 1, 2006 10:51:34.817

Stories like this are just fascinating to me. The studios are getting nervous, because Apple wants to offer movies for download, and Wal-Mart is unhappy with what that will do to the wholesale prices (Wal-Mart is the major retail vendor for DVDs in the US).

The Elephants can dance on this one, and the prices should fall for consumers either way. That's a good thing.

Technorati Tags: , ,

 Share Tweet This

development

Joel Gets Hammered

September 1, 2006 11:06:57.971

Via Less is Better, David Heinemeir Hansson gets the Board of Education out for Joel Spolsky - read the whole thing, it's well worth it. I love his summary:

So Joel and friends invented their own language, which has to reasonably compile to three and a half different ones. Yes, they're building their Serious Business Stuff application on a 1-off, closed language. So please do as I say, not as I do, dammit. And pick something mainstream and "safe".
I swear I couldn't make this stuff up even if I tried. Joel, you're my new hero of irony. And as soon as you start selling those t-shirts with "Serious Business Stuff", I got green ready to flow. Short of that, I'd take a red teddy bear with the embroidering "Someone is Going to Get Fired".

Oh, and let me address something that I wasn't specific about in my post on this - his FUD on Smalltalk (and Lisp, Ruby, etc)

Last summer when we had a group of interns build Copilot, we had to decide what language to use for new code. I know that typically on new projects there's a long evaluation period where you decide what technology to use, along with lots of debates that include some crazy person actually wasting quite a lot of time evaluating Squeak and Lisp and OCaml and lots of other languages which are totally, truly brilliant programming languages worthy of great praise, but just don't have the gigantic ecosystem you need around them if you want to develop web software.

So let me get this straight, Joel: having one of your developers build a custom language (bus count: 1) is a better idea (with a bigger "ecosystem") than using Smalltalk? Or Lisp? Or Ruby? Sheesh, I'd call that stupid, but I'd be insulting all the stupid people that way. This goes down from stupid, straight into stoooopid.

Let me know how things work out on that when your Wasabi guy moves on to the next great opportunity.

Technorati Tags:

 Share Tweet This

events

Come to the Cincom Smalltalk User's Conference

September 1, 2006 22:10:55.123

The second worldwide Cincom Smalltalk User Conference is approaching. The conference will be held in Frankfurt, Germany, December 5-7:

December 05-07, 2006
Frankfurt, Germany
Moevenpick Hotel Frankfurt City

More details can be found here.

If you want to ensure you’ll be on the mailing list for further details on the user conference and/or the workshop, please e-mail infode@cincom.com

.

Click here to register.

Technorati Tags: , ,

 Share Tweet This

development

About the first rule of holes

September 1, 2006 22:52:42.832

Joel Spolsky follows up on yesterday's FUD, and immediately steps into the quicksand:

Since we are not blub programmers, we like closures, active records, lambdas, embedded SQL a la LINQ, etc. etc. and so those are the kinds of features we put into Wasabi.

You have to love that - "we are not blub programmers". As opposed to everyone else who reads his blog, apparently. From yesterday:

These debates are enormously fun and a total and utter waste of time, because the bottom line is that there are three and a half platforms (C#, Java, PHP, and a half Python) that are all equally likely to make you successful, an infinity of platforms where you're pretty much guaranteed to fail spectacularly when it's too late to change anything (Lisp, ISAPI DLLs written in C, Perl), and a handful of platforms where The Jury Is Not In, So Why Take The Risk When Your Job Is On The Line? (Ruby on Rails).

He spends the rest of the post trying to backpedal from yesterday's silliness, and trying to explain why the approach they use is a good one. For instance:

Should you write your own compiler? Maybe, if you're doing something that's different enough from the mainstream and if there's no good off-the-shelf technology for your problem. There's a good chance that the domain you're working in could really use a domain-specific language.

Sure Joel, bug tracking systems are so very, very far outside the mainstream of development. No one else has ever thought to write such an application. At the end of the day, he's really saying this: he and his team are just soooo brilliant that they can handle this extra complexity. The rest of you? Nah, you can't handle it (or worse, you might be able to compete with him, especially if you set up shop somewhere less expensive than NYC) - so you dummies better stick with Java (et. al.).

To quote Bugs Bunny: What a Maroon.

Update: Chris Petrilli piles on with some good points.

Technorati Tags:

 Share Tweet This

logs

Weekly Log Analysis: 9/2/06

September 2, 2006 9:20:59.361

It's the end of another week, and the effective end of summer here in the US. School has either started (or is starting Tuesday), which is it - you can tell by the way all the community pools close or sharply reduce hours. Anyway: the logs for last week. BottomFeeder downloads proceeded at a decent clip, 214 per day:

Platform BottomFeeder Downloads
Windows 602
Update 225
Linux x86 160
Mac X 96
CE ARM 86
HPUX 73
Mac 8/9 63
Solaris 52
Windows98/ME 47
Sources 43
AIX 18
Linux Sparc 14
Linux PPC 11
SGI 8
ADUX 3

Those look mostly normal, slight uptick for Windows. On to the HTML page accesses:

Tool Percentage of Accesses
Mozilla 44.6%
Internet Explorer 36.6%
Planet Smalltalk 6.3%
Other 6.3%
MSN Bot 3.8%
Opera 1.3%
Megite 1.1%

Those look the same as usual. With IE slowly creeping up, I guess it's a good thing that some of the templates here support IE better. Finally, the RSS accesses:

Tool Percentage of Accesses
BottomFeeder 26%%
Mozilla 16.2%
Other 11.6%
Net News Wire 7.9%
Internet Explorer 5.9%
BlogLines 5.8%
Safari RSS 5.8%
Google Feed Fetcher 3.9%
NewsGator 3.6%
Planet Smalltalk 1.6%
RSS Bandit 1.4%
Opera 1.2%
SharpReader 1.1%
MSN Bot 1%
News Fire 1%
Liferea 1%
RSS 2 Email 1%
JetBrains 1%
BlogSearch 1%
Java 1%
Reddit 1%

And that's a wrap on another week. I'm heading to Esug tomorrow, and to a party this afternoon - posting will be fairly light

 Share Tweet This

music

Could have been a game changer

September 2, 2006 9:30:48.473

When I saw the headlines - Myspace selling unprotected mp3s - I thought that maybe we had a game changing event happening:

In a direct challenge to Apple’s iTunes, MySpace has announced its intention to sell songs from the 3 million unsigned bands on MySpace.com. Even more surprising: the songs will be sold as unprotected MP3s, free from DRM. MySpace co-founder Chris DeWolfe told Reuters: “Everyone we’ve spoken to definitely wants an alternative to iTunes and the iPod. MySpace could be that alternative.”

That sounds interesting, and it definitely looks like a way for unknown bands to get a leg up - which is something I posted on the other day. However, reality set in by paragraph 2:

Mashable readers won’t be surprised to learn that the new feature will be powered by Snocap, the music distribution service from Napster founder Shawn Fanning. Snocap only recently launched a MySpace music player, which allows users to buy unprotected songs via Paypal. Snocap charges the artists a small distribution fee, and most of the tracks are DRM-free. Unlike the fixed-price model of iTunes, artists on Snocap set their own price. Once the service is live, DeWolfe wants to add copyright-protected songs from major record companies, and it’s rumored that MySpace has spoken to EMI regarding the move.

The pricing model looks interesting - a real market will open up that way, if Myspace goes through with that model. My cynicism kicked in with the major label bit - and copyright protection. That will mean yet another DRM scheme, and who knows what devices it will and won't work with.

Even with that, this is interesting news. If nothing else, it's punching some holes through the current layer of value subtracting middle men in the music industry.

Technorati Tags:

 Share Tweet This

humor

How software really works

September 2, 2006 21:40:56.452

Via Chris Petrilli, who found it at Andy Hunt's place:

Software Development

 Share Tweet This

development

On Software Architecture

September 3, 2006 10:20:54.376

Ralph Johnson talks about architecture, design, and implementation

 Share Tweet This

PR

Dumbest PR Failure?

September 3, 2006 10:26:58.053

This may be the dumbest negative PR thing I've seen yet: A UK senior citizen was told that she was too old for internet service:

After walking the Great Wall of China and making plans for a trip to Russia, Shirley Greening-Jackson thought signing up for a new internet service would be a doddle.

But the young man behind the counter had other ideas. He said she was barred - because she was too old.

The 75-year-old would only be allowed to sign the forms for the Carphone Warehouse's TalkTalk phone and broadband package if she was accompanied by a younger member of her family who could explain the small print to her.

Can you imagine being in the meeting at corporate where they came up with that policy? They weren't even smart enough to start backpedaling once they started getting media inquiries:

When her case came to light on Radio 4's You And Yours last week, Carphone Warehouse admitted it had adopted an over-70 rule.

But the firm insisted it was not a blanket policy and claimed the guidance was to protect the elderly. A spokeswoman said: "It is not our policy to refuse business from adult customers of any age group. However, we do ask our agents to use their discretion when dealing with older customers."

She added that the discretionary rule had been introduced in response to complaints that staff had mis-sold products last year.

I hope they're looking for a new set of PR people, because the ones they have are too stupid to live.

Technorati Tags: ,

 Share Tweet This

Macintosh

Stupid Finder Tricks

September 3, 2006 10:59:09.561

I like the Mac a whole lot better than my PC, but there are still a few areas of wonkiness. This morning, I killed the Finder by double clicking on the 2 GB USB icon on the desktop.

Now, that seemed odd to me - the first thing I thought was "oh crap, what now?" However, I recalled that I had ejected a "phantom" CD yesterday, and then it clicked. After rebooting the machine (thank you, ssh access!), I plugged the USB stick back in. Sure enough, it came up as both a drive icon and a CD icon. The trouble comes if I eject the "phantom" CD. That turns off the USB stick, but it still looks like it's on.

Some kinds of wonkiness are not limited to Windows...

 Share Tweet This

esug2006

Heading to ESUG

September 3, 2006 11:15:52.683

I'm about to head out the door to ESUG 2006 - and it's going to be a long flight. I leave here (Baltimore) at 2PM. Then I get to sit in New York for 3 hours, while I wait for my 6PM flight. That arrives in Brussels at 7:30 AM tomorrow - and then I have 2 hours to wait for the final leg, the Prague.

I finally arrive at 11:20 AM tomorrow. Ugh. On the return next week, I go back through London (and boy, I hope that doesn't get ugly).

Other than the travel, it should be a good trip. I've never been to Prague before, and I'm actually taking a good camera with me. I'm looking forward to some site seeing, and to a good conference. See you there!

 Share Tweet This

travel

Paranoia

September 3, 2006 13:34:05.672

The airport security experience: the illusion of security and the complete absence of judgement. I forget to clear my bag of things like toothpaste, as I've had those kinds of toiletries in there for years. Well, that was a mistake. Just out of orneriness, I asked the supervisor if he could show me, in writing, where liquids are banned (yes, I knew ahead of time about the ban. I had forgotten to clear my bag). That generated two responses:

  • No, the list is classified
  • A local cop was called, who told me to keep my opinions to myself

Now, I tend to get irritated when I'm told to shut up (this has gotten me in trouble more than once). Still, having state and federal agents tell me what I can and cannot say truly torques me off. It's not like I was making threats, or claiming to have bad things - all I wanted was written proof of the ban. I understand security people getting jumpy about "jokes" at the checkpoint - it's like yelling fire in a theater. I get that. What torques me off is being told that the list of banned substances is classified, and being told that I'm not allowed to express an opinion about that.

The thing is, this isn't limited to airports. My daughter's school has a blanket ban on drugs. That sounds reasonable, until you realize that it includes things like Midol (which a teenage girl might need from time to time), and cough drops. Why do they do that? Well, it's simpler than asking teachers and administrators to actually engage their brains and make judgement calls. Girl with Midol? Ok. Person out back with narcotics? Not ok. Sadly, they are unwilling to make that kind of judgement call, so they just ban everything. Which means this: If my daughter has a cough, I have to go to my doctor and get a written note before I can send her in with a few Ricolas. I can't just send a parent's note, and the Ricola's would have to sit in the nurse's office. Sudden coughing fit? No longer a simple thing to fix, because the school system is unable or unwilling to apply judgement.

It's a societal problem, and the application of it at airports is just a noticeable symptom.

Technorati Tags: ,

 Share Tweet This

news

Is it disintermediation time in real estate?

September 3, 2006 15:44:33.370

Jeff Jarvis hopes that the real estate cartel is getting disintermediated:

The Times story focuses on Redfin, a new brokerage in California and Washington only, unfortunately, that will list sellers’ homes for $2,000 flat and will rebate two thirds of its commission (thus usually 2 percent of the selling price) to buyers. Redfin does all this -- how else? -- by taking advantage of the internet and of the monopolistic pricing of multiple listing service members.
The Times reports that some sellers’ agents refuse to show homes to people coming from Redfin. I’d call that anticompetitive and perhaps even antitrust behavior. Watch and I’ll bet that MLSes will get opened up and then, once any of us can list and find homes on our own, the whole game is over. Bye-bye overpriced agents.

I won't be selling (or buying) a home anytime soon, but I like the sound of this. Just like the music business, real estate is a field that is ripe for some cleanup.

 Share Tweet This

itNews

Horse Hockey on the air

September 3, 2006 16:05:12.011

I'm not a fan of government regulation - either for or against net neutrality - but I am opposed to unadulterated BS. That's exactly what the telcos are spewing with this ad (unintentionally hilarious if you know anything about the subject). Click the link here to watch it (you need Flash installed).

What I love most is the notion that net neutrality is mumbo jumbo intended to allow rich silicon valley tech firms to bilk us. Umm, yeah - I live in constant fear of those outfits. What's Google going to do, beyond throw too many ads my way? I'm not even sure who this ad is intended to convince. Everyone who's ever had a phone bill to pay knows about "interesting" fees the telcos come up with.

Bah.

Technorati Tags:

 Share Tweet This

news

Progress

September 3, 2006 16:11:22.632

I'd call this report on the abundance of obesity progress, actually - having more obese people than malnourished ones is a huge step forward in historical terms:

The world now has more fat people than hungry ones, according to World Health Organisation figures, with more than a billion overweight people compared to 800 million who are undernourished.

Which is not to say that widespread obesity is a good thing - simply better than the historical norm.

 Share Tweet This

smalltalk

Vista Smalltalk on Vista

September 3, 2006 16:42:16.233

Peter Fisk has some screenshots of his Vista Smalltalk running on Vista RC1. Head on over to take a look, or just click here for the image.

 Share Tweet This

blog

A Small technical point

September 4, 2006 7:38:04.108

I'm reading a post from the head lemur, on the general topic of communication, online communities, and splogs - it's pretty good stuff, but I do have a small, technically oriented nit:

It is about the lost opportunity to engage in dialogue. You cannot comment from a news reader, aggregator, social links page, you have to come here. This is where engagement and dialogue takes place. That is at the end of the day, what it is all about. The internet is the one place where it is easier to ask permission that ask forgiveness.

That's not entirely true. There aren't a ton of blogs that support the CommentAPI, but they do exist (this is one of them). Heck, I follow the comment trail (on the Smalltalk blogs) in my aggregator, and I do nearly all of my commenting from the aggregator. In fact, of the 280 feeds that I subscribe to, 48 support the CommentAPI (meaning, I can comment directly from my aggregator). I discovered that via a simple script in my BottomFeeder runtime:


supportingFeeds := RSSFeedManager default getAllMyFeeds select: [:each |
	| items allows |
	items := each allItems.
	allows := items detect: [:eachItem | eachItem commentAPIUrl notNil] ifNone: [nil].
	allows notNil]

So in fact, if your blogging software and aggregator software line up on features, you can comment without punching through to the HTML page.

Which is truly a side point in the context of the entire post, which I encourage you to read. It's great stuff about the damage done by sploggers:

Because of the ease of creation, open formats, and the astonishing number of applications written to capture RSS, splogs were born. Their whole purpose is to game the system, by creating sites that people will go to, click on ads, and make money for sploggers on other peoples work. These people are not adding to the great conversation or contributing to the web. They are stealing content, setting up self referring networks, all to steal money from advertisers, and breed anger and mistrust.

Go ahead, read the whole thing :)

Technorati Tags:

Technorati Tags:

 Share Tweet This

travel

Arrival

September 4, 2006 7:43:41.642

I've finally gotten to my hotel - I'm at the Crowne Plaza in Prague. I have no idea how to get from here to the conference hotel, so I'll have to work that out. It's always a long trip when you fly overnight...

 Share Tweet This

esug2006

Modularizing the ObjectLens

September 4, 2006 10:31:24.871

Well, I'm finally here at the conference. The room has a bit too much of an echo - it's kind of hard to pick up speakers with an accent (and, I expect that means that non-English speakers will have trouble picking up people like me. Oh well).

Anyway, the current talk is from Dr. Michael Prasse, on modularizing the ObjectLens. It could certainly stand some of that; I recall my first stint as a consultant, trying to use the Lens programmatically (instead of via the Forms Editor). Not only was it not fun, but support (this was back in the PPS days) told me that such usage wasn't supported.

You can imagine my reaction :)

Anyway - the lens is a fairly simplistic O/R layer, in that it maps a single class to a table - you can't store objects of different classes in the same table (polymorphism comes via foreign key mapping). Instance variable map straight to columns. Usage is fairly straightforward:

aLensSession add: anObject

aLensSession remove: anOBject

You can write queries using Smalltalk #select:. You get transaction support and proxies. You save the db mapping information declaratively in a spec (like a window spec). The dataSpec is too monolithic - what Michael is doing is creating a more modular set of specs, which allows for easier reuse across similar applications. Back in my SE demo days, this would have been highly useful (and, I can recall a number of Lens projects I consulted on that would have been a lot easier).

He's got modified tools that support these changes as well - pretty cool stuff.

Technorati Tags: ,

 Share Tweet This

web

What is Wikipedia?

September 4, 2006 10:55:40.379

Aaron Swartz has done some yeoman's work on how Wikipedia has gotten written. First, he presents Jimbo Wales' view - which is that 20% of the people on the site have done 80% of the work:

So did the Gang of 500 actually write Wikipedia? Wales decided to run a simple study to find out: he counted who made the most edits to the site. "I expected to find something like an 80-20 rule: 80% of the work being done by 20% of the users, just because that seems to come up a lot. But it's actually much, much tighter than that: it turns out over 50% of all the edits are done by just .7% of the users ... 524 people. ... And in fact the most active 2%, which is 1400 people, have done 73.4% of all the edits." The remaining 25% of edits, he said, were from "people who [are] contributing ... a minor change of a fact or a minor spelling fix ... or something like that."

Aaron was skeptical, so he decided to take a few samples and investigate. He chose the Alan Alda page first:

To investigate more formally, I purchased some time on a computer cluster and downloaded a copy of the Wikipedia archives. I wrote a little program to go through each edit and count how much of it remained in the latest version. † Instead of counting edits, as Wales did, I counted the number of letters a user actually contributed to the present article. If you just count edits, it appears the biggest contributors to the Alan Alda article (7 of the top 10) are registered users who (all but 2) have made thousands of edits to the site. Indeed, #4 has made over 7,000 edits while #7 has over 25,000. In other words, if you use Wales's methods, you get Wales's results: most of the content seems to be written by heavy editors.

But when you count letters, the picture dramatically changes: few of the contributors (2 out of the top 10) are even registered and most (6 out of the top 10) have made less than 25 edits to the entire site. In fact, #9 has made exactly one edit -- this one! With the more reasonable metric -- indeed, the one Wales himself said he planned to use in the next revision of his study -- the result completely reverses.

I don't have the resources to run this calculation across all of Wikipedia (there are over 60 billion edits!), but I ran it on several more randomly-selected articles and the results were much the same. For example, the largest portion of the Anaconda article was written by a user who only made 2 edits to it (and only 100 on the entire site). By contrast, the largest number of edits were made by a user who appears to have contributed no text to the final article (the edits were all deleting things and moving things around).

The upshot: An "Army of Davids" (to steal a metaphor :) ) creates the content, while a small cadre of editors cleans it up and does follow on work. That's pretty much how I always thought of it, and it's cool to see that someone has gone out and investigated. I hope Wales is listening, because the current ideas about locking the site down more run counter to this reality.

Technorati Tags: , ,

 Share Tweet This

esug2006

Meta-Driven Browsers

September 4, 2006 10:57:59.519

Alexandre Bergel (with help from other people like Stephanne Ducasse, and Colin Putney, who isn't here), is up to talk about the OmniBrowser framework - which he describes as a meta framework for building browsers. The examples are all in Squeak, but there is code for this in VW.

Here's Alexandre starting the talk:

The OmniBrowser consists of three main notions:

  • Nodes - what my domain is
  • MetaGraph - how do I navigate my domain?
  • Actors - how do I interact with my domain?

Along with Filters and Definitions for describing and filtering nodes. There are some limitations:

  • Navigation has to follow the left to right flow
  • Would be difficult to implement Whiskers (Squeak) or the RB (VW, et. al)

On the other hand, lots of current Squeak tools have been built using this: changes, implementors, senders, variables, version... and a number of others.

Technorati Tags: ,

 Share Tweet This

smalltalk

Niall Ross' Reports

September 4, 2006 15:37:17.688

Niall Ross just handed me the PDF reports he did for ESUG 2005 and for StS 2006. They are both PDF files.

Technorati Tags: , ,

 Share Tweet This

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 Tweet This

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:

STIC Logo

The specific color choices there are mine :)

Technorati Tags: , ,

 Share Tweet This

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 Tweet This

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 Tweet This

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

Address:
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 Tweet This

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)

"using an answer"
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?

  • Talked about Web apps
  • No url fiddling
  • No state serialization
  • Implemented complex workflow
  • separated design and logic

Technorati Tags: , ,

 Share Tweet This

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 Tweet This

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 Tweet This

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:

Tuesday Evening Chat

And here are Martin Kobetic and Suzanne Fortman:

Tuesday Evening Chat

 Share Tweet This

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 Tweet This

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 Tweet This

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 Tweet This

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 Tweet This

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 Tweet This

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 Tweet This

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 Tweet This

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 Tweet This

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.

Enclosures:
[http://www.cincomsmalltalk.com/audio/rowan_interview_final.mp3 ( Size: 4565892 )]

 Share Tweet This

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:

CodeVisualWorksObjectStudio
1=0 ifTrue: [1]nilfalse
[:n | ] value: 11nil
Array new add: 1Error#(1)
(Array new: 1) at: 1 put: 77#(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 Tweet This

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
  • In service upgrade

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 Tweet This

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 Tweet This

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 Tweet This

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 Tweet This

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 Tweet This

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 Tweet This

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 Tweet This

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

Enclosures:
[http://www.cincomsmalltalk.com/audio/heeg_interview_final.mp3 ( Size: 9460800 )]

 Share Tweet This

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 Tweet This

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 Tweet This

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 Tweet This
-->