It's all about gameplay: cool graphics are nice, but the superior experience is what counts - the Wii has now passed the 360 in total sales:
Not many would have predicted it a year ago, least of all that it would happen this fast: The Financial Times reports that the Wii has surpassed Microsoft's Xbox 360 in global sales. It's the first time in 17 years -- during the dominate 16 bit days of the SNES -- that Nintendo sits at the top spot of the console market.
I have to admit, I'm a casual gamer who loves the Wii. I'll ooh and ahh at the graphics on the 360 - but I can't justify the purchase based on how much I play. The Wii - whole different story there :)
I won't get to "Smalltalk Daily" today (unless I manage to squeeze out some time late in the day) - we are seeing my in-laws today, and that's simply going to chew up most of the day for me. Back tomorrow!
This post originated as a response to an email in the vwnc mailing list. The premise of that email was that our decision on Widgetry - and the stated justification - implied that there would be virtually no changes to the existing UI framework in VW. That's not true, and I thought it would be worth making a public explanation of the point. So:
The need for customers to make a significant change to their code was a major issue in the decision to cancel Widgetry. It was not the only one though. Widgetry was under development for 6 years before any effort was made to build tools or applications using it. This was a large mistake on our part, and one that won't be made again.
It is possible to make significant improvements to the UI frameworks without a complete migration to something new. You'll start to see improvements fairly quickly. Bear in mind that no real changes have been made to the UI framework for years. During the Parc/Digitalk merger, the VW UI was abandoned, and when the Jigsaw effort failed, the remaining team had no UI members left on it. Thus the UI stagnated.
When the decision to create Widgetry was made, no thought went into making changes to the UI, as "Pollock was coming". All work in that direction was frozen, as we waited. Plenty could have been done, plenty should have been done. Now, plenty will be done.
Now, as to the theory that the existing UI framework is essentially frozen:
Evolution of the existing code base may require changes to customer code, but the key thing is this: it will require relatively small changes over time, instead of a huge change all at once. For an example, look at the NetClients code in VW. I can speak to this one personally, having used the code extensively over the last few years (Silt, BottomFeeder). With each new release since VW 7, I've had to make minor changes to my code. They were all documented though, and all minor. I didn't have to drop all of my HTTP handling code and start over - I had to apply a change over here, a modification over there.
The difference between what would have happened with Widgetry and what is happening now is the difference between revolutionary change and evolutionary change. Change there will be, but it will not be massive and all at once.
I have no idea whether this will work, or whether there will be any interest. Having said that - if you have questions for us on the podcast, a cool thing would be sending us an mp3 file with your question. We'll play it, and then answer it. Interested? Email (unzipped) mp3 files to my private email address, firstname.lastname@example.org - my corporate address has been doing nasty things to mp3 attachments :)
Technorati Tags: smalltalk
Mathew Ingram notes that businesses are starting to worry about time lost to Facebook (et. al.):
The BBC has a story about a survey that says businesses are losing hundreds of millions of dollars a day because employees are wasting time on Facebook and other social networking sites. According to this consulting firm, 233 million hours worth of work time is lost every day -- and the firm recommends that more businesses ban or block Facebook, as both the Ontario government and Toronto City Hall have done recently.
Here's a small suggestion for managers who have this idea cross their mind: How about you try doing your job? If you have staff that isn't getting assigned tasks done, then perhaps it behooves you to notice that fact and do something about it? Banning access to websites (or even the web in general) is simply an abdication of responsibility on the part of management.
Nick Carr completely misses the point on sites like Digg, Reddit (et. al.) - there's a reason "top stories" in traditional media tend not to hit big there: we already know where to find those stories. That simple thought apparently hasn't crossed his mind:
So what happens when "the people formally known as the audience," as the citizen journalism hypesters like to say , take charge of the dissemination of news? A study released today by the Project for Excellence in Journalism provides a hint, and it's not exactly encouraging.
The researchers examined the top stories appearing in the crowd-edited news sites Digg, Reddit, and Del.icio.us during a week in June and compared them to the top stories covered by the mainstream media. They found that the stories in the user-driven sites were "more diverse" but also "more fragmented and transitory." Hard news tended to be buried in a stream of soft news, gossip, product announcements and trivia.
Examining the front page of Digg in hopes of finding (say) coverage of a Supreme Court decision is like expecting to find coverage of that decision on the sports pages.
Having a bad copy of Smalltalk isn't enough - now Sun has a bad copy of the Smalltalk balloon :)
The topic of "accidental complexity" came up last week in a few posts about Smalltalk, Ruby, and code generation - but this NY Times piece speaks to the real thing - massive complexity due to the ad-hoc dependencies of various networks and services:
When the electrical grid went out in the summer of 2003 throughout the Eastern United States and Canada, “it wasn’t any one thing, it was a cascading set of things,” Mr. Bellovin noted.
That is why Andreas M. Antonopoulos, a founding partner at Nemertes Research, a technology research company in Mokena, Ill., says, “The threat is complexity itself.”
Some people will read this and advocate strict planning, but that's not going to do it. What we really need are systems that react better to error states - instead of "throw my hands in the air and die", "try to move on as if nothing happened" is probably a better answer in an awful lot of these cases. Not all, to be sure - there are catastrophic error states that require shutdown. However, a bad network card in one system really shouldn't be one of them :)
We appreciate all of the feedback that's come in - positive, negative, and otherwise. We understand that the decision announced here yesterday on Widgetry was a difficult one to understand, and we realize that our customers and community are going to have a variety of opinions on the matter. I'd like to take the time to do two things:
- This decision is not in any way meant as a slam on Sam Shuster, who was the main (usually the only) developer for Widgetry. Sam put in a lot of effort, and that is appreciated - even if it doesn't look like it right now
- Cincom Smalltalk will be moving forward, with incremental improvements in the existing UI tools and frameworks. For instance: here's a screen shot of the updated inspector, running on my Mac:
Other improvements will be coming, sooner rather than later. The largest mistake we made over the last few years with Widgetry was not working to build tools in it as we built out the framework. That's not a mistake we will make again.
On today's Smalltalk Daily, we plow forward with the Google calendar example - using the authentication information we got yesterday, we query an API and get back some data.
There's more to it though - Google is using a custom authentication scheme, rather than Basic or Digest. So, to use the API we first have to create a custom AuthenticationPolicy class, and plug that in. I need to thank Martin Kobetic and Tamara Kogan, two of our engineers, for their help - without them, this screencast would not be done.
I remember where I was, and what I was doing:
Technorati Tags: history
Blaine Buxton explains why Groovy is slow on the JVM: it has nothing to do with the language, and everything to do with the environment:
It's not that the above posts are bad. I think they are wonderful. It gives something that the Groovy guys can use to make their product better. And that's good for all of us wanting to be dynamic in a static world. But, those numbers will also be used to prove why you shouldn't use dynamic languages. And that's sad. It's all come full circle. I hope I am wrong, but I doubt it. The numbers are not bad because dynamic languages are slow, but because trying to get them run on an architecture not built with them in mind.
As most of you know, Cincom embarked on the creation of a new user interface framework for VisualWorks in 2001. It is now 2007, and this framework, Widgetry, has been in development (but not formally released) for six years. At this point in time, our customers have many questions:
- When will UI building tools appear?
- When will Cincom start migrating the development tools to Widgetry?
- How will we migrate our applications to Widgetry?
In looking at those questions, we stepped back and took a look at Widgetry and its goals. Widgetry was built as an entirely new framework, without concern for backward compatibility. Unfortunately, in making that decision, we had not adequately thought through the issues of migration (both on our part and that of our customers), tool support, and maintaining two large frameworks simultaneously for a lengthy period. As is clear from the length of time it has taken to bring Widgetry to this initial release status, still without tools or documentation, we also underestimated the effort involved in the task. When we began looking at migrating our own tools forwards, it became clear that we would have had to commit a large percentage of the total development effort to this task alone, sacrificing numerous other areas that are also important to our customers.
We have come to the conclusion that the leap to Widgetry is simply too large for most of our customers, and have decided not to make it. Widgetry does offer improvements over the existing VisualWorks UI framework, and we have invested a lot of time and effort into Widgetry - but that time and effort is not nearly as large as what would be required of our customers in a migration effort. We understand that many of our customers have been patiently waiting for the improvements promised in Widgetry, and we will be using Widgetry as a base from which to incorporate improvements for the UI in VisualWorks in a more incremental fashion.
What does this mean for you, as a user of VisualWorks? It means that your existing UI tools and applications will continue to work, and will not need to be migrated. However, it does not mean that there will be no improvements. In the next release (scheduled for January, 2008), improvements to existing tools (the Refactoring Browser in particular) will appear. Incremental improvements to the UI will start to appear after that, including:
- New and better widgets, incorporating some of the enhancements made in Widgetry
- Improved UI building tools - the painter tools will get updated and improved incrementally
- Improvements to the framework itself - many of the known issues in the underlying UI libraries will be incrementally addressed
We think that incremental improvements will serve our customers - both existing and new - better than a large leap into a new and incompatible framework. Widgetry will stay in the “preview” directory on the installation media, and will remain available for anyone who is interested in using it. It will not be supported by Cincom, however, and will not be a direct part of our future plans for the product. In the future, we will be avoiding long term projects that require lengthy lead times before customers can examine and explore them. We are committed to working more closely with our user and customer community, and we apologize for the pain and confusion caused by this decision - but we think it’s the best one for our customers
|I just finished "Osman's Dream", a history of the Ottoman Empire. While it was a tough slog in some places, I found it to be an interesting look at one of the least understood - but longest lasting - empires in history. Perhaps the most interesting thing is this: the empire almost didn't outlive its birth. I had already read a history of Tamerlane, and between that book and this one, it's clear that the Ottoman Empire nearly died in the wake of Tamerlane's 14th century expansion.|
It lived on though, and grew right up until the end of the 1th century, when - like many other empires (Russian, Austro-Hungarian, British) - it went into long term decline. There were many reasons for that, and the book does a good job of explaining the problems that were specific to the Ottomans. For instance - as they lost non-Muslim peoples (during wars with the Russians, British, French, Italians, and Austrians), they lost their tax base. That was an artifact of Islamic law as they ran it, where taxes fell more heavily on non-Muslim peoples. As they lost that population, they lost revenues, and it was hard for them to cope with that.
The end game of the empires was interesting, too - apparently, the Ottoman sultans never really played up their role as Caliph of all Muslims until close to the end. Their position as head of the Empire was seen as far more prestigious until they started to collapse inward, and lost their non-muslim populations. That kind of throws a monkey wrench into some of the recent readings of history from some quarters, but it makes sense, and seems to be well researched.
In any event, I recommend the book to anyone who's interested in learning more about the Ottomans.
Technorati Tags: history
The Office Application space is no longer dull - Nick Carr notes that Cap Geminii is pushing Google Apps:
In the clearest sign yet that Google Apps may be about to make the leap from small businesses to large ones, a major systems consulting firm, Capgemini, is announcing today a partnership with Google to push Apps into the enterprise market. Capgemini is incorporating Apps into its outsourcing service for managing companies' PC networks. It currently manages about a million desktops for corporate clients. In a statement that is sure to annoy Microsoft, which has long dominated business PCs with its Office suite, Capgemini says that Google Apps represents "the next-generation communication and collaboration tools [workers] need to manage electronic communications, share and publish information, and stay connected while on the go."
Over on the Mac, iWork has added a spreadsheet, which makes that suite much more compelling as well - and if you run Parallels, you can open Word docs (et. al.) directly into iWork from your Windows mail client.
Microsoft's tidy little office monopoly is getting some actual competition, and from more than one direction. Even if you like MS Office, this is good news - recall that Internet Explorer has only improved when competition (Netscape in the 90's, Firefox now) has shown up.
This is very, very true:
What the PARC guys got that the PC guys didn’t was that the computer is much better at conforming to our mental models of how things should work than we are at learning its model. If programming a computer is just a matter of telling it what to do, then anybody can be a programmer. If, instead, it’s a matter of telling the computer how to do it, then programming is going to be a lot harder. Computers are fast enough for this conceptual gap to be bridged, but no compelling solution is available yet.
Of course, the way things turned out is much better for the Enterprisey, "if it isn't hard, it isn't work" types, who love long meetings and inscrutable code. For the rest of us? Not so much.
Andres Valloud points to this paper by Wilf Lalonde (PDF), which explains Smalltalk syntax for C/C++/Java developers.
It looks like it's all going to come down to October: The three games between the Yankees and Red Sox next week will be meaningful: if the Yankees sweep that series, they could take the AL East:
Even if that doesn't work out, things are looking good in the wild card race:
We may well be looking at another Yankees/Sox AL battle in October :) Oh, and I think all of A-Rod's detractors can sit down now, too.
I find this highly amusing - from PC World:
The fastest Windows Vista notebook we've tested this year is a Mac. Try that again: The fastest Windows Vista notebook we've tested this year--or for that matter, ever--is a Mac. Not a Dell, not a Toshiba, not even an Alienware. The $2419 (plus the price of a copy of Windows Vista, of course) MacBook Pro's PC WorldBench 6 Beta 2 score of 88 beats Gateway's E-265M by a single point, but the MacBook's score is far more impressive simply because Apple couldn't care less whether you run Windows.
I'm using XP Pro on my MacBook (under parallels), but I might install Vista at some point - if only to be able to demonstrate our product on that OS.
There are people who are connectors, and then there's everyone else. Scoble is a connector, and that makes him an outlier in terms of Facebook usage:
That brings me to Techquilashots. He repeats something a lot of people have said without really understanding what I’m doing with Facebook: “But the problem Robert (and others with tons of friends -- even if it’s 100) is that you don’t really care about the actions of all those people — and in FB apps, you really want to see the actions of certain top friends of yours.”
Totally untrue. I regularly just click around on my friends social graph. Not just the “big name” ones that I recognize. But especially the ones I don’t recognize. I want to know what connection we have and I want to discover new people before someone else does.
I think Robert needs to step back and recognize that the way he uses tools like Facebook is very, very different from the way most people use it. That doesn't make him weird - but it does mean that he needs to recognize his own status as something of an outlier from time to time.
Another example: he mentions from time to time that he's subscribed to over a 1000 news feeds. Heck, most people I know think I'm nuts, being subscribed to 290.
It's been a full year since we started doing "Industry Misinterpretations" - so with that in ind, I've put together a one year compilation - segments of all the preceding episodes, mashed together in what might be considered a humorous fashion. There's a new jobs report and a new design minute, and I have those up front in ths episode - so if that's all you want to hear, just stop at 3:55 in.
We'll be back next week with the start of year two - thanks for subscribing, and of course, if you have feedback, send it to email@example.com. You can also find us on iTunes, Facebook, and Podcast Alley.
Technorati Tags: smalltalk
And by the way, with its blacksmithed body panels and crude instruments, the Model T was a piece of junk, the Yugo of its day.
Um, right. Maybe the author (Dan Neil) should consider the era it was built in, the materials available, and the goals Ford had at the time - which was to make the car affordable for enough people to make it mass marketable. When you look at things in history, it's often tempting to apply modern standards - but it's not fair. The people who lived then had different ideas, and had grown up with different constraints.
I rate this particular article one of the 50 worst of all time for not remembering the basics of history and journalism.
Technorati Tags: stupidity
Ken Treis explains an IE issue that might give you some grief with one field forms and Seaside - the vagaries of how it gets submitted to the server, depending on whether the user hit "Enter" or used the mouse.
I've learned more about browser portability issues than I would have liked to believe existed over the last couple of years :)
I'm still waiting on one audio segment for the podcast - this week is episode 52, meaning we've been at this for a year. Gievn that, I decided to compile an entire episode out of snippets from the year. I like it, but ten again, I'm biased on this :) We'll be back next week with a regular episode, and I should be able to get this one out late tonight or early tomorrow.
Is it the second week of September already? BottomFeeder downloads went back to a nice clip: 230/day. The distribution:
Windows downloads sure popped :). On to the HTML accesses:
|Tool||Percentage of Accesses|
And the Syndication numbers:
|Tool||Percentage of Accesses|
|Net News Wire||6.5%|
|Google Feed Fetcher||6%|
I may have spent my career avoiding databases, but this guy takes it to a whole other level :)
However I've become increasingly convinced that relational databases are some kind of sinister death cult who want to lure you in and get you to wear strange stripy clothes with shiny shoes and give all your money to your superiors in the cult. And if you don't conform, or if you conform too well, you just know you'll end up in a pit of dismembered bodies back in the woods somewhere.
I don't know why, but even though it was a short week, it feels like it lasted forever. That might have something to do with my mornings - my daughter is now in high school, so our wake up time shifted to 5:45 AM. To say that I dislike that time of day would be a gross understatement :)
Anyway - I have been chipping away at the main website this week - things are changing over there, and you should see a cleaner website starting to emerge. It's a work in progress :)
I was listening to "Buzz Out Loud" while I was out jogging today, and I had trouble keeping a straight face as Molly Wood laid into Apple for cutting the price of the iPhone - her argument being that all the early adopters were getting stuffed.
Funny - I can recall many, many BOL episodes where Wood carped about Sony's refusal to drop the price of the PS3. Beyond her deep dislike of all things Apple (not to mention her deep lack of awareness - she had no idea that Finder could show thumbnails of images, for instance), I'm not sure what's going on here.
The title is a reference to "The Princess Bride", and the phrase I wanted was "I don't think that word means what you think it means". I'm taking that from Neal Ford's rather confused post about meta-programming. His example is code generation, and he has a fairly deep misunderstanding of how Smalltalk works (and, quite probably, of how Ruby works as well) - let's have a look. He goes into an implementation of has_many in Ruby on Rails:
class Order < ActiveRecord::Base has_many :lineitems end
For those not familiar with Ruby, this is a method, defined as a class-level initializer (just like an instance code block in Java, a chunk of curly-brace code in the middle of a class definition, which Java picks up and executes as the class is instantiated). So, ultimately, this is the Ruby equivalent of a static method call, which gets called as the class is created.
He then goes into Smalltalk:
Let's talk about Smalltalk, which has first-class meta-programming. You could easily build has_many in Smalltalk, implemented as a button you click in the browser which launches a dialog with properties that allow you to set all the characteristics embodied in the Ruby version. When you are done with the dialog, it would go do exactly what Ruby does in Rails: generate a bunch of methods, add them to the class (stuff like the find_* and count_* methods). When you are done, all the methods would be there, as instance methods of your class.
OK, so at this point, the behavior is the same in Smalltalk as in Rails. But there is one key difference: The Smalltalk version using code generation. It's a sophisticated version of a code wizard, generating the code using meta-programming techniques. The Ruby version uses code synthesis: it generates the code at runtime, not build time. Building stuff at runtime means more flexibility. But that is a minor point compared to this one: In the Smalltalk version, you use the dialog and properties to generate all the methods you need.
I suppose a Smalltalker could do it that way, but it's not how it would normally be done. I've seen a lot of projects that do the kind of dynamic, runtime code generation he's talking about - but let me quote Alan Knight, who was talking about this in the IRC channel this morning:
aknight notes, for jarober's edification, that the GlorpActiveRecord stuff does have a hasMany method
and does no code generation at all from it
and yet, somehow it works
In the Glorp implementation of ActiveRecord (which will be part of our Seaside support, by the way), Glorp reads the database schema, figures out what's there, and then sets up the ability to read the appropriate database records without code generation.
I think a lot of people have strange ideas about how Smalltalk works, simply because the image throws them for a loop. Just because the image allows for some nifty development tools doesn't mean that everything done there is utterly alien.
This is just fascinating. A small company, Netapp, is suing Sun over alleged patent infringement. Now, I have no idea what the facts of this case are - it's not an area of technology I follow closely. What I do find interesting is this: NetApp's CE lays out their case on his blog, and Sun's Jonathan Schwartz lays out Sun's case on his. That's certainly different - and, IMHO, smart. Lawyers make for lousy PR, and these guys seem to get that.
The old rule about lawsuits was that you let your lawyers say everything. I've always thought that was pretty stupid - and I think that rule is gone now.
Technorati Tags: law