Windows Phone Apps Download Count Challenge

As I mentioned previously, Dave Glover had another competition running for the most download app, with 30 Nokia Lumia 800’s to give away. I submitted Memory Classic which had at the time, 2,023 downloads, and is currently at 2,500.

Memory Classic

The classic game of Memory Match with a standard set of playing cards. This game comes complete with 3 difficulty levels with up to 21 pairs to match. Game high scores and statistics are recorded to ensure you always have a goal to beat.

Difficulty
Rows
Columns
Easy 4 5
Normal 5 6
Hard 6 7

Memory Classic - Easy Memory Classic - Start Screen Memory Classic - High Scores

This time I was successful and Dave sent me a beautiful, Nokia Lumia 800. Thanks Dave!

Nokia Lumia 800

Technorati Tags: ,

Don’t Develop Features, Build Designed Products

When faced with a hard deadline you are forced to make decisions fast. Below I am going to detail briefly the design decisions that took place to deliver PlaygroundCommunity for the hack::data competition.

As I stated in my last post, Developers’ Weak Spot, time and time again I fall for this trap. In PlaygroundCommunity I started all wrong. I thought, after my success of the Kindy Web Site, surely there must be a good platform for me to begin this site with. It could give me logins, forums, comments, Facebook integration etc. So began the search. I fired up the Microsoft Web Platform installer and had a look at the open source .NET based blog, forums, content management systems, to find something just right. What I found was that I had fast headed out in the wrong direction on a new project and completely wasted my time.

I did not design the product that I wanted. I had a feature ideas written down, but the problem is shopping list requirements are just plain wrong. They give the false impression that you have thought about your product when you haven’t. My motive for searching for base that had it all was that I did not want to waste anytime coding something that is already done. However, more time is wasted building the wrong thing. I started designing the product wrong. I went:

Idea > Feature Shopping List > Search for existing platform to save development time

After I waste my time, I started again. It still starts with the idea. From the idea you generally cannot help thinking of all the things the application could do. A feature shopping list. Only do this briefly. You don’t even need to write this down and can skip it completely. Coming up with features is usually easy. You need to put all that aside and think of the user experience (UX) and the work flow that is desirable for your users first. When that is taken into account, requirements that sounded good on their own, that don’t fit in the UX get dropped easily. The same goes for discovering features that fall out of the workflow that would not have been easily considered on their own. Always come from the user perspective when considering a new feature. It is like grocery shopping. You plan your meals for the week, check out the recipes and then build a shopping list based on what you need.

The solution for PlaygroundCommunity was to mock the interfaces to determine the functionality that is required. What I ended up with was 2 pages, with external services consumed with JavaScript. Nothing difficult that required a heavy, feature-filled platform to start from. Although this is very clear in hindsight, from my feature shopping list, it was not. Below are the mocks I did in PowerPoint Storyboarding, an extension for PowerPoint that comes with Visual Studio 2012.

PlaygroundCommunity Mock Page 1PlaygroundCommunity Mock Page 2

From here you can see how close the end product came. I had a few changes on the mocks after consulting a couple of people before I even started coding. It was easy to determine what could also be cut to be able to make the deadline. What makes it interesting is due to the clear scope I was then able to take a risk and use technologies I had no previous experience with, for my learning and improved user experience.

Technorati Tags:

Developers’ Weak Spot

The Internet and code sharing has made the developers who get stuck in Analysis Paralysis potentially worse. Searching the Internet for a solution to prevent reinventing the wheel (or to be diligent to ensure that you do not get it wrong) can end up wasting more time than it saves.

If there are things a good developer knows how to do, often it is worthwhile just doing them without seeing if you can get it already done. There does need to be a balance. But I would argue that the search for an existing solution should be much shorter than typically expected. I’m talking no more than 5% of the estimated time to do it from scratch, with a hard limit of a day for a really big project.

You need to make sure what you are trying to do is not supported by existing code. I remember way back at University in Java 1.3 other students trying to do manually what was provided by the framework with string.EndsWith. All they had to do was check the documentation. IntelliSense makes this much easier these days, but the frameworks, extension methods, available libraries and packages (e.g. NuGet) make the search for ‘does it already exist’ so much harder. When you do not find what you want fairly quickly, do not hesitate to abandon the search and create it yourself.

Consult the Internet, but do not lean on it so that you spend more time looking than you do doing. The Internet certainly is a great resource; we just need to make sure it is used as a resource and not as procrastinator or a crutch.

I wanted to highlight this, because in posts coming up with my development on PlaygroundCommunity I failed in this and also succeeded. It is a delicate balance.

Technorati Tags:

hack::Brisbane – PlaygroundCommunity

