Hard Work, Persistence & Passion = Vantage Point!

So I have had a good few years since closing down my Company and hanging up my ‘enterprise developer’ gloves.  Quite scary to think that I have developed over 200 apps since that day when I sat in a room in Microsoft Victoria and first expressed an interest in developing apps for Windows Phone!.  At the time I didn’t anticipate being away from Enterprise development quite as long as I have been but circumstances being what they were I guess that was just my destiny …  I have run the gamut of apps, starting with a few individual apps that only achieved moderate success I have targeted all manor of strategies in an effort to try and make a living.  Criticised for ‘boiler plating’ a large number of apps using a template system I developed myself I am actually most happy when developing apps that are close to my own heart.  And so it is with my latest App (or to be more exact suite of apps) that draws on a hobby that started out for me back in 2009 when attending an Orange mobile developer conference in Nice! 

Logistics being what they are I discovered that I had a free day at the end of the conference and (another hobby) had only just been reviewing a series of Stereoscopic slides that I had picked up at an auction some years earlier – weren’t there some slides of Nice I thought?  I  reviewed my collection again and dug out a dozen or so slides that had been taken around Nice some 100 years earlier.  My thinking was it would be interesting to try and find the spots in these slides and take ‘up to date’ shots from the same spot.  Here is the first one I took after recognising the building while walking along the ‘Promenade des Anglais’:

Cote Dazure,Nice,Prom ThenCote Dazure,Nice,Prom Now

I took some time and trouble to position the camera at what I perceived to be the same spot as the original photographer some 100 years earlier.  It was an amazing experience spending that whole day tracking down the locations and taking ‘up to date’ shots and when I got home I set about thinking how I could present the two images in an interesting way.  It so happened that at that time my interest had been peeked in WPF and its latest sibling WPF/E (which later became known as Silverlight). I decided to use the photographs I had taken as  the source material, and my motivation for learning how to code in Silverlight.  Along the way I took more photographs of the areas around me and incorporated those also (this has become an ongoing hobby with me much to the chagrin of my wife and family who now expect that I will attempt to disappear for an afternoon whenever we go on holiday to somewhere new, in order to feed my latest passion (yes, no excuses, I AM a geek).  And so, for a brief period ‘From the Malverns’ (as I called the App) existed on the web and was generally met with positive feedback..

Now along the way I discovered that although I could take 20 or so photos in a day only a small percentage of them (maybe 1 in 4) were usable in the App.  How so you say?  The simple fact is it is very difficult to find the exact same spot that the original shot was taken from (although very easy to get within a foot of the spot in any particular direction!).  Over the years I have tried many ways to improve this process, ranging from using my own stereo cameras from 100 years ago (an attempt to be authentic) to printing out see-though acetates of the original which I would manically hold up in front of me as I lined up buildings and objects from the original that were still in evidence today. 

And so for some time I had thought about developing some kind of camera add-on that would assist me in this process.  At the same time I wanted to rejuvenate that old Silverlight App and bring it ‘up to date’ as a Windows 8.1  App.  And so I am now close to releasing “Vantage Point” for Windows Phone 8, designed to assist in the taking of present day shots matching old locations and ‘Vantage Point’ for Windows 8 which is designed to present them to best effect!

Vantage Point Maker for Windows Phone 8.

This app is difficult to put into words and I have to confess, that although it is for sale in the store it really has a target audience of 1 (being myself).  Safe to say that the premise is to allow the user to load in an old photograph (such as the one on the left above), revisit the scene and overlay the same location in the viewfinder in order to take the new shot..  I added a few tricks to assist in lining up the shot – filters (using the excellent Nokia imaging API) allow the original image to be viewed as an outline drawing – which makes aligning building and objects a little easier.  I also found it useful to be able to manually change the opacity of each image and automatically blink the old image on and off within the viewfinder.  All this has been a great help using my trusty Lumia 920, though it has also served to peek my interest in the new cameras from Nokia (ie those with higher image resolution and larger screens!).  In an ideal world I might have a tablet sporting a 10” or larger screen and a high quality camera – that would make the whole capture process significantly easier!

Now, although this app is available in the store I am currently looking at developing it further such that it packages the old and new images taken, along with co-ordinates into a suitable file format for direct input into the Windows 8.1 App, the next logical stage being to encourage users to submit their own photographs, old and new, to become a part of the Windows 8 App experience.

Vantage Point for Windows 8.1 and Windows Phone

The original Silverlight allowed the user to interact with the old and new images in several interesting ways. which are better experienced than explained (note to self, resurrect source and re-publish online).  but for this App I wanted an experience that matched the design guidelines and brought something new to the whole experience. ).

