Humans Being

I have about 40 draft posts sitting in MarsEdit, which have been growing steadily over the months. Generally they're just little jottings and ideas I've jotted for posts in the hopes of following them up later, which I always intend to do yet so rarely actually do.

Every once in awhile I'll scroll through the subjects to try to clear out things which are now moot, or I've covered in another way, because it makes me feel accomplished on days when I'm feeling anything but. Amusingly enough, one of them had this image...

I've already covered how I'm prone to slip into a heady mixture of Flowers for Algernon and Willy Wonka when I've been pushing life at the seams a bit, and even drawn readers into the madness, so for tonight we'll ignore my mouth and stick to the jottings I'd left around the image...

Everybody wants some

That screenshot is actually quite old, or at least a month or two, and the part of the conversation you missed was basically me saying "Dude, everything alright?"

Neither of us has any idea what his status was set to, I just happened to roll in that evening, see it, and then had a compulsion to make sure everything was kosher. Depending on how frequently you use instant messaging, something similar to the above has happened to you, or you've done it to someone else.

This happens to me all the time, because I have a habit of leaving bits of lyrics from whatever I'm listening to up or just whatever pops into my head that feels appropriate or even amuses me, and all these people that somehow found my GTalk address and added me are always asking if I'm about to remove a blogger from the census.

I mention this because while I'm entirely familiar with the phenomenon, and should have it in the back of my head. As the screenshot shows, even I fell prey to it, because I was lacking the context of the information I was taking in, and context is really important.

I'll wait

We'll get back to context in a minute, but it's worth noting my own bit of context: I am a terrible friend.

I don't write, I don't call, I don't remember birthdays, I don't really remember anything really except that they're my friend and if we aren't interacting they're in a sort of stasis in my head. It doesn't mean I don't think about them, or care, or look forward to getting together with them, or can't be thoughtful...

It just means I never think to actually pick up the damn phone, let alone the other little things that Normals find important in solidifying social bonds. I do those things, but I'm not above having a reminder in the calendar pop up that I haven't called xyz in a month, and I should.

Instant messaging has become quite the enabler for this flaw in my character, because when I fire up my IM client, I have a pretty decent dashboard of how everyone is doing right then and there without having to actually say anything or ask. I can just infer. It's not perfect, as someone having "OMG this is horrible" as their status takes on a different meaning if they're studying at the library versus sitting in the waiting room at a hospital, but it's pretty slick.

If someone you know changes their behavior via their status, like say, being online often and then notsomuch, your brain can fill in -- via what you happen to know about them -- what's going on with them. You'll fill in the blanks based upon what you already know about the person and the circumstances up to that point, because that's how we work.

Right now, my dashboard has wound its way to cell-phones, where one can look and see the status of those they care about while they aren't actually at the computer, and those at a computer can see my status while I'm out and about with the cell phone.

In the near future, things like RFID and little GPS tags stuffed into that cellphone will make situational context, like the library example I mentioned, much better, but there is still so much missing...

The context

We infer a hundred little things every day of our life. Assumption is the mother of all fuckups, yet if we didn't do it our lives would basically be over before they start. While avoiding going deep into terms like cognitive psychology, at some point you just kinda have to assume gravity is going to be there, and that the laws of physics are going to hold, because walking is so much easier if you aren't having to work it out via unit testing every time you try.

Yes, you're opening yourself up to a regression in the laws of physics you won't catch until it's too late, making refactoring your gait a bitch and a half -- and possibly causing bodily harm -- but life is too short and it's worked out so far. Socially, inferring is the norm, both physically and verbally, and we're constantly taking cues on how to interpret what we're seeing by how it's being delivered. A nod of the head, an eyebrow raised while speaking, everything factors into what we'll infer from what we're seeing, and luckily enough, the world provides a lot of context for what we're taking in.

In the digital world, the state of the art in delivering context is the smiley.

1984

To be fair to computers, smileys -- aka emoticons -- are basically the state of the art in context for anything involving the written word, and showed up in printed works back in the 1950s. They're valuable, as consider:

  • Bite me.

Versus:

  • Bite me. :-(

Versus:

  • Bite me. :-)

The value is self-evident, and it's obvious emoticons are designed to impart context that would normally be imparted by the real world in some form, often through multiple forms. Even if you're talking on the phone, and not in person, you at least have the tone and speech patterns of the speaker to give the information you're taking in context.

