Susan IbachTechnical Evangelist
Once again Canadian developers can get cool rewards for publishing apps through the Developer Movement program.
We want you to explore app development on Windows 8 and Windows Phone and we want you to discover the power of Azure. That’s why the Developer Movement program is back! Earn points, then cash in those points for cool rewards!
This year’s theme is Code Kwondo. Enter the dojo and begin your training!
You could take home a Surface 2, An Xbox One, or even an ASUS Zenbook!
Register and get 1,000 points. Earn an extra 200 points for referring a friend.
Complete a Microsoft Virtual Academy course and earn an additional 5,000 points.
Publish a Windows Phone or Windows 8 app and earn 5,000 points (+bonus 5,000 points for your first app)
Publish additional apps, use Azure, or if your app reaches 100 downloads you can get 10,000 instead of 5,000 points for your app!
The Code Kwondo Developer Movement runs from November 18, 2013 to June 1, 2014.
What are you waiting for? Register today and start earning your black belt in Code Kwondo!
Calum Cawley was a member of Team Hermes in Ireland in 2010, in this guest post he shares his experience with Imagine Cup and how it changed his career path. Take it away Calum!
I first heard about the Imagine Cup back in 2010 when I was starting a project for the 3rd year of my Bachelors in Mechatronic Engineering. During a brainstorming session, a friend said to me “You should enter the Imagine Cup next year.” To which I replied “Yeah, ok. What is it?” At that time and for quite a while afterwards, I don’t think I fully grasped what I had signed myself up for.
That Conversation took place here, at the Institute of Technology, Sligo, Ireland:
After that passing comment from a friend, I went on to get a team, Team Hermes, and competed in the Irish Imagine Cup finals. And everything kind of snowballed from there! To say that the Imagine Cup has brought me on a journey is a massive understatement. After months of hard work on our project, my team went on to win our national finals in Dublin. From there, we travelled to the 2011 world finals in New York City.
Imagine Cup events tend to make students, who are mentally exhausted after months of hard work on their projects, feel like celebrities. Even at the Irish finals that year, the competition was held in Microsoft’s European Development Centre and we had a party in a corporate box of a huge soccer stadium. Getting a chance to see behind the scenes of a technology giant like Microsoft is a huge treat for any techie. I remember there was a whole floor of a building with blacked out windows because they were doing work on the Kinect for Xbox which was top secret at the time. To me, that was cool to see and I remember feeling, even before we were announced as winners, like all the hard work gone into our project had been worth it. Just for that experience. It kind of goes without saying, but New York just blew that out of the water!
An Imagine Cup world finals event is something that can’t really be put into words. The energy, the ideas, the people. It’s simply inspiring. This competition attracts people from all around the world who all believe they can change the world with technology, people who are determined to make their mark on the world, and the Imagine Cup gives them an excuse to do it. This might make it sound like the Imagine Cup is just a load of delusional students thinking they can save the world and become millionaires with a few hundred lines of code. But is that really such a bad thing? A lot of today’s tech giants were founded by students, including Microsoft, so really the Imagine Cup just gives you that little bit of credibility that lets you call yourself a tech start-up founder rather than a mad scientist!
So, my team went on to win 1st place in New York. From the moment I first heard about the Imagine Cup to then, my life had been frantic. Every spare moment of each team member had been poured into our project. Obviously we had done something right during that time, we won, but it was only after then that the madness really started…
Over the next few months it was just like surfing a wave of press, publicity and conferences; presenting to thousands of people at conferences, talking to press from all around the world and even appearing on Irish TV. At that stage, the only thing that seemed reasonable to do was to start a company to commercialise our project. So we did! In Febuary 2012, Clevermiles was founded. The Hermes project, in the space of less than 18 months, had gone from a college in the west of Ireland, half way around the world and back again to land in Dublin at Startup Bootcamp, a start-up accelerator.
If I had to describe myself concisely, I’d have to say I was a petrolheaded geek. My passions are cars, technology and ideally, I love working on some intersection of the two. I started with the Hermes project as an excuse to play with cars as part of my degree, I pursued that passion and it had landed me as co-founder of a company before I had even graduated. However, I took it one step further. I realised pretty quickly that having my own company wasn’t for me. My passion is the technology, but when you are one of three people in the company you aren’t just an engineer; you are the salesman, the accountant and the graphic designer. Some people love that, I didn’t. So, by the time I had graduated, I had won awards for my project, presented it to an audience of 15,000, started a company and left it! That experience made looking for a job pretty easy, but I managed to find one that fit me like a glove.
I currently work for MIRA Ltd, in England. We are an independent vehicle engineering consultancy, with over 100km of test tracks on site we work with companies from all over the world to shape the future of transport. Just a year before I took a job here, I didn’t even know places like this existed. Now I work on research projects around the next generation of vehicles, including self-driving cars. Having the experience of the Imagine Cup behind me allowed me to punch above my weight when it came to looking for jobs, my degree alone definitely wouldn’t have even got me an interview with the places I really wanted to work for. The fact I had won did raise a few eyebrows, but the thing that interviewers were always interested in was the soft skills that working on a project for this competition brings you. In a nutshell, the kind of people who work in a team on something like an Imagine Cup project are the kind of people that companies want and these skills will put you ahead of the other people with technical skills just as good as yours who applied for the same job.
I liked it so much I came back as a mentor. If you haven’t guessed by now, this competition left quite an impression on me, I actually do love it. In April 2013, I went down to London to the UK finals and I met some guys who had developed a phone app called SoundSynk. They won that day and they would be going to St. Petersbug, Russia in July for the 2013 world finals. A few weeks later I got a message from Ed, one of the guys on the team, asking if I’d be able to mentor them. After a few months of working with the team, we were sitting in the glamorous Alexandrinsky Theatre in St. Petersburg nervously sitting through the awards ceremony to find out if they’d won anything. They had. They had come 1st! It was slightly surreal to see them up on stage, collecting their giant cheque and going through the same emotional rollercoaster I had been on, on the other side of the world, two years ago. I was like a proud parent! (Of three people barely younger than me and one person older than me). It was like everything had come full circle and yet it seemed like no time at all since I hadn’t even heard of the Imagine Cup.
I said that this competition had brought me on a journey, and it has, both figuratively and literally. I’ve ended up getting paid to do the things I would want to do as a hobby anyway, something which I only dreamed of before I started on this amazing journey. All it takes to get started on a journey like this is a “why not?” attitude. If you have an idea you believe will change the world, then go out and get a team and with enough perseverance, you’ll end up with something awesome.
Calum Cawley on LinkedIn
Canada Imagine Cup Details
This article shows you how to capture touch gestures in a Windows Phone application. This guest post comes from Christian Hissibini (@histechup) a student in Montreal who used touch gestures in his Windows Phone application Movember Me.
Take it away Christian!
This blog post is translated with Christian’s permission from the original post in French at Make Web Not War.
If you download the application Movember Me, you will see that the app allows you to take a picture with your camera or select an existing picture from your photo library, and choose a mustache. After you select a mustache you drag the mustache to the desired position and set the mustache to the desired size.
Let’s take a closer look at those last two steps, that allow the user to drag an object with their finger, and to pinch the object to change its size or even to rotate the mustache to the desired angle. You can see some screenshots of the application below.
Implementing this functionality is relatively simple. If you are building a phone app for Windows Phone 7 or 8, just use the multitouch gestures kit in the Windows Phone Toolkit. This kit provides controls that allow you to create richer applications and a more engaging user experience.
As I mentioned, it’s not that complicated. As I mentioned above, you will need to import the Windows Phone Toolkit. This library will manage the gestures through the GestureService and GestureListener
Add the Microsoft.Phone.Controls.Toolkit.dll to your project and declare the namespace in the XAML.
The GestureListener is an event manager that allows developers to detect touch interactions between the application and the phone screen.
Add the GestureListener to the object being manipulated by touch. In this case, that would be our mustache.
<CompositeTransform x:Name="MyMustacheTransformation" />
This application handles three touch events
PinchStarted : Allows you to retrieve the initial scale and angle of the object when the user performs a pinch gesture.
private void OnPinchStarted(object sender, PinchStartedGestureEventArgs e)
_initialAngle = MyMustacheTransformation.Rotation;
_initialScale = MyMustacheTransformation.ScaleX;
Point firstTouch = e.GetPosition(myMustache, 0);
Point secondTouch = e.GetPosition(myMustache, 1);
Point center = new Point(firstTouch.X + (secondTouch.X - firstTouch.X) / 2.0,
firstTouch.Y + (secondTouch.Y - firstTouch.Y) / 2.0);
MyMustacheTransformation.CenterX = center.X;
MyMustacheTransformation.CenterY = center.Y;
PinchDelta : This event is fired when the user touches two points simultaneously (two finger touch). It’s arguments tell you the modified scale and angle of the object
private void OnPinchDelta(object sender, PinchGestureEventArgs e)
MyMustacheTransformation.Rotation = _initialAngle + e.TotalAngleDelta;
MyMustacheTransformation.ScaleX = _initialScale * e.DistanceRatio;
MyMustacheTransformation.ScaleY = MyMustacheTransformation.ScaleX;
DragDelta : This event fires when there is a drag operation. The event arguments tell you the change in horizontal and vertical position of the object.
private void OnDragDelta(object sender, DragDeltaGestureEventArgs e)
Image rect = sender as Image;
TranslateTransform transform = rect.RenderTransform as TranslateTransform;
MyMustacheTransformation.TranslateX += e.HorizontalChange;
MyMustacheTransformation.TranslateY += e.VerticalChange;
Note : If you are developing for Windows Phone 8, GestureLIstener is obsolete because the native controls have built in functionality for touch gestures. So, if you are building your app exclusively for Windows Phone 8 users, you can either use the native controls built-in functionality or use the method described in this post. To learn more about the native controls touch support in Windows Phone 8 check out the sample code GestureSample.xaml.cs
Movember Me in the Windows Phone store
Source code example on GitHub:
Microsoft Phone Toolkit on CodePlex:
Students get free software and Store accounts through DreamSpark
If you are in Canada, keep an eye on Developer Movement for your opportunity to get rewards for your apps
IdeaPress has been updated. You can now create Windows 8, Windows Phone, Android, or iPhone apps from your WordPress.com or Wordpress.org sites without writing any code.
Don't forget, if you are a student you can publish to the Windows Phone store for free through DreamSpark.
We’ve invited Michael SIU, one of the creators of IdeaPress, to tell us more about the update and explain how to use their new wizard. Michael is a partner of IdeaNotion, and a specialist in web applications, mobile applications, windows applications and cloud solutions. Take it away Michael:
Hello to all our new users and a warm welcome back to our old ones from the Windows 8 version of IdeaPress!
We released IdeaPress for Windows 8 back in Mar 22 this year and we're back with a new platform that allows you to create Android, iPhone and Windows Phone apps without writing a single line of code! In this post I'll go through our new wizard and show you
Let's get started!
Below you will find our home page. If you are a new user you can click "Get Started" on the right or if you've already registered you can click "Login" at the top-right.
TIP: If you were a Windows 8 Ideapress user, your old account will not work here, so you'll have to make a new one. But don't worry! You can still use the same login info!
We've made registration as minimal as possible because we want you to be able to dive right in. All you need to specify is an email and password. Having an account is important as it allows us to save your apps in progress. It's also important to have an up-to-date and accurate email address because we use that address to email you your app and to send you updates on the publishing process.
After registering, you can move on to the app creator wizard. You will see a premade app on the right side that you can explore.
To change it to your app, type the address of your wordpress.org or wordpress.com website in the URL field.
If you have a site hosted on wordpress.com ignore the message at the top, your site will work straight out of the box; If you are hosting your own site with the software from wordpress.org then to proceed you’ll need to have the IdeaPress JSON Plugin installed (Click more details in the dialog box for instructions on doing that or click here to head directly to the installer).
Specify a Project Name. This project name will show up on your dashboard.
Select the platform for your first app. You can choose between Windows Phone, Android, and iPhone. Don't worry, you can come back later to create apps for the platforms you don’t select now.
After entering your website and (for WordPress.Org sites) installing the IdeaPress JSON API you will see the demo app is updated to show your website's content. You have a live preview! It's still black and white though. You need to confirm this is the site you want to use before moving on by clicking confirm settings. Once you have your completed that step you will be able to save your apps (you will know this is the case because the blue Save button on the top-right is enabled). The app on the right is a live preview of what your app will look like so go ahead and play around with it. When you are ready you can start changing it up.
On the first tab, you fill in the information about your app. This is the same information that will show on the app store if you publish through IdeaPress. To get a detailed description of what you should enter in the boxes, just hover over them. Your app name will also update in the live preview. The required boxes for app store submissions will be highlighted in red when you click them.
After setting your info you get to the fun part: styling. On the Style tab, you get to set the colour, layout and fonts all updated in the live preview on the right. The logos you upload below will become the app icons on your phone and your app icon in the phone store. Try out different layouts to get a feel for how each one looks, at the moment we have 5 layouts. Choose the layout that best matches the content on your site. No pictures? Use a text heavy layout. Have a lot of cool pictures? Pick the full picture layout. We plan on adding additional premium layouts at some point so stay tuned.
TIP: Windows phone apps will require a Wide Logo and a Splash Pic.
The Content tab contains all the categories our IdeaPress JSON API plugin pulled from your website. You can drag, drop and reorder them. The live preview will reflect the categories and order you select. Your categories can be found in the menu of your app for easy searching.
Once you have the app working the way you like it. It’s time to save. When you click Save, you will notice a list of "Remaining app publish requirements" at the top, your app is saved but it's not quite ready to become a mobile app.
Go to the style tab and you will see two images highlighted in red, we need to upload these in order for our app to be complete.
Once the app is complete (meeting all requirements) you can select Exit. You will be taken to the dashboard. On the dashboard you can
There are a lot of options you can choose from when you create and publish your app but I'll cover that later. There's also a "Create Site" button if you have an additional website you want to use to create more apps.
Next time I will explain the store publishing process and your options on how to get from the Wizard above to the actual mobile app.
Stay Tuned and Happy App making =)
Rudi Chen, a Microsoft Student Partner and student at Waterloo University, recently won the Nokia Future Capture Contest beating out developers from all over the world. We asked Rudi to tell us a bit about his experience.
August 2013: Ten finalist teams are chosen from thousands of entries from all across the world. These people get to go to Sweden for a 27-hour Hackathon – the Nokia Future Capture contest. The prize? A brand new Lumia 1020, with a 41-megapixel camera that eclipses all other smartphones. Coding. Judging. And finally, a victory.
Yet for me, the story begins a little earlier.
Five years ago, I was avidly looking at soon-to-be released Photoshop CS4’s new features. One in particular stood out: content-aware scaling. It made it possible to change an image’s aspect ratio without distorting its content. The algorithm somehow “knew” what was in the scene and what could safely be taken out. Watching the demo video was like watching a magic show. What kind of technology could allow such a thing?
Then, a few months ago, while passively walking out at the end of a statistics class, I glanced at a group of student gathered around a laptop with a PDF file open. It was a paper called “Seam Carving for Content-Aware Image Resizing”. At that moment I thought, wouldn’t it be cool to write an app that implements this feature? By now, I had gathered enough programing experience and the algorithm no longer appeared to be magic – it was a simple, neat technique that I could understand and implement.
Finally, in July, Nokia announces Future Capture. This was exciting - a Hackathon with imaging as a main theme was the perfect opportunity to give Seam Carving a shot. The idea is to allow users to change the aspect ratio of their pictures (namely to 1:1 instagram-size) without distortions to the content of the picture, and downsample 41 MP images while amplifying the salient features, by removing the least important bits first, such as the background.
I knew that I couldn’t make a full app in a mere two days without some assistance, so I teamed up with long-time friend Shida Li for this Hackathon.
The first challenge was to figure out how to implement the algorithm on a mobile device. Although mobile chip manufacturers have done a great job designing speedy low-power processors for smartphones, the processors are still, well, low-power. In addition, multi-tasking on mobile devices is much more limited. The user can’t easily switch between apps while waiting for computation finish, so we must be able to analyze the entire image within a few seconds.
The original paper could not accomplish this even on a desktop, but I found a follow-up paper, “Real-Time Content-Aware Image Resizing”, that could. So I wrote the algorithm early on. It was allowed and after all, this wasn’t something we could improvise once in Sweden. No algorithm, no app. In version 1 on a regular Ultrabook with the WP8 emulator, I got 1.2 seconds for preprocessing, 10 fps while resizing the image. Reasonable.
On August 29, we depart for Lund. Passing through Amsterdam and Copenhagen, we finally arrive on the morning of the next day. An enthusiastic greeter from Nokia await us at the airport. He has two Lumia 1020 for us to play with. Already from the first few pictures, we can see the device lives up to the hype.
It seems trendy nowadays to take pictures of meals, so it seems natural to do the same with the Lumia 1020.
This rivals every point-and-shoot I’ve ever used.
After a visit of Lund, we get back to the hotel, where we oversleep in the evening (good ol’ jet lag). It is not until 11 PM that I finally meet with Shida to plan out what the actual app will look like.
I couldn’t previously test the algorithm on my HTC 8S, as it didn’t have enough RAM to support the memory-intensive process involved in analyzing the least important bits of the image. With the Lumia 1020’s 2 GB of ram, I could.
That’s when I realized that ARM processors were even slower than expected. 10 seconds of preprocessing for a 1 MP image, 1 FPS while resizing. Yikes. We needed to change our plans a little, focusing mainly on resizing smaller images.
The Hackathon started the next morning at 9 AM. My first order of priority was to benchmark all the different components of the Seam Carving algorithm and figure out the bottlenecks. Speed was really critical for a good user experience, so I decided to cut on some memory optimization (dropping support for larger images) for a few extra FPS. In the meantime, Shida created the basic structure of the app, from taking pictures with the camera to navigating between pages to creating a “paint” mode where the user can manually specify which parts of the images the resizing algorithm is not allowed to touch.
To get a sufficient speed, I knew it wouldn’t be enough to minimize the number of instructions the algorithm uses from a high-level perspective. It was necessary to optimize what was happening inside the CPU. Using SIMD instructions with NEON was an attractive option, but creating a C++ component to interop with C# was a bit risky in the limited timeframe of the Hackathon.
Instead, I looked for ways to make array accesses use the CPU cache as efficiently as possible. Using jagged array instead of 2d rectangular arrays to hold our image data gave a 1.5-2x speedup, which was quite nice. For the initial analysis of the image, which involves a convolution, caching some computation and processing only one row of the array at the time to stay in the same cache line gave a 5-6x speedup in that section. This really shows how much time the CPU spend on moving data in and out of memory – I concept I learned from Microsoft’s own Herb Sutter when he gave a talk on latency.
As the day progressed, more and more features were added onto the app. Shida implemented filters using Nokia’s SDK, which is pretty nice (I can’t image how long it would take to write all those filters manually). Nothing was without hiccups of course. Compilation issues due to imported packages caused a fair amount of downtime and we weren’t very familiar with Visual Studio 2013’s Git with TFS features that we were using to share our work. Luckily, we didn’t run into issues that ate up too much time, unlike some other teams.
During the night, we found that we were surprisingly not that tired. Adrenaline can do wonders, I suppose. It seemed to have been the same for all other teams – I don’t think anyone bothered taking naps more than a few minutes long. By around 6 AM though, productivity was down severely. Red Bull didn’t seem to have much of an effect either. On the bright side, we at least had a Minimum Viable Product that we could show, despite being rough around the edges.
Teams still working hard as the sun rises. A lot of the organizers and Nokia’s dev team also stayed during the night.
Noon of the second day was the deadline for our entry submission. Then came lunch, the pitches, and judging. By then, we were quite happy with our work and our confidence was rising. However, regardless of confidence level, winning first-place is always a surprise. Especially with the awesome ideas other teams had made. This isn’t just polite winner-speech – I genuinely would want to use some of the other team’s apps and there were ideas with more business potential than ours. What made the difference (for the judges, at least), boiled down to implementation. Our app worked exactly as it should.
Following that, we pretty much slept from the afternoon to the morning of the next day.
As we wouldn’t get a chance to go to Europe again for quite a while, we spent a day sightseeing in Copenhagen. It was a good opportunity to use the awesome Lumia cameraphone (and in Shida’s case, his DSLR, which made for interesting comparison shots between the two).
I think Copenhagen is the only place in the world where LEGO stores outnumber Starbucks.
The full resolution of this panorama shot is 21277x7506 – a mindboggling 160 megapixels.
The night is when the Lumia 1020 begins showing its superpowers. This picture wasn’t taken with a tripod.
Macro photography is very fun, a feature unique to the Lumia 1020.
And that was my 4-day trip to Sweden, courtesy of Nokia’s awesome team. Look forward for the app to be published!