I'm sitting in my office, which looks out on the street. Last night and this morning, we have had a pretty stiff breeze blowing. Fortunately, we haven't lost power - our lines here are underground. Unfortunately, this morning is when the county collects recycling.
Why do I say unfortunately? Well, a lot of the recycling bins got knocked over in the wind, either overnight or this morning. The various items - papers, plastic and metal containers, etc - are just loose in these bins. When they fall over in a stiff breeze, the result is windblown garbage everywhere.
The irony? If this stuff were all put in the trash, it would be bagged and weighed down - and pretty much immune to the wind. The attempt to be more thoughtful by recycling is having the net effect of spreading trash all over my neighborhood (this is hardly the first time that lots of wind has coincided with recycling day).
So the irony is - at least in my neighborhood - recycling efforts have led to more trash being blown into the woods and ponds in the neighborhood.
On today's Smalltalk Daily, we continue with yesterday's ListBox example - and cover multiple selections, and how to get the current selection(s) from the listbox. To watch, click on the image below:
You can also watch it on Vimeo:
Or on YouTube:
It looks like Microsoft is getting ready to take the retail plunge:
Without detailing the plans, Microsoft said it has hired David Porter, a 25-year Wal-Mart veteran, to lead the effort. Sources say that Porter's mission will be to develop the company's retail plans and that the effort is likely to start small with just a few locations.
In general, this sounds like a good idea - especially given the success Apple has had with it. However, Apple has one huge advantage: they own the entire hardware ecosystem, and that makes their stores much more of a destination - the genius bar being the obvious example.
I'm not at all sure what Microsoft can do there. They could focus on the consumer end (Zunes, XBoxes) - the success of the XBox might make it easier to make a real effort on Zune promotion, for instance. The obvious question to me though, is this: would Microsoft consider entering the Windows OEM market themselves?
If you exist in the public eye at all - as a reporter, as a marcom type, as a product representative (etc, etc, etc) - nothing you say in public is private anymore. Nothing. If you talk in a public place, assume it will be broadcast. If you use Twitter - even with protected tweets - assume it will get pushed out. If you have a blog, assume lots of people will read it.
Technorati Tags: PR
My wife wasn't entirely pleased with the color contrast between the walls and floor once the vinyl floor for the bathroom went in - so it's back to the paint bucket for a two tone job. Joy :)
If you're still yelling about "Web 2.0", you're chasing last year's trend (which means that marketdroids chasing after "marketing 2.0" are really behind the curve). Don't take my word for it - Robin Wauters has done the research:
So why do I say it's [ed: searches for "web 2.0"] fading? For one, because the number of startups that contact us and include the term Web 2.0 in the subject line or message is visibly dropping (and that's a good thing), and I hardly ever see it mentioned anymore on other technology blogs and news sites either. That's not really tangible, so I took a look at the number of mentions of the phrase across the web, and they seem to be decreasing significantly, reflecting my feeling on this.
Follow the link for Robin's conclusions, and links to the actual research. In the meantime, it looks like you don't want to pump your product up by using the "Web 2.0" phrase.
Well, at least we know this much: it was probably a mistake to let PC do brain surgery :)
This week's podcast is from ESUG 2008 - Dick Heijink's talk from about the CosmoCows WebTerminal project. It's a VW based "Rich Internet Application" framework they've built for their own use. You can grab the slides here - to listen now, click here.
If you have feedback, send it to email@example.com - or visit us on Facebook or Ning - you can vote for the Podcast Alley, and subscribe on iTunes. If you enjoy the podcast, pass the word - we would love to have more people hear about Smalltalk!
Dare Obasanjo has an interesting observation about Google's culture:
This expectation that a new Google product will need massive adoption to justify its investment or be cancelled within four months, as was the case with Google Lively, will be a significant dampener new product launches. Reading Paul Buchheit's post on the early days of Gmail I wonder how much time he'd have invested in the project if he was told that Google would cancel the project if it's user base growth wasn't competitive with market leaders like Yahoo! Mail and Hotmail's within four months.
This isn't a huge surprise, but Dare is one of the few people paying attention to the transition: Google has gone from "small and innovative" to "big and conservative" much more quickly than a lot of companies. It took Microsoft a lot longer to get there, but then again, their initial growth was slower.
The more interesting question is this: between the economic slowdown and things like Sarbanes/Oxley, the IPO market is just dead. Where's the challenge to Google going to come from?
I've been wondering how Twitter was planning to make money, and now we're seeing the plan - it's a first derivative from advertising:
Thau says Twitter is developing a range of analytics and metrics products and services built around the information contained in "tweets," the e-mail and text messages that pass through its platform. "We can measure the tweets," he says. "We're trying to figure out what are the appropriate metrics around engagement and how to convey those."
How would that work? Would Twitter sell that directly? Would Twitter users be happy to see contextual advertising? How contextual can that advertising get at 140 characters per post? Who are the potential buyers of these analytics?
Technorati Tags: twitter
It looks like Facebook just took a lot more ownership of the content people upload to the site. The Consumerist notes an interesting change in the terms of service:
Now, anything you upload to Facebook can be used by Facebook in any way they deem fit, forever, no matter what you do later. Want to close your account? Good for you, but Facebook still has the right to do whatever it wants with your old content. They can even sublicense it if they want.
So as they (The Consumerist) say, don't upload anything you think you might ever want private; it's all public, forever.
Update: Mark Zuckerberg of Facebook responds.
Bruce Perens drops an interesting thought in the midst of an article about open source licensing - and I think it's worthy of discussion all on its own:
But most companies, even large ones, aren't yet completely able to cope with the implications of software licensing. At your next departmental meeting, ask how many people have clicked "Yes" on a license of a web site or software application while at work. Then, ask how many of those folks are authorized to enter into a contract on behalf of the company.
It's got to be an enormous number, especially given the number of online apps people use. Now add in the large (and growing) number of people who work remotely at least some of the time, and the problem just explodes. There's a whole web of assumptions surrounding software licenses that simply doesn't work anymore.
I'm not sure what can, or even should, be done about this - but there are probably a bunch of corporate lawyers who would prefer not to have to ponder the issue...
But one of the -- Google -- I mean, the harsh way of just defining it, Google devalues everything it touches. Google is great for Google, but it's terrible for content providers, because it divides that content quantitatively rather than qualitatively. And if you are going to get people to pay for content, you have to encourage them to make qualitative decisions about that content.
That's just completely wrong. What Google does is pretty simple - it makes it easier to find content that gets "voted up" by linkage. If news sites aren't findable through that mechanism, then it says a lot about those news sites - people simply aren't reading them and linking to them. You can dislike that relationship all you want, but it's real. What it means is that news brands are relatively weak. If you have a strong brand (like, say, Engadget) - then lots of people flock to your site.
The problem is this: the days of generalist news are ending. The death of newspapers is a symptom of that. Why do we go to Engadget during events like CES? Because we know that they'll have comprehensive, focused coverage on the tech/gadget niche. What are most papers focused on?
There's a reason that the Wall Street Journal is doing better than most of their paper bound competition - they cover a focused niche (market news). The Washington Post, or the NY Times (etc)? None of them have a focused niche, and in the online news market that's being born, that's a problem.
Today's Smalltalk Daily looks forward at the next major release of our Smalltalk products - there are some changes coming in the way the product looks, and the way the development tools visually present information. That said, it's still a ways to release (scheduled for late summer/early fall 2009), so some of the stuff shown today is subject to change. With that said, click on the image below to watch:
You can also watch it on Vimeo:
or on YouTube:
Nicholas Carr should read more widely:
There's a real poignancy to Kurzweil's dream of bringing his dad back to life by weaving together strands of DNA and strands of memory. I could imagine a novel - by Ray Bradbury, maybe - constructed around his otherworldly yearning. Death makes strange even the most rational of minds.
Charles Stross wrote that book already (heck, tons of other books in the same vein exist, I'm sure) - "Accelerando".
Technorati Tags: books
Today's Smalltalk Daily covers a basic "Getting Started" question: how do you load components into Cincom Smalltalk? After watching this (click on the image below), you should follow up with this screencast, to get an idea about what components you should load to make the environment easier to use.
You can also watch on Vimeo:
Or on YouTube:
|I finished reading a very timely book last night: Niall Ferguson's "The Ascent of Money". It's a great primer on the basics of money and lending - if you're a novice in that field (like me) trying to understand some of the reporting you see on CNBC, it's a great place to start.|
Not only is it timely (he finished it in May of 2008, just as some of the credit mess was starting to really bubble), but it's written for the layman. Highly recommended.
Facebook has given up on the controversial new terms of service and goe back to the old one:
Well, that was pretty fast. Facebook has reverted to its prior terms of service -- due to a backlash from some users, media outlets and privacy groups -- while it works out a new version.
The funny thing about being a community driven company is that you have to pay heed to the community. Facebook realized that, and did the right thing here. MInd you, "the right thing" means that they listened, and realized that they have to be more transparent about this kind of thing in the future. There's a lesson there for all of us.
On today's Smalltalk Daily, we take a look at how to use COM from ObjectStudio to drive a Windows application. Since I've done something similar on the Mac using AppleScript, I thought I'd recapitulate the work using COM and ObjectStudio. To watch, click on the image below:
You can also watch it on Vimeo:
Or on YouTube:
Dare Obasanjo wades into the Facebook privacy issue with some words of wisdom:
At the end of the day, many people would like to use technology to solve what is essentially a social problem instead of adjusting their behavior. The bottom line is that even though it is technically possible for Facebook to delete my private messages from your inbox when I decide to delete my account, it would be harmful to your user experience AND it doesn't buy me anything since you've already seen the content. The real solution is for me not to have sent any messages to you that I'll later regret in the first place.
Even if you can un-send or delete content, you can't possibly delete all of the memories of it. I've had long conversations with my daughter about this: the stuff she and her friends put on Facebook over the next few years may well come back to haunt them when they hit my age. We had it simpler: no one was recording our youthful indiscretions.
Technorati Tags: social media
I'd love to know what's driving this small trend:
Last month we reported a potentially important change in search-market share trends: After years of steady decline, Yahoo's domestic share numbers (YHOO) had increased for five months in a row. Well, the good news continued in January, with Yahoo's share jumping a half-point to 21%, per comScore.
I've fallen into the "Google is the default" behavior pattern, mostly because I use Firefox, and that's the default choice there. Yahoo isn't really the default choice anywhere, so this kind of rise has to be related to positive choices being made. The numbers are small, but interesting nevertheless.
Hat tip Guy Kawasaki.
One of the knocks Smalltalk sometimes takes is the "doesn't play well with others" thing - the notion that it;s a world unto itself. I did a screencast showing how easy it is to hook ObjectStudio and iTunes up this morning - I thought a short post on it might be a worthwhile follow-up.
If you're working on a Mac, pretty much everything can be driven with AppleScript. On Windows, COM serves the same role. So if you fire up ObjectStudio, you can jump straight into that world of APIS by loading the OLE support:
Once you've done that, you can open a browser and define a new class. I just created one in the ObjectStudio namespace, descended from Object, and added one instance variable: 'dispatcher'. The example talks to iTunes (the Windows version). The #initialize method looks like this:
initialize "Initialize a newly created instance. This method must answer the receiver." | ole | super initialize. ole := OLEObject newProgId: 'iTunes.Application'. dispatcher := ole dispatcher.
That 'dispatcher' object can now invoke various APIs that iTunes understands. So I created a workspace script to try things out:
| model | model := ITunesModel new. model setVolume: 100. model play. (Delay forSeconds: 10) wait. model pause. model nextTrack. model play. (Delay forSeconds: 10) wait. model pause. model release.
That sets the volume (a property), navigates to the next track, plays, and then pauses. The #release at the end does this:
release super release. dispatcher release
Since COM uses external Windows objects, we want to ensure that they get released. I'll be adding a simple ObjectStudio GUI to this tomorrow - stay tuned to Smalltalk Daily for that!
The important take-away here is this: using ObjectStudio 8, you get all the power and productivity of Smalltalk (including all of the VisualWorks libraries) - and you still get to play natively with the Windows APIs. That's why it's Vista Certified.
When a company rolls out a concept car that has an associated iPhone app that controls it, you know that you're looking at a product that's gone from viral to mainstream:
At the touch of an iPhone app, the streamlined rear end of the one-seater pops up to make room for two more people. The adjustable rear end conserves energy by maximizing aerodynamics. The idea, company founder Frank Rinderknecht says, is to create lightweight, streamlined and efficient zero-emissions "individual mobility" that can adapt to suit the driver's needs. The iPhone controls everything from the canopy - there are no doors - to the ignition.
Earlier today I posted a bunch of tweets where I expressed skepticism about the idea of storytelling as it relates to marketing. I decided that I can't really expand on the idea in the 140 character Twitter universe though, so here it is:
Stories are good, but only if they are connected to the product or service that you're attempting to promote.
It's not that people don't enjoy a good story; they do. It's that if your story isn't related to what you're working on, it doesn't really get you anywhere. Let me explain that with an example - have you ever watched an ad on TV, and then sat back and asked the room: "What product was that for?"
Those ads are often celebrated by Madison Avenue types, but the dirty secret is this: they represent an expensive failure. If no one knows what the ad was promoting, the company that paid for it might as well have lit a stack of hundred dollar bills on fire. It would cost less money, and might have qualified as an amusing stunt :)
Disconnected stories suffer from the same problem. You might get praise, you might get readers - but you won't get prospects. Why? Simple - no one reading your disconnected story will relate it to what your company does, and a decent proportion of the people who read your disconnected story aren't interested in what your company does anyway. The raw number of readers just isn't that important - the number of readers trying to solve a problem your company can help with is. You don't want to get overly excited by the first number and lose track of the second one.
The important thing here is to keep your eye on the ball. The ball is "promote your products and services", and yes - stories are good. Those stories have to be related to your products and/or services though. If they aren't, you might as well be off writing the "Great American Novel".
Technorati Tags: pr
I see that a bunch of newspapers are banding together in regional compacts to share content:
The latest iteration of the new content-sharing model brings together The Record of Hackensack, New Jersey, The Star-Ledger of Newark, the Times Union of Albany, the Buffalo News, and New York Daily News, which apparently organized the consortium.
I didn't realize it, but the WashPo and the Baltimore Sun were already doing this. Sounds like a reasonable cost cutting measure, so why am I skeptical? Well, it boils down to what I wrote here - newspapers are trying to be generalists in an era of niche specialization. I just don't know that there's a market niche available for the "we carry it all" business. Online news isn't just driving paper out of news - it's driving hyper-specialization.
I was listening to a talk show while I was out doing some yard work, and I heard the host making the argument that sub-standard products often win, based on marketing efforts. His examples were the ones we've all heard: Beta vs. VHS, DOS vs. Mac (et. al.), LCD vs. Plasma. I could add Smalltalk vs. C++ or Java, too. The problem is, you have to really consider the term "best", and how the buyers of the product rank things:
- Beta vs. VHS: early on, VHS had double the recording capability. That mattered a lot if you wanted to, say, turn on the VCR at 8, go out, and be sure that you captured the entire schedule on your favorite channel
- DOS vs. everything else: Price was the killer. When I bought my first PC, I really wanted a Mac - but I couldn't afford the markup (over $2K difference at the time). The market chose price over functionality. As time went on, the sheer size of the DOS/Windows world made for more functionality, too.
- LCD vs. Plasma: You can argue about better picture all you want, but presentation matters - and in the store, the brighter LCD screen counts as "better".
What about Smalltalk? Well, I started teaching Smalltalk classes back in 1992. You have to keep something basic in mind: the base image back then consumed 6 MB of RAM. On today's systems that ship with 2-4 GB, the slightly larger 9 MB is trivial, but back then, 1-2 MB was common, and 8 MB was a loaded system. On a loaded system, running the Windows version of Smalltalk took over the machine. Sure, you were vastly more productive than C++, but could you deploy your application - would it run on the typical end user system of the day?
Things have changed for Smalltalk, fortunately. Today, there are vast reams of memory available on desktops, and Smalltalk is, well, small compared to the typical Java system. The old problems Smalltalk had are long gone, and now it's mostly a matter of getting past the old perceptions. Based on Cincom's profitability in Smalltalk, I'd say we are doing well there.
My main point is this: before you make the claim that the "better product lost", look at the winning product with the eyes of the people who bought the other one. It's probably the case that they're ranking something the second product does better much, much more highly than you expected.
Technorati Tags: sales
Last week Mozilla released Bespin, their web-based framework for code editing, and only a few days later Boris Bokowski and Simon Kaegi implemented an Eclipse-based Bespin server using headless Eclipse plug-ins. With the presentation of the web-based Eclipse workbench at EclipseCon and the release of products like Heroku, a web-based IDE and hosting environment for RoR apps, it seems that web-based IDEs might soon become mainstream
The idea of having the toolset live in the browser is getting to be mainstream - and we're getting closer to release status with Web Velocity. Want to know more? Check out Michael's latest video.
Have a listen to this short bit from the Pandora folks. Why would you pay for Satellite radio when you can stream a custom station through your home network via WiFi, and via 2g or 3g in the car? I've found new music this way, so that argument is dead, too.
It's not just satellite radio, either - other than for local news/weather, terrestrial radio is doomed as well. I think talk radio will move towards live streaming as well - it'll allow the hosts to cut out a whole range of middlemen whose value is rapidly approaching zero.
Technorati Tags: radio
One of the things that sticks to Smalltalk (unfairly now) is the idea that building and deploying a runtime is hard. In this post, I'll take a small application and demonstrate how to go from "code in the environment" to a runtime application. If you want to use this sample application, simply go to the public store repository and install ITunesAlarmClock. It doesn't have any outside pre-reqs. First, here's a snapshot of the simple iTunes alarm clock application:
The application is simple - specify a time, set an alarm, and when the time rolls around, iTunes will play at the specified volume. Here's the way we get the runtime to start the application up when the image starts:
We create a subclass of UserApplication and add a #main method. In #main, we put our startup code. That's most of what we needed. Next, there's a short script to build the image:
| promise stream | Parcel loadParcelFrom: 'ITunesAlarmClock.pcl'. DeploymentOptionsSystem current startInRuntime: true. Notifier current: AlarmClock.EmergencyHandler. Notifier uheFilename: 'error.log'. Notifier logToFile: true. UI.WindowManager noWindowBlock: [:windowManager | ]. stream := WriteStream on: String new. stream nextPutAll: 'changeRequest'; cr; cr; tab. stream nextPutAll: '^true'. VisualLauncher compile: stream contents. VisualLauncher allInstances do: [:each | each closeRequest]. (Delay forSeconds: 10) wait. promise := [ObjectMemory permSaveAs: 'alarmClock' thenQuit: false] promise. promise value. RuntimeSystem isRuntime ifFalse: [ObjectMemory quit].
Adapting that script to your own needs should be straightforward. Here's what's going on there (the file is called configureAlarmImage.st):
- We tell the runtime system that we'll be in deployment
- We specify that the emergency handler to use is AlarmClock.EmergencyHandler
- We tell the WindowManager not to bring up the launcher when there are no other windows open
- The streaming code is a bit of trickery to tell the launcher to not prompt us when we close it in the next couple of lines.
- Then we save the image, with a delay - that's to ensure that the resulting image doesn't start up with the launcher visibly closing.
- Finally, we quit the image we're in, having created a new one
Now, to use that we start the image on the command line. The Mac shell script I use is below; on Linux/Unix you would do something similar. On Windows, a simple batch file would suffice. Heck, you can even just type the command in at the command line:
#!/bin/sh ./startvw ~/Applications/vw7.6/preview/packaging/base.im -fileIn configureAlarmImage.st
That starts up the base image (which does not have development tools in it), loads our code and configures the image (as explained above), and then saves it.
That gives us an image that will start up with our application running. Finally, you need to put this into a platform specific runtime. On Windows, follow the directions here to create an executable. On Mac, follow the directions here. If you want to create a nice DMG file, just use the Disk Utility application to build that. On Unix/Linux, all you need to do is change the image to have executable permissions, and put it and the VM in the same directory. The image can then be run as if it were a schell script.
And that's it! Not a ton of steps, and it's all automatable.
PCWorld reports that Ballmer is chiding Apple for not being open enough:
In what only can possibly be the most recent of Microsoft CEO Steve Ballmer's continuing series of pearls of wisdom, the Rambler from Redmond told a panel at the World Mobile Congress in Barcelona earlier this week: "I agree that no single company can create all the hardware and software. Openness is central because it's the foundation of choice."
Maybe I should have tagged this post as humor; I'm sure there's a joke in there somewhere...