While emoticons in various forms do allow us to convey some context with the information we're imparting, they suffer from an achilles heel: They're conscious actions. A smiley can make all the difference between between a laugh and someone unintentionally starting a flame war, and that's great, assuming you remember to include the smiley.

When we're interacting with someone, we'll often consciously impart context in some way if we're worried about how something will be taken, and we're thinking before we open our mouths. However, even then we're giving subconscious cues along with the conscious ones, and most people just don't think much before they open their mouth or act, they just do it, and to compensate we've developed hardware in our brains designed to subconsciously pick up on the cues.

The obvious answer would appear to be to have the computer become more like us -- be able to interpret the context in which we're saying typing what we're typing -- and pass that along in some form to the recipient...

Maybe in 20 years.

House of pain

If you can't tell, I'm somewhat obsessed with the stupidity of computers as they currently exist, especially when compared to say, twenty years ago. They do a ton of things better, but they do very few things smarter than the past. I.E., if you own iPhoto and plugin your digital camera, your system infers that you probably want to download some new photos, and opens up iPhoto, runs a check, and then asks if you want to download the images.

Having the computer infer this is a nice touch, but it's barely a step above when you'd slide in a CD-ROM, and the computer would auto-run any applications it found or load up your CD Player, or even when a computer would assume you wanted to mount a floppy when it was inserted instead of making you actually enter a command. It's hard to really get excited, because there's just been little progression, and for the status situation I gave a lot of the pieces are there for the computer to get a better sense of what's going on with you.

People probably type differently when they're relaxed versus when they're seriously pissed off, and it isn't as though the computer can't capture your keystrokes and interval between keys and such. A lot of the body language cues we give off in social situations don't go away either, and it isn't as though cameras are all that expensive now. We frown, we chuckle, we hesitate and pause, our eyebrows do weird things...

And of course everyone has different patterns, so the computer has to learn what it means if you exhibit certain patterns, and there are entire classes of algorithms out there designed to allow a computer to weight its rule system based on specific situations: I.E., bayesian, or how your computer classifies spam. Your computer doesn't need to be HAL9000 to handle this, and many of the pieces are there for improving a computer's ability to know the context of what we're doing.

However, while many of the pieces are there, it's worth noting two things:

  • The fact that we can get an idea of how something will go is somewhat deceptive -- it would take a ton of work and research and testing to actually make it into the real deal.

  • While I'm giving specific examples from my life to get the point across, the context problem is much broader than that.

    If I hand you a cup of coffee, it'd be fair for you to infer that it's for you to drink. If there is someone sitting next to you, and I'm holding two cups with one on the counter behind me, it would be fair for you to infer that you should pass the one I'm giving you on, as the other cup is for you.

    The state of the art here for computers would be one or the other -- you either pass it on or you don't -- as about all a computer can do is save your past settings or follow a built-in rule.

Computers have a really hard time figuring out that you wanted to do x before, but you're not doing y, so it should do z. I.E., chances are you install a lot of software by downloading a .dmg, and then:

  1. Double-clicking and mounting the .dmg.

  2. Dragging what's inside of it to a specific place on your drive, like the Applications folder.

  3. Unmounting the .dmg.

  4. Dragging the .dmg to the trash or a folder, then opening the new app to make sure things aren't wonky.

There are a few ways one could make this smarter, and hence save the user time:

  1. Have the computer keep an eye on your actions, and analyze it for patterns. I.E., at the end of something like the above, 99% of people are going to drag the .dmg to the trash or to a folder 99% of the time, and if the computer can learn what you're going to want to do 99% of the time, it can save you time 99% of the time.

  2. When you double click the DMG, it brings up a screen asking if you'd like to install it into blah, and just automates all of the above for you, either putting it in /Applications, or ~/Applications if it happens to exist.

I'm enamored by the ideas of [1], because once the system starts to have an idea of what you like and how you use your software, other apps can tie into it -- it'll be a brave new world for developers. Both of those would be valuable, but [2] is the only one that has a chance in hell of ever being seen, because it would be exceedingly easy for [1] to become a total clusterfuck.

  • Make the computer smart -- yet not smart enough -- and you have something exceedingly dumb.

  • Actually making use of all the data and how it relates to software design and user interface would probably open an entirely new subset of software design as developers would have to take things to account that would be a complete shift from the way they're done now. This wouldn't be akin to just running an SQL query on where the user last saved a file instead of where your app last saved a file, your app would have to become almost entirely fluid to wrap itself around what the user wanted.