Browse Views by County

image

Map View of Locations (by town)

image 

Interactive  view of chosen location

 image

image And so the basics of this app is it allows you to view a 100 or so  postcards of ‘olden times’ overlaid onto the ‘current view’.  (the postcard can be moved around the screen and flipped between old and new views).

 

Now call me a geek, but I have spend many hours ‘playing’ with my new app – so at least I know have one happy customer).!

(Vantage Point is due to be released shortly into the Windows 8 and Windows Phone stores, after ‘just a little more’ tweaking ….)

 

Update:  Sadly I cannot simply while away all my time on apps like this one indefinitely and I am currently looking for some interesting work developing for Windows Phone and/or Windows 8.  Please get in touch if you hear of anything, meanwhile stand by for this awesome App!!

Thor: The Dark World. (Spoiler Free Review)

Apologies for the short digresion from development technology but …

.. with the luck of the devil I managed to snag a plus one for my daughter Daisy and I to a private screening of "Thor:The Dark Army" at the Cineworld/IMAX in Birmingham last night.  After being treated to a red carpet and champagne reception we duly sat down in the elevated comfort of screen 8 and, a pleasant change, we were straight into the film with no previews or ads.  One thing I would say is that the film has quite a few potential spoilers so be careful what you read before going out to the film yourself, Oh, and be sure not to leave during the closing credits! (The closing credits are some of the most incredible 3D cartoon graphics that I have seen, so you are not going to want to leave without seeing them all!)

First the cast, a well chosen ensemble, reprising their roles from the first film with Chris Hemsworth, Tom Hiddleston and (of course) Anthony Hopkins providing the gravitas that allows you to absolutely believe in the Norse / Viking-esk world of the film (notwithstanding that much action takes place in London!).  For this film the primary bad guy isn’t Loki (yes, he is bad) but the leader of an elf army, played menacingly well by Christopher Ecclestone.

What made the film that little bit more enjoyable for me was the odd interjection of humour.  Loki’s humour was delivered with deadpan confidence that had the audience laughing out loud in several places.  But Thor also gets a look in – again, deadpan and raising a good few laughs that provide a welcome, if short relief to the tension and action of the film itself.

Now perhaps it was just me but I felt that there was definitely a nod to some sci-fi classics in this film.  First the elf army – reminded me of an enemy of the Dr himself:the Pertwee-era “Autons” (though, looking at them now, perhaps that is a stretch).  Did did I also detect some Star Wars like sound effects?  (An echo of a tie fighter engines mixed in with a smattering of the Phantom Menace racing pods perhaps?) Not to diminish the sound and visual effects of the film – which were Epic (3D was awesome too – effective, without being too ‘in your face’)

So no spoilers but how well does this trailer reflect the film itself?  Well it does manage to purvey the mood and excitement of the film without giving too much away, but the film itself is EPIC in 3D! So, don’t be mean to yourself, go out and find the biggest 3D screen cinema you can  – you are not going to be disappointed!

Learn to play the Drums

 

This App presents a series of video based tutorials to assist anyone who wishes to learn to play the drums.

image

 

Jump straight into the guts of awesome drumming by using these informative videos from an eclectic mix of some of the best drum parts around.

Play, Rewind and Pause until you master your song(s) of choice.

image

★★★★★ "!"
★★★★★ "Great!"
★★★★★ "This is a great way to learn."

Constantly updated with new clips featuring the best drumming action.

image

Use the Apps half and quarter speed modes to slow tings down while you get up to speed!

See a tutor you like the look of?  Sign up for their own courses online!

Free download but please consider helping the developer to improve this App by paying to remove the nag and in app advertising!

Thanks.


Downloads

Windows 8 (Imminent)

Windows Phone

WordPress suspended my blog!

 

Having just gone through a couple of days of angst following the suspension of this blog this morning I got the following email from WordPress.com:


Hi there,

Thank you for getting in touch.
Your site was flagged by our automated anti-spam controls. We have reviewed your site and have removed the suspension notice.
We greatly apologize for this error and any inconvenience it may have caused.

Phil
WordPress.com | Automattic Inc.


It probably won’t come as too much of a surprise that I am now looking to get this blog hosted somewhere else .  If anyone finds themselves in a similar position to me and doesn’t want to risk their blog being replaced with a message like this:

"This blog has been deactivated because we believe it does not comply with the WordPress.com Terms of Service or advertising policy."

 

without any warning whatsoever then perhaps now would be the time to begin looking elsewhere. 

There are a bewildering number of alternatives out there and I have started this thread to get some advice on which solution to go with:

“Blog hosting recommendations please”

Please let me have your own suggestions, either via Channel 9 (above link) or by comment below.

