The Life and Times of Brock

I talk about my life as a geek. You love it.

Honours Thesis

For most people that know me, you should know that by now I'm applying for Honours next year, with the intent of researching some good old fashioned UI / User Interface (or the more poetic but abstract term, UX / User Experience). I have been incredibly interested in the practical side of HCI (Human-Computer Interaction) for some time now, and was excited to see if I was able to flex my creative muscles when I did that as a unit (in ICT325). Unfortunately, that was not so much the case, in that the unit was largely the theoretical side of the study of how users use computers, and it did teach me some very important lessons; user testing and feedback is paramount to the success of a product's interface, and that I am not the user of the software I'm creating (this is the basis of user-centered design, which I'll touch on later). 

Even though I was certainly far from being the best student in the unit, my lecturer, Graham, ended up seeing something in me when I was constantly probing him for answers and new concepts, and then I would end up, post-lecture, in a stream of consciousness of my ideas for particular interfaces pertaining to that software and how to improve this software, he must have saw something inside me; a burning desire and passion to move into research and development of my own software. And he became quite vocal about my future at Murdoch as an Honours student.

I guess if it wasn't for Graham mentioning it, or the series of talks we had before and after lectures, I would probably be sitting at my house right now freaking out that I didn't know what to do for the next year.

So, thanks Graham.

Anyway, onto my topic. I have been fascinated with the concept of touch as an interface (if you read the first few posts and didn't pick that up, I'd suggest reading them again, or, at least the titles), and have been seriously considering doing something with it. Talking with Fairuz (another lecturer at Murdoch that just recently moved from Mississippi), I played around with his iPad and rambled on (again, another stream of consciousness) about keyboards and general text input with touch-screens, while showing him Swype. He seemed impressed by the idea, but I countered that it was limited by the qwerty keyboard, and that I wanted to see theoretically if I could improve the layout of the keyboard (much like Dvorak did in the 1930's, even though that never caught on). While the concept of having platform-optimized text input methods (that is, different versions of the keyboard depending on what device you're using) sounds cool in theory because you're using (arguably) the most efficient and fast way of typing, the fact is that humans don't adapt very well to such changes which require their muscle memory, which touch-typing very much does. Nobody wants to re-learn a new keyboard every time they pick up a new device just to save 5 seconds every 10 or so words, when it takes them several days to train themselves - the initial loss of productivity generally overshadows the later benefits gained, which would be one of the reasons I've not learned Dvorak's keyboard yet (well, that and that I can't seem to find a keyboard that really enjoys being swapped around easily).

So we have continued talking, and discussing different opportunities afforded to not only touch input but other paradigms, such as body and hand gesture, and even eye-based interfaces.

This wouldn't be a true HCI-based blog without an image of Minority Report somewhere in it.

Just for a brief note, I actually believe the input methods of the near future is a hybrid between touch, body- and hand-gesture, speech, and yes, even keyboard + mouse and (to a lesser extent) stylus. They will all be used in different aspects when it makes sense, much like how keyboard shortcuts are used in conjunction with mouse gestures and movements (compared alt-tab versus clicking on the desired window, both have pros and cons). The far future will, I believe, primarily utilize thoughts, intentions, emotions, eye movements, and maybe the rest when particular things won't necessarily work (such as brainstorming or trying to write free-hand using a mouse), but that won't be for some time.

Now, reverting back. Essentially I need to write a thesis statement about what I want to tackle. I have considered this:
  • Software Interfaces between mobile phones, slate PC's, touch-based desktop PC's, and desk PC's (Microsoft's Surface) are entirely different, and should be treated as such. People use them differently, and these differences need to be taken into account, and utilized when developing software interfaces for each platform.
That should sufficiently give me enough content to write between 10,000 - 50,000 words on, right?
Posted

My Thoughts on the Future of Computing

We are in an interesting time of transition right at this moment. Computers surround us in nearly every part of our daily lives. It is quite literally impossible to live in a city without interacting with at least a single computer connected to the Internet. It's come so amazingly quickly that most people no longer recognize a computer when they see one. Going to an ATM, you're using a networked computer that communicates with your bank's computers. In one word, computers are now ubiquitous.

The major computers people currently use are standalone desktops, with mouses, keyboards, monitors, and usually a tower or case to support the actual computer. Some are going all-in-one, and others are designed to be portable (notebooks, laptops). These computers are designed for productivity or entertainment.

The mobile world, also, is thriving. Mobile phones, portable media players, and slate computers (tablets or pads) are often heralded as the future of computing. These are smaller, lighter, and usually follow a person around wherever they go.

The third major computer designed for consumers' time is the game console on a television.

Currently, there's a concept of a fourth type of computer entering the market, known as the slate or tablet PC. Essentially, a touch-screen based computer, light enough to carry (nearly) anywhere, and is always connected to the Internet.

Note: I'm not considering the other computers, such as servers, or single-use computers like ATMs, or computer-based ornaments that don't require a person's time (like the computer on a fridge or microwave etc). These I will probably talk about at a later date.

When the iPad first came out, there was a large flurry of people believing the imminent death of the laptop market. Tablet computers are here to stay! They will revolutionize the world! There will be absolutely no need for anyone to use a PC anymore!

Now, while I agree that believe that slate PC's will have their place in the future, I certainly don't think it's here to outright replace the PC. Instead, I think it's here to complement it. Along with their mobile phone and Internet-connected television (currently, the game console). The one thing in common these all have? Internet connection.

By the way, this is what the Internet really looks like when you glance through an ethernet cord.

Sure, sure, there's no doubt that the Internet has revolutionized computing, and I'm stepping on absolutely no new ground by discussing those concepts above. But just hear me out.