Don't be misled -- while it's all possible in the sense that people know what would need to happen for our computers to become a little bit smarter instead of a little bit prettier, it's mondo hard stuff. New tools would have to be developed, and much of it is probably more than a developer would want to deal with unless a lot of the shite they're forced to deal with in current programming paradigms was removed, freeing them to think in different ways.

The devil is in the details, and hence the devil is in the research and development budget, and no one is around to make our computers smarter instead of prettier.

Jump

For the purposes of this, we'll segment research into two basic types:

  1. "Basic research"

  2. "Applied research"

Basic research is the stuff you are looking into but don't yet know how it'll apply, whereas applied research is when you have to figure some stuff out for something you're trying to bring to market.

To give an example, at some point people decided it would be cool to have computers that could talk, and then computers that could listen, and then computers that could understand handwriting, etc. You don't just sit down and write the code for that, you throw some brains in a lab and let them bang on all sorts of ideas to see if anything might possibly work out. You don't do basic research with the idea of turning out a product on it in a year, you do it in the hopes that you find the Next Big Thing™ out of the 1,000 dead ends. A nice bonus is the ability to file patents on things you don't develop for your IP warchest.

For the most part, the personal computing industry has been skating on the Basic research of decades gone past. This isn't that surprising, because for a long time personal computers were about bringing the technology of more capable computers to the Desktop, but now personal computers are almost the entire industry, and things have progressed to a state where creating and improving an operating system isn't a small task.

It also doesn't mean that there hadn't been hard work, but you can trace the basic foundations of say, most of the programming languages we use today back to what people were coming up with in the 70's and 80's. Something like Quartz and Aqua were innovative, but only in actually getting it onto an OS as the entire display layer -- it wasn't like people hadn't worked with buffered windows and such before so most of it comes down to implementation.

There are areas of the industry that are doing tons of Basic Research, but they're primarily in the hardware arenas because expectations are so high -- And even then it's one hell of a grind. These aren't fun times for the makers of CPUs and hard drives. However, just about everything in software right now is about Applied Research, because that's all that most companies can even begin to afford...

Panama

One of the first things Steve Jobs did when he took over Apple was to slash its Research and Development budget to the bone, and this was after Amelio had been trimming a lot of the fat. Just about all Basic Research was slashed; If it wasn't directly applicable -- IE, marketable -- to something they were going to sell shortly, it was stomped dead.

This isn't to say this was a bad move, as at that time Apple was operating as though it was a much larger company than it really was, and was bleeding cash from every orifice. Everything came down to, "We'd like to build x. If we spend y developing it, how much would we have to charge and how many would we have to sell over how long to make money."

Apple's long-term R&D budget generally boils down to something like Quartz, where the development costs only really made sense (And do remember Apple was taking some serious financial hits about this time) when you took into account they would be earning it back over the life of Mac OS X. It made sense to take a little bit of a hit early, but Quartz wasn't the Next Big Thing™, Quartz was taking up where NeXT was, and third-party applications were, and where everyone was going, and trying to get there first in the Operating System (And perhaps too early).

You really can't expect The Next Big Thing™ to come from Apple anymore, that's just not the reality of the situation. The NBT™ will probably cost billions, and Apple is still trying to figure out how to let me bank from home with their browser.

They have their hands full, and simply can't afford to go throwing cash at things that may or may not change the world. I.E., they aren't rolling oodles of cash into research on speech recognition and such just because one day we're going to want our computers to be like Star Trek, they're just sort of throwing in the speech tech the Apple of old developed, and we're not even going to talk about, say, something like handwriting recognition.

Oh yes, they have their iPod money, but that market is going to get competitive, and since its making money that money kinda needs to be put to use in that market as much as possible. However, there is a company out there doing research on this kind of stuff...

Runnin' with the devil

A lot of the cool Basic Research we're still suckling on was developed by companies that had the luxury of being able to do it way back when. Microsoft, to their credit, is probably near the point of the vanguard when it comes to this type of research and basically becoming one of the premiere patent machines.

One of the amusing side-effects of all this research is that they're basically dolling it out to startups, because:

  • Most Apple and Linux people try to apply their world to the one Microsoft is playing in, and they're vastly different beasts. I.E., they'd be laughed at if they tried to release an OS once a year, their market is simply too big for that, yet someone should be using the tech...

  • If Microsoft finds some great way for improving speech recognition 500%, they can add it to Windows in the next version. However, the OS is becoming a commodity product -- helped along by the likes of Linux and BSD -- and either way they can't add in an extra $50 because speech recognition is starting to kick ass.

    However, if they dole out that tech to a startup, they can potentially use it to make much more money with it than Microsoft could by throwing it into Windows.

