StS2006

Smalltalk Solutions 2006 Announced

January 4, 2006 21:10:39.397

StS 2006

The Smalltalk Solutions 2006 speaker list is live online - check it out here. You can register now.

 Share Tweet This

development

Implicit interfaces

January 4, 2006 20:05:53.716

Martin Fowler wants implicit interfaces in Java and C#

What would it mean to implement an implicit interface? Essentially it would tell the type system that the ValuedCustomer class implements all the methods declared in the public interface of Customer but does not take any of its implementation, that is its public method bodies, and non public methods or data. In other words we have interface-inheritance but not implementation-inheritance.

Of course, we don't have this problem in Smalltalk (or other dynamic languages). As Martin says further down:

This issue isn't a problem with dynamically typed languages. If you want to implement another class's interface all you need to do is implement the same methods and just use the object where you need it. It's also quite common to use dynamic proxies to do this kind of thing in Java, although I feel that implicit interface implementation would be more communicative.

As I've said before - you can pick power, or handcuffs. Most developers seem to prefer the latter.

 Share Tweet This

support

Why you need to be serious about support

January 4, 2006 15:48:30.515

Digg linked to this frustrated consumer's experience:

A frustrated customer's experience with HP that is still unresolved. Keep checking for updates. "The following is a timeline detailing the absolutely terrible experience I have had dealing with HP's tech support & customer service department."

A few years ago, a frustrated consumer might vent to a few friends but - unless one of those friends was an influential tech reporter, the blowback was pretty limited. Now? All it takes is one post that gets picked up by Digg, or Blogniscient, or Techmemeorandum (et. al.). At that point, you have a real problem on your hands. If you don't keep on top of your support results, you may wake up one day with a huge PR problem staring you in the face.

 Share Tweet This

media

Kathleen Parker, call your office

January 4, 2006 14:53:42.122

I wonder if Kathleen Parker would like to take back her recent column - the one that fretted about the lack of restraint on the part of bloggers, and the near superhuman efforts at accuracy that the mainstream press *cough* strives for *cough*:

Although I've been a blog fan since the beginning, and have written favorably about the value added to journalism and public knowledge thanks to the new "citizen journalist," I'm also wary of power untempered by restraint and accountability.

Say what you will about the so-called mainstream media, but no industry agonizes more about how to improve its product, police its own members and better serve its communities. Newspapers are filled with carpal-tunneled wretches, overworked and underpaid, who suffer near-pathological allegiance to getting it right.

Right. Like, say Katrina reporting. Or perhaps she meant the reporting on those miners who were trapped? Or possibly she meant that reporting on the re-introduction of wolves? I for one am so glad that those underpaid, hardworking souls in the newsroom have all those editors and fact checkers *cough* backing them up *cough*. Unlike us unrestrained bloggers. Gosh forbid.

Update: Or maybe she meant *cough* professionals *cough* like Mike Olesker, who just resigned from the Baltimore Sun due to plagiarism problems.

 Share Tweet This

cst

Cincom Smalltalk Winter Release is out

January 4, 2006 11:09:46.974

Cincom Smalltalk™ Winter Edition Now Available!

CINCINNATI, Ohio – January 4, 2006 – Cincom Systems is announcing the immediate release of Cincom Smalltalk Winter Edition, an object-oriented development tool used for mission-critical business applications.

VisualWorks® 7.4 and ObjectStudio® 7.1 comprise the new Cincom Smalltalk Winter Edition. VisualWorks is the Smalltalk toolset for building instantly portable server, Web-based, and client-server applications; ObjectStudio allows developers of native Windows® applications to create innovative solutions that model complex business processes.

What’s new with Cincom Smalltalk VisualWorks:

  • New supported 64-bit VMs -- Solaris 5.x Sparc64 and Linux x86-64
  • New unsupported 64-bit VMs -- Solaris 10 x86-64
  • New unsupported 32-bit VMs -- Solaris 10 x86-64
  • Improved Database/Store support -- Oracle Connection Pooling, threaded CTLib (Sysbase) Connection and Store support, ODBC SQL Execution improvements
  • Finished THAPI support for SGI, AIX, and HPUX
  • Internalization—Extended Unicode awareness from Windows to Mac OS 8/9
  • Improved support for Web services, including SOAP Headers
  • WebSphere/MQ Connectivity support
  • Security enhancements surrounding ASN.1 and S.509
  • Deployment -- RuntimePackager now works off of packages and bundles
  • Plugin -- Support for Windows-based Beta IE plugin

What’s new with Cincom Smalltalk ObjectStudio:

  • Ole bug enhancements
  • DB bug enhancements
  • XML Parser synched with the VW version
  • Opentalk synched with the VW version
  • Early access availability for ObjectStudio on the VW VM -- by request only

Meet with Cincom Smalltalk engineers, customers and partners at Smalltalk Solutions 2006 held in conjunction with LinuxWorld and NetworkWorld Canada, April 24-26, 2006 in Toronto, Canada. More information can be found at http://www.lwnwexpo.plumcom.ca/.

About Cincom Smalltalk

Cincom Smalltalk enables software developers to build applications quickly and efficiently, including scalable browser-based and client-server systems. Cincom Smalltalk delivers significant productivity over Java™, C#, C++, or Visual Basic®, allowing developers to bring their products to market significantly faster. For more information, please visit our Web site at http://smalltalk.cincom.com/index.ssp.