With the releasing of public data from Australian governments the Brisbane City Council (BCC) has done an awesome job making available a large range of data sets. To encourage the development community make good of this data BCC ran a competition, hack::Brisbane. The goal was to create anything to help improve Brisbane using this data in an app, web site or tool. The prize: $10,000. That was too big for me (and many other developers!) to ignore. Months of late nights were spent getting something done to enter.

What I came up with, was a very self-serving web site that hopefully serves many other Brisbane parents, and will work better if it does. For a little background, Brisbane has great weather; warm and sunny most the year. I have 3 young boys and we like to be outside as much as possible. Very often on a Saturday, if we have nothing on, and the weather is good, we like to go to a local playground. Brisbane has lots of brilliant playgrounds; over 1000 playgrounds. We like variety. Finding new playgrounds to try however, is more difficult than it needs to be. The BCC does have the information on its web site, but it is in lists by suburb of Parks. Of which you would need to check the details if it has a playground. As you can see below, not the nicest way to browse:

Listed Suburbs

Suburb Park Details

As you can also see, if you go to the site, there is more going on in the parks, like active parks events, exercise equipment, walking groupsreal adventure women events,  kids and teenager chill out programs, skate parksboat/canoe ramps, dog off-leash areas, bush land areas, bikeways and shared pathways, and featured parks which has a whole other list again. Each of these is displayed in a different way, lists of lists, PDF’s, RSS feeds and interactive maps. I would commonly browse the parks lists for playgrounds but with the release of the playground data, complete with Latitude and Longitude coordinates, I knew there was a better way. Welcome PlaygroundCommunity.

PlaygroundCommunity Web Site

Here’s the spiel I put on the About page:

Playground Community exposes in an easy to browse way all the wonderful playgrounds that Brisbane has on offer. It is especially useful for parents to find local or age appropriate playgrounds to visit. The playground information is able to be added to by anyone to extend the playground data in a useful way for the community benefit. It features:

• Playground descriptions, editable by anyone, which detail park and playground facilities and equipment
• 5 Star Community Rating
• Age appropriateness
• Picnic areas and Off-leash dog parks within the park
• Brisbane Active Parks live feed for community events held in the park
• Map filtering of playground features
• Community discussions for each playground
• Easy reporting issues to the council

Accessing this site on any phone with a mobile browser will give you a very different view. It is designed to be used on the road, using location services to find the top 10 nearest playgrounds, and gives minimal details to reduce mobile data usage.

PlaygroundCommunity on Windows Phone

The competition ended very successfully with 54 Entries, many very nice, submitted by 18th May 2012. For $20,000 (2 x $10,000 prizes) the council certainly got its money worth for the development done. There are now a bunch of Web Sites, iPhone, Android and Windows Phone apps promoting Brisbane and making more of it known to its residents and visitors. All the entries can be checked out on the hack::Brisbane entries page, including my entry. The winner is to be announced by 22nd June.

PlaygroundCommunity Entry

I didn’t get to include all I wanted to, as often happens with a hard deadline, but I am happy with what I did. In doing this project I took the opportunity to skill up a little on JavaScript and ASP.NET MVC. I tried out Visual Studio 11 Beta and therefore MVC 4.0 and made use of TFS Preview, Microsoft hosted TFS on Windows Azure, and SQL Server 2008 Spatial functions. All of which I intend to share my experiences with.

Easy Kindergarten IT Infrastructure and Web Site

This year with my oldest boy starting Kindergarten I was keen to get involved. The Kindergarten is a Community and Parent run organization via a committee and a new role was created this year for IT Coordinator. That fit perfectly. The role was undefined, but basically any IT need would come to me rather than the previous process of asking a Dad familiar with "Computers" to help out or give purchasing advice. As you can imagine then, as I’m sure with many small non-profit community organizations, the systems and processes can gain some great improvement with just a bit of continuity.

First task is always to listen to the issues people are having with the current environment. These are often things that are just blocking or frustrating normal computer experiences. In this case, printer problems and Wi-Fi signal strength. The solutions to these things are usually quite simple to those in the know, but worlds away from people who just need things to work.

Secondly, a personal email accounts for the teachers @<kindy>.com is something that they hoped they could get, but never had anyone who knew how to do it. The current office email address is the ISP given email account. I put a new web site on the agenda with this to give a whole new online experience. The existing site was the second iteration done by a Dad one year giving his time to help out. The web site content had been updated once in two years. Hosting has been graciously provided by the son of one of the teachers for several years. My goal was to provide a web site that was a modern useful communication channel for the teachers and current parents. The previous sites where just a web presence with an about, contact and enrolment details.

Printers and Wi-Fi

Tracking down the details to get these things done, like the Wi-Fi connection details, hosting sites and accounts, web site accounts, and Internet provider details is a difficult task. Anything thought important was kept in a single IT folder. One task that I am yet to complete is to throw out all the existing information, which had history, not just current, and replace it with a clear guide to how everything is, now that I have deciphered it and documented it in OneNote.

