I was volunteering in a robotics class when one of the boys started playing with Microsoft PowerPoint in a way that was completely novel to me: He was creating an actual playable computer game in PowerPoint.
No kidding, I had to record this as a proof, the video below says all.
What Aaron did got me to think about a couple of things:
First, what is programming? From my perspective, Aaron figured how to "program" PowerPoint, even if not using an actual programming language. He managed to control decision points and actions without any problems.
And second: How much more could we do with the tools and technologies we already have, but what's stopping us is just our lack of imagination and different perspectives?
I don't have much else to say so I will let Aaron run the show. Enjoy:
I've been using the Venue 8 Pro for a few days now and I personally think the 8 inches form factor is just perfect for Windows 8.1.
Then I read a review from the Verge on it which I think was, in my opinion, a bit too harsh: http://www.theverge.com/2013/11/20/5121634/dell-venue-8-pro-review
Although they seemed to like it a lot, their final conclusion was:
"At just $299 the Dell Venue 8 Pro is certainly the best Windows-based 8-inch tablet I’ve used so far, but with Lenovo and Toshiba already offering similar competition I suspect there will be even more on the way shortly. I want a small Windows tablet to replace my iPad mini Retina, and I’m convinced it’s a good idea, but for now it’s hard to switch fully. Dell’s Venue 8 Pro might not replace my iPad mini, but it’s certainly good enough to sit alongside it in my bag. I’ll await more Windows 8 apps and a better display until I fully make the switch."
So it appears that they don't think this device competes with other tablets with supposedly "more apps". Well, let me share my desktop right now with you:
Basically I've plugged my Venue 8 Pro's Micro USB on a Targus DisplayLink, then used a big touch screen monitor, a keyboard, a USB headset, a wireless mouse and a few other devices, all at the same time. Then after configuring Outlook, SkyDrive and my VPN to work I decided to also install Visual Studio 2013 on it. That's right, I even used Visual Studio while playing a movie on Netflix on the second screen! Now let's think about that for a moment:: Second screen, multiple apps at the same time, visual studio, desktop PC, outlook running at the same time as well without any lags.
So here's my humble opinion, The Verge: While you think we're lacking apps for our platform I personally would like to see an iPad that could do half of the things I'm doing right now on this $300 8 inches tablet. Not only I can even run SQL Server and Visual Studio on it, plus the other millions of Windows applications that we love and need on a daily basis (which is why most people who use tablets just play games on them).
So is this a competitor for other tablets? No, not really...
Samsung has created a page to help you with drivers and everything. Enjoy :)
Hello from Switzerland!
What a beautiful, beautiful country this is. I’ve just arrived after a long flight from Seattle and on Monday I’ll be presenting at the Shape Conference, thanks to the invitation I’ve got from Ken Casada, a technology evangelist from the Swiss Microsoft team (or should I say “Schweiz”?). And Microsoft keeps allowing me to meet different places and people, how could I not love this job?
Hey, here’s a view from my hotel room:
I’m so inspired that I’ve decided to write about technology. (That’s how geeks function, we get inspired and then we do geeky things)
So let’s talk about WinJS promises and a typical misconception: Asynchronous versus multi-threaded.
Now if you have read about WinJS promises you have learned it provides a very nice way of running tasks asynchronously. Here’s an example:
I really like the syntax there. It’s clearly saying: “Hey, download this feed first and then update the UI”.
The UI won’t freeze because the download is happening, so the experience is not harmed because you’re waiting for the 3G network to do whatever it has to do.
Now that’s asynchronous to me. But wait, let’s see what happens here:
My “KillMyCPU” function does what it says: it keeps things busy. Now the thing is, just because promise provides asynchronous capabilities it doesn’t mean it is not single-threaded. When you run this code you’ll notice everything freezes. Because the KillMyCPU function asks for all the CPU’s availability, forcing that thread to not allow anything else to run.
So what we do in such cases?
First, you don’t take 100% CPU in a for..loop :)
So what you do:
1-Create a Metro JS/HTML project
2-Create a Metro C# class library
3-Go to the properties of the Metro C# class library and change it to generate a WinMD file
4-At the Metro JS/HTML project, add a reference to the class library
5-Create a class like this:
The class has to be sealed for the WinMD to compile and all it is doing is doing the same for..loop using the ThreadPool.
Now if you run this you will notice the UI is not being frozen because of this code. Of course this increases the complexity since now you have to deal with multi-threading, multi-language, etc. Still it shows you can actually combine the power of these two languages together.
Although, it still makes no sense to create a Metro application that consumes so much CPU. Think about tablets, low spec machines and think about the overall experience you want to provide to the user. For that kind of stuff, 100% CPU isn’t a good idea, is it?
But the point here is to understand that asynchronous and multi-threaded are very different things.
Now I’ll have to disconnect so I can enjoy Zurich while I’m still here.
I haven't been updating my blog for quite a few months now.
And there's a reason for that: I have been quite busy moving. I have changed jobs so now this is my team:
More specifically I am now part of the Microsoft IT Engineering Architecture team and my focus will be on PoC’s on different technologies, such as Windows Phone, Windows 8 and SharePoint.
Today was my first day at my new job and I can't really complain about the view you have at the Sammamish campus:
Not bad, eh?
After working with/at Microsoft Brazil, Australia, New Zealand and US I can say I can't think about a better company to be at. This is such an awesome organization with so many amazing professionals. I'm proud of the technologies we are creating and to be part of that. So I'll try to keep on blogging every now and then to share what I'm learning with you.
And if you're visiting the Samm-C campus, come to say hi :)
I've been helping these guys on the ImagineCup competition. Please come to check out their work with .Net Microframework to automate a remote controlled helicopter. And when there, please "Like" the page to show your support! :)
So I was getting very annoyed about a problem I was facing: Every time I attempted to hit F5 on a Azure Solution, Visual Studio 2010 that had an ASP.Net MVC 2 project as the start one, Visual Studio 2010 (even with SP1 beta) got frozen during the build.
I'm not sure if it is due to some of the millions of beta, alpha stuff I keep installing on my laptop but one way or another, it was still annoying me a lot. Until I tried this:
3-Reset all settings
Then instead of selecting the C# developer profile (I never select this one BTW, just did it once to see how that felt and honestly didn't like it because several of the menu shortcuts I love on the general developer did disappear) I selected the normal settings I always like which is the general developer one.
Did a quick restart of visual studio and after that guess what? Problem gone!
Not quite sure what the relation is, but hey, it worked! So if you have the same problem, give this a try.
I know I speak for many of us at Microsoft when I say: WELCOME NOKIA! We are very glad to work with you guys :)
After playing a bit with a Windows 7 slate I decided to create a project, just for fun, to test a few ideas on it.
Basically what I’m trying to create is a companion kind of tool that assists with common tasks related to using applications that are not built to be used in a touch screen, without mouse or keyboard.
I didn’t spend much time on it yet but I decided to show what I’ve got so far. So please be nice and consider this is just a test I’ve created for fun, nothing more.
If your attention span only goes this far, just look at what I’ve built here:
Keep in mind this is a WPF, 32bit application written in C#, running on an Intel Atom slate with 2 GB Ram. I did not disable any visual feature, nor did any optimization on windows itself.
So basically this tools docks into the screen and reads the start menu, offering a Windows Phone 7 style of navigation into the items. It’s quite handy because you can do the whole navigation with your thumb as you hold the device. Now here’s the trick: The start menu items aren’t stored in a single folder but basically in two different places: One is your specific Star Menu Items list and the other is the all users list. You basically have to merge both so a good place to start in .Net is looking at these two places:
These will help you to get the list as it appears in your start menu.
Ah, but not so fast! You will notice that most of the items in these folders are .lnk files, not the actual programs. What’s the challenge with that? None really, unless you want to show the real icons from the each executable these applications correspond to. In which case you will have to decode the .lnk file, find the target executable it links to, and use a few APIs to get the corresponding icon so you can bind it to the WPF list. Piece of cake! :)
Next you can see I added a few buttons for typical things you want to do with windows: Maximize, minimize, etc. How we do that? Basically we have to hook into the foremost open window using a few APIs so we can get the window handler, also known as hWnd. Doing so we can then send commands such as minimize, maximize, close and etc.
But we can do far more than that. Assuming the application running uses old style menus, we can also hook into them, showing an easier to access list to the user without having to even touch the application:
Keep in mind this works with legacy apps. The new ribbon and other styles of menus aren’t that simple to hook into. And that’s why I created another tab, with common tasks we are likely going to execute in most applications:
For these, I simply send the corresponding key combination to the open window so it responds accordingly. Ctrl+S for save, Ctrl+V for paste and so on.
I’ve also been working on a magnifier using the magnifier APIs, but since they aren’t touch compatible I decided for simply opening the windows magnifier instead. I actually managed to make part of the magnifier API work with touch but that was pretty much a hack so never mind about that…
That’s pretty much it. Hope you have as much fun watching it as I had building it :)
We finally uploaded the BluesBox v2 to Marketplace. Should be available soon.
Beyond Daryl "Mad dog" Ooh's new UI design, I also added a bit more functionality to support doing the background bass playing so two or more people can play together.
Also included a tutorial video and did a hell lot of bug fixing. We had a few issues around multi touch (it can be tricky when dealing with sliding around the notes and controling which sounds need to start/stop) but I think I managed to fix everything now.
You can watch it working here: http://www.youtube.com/watch?v=ftyFeBbz-9M
I already have a whole lot of cool ideas for next version, but way too little time to build it. So far I spent less than two days with building this thing. I think I need a part time job :(
So a few of you have asked how to implement the bid functionality using the Trade Me API and I honestly didn't know because I never tried that myself.
But Mr. Nikhil Ramrakhiani did it and was very kind to provide a code sample, which I'm making available here.
Many thanks to Nikhil and hope it helps everybody else!
Ok, so I'm finally doing what I've promised some time ago: Talk about some of our Windows Phone 7 challenge competitors!
I'm my defence, I've been a bit busy these days so apologies for taking so long!
I want to mention the top 5 finalists of each categories, plus a few others that also called my attention so let's go:
New Zealand Category
App name: Event Finder NZ
One of the winners of the WP7 competition, Event Finder NZ has quite a nice user interface and provides an easy way of searching for events:
You can watch the video here: http://www.youtube.com/watch?v=cgzKjsnRAys
The author is Sashank Ramkumar.
App name: Auckland Transits
The second winner of the NZ category, Auckland Transits provides a handy way of finding the best public transport option for getting around Auckland:
One cool thing I like about this app is that it makes use of the tiles, once you select your route:
The presentation video can be found here: http://www.youtube.com/watch?v=fzJWO7yaAKs
The author is Shane S. Anderson.
App name: Checka
Now that app is scary. I honestly had no idea you could get all this information from a car's license plate and I'm not sure I feel good about this. Nevertheless it is a very handy and well-built app:
You can watch the video here: http://www.youtube.com/watch?v=HntiFdJCkZ8
And the author is Sean Jackson
App name: Get Kicking
Now this guy is a XNA ninja and he had no problem showing this on this little 3D Rugby game:
(By the way, he managed to build most of it without an actual phone device to test it!)
You can watch the video here: http://www.youtube.com/watch?v=UOrhLBeU11o
And the author is Guy Sherman
App name: Fruit Salad
What a cute little game! We loved the concept and the graphics. And I personally loved the fact that this was built by a female developer. Unfortunately we didn't have many in this competition...
You can watch the video here: http://www.youtube.com/watch?v=Fdjnx-BsMFA
And the author is Beverley Laundry
App name: What's On NZ?
That's quite similar to the Event Finder NZ and was another strong candidate.
You can watch the video here: http://www.youtube.com/watch?v=sHnw5U4K5GM (I quite like the intro in the video too!)
And the author is Vinny Jeet
App name: Today on TVNZ
Another strong candidate. Very good looking little app!
You can watch the video here: http://www.youtube.com/watch?v=LBsgBCBTzYc
And the author is Thivyakanth Ruthramoorthy (Thivy)
Trade Me Category
App name: Trade Me Mobile
One of the winners of the WP7 competition in the Trade Me category, the Trade Me Mobile provides a nice user interface and some cool navigation functionality:
You can watch the video here: http://www.youtube.com/watch?v=FUle36KXYGM
The author is Brian Donovan-Smith.
App name: Gooseberry
The other winner of the WP7 competition in the Trade Me category, Gooseberry also provides generic Trade Me related functionality and good looks:
You can watch the video here: http://www.youtube.com/watch?v=hAo8ZA0L8Vo&feature=youtube_gdata (another catchy video/music BTW)
The author is Seshi Chemudugunta
App name: Open Home Finder
Different than the first two, this is a more specific app that helps people to find open homes.
The idea is pretty cool and the app was quite well built:
You can watch the video here: http://www.youtube.com/watch?v=Jrn9XbKmlyg
The author is Steve Chadbourne
App name: My Trades
Yet another great general purpose Trade Me application. Will blog more about this guy later as he has been very helpful with some Trade Me API related questions.
Lots of features!
You can watch the video here: http://www.youtube.com/watch?v=n2QbJbGL7Dk
The author is Nikhil Ramrakhiani
App name: Scout About
This app works with the properties in your watch list. It allows managing the properties in lists/groups and getting more information about directions and details about the auction. Very handy.
You can watch the video here: http://www.youtube.com/watch?v=wYdreDsC6Tg
The author is Andrew Jackson
App name: Price This!
Ok, this is my personal favourite. It is so crazy that it is actually a great idea: It is a Trade Me game.
Yes, a game. Crazy? Yes, definitely. Would you have imagined such an idea? No. That's why it is so awesome.
You can watch the video here: http://www.youtube.com/watch?v=1aSUxXN6dGw
And the author is Henry Chong
App name: ISBN Barcode Sleuth for Trade Me
What's cool about this one? Two words: Barcode reader.
Yes, they've ported a Barcode reading library to the phone! Need to say more?
Very nice work. I've asked these guys to write us an article about how they did it. Will they say yes? :)
You can watch the video here: http://www.youtube.com/watch?v=91QqgT2BRoo
And the authors are Zhi Lee and Mathew Peachy, who is still waiting for a t-shirt, I know, I know.
And there is more, many more. I've just picked a few apps to show you why you should be proud of New Zealand developers. These guys built this in their spare time, with only one or two developers, in one month. That's it!
From now on I'll be maintaining this list of NZ made WP7 applications that are currently available in the Zune Marketplace.
If you app isn't there, please let me know:
In case you didn't see this, it's a free downloadable pdf format ebook, including source code samples:
The beta of the Windows Phone 7 connector for Mac is available to download here:
It basically allows synchronization music, videos, podcasts and photos from iTunes and iPhoto to your phone.
I'm sure this will make some people quite happy :)
The Microsoft Professional Developers Conference (PDC) kicks off this Friday (29 October) morning and we would like to invite you to participate in this year conference LIVE in New Zealand. This year's PDC online event will include live streaming of the keynote, as well as concurrent live streaming of all sessions. No registration is required. Join the live streaming and on demand sessions from the 29th October. You can join us on the web or with the MS Communities User Group starting this Friday.
Since 1991, the Microsoft PDC has been the centre of Microsoft's biggest platform announcements. This year will be no exception. So, make sure you join your local user group or on the web to watch the latest PDC announcements.
And I'm very keen to see what people have been building. Feel free to drop me an e-mail with your phone app details, videos, comments or questions: firstname.lastname@example.org
Good luck! :)
An important correction since lots of people asked this specific question:
If you want to be one of the first buyers in the world, you can order it from the internet from 12:01, BUT the phone will be shipped to you, not delivered right away in that case. Please keep that in mind.
Now what you can do is going to the truck tomorrow and ordering it right here. There will be devices available.
I understand that not everyone lives in Auckland :) and for more information about availability in other cities, please check with Vodafone.
If you didn't know that yet, it's now confirmed!
So if you want to be one of the first in the world, the day is tomorrow (Thursday, 21st of October) and the time is 12:01am. You can do it from Vodafone website (www.vodafone.co.nz). If you do so, the phone will be shipped to you. The option 2 is to go to the Auckland’s Aotea Square at 8am and order it right here so you can have it!
Actually we will be there earlier but the phones will only be available from 8am on. I’ll be there too so if you want to bring your app development related questions, I’ll be happy to help.
See, New Zealand? This odd time zone has its advantages! :)
Don't panic! Usually these issues are very easy to fix:
1-Zune software isn't installed or wrong version:
Usually if this is the case, when you plug your phone's USB cable, Windows won't recognize it. Check if your Zune software is 04.07.1404.00 or above that.
2-Zune software detects the phone but it says it can't connect to it:
Look at windows device manager. If you find an "unknown device", right-click on it and try updating the driver. If this relates to Windows Phone 7, the driver can be found online and will be automatically downloaded.
3-Zune software detects my phone but I can't deploy my XAP from Visual Studio:
Remember you first need to register it using the "Windows Phone Developer Registration tool" (Start menu/Windows Phone Developer Tools).
4-Trying to use the Windows Phone Developer Registration Tool but doesn't connect to my Windows Phone 7:
Again, check the items 1 and 2. You need the right version of the Zune software and the USB driver must be right. Also remember the phone must be on and unlocked (the screen must not be asking for the password or off).
5-Windows Phone Developer Registration tool detects my phone but doesn't proceed after I put my Live ID information:
Likely scenario is that your Live ID isn't configured as a developer on http://create.msdn.com
Also check if there isn't a firewall blocking your internet access.
6-Visual Studio says I've reached an application limit and can't deploy my app:
There is a limit for how many apps you can sideload as a developer to a single device. If you reach this limit, just uninstall one of these apps from your phone and try again.
7-I don't have the source code, just the XAP and I need to sideload on my testing windows phone 7. How can I do it?
If you did install and configure everything as mentioned in the previous items, you can use the "Application Deployment" tool on Start Menu/Windows Phone Development Tools.
8-My application runs fine on the emulator but when I run it on the device, it shuts down suddenly without any warnings. Why's that happening?
The most likely scenario is memory. Keep in mind the OS will shut down your app if it doesn't handle memory very well. Monitor when debugging and check the RAM usage. See if you are freeing up memory accordingly. Second most likely scenario is a .Net Exception not being handled. Try debugging it.
9-My application can't play any mp3 files. When I try it, it just fails:
Disconnect your phone from Zune. If it is connected, it won't play. Also check if the audio file is DRMed.
10-When my application uses the XNA library's media player to play a background music, it just quits unexpectedly:
If you build a Silverlight app and try to use XNA to play an audio file, you have to consider a few things. First, you'll have to deal with XNA's FrameworkDispatcher.Update method, like mentioned in this article: http://www.silverlightshow.net/items/Exploring-Silverlight-XNA-integration-on-Windows-Phone-7.aspx
Second, there are differences between DRMed and non DRMed songs. As a guideline, always call your play method within a try catch block and show a message to the user if you can't play the song explaining what is going on. Your application probably won't pass the certification if you don't do that!
Hope that helps :)
Record this date: 14th of October, 2010. A (not so) small step for a team, and a huge step for New Zealand: The first kiwi made app is just there, and free!
The application is "The official all blacks app" and you can download to your Windows Phone 7 for free (well, when you have your Windows Phone 7, I mean!).
It looks so good that I think I'll have to start learning about Rugby.
I’ve put some screenshots below. (By the way, I know other NZ people have been submitting their apps but the time for the certification varies depending on several factors, so watch this space!)
Congratulations to all people at Provoke, incuding Brendon Ford, Mason Pratt, Phil Whitehead, Pablo Garcia (If I'm missing people here, I'm very sorry, you guys are all awesome!)
Shame on me for not reading the API documentation. In my defense, I didn't have much time anyway! (Will keep using this excuse until the end of the days) :)
If you downloaded my sample application, you found that my request token URL was looking like this:
public static string RequestToken = "https://secure.trademe.co.nz/Oauth/RequestToken";
It turns out that, by default, this URL won't request for writing access to anything. So you will keep getting errors every time you attempt to update the watch list unless you change this URL into something like this:
public static string RequestToken = "https://secure.trademe.co.nz/Oauth/RequestToken?scope=MyTradeMeWrite,MyTradeMeRead,BiddingAndBuying";
Where did I learn about this stuff? Good and old API documentation! http://developer.trademe.co.nz/api-documentation/authentication-methods/request-token/
You will notice that once you authenticate, you'll be able to see what permissions this app is requesting from TradeMe:
There you go, have fun!
If you are building localized applications for Windows Phone you should read this article before submitting your app to Marketplace:
Basically there are things to keep in mind when it comes to using the AppRes.DLL and MUI files, so avoid further issues with app certification by preparing your application according to the article's guidance (only if you are building a localized application).
If you have 1 minute (it will probably be 5 seconds), please respond to this question: http://twtpoll.com/udd9wj
I always wanted to create a way of making it very easy for someone with very little music knowledge to play blues with their phones. Either a solo or with a background music or other phones.
This is the first concept of what I had in mind:
Now that I've built this it is pretty much obvious what the next steps should be. I'll soon build the v2.0 with quite a few interesting features. Go blues!