Thanks  (& rant over)

Free help with your first Windows 8 App!

 

Get free help from Microsoft with building your Windows 8 App by signing up to their new 30 day promotion.150x290-Win8-30Days-green

As a part of this program developers in the USA can get :

* Personal on-the-phone access to a Windows 8 architect.

  • * An exclusive one-on-one design consultation.

Everyone (UK as well) also gets an opportunity to get expert help from a Microsoft Services Engineer at an App Excellence Lab.


SIGN UP HERE


70-485, Advanced Metro style App Development using C#.

“High level breakdown of disciplines required for this exam”

Develop Metro style Apps by Using WinRT (17%)

  • Create background tasks.
    • This objective may include but is not limited to: implement the Windows.applicationmodel.background classes; implement the IBackgroundTask interface
  • Consume background tasks.
    • This objective may include but is not limited to: use timing and system triggers; keep communication channels open; request lock screen access; use the BackgroundTransfer class to finish downloads
  • Create and consume WinMD components.
    • This objective may include but is not limited to: create a WinMD component in C#; consume a WinMD component; handle WinMD reference types; reference a WinMD component

Discover and Interacting with Devices (16%)

  • Capture media with the camera and microphone.
    • This objective may include but is not limited to: use CameraCaptureUI to capture pictures or video; use MediaCapture to capture pictures, video, or audio; configure camera settings; set media formats; handle media capture events
  • Get data from sensors.
    • This objective may include but is not limited to: determine the availability of a sensor (Windows.devices.sensors); add sensor requests to the app manifest; handle sensor events; get sensor properties; determine location via GPS
  • Enumerate and discover device capabilities.
    • This objective may include but is not limited to: discover the capabilities of a device (for example, GPS, accelerometer, near field communication, and camera)

Program User Interaction (17%)

  • Implement printing by using contracts and charms.
    • This objective may include but is not limited to: implement the Print contract; create a custom print template; construct a print preview; handle print pagination; implement in-app printing; expose printer settings within your app
  • Implement Play To by using contracts and charms.
    • This objective may include but is not limited to: register your app for Play To; use PlayToManager to stream media assets; register your app as a PlayToReceiver
  • Notify users by using Windows Push Notification Service (WNS).
    • This objective may include but is not limited to: authenticate with WNS; request, create, and save a notification channel; call and poll the WNS

Enhance the User Interface (16%)

  • Design for and implement UI responsiveness.
    • This objective may include but is not limited to: choose an asynchronous strategy for your app; implement the Task Parallel library for multi-processor utilization; convert asynchronous operations to tasks
  • Create animations and transitions.
    • This objective may include but is not limited to: apply animations from the animation library; create and customize animations and transitions, including XAML transitions; implement storyboards and transformations; utilize built-in animations for controls
  • Create custom controls.
    • This objective may include but is not limited to: choose the appropriate base control to create a custom control template; style a control through control templates; design the control template to respond to changes in viewstate
  • Design Metro style apps for globalization and localization.
    • This objective may include but is not limited to: implement .resw files to translate text; implement collation and grouping to support different reading directions; implement culture-specific formatting for dates and times

Manage Data and Security (17%)

  • Design and implement data caching.
    • This objective may include but is not limited to: choose which types of items (user data, settings, app data) in an app should be persisted to the cache according to requirements; choose when items are cached; choose where items are cached (Windows Azure, remote storage); select the caching mechanism
  • Save and retrieve files from the file system.
    • This objective may include but is not limited to: handle file streams; save and retrieve files by using StorageFile and StorageFolder classes; set file extensions and associations; save and retrieve files by using the file picker classes; compress files to save space; access libraries, including pictures, documents, and videos
  • Secure app data.
    • This objective may include but is not limited to: encrypt data by using the Windows.Security.Cryptography namespace; enroll and request certificates; encrypt data by using certificates

Prepare for a Solution Deployment (17%)

  • Design and implement trial functionality in an app.
    • This objective may include but is not limited to: set up a timed trial; set up a feature-based trial; set up in-app purchases; transition an app from trial to full
  • Design for error handling.
    • This objective may include but is not limited to: design the app so that errors and exceptions never reach the user; application class for global collection; handle device capability errors; handle asynchronous errors
  • Design and implement a test strategy.
    • This objective may include but is not limited to: recommend a functional test plan; implement a coded UI test; recommend a reliability test plan (performance testing, stress testing, scalability testing, duration testing); implement unit testing in an app
  • Design a diagnostics and monitoring strategy.
    • This objective may include but is not limited to: design profiling, tracing, performance counters, audit trails (events and information), and usage reporting; decide where to log events (local vs. centralized reporting)