Solution to the printers was tied up in the Wi-Fi as it was a wireless printer. The signal strength into the classrooms was poor due to the Internet connection coming into the office and the Wi-Fi access point being set up there. Fortunately the building has a small room between the two classrooms, closer to the office that has just over 50% signal strength. Plugging in a Netgear WN2000RPT Universal Wi-Fi Range Extender gave a strong signal into the two classrooms, one which had absolutely none previously. This allowed the teachers to be able to have their laptops in their classroom online, making more useful personal email accounts to allow direct parent interactions, rather than the shared computer and inbox in the office.

Email Accounts

Email accounts for domain names are usually provided by the hosting provider. And in this case that was the same, however, it is not a path I would recommend at all. The web mail clients are usually very poor, especially by today’s standards, and there is usually very low data allowance. The solution is Windows Live Admin Center - Custom Domains. As the description on the site says "If you manage a domain for the neighborhood Little League or the photography club, you can personalize Windows Live for your group.". The process is very easy. Just click on Get Started, fill in your Domain Name and Set your MX records though you DNS provider as shown in the setup.

Windows Live Domains

MX Records

User management is then done via the settings in Member Accounts. You can create up to 500 accounts in your domain; far more than the typical 5 for a low cost hosting provider. However, not that many were required for the Kindy.

Member Accounts

Custom Url’s to access other Windows Live services such as Mail and SkyDrive can be configured. This makes the whole experience for your users seamless, while letting Microsoft take care of the infrastructure.

Custom Adresses

You can also drop your logo into the page, albeit very small.

Mail Logo

Web Site

Creating web site for the Kindergarten is a little more difficult, but not much. I began with looking at the existing site usage to see the current main use of it. Clearly, as can be seen below, it was just used for enrolment information and secondary finding out about the Staff. Also updating of the site was too difficult for the staff since after the setup in Sept-Oct 2010 the site was only modified once in August 2011.

Page Hits

Update Log

It was built using Joomla 1.5 and looked quite dated.

Existing Joomla Web Site

When creating a new site like this needs to be as simple as possible for the staff to be able to own or subsequent committee members to take up. As I stated, I wanted the site to be useful for the current parents. There is a lot of communication that goes on between parents and the Kindy. They is always multiple notes and letters going home with parents at pick up and drop off and a monthly newsletter. This left no shortage of information that could be provided on the web site as a "single point of truth" for parents about all that is going on and have a clear view without having to scrimmage through the loads of paper picked up. Not to mention just the ease of losing one critical piece of paper due to the turmoil of picking up the 3 year old with a 2 year old and 6 month old that also want to stay and play. Choice came fairly quickly to rely on WordPress for several reasons:

  • Super simple to configure
  • Simple for staff or committee members to update, and plenty of help available online
  • Plugins for anything, so no coding required
  • Themes galore
  • Hosting by many providers, including WordPress.com
  • Quick preview created on my local machine with Microsoft’s Web Platform Installer

With this, each new piece of information required to go to parents can be put up as a new post. All event information is in the calendar and up to date. I was able to create a mock up in about an hour. I then exposed this instance on my machine to the Staff and Committee so that it could be previewed and feedback given before going live.

Quick Preview Web Site

Two main pieces of feedback that came up was privacy and director discretion. Creating a login for each parent is undesirable and impractical. The site needs to be low maintenance. Fortunately WordPress has a Protected Post feature. Just set a password for the post and that post is then locked. This gives us a good balance to allow some posts to be public, which is easier to use and gives prospective parents and feeling for how the Kindy works and enough privacy for security of our children. For the director discretion to review anything posted, at the moment only I am making the posts and have a login. WordPress however providers the ability to allow only drafts to be published by some users which would allow the review process, if more people become keen on posting themselves.

After a few more hours picking the best plugins and tweaking the theme with the background provided by another committee member the new site was approved and uploaded. The plugins I went with were:

  • All-in-One Event Calendar
  • Contact Form 7
  • Image Widget
  • Simple Slideshow
  • WordPress Importer (for transferring from my computer to the host server)

And the base theme was Adventure Journal by Contexture International.

Final Web Site

There are a few outstanding items to do, but quite low priority as to getting the site live. These are:

  • Mobile Site friendly (this can be done with a plugin)
  • Details for the staff profiles
  • Move DNS hosting to an account controlled own by the Kindy
  • Move hosting to WordPress premium
  • Document Posting and Calendar updating process
  • Minor outstanding style tweaks
  • Documents online in a shared SkyDrive account

For now I am maintaining and publishing all the posts to the site. But as the staff get use to the new things introduced I will slowly hand more over. For new posts the staff can now just email what they want posted (usually a Word document that would be given to parents) from their new personal email accounts.

Publish Apps and Get a Nokia Lumia

