GeekApproach

Just one Geek's approach…

Kinnect Hacking: The Future of NUI

Unless you’ve been living under a rock recently you’ll undoubtedly have seen the massive marketing push behind Microsoft’s latest offering, the Kinnect an add-on unit for its Xbox 360 console.  The Kinnect combines (in a very small package) an infrared camera, a VGA camera, a microphone array, and a pan-tilt motor assembly for creating image stabilization. All this to allow your Xbox to respond to gestural input, voice commands, and ushering in the new era of user interfaces: the buzzword NUI or Natural User Interface.

Kinnect Unit

Microsoft's Kinnect head-on

So why don’t I have one? I’m broke for one (ha ha).  But the idea of playing games using this format didn’t appeal to me– I owned a Nintendo Wii for 9 months before pitching it to my sister.  She gets way more use out of it then I ever did, and I’m what you’d call a “hardcore” gamer.  For $150 bones you can add this USB-device to your Xbox and impress your family and friends with its ability to surf your Netflix Watch Instantly queue using just the power of your arm muscles.

In the two weeks since its launch, a bounty was issued for an open-source compatible driver for the Kinnect.  One appeared within days and the explosion of development we’ve seen since then is a bit nuts.  I’m not entirely sure Microsoft cares how many units they sell that are attached to X360′s–I think they’ll continue to sell like hotcakes regardless of where they’re plugged in.  Yesterday I spotted an online guide as an intro to USB hacking using the Kinnect as an example.  It’s by far one of the nerdiest things I’ve seen online lately and it rubs two critical spots for me: teaching the masses, using brand-new shiny hardware for new and different things.

Trolling USB messages for relevant memory addresses...

Trolling USB messages for relevant memory addresses...

Be warned, the guide is not for the faint of heart but it goes into some critical detail for those of you who want to get your hands dirty.

Kinnect represent like all things Microsoft a veiled attempt to push their vision into your life.  15 years ago when Bill Gates was talking about WebTV (shudder) he wanted one in every living room.  While WebTV died, a lot of living rooms contain a gaming console of some type.

Star Trek Holodeck

Star Trek Holodeck

The X360 with Microsoft’s mighty weight behind it is morphing from a game console to a  living room media playback device, and now even more so.  By taking the traditional user interface off of a gamepad and turning it into gesture recognition, Microsoft is showing folks the way forward.  After all, isn’t this just pushing us closer to the Holodeck?

Losing Sight of Goals

It seems over the past week I’ve taken a bit of a back seat on learning C and doing my development exercises.  For a while there I was on a roll– I was reading the books and studying, learning the API’s and other debugging tools.  Most importantly, I was starting to create my own exercises and coming up with solutions.

I received some contact from Seattle U on the status of my application earlier this week.  I figure I should get back to it.  So after taking a week off, I’m trying to get back on track.

For most of my recent learning I’ve leveraged Apress’ really awesome set of C/Obj-C/Cocoa development titles.  The so-called “fruit books”, each title features a different citrus fruit on its cover.  They offer a disounted e-book for each title on a limited time offer.  I don’t need more digital textbooks so I stick with the physical copies.  I highly recommend them for anyone doing Obj-C development on the Mac.  They are very clear, lots of source code (free I might add) and they dovetail very effectively into a cohesive set.

Learn Obj-C on the Mac

Learn C on the Mac

Learn Obj-C on the Mac

Learn Obj-C on the Mac

I should head back to it.  Maybe my next post will involve my bubble sort app that I’m writing.

iPhone OS 4.0

I’m sure you can read up elsewhere on the interwebs about some of the more critical features of the upcoming iPhone OS4 release. What I’d really like to concentrate on is a new clause that I signed yesterday involving development and use of 3rd-party IDE’s or non ObjC languages. The critical portion is reproduced here:

Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

This ends Adobe’s attempt to become a bit more relevant in the web space and I honestly feel a bit sorry for them. Flash has enjoyed being the king of the web for so long they’ve grown a bit complacent. However, if someone tried to convince me 5 years ago that the next battleground would be in the mobile device space and that Apple (ha!) would be on the forefront I would’ve laughed.

So, back to the changes in the dev agreement. My girlfriend’s cousin is currently a Java developer and has been dabbling a bit in iPhone dev, but only through a middle-ware tool called AlcheMo or Flash’s upcoming CS5. This has been his only expsoure to the OS because it would be a challenge for him to learn ObjC this late in the game– in his defense, he didn’t start out as a C programmer so I can understand a bit of his frustration. It isn’t as though he’ll be unable to develop for the iPhone, but he’ll need to do so: a) using a Mac and b) using XCode. As someone who started from the ground up one of these is a bit of a financial investment which is why I started with a Hackintosh.iPhone OS 4 Logo

On the flip side Apple is doing what they’ve always done: encourage shift to their platform. I’m more than happy to develop on a Mac and use one as my primary machine day to day. However the work that I do does occasionally require Windows so I will dual-boot.

iPhone OS4 Outed!

Apple is in the middle of a press event right now detailing some of the major features of the next iPhone OS release, due out in Summer 2010. I’ve read that there will be a Developer Preview released today.

My only problem currently is that I’m still awaiting a MacBook Pro refresh (due in January mind you) that would allow me to migrate to Snow Leopard which is the only thing the current SDK supports (sadly). One of the larger requested features, Multitasking is now available and it looks very sweet. They’ve demonstrated the audio library so Pandora can finally exist in the background as you run other apps, and Skype(!!) maintaining a background status while you’re using the phone for other things.

It’s really exciting but I definitely need some new development hardware if I’m going to take advantage of any of this cool stuff. More later.

Still goin strong…

I can’t seem to do anything with actual intent these past few weeks. I find that learning Objective-C is really hard, but that I start to get the hang of it as long as I’m doing it for long stretches at a time. I’ve told myself today that I’m going to figure out this whole UIView, UIWindow madness out out of the documentation and complete this assignment.

All about the mindset…more later. Hopefully I’ll be able to post this full code block soon.

Mmm.. And Merry Christmas to everyone. Mine went well; how was yours?

Apple to squash the Hackintosh…

…which is totally within their right, btw. According to many Net sources (but here I reference the article on my fave site, Slashdot) Apple is apparently killing installation within the Intel Atom CPU chipsets that power many netbooks currently. I’ll be the first to admit that the only way I got started with ObjC and the iPhone SDK is by taking a Dell Mini 9 ($299) and turning it into a Hackintosh to see if I could even figure out the SDK.

I was fairly successful at it, and my little Hackintosh is my learning and dev machine right now. However, I fully plan to by a fully-loaded MacBook Pro 17″ here in January when they update the line again. Hear that Apple? I hacked, but I’m buying your most expensive product because it actually worked out well for me. Can we ease up off the other hackers for a bit?

True, I did legally acquire my copy of the OS, but I know I’m actively violating EULA– this is also why I haven’t submitted any apps to the App Store; I didn’t wanna feel dirty about it. I can’t say I’m thrilled about Apple disallowing this install method, but at least its not retroactive. You can still do Hackintosh with Snow Leopard, you just won’t get any further updates. And isn’t that the point? Just to try it all out anyway and give someone proper funding when you can?

Bah…