About Cincom

For nearly 40 years, Cincom's software and services have helped thousands of clients worldwide simplify the management of complex business processes. Cincom specializes in the five areas of business where simplification brings the greatest value to managers who want to grow revenue, control costs, minimize risk and achieve rapid ROI better than their competitors.

Cincom serves clients on six continents including BMW, Citibank, Boeing, Northwestern Mutual, Federal Express, Ericsson, Penn State University, Milacron, Siemens, Rockwell Automation and Trane.

For more information about Cincom's products and services, contact Cincom at 1-800-2CINCOM (USA only), send an e-mail to info@cincom.com, or visit the company's website at www.cincom.com.

Contacts:

Cincom Systems, Inc. Cincom Systems, Inc.
Suzanne FortmanJames Robertson
Marketing ManagerSmalltalk Product Manager
949-722-8928410-730-6579
sfortman@cincom.comjrobertson@cincom.com
http://www.cincomsmalltalk.com/blog/blogView
 Share Tweet This

news

Wow, a local market

January 4, 2006 8:06:10.741

I will actually have a choice in cable providers soon:

In granting cable TV franchise, council seeks to foster choice Howard County residents will be the first in Maryland to have a choice between Comcast and telecommunications giant Verizon for cable television services after a unanimous vote by the Howard County Council last night to grant Verizon a local cable franchise.

With any real luck, that will include broadband choice as well.

 Share Tweet This

blog

RSS Identity

January 4, 2006 7:50:29.449

Gordon tackles the syndication ID issue, and mentions in passing the scheme I use on this server:

RSS 2.0, RSS 1.0, and Atom all provide a way to handle post identity: the <guid> element, the rdf:about attribute, and the <atom:id> elements, respectively. Unfortunately, not everyone provides this metadata, or does it incorrectly: for instance, CNN doesn't give you GUIDs, the Cincom weblogs just use big integers (these look like they might be dates, but I'm not sure), and PHP.NET is re-using the rdf:about attribute on different posts. The problems, from last to first: if you identify posts by GUID, re-using a GUID amounts to modifying a post, though that doesn't seem to be the intent in this case. Using big integers is poor practice, because an integer isn't a GUID. Recall that the GU part stands for globally unique : if you use integers as GUIDs, you're just hoping that there won't be a collision, especially if your protocol is to increment a counter with each new post. If you're going to use an integer for a GUID, use a really big one (128 bits or so), and use an algorithim appropriate for the purpose: counters are not appropriate.

Well, I can explain what I'm doing here. Ideally, the GUID should probably be an URL, and the scheme I'm using would allow for that. Way back when I started the codebase, that didn't seem so obvious, so I picked something I figured would be unlikely to be duped:

guid := Timestamp now asSeconds.

Meaning, the guid for a post on this server is the creation time for the post. It's unique within the context of a single image server, and unlikely to be duplicated somewhere else. As well, in the feed itself, it's clearly marked as not being an url.

Was this a great idea in the long term? Possibly not. The scheme could produce duplicate numbers (at least across different blogs) if I started using more than one image - and, if I ever changed the code to use more than one image for a given blog, I'd have real problems. On the other hand, I'd need to make multiple changes to do the latter change, so it's unlikely to happen. As for duplicate numbers across different blogs? Yeah, that's an issue, and if I ever need to cross that bridge, I'll just change the ids to urls - the ID is used by the server to identify posts, so it would be a trivial change.

If it's a trivial change, why haven't I done it? Sheer inertia. Things work at present, and I haven't been highly motivated to fix a theoretical problem. At least, not yet.

 Share Tweet This

management

Ready, Fire, Aim

January 3, 2006 23:40:04.862

Scoble this morning:

OK, this one is depressing to me. It’s one thing to pull a list of words out of blogs using an algorithm. It’s another thing to become an agent of a government and censor an entire blogger’s work. Yes, I know the consequences. Yes, there are thousands of jobs at stake. Billions of dollars. But, the behavior of my company in this instance is not right.

Scoble this evening:

I have been talking to lots of people today, though, inside and outside of Microsoft. In every instance they asked me to keep those conversations confidential. Why? Cause we’re talking about international relations here and the lives of employees. I wish I could go into it more than that, but I can’t. Not yet. See, it’s real easy as Americans to rattle the door and ask for change, but we don’t live there. Saying “give them the finger” isn’t that easy when there are real human lives at stake. And I don’t need to spell out what I’m talking about here, do I?

One thing I’ve heard is that we spell out our terms of service very explicitly on MSN Spaces. Here in the United States we pull down stuff too at government request, like child pornography or other illegal content.

I thought he'd gone way, way too far out on a limb this morning. It's not that he said anything outrageous as a private citizen - but as an employee of Microsoft? It may be his own blog on a non-corporate server, but he's clearly identified himself as a Microsoft evangelist. Which means that - for all intents and purposes - when he speaks there, he's speaking as a Microsoft employee - pretty much without regard to any disclaimers he puts up. Which kind of explains the later post to me - I'm sure that various levels of management at MS were not pleased by the loose cannon behavior.

