The Bengals Drop
Watching the Bengals game, the best I could figure about the second half was that the studied film from the second half of the Giants game. Boy, did they fall apart.
Watching the Bengals game, the best I could figure about the second half was that the studied film from the second half of the Giants game. Boy, did they fall apart.
Jeremy Zawodny thinks that Feedster is toast, but Technorati will be fine. I agree with him on Feedster; the amount of broken HTML and spam in the search feeds I use has been horrible. On Technorati though? He needs to talk to Troy.
Via Doc Searls, I see that Microsoft and Verizon have learned nothing from the Sony affair. I guess disabling features counts as delighting your customers, eh Scoble? Then again, these are the people who want to ram the PVP-OPM down my throat, so I shouldn't be surprised.
The game isn't over as I write this, but it may as well be. A botched punt return at the end of the first half allows a field goal. A stupid pass at 6:30 left in the third yields an interception and a touchdown. The offense has been asleep at the hike when they haven't been trying to give the ball away. I guess the only consolation is that Carolina won't get far if they play this way again; they should be up by 4 or more touchdowns with how they've dominated time of possession.
Sigh.
Update, end of game: Here's how I imagine the half time speech in the Giants locker room: "Guys, we mostly sucked in the first half. If we work at it, we can completely suck in the second half!"
Troy is pretty darn torqued at Technorati (read the post to see why) - and his post is an example of something I've spoken about a lot. Word of mouth carries a lot further than the break room these days. When you ignore problems long enough, they don't just go away - they start generating negative PR. For those without a cluestick, take a look at Dell Hell for instruction.
It's time to find out whether the 11-5 Giants are for real, or a fluke. Two weeks ago, they fell apart against Washington - a team that looked completely ineffective against the Bucs yesterday. What you have to realize about that Skins game is that their offense only managed 3 points by itself - the defense scored one touchdown, and laid the other one at the offense's feet. Which is why I wonder about the Giants - they let Washington walk all over them.
I guess I'll find out this afternoon. At least there's a playoff game I have some interest in to watch.
It's time to look at the logs again - last week, BottomFeeder downloads held steady at a rate of 352 per day. The details:
| Platform | BottomFeeder Downloads |
| Sources | 651 |
| Windows | 499 |
| HPUX | 474 |
| Mac 8/9 | 291 |
| Update | 144 |
| Linux x86 | 144 |
| Mac X | 113 |
| CE ARM | 61 |
| AIX | 19 |
| Windows98/ME | 18 |
| Solaris | 17 |
| Source Script | 13 |
| Linux Sparc | 10 |
| Linux PPC | 7 |
| SGI | 3 |
| ADUX | 2 |
| CE x86 | 0 |
I'm not sure why the source downloads jumped up - I haven't released a new build recently. Anyway, off to the HTML page accesses over the week:
| Tool | Percentage of Accesses |
| Mozilla | 53.4% |
| Internet Explorer | 26.7% |
| Other | 7.7% |
| MSN Bot | 6.8% |
| Google Bot | 3.2% |
| BottomFeeder | 1.2% |
| Opera | 1% |
Back to Mozilla being on top, which is more like my normal distribution - that likely means nothing more than a return to work after the holiday season. On to the RSS accesses:
| Tool | Percentage of Accesses |
| Mozilla | 24.4% |
| Other | 5.3% |
| BottomFeeder | 21.2% |
| Net News Wire | 9.1% |
| BlogLines | 8.7% |
| Safari RSS | 5.4% |
| Internet Explorer | 4.3% |
| SharpReader | 2.7% |
| Magpie | 2.3% |
| RSS Bandit | 2.1% |
| Planet Smalltalk | 1.8% |
| NewsGator | 1.6% |
| Feed Reader | 1.4% |
| Liferea | 1.3% |
| BlogSearch | 1.2% |
| MSN Bot | 1.2% |
| Java | 1% |
| JetBrains | 1% |
| News Fire | 1% |
| Python | 1% |
| Feed Demon | 1% |
| Google Bot | 1% |
Now, that looks like a sudden jump in BottomFeeder usage, but it's not. I looked at the "other" category, and I had forgotten that a few revs of Bf have gone out with an agent string that differs from what I've been looking for in my script. So, the numbers for Bf access should be increased by around 10% (and "other" marked down) for the last 6-9 months or so. Ahh, statistics :)
Bob Congdon links to Dave Delay, a former Lotus Notes Developer. Dave is upset that many people seem to hate Notes, and is attempting to counter that:
In my opinion, people dislike Notes because their expectations don't jive with the original intent of the product. At its core, Notes is a runtime environment for collaborative applications, but when people complain about Notes, they are usually not talking about core Notes at all. They are talking about the Notes Mail and Calendar applications. Why does this distinction matter? It matters because the Notes core is what a lot of people really love.
Bob goes on to explain the issue, and it's something that resonates with me. I love Smalltalk, and have for years. I get the same kind of "huh?" reactions that Bob brings up on a regular basis, and it has to do with expectations.
Smalltalk, for good or ill, has a culture surrounding it. That's not really true of C, or C#, or Java (or most other languages, including newish ones like Ruby or Python). Smalltalkers don't work in their favorite code editor, followed by a compile cycle. We work in an image, crafting code one method at a time in a browser. We don't look at long listings of class definitions and methods; we look at little snippets of our system through the browser, and rely on inspectors and ad-hoc workspace testing (not to mention more formal testing) to "see" the code. Which is to say, our development culture is different than what the mainstream developer expects.
When a developer who's heard a lot about Smalltalk - perhaps after having seen Ruby or Python - can be somewhat taken aback by this culture. All their familiar tools are gone; the version control systems are unique to the product, and the development tools are embedded in the environment. We, as Smalltalkers revel in that - we understand the power this brings, and want no part in leaving it. The newbie, on the other hand, sees a learning curve and an inability to apply previous skills to the task at hand.
Which is why there's a disconnect between the Smalltalk community and the development community at large. Now, many would say that we should just "get with the program" and make our stuff look like everything else. The trouble is, that would jettison a goodly proportion of the power we have - the cost is simply too high. We could do a better job of introducing people to the environment, that's for sure. But I don't think we can walk off the mountain and be like everyone else.
Steve Rubel points to one of the most bizarre rumors I've ever seen floated - the idea that former President Clinton will take over from Ballmer as Microsoft President:
There are some rumors circulating that Steve Ballmer is about to step aside at Microsoft as its day to day operations head to make room for another president.
Bill Clinton.
Here's what I know. Sources near Microsoft headquarters report that over the past few months the ex cigar smoking prexy has made trips to Microsoft headquarters and has been interviewing for the top slot as the company looks at ways to transform themselves for the future. Given the global implications of technology, having a leader that is an ex country president would be massive.
Is April 1st early this year, and I just didn't get the memo?
News Corp.'s Fox Entertainment Group has worked a deal with its sister company DirecTV to offer shows on demand, but this arrangement is something different from what you've come to expect. The deal involves the FOX network as well as its cable/satellite FX channel, and will see the company offering on demand content not only following regular broadcasts, but users can pay a premium price to see content before it is aired. "Hit" Fox content such as 24 will be available after airing for 99 cents, but $2.99 pre-air episodes of FX shows The Shield, Rescue Me, It’s Always Sunny in Philadelphia, and others will be available also, typically 24-48 hours in advance.
I can definitely see the $2.99 being worthwhile for shows you really don't want to miss, and would rather not wait to see. If Sci-Fi channel were in on this, I'd definitely pop the surcharge to get an episode or two of BattleStar Galactica or Stargate before a vacation.
When downloading the non-commercial, I've seen a few reports of trouble, mostly with the network installer. For one, older revs of Opera seem to have a problem with the FTP operation - I was just told that the latest release works fine. The reported issue doesn't come up with IE or Firefox, so either use those, or grab the latest Opera.
Another issue reported has been particular to Unix/Linux - instead of downloading to a file, the installer starts downloading to the screen. I've changed the form we were using to a list of links - so if you see the "downloading to the screen" problem, go back, and just right-click on the link in question - that will let you save the corresponding file to disk.
One more thing - the Net Installer links are all FTP, and the installer itself uses FTP to download components. So if you are sitting behind a firewall that blocks FTP - you'll need to either open that port, or grab the download via the ISO file or the individual component files.
James Governor thinks that the Vista launch will be huge, due to web/RSS integration:
I have a post in mind about why Vista is going to be major launch, like Win 95, which not even the Microsoft Vista team seems to believe. But its not the OS that will sell the OS, its the integrated handling of standard specifications that will sell the OS. I am not the biggest fan of integrated aggravation but its a model that works for hundreds of millions of people. RSS, rather than XML per se, may be the killer spec for Office 12.
I have my doubts. For one thing, I'm not completely convinced that Vista will actually get out the door anytime soon. Microsoft has coded themselves into a corner with the the various integrations they've done already - this release has been delayed how long already? From the Vista Office blog:
The story of Windows Vista has been a scrappy one to date. Three years late, with countless stops and starts, plus a rewrite-from-scratch, has left public confidence more than a little shaken. However, its public release towards the end of 2006 should see the operating system back on track. Here’s a short rundown on what has happened so far:
I can't see businesses taking the new Office as a serious reason to move up from XP - the ridiculous Ribbon is certainly not a reason to move from Office 2003. What actual new functionality are you getting? As to the OS, what actual new stuff is left, beyond the UI shell upgrade? Not a whole heck of lot. The "rewrite from scratch" aspect of things also bodes ill for this - partly because I don't buy it. What I would guess is that they threw the (then current build) away, tossed a few of the more ill behaved new components, and started rewriting other stuff in light of their absence. Not a confidence builder, IMHO.
Windows has reached an impasse of complexity. It's largely C++, which is a hard language to deal with - especially for large projects. Making C++ code move from point A to point B is hard, and gets harder with large codebases. Heck, once the size is as large as the Windows codebase, even a dynamic language (Smalltalk, Ruby, et. al.) would be harder to push around. You wouldn't have memory handling as a problem, but there would still be problems.
All through the late 90's, I watched people whine about how MS "had to be stopped", because they were integrating "everything" into the OS. Heck, there are entities out there who still want Media Player removed. What none of those people saw was the expanding pool of molasses that MS was sinking Windows into. The more stuff they larded in, the harder it got to move. That's why Vista is so late, and why I think many, many corporate users will hold back. It's conventional wisdom to let a new Windows release bake for a bit before upgrading now. With all the delays that Vista has had, that notion is just reinforced.
IT managers won't even consider RSS as a reason to upgrade. I rather suspect that they'll consider XP to be "good enough" for a long while yet. On the consumer end, new machines will ship with it, sure. However - I'm going to return to one of my hobby horses here, DRM. Sony and EMI have caught a lot of hell for their stupid (and hostile) DRM implementations. Well, how long do you think it will be before the first person with a legal copy of a DVD slaps it into his upgraded machine and gets told to sod off before the same kind of hue and cry arises? Not long, I'll bet.
Here's the thing - RSS is big amongst the tech-literati now, and will eventually be big for the general public. However, any positive noise based on that will be overwhelmed by the DRM nightmare that MS is lining itself up for. The "cool, I can track 100 websites" buzz won't quite match the "why the heck does my DVD look so fuzzy?" Or worse: "Your monitor isn't compliant? WTF is up with that?"
We know that hostile DRM gets buzz. Unless MS gets a clue and decides against the PVP-OVM crapware they plan to include, they'll get hammered with the same cluestick that Sony and EMI are feeling. I'm guessing that they won't like it any better.
I passed on this story early yesterday - it sounded way, way too much like an April 1st thing for me to take seriously. In the meantime, everyone else has linked to it, so here goes:
The hypothetical device, which has been outlined in principle but is based on a controversial theory about the fabric of the universe, could potentially allow a spacecraft to travel to Mars in three hours and journey to a star 11 light years away in just 80 days, according to a report in today's New Scientist magazine.
The theoretical engine works by creating an intense magnetic field that, according to ideas first developed by the late scientist Burkhard Heim in the 1950s, would produce a gravitational field and result in thrust for a spacecraft.
I still think this needs to be taken with a huge grain of salt. It comes off sounding "too good to be true" to me. I'd love to be wrong about it though.
Lair of the Gecko contrasts Smalltalk and Ruby with Lisp:
I think that potential confusion actually highlights one of the flaws the Reddit guys found with Lisp. If you want to get started with Ruby, your only choice is the one and only Ruby. If you want to get started with Smalltalk , then Squeak and VisualWorks are the most obvious and easily accessible choices. If you want to get started with Lisp, is it CLisp? Scheme? Something else? Which version?
With Ruby and Smalltalk , it's relatively easy for someone who's an outsider to the language to figure out what to use, and to get up and running quickly. Choice is good after you understand what you're choosing between, but having too many entry points is confusing to beginners. Would Rails be as accessible if new users had to find the correct combination of OS/Ruby/Rails for their platform?
I haven't followed the Lisp vendors with any kind of regularity, so I can't really speak to the problem on that end. In the Smalltalk space, Squeak and Cincom Smalltalk (VW in particular) have become the best known and most easily available products - and the "cool" application server Seaside works in both - so either way, you can try out what people are buzzing about.
Even nicer at the moment is that the latest non-commercial version - VW 7.4 and OST 7.1 - are available for download now. A side note on that - the Network Installer can grab any version of vwnc from 7.1 forward - so if you need a back version for some reason, you can use that.
The latest non-commercial download is now live on the site, ready for download. If you have registered before, simply follow the link that was emailed to you and grab the new release. If you haven't, register here and then grab what you need. The network installer may well be the simplest option - it's a small download (4.3 MB for Windows, same neighborhood on other platforms), and grabs components off the server.
Update: The online installer is missing a file on the server that it needs. I should have that updated by tomorrow - I can't reach the relevant engineer at the moment. In the meantime, grab the ISO or the individual files.
Update2: The missing file has been put in place - you can use the Network Installer to grab the latest. Sorry about that!
I've pushed up upgraded scripts and files for building BottomFeeder up from sources. I've updated the download page, adding two zip files:
These are slightly shortened versions of the scripts I use to build development images and deployment images. If you might want to contribute, then you want to grab the second one. If you are just looking around, grab the first. Get Store Access here. Also, you'll need to get the Software With Style components, which will require you to register on their site. Make sure you grab the 4.780 version of the software. The loads will not work with out the SwS code.
I'll be pushing out a 7.4 based dev build (and associated scripts) soon. Check back on the download page for that.
Lair of the Gecko ponders languages:
I'd originally written a lengthy post denouncing the Lispers' reaction to the change, but before posting I did a little followup reading and saw that many of them are trying to organize an effort to provide solutions to the issues raised by Reddit, so I was forced to rethink and rewrite my stance. Bravo to them, and I wish them well, but for right now I just want to get some fun stuff done. For that reason, I'm leaning toward Rails . As with Lisp, I have doubts about how easy it would be to do Smalltalk/Seaside development on a Mac and then deploy to a Linux or BSD server, or two switch back and forth between Mac and PC for development.
Well, I can address that one. Both Squeak and VisualWorks are cross platform, and mostly seamlessly so. I do all the development for BottomFeeder on Windows, and packaging on my Linux box. If you go to the download page, you'll see the supported platforms - and I have users on all of them.
For server side applications, it's pretty simple. The Silt server running this site is developed on Linux and Windows (interchangeably). I deploy to Linux, but there are Windows uses of it, and I built a Windows executable for it, which works just fine - and it's all one codebase.
With Cincom Smalltalk VisualWorks, you can get seamless x-platform deployments. I've got a Mac Mini I use for testing, and BottomFeeder and Silt work just fine there as well - without me ever having done anything specific to support it.
CNet News reports that album sales are down:
Tracking firm Nielsen SoundScan, which measures point-of-sale purchases across the United States, said Wednesday that total album sales--including current and catalog titles--fell 7.2 percent from 2004 to 618.9 million units, the lowest since 1996, when they were 616.6 million. After enjoying an "up" year in 2004, prompting predictions that the worst was over, sales flagged during 2005, hurt by competition from illegal downloads, rival forms of entertainment such as video games, and a lack of breakout musical acts.
Notice the blame assigned to illegal downloads? That's kind of contradicted by the upswing in digital sales they also report:
Nielsen SoundScan said overall music sales, which include albums, singles, music videos and digital tracks, jumped 22.7 percent to just over a billion units in 2005. The rise was fueled by a 194 percent increase in digital downloads.
Gee, let me apply a few nano-seconds of thought to this (which is way, way more than the clowns at the RIAA have) - sales of albums down, digital sales up (mostly singles). Looking through my stacks of CD's, mostly purchased years ago, I find that I bought a lot of albums for one song - other than a few favorite artists, it's rare that I like the contents of an entire album. I suspect that most people are the same way.
Now, ten years ago, I had to buy the CD if I wanted the one song. Now? I pop over to the iTunes music store, and grab the one song. My daughter and her friends almost never buy CD's - they get them as gifts, but their first notion is to go online. There were an awful lot of iTunes gift cards sold this year.
What we have here is a changing market. It's really a return to the 1950's music model, when most young people bought singles. The labels really liked the transition to albums, because a $12.00 album contains a lot more profit margin than a $0.99 song download. The insane thing is, they are trying to maintain the dying business model with progressively stupider actions, which makes a resurgence in album sales even less likely. It's time they faced reality.
There's a small page on the c2 wiki that asks the question -
As lamented on AllPanaceasBecomePoison, part of what poisons a language is that if it's got any real power it soon grows ExtremelyInterstrangled. Well, political woes aside, that doesn't seem to have happened to lisp and smalltalk. How come?
The first link in the paragraph goes into how and why C++ became "poison" over time - the layers of complexity that got added eventually created this:

Why have languages like C++ (and Java, and C#) gone toward the image above, when Smalltalk and Lisp haven't? Well, both Smalltalk and Lisp are simple languages - Smalltalk has 5 reserved words and two operators. When Smalltalkers need power, they don't need a JSR that adds a new set of keywords and features to the language. When Java developers found they needed generics, it came with a layer of new complexity. When Smalltalkers needed the same thing, they found that unlimited polymorphism already provided it.
The reason Smalltalk hasn't become "poison" is that we haven't spent the last 25 years larding in new reserved words and "features". Instead, we've been writing libraries. Fortunately for Sun (et. al.), most developers really like complexity - so they keep going for the shiny new toys that come pre-packaged with inscrutability
Chris Pirillo on Gates' talk at CES:
In the first broad demonstration of Windows Vista for consumers, Gates showed how Microsoft's next-generation operating system, due later this year, will offer customers powerful new advances in security, search capability and digital entertainment. He highlighted how Windows Vista will bring clarity to customers' digital world and help them easily accomplish everyday tasks, instantly find what they want, enjoy the latest in entertainment, keep their personal information safe, and stay connected at home or on the go.
He highlighted some of the most compelling consumer-oriented features of Windows Vista, including a sleek user interface, richer multitasking experiences and deep integration of search throughout the operating system. He also showed the new Windowsr Photo Gallery, which will make managing and working with digital photos easier.
That'll all be great until the first time you slap a new DVD into the machine you upgraded to Vista, believing all this hype - and get the beautiful experience of being told that you can't watch it - for your own protection, of course. Kind of like the new ColdPlay CD - the whole idea is to *cough* enhance *cough* your experience.
If this report is true, then Microsoft has set up a serious "Steal their Thunder" moment for the PS3 launch:
Capitalizing on the blockbuster FPS from Bungie, Microsoft is planning its third edition in the epic series as a full-fledged next-gen title, to be released in time to compete with the release of the rival PlayStation 3 system -- day and date, Sony will be facing with its new system the release of one of the most anticipated games of the next-gen system wars. Further info is being kept secret by Microsoft and developer Bungie.
The Smalltalk Solutions 2006 speaker list is live online - check it out here. You can register now.
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.
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.
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.
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:
What’s new with Cincom Smalltalk ObjectStudio:
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 Fortman | James Robertson |
| Marketing Manager | Smalltalk Product Manager |
| 949-722-8928 | 410-730-6579 |
| sfortman@cincom.com | jrobertson@cincom.com |
| http://www.cincomsmalltalk.com/blog/blogView |
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.
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.
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.
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.
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 :)
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.
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.
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?
That's going to be a murderers row.
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:
| Platform | BottomFeeder Downloads |
| HPUX | 507 |
| Windows | 385 |
| Mac 8/9 | 362 |
| Sources | 248 |
| Mac X | 122 |
| Update | 109 |
| Linux x86 | 91 |
| CE ARM | 55 |
| Windows98/ME | 36 |
| Linux Sparc | 18 |
| Solaris | 15 |
| Linux PPC | 7 |
| AIX | 5 |
| SGI | 4 |
| ADUX | 2 |
| Source Script | 2 |
| CE x86 | 1 |
Same pattern as I've seen recently. Next up - the HTML page accesses:
| Tool | Percentage of Accesses |
| Mozilla | 49.7% |
| Internet Explorer | 27.6% |
| Other | 10% |
| MSN Bot | 7.3% |
| Google Bot | 4.4% |
| Opera | 1% |
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:
| Tool | Percentage of Accesses |
| Mozilla | 22.7% |
| Other | 15% |
| BlogLines | 9.2% |
| BottomFeeder | 8.3% |
| Planet Smalltalk | 8.1% |
| Net News Wire | 6.6% |
| Internet Explorer | 5.4% |
| Safari RSS | 4.8% |
| SharpReader | 2.8% |
| Magpie | 2.5% |
| BlogSearch | 1.7% |
| NewsGator | 1.7% |
| Feed Reader | 1.5% |
| RSS Bandit | 1.3% |
| Liferea | 1.2% |
| MSN Bot | 1.2% |
| Feed Demon | 1% |
| Java | 1% |
| JetBrains | 1% |
| Google Bot | 1% |
| Python | 1% |
| News Fire | 1% |
That distribution looks about the same as usual.
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.
Apparently, the tropical storm season refuses to end. Say hello to Tropical Storm Zeta.
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.
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!
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.
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.
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.
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:
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:
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.
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.
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.