Today's Smalltalk 4 You looks at an issue I ran into with VisualWorks at my new job: the way listboxes with multi-select turned on behave with drag/drop. I've posted the code to the package MultiSelectPatch in the Public Store Repository. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. To watch now, click on the image below:
If you have trouble viewing that directly, you can click here to download the video directly. If you need the video in a Windows Media format, then download that here.
The STIC website - the one that's supposed to promote the power of Smalltalk to business? It's running on WordPress. At least the Squeak and Pharo communities understand the whole dogfooding thing :)
Here's another video from ESUG 2010, which was held in Barcelona, Spain, the week of September 13, 2010. In this presentation, Veronica Uquillaz-Gomez talks about analyzing system changes using their Torch tools. You can watch using the embedded player below, or follow this link to Vimeo.
The daily screencasts, and the weekly podcast are on hiatus until the New Year. I may have one more podcast before the end of the year, but most likely, it's back the first week of January.
Merry Christmas, Happy New Year, and have a great end of the year!
GuyWhoSteals has a nice post up comparing and contrasting the options for Seaside development and deployment. The upshot: you have a lot of good options across multiple platforms:
Both Squeak/Pharo and VisualWorks are cross-platform, with the virtual machine and IDE working almost identically on Windows, Linux and MacOS X. Currently, I do development on Windows and Ubuntu Linux (depending on which machine I’m working on), and deploy to a web server running Linux. I hope this sheds some light on this very individual set of decisions. One last thing I’d like to reiterate: If you’re new to Smalltalk and Seaside, you essentially can’t go wrong with the main 3 distributions (VisualWorks, GLASS or Pharo). All three are excellent cross-platform environments, and the choice between them comes down to commercial support, licensing fees (and, in the case of Gemstone, whether or not you need a first class object-oriented database).
Keep in mind that the VA Smalltalk product is a good choice as well, if OS X isn't in your list of platforms.
Dave Winer has a thoughtful post up about our ability to trust vendors with our public content - what if they decide to pull the plug (as numerous vendors have done with WikiLeaks)?
The question is this: What service-level guarantees do we need from vendors to make it possible to use their services in our public writing.
The problem runs even deeper, I think. Even if I bought my own server, and then paid to have, say, a T1 run to my house - I still have to rely on my domain being registered. Heck, even if I register a non US domain (or, if a person outside the US registers one beyond their borders), that doesn't get out from under the problem.
Right now, the entire system runs on trust and a general lack of centralization. That's why I worry about the FCC and their "net neutrality" rules - to my way of thinking, centralizing runs the very real risk of making control easier to assert. I think the best we can do here is leave the system with as little central control as possible.
I've been using Chrome for quite awhile, but today I got massively irritated with a page I was trying to read - and the built in "Reader" feature (yes, there are extensions for Chrome that do a somewhat similar job. No, they don't work nearly as well) was the only thing that made that possible. Why? Well, see how this page renders for you. For me, the Dubai add covers half the middle paragraph, and I can't see any way to dismiss the blasted thing. "Reader" at least centered it, letting me the see the page.
The real question is, how long will it be before Safari infuriates me over something, and I go crawling back to Chrome, or Firefox?
Update: A commenter pointed out that the Chrome 9 beta worked, and sure enough, it does. I'll stick with Safari until it irritates me though - which is certain to happen soon enough :)
Callie Oettinger has a nice take on the flaws that are inherent in the traditional PR/Marketing model: it's all designed to sell to the wrong audience. She's writing about books here, but the same thing applies in software:
Traditional media outlets have never covered even a dime in the dollar of books published each year. Everyone wants in, but there’s not enough room. And even though specific genres have never received equal coverage from traditional media outlets—military, science-fiction, and romance come to mind—many of the publishers and authors of these books continue traditional pitching, hoping something will stick. Why? Because that’s what’s always been done.
Very true. Consider software now - do "decision makers" actually evaluate the tools that developers or end users use? Of course not. Heck, most of them don't even look at such stuff - they have staff for that. Sure, at high levels, with truly expensive software, the golfing relationship between the (insert vendor here) and the CEO matters. For everything else? What matters is whether your product's value proposition reaches the right audience: the users.
Go back to books again. Pre-internet, all you had were book reviews from prestigious outlets (like the NY Times), and the advice of local booksellers, who had some notion as to what was coming out, and what might appeal to you given your tastes. Now? Now there's Amazon recommendations, book lists on blogs (I've picked up a ton of stuff based on posts from Glenn Reynolds, for instance) - and so on. The problem with the traditional outlets is that they are at least one step removed from the real audience.
Which takes me back to software - the "decision makers" are also removed from the actual use, and their only point of evaluation is price - it's the only thing they have. If you sell on that basis, and can undercut everyone else, then sure - bypass the users, and get into the race to the bottom. If that's not where you sell, then you really, really want to be active where the actual users live - because it's the only way you have to stand out from the crowd.
Apparently, the launch of the iPhone back in 2007 caught RIM (and Microsoft) utterly by surprise:
The iPhone "couldn't do what [Apple was] demonstrating without an insanely power hungry processor, it must have terrible battery life," Shacknews poster Kentor heard from his former colleagues of the time. "Imagine their surprise [at RIM] when they disassembled an iPhone for the first time and found that the phone was battery with a tiny logic board strapped to it." Friends who were Microsoft employees at the time were also said to have had a similar reaction.
It's amazing to me that Apple managed to launch with so many of their competitors stunned.
Ever wondered why you have to start with a pre-built image, rather than building up exactly what you want/need? Well, so did Yoshiki Ohshima - he's been working on that problem:
We've been playing with John's MicroSqueak and it occured to me that having a bytecode compiler that is implemented outside of Squeak opens some possibilities, such as generate a growable image file from all text files, or make deep changes to the system without shooting yourself.
Ironically, the harder part of this may be in getting the Smalltalk community to agree on a standard "outside the image" text format...
A few weeks ago, I gave a light speed (2.5 days) Smalltalk training class to some new users of the project I'm working on; I knew then that they were going to have to come back for some real, in depth stuff if they intended to work on the internals of the thing, as they say they mean to.
So - I'm about to start gearing up for a two week training delivery. Not sure where - it could be in Texas (probably will be), or it could be at the new site, which is in Virginia (much closer to where I live). The materials are coming to me today, so I can start getting a handle on those - we'll see what happens from there.
This is starting to be "Back to the Future" for me - consulting and training, just like the 90's :)
In a long article about the success of Spotify in Europe, we find out why it's not available in the US - it's due to the lack of sense the labels have:
None of the major labels would talk to Wired about Spotify, but several have made their opinions known. “Free streaming services are clearly not net positive for the industry,” said Warner Music CEO Edgar Bronfman Jr. during a February conference call to discuss his company’s quarterly earnings, “and as far as Warner Music is concerned, it will not be licensed. So, this sort of ‘get all the music you want for free and then maybe we can—with a few bells and whistles—move you to a premium price’ strategy is not the kind of approach to business that we will be supporting in the future.”
What Bronfman doesn't realize is that he's living in the world now. People are sharing music over torrents and skype, never mind the "sneaker net" pastime of burning a CD. He can either get on board with a legitimate business and have a stake in that future, or he can fade off into the distance. At the moment, he's chosen to fade off.
The big problem is one you see a lot in software businesses being confronted with free, open source competitors - the first reactions are to clamp down harder and complain about the unfairness of it all. Here's the thing though: evolving business models aren't about fairness, they're about the way things are. Get on the bus, stay off the bus - either way, it's heading out. With the net's existence, it's going to remain easy to pass music (and other software, for that matter) around. You simply have to account for that fact in your business model.
After yesterday's post on who software is sold to (the people who use it, not the people who sign the checks) - I ran across this post from James Governor via the comments:
Salesforce avoids IT to sell to the business, while Heroku avoids IT to sell to developers
Exacty right. If you try to sell to the management team, all you have to offer is price - and in that arena, it had better be a low price. If, on the other hand, you get the developers (or end users) sold, there's virtually no limit to the upselling possibilities, because there, you're selling on emotion.
If the sort of patent trolling that Paul Allen is up to doesn't demonstrates the utter uselessness of the USPTO, then nothing does. Is it too much to ask that a patent have a working implementation associated with it?
Here's something I hadn't thought of with the rise of ebooks - the loss of page numbers. I'm quoting John Holbo, who ponders the issue:
I’m thinking about quoting our John in something I’m writing (yes, on Zizek). But I can’t footnote a Kindle edition. No pages. What will the world come to? Bibliography has gotten a bit old and odd in the head in the age of the internet, but the existence of pages themselves is kind of a watershed.
The Kindle app (and presumably the Kindle as well) show you a "percentage reached" instead of a page number. I understand that - given the various form factors involved (multiple Kindle sizes, iPads, smart phones....), what does a page number even mean? It should be simple to graft the physical form page number into the metadata, but as we go forward, there may well be books for which no physical form exists. What then? Perhaps we'll have to footnote based on the word count of the reference? Some sort of standard will have to arise, I guess.
Eliot Miranda has released new Cog VMs - I'm quoting an email to the Squeak list below:
I've released a new version of Cog that has a substantially improved code generator along the lines of Peter Deutsch's HPS (VisualWorks) and various of Ian Piumarta's VMs. These all use a simple tecnique to identify constant references in bytecode and to support a register-based calling convention. While this does produce faster code it tends to accelerate low-level code much more than high-level code