There's another problem with the earlier approach too. Never mind the topic - he was publicly calling his company out. Now, stop and think about that for a minute. You have an employee, and he's off calling the company wrong in public. How likely is that to gain internal allies? Even if he "wins" a battle like that, the win is pyrrhic. People who might have been on his side will be torqued by the public attack. Believe me, I know - back at ParcPlace and ParcPlace-Digitalk, I engaged in public warfare with management. It was entertaining, but it accomplished absolutely nothing - unless you count making enemies as an accomplishment.

I rather suspect that the goal Scoble had this morning became a lot harder after his outburst. There are things I disagree with my management on, but you won't see me airing them here - because that wouldn't help my chances of convincing them.

 Share Tweet This

DRM

Vampiric DRM

January 3, 2006 16:37:54.293

My wife pointed out this post from Ed Foster of InfoWorld - he's got his prediction post up, and he's having some fun at Sony's expense:

Entertainment Industry Agrees on DNA-Based DRM Media conglomerates have put aside their wrangling over what Digital Rights Management technology to use, adopting a standard developed by Sony and its DRM experts that will provide copy protection for music, movies, TV shows, and computer programs. "The exciting thing about this technology is it employs DNA technology to make absolutely certain the user matches our records as having a valid license," a Sony spokesperson explained. "All the user has to do whenever he or she wishes to listen to a tune, play a DVD, watch a TV show, etc. is to provide just a few drops of blood for the built-in DNA testing device, which will then use the Internet to check the DNA profile match. In just a few hours, your right to enjoy the media you have licensed will be confirmed." Diabetics and others who might be constrained in how much blood they can supply will be given the alternative of providing hair roots, the spokesperson added. "It's not that anybody in the entertainment industry wants the blood of our customers -- it's just that we need it."

The tragedy is, I didn't laugh when reading it - it was more of a head shake. Before this last year, I wouldn't have believed they would install rootkits either :)

 Share Tweet This

DRM

Oooh, I'm afraid now!

January 3, 2006 16:28:03.254

Look, the clowns at the RIAA want to scare me! Go visit grokster.com, and you'll see the following:

The United States Supreme Court unanimously confirmed that using this service to trade copyrighted material is illegal. Copying copyrighted motion picture and music files using unauthorized peer-to-peer services is illegal and is prosecuted by copyright owners.

There are legal services for downloading music and movies. This service is not one of them.

YOUR IP ADDRESS IS [Your IP Here] AND HAS BEEN LOGGED. Don't think you can't get caught. You are not anonymous.

Oh my gosh! They can read the header information from a web request! What a bunch of clueless morons.

 Share Tweet This

marketing

Why you need to subscribe to search feeds

January 3, 2006 16:22:11.263

If you sell products, you really need to watch anything that might pop up on the web - you can't counter everything, but you can try to get out in front of sudden memes. Take trans-fatty acids, for instance:

The Ban Trans Fats suit was eventually dropped, but BuzzMetrics' study showed that the damage had been done: Kraft and Oreo were mentioned in 17 percent and 26 percent of the 2.6 million comments about trans fats, respectively, showing that the public clearly linked the dangers of consuming processed oils with the company and one of its most famous products.

When your firm/product starts getting mentions like that - especially in a negative context - you really, really need to know about it. If your marketing team isn't looking for corporate mentions and likely keywords, you need to beat them with a cluestick.

 Share Tweet This

sports

Now that's a lineup!

January 3, 2006 16:17:39.819

ESPN has the tentative lineups for the AL (NL here) teams, noting new arrivals in bold. The Yankees have a solid lineup this year - and the defense should be good as well. All they need is the pitching to hold up - if that comes through, it should be a heck of a year in NY. So what's it look like?

  • 1B: Jason Giambi
  • 2B: Robinson Cano
  • SS: Derek Jeter
  • 3B: Alex Rodriguez
  • C: Jorge Posada
  • LF: Hidekei Matsui
  • CF: Johnny Damon
  • RF: Gary Sheffield

That's going to be a murderers row.

 Share Tweet This

logs

Weekly Log Analysis: 12/31/05

January 3, 2006 9:44:43.334

In all the holiday planning and partying, I forgot the weekly log post. It was a slow week - people are off work, or - if they aren't - they aren't paying a lot of attention. So it's no big surprise that BottomFeeder downloads dropped to a rate of 281 per day last week. The distribution:

PlatformBottomFeeder Downloads
HPUX507
Windows385
Mac 8/9362
Sources248
Mac X122
Update109
Linux x8691
CE ARM55
Windows98/ME36
Linux Sparc18
Solaris15
Linux PPC7
AIX5
SGI4
ADUX2
Source Script2
CE x861

Same pattern as I've seen recently. Next up - the HTML page accesses:

ToolPercentage of Accesses
Mozilla49.7%
Internet Explorer27.6%
Other10%
MSN Bot7.3%
Google Bot4.4%
Opera1%

If I had to hazard a guess, I'd say the drop in IE usage last week was due to fewer people being in the office. The smaller number of people accessing might have pushed those bot numbers up as well. Finally, the RSS tool spread:

ToolPercentage of Accesses
Mozilla22.7%
Other15%
BlogLines9.2%
BottomFeeder8.3%
Planet Smalltalk8.1%
Net News Wire6.6%
Internet Explorer5.4%
Safari RSS4.8%
SharpReader2.8%
Magpie2.5%
BlogSearch1.7%
NewsGator1.7%
Feed Reader1.5%
RSS Bandit1.3%
Liferea1.2%
MSN Bot1.2%
Feed Demon1%
Java1%
JetBrains1%
Google Bot1%
Python1%
News Fire1%

That distribution looks about the same as usual.

 Share Tweet This

spam

Splogs and Click Fraud

January 3, 2006 8:29:46.349

If the concept of "click fraud" is something you've had difficulty wrapping your head around, check out this month's Wired - they have a nice roundup on the subject. Certainly makes the whole Splog model understandable - the affiliate advertising model is what they are exploiting.

Looks like this is unavoidable online overhead - although still better than the TV/radio broadcast model.

 Share Tweet This

weather

I had unsubscribed, but...

January 3, 2006 0:10:24.581

Apparently, the tropical storm season refuses to end. Say hello to Tropical Storm Zeta.

 Share Tweet This

DRM

Will the Artists Listen?

January 2, 2006 23:29:06.326

Blaine Buxton explains something to an artist:

I would love to listen to your new CD "A Beautiful Lie", but you have copy-protected it. I prefer to enjoy my music on my mp3 player because I have a plethora of choices at my fingers. But, you have prevented me from ripping my music to mp3 for my enjoyment. I only listen to music on my mp3 player and sure, I could rip it with different technology (like WMA), but why be different just for you? I have software that makes sure the volume levels between albums are consistent and I can not do that with your options. You've also made me feel like a common criminal. I never share my mp3s and buy every piece of music that I have on my player. So, I will not purchase any more of your CDs and enjoy any of your music. If I were you, Thirty Seconds To Mars, I would switch labels because I will never purchase any of your CDs while on Virgin.

This nightmare isn't going to end until DRM dies.

 Share Tweet This

holiday

The Holiday Entertaining Season ends

January 2, 2006 14:55:56.099

I love this time of year, but - on this second day of January, 2006, I'm happy that it's come to an end. Starting with Thanksgiving, we had three major parties/dinners, plus my daughter's large sleep-over birthday party. That meant lots of cooking, lots of guests, and lots of cleaning. It's enjoyable, but there's always a sense of relief once we get to end. Whew!

 Share Tweet This

DRM

His son is smarter

January 2, 2006 11:48:02.994

In a response to Russell Beattie's move back to Windows, scoble said:

we should get you Windows Vista. I’m running it on a Tablet PC and it’s getting to be pretty interesting. Everyone I’ve shown it to says they are gonna get it. Well, except my son. He still is a Mac fan. He did say “cool” though after playing with Vista.

Maybe his son has heard about the *cough* enhanced *cough* video "experience" that Vista will have - PVP-OPM. Think Sony and EMI, only translated to your monitor. I guess all those people who say they want Vista are in for a rude awakening.

 Share Tweet This

DRM

The Irony of DRM

January 2, 2006 11:23:26.134

In the comments to my last post on this topic, I followed a link to this site, which explains how to defeat the stupid "protection" on EMI CD's. The irony? From the site:

Because I don't usually copy CDs, I found it a little ironic that the ‘copy control technology’ required me to make a copy of the album in order to use it. Since my experience with the 80s Alternative album, I have bought many other CDs, and the ones with copy control technology are the only ones I have copied.

The labels are just dumber than rocks.

 Share Tweet This

DRM

How to be stupider than Sony in one easy step

January 2, 2006 0:50:10.925

It's pretty simple - just be the label that ColdPlay signed with - apparently, buying their new CD requires the services of a lawyer:

What are the other rules? Here are some gems: "This CD can't be burnt onto a CD or hard disc, nor can it be converted to an MP3" and "This CD may not play in DVD players, car stereos, portable players, game players, all PCs and Macintosh PCs." Best of all, the insert explains that this is all "in order for you to enjoy a high quality music experience." Now, that's quality.

I wonder if the band is as stupid as the label? There's a CD I don't need, that's for sure. Heck, based on the photo of the CD insert, the CD may not even play on your non-computer player. Just like the asinine technology that Microsoft is going to ship with Vista.

 Share Tweet This

examples

Smalltalk compared

January 1, 2006 14:06:10.626

Alan Lovejoy pointed me at a page that compares Java and Ruby, and suggested that I provide Smalltalk examples. The Smalltalk is going to be a lot like the Ruby code - both are dynamic languages with what people now call "duck typing".

The page sets up a simple example with a pair of classes - Word and Definition:

Class Definitions

You can go to the linked site to see the Java and Ruby classes - here are the class definitions in Smalltalk:

 

Smalltalk.Words defineClass: #Word
	superclass: #{Core.Object}
	indexedType: #none
	private: false
	instanceVariableNames: 'spelling partOfSpeech definitions synonyms
'
	classInstanceVariableNames: ''
	imports: ''
	category: 'Words'

Smalltalk.Words defineClass: #Definition
	superclass: #{Core.Object}
	indexedType: #none
	private: false
	instanceVariableNames: 'word definition exampleSentence '
	classInstanceVariableNames: ''
	imports: ''
	category: 'Words'