I had been wanting to create Windows Phone apps for about 6 months now but had been continuing to put it off. When Dave Glover announced the challenge, it was the kick I needed. Publish 3 or 4 apps and receive a Nokia Lumia 710 or 800. Working almost every night, from early January, this is what I achieved:

Memory Speed

This is NOT a standard game of Memory. Once a pair is matched, it will flip back over if you do not find all the others quick enough. This game comes complete with 3 difficulty levels with up to 21 pairs to match. You must match all pairs within the Matched Pair Timeout. If a matched pair flips back over you can simply match it again, and it will be another matched pair timeout interval for that pair. If you are not quick enough, you’ll end up spending all your time rematching pairs you have already found. Game high scores and statistics are recorded to ensure you always have a goal to beat.

1 of 5 2 of 5 3 of 5

Maths Defender

There are incoming bombs falling towards the city. The only way to stop them destroying the buildings is to denote them with the code. The code is the answer to a maths equation. This game comes complete with individual operator (+, -, x, ÷) or all options, adjustable number range from 0 to 100 and 3 speed settings to challenge everyone

1 of 6 2 of 6 5 of 6

Count With Me

Keep the little ones entertained while they learn to count. Tap each object to highlight the numbers as you count. Select the right number and they objects will fly off as the count goes up. It features many different objects from robots to trees to cars and bright varying backgrounds.

1 of 6 2 of 6 6 of 6

Color Bubble

Help the kids learn their colors by popping bubbles. The player is given a colored instruction of which color bubble to pop. The bubbles then bounce around while they try and pop only the specified color. If they hit the wrong color it just bounces the bubble around more.

1 of 5 2 of 5  3 of 5

I wanted applications that would engage the brain in some way. I’ve never been interested in writing games and never done it before, but taking the approach for educational games that will be also entertaining for my three boys (3, 2 and 1/2) became very fun. I would draw the concept on the white board and then my eldest boy would watch as the development progressed and the game came to life. And he really enjoyed them.

Having developed back in 2004 for the Pocket PC I wanted to see how far the development tools had come. I thought they were really good back then and what I have found is that the experience is even more seamless. Considering I have now published 4 apps on the store without ever running them on a physical device should give a good testament to the development environment. Not to mention 4 games in a few hours a night over 2 months, never having done games development before. A far cry from my first horrible experience in 2008 in the Android Development environment. However, I assume it has progressed and would now love to port these apps over to it now.

Unfortunately, my last app was published on the 04/03/2012, two thirds through the competition and by half way through the limit of 50 entries had already been received. So I missed out on a phone. A big thank you to Dave Glover for organizing the challenge and really engaging the Australia development community. So much so that he currently has another competition running for the most download app. Unfortunately, I’m fresh out of ideas, especially ones that would appeal to the masses of Windows Phone users. Although, I still do need a Windows Phone to be able to have my boys play them whenever we are out, and they need to be distracted.

Failure of Search TFS

Well over a year ago I set up a landing page to start gathering emails for interest in Search TFS. A dynamic integrated TFS work item search experience. Today I am calling an end to the project. Although the project didn’t go anywhere, by the process I followed I wasted little time and could fully justify the position the product was to take. The main reason to kill it is that Visual Studio 11 is shipping with integrated TFS work item searching. Finally.

Team Explorer VS11 Search

I think this helps justify that there is a need for what I wanted to do. The existing Search Work Items for TFS 2010 had 7,076 downloads on the 1st January 2011 when I was starting this and now has, 23,093. That’s not a bad niche. How many would be willing to pay for something better is another question. On my landing page, I got 12 emails. Considering that there was absolutely no push, SEO, linking (apart from this blog) or advertising I’m happy there was something and I have a baseline.

Soon after I launched the landing page I got wind the Microsoft was finally going to do something. So I waited to see. Now that I’ve been playing with Visual Studio 11, I’m happy with the new Team Explorer for the most part, but I was quite disappointed with the search. It’s no better that the current available plug-in. That means it’s slow and query based. I wanted more like OneNote, where you see results as you start typing:

OneNote Search

The market though, even for something substantially better I feel is drastically reduced now that it is first party. I’m disappointed Microsoft didn’t do better since search is one of the most important features of work item tracking. The way that UserVoice does it to help prevent duplicates is brilliant. I’m hoping the search works better with TFS 11 but  since running it against Team Foundation Services (fantastic btw, especially the just announce build service) I have little hope for that.

All is not lost. TFS Working On has improved in its download rate. ClickOnce deployment having less friction may have helped that. It’s long overdue for an overhaul. I’ve had plans for nice Windows 7 integration for a long time, now I should be looking at Windows 8 perhaps. Search TFS will still fit nicely into TFS Working On, especially for those that don’t live in Visual Studio.

Follow

Get every new post delivered to your Inbox.