iOS Limitations and Xamarin Mobile Certification

In my previous post I mentioned that I was looking at developing a cross platform, mobile application to schedule SMS messages.

Well I’m afraid that took a bit of a backseat for a couple of reasons.

Firstly I became aware that the action of sending a text message with no input from the user was not possible using iOS. While I have not investigated this fully it did make me pause for thought – what was the point of starting this cross-platform project if it was not going to work on the iPhone? Well, if the information I have is correct, there is no point …… unless I just demonstrate that writing apps for Android does not necessarily mean Java! So, this project is still on the cards – just not at the top of the deck.

The second reason for me not starting the development was that I have been studying via the Xamarin University and am happy to say that I am now Xamarin Mobile Certified :-).

The training took the form of a number of live web session presented by experienced Xamarin developers. Over the course of a couple of months I ‘attended’ many required sessions to allow me to sit the certification. This consisted of 150 questions which must be answered in under three hours. The pass mark was 80%. With my knowledge of iOS a little on the shaky side (being an Android user at heart) I was a bit hesitant about taking the full exam (I could have just taken the Android flavour) but I thought ‘what the hell’.

The exam did highlight to me that I need to do some more work on iOS but a pass is a pass and now that I have my evenings back I will be moving forward with the migration of the FillLPG application to Xamarin. Initially targeting Android but developed using all I have learnt to ensure that the maximum amount of code can be reused for an iOS version.

The code for FillLPG will unfortunately not be made available but I’m sure that there will be more than a blog post or three coming out of the development so stay tuned.

Website Outage

The website was offline for a few hours this morning due to a power outage at Fasthosts – who are the current registrars for the onthefencedevelopment domain. I say ‘current’ registrars because while the outage was due to circumstances beyond their control the fact that it took ALL of their systems offline is cause for concern.

Now, Fasthosts have a number of safeguards in place for such a scenario and these include UPS and Backup Generators which should keep things running in the event of a power failure. So what happened? Well apparently while the backup systems did come online as required there was a ‘networking failure’ which resulted in 1000s of websites going offline and even the Fasthosts website & Status page were inaccessible. Customers had to turn to Twitter, Facebook and Google+ for information – which was very slow to come.

The fact that the entire Fasthosts system was offline means that they must all be housed in a single location, or at least rely on services at a single location. The fact that they could not update their own Service Status page during the outage it a bit of a joke – although fellow customers I interacted with on Twitter was not laughing. Many had eCommerce site which were offline and potentially costing them money while everyone speculated whether the recent bad weather had caused the problem.

While I was not affected to the same degree I was hobbled by not being able to access my issue tracker or source control repository (both hosted behind OTFD URLs). Not a major issue but pretty frustrating.

So I’m now looking to move my domains to another registrar and the favorite looks like Hover (part of TUCOWS) at the moment. I’ve heard good things about them and I’m trying to educate myself a bit on domains and the transfer process to see what I need to do for a smooth transition (not my day job).

A New Year Cometh

So it’s New Years Eve and looking back at the last year I’m pretty happy with how it’s gone.
Since deciding to leave the rat race that is permanent employment in favor of contracting I not been out of work for long and the short time between contracts has been useful for getting up to speed with new techniques and technologies. Nobody can know it all, it’s just not possible, so I carefully pick my fights in terms of what I invest time in learning.

This year I intend to focus on a handful of technologies:

  • MVC 3/4
  • Entity Framework
  • Umbraco
  • Javascript libraries such as backbone.js and node.js

While I’ve been working with MVC and Entity Framework for a while my most recent contract has been using MVC2 and nHibernate which has meant that I’ve not had time to be keeping up to date with new developments such as MVC4 and Entity Framework 5. I intend to be working with these new technologies, along with Visual Studio 2012, to develop a couple of pet projects.

The last two items in the list are quite new to me. I’ve worked with Umbraco in the past but only in a limited manner – I developed custom controls and forms but did not work with the installation and configuration of the actual site. I had considered the idea of migrating this blog from Drupal but I’ve decided to develop a friends website using Umbraco instead.
As for the Javascript libraries, well I’ve been hearing about them quite a lot on numerous podcasts so it would be silly to just ignore them. If they turn out not to offer any benefits to me in terms of what I can offer as a contractor then I’ve got a few more things to look at instead.

All in all I’m looking forward to 2013 and hope that it will be as challenging and rewarding as 2012 has been.

Nexus 4: Ordering on Launch Day – Never Again

Dabbling in Android as I do, when I recently saw that Google were releasing the new Nexus phone (the Nexus 4) I thought to myself, “hell, why not – it’s nearly Christmas after all and I’ve been good all year”.
So this morning I logged into the Play Store and along with 1000s of other waited, periodically tapping F5 waiting to see the ‘Notify Me’ button change to ‘Add to Cart’. When it did (at about 8:05 am) all hell broke loose. I added the 16GB version of the phone to my cart and then tried to add the ‘bumper case’ – which resulted in a nice error message and notification that my cart was now empty. Ok, forget the case for now, just get the phone sorted (I can order the case in a day or so when the smoke has settled). I must have tried a dozen times to get to the payment screen. Sometimes the ‘Add to Cart’ button would revert to ‘Notify Me’ and then back again sometimes I got an error when I added the phone to the cart, other times it would be when I clicked on the Go To Checkout button.

But then, out of the mists of despair I reached the elusive popup with the buy button! I selected the appropriate delivery and payment details and clicked Buy. My heart sank as once again I was greeted with another error message.

By this time the 16GB version appeared to be sold out and only the 8GB version was available – did I really want that? No, but I thought I’d give it a whirl just for kicks and predictably I was greeted with error after error. Finally the 8GB version was also sold out but just then something odd happened – the ‘Add to Cart’ button appeared on the 16GB version. I added it to my cart, went to the Checkout and clicked the Buy button – only to be greeted with another error.