In Ruby, it looks like you can define getters/setters in the class definition. In Cincom Smalltalk, the environment does the same thing for you, offering to define getters/setters (and a default initializer) as part of creating the class. So in step one, we get a small bit further than Ruby, due to the tools we have. As to the methods, let's start with the initiazers - I had to modify the default initializer so that it matched the code in the example page - first Definition, then Word:

 


initialize
	"Initialize a newly created instance. This method must answer the
receiver."

   word := nil.
	definition := nil.
	exampleSentence := Set new.

initialize
	"Initialize a newly created instance. This method must answer the
receiver."

   spelling := nil.
	partOfSpeech := nil.
	definitions := Set new.
	synonyms := Set new.


So on to the meat - the tools mostly created what I needed, and I just had to modify the defaults. The class definitions have a lot of things we don't need to worry about right now - I created them via the class creation wizard, seen below:

Smalltalk Class Defining

That wizard removes a lot of the typing drudgery of class creation - mind you, old hands (like me) can still do it the "old fashioned way" in the browser. Let's define the #addDefinition: and #addSynonym: methods now - they auto-check for duplicates by being Set objects:

 

addDefinition: definitionString
	self definitions add: definitionString.

addSynonym: synonymString
	self synonyms add: synonymString.


Now creating a new instance is easy - we create a class side convenience method for creating new words::

 

newWord: wordString partOfSpeech: partOfSpeechString
	^self new
	       spelling: wordString;
	       partOfSpeech: partOfSpeechString.


Some explanation - the #new method creates the new object and the #spelling: setter is immediately sent to that. The semi-colon is a cascade, which allows us to send the #partOfSpeech: setter to the same object as the first message went to. Note the name of the method: #newWord:partOfSpeec:. It's self describing. Instead of #new, we can create our own class creation protocol that is self explanatory. Now to use it:

 

"Create a Word"
word := Word newWord: 'ebullient' partOfSpeech: 'adjective'.
word addDefinition: 'Overflowing with Enthusiasm'.
word addDefinition: 'Boiling up or over'.


Notice how clear that is - and how much clearer it is than the Java example on that page (IMHO, it's clearer than Ruby, simply because of the keyword message). Keyword messages make it possible to make your code very intention revealing - which is a good thing. This is part of why Smalltalkers tend to send you to the source instead of to some doc - because the source (if done decently) is documentation. Yes, you can write bad Smalltalk, and I've done plenty of that myself :)

If you look at the explanation of collection protocol on that page, everything he says about Ruby's collections applies to Smalltalk. We can add things into the collections without fear of them blowing up. In fact, if we make sure that the things we add are polymorphically (i.e., message signature) identical to each other, it doesn't matter what they are at all. I take great advantage of that in BottomFeeder.

Moving past the example, the linked page goes into Ruby iteration. We have the same power in Smalltalk - we can iterate over any kind of collection like this:


someCollection do: [:each | each doSomethingHere]. 

The [ ] syntax is for a closure - the first place you'll find them in Smalltalk is in the logical operations (ifTrue/ifFalse, etc). They provide a lot more power though, and the fact that they are used to define the common operations (doWhile, et. al.) is telling - those operations are not reserved word syntax in Smalltalk - they are messages. Which means that you can define your own versions. I've seen plenty of people add #do: to class Object so that any object can be treated like a collection, for instance.

The entire discussion of duck typing applies to Smalltalk as well. Rather than formal interfaces, Smalltalkers worry about polymorphic equivalence. You can implement a matching protocol between any kind of objects that make sense, and then use them together. A common example used in intro classes is a FinancialInstrument - without regard to inheritance, just define a financial protocol amongst all the objects, and then use it - for instance, a #currentValue method might determine what an instrument is worth right now - and be very different for various objects that share little else. Even so, they can all be placed in a collection, and current worth calculated like this:


instruments inject: 0 into: [:subTotal :next | subTotal + next currentValue].

The comment for #inject:into:, since it may not be clear to non-Smalltalkers:

Accumulate a running value associated with evaluating the argument, binaryBlock, with the current value and the receiver as block arguments. The initial value is the value of the argument, thisValue.

That pretty much covers what the IBM page went into. The main difference you're going to see in Smalltalk is that it's not file-oriented. You work in an image, and you create code in a browser. You can save packages out into loadable modules though (we call them parcels here at Cincom) - and this server is fired up exactly that way. I have a basic image which starts, grabs a set of parcels, loads them, configures itself as a set of post-load actions, and then goes. Interested? Grab the Cincom Smalltalk non-commercial here.

 Share Tweet This

gadgets

Small real estate

January 1, 2006 11:49:08.129

Scoble is going after sites that suck on small devices:

If your site squeezes a column so that it’s only one word wide, it sucks. It’ll get called out.
My wish? Please try your site on a cell phone (tonight I was comparing sites on a Treo, on a Blackbery, and on my phone. My phone was best, but there were lots of sites that sucked on all three).
Millions of Web users are out there with cell phones. If you don’t get your site to work properly with a cell phone, you’re turning away customers and that sucks. It’ll get called out.

As I said yesterday, any site that's built to be read (i.e., anything but a headline blog) is going to suck eggs on a small device. The screens are too small, and the fonts are too small. And there's nothing you can do about it - the form factor is "fit in a pocket". The best you can do is what movie listing sites do - arrange the titles so that they come up nicely. If you want to read blog content on a small device, it's going to suck, period.

 Share Tweet This