Currently, I have four computers, and I'm a poor university student. I have my desktop PC (Frankenstein, self-built), my laptop (MSi Wind), my phone (HTC Desire), and my music player (iPod Touch - albeit largely taken over by my phone). Currently, I'm running four completely separate operating systems (Windows 7, Windows XP, Android 2.2 - Froyo, and iOS), with very little interaction between them. Currently, I have my music on my PC, and can stream that to my phone using AudioGalaxy, provided that the computer is actually on, but can only stream music to my laptop if they're on the same network (and even then there's trouble). The idea: place everything on the cloud and every device can stream.

In theory, that can work. But the major problem, bandwith and storage costs will eventually get in the way.

cloud-computing
Here is a simplified, abstracted way of seeing cloud computing.

I think that, instead of going entirely Cloud Computing, we are going to transition into a hybrid between both Mesh and Cloud Computing.

mesh topology
Here is mesh computing, except imagine that they are modern computers, and replace some of those with a laptop, mobile device (phone), slate PC, your TV (game console), your microwave, fridge, toaster, and so on. The main advantage of this is that it's robust, efficient, and scalable. However, the main problem is that it's difficult and complicated to set up, especially when it's all wireless (which, as far as I can see trends go, it will be).

Note: Grid Computing works too.

Currently, programming is designed for a pre-determined amount of processors. Inside every computer, there is a CPU, or Central Processing Unit, which calculates the logic behind the computer. The movement in the last decade or so is to - instead of just making it faster - add in multiple cores. Two, three, four plus cores are in a single CPU. Code can be specified to run on multiple cores in parallel, making processing (generally) faster and more efficient. The problem with this is that most code is written with a lowest common denominator mindset, or only has the capacity to run on the amount of cores that the programmer specifies (most programs only utilize single-core, with some games using both the CPU and GPU simultaneously, but it's rare outside of research departments to go much beyond this).

Instead, the Operating System of the Future (now called OSoF) will be coded to run on n amount of cores. There will be an intelligent agent who will quickly be able to designate multi-processing (parallel processing) on the fly. It will be able to communicate with computers nearby (or rather, those with the lowest ping), and be able to borrow unused resources (such as a few cores here and there, some left-over RAM, or even some GPU cycles if we're talking graphical or physics-based calculations). Most of this will happen without either user even knowing it's happening. The concept of sharing will be encouraged, but not essential (similar to Seeding in the torrent world--you can choose to not seed, but you're not as good of a member as those who do).

Hopefully, there will be an open standard for sharing of resources between computers, and thus, the type of OS won't even matter (similar to how both TCP/IP and a browser is currently found in all modern operating systems). The only thing that will need to be done, therefore, is to shape the User Interface based on the hardware constraints (input/output types, location, user etc). Essentially, you'll have near limitless back-end hardware.

This is the path I believe Windows Azure is headed. And this is certainly in Ray Ozzie's goals in the near future.

I personally can't wait. I just feel sorry for the people that have to create the security for such a system. Would be enormously complex.
Posted

Seabird: A Mozilla Labs Concept Series Phone

By now, the stories around the web are far and wide on the new Mozilla concept phone called Seabird. If you've not read, you can see it on the following link: https://mozillalabs.com/conceptseries/2010/09/23/seabird/

And it looks sexy:
Seabird Concept 1

It uses Android (but only looks like Eclair; would like some Froyo love to make it look more modern), and has some interesting things, such as the concept of dual pico projectors for keyboards.
Seabird Concept 2

Seabird Concept 3

While these both look cool and will undoubtedly give you awesome bragging rights to anyone you showed this to, I'm not sure exactly how comfortable these will be to use. Soft keyboards (touch-based, software keyboards) have a problem of usually being too small, and the fact that your finger covers the keys, but the problems on a projector-based keyboard is that it removes Haptic feedback (something that comes in handy on nearly any type of touch screen), and that the surface it's on will still be entirely flat (depending on what it's on). Also, it has problems with camera input, in that it's capable of multitouch (it uses a basic camera, after all), but it has trouble differentiating between fingers if one goes in front of the other. For the upper picture (split keyboard), I can see overlapping fingers being a real problem. Of course the software developers can just go the Xbox Kinect route and develop fingers as bone structures and try to internally render where it believes the fingers to be touching.

For most words, it won't be a problem. But if we get words that use multiple keys on a single line, such as sad, agree, typewriter, among others, will become quite annoying, and force users to make exaggerated movements when typing (those who employ a two-finger typing scheme - a slower typing scheme - will ironically be least affected by this technology constraint, I'm guessing).

I think that Pico-based keyboards need their own input style also, similar to the concept of Swype (using a gesture to trace a word's path on a keyboard). The projector could map out the path (even offer a line trailing the finger). The good thing about using this type of soft keyboard is that the keyboard size and way it functions can change on the fly, and offer word suggestions as part of the projector (instead of using valuable screen real-estate for such things).

However, my big problem is seeing a full version of Windows 7 running the Firefox browser coming out of a projector. I'm not sure if that's an RDC client running through the phone or what, but it's a tad unreasonable to assume it could run a fully-blown OS like Windows alongside Android on a phone.

Seabird Concept 4
While that's certainly a nice looking phone, I don't like that it has a Mini-USB and not Micro-USB. Mini-USB is the past, whereas Micro-USB is the future, is thinner, and much more durable.
Look how sexy the right one is, in comparison.

Another thing that I'm not so sure about is how top-heavy it looks. The bottom of it looks rounded, and therefore unstable when on a flat surface. Also, it doesn't seem to be the most comfortable of devices when reaching for the top-half of the screen (something Android users tend to do quite an amount, with the slide-screen notification bar at the top).

Still, the concept is cool and it's amazing to see what geeks with a certain kind of passion and finesse for design can create. Certainly, go and look at the video posted on the site, and tell me what you think.
Posted