OK I thought, enough is enough. My Nexus S is plenty good enough for me anyway, I’ll wait for the smoke to clear and get one then…….that’s when I received an email receipt for an 8GB Nexus 4! I accessed my Google wallet account and sure enough, under the pending transactions, was an order for an 8GB version of the phone – not really what I wanted but at least I had one (albeit ‘pending’). A little while later I accessed my wallet again to see if the order had moved from Pending but something stranger greeted me – another order, this time for a 16GB version. Oh dear … looks like I’ve gone from neither model to one of each in a very short space of time.

The order for the 16GB version actually has a time stamp that’s earlier than the 8GB version – even though it arrived in Google Wallet afterwards. All very confusing.

Well, at the moment both orders are Pending so being a realist I can say that I’ve bought either yet, let alone both. if both turn up then I guess I’ll thrown the other one onto EBay and see what happens.

Well that’s a lesson learned for me! I remember watching TV reports of people clammering for Cabbage Patch Kids and thinking “that’s just mental..!”. Well, I’ve now experienced the online version of that and can honestly say I’ll never be doing that again.

Update 14/11/2012: Received an email from Google regarding my multiple orders asking if they were intentional and providing details of how I can cancel unwanted ones. So, in the knowledge that my orders appear to be valid I’ve cancelled the one for the 8GB version – my bank account can breathe easily once more.

SCRUM Down

With my PRINCE2 Practitioner status about to expire I wanted to replace it with something a bit more relevant in the current market. While PRINCE2 is still a recognised qualification I just have not found any need for it since leaving Local Government. Very few jobs that I was interested in required it and when I mentioned it in interviews etc I found that it was not really working greatly in my favor.
With the cost of a two day recertification course around £399+VAT and following my attendance at a #digpen event back in March where Derek Davidson of WebGate International bestowed the virtues of SCRUM and Agile I decided to look into it a little deeper.

Now, I had previously worked for a client claiming to implement SCRUM and was not too impressed with the resulting management – if this was SCRUM then it’s overrated I thought! After reading through the SCRUM Guide it was clear that they were not implementing SCRUM but it’s dysfunctional cousin ‘SCRUM-But’, that’s when someone says “We use SCRUM ….. but we do it a bit differently here”.

The concept of SCRUM is pretty simple, after all the Guide is only 16 pages long, but the ramifications of implementing it are quite wide reaching. The fact is that most people fundamentally don’t like change. It makes them nervous! When change happens there is always a bit of the “old ways” brought along for the ride and this is how ‘SCRUM-But’ implementations are born. Simply having a daily standup meeting does not mean you are doing SCRUM – not by a long way.

After reading through the SCRUM Guide a few times I booked a place on WebGate International’s One Day Crammer course. This was ideal for me as, being a contractor, I charge a daily rate to my clients. If I’m not on-site then I can’t charge them! While the Guide is only 16 pages long there are a lot of dark corners that need a light shone on them and this is where Derek came in. With his knowledge and experience he was able to provide real life examples of managing projects using SCRUM and highlight the pitfalls that trip up the unwary. I was able to recount my SCRUM-But experience and use it to cement my understanding of what was going wrong and how SCRUM would have avoided the problems that plagued this particular project.

With the course behind me I set about taking the practice assessments on the SCRUM.org website and quickly hit 100% scores on a regular basis – although with many of the questions in the practice assessment coming up each time this was by no means an indication that I knew it all.

The actual assessment consisted of 80 questions and was limited to one hour. That’s only 45 seconds per question but of course some of them were pretty simple meaning that there was time to spare for the more involved ones.
One piece of advise I always try to follow when doing exams like this – Read the Flaming Question [RTFQ]. There is nothing worse than essentially giving the right answer to the wrong question. Some of the questions are worded a little oddly, for example:

SCRUM does not have a role called Project Manager – True or False

instead of the more conventional

SCRUM contains a role called Project Manager – True or False

(this one is in the practice assessment so I’m not giving anything away here)
It would be quite easy to read this incorrectly and give the wrong answer – take your time!

At the end of the assessment it is possible to go back over your answers if you have time but I was quite happy with what I’d done and submitted the assessment for marking.

I’d passed, with a mark of 93% and I have to say that I’m not unhappy with that.

So, now I’m a Certified Professional SCRUM Master but that does not mean that I know everything about SCRUM, oh no! There is much more to it and all I’ve done so far is prove that I know the fundamental principals of the framework. I still have a lot to learn but hope to put my current skills into practice in the near future and hone them over the coming years.

Moving from WordPress to Drupal 7

When I initially started this site it was a simple blog implemented using the Joomla! Content Management System. This was soon replaced by WordPress which has been the underlying platform for about two years – until now. While WordPress is a great blogging engine (some say it’s the best) it no longer fits my requirements so I’ve taken the plunge and moved the site to Drupal 7 which not only provides a good blogging platform but also provides me with the additional functionality I’ll need going forward.

Now I like Drupal, I’ve used version 6 as the basis for a number of sites, but I was going to use the new release (version 7) for this site. However the move to Drupal has not been as smooth as I would have liked, mainly due to issues with importing the existing content and getting some of the modules working as I wanted. As with other Open Source CMS projects there is a wealth of contributed modules available to provide additional functionality and a number of community support sites where existing users provide help and advice.

While the site is now live, it’s not finished yet and there may be some minor issues and formatting glitches so please bear with me. If you find a link that does not work, a download that is missing or anything else that strikes you as wrong then please either contact me via the contact page or leave a comment on the appropriate posting.

Onwards and upwards.