Thanks for the update Chris, and I'll keep the code coming - although I think you'll find that I was apologising that non coders aren't as awesome as we are. My antipodean "rock" last week was Men At Work - damn, but it was real earworm music.
I was brought up to respect my elders. I don't respect many people nowadays.
Week 3 and we're halfway through the challenge. Hump week, so to speak. I missed the Google hangout due to jetlag and general mayhem.
Pete [^] is motoring along and getting the gesture control working. This seems an odd statement to write, but a timely one: Pete is writing an application you control through waving your hands and there's no magic, no secret incantations. He's using the same tools we use day in and day out and that, to me, is amazing. There are also no fires or explosions, very little swearing, no tantrums or hissy fits, just constant, solid, back breaking slogging through the code and getting it done. By himself. Much respect.
Infrared5[^] are bucking a trend of the previous contest with crazy statements like "We were pleased to see that all the tasks we set for ourselves wasn’t too big of a bite to take". Regardless, they too are moving on rapidly and have a demo of their Kiwi Catapult Revenge game available. The biggest challenge for them? Eye tracking, it seems. I'm praying they crack this because I have my own nefarious needs for decent and cheap eye tracking.
Eskil have also released a beta version of his Betray game using his (I'm assuming) framework. His post focusses mainly on UI and some exquisite rendering which screams, to me, too much spare time. If he has the luxury to make the UI as stunning as his examples then he's hiding something up his sleeve. Interesting.
Code-Monkeys[^] are focussing on input control and, to that extent, focussing on simplification. And their demo code is simple. Crazy simple. Work continues.
Simian Squared[^] have threatened to play Unchained Melody[^] which is an automatic failure in my book. Careful lads. Their clay modeller is progressing and while they mention piles of misshapen virtual clay there are no pics. Show us the carnage.
The Sixense guys[^] have their puppets moving! This is wicked. They are moving on to actual story telling next. Serious progress.
Lee[^] continues to bravely and foolishly attempt to change one of the biggest online industries single handedly. Or with two hands, depending. He's not only pushing perceptual computing to the limit but has decided to rewrite the conferencing network code too. He's also showing some vampire tendencies with the rising sun causing him serious damage. I worry, Lee. I really do.
Overall the contestants are plowing ahead and it's amazing to see the progress made. This offers the chance for some really polished presentations at the end and judging is going to be soul searching.
Thanks for that Chris. Have you watched the video from Nicole, Sascha and Steve yet? Worth viewing if you haven't - especially around the 5 minute mark. I'm sorry to say, but I'm going to keep the verbose blog posts coming.
I was brought up to respect my elders. I don't respect many people nowadays.
Week 2 in the Ultimate Coder challenge sees the teams settling down to the cold harsh light of reality mixed in with a wonderful dose of reckless abandon.
Sixense Studios[^] had the wind knocked out of them a little after watching Media Molecule[^] demo a PS4 app that mimics their idea. However, they have since realised that their 6 weeks of work can still beat the two years work, and who knows how many billions, invested by Media Molecule because while Media Molecule's demo is wicked cool, it's based on pre-recorded movements and not the full physics-based hand puppets they are building.
Lee[^] is continuing his work on transporting you, via the depth perception camera, into a virtual world. I really hope he's watched this movie[^] before he goes too far down that rabbit hole. Watch his video to get a little weirded out by it all.
The guys at Code-Monkeys[^] have totally nailed another issue with the PS4 demo of Media Molecule. The PS4 demo relied on using a wand, and this is akin to using a stylus on a touchscreen. While they demoed an initial cut at their "looks can kill" eye tracking shooter I get the impression these guys are along more to help add as many stepping stones as possible to allow those who come next to reach the lofty goals of the ultimate UI, rather than assume they can create it by themselves.
Simian Squared[^] raise another interesting point that follows on from Code-Monkeys' points: the advent of the touchscreen interface has heralded a new era in user experience and programming is now, more than ever, an art. The programming tools available to us today make the task of development more and more mechanised. Drag and drop, ORMs, do-everything frameworks and convention over configuration mean writing an app is easier than ever. However, writing an app that is a pleasure to use is now harder than ever because we, as users, no longer accept substandard interfaces or a poor experience. Simian Squared are producing a virtual potter's wheel. More than simply creating a system that responds to the position of a few digits, he wants to transport you to a new world. He sums up the challenge but also the potential in his application: "a great concept artist will sometimes bend the rules of perspective or light and shadow for impact". The new interfaces available to us today make programming, more than ever, an art.
Eskil[^] continues on his quest to write a hardware abstraction API that's pluggable. Another step along the path to better UIs and (potentially) better hardware. As he writes: it's hard to get someone to buy your hardware if there are no applications that run on it. Abstracting out the API for hardware should mean that writing apps for new hardware is a snap.
Infrared5[^] continue on their quest for an eye motion interface. Whereas Eskil had serious issues with his camera, these guys are waxing lyrical about how well it's performing for them. The joys of pre-production hardware. They also add to the idea that collaboration as the key to success in this challenge. I am getting a little worried at the lack of any actual attacks on anyone's jugular, but it's early days yet and the prize pool is, I'm sure, sufficient to get the red haze settling over the contestants.
Pete[^] is attacking his task methodically and systematically and with an eclectic mix of music. The Angels? Very nice. While others are focussing on the camera Pete's started with voice recognition. Sure, over 65% of human communication is non-verbal (depends on which study you refer to), but I'm not expecting Pete to include emotion detection (yet). Gesture and touch are great for items you can see or touch, but what about those things you can't see or touch? You can ask for something, and then once you have it you can manipulate it via gestures. Voice is important.
The challenge here is to showcase perceptual computing and this means to rethink how we interact with a system at a fundamental level. Sticking to familiar paradigms may make it easier for a person to approach a technology, but it doesn't help them take full advantage of a technology. It holds them back. Touchscreen interfaces never caught on until the hardware and user interface advanced sufficiently to make it intuitively natural to swipe and pinch. The hardware had to be fast and reactive enough that a gentle swipe would achieve a result, and just as importantly the UI presented to the user had to be obvious enough to encourage and respond to these gentle swipes. A stylus retards the use of a touch interface, and a wand retards the progression of a gesture based interface.
What the gesture and voice based based UI looks like, and how this can be presented to the user in an obvious and natural manner, is what this challenge is about.
Last year saw the Ultimate Coder Challenge pit 6 teams against each other to create the Ultimate App for the Ultimate personal computer - the Ultrabook. The sadists at Intel are back at it with a new twist: create an application that shows off a convertible Ultrabook[^] and/or takes advantage of the Intel Perceptual Computing SDK 2013 Beta[^]
Let me say from the outset that I'm ignoring the "or" in the "and/or" above. The contestants must create an app that shows off the hardware and uses the perceptual computing SDK to have a chance. This means
The application needs to take advantage of the Ultrabook's specific features such as the sensors, the touchscreen, always on/always connected, power management and/or graphics.
The application must make sense for a laptop form-factor and a tablet form-factor
The application must make use of gesture controls, or eye tracking, or voice control, or anything else hidden in that magical SDK.
I'll add a fourth requirement
The application must make sense as an Ultrabook application
What I mean by this is that an application that is an existing application shoehorned into an Ultrabook with support for an Ultrabook tacked on in a way that doesn't harmonise with the original application will not get my vote.
So, on to the challengers.
Sixence Studios[^] (I keep wanting to hand them a "p") are old hands at the perceptual computing stuff. They've demo'd at Intel keynotes and are developing a virtual puppet application. I will be interested to see how this works in the tablet form factor.
Lee Bamber[^] refuses to back down from a challenge, and this is the third contest I've had the honour of judging him in. His entry will be a virtual conference that will allow you to transport yourself into a 3D world. "ambitious to the point of foolishness" is what he writes. He's mad. I love it.
Simian Squared[^] will be creating a virtual potter's wheel complete with virtual clay. Please note that points will be deducted for any "Ghost" moments that appear in any videos demonstrating the application.
Code-Monkeys[^] continue the primate theme and will be taking their existing Stargate Gunship game and making it a fully immersive. Gestures for firing, voice commands to control weaponry and gaze capture for targeting. Gaze targeting is something I feel is going to totally and utterly change the nature of video games and I'm very keen to see how this works. A shooter game that reacts as fast as you can look is going to get crazy. I can feel the headaches already.
Infrared5/Brass Monkey[^]. Again with the Monkeys. This feels weird. They will be creating a 3D FPS using head tracking, facial recognition and voice. This will be a little different in that the angle of your head will change the view on the screen to make it more immersive. Interesting idea, and their art looks killer.
Quel Solaar[^] has decided to make it simple and reinvent the entire PC interface. He will create a game, a data visualizer and a creative tool that will make use of his open source software layer in order to make it "easy for any developer to make use of the diverse hardware available to us". Any input (voice, gaze, gesture), any display (phones, tablets, laptops, workstations) and any hardware configuration. And I thought Lee was nuts.
Our very own Pete O'Hanlon[^] is taking the safe path and creating a voice and gesture enabled image editing application. This seems specifically an effort to show off the perceptual computing SDK rather than show off an application, and I like that. Further, he's using touch as an input, thus being inclusive of the traditional Ultrabook features rather than just plowing on with the sexy, younger, more nubile features of the PerC SDK.
Each week I'll post an update of how the teams are progressing. May the best team win.
Thank you for pointing out the reality check on the application needing to work on an Ultrabook to get your vote. I wish more competitions were forthcoming on what the real judging criteria is having wasted time on competitions that didn't. I was going to enter the Perceptual Coding contest but I don't have an Ultrabook. You just saved me a ton of time.
In other words he is only talking about the Perceptual SDK in regards to the Ultrabook challenge, but the inverse, using an Ultrabook with the Perceptual challenge, is not true?
I see the distinction now that you point it out. My worry would still be though that as a judge he'd still be significantly biased in favor of an Ultrabook compatible entry in the Perceptual challenge seeing as that he is admitting that bias. Again, I see from your comment he does not specifically state that for the Perceptual challenge, only for the Ultrabook challenge, but I'd like to hear from Chris himself that he wouldn't favor an Ultrabook entry.
I'm not being pedantic about this. I spent a great deal of time on an entry for another challenge only to find out afterwards that it never had a chance of winning, due to the judge's bias towards a particular class of app. Several judges even told me in an unsolicited manner how much they liked my entry, but from the finalists chosen it became obvious that an app like mine could not win, despite the fact it was in a vertical that was even proposed by one of the judges for the contest in a forum post for suggested entries.
Unfortunately it was one of those releases where, if no one noticed anything different then it was a stunning success.
Under the hood we're working to expand our notion of what a member's account means. For most people it means nothing, but for those who write articles or post messages or who want to actively participate - and this is a lot - then your account is your spot, your area, your personality.
The question we've been asking ourselves ever since we launched RootAdmin[^] is: do we have separate accounts for separate sites or combine them. Initially the answer was a clear "separate accounts" since what someone says about themselves on one site may not be relevant for another site, or conversely: someone may choose not to say something on one site that they would say about themselves on another.
However, counter arguments were that you are who you are, and biographies don't have to always be about the site. They should be about you. Your picture is your picture, and your display name should be unique across sites, not just on one site. Otherwise your persona may be spoofed on another site without your knowledge.
Further, we've now added CodeProject.TV (currently in Beta) and we very much want what someone does on CodeProject.TV to appear on CodeProject, and for their reputation and expertise on CodeProject to be reflected on CodeProject.TV.
So we're steadily moving towards having your Account live in the network of sites, not within a site itself. Each site will continue to have a site specific profile that talks about the number of posts or articles you've posted, but you will be you across all sites.
In working towards this we've embarked on a plan to throw away large chunks of code. Recklessly, joyously, we cut the code loose and bind the ends up with electrical tape, like any good Engineer. What we'll end up with is a CodeProject made of services, not of modules and DLLs. A CodeProject whose parts can be mixed and matched and used in many places for many different things by many different systems. We started this process back in October (yes, the time that we temporarily disabled voting in the forums) and today's code drop represents the next major step in that migration.
We turned off voting a few weeks ago because of a load issue. Things have been a little hectic so fixing the issue has taken some time, but it also allowed us to see how the community fared without voting.
Quite nicely, as it turns out.
There are, however, two exceptions to this.
1. It drove me crazy that I could not upvote someone in The Lounge[^]. 2. It drove me crazy that there was no way to warn people away from poor discussions in the discussion forums other than via the hammer called the reporting flag.
In doing this I had the opportunity to reqork things a little so I added a few options to the voting, 2 of which are to only allow up/down voting (we had this, but in a different form) and also to only allow up-voting.
We'll see how it goes and continue to season to taste.
2. It drove me crazy that there was no way to warn people away from poor discussions in the discussion forums other than via the hammer called the reporting flag.
Since downvoting is not available in The Lounge and The Soapbox (and I support the decision to keep it out of both), how are you going to achieve that? Those two forums are typically the ones that have poor discussions.
"When you don't know what you're doing it's best to do it quickly" - Jase #DuckDynasty
I've added the ability to turn off email notifications for articles and forums. You already have the ability to set your defaults to not allow private email replies to your messages, but this extends this so that at any time you can turn email notifications on or off globally.
Lee, John, George & Suresh, Sagar, Shailesh and Andreas have submitted their works, their creations, their results of endless sleepless nights and possibly a fair bit of cursing and we, the judges, have the task of picking the apps to pieces with a small pair of tweezers. Metaphorically.
The original task for the contestants is to "create apps that take full advantage of the performance advances, graphic excellence, touch and sensor technologies of the latest Ultrabook™ computers". That's fairly broad, and I would add that a critical component of the challenge is to showcase the Ultrabook.
The Ultrabook is a new device, the love-child of an ultra-light laptop and a tablet. The operating system of choice, and in fact the only one to currently take full advantage of the hardware is Windows 8, and Windows 8 fully reflects the Dr Jekyll and Mr Hyde nature of the unit. It's a laptop. Though if you ignore the keyboard and hold it awkwardly it's a tablet. Yet it's a PC. A fast, light, energy efficient, peripherally rich and accommodating computer that does everything you expect from a laptop, and oh so more.
To showcase an Ultrabook, then, one needs to showcase the operating system to allow the operating system to showcase the Ultrabook, and when I think of something being showcased I expect to see something unexpected, maybe contrived, but above all, something entertaining and possibly educational.
So I want to be entertained and educated by these applications. I want to run the applications and, from them, understand what an Ultrabook is.
LoveHearts is a social message game with a couple of games within the game. Lee went to extraordinary lengths to port his OpenGL based framework to DirectX, and succeeded, give or take having to downgrade a video driver. His application takes advantage of the touchscreen, light sensor, NFC, the compass and features such as notifications.
It's a technical marvel. It's a triumph of sheer bloody mindedness over common sense. It's a monument to perseverance. It is not, however, an application that makes any sense to me. You swipe the wrapper, you get a token, and a small piece of candy appears. You touch that (for wont of anything else to do) and it floats to the top of the screen. Touch an item at the top of the screen various actions can be taken such as sending a message, reading (and sending) jokes and poems, or playing a game. There is a bug in the app and sometimes, no matter what item up top I press, the train game appears which, after trying a dozen times and watching Lee's video, I still have no idea how to play. No matter what I do the train careens forward with a mind of its own.
The idea behind Shufflr is an interesting one. You are presented with a series of videos potentially of interest to you. The Ultrabook twist is that it would be touchscreen enabled and would use the tilt sensors to shuffle backwards and forwards between videos. Add to it the potential for transferring information via NFC, using the ambient light sensor to make it easier on the eyes, and maybe WiDi to throw the video onto your TV and you have a neat app.
In judging this application I came across several serious glitches: launching it would show the launch screen, then I'd be thrown back onto the Start screen. Launch again and it would tell me it was logging me in, and then I'm thrown out again. Rinse, repeat, and eventually after a few restarts I'm in. The first screen provides an overlay with the various gestures. This is incredibly important, and the #1 issue I have is that once you dismiss this screen you are unable to find it again. I was, frankly, lost trying to control the app. Shuffling the videos works fine, though pinch to zoom doesn't. Shaking works to reshuffle, but care must be taken when holding the Ultrabook on your lap because leaning even slightly will trigger a video swap. Too bad if you were enjoying the show. The two modes - DailyFix and Flipside - could be highlighted far more than they currently are. This, to me, is a failing of minimalist design: it took me a good half dozen uses of the app to realise that the " DailyFix FlipSide " words at the top left were actually links that, when clicked, changed the app mode.
One final niggle: when viewing the start screen, Shufflr displays video caps on the live tile. However, it doesn't brand the live tile with the Shufflr name so, among the dozens of tiles I have on my start screen, it's extremely difficult to spot the Shufflr tile.
BioIQ is a simple teaching game where you label the parts of, well, parts. A plant cell, the heart, eye and other internal gooey bits. It keeps its live tile updated but its primary nod to the Ultrabook is its touchscreen capability. For this app, that's really all that makes sense (unless they wanted to make it really hard and force you to slide the labels to the organs using tilt). It's an app that, when you use it, you don't even realise you're using a touchscreen laptop. That's not a bad thing.
Wind up football is an extremely simple, graphics heavy game with the rules "grab the ball, keep away from the mobs". Instructions are minimal, but as you play around you realise you can touch one of your team members on the screen, draw a line to that unit's destination and in a manner of speaking direct the play. However, the goal seems to be to avoid the other team while, at the same time, beating the daylights out of the other team by tapping on an icon when one of your units gets close enough. It uses touch, it uses the GPU, and uses the communications APIs to enable multiplayer action. It's extremely polished and solid, but the jury is still out for me as to whether this is the application that I would fire up first when showing off a new Ultrabook to a friend.
MoneyBags is an expense tracking application that focuses on being seriously productive rather than seriously fun. My initial experience with it was great - it's the only entry that's self packaged with an installer - but on activating the application with the supplied product key the application is stalled on the activation screen. Restarting got me past this, and then I was presented with a basic tour - always a nice touch.
The application takes advantage of the touchscreen, power states, GPU and the horsepower under the hood. Again, however, it's not an app that I would showcase as a prime example of what makes an ultrabook exciting. It does, however, have a trick up its sleeve: NFC communication so you can transfer transactions from your smartphone to the application. I am, however, one of the faceless mass of iPhone users who must put up with an NFC free device so I'm unable to test this capability.
A second issue that struck me was that, even though the application was touch screen enabled, it was most definitely not touch screen optimised. On the left hand side is a scrollable list of categories. There is a scrollbar, but one would expect that simply swiping on the list would scroll it. Unfortunately you need to touch and move the scrollbar which, on my screen, is about 2mm wide - significantly smaller than my big fat thumb. Scrolling often resulted in nothing happening, or worse, one of the categories being accidentally opened. Further touch issues were evident in the lower nav bar: the home and settings icons were way too small to be easily touched, and the other option labels, while bigger, were still on the uncomfortably small side. This is, unfortunately, an app better suited to a mouse than a touchscreen.
The language trainer, which I thought was a web-based HTML5 application, is in fact a Metro app written in HTML5. A standard PowerShell based install and a Start screen tile, and in you go. I chose the French lesson, since in Canada we're meant to be fluent in French and English, but evidently my French is not up to par with "rue" not being the correct translation of "street" and none of "siège, banc, or selle" being enough to satisfy "seat". You only get one try, and there are no hints, so it's a little frustrating to work out what it thinks the answer should be. The app uses touch screen input, but, as far as I can tell, no other Ultrabook features.
Judging finished this week and the points will be tallied and a winner announced. Good luck to all, and I take my hat of to all participants for dedicating their time and energy to entertaining us judges.
The final round of updates has come so it's time to see what the developers have produced. Actual judging starts this week and until I sit down with the score card I'll keep my comments light and breezy.
Lee is done and his app takes advantage of an extraordinary array of Ultrabook functionality. Messaging, movement sensors, location, light sensors, the webcam, multi touch, graphics (to an insane degree), parallel coding, communications as well as a nice foray into InApp purchases. This is a man possessed. This is a man who needs sleep.
George and Suresh have summed up their 6 week journey with a few demo's of their app. 6 weeks, day in, day out, and they are done, with the added benefit that they get to demo via recorded video, rather than the traditional live demo that worked 100 times during rehearsal and failed in front of a studio audience. They have also covered a great issue regarding packaging and distribution. The standard dev way of distributing a Metro, sorry, Windows Store, app is via an installer power by PowerShell. It's very, very clunky so improvements in this area get them brownie points. They too have hit the gamut of Ultrabook features, so testing will be fun.
Shailesh at Clef Software is likewise done and their app is currently going through the store verification process. Ah, gotta love red tape. Although, you gotta love apps that are certified to be virus and malware free, too.
John has wrapped up with a plea to us hard, unforgiving and downright cynical judges that it's all about the experience, and not about the technical excellence of the code. As a coder I'm immediately offended. Technical Excellence or Die! As a user, and as a coder who has 9 million other coders constantly, unrelentingly, passionately picking apart my application, I totally and utterly agree. The pursuit of technical excellence can lead to a truly awful solution, because devs often forget that users are an integral part of the requirements.
Sagar provides a brief discussion of their use of always-on / always-connected. Again we're hearing of driver issues, and again the guys, like others, have spelunked into territory angels fear to tread and done a little driver hacking. I live for the day that drivers are a thing of the past.
Andreas has posted his final post on his efforts to convert a HTML5 app to the new Windows 8 UI design. No code or sample apps for now, so full judging will have to wait until next week.
So no more contestant blogs, and one final round of judging to go.
cheers, Chris Maunder
The Code Project | Co-founder Microsoft C++ MVP
Last Visit: 31-Dec-99 19:00 Last Update: 27-Mar-17 17:16