Macintosh

Paying attention to the demographics

January 1, 2006 11:39:06.136

In a post about Business books, Scoble relates a good point from Tom Peters:

Here’s one: he tells Microsoft that we should pay attention to senior citizens in his book “trends.” Huh? They’ll never use a computer, right? Screw that! Actually, he doesn’t specifically point out Microsoft, but talks to all businesses. Why are seniors important? Buzz Bruggeman, CEO of ActiveWords, told me a while back that seniors have trillions (and will pass on trillions in wealth over the next couple of decades).

This relates back to what I said the other day about PC's versus Macs. My daughter has one set of grandparents with Macs. They tell her (and us) about all the fun stuff they do with photos, videos, etc, etc (and yes, they play computer games). The other set of grandparents has a PC - in fact, it's one the grandfather built himself. His tales? Constant woe with the OS, with viruses, with various and sundry problems that crop up in daily use.

These are intelligent people - my father in law has multiple doctorates. He's just not a system administrator, nor does he want to play one on TV. Over the last few years it's sunk in to me that my parents - with the Macs - use the machines as tools to solve problems. My father in law fights the machine in order to get anything done. Like the friend I spoke about the other day, he needs a simpler system - one that doesn't make him play system administrator all day, every day.

So yes, Peters is right - MS needs to pay attention to seniors. Not as specifically as Scoble might think though. They need to make the OS easier to deal with on a daily basis - and the same goes for Office, for that matter.

 Share Tweet This

development

What is a standard?

December 31, 2005 17:30:12.604

Dare considers a few buzzwords tossed around the industry, and takes on "standards" for some further chewing. He quoted a post of his own from a year or so ago for emphasis:

The word "standard' when it comes to software and computer technology is usually meaningless. Is something standard if it produced by a standards body but has no conformance tests (e.g. SQL )? What if it has conformance testing requirements but is owned by a single entity (e.g. Java )? What if it is just widely supported with no formal body behind it (e.g. RSS)?

He gives these notions a pretty good shaking out - and makes the important point that a lot of us end up talking right past each other with supposedly "well understood" terms.

 Share Tweet This

gadgets

Phones and the Internet

December 31, 2005 13:36:18.694

Maybe I'm just a curmudgeon, but I have real trouble with the whole Mobile Web idea, at least as far as phones go. Why? For a couple of very simple reasons:

  • Tiny Screens - ever tried to read a largish amount of text on a phone? It sucks. A lot.
  • Tiny Fonts - see the first point, above
  • Typing - Ever tried to enter more than a trivial amount of text on a phone? Sure, it can be done... but it gets very, very tiresome

Yes, I know that lots of people use SMS. I'm completely convinced that most of them will be crippled with carpal tunnel in a few years too. The problem is one of form factor - you want a device small enough to stow in a pocket - and that means that the keyboard will either be tiny (read: painful), or non-existant (i.e., a telephone touchpad - more painful).

John Batelle is all excited about mashups that involve phones. IMHO, the phone is by and large a read-only device. And it pretty much sucks as a read-only device too, unless the amount of text returned is small. Searching for movie listings or restaurants? Useful. Doing serious work? Not so much.

 Share Tweet This

Macintosh

End of the year OS thoughts

December 31, 2005 12:21:27.030

Over the course of the last year or so, I've come to a re-thinking of what's appropriate for the average computer end user. I used to just look at the price tags, scoff, and say "WinTel, obviously".

Not anymore. For the expert user, that's probably still a good answer. If you are able (and willing) to put in the kind of system administration work that a Windows box requires:

  • Firewall (not just the one that ships with the OS)
  • Anti-Virus software
  • Periodic scans with tools like Ad-Aware

If you are able to deal with all that, and can deal with anything that manages to get past you, then sure - by all means, get Windows and enjoy the larger selection of games that ship on the platform.

A friend I was speaking to last night is a great example of why a Mac is just a better answer for most end consumers though. And no, don't bother piping in with "Linux" here. The target I'm thinking of would be scared off by installation of the OS, and - even if it came pre-installed - it's simply not as end user friendly as a Mac is (or Windows, for that matter). His problem? He has the full complement of ad-ware installed on his machine, which gives him pop-up fits. Sure, he could get some help by switching to (insert any email client but Outlook here) and Firefox, but his problems would just vanish with a Mac.

It took me awhile to get past the price differential (a base level PC will come with more HD and more memory for a lower cost) - but for the non-technical, that doesn't really matter - most people want a PC to act like any other appliance - plug it in and just use it. Windows just isn't like that; it requires care and feeding. Apple doesn't have a perfect product (I had that whole stupid problem with the DVI plug, for instance), but it's a lot closer to being consumer grade technology than Windows is.

So do your friends a favor this coming year. Unless they are technologists, recommend a Mac to them when they ask for advice. Just consider how many fewer times you'll end up sitting in front of their PC swearing.

 Share Tweet This

music

Our Friends at the RIAA

December 31, 2005 1:51:19.019

Just lovely - it turns out that the RIAA is asking for perjury in order to win cases:

This is a 15-year-old girl, telling the story of how lawyers of a major industry group told her she had to commit perjury, just so they could win their case. Some might call that racketeering, and it's most certainly a highly illegal way to win a court case. The deposition strongly suggests that the RIAA knew they didn't have a leg to stand on, and that they were perfectly happy to do anything in their power to win anyway. Funny how rather than open their own wallets to settle, they prefer breaking the law themselves. (Cue Radiohead's Karma Police. On second thought, don't. I'll get sued for not paying license fees.)

These guys are a piece of work.

 Share Tweet This

smalltalk

Alan Lovejoy is blogging

December 30, 2005 13:09:54.887

Alan Lovejoy is blogging about Chronos, his Smalltalk time library. Subscribed!

 Share Tweet This

BottomFeeder

Regenerate all your feeds in BottomFeeder

December 30, 2005 12:24:05.489

I had someone ask me an interesting question the other day - he hadn't run BottomFeeder in awhile, and just wanted to purge all the cached items and have the next set of update cycles regenerate the feeds. It's a useful idea, and a feature I intend to add - but you can do it now, since I left a way open to execute Smalltalk code. Just pull down the System>>Execute Smalltalk Code menu item, and then write this:


RSS.RSSFeedManager getAllMyFeeds do: [:each | each removeAllItems].

Highlight that and hit ctrl-d - all your feeds will be empty, and the next update cycle will start refilling them.

 Share Tweet This

rss

When specs are non-existant

December 30, 2005 11:46:15.414

Dave Winer is surprised:

I did release an early version of the News River aggregator yesterday. Lots of people have put it through its paces. I'm not going to link to it here until it's more solid. The biggest difficulty has been importing OPML subscription lists because there's been some "drift" from the initial format.

What a shocker. An under-specified format drifted. I may even have mentioned that once or twice.

 Share Tweet This

marketing

A bridge too far

December 30, 2005 11:27:53.791

Via Doc Searls, I found this piece by Hugh Macleod. I liked a lot of what he said, and this in particular makes some sense:

That's easy enough to explain. Blogging is all about ECO-logy. Branding is all about EGO-logy. The two are not compatible. Which is why brand-wimpy Microsoft has hundreds of bloggers [a well-known fact], and why you can get fired for blogging at uber-brand Apple [so I've been told].

Certainly true of his examples, and of a few other places that come to mind :) However, I don't go with him on his "branding is dead" theory. I think Apple's entire iPod campaign pretty much puts the lie to that. If you have a compelling product, a good branding/marketing campaign still works. But it has to be a good product - it's really, really hard to promote crap with all the word of mouth that spreads over the net.

 Share Tweet This

DRM

Sony cries Uncle

December 30, 2005 11:17:14.031

Well, Well. Via Cees, I see that Sony has buckled under to one class action suit, with some terms that might even make me happy :) With respect to DRM, I'm all in favor of kicking them while their down though - maybe enough of this will wake someone up at Microsoft and give them some religion about PVP-OPM

Update: Ed Foster is more skeptical

 Share Tweet This

education

CS learning problem?

December 29, 2005 23:32:33.006

Joel decries the movement of Java into CS departments - he wavers a fair bit, but seems to think that students should still be working with languages like C (during the first half or so of the post). He gets to the right point at the bottom though:

The most sympathetic interpretation of why CS departments are so enthusiastic to dumb down their classes is that it leaves them more time to teach actual CS concepts, if they don't need to spend two whole lectures unconfusing students about the difference between, say, a Java int and an Integer. Well, if that's the case, 6.001 has the perfect answer for you: Scheme, a teaching language so simple that the entire language can be taught to bright students in about ten minutes; then you can spend the rest of the semester on fixed points.

That's the problem, and I'll say that using C or C++ are even worse. The students get bogged down in irrelevancies instead of learning something useful. That was the thought behind Pascal years ago, and it's why Scheme, or Smalltalk, or Python, or Ruby would be better choices than those dagnasty C based languages.

Meanwhile, Scoble says that MS is having trouble finding enough C and C++ programmers:

Almost every team I interview with my camcorder says they can’t find enough C or C++ programmers to get their stuff done. Some on very exciting teams with hundreds of millions of users. Some that, gasp, actually have budget to hire real programmers.