You also have the problem of Microsoft being a cash-cow public company, and there is little real incentive for them to push for the NBT outside of how much cash they can bring in, and if they can rake in cash via incremental improvements it's a very hard sell to explain why they need to devote a few billion to the problem of context.

I'm not discounting Microsoft from the NBT™, though.

They have the resources, and they have the brains around the world, and they have a habit of squeezing the company's culture from the tube towards whatever direction they need to be going in. The internet and web browser are the most commonly used examples, but I still don't think most in the Mac and Linux camp have a realistic view of the security bomb Microsoft is going to be dropping with Windows Vista++.

If Microsoft decides to devote the resources towards making computers smarter instead of just prettier, they could do it, but someone needs to be within sight on the track or there's little reason for them to sprint.

Poundcake

Academic Research -- when it comes to these areas -- has become so fucked up it's just downright scary. It's rife with corruption, politics, and corporate influence.

Some time ago Universities realized that instead of taking more traditional grant funds and working on forward-thinking things that go into the public domain, they could simply take more money from companies who point them towards areas they'd like solved so they don't have to build their own team, or the Universities can simply file the patents themselves.

There are eggheads in Academia doing great things and great research, they're just having to do it within a system that seems to be going retarded around them. There is little they can do about it if they want to eat, so they are increasingly working on things that can help solve some company's problem tomorrow instead of the problems they'll have in five years.

Cradle will rock

There's a ton of innovative stuff in the OSS world, but in my experience it's because some super bright guy did something original and just happened to release it as open source. If the NBT™ comes out of the OSS world, it'll be because some scary-smart guy comes up with a novel approach and just happens to release it as OSS and then it's rubbed shiny.

OSS's development model leads to a lot of good things, but it often doesn't lead to major innovation in a project until its past the phase of playing catch-up with its closed-source competitors, and then the tech splinters and all sorts cool things start popping up.

When it comes to the Desktop, Linux is getting there (It's there for me in 95% of the time now on x86 hardware) when it comes to "Good enough" and "Sometimes it's actually better", but there is still a hell of a lot of work, and its going to take years. This could probably be accelerated if everyone got on board-- as the term "herding cats" is coming to mind -- and it would probably cause it to lose some of its charm in the process.

However, it is catching up to what we have now, and it's doing it faster and faster as the years go by and the differences between it and OS X and Windows are becoming less and less clear-cut, and that may be what allows Microsoft to up the ante and spend oodles of cash on the NBT™.

Their main defense against OSS (excluding lock-in) is to out-develop and out-research it, and then market those developments so they're considered "must have's" by consumers, while Linux Desktops have to try to keep up. Teh shiney only goes so far, and a "context pool" seems as good a purple pill as any...

Mac OS X isn't really on Microsoft's radar outside of PR and mindshare -- as long as Apple is building their own hardware, they aren't really a threat. However, just by inching closer on the track, OSS may well spur Microsoft to devote the resources towards the NBT™.

Why can't this be love

After jotting all this down, I'm realizing my notes often stay in the Drafts folder because they're just that -- notes, and things to work out mentally while listening to Van Halen -- rather than large fully-formed ideas.

The above equation requires one to think that context is the NBT™, rather than something else, and I doubt that's the only variable one could swap out that'd change it all around. Still, it's where my head is until someone moves it.

While I'm obviously sick of purple pills and placebos, it's also worth noting that I'm still excited about technology, it just generally occurs on a smaller scale now -- often the individual developer and what he's pulling off -- rather than what the companies are dolling out as today's purple pill. I've encountered this in a lot of hardcore gamers, where after playing games and watching the graphics evolve over the years, one starts to care about actual gameplay more and more rather than some 5% improvement in the graphics engine.

I really don't expect personal computers to be HAL9000, I just expect them to be better than they currently are yet have no clue where it's going to come from. That's kinda scary.

yummy alcohol posted button Posted by drunkenbatman
    September 27, 2005, at 12:59 AM


Comments (22)




Post a comment



Anonymous comments are allowed, but please enter something for a name.

And do endeavor to appear sane.









Remember personal info?