You Never Write, You Never Call
April 11, 2008 on 7:44 pm | In | Comments OffIf you use Microsoft's Windows or Apple's OS X and for some reason an application crashes, you know the drill. A dialog box opens automatically ready to report what just happened back to Redmond or Cupertino. It is an opt-in procedure so you can decide not to send the report, which is what I tend to do the third or fourth time the same crash happens. For an Apple or a Microsoft this capability of seeing, immediately and automatically, what went wrong is invaluable for planning that next service pack or security update. Alas, this kind of diagnostic capability hasn't been available to those developers who don't also happen to own the operating system as Apple and Microsoft do. But that fact is changing and now there is a way for many third-party developers to put this same capability into their applications.
PreEmptive Solutions is a software tools company from Ohio that is best known for its DashO and Dotfuscator products, which are used to obfuscate and to some extent optimize bytecodes for Java and .NET applications, respectively. These interpreted programming environments, where a lot of corporate development is done today, are especially vulnerable because the program code is exposed and can easily be copied or messed with. Obfuscation makes such code theft harder to accomplish by changing the appearance of the code, though not its operation. It's hard to track program logic when every variable -- no matter what the actual value -- is called "a" for example.
PreEmptive has added to its latest version of Dotfuscator what it calls "Runtime Intelligence" -- that ability to send data or to call for help when there is trouble with an obfuscated application.
But wait, there's more! Application failure is only one of many possible triggering events for Runtime Intelligence. It can be triggered by a crash but also by a user exit: why did you choose to close the application? This makes it faster and more reliable to gather data from beta releases and make product improvements, for example. Now it is possible to evaluate what users do and don't use in a beta product, where they stopped working, what features were ignored, etc. Why put a lot of effort into a feature that users apparently don't even care about?
The triggering and reporting code is added after the application, itself, is completely finished. This means you can add these services without modifying or even having access to source code. Adding this code, since it happens as part of obfuscation and optimization, not only doesn't make the application bigger, it usually makes the application code smaller and therefore faster to load and run.
While end-users may not have even heard of Dotfuscator, this doesn't mean it isn't already running in some version on their PCs. As part of Microsoft's Development Environment for .NET (though not from Microsoft, interestingly), Dotfuscator or the hooks to run it are in every Windows machine that has currently installed at least one .NET application. So for Windows users, this capability is probably already sitting on their desks.
This would be a good point to say that I have no personal financial interest in PreEmptive Solutions. I just like their products.
What about privacy? What about my data? Doesn't this Runtime Intelligence stuff make me vulnerable to everything from identity theft to mind control by Bill Gates?
Probably not. In most cases it is opt-in, so you can decide not to participate. What generally counts to software companies is statistical significance, so if you opt out of reporting a beta problem chances are enough other people will have stayed in to report all the big bugs. Also Runtime Intelligence is primarily offered as a service by PreEmptive, so the data first goes to them, where it is aggregated and any identity information removed. Corporate users can choose to gather data to their own servers, but since they are also probably reading your e-mail, that horse has already left the barn. Remember there is no specific freedom of speech or even right to privacy in corporate life.
Let me repeat that in case it came as a surprise: there is no freedom of speech or even right to privacy in corporate life.
One area where this new capability will find wide use is in the sale of software, itself. The software business has changed dramatically in the last decade and most applications are today sold or delivered online and the sales cycle generally begins with a potential customer downloading a demo version. It is in the interest of the software company to convert as many of those demos as possible into paid versions and Runtime Intelligence can help that happen.
Evaluation copies are, for most software companies, a black hole. At best the company can hope to learn through activation of the program that it has been used to at least some extent, but that's it. An otherwise very motivated customer could miss the opportunity to buy simply through distraction or a mistake in using the program. Runtime Intelligence, in contrast, can report back to a CRM system when and how an evaluation version has been used. But even more importantly, it will often show exactly when and where the customer STOPPED using the demo, which could indicate a bug or part of the application that could use improvement. The result is more data, more information, and ultimately more sales.
I think Runtime Intelligence will become an important part of building applications in future.
A very different approach to the same kind of problem was presented this week by Google with its Google App Engine. In this instance, of course, the applications run entirely in the Google computing cloud so there is not much to download or even to, frankly, administer. But if your Python coding is good enough it is easy to see how you could emulate parts of the Runtime Intelligence functions I've just covered from PreEmptive. This is very seductive for developers. Let Google sweat the hard stuff, bearing the brunt of scaling your app to galaxy class. But like Amazon's EC2, which competes in a similar space, Google's App Engine is a work very much in progress.
Dave Winer calls Python "the new BASIC" and I suppose he's right, especially in its BASIC-like choice to abandon thirty years of C, C++, Java, and C# technology for a different path. But there will always be new languages and new approaches to computing. What I think we have here that's truly new with Google's App Engine is a company with deep pockets willing to spend some real money to push its own cloud agenda combined with some new technology that is, because of the nature of the service, entirely hidden from us.
Simply put, Google has made some enormous technical breakthroughs using the new multi-core processors. New platforms that use massive numbers of cores and even more massive numbers of program threads per core have led to performance increases in Google's plant that make it possible to roll out services like the Google App Engine. This is an instance not so much of brute force but of brute elegance. But if you are Google what do you do? Do you share these new ideas with your competitors? Not if you can help it. You EMBODY them in new services where the cogs and gears are hidden. It's strategic for Google and important enough that they'll do whatever it takes to make the platform attractive to us while also doing whatever it takes to keep us from knowing how it really works.
links for 2008-04-11
April 11, 2008 on 9:37 am | In Uncategorized | Comments Off-
This looks like it will be a very fun game.
MSN Direct
April 7, 2008 on 5:17 am | In Cars, Electronics | Comments OffI have been using the Nuvi 680 for several months. One of the reasons that I bought it was for the traffic information provided by MSN Direct. I have been unimpressed with the quality of the data. There are several problems:
- There are many areas that don't have coverage. For example, when driving from San Jose to Sacramento, as soon as we left the local area there was no coverage. Unfortunately, we encountered a traffic delay that we could have been routed around.
- Many of the roads that I travel on to and from work are not included in the MSN Direct data. I only have seen information on interstates and state and US highways.
- The data seems to be stale. I have had many occasions when the Nuvi stated that there was a delay, when the delay had already cleared up.
I think that the Dash Express could present better data, but I still have some reservations.
- It doesn't have bluetooth.
- The form factor doesn't really lend well for a portable unit. I can slip the Nuvi into my pocket when I take it from my car.
Ozzy Knows Best
April 4, 2008 on 5:26 pm | In | Comments OffWhy can't they be like we were, perfect in every way?
What's the matter with kids today?
-- Paul Lynde, Bye Bye Birdie
Every generation disapproves of the one that follows and barely claims to understand the generation that follows that. It's the way we are, simply because we tend to see everything in the context of our own experience -- an experience that is changed by age, the times we grew up in, and yes by technology. I'm from the Baby Boom generation and we, by our sheer numbers, have had an inordinate effect on what it means to be "perfect in every way." But our time is passing quickly just as technology explodes after 50 years of Moore's Law. The result is technology that will shortly be beyond us but not beyond the generations that follow. Our grandchildren will run a world very different from the one we ran and many institutions will simply have to adjust or die.
This is the third and, I promise, last week of my look at education and technology. In the two previous weeks we established that there is a generational transition happening that is already having a profound destabilizing effect on education. Parents who are today in their 20s -- parents of the kids who go to school with my three sons ages 6, 3 and 1 -- grew up with personal computers, mobile phones and video games. More importantly, THEIR PARENTS (our kids, except for those of dirty old men like me) did, too.
This new generation of parents lives in a digital world and has little patience with analog traditions. Where we think of bricks and books they think of electrons and photons. Where we remember what time the library opens, they wonder why it should ever close. The world will shortly be more theirs than ours and they'll be calling the shots with the result that many aspects of life, including education, will change forever. This is inevitable and can't be halted.
Nor is it even appropriate or good for it to be halted, which is one point some readers have trouble understanding. If you can't stop the tide, it is a waste of resources even to try.
This emerging world will be very different in many ways. How many of these kids expect to someday earn a pension? Surveys show that few of them expect Social Security to even survive until their retirement -- if they can ever retire at all. Where we went through a couple career changes they'll go through half a dozen or more in a life that will outlast ours by 20 years. Growing up is changing from becoming what you will be to becoming what you will be for a while, and that has a huge impact on the educational requirements placed on our society.
If you expect to start your career over half a dozen times, how do you prepare for careers 2-6?
As we learned last week from the Amish, there are very efficient educational models out there. Few would look to the Amish as role models yet they are remarkably good at what they do.
Part of any answer is figuring out what education is for. We use it for paying dues, for passing time until a certain level of maturity is reached. We use it for networking and finding mates. We use it for acting goofy at the expense of our parents. And we use it, to some extent, to learn what we need to know to get by.
The question that has so far gone unanswered in this series, then, is how will we learn in the future?
It's easy for old farts like me to assume everybody will learn the way we did, but that's unlikely simply because the underlying assumptions are changing. When I was a kid human labor was cheap and technology was expensive. Today technology is cheap and getting cheaper, while human labor is expensive and becoming more so. Yet our model of education technology is still so defined by that remembered Apple IIe in the corner of the classroom that is it difficult for many to imagine truly pervasive educational technology.
This is in large part because there is no way that Apple IIe or any PC is going to somehow expand to replace books and teachers and classrooms. For education, the personal computer is probably a dead end. It's not that we won't continue to have and use PCs in schools, but the market and intellectual momentum clearly lie elsewhere.
So forget about personal computers: the future of education probably lies with digital games.
I say "digital games" rather than "video games" or "PC games," or "handheld games," because the platform doesn't matter as much as the application. Whether it is a PC or Mac, xBox or PS3, PSP or Nintendo DS, gaming has done an excellent job of proving that the application is more important than the platform on which it runs.
Stories came out this week from the NPD Group announcing that 72 percent of Americans play PC or video games with 58 percent of those played online. Those numbers -- which apparently don't include kids, by the way -- are HUGE and explain all by themselves much of what is happening to traditional mass media like TV, magazines and newspapers.
We're spending so much time playing games that we don't have as much time for those older pursuits. Only drive-time radio thrives and that's just because we don't have a practical model for playing games while driving.
Digital games are a bigger business than Hollywood movies, than book publishing, than television, than music.
And at a time when what we're decrying is the lack of attention our children and grandchildren are paying to traditional modes of education, they are spending hundreds of hours learning to steal virtual cars and play lead air guitar.
Clearly the best instructional platform is one that already attracts users to spend countless hours in its mastery. At this point it is a relatively simple matter to bend some games to the will of education and training.
While I can describe this and even advocate it, I can't do it, myself. I'm simply too old. Studies show there are gamers and non-gamers and I am definitely one of the latter. I've been a pilot for close to 40 years and I don't even like to play Flight Simulator. But that's my problem and that of people from my generation and older. My wife, who is 15 years younger than me, plays all the time.
It is easy to imagine how the PC and video game industries could teach us many things other than how to blast our opponents into infinity. If you play a Beowulf game for 20 hours and it includes all the characters and narrative of the book, will you have mastered the material well enough to pass a test? Probably.
I am not saying schools will disappear. I AM saying that new modes of instruction will emerge and they will inevitably involve processing power and context. We took our kids to Washington, D.C. for Spring Break and I would have loved to outfit them with MP3 players loaded with age-appropriate descriptions of what we saw. That's just scratching the surface.
The success of the Nintendo Wii game system is important to this emerging change in education because the Wii is the first game system based on an extremely flexible user experience. It's not an especially powerful game platform compared with the PS3 or xBox 360, but it is adaptable and user friendly. People want to do new stuff with their Wii's, so why not use them to learn?
Add to this mobile data and communication and we're back to what John Scully of Apple called so many years ago a Personal Digital Assistant. Scully was 15 years ahead of his time and didn't know it. But the PDA that actually works, if I've done my Moore's Law calculation correctly, will be at least 1,024 times as powerful as that original Newton.
My vision for future digital education has a key difference from traditional 20th century education. A fundamental aspect of education has always been that it comes to abrupt and quite specific endpoints associated with various cultural rites of passage. We graduate. There is a first day of school and a last day of school. At some highly specific and anticipated moment we disconnect from the education mother ship and go off on our own, often never to return.
Why?
Well to make room in school for someone else, of course.
Why?
In my future model the "school" is only a PC/game machine/mobile phone/headset thingee that clues me in about everything around me and helps me learn what I need to know. Why would I ever give that up?
The truth is we won't. If we have more students, we just build more devices. Classrooms aren't absolutely necessary, nor will location even matter.
My proposed model for future education is actually based on the home life of Ozzy Osbourne. Remember The Osbournes on MTV? Who were those kids always hanging out with young Jack and Kelly Osbourne? Remember, they were slightly older and substantially smarter and better looking but not so much better looking as to be threatening. They hung out with Jack and Kelly but clearly answered to Sharon Osbourne. Why would these cooler kids even bother with Jack and Kelly? They were Osbourne employees, hand-selected playmates intended to keep dropouts Jack and Kelly safe and learning after a fashion. They were the flesh-and-blood versions of a true Personal Digital Assistant that any parent would hire if they had Ozzy's money.
Now turn that model into a Bluetooth headset. Imagine a 24/7 mobile Google with a conscience. "Do you really think this is such a good idea, Bob?"
It's your favorite teacher with you all the time but with an ON-OFF switch. "Well if you really insist on trying to fly this Huey helicopter -- AND I CERTAINLY RECOMMEND AGAINST IT -- start by putting your right hand on that lever attached to the floor, which is called a cyclic."
StupidFilter
April 1, 2008 on 5:17 am | In Computer | Comments Off StupidFilter looks pretty interesting. This is an open source project to filter rampant stupidity. When they release the core engine source code, I will write a plugin for LifeType.
Powered by WordPress with Pool theme design by Borja Fernandez.