They could try doing it the old fashioned way - hire smart people and train them. When I went to work for the DoD (Lo, those many years ago now), that's what they did - a lot of the software developers that came out of DoD weren't even CS grads (I wasn't). You get fewer bad ideas that way, and can train people in your shop idioms.

 Share Tweet This

development

How many bad ideas at once?

December 29, 2005 23:14:31.120

Sometimes I'm just amazed at how many bad ideas some people can slam together at once. Have a look here, for instance, at the ContractualJ site - where they say they are trying to follow DBC principles in Java. The list of bad ideas:

  • All classes are declared final. Concrete behaviour inheritance is not permitted. Yeah, because library designers are always perfect, and they always *cough* think of every possible end use *cough*
  • All local variables and fields are declared final, unless otherwise required not to be by the context. A local variable or field that is assigned once must be declared final. See above. Truly, library designers are gods.

Some of the others might well be bad ideas, but I'm not really expert enough with Java to say with conviction. The two things above though? Just horrible. Run, don't walk, from this set of ideas.

 Share Tweet This

music

Why no boxed set?

December 29, 2005 16:46:31.701

Ever wonder why there's no DVD boxed set for WKRP in Cincinnati? Well, you can thank the lunkheads at the RIAA, who seem to think that no money is better than whatever would come in - the licensing of the various snippets of music that were on the show is just too complex to sort out:

Thanks to the limitless generosity fiscal acuity of the record labels, coupled with copyright extension after copyright extension, the good folks who handle DVD releases are often faced with a tough choice in the face of demands from copyright holders on old songs: raise the product price to compensate for licensing fees, rescore parts or all of the release, or don't build a DVD at all. The outcomes, then, are American Dreams: Season 1, Extended Music Edition for US$89, or Crime Story without Del Shannon's Runaway in the intro, or no WKRP in Cincinnati boxed set at all.

Yeah, our pals at the RIAA are always out to help us. Puzzlewits.

 Share Tweet This

smalltalk

Code Completion/Intellisense

December 29, 2005 11:30:12.443

Travis adds some light to the heat on this subject, and generates a useful conversation in his comments.

 Share Tweet This

smalltalk

Looking for some OWL Help

December 29, 2005 11:05:22.023

Steve Hunter is looking for some OWL Help:

OWL is the Web Ontology Language. OWL is a standard for describing an ontology and provides formalisms for reasoning over the ontologies (or instances of the ontologies). It is similar to the notion of defining Classes/Attributes/Relationships in Smalltalk (the ontology), creating instances,and performing methods on those instances (a reasoner). For an overview on OWL visit W3C's OWL page. An Ontology Definition Metamodel (ODM) is being proposed to the Object Management Group (OMG), this ODM document provides a very good reference for the ODM, OWL, and mappings between various representations, e.g. UML, TopicMap, ER...
The Smalltalk:::OWL-Project is focused on providing core OWL capabilities in Smalltalk, which could be leveraged by the community. The BottomFeeder RSS/News reader is an example, it uses RDF which is the basis for OWL.

That's a little bit of stretch for BottomFeeder - all it does is parse RDF news documents into the object model used by Bf - same thing it does with RSS and Atom. In any case, follow the pointers if you have interest in this stuff.

 Share Tweet This

movies

A fun Romp of a Movie

December 28, 2005 17:25:17.883

"The Lion, the Witch, and the Wardrobe" was a heck of a great film. I've seen some people pan it for one reason or another, but go see it - it's good stuff. Classic Good vs. Evil with betrayal and redemption mixed in - it's just about the perfect Christmas movie. So much better than anything else I've seen this year as well.

 Share Tweet This

games

Civ 4 Strategies

December 28, 2005 12:38:31.146

At least at the lower levels, I've found that I can win pretty consistently by working to stay out of wars and go to either a time based (domination) or space race win. Those wins are, as Troy says, oddly unsatisfying though - and for me at least, the winning scores have been pretty low. I'm going to have to try a game or two of "whack the opposition hard" and see how that goes.

 Share Tweet This

movies

Lions and Witches

December 28, 2005 12:34:49.590

I'll be off to see "The Lion, the Witch, and the Wardrobe" later this afternoon - and I'm looking forward to it. I read the books a long while back, and I have fond memories of them. Here's hoping that the film lives up to the memories.

 Share Tweet This

copyright

Repurposed content - more complex than you think

December 28, 2005 11:27:31.332

TechDirt raises the issue of content republishing, and asks how seriously we ought to take it. The problem is that copyright law and "fair use" were conceived in an era where re-purposing content took a lot more effort than it does now.

The example TechDirt points at is Om Malik's latest on the subject. Now, I don't think Om is being unreasonable, which is why this point made me stop and think:

First of all, it's a very fine line. How different is it from some random site reposting someone's content and an RSS aggregator reposting content. For example, here's Bloglines reposting Om's content, which it's done for years. Should he be upset about that? People say their complaint is that others are making money off of their content -- but that's not a realistic complaint. The NY Times book review makes a ton of money off of other people's content -- by adding value to it and promoting it.

The Times falls into fair use pretty clearly, but sites like Bloglines (and Newsgator online, etc) are a little harder to deal with. I subscribe to my feed in Bloglines (I imported a BottomFeeder export as a test over a year ago), and there it is - full content. Heck, I'm not directly credited, either - I see "Cincom Product Manager" listed, but not my name. Am I upset? heck no, I'm happy that so many people subscribe to my content.

Which is where the difficulty is - what's the difference (legally) between a splog grabbing my content and Bloglines doing it? I see the difference, but it's kind of like the old saw about pornography - "I can't define it, but I know it when I see it" (the late justice Potter Stewart). I can't define online content theft either, but I "know it when I see it".

So where does that leave us? I suspect that we may end up with "fair use" meaning correct attribution and a link back to the original source. I don't see how else to do it.

 Share Tweet This

marketing

Good marketing

December 28, 2005 11:13:08.694

When Scoble's son is a Mac devotee, then you know you've seen good marketing:

The desperation is high. My son is so desperate to know that he goes into Apple stores and tries to get the salespeople to tell him what’s up. Seriously, he did just that the other day (I wasn’t with him, but I hear the salesperson at the Seattle store told him “I would lose my job if I told you that.”)

And yes, I'm breathlessly awaiting the new intel Macs :)

 Share Tweet This
-->