technology | writing | life |
|
Friday, February 20, 2004
Akimbo Systems.
These guys are building a device that lets you grab video via the Internet. This is going to be a very big thing some day. Basically, think TiVo, only downloading the video in the background via your broadband, instead of via your cable connection. Bad news, needs content and a very good connection. Good news? It gives a potentially sensical distribution and business model for new content (although, it also means that new content now potentially has to compete with every bit of video ever made). Interesting stuff. /* $blog_id='107730482325992293'; $blog_mail='wiverson@gmail.com'; include ("blogkomm_show_link.php"); */ ?> Wednesday, February 18, 2004
1. Network Aware User Interfaces 2. Multi-threaded User Interfaces 3. Portable Point Energy Sources 5. Economics of Abundance and Digital Copy 6. 3D Technology (Virtual Realities) 8. Sensory Input (Immersive Technologies) 9. Computer Generated Meta-data/Data Linking 10. Personal Robotics and Real World Interactivity Introduction I'll cut to the chase - things in the tech business aren't looking so great right now. People are inclined to blame this on a variety of things, from predatory monopolistic practices to outsourcing to a general economic malaise. Perhaps. From where I sit, I see a general lack of innovation in the areas that are going to lead to the future. There's a distinct emphasis on platforms here - the sort of thing that gives birth to entire new marketplaces. Those that solve these problems are going to enable the future, broadly writ. 1. Network Aware User Interfaces When I'm on the network, I'm given surprisingly little information about my network connection and activity. I'm lucky to have a throbber and a small status bar in my web browser. My various OSes (I'm mostly using Mac OS X, Windows XP, and Linux in VirtualPC nowadays) do provide me with a small bit of info about my current connection status, but that's about it. My network connection goes down? I've got a small script (a shell script on Mac OS X, a batch file on XP) that pings the various parts of my network connection in an attempt to figure out what's wrong (can I ping myself? can I reach the gateway? How about the DNS?). Why isn't this built into the OS? The real problem, however, is that building desktop applications that provide adequate information about the network is too hard. The main application libraries (MFC/.NET, Java's core libraries) should have a user interface component that corresponds to the browser throbber that I can just drop onto a form. This component should be smart enough to display the application's network activity (ideally with an easily user configurable interface, perhaps bringing up a modeless dialog that shows the various network connections opened by the application. If it were really fancy, I could click on a network connection and click "close" and force a network connection to close (sort of a force quit for a network connection). Of course, the real problem is a freezing user interface when there's a network problem. We've all seen otherwise professional software appear to lock up entirely while waiting for a DNS query to time out. Even network-sensitive applications (such as modern browsers) exhibit this problem. Thing is, this may not actually be a network problem so much as a problem with single threaded applications. 2. Multi-threaded User Interfaces At this point, most of us are pretty familiar with the notion of "multi-tasking." The idea is fairly simple - we should be able to run more than one application at the same time. It's linked closely in most minds with protected memory (the notion that one application shouldn't be able to crash another), but as shown in Classic Mac OS, you can have multi-tasking without protected memory (it just doesn't work very well). It's actually extremely easy to write a multi-tasking application (especially on a modern preemptive OS). Write a two line app in your favorite programming language that just loops, printing out "goodbye cruel world," and it's automatically preempted. Now, let's compare that with writing a multi-threaded application. It's WAY too complicated. It's very difficult to share data between threads without running into all sorts of synchronization problems. This, in turn, makes debugging multi-threaded apps excruciating. Most user interface toolkits run on a single thread, meaning a single point-of-failure (for example, waiting for a DNS query to time out) can render an application non-responsive - with the user thinking the application has crashed. This is especially bad when you're working with the Finder or Windows Explorer. Both applications were originally designed to deal with very responsive local storage (if you can't access your hard drive, you can probably at least hear the head grinding the platter to powder). Both applications have been retrofitted to support various network technologies, and both tend to break apart at the seams when using the network. If you're lucky you'll get a very unhelpful spinning dash on Mac OS X or a somewhat bizarre "searching flashlight" on Windows. At least both the Finder and Windows Explorer have the good sense to put up a progress dialog when you're doing something that's going to take time. It should be a lot easier to kick off time or network intensive tasks in the vendor supplied libraries. Now, don't get me wrong. There are toolkits out there for helping out, but they're all bolted on, not a seamless, integrated part of the development environment. 3. Portable point energy sources (Perhaps better known as battery limitations) If you're reading this article, odds are good you already know what I mean. My laptop gets a couple measly hours. My integrated cellphone/Palm isn't much better (amusingly, the "standby time", i.e. when you're not actually using it is measured in days - but actual use, "talk time" is measured in minutes). Interestingly, my Game Bo... I mean, my "other" PDA, can mark up as much as ten hours of solid use time. It's also got a worse screen than my cellphone/Palm. There's been some noise about fuel cells promising longer life, but as far as I know, you can't actually buy one (or charge it once it's depleted). It's too bad, as a lot of other technologies (for example, truly effective solar cells and the conversion of our auto fleets to alternative fuel sources) are more or less hamstrung by a lack of portable energy sources. Honestly, this is probably the one thing on the list, if nailed, that would completely remake the face of the planet. 4. Seamless Security I recently went through the agony of setting up a SSH server, and I really wouldn't want to inflict that pain on anyone. For those of you not familiar, SSH is a security system designed to allow for secure, encrypted communications over an otherwise open network (i.e. the Internet). It's actually got a lot of great features, including port tunneling (allow you to run an insecure protocol over a secure connection), but it's ridiculously complicated to set up. That complexity is a big problem. Trying to explain public and private keys, key passphrases, secure key agents, the difference between RSA and DSA encryption, and all of the rest is just plain insanity. I'd mark this problem down to a lack of care on the part of both users and software manufacturers. Users want security and complain about things like spam, but the convenience of NOT having to worry about things seems to outweigh the intangible benefit of security for most users. Put more simply, there is a dramatic conflict between ease of use and security. This should be solved, well, at the platform level. Make it easy, and bundle it in. 5. Economics of Abundance and Dgital Copy This is also partly a technology, partly part of the ongoing cultural debate, and partly a problem for a saavy business endeavor. In brief, it's too hard to pay for things that are very, very cheap. The main mechanism for online transactions is a credit card. Close behind is PayPal. Both, as noted elsewhere, are pretty impractical for things that cost less than about $5. If you really don't care about things like "margins," you can get away with transactions as little as $1, but even that is pretty terrible. So, here's one solution. Make a very, very, very simple to use system. Allow people to put in their credit card once and then bill them for relatively small quantities (maybe $5 or $10). Then, you can attach this to websites (perhaps as a plug-in) that lets you buy tokens for cheap things in a secure, anonymous fashion. Yes, you'll take a small hit yourself on the credit card fee, but you'll probably make it up in the float. Don't worry about the DRM and all the other nonsense - it's not worth implementing and annoying your users for the relative chump-change we're talking about here. Will it work? The Apple iTunes store works on virtually the same model, and it's got millions of users - but it's only for music. The problem is, we're all hopelessly addicted to free stuff (like this very post you're reading right now). The system has to be easier (and the perceived cost less) than a Google search. 6. 3D Technology (Virtual Realities) Current 3D technology sucks. Sure, we can get nice still shots from the Final Fantasy movie, and we can get cute, albiet plastic looking characters from Toy Story and Shrek, but building and working with 3D technology is still too hard and not good enough. Fortunately, this is an area that's getting tons of really intensive R&D. Interestingly, almost all of this work appears to be coming from the entertainment industry, either in terms of movies or in game development. Interested in a hypercompetitive market? Walk down to your local game store and examine the shelves. The rest of the PC software market is completely stagnant in comparison. A lot of the 3D applications are brutally hobbled by network limitations, but I'd say that there's a minimum of a decade or two of intense innovation and competition in the area of 3D technology before it settles down - an eternity in the world of high tech. 7. Synchronization I've got my laptop, my web-based PIM, my cellphone/Palm. I can synch my contacts, to do list, calendar, and a bunch of tiny text notes. It works (at best) ok. Of all of these, iSync is best on my Mac OS X system. My phone doesn't support BlueTooth, but I've tried it on my Mac OS X system with another cell phone, and it works great. Don't even get me started about how terrible BlueTooth is on a Windows XP system. The problem is, I want to be able to sync a lot more than just some minor PIM data. I use CVS, I use various backup strategies, but it's still a huge pain. Maybe when we have multi-teribyte hard drives in our cellphones with ubiquitous hundred gigabit wireless connections, I won't care, but for now, keeping track of my MP3s and my documents and everything else is still too much of a pain. As long as dealing with moving my data around is a pain, there will still be a market for a faster, better computer. 8. Sensory Input (Immersive Technologies) About the only thing I can buy right now in the way of "immersive" technology is a big monitor, a good sound system, and a force-feedback joystick (with very, very few games that support it). Stop and think about all of the stuff you need to go from this to a fully immersive "virtual reality" as described by a lot of movies. It's hard to say when or how this will happen, but like so many things, it'll get there eventually. For now, think "entertainment." For the future, think "politically sensitive military operations." 9. Computer Generated Meta-data and Data Linking I'll start this by noting that Claris Organizer (and the Newton) both were smart enough that if I wrote "lunch tomorrow with Bob," they would automatically create a noon appointment for me tomorrow, linked to Bob in my contact book. Outlook? Outlook doesn't even keep track of the fact that I've sent email to Bob unless I do a full (and slow) text search. Meta-data (more or less) refers to information about information. For example, in the context of the appointment with Bob, the fact that Bob's contact is associated with the appointment can be considered meta-data. Here's a little secret - most of us hate entering metadata. We won't do it unless someone is paying us to do it, or we're truly passionate about it. For example, going through our MP3 collection and fixing the ID3 tags so we see the correct spelling of individual tracks is a case of fixing the meta-data, not the data (the music itself). I was working for a company once that had a small mail order business. The management basically thought the people working for them (taking and filling orders) were a bunch of morons. Taking a few minutes to talk to the order takers, they complained about a zillion little buttons the management put on the user interface for the order taking software that they were supposed to worry about. For example, management would decree that everything sold on given day had a 10% discount applied - and then they asked for a "Valentine's Day" button to be added to the order taking software. Obviously, the order takers (paid to TAKE ORDERS) ignored the "Valentine's Day" button, as it really didn't matter to them (it just set a bit of meta-data about the order for the management). They still had to enter the discount manually on another screen. I suggested to the management that maybe, just maybe, they could run a report themselves, just keeping note that the Valentine's Day sale was on that day, and drop the button. As the saying goes they just "didn't get it." And continued to assume that their order taking staff was composed of lazy morons. Most of the extremely vocal proponents of meta-data remind me this company's management. Consider most email clients. You have to manually sort and categorize your email into folders (typically labeled things like "business" and "personal"). Isn't it safe to say that all of your email exchanged with your mother is "personal?" Isn't your mother already sorted into a "personal" contacts folder? Why, then, do I have to then tell my computer again that my mother's email is "personal?" This is complicated stuff, to be sure. Our computers should be a lot smarter than they are. Most of us turn off the built-in instant indexing features on our computers because they're too slow and bulky. Maybe it's not even the right direction. But I can tell you now - our computers are really stupid about this stuff. 10. Personal Robotics and Real World Interactivity There was a story a while ago that Lego was dropping their Mindstorm series of simple robotics. I've long wanted one of the kits, so I immediately went to buy one before they disappeared (of course, Lego since denied that they are dropping the line). The kit is cute, but playing with it really drives home how complex robotics is, and how far robotics are from the commoditization of the PC business. Once you move past the too-simple-for-anything-but-play Mindstorms kit, there's nowhere to go but the build-your-own route. Which means assembling your own system from scratch. We're talking software, hardware, everything. It's very hard stuff, too. For example, just getting a robot to know where it is in relationship to where it was five minutes ago - a surprisingly hard task. The Roomba is probably the first mainstream robot. It's easy to envision more, but if robots were as easy to build applications for as PCs, it'd be a lot further along. The business case? Think three things - entertainment, automation, and military. Notable Omissions In no particular order, I've notably not talked about voice, wireless, touch screens (not just for so-called 'tablets'), video conferencing, language translation, search, miniaturization, large data set manipulation, Rendevous and ZeroConf (IP auto-configuration), or any of a host of other potentially revolutionary technology (mostly, because others have already talked about them). Summary This list represents merely the pure technology aspects. Do I think that there is a business model underneath all of these? Of course. If you need help figuring that out, feel free to drop me a line. /* $blog_id='107714581810524854'; $blog_mail='wiverson@gmail.com'; include ("blogkomm_show_link.php"); */ ?> |
03/30/2003 - 04/06/2003 05/04/2003 - 05/11/2003 01/11/2004 - 01/18/2004 01/18/2004 - 01/25/2004 01/25/2004 - 02/01/2004 02/01/2004 - 02/08/2004 02/15/2004 - 02/22/2004 02/29/2004 - 03/07/2004 03/07/2004 - 03/14/2004 03/14/2004 - 03/21/2004 03/28/2004 - 04/04/2004 04/18/2004 - 04/25/2004 05/23/2004 - 05/30/2004 05/30/2004 - 06/06/2004 06/13/2004 - 06/20/2004 06/27/2004 - 07/04/2004 03/27/2005 - 04/03/2005 06/05/2005 - 06/12/2005 07/31/2005 - 08/07/2005 10/09/2005 - 10/16/2005 01/29/2006 - 02/05/2006 04/02/2006 - 04/09/2006 06/04/2006 - 06/11/2006 06/25/2006 - 07/02/2006 08/27/2006 - 09/03/2006 12/17/2006 - 12/24/2006 01/21/2007 - 01/28/2007 07/19/2009 - 07/26/2009
No need to by shy - make contact!
Copyright © 2003-2004 Will Iverson. All rights reserved.