Who are you voting for?
Posted on June 7, 2017 Leave a Comment
I don’t usually come out in support of political parties but I’ve decided to make an exception.
On 18th April when the election was announced if you had asked me (and some people did) who I would vote for I gave a very clear answer that I was voting conservative.
Over the past 6 weeks I’ve sat back and listened to the debate and I can say for the first time ever tomorrow I am confidently and assuredly voting labour. Here are a few of the reasons why I’ve come to my decision.
1. The economic argument. Austerity no longer makes sense, every business knows that borrowing money to invest in growth is a sound and logical thing to do which pays dividend in the future. The trick is making sure that the investment is sound. I haven’t heard anything to make me believe that labours way of thinking isn’t sound – investing in education for example will ensure that the future generation have the skills needed to drive our future economy without being burdened by debt.
2. When you look at Corbyns record over the past 30 years he has at every turn been proved to be on the right side of history. LGBT rights and the the Iraq war are 2 very clear casing points. His stance on nuclear weapons currently is unpopular but I’m starting to think that perhaps history will portray a different view.
3. The election campaign – to me its very clear that Corbyn has treated the public with respect and dignity. Compare this to the arrogant campaign run by the conservatives that just assumed increasing their majority was a formality. I think May treat the whole country with contempt and on that basis she doesn’t deserve my vote. The conservatives have also argued that the labour manifesto isn’t fully costed – read the conservative manifesto and ask yourself where are the costings?
4. In treating the public with contempt it is clear that the conservative manifesto hasn’t been thought through. As a result when it has been scrutinised it is clearly full of holes. If May wants my vote she needs to show what she will do if she gets it and the manifesto is shamefully lacking – this has resulted in multiple U turns and changes to policy. Yes those changes have been downplayed but it has been clearly demonstrated that the policies don’t stack up.
5. The NHS – I really believe it won’t stand another 5 years of tory cuts – it will implode in on itself. Investing in the NHS will provide for our future and our children’s future; we need to find money to help the NHS to prosper. I don’t believe this will happen with a conservative government.
So there you have it, 5 reasons I’m voting labour. I never thought I’d hear myself say this but I really hope that by Friday morning we have a labour majority government and yes I would be happy with Jeremy Corbyn as Prime Minister!
Bring on the vote!
Apple Bend Gate: Still an issue
Posted on December 11, 2016 Leave a Comment
Many of you will remember the apple bend gate issue that effected the iPhone 6 just after its release. Widely reported in the media that iPhone 6 bends unnaturally with very little pressure
Apple at the time played down the issue but eventually publically stated that any affected devices would be replaced.
Fast forward 12 months
My friend Jez Gilmour got a new apple iPhone 6 – he dropped it down the side of my sofa last night and when he retrieved it the phone had inexplicably bent.
I assured him that this was a known issue with the device and we promptly took it to the Apple Store in the Trafford Centre, Manchester.
The genius inspected the device, checked with his manager and informed us this was NOT covered by Apple warrenty – the only way to get a replacement was to pay £270! A lot of money especially when the issue is known to apple!
At the time of bendgate apple reported that a mere 9 users had been affected by the issue – how many users have had the same response as us? Surely though normal use no phone should bend?
Please let me know if you have had a similar experience – we need to ensure that large corporations can’t get away with going back on publically stated promises just because it’s no longer headline news!
Basic Integration of Firebase Remote Config into an iOS App
Posted on September 16, 2016 Leave a Comment
I recently attended iOSDEVUK in Aberystwyth. There was a fascinating talk by Todd Kerpleman (@toddkerpleman) about using Firebase to perform A/B testing.
The technology is pretty cool so I created a demo project. If you’re looking to integrate Firebase into your app then this tutorial looks specifically at how to integrate Firebase Remote Config into your app.
- Start by creating a brand new app in xCode. Make sure its set up within a workspace and that you have CocoaPods installed and setup.
- Add pod ‘Firebase/RemoteConfig’ to your pods file and run pod install
- Make a note of your apps bundle identifier.
- Go to http://firebase.google.com and sign up for an account.
- Select Create New Project, give your project a name and select your region.
- Once in the project select the option to Add Firebase to your iOS App.
- Enter your apps bundle identifier and if the app is going to production also enter the app store identifier for your app.
- The file GoogleService-Info.plist will be downloaded to your computer.
- Drag this file into your xCode projectYou’re now ready to start interacting with Firebase from within iOS.For the purposes of this tutorial I am going to create an app that downloads Constants from Firebase and changes the appearance of a button within my app based upon the retrieved values.
- Modify your apps storyboard and add a simple UIButton. Connect the UIButton to your class file as an IBOutlet.We now need to set the app up to download our constants values from Firebase. I’ve decided that I would like the app to download values from Firebase on each launch.
- Add a plist to your app and name it plist
- Add a new CocoaTouch class to xCode with a subclass of NSObject. Name the file Constants.swift
- At the top of the class add the line of code import Firebase
- Create a new mutable variable remoteConfig with a type of FIRRemoteConfig
var remoteConfig:FirRemoteConfig!
- Add a new function to the class and call it createDefaults. This function is going to create an instance of the default firebase values and make them accessible by your app.
- Add a new function called setupApp. This function will retrieve the RemoteConfig from Firebase. This function will call createDefaults() to instantiate the default Firebase values.
The statement self.remoteConfig.activateFetched() instructs your app to replace the local defaults with those fetched from the server.
- In the AppDelegate.swift file import Firebase
- In the AppDelegate.swift file call FIRApp.configure() from within didFinishLaunchingWithOptions
- In the AppDelegate.swift file call Constants().setupAPP() from within didFinishLaunchingWithOptions
- If you build and run your app you should now see a log in the console that reads “Config Fetched”
- You now need to retrieve key values from the default data returned from Firebase. In Constants.swift create a new function called getButtonText() which returns a string value.
- In Firebase create a new RemoteConfig property called “ButtonText”. In the example below I’ve also created properties for ButtonTextColor and ButtonColor.
- Calling Constants().getButtonText from the view controller will then return the value to be used as the label for the Button.
- You can now create properties in Firebase for any setting within your app easily retrieve it and use it anywhere within your app.
The sample project for this app is available on Github https://github.com/stephenwestgarth/FirebaseRemoteConfigSampleApp/
You will need to replace the GoogleService-Info.plist with your own created in Firebase if you want to see anything other than the values that I have created.
What’s next for the iPhone?
Posted on September 5, 2016 Leave a Comment
I can’t believe its almost time for Apple’s September event! It seems like only 5 minutes since apple released the iPhone 6s and 6s Plus and yet here we are anticipating the release of the iPhone 7.
I always find following predictions about what Apple are going to do very interesting. The issue is that over the years it has become increasingly hard for Apple to wow me because much of my tech wish list is now complete. In the early 2000’s when I was still in school I used to dream about a phone that could connect to the internet, that would allow me to record video, share photos and listen to my music. I remember being delighted when I got a pocket PC but in reality being really let down by what the device actually did.
All of those troubles are long behind us. So now I ask what else do we want from Apple and more specifically from the iPhone? What is my new wish list? Here are some ideas:
Wireless Charging
This has been tried by a number of companies but its still not quite here. The idea of simply being able to put my phone onto a surface (ideally any surface) and have it charge is a brilliant concept although I accept that it comes with a lot of challenges. This is definitely something I would like to see brought to market with apples usual flair of simplicity and elegance.
Battery Life
Over the years battery life has improved dramatically however the power demands of devices have also increased significantly. I really want a battery that lasts. When I say lasts I want a battery that can take 12 hours hard use and still not give up – I hate having to carry around my charger.
In the absence of a brilliant battery that never dies what about exploring ideas to extend the battery life. I would love to see a solar powered phone that charges from the sunlight.
Dual Sim
This can be done already but its expensive. I really want the ability for my phone to have 2 telephone numbers, 1 for work and 1 for home. It would be great if I could select which SIM I want to use for certain numbers and then also allow incoming calls on the SIMS to be denied based upon a schedule.
Personal Assistant
Siri is brilliant but I still think there is a lot could be done in terms of improving Siri’s artificial intelligence. Is it plausible that one day we could have a conversation with Siri and that the system would answer in an almost human like fashion?
Ubiquitous Internet Connections
This isn’t in Apples control but its important to draw attention to it. I’m writing this while sat on a train on my way to iOSDEVUK. I havn’t had a mobile signal since Shrewsbury. Large towns and cities have now got 4g and that’s great but what I really want to see is 4g everywhere. Some would argue this isn’t worth the investment especially in rural Britain but when you realize what the internet can do for small communities I think its not only worth the investment but is actually an essential investment.
Life Interaction
The iPhone is now an extension of me it therefore makes sense that my iPhone should interact with the world around me. With iBeacons and location services my iPhone is now very aware of where it is but I would like my iPhone to be more intelligent. For example when in any restaurant wouldn’t it be awesome to be able to see the menu on your phone; to be able to call the waitress and even ask for your bill and pay without having to attract someone’s attention? When queuing at Alton Towers wouldn’t it be awesome if you could see an estimated length of time you were going to be waiting; or even avoid the queue to buy tickets altogether by being prompted to do so as soon as you arrive.
Linked to this is the idea of my iPhone being able to do everyday tasks. Homekit has introduced great new features in terms of being able to control my house; heating, lighting etc. I would love to see this expanded and a much greater rate of adoption – why do I need to carry keys for example; surely I should be able to unlock my house and car without a key? Also as soon as I leave home my phone should prompt me to turn on the intruder alarm.
The other thing that would really help us as developers to achieve this is if Apple were to open up the NFC chip so that we can develop applications that use it.
Apple Watch
Quite simply this needs to fully function without a phone. This is beyond running native apps; I want to see full WIFI, 4g connectivity and have the ability to use all features when my iPhone isn’t close by.
I’m sure I want and need more from my iPhone and there are a lot of things I could add to this wish list but I’m very aware that Apple Engineers are busy people. If its possible to just achieve the above this year, the rest of my wish list can wait until 2017 J
Your Problems are NOT your Users Problems
Posted on September 2, 2016 Leave a Comment
How many times have you been faced with this:
I complete captchas on a daily basis and am faced with them wherever I go on the internet. What does the captcha represent to you?
To me as a developer it’s a way that developers use to reduce the amount of spam that is received as a result of automated bots that roam the internet exploiting weaknesses. To me as a user it is a burden on humanity that gets in the way of me achieving my aims and objectives of using the web.
The issue I have with this overused annoyance is that it does not solve any problem that I as a user have! Instead it solves problems that I face as a developer! The real issue here and my big revelation is that:
YOUR PROBLEMS ARE NOT YOUR USERS PROBLEMS
Just stop for a second and read that again! Your problems are NOT your users problems.
If we forget the problem that the captcha solves and focus on our users, captchas are a horrific creation. They interrupt the users flow, get in the way of what the user wants to do but worse that they the humble captcha annoys the user especially when they are so complicated its impossible to work out what the system wants you to type or click. Whoever thought that a captcha was a good idea in my view should be taken immediately and put into room 101.
So what are the alternatives? It would be wrong of me to sit here berate you as a for using a captcha without offering some alternatives.
The real issue is that as developers we need to verify that the person who is using our system is real; I believe a captcha is a lazy way of doing this.
Take this scenario! You have a contact form that you are expecting a user to complete; you are worried that unless you use a captcha you will receive huge volumes of spam because there is nothing to prevent a bot from submitting the form.
In reality it is going to take a few second for the user to complete each of the fields – if there is a long message box it might take even longer still.
Computerised bots don’t hang around when completing forms; they get to the form and they repeatedly spam it submitting it multiple times a second.
A potential solution here is to track the behavior of users on our pages. If we record how long it takes the user to complete the form, we can come up with a pretty good idea of whether our user is a real human.
If we get suspicious that the user isn’t real because the form was completed to quickly then maybe this is the point that its ok to use a captcha. But for 95% of users visiting our site its ok just to let the submission through because their behavior verified that they are real.
Of course the above scenario and solution throws up problems. Is it ok for us to track what our users are doing on our websites; will our users be happy with this? My view is that we need to educate users; make the reasons for this clear within the privacy policy so they can read about it – you could even tell them that the alternative is to have a captcha before every submission and I’m sure most users will sympathize and understand.
The work being done by the guys at NUCAPTCHA explores all of these ideas and is revolutionising the way that Captcha works.
Another interesting way to beat the captcha and improve our users experience is to gamify the experience. If we are going to make the user do something tedious what’s wrong with making it a more enjoyable experience; everyone enjoys playing games. That’s exactly the approach that is being taken by SweetCaptcha as they try to make captchas fun.
I’m not naïve enough to think that the captcha is going to go away anytime soon but I hope that this post will make you stop and think about whether there is a way you can solve your problems in a better way that improves your users experience; or at least makes your user smile to brighten their day.
Of course this is only one very small example of how developers inconvenience users to solve their problems. Next time you are faced with a scenario where you need to solve a problem consider what impact your solution will have on the end user and then ask yourself if your solution is a legitimate burden to a user or whether it to should be resigned to room 101.
Brilliant UX
Posted on August 28, 2016 Leave a Comment
I’ve recently found myself talking to people more and more about what makes UX either really really good or really really bad.
I came across this image online which I think sums up best practice of user interface design.
Its important to look at how this manifests itself in real life. The best example of exceptional user interface design that comes into every day life is the common Door Handle.
The door handle is a brilliant example of user interface design because it is quite simply one of the most intuitive objects of everyday life.
I don’t ever remember being told how to use a door handle; and its a concept that in thousands of videos online you see conquered by children and animals alike with absolutely no direction.
This is so true that in nursery schools often the door handle is moved so it is out of reach of the children because staff know if the children can reach the handle then they will be able to open it.
The door handle is quite simply an elegant solution to a complex problem. It hasn’t been over engineered and actually goes unnoticed for the vast majority of the time. Yet imagine the issues we would have if the humble door handle didn’t exist? We would struggle to open doors, wouldn’t be able to lock doors and secure our property, car boots and cars more generally would face difficulties; and if expand the concept to cover the generic handle how many every every day objects would be effected.
Compare and contrast this to UI on the web. We regularly see examples of good clean UI, simplistic in its nature, not over engineered and easy for our users to understand. One of the best examples of stunning UI on the web can be seen on the gov.uk website.
This website learns from the simplicity of the door handle by making it very obvious what to do. A user has w very clear options when they visit the home page, search or click on a relevant link. When you consider the volume of information published on this website it really is a triumph that it has been categorised into 16 clearly defined areas.
Now lets consider the navigation on this website
I acknowledge that I have selected an extreme example; but in the website above the navigation is confusing, over engineered and doesn’t help the user to find the content that they are looking for.
The creators of the website above have worked on the principle that everything on the website should be accessible within 2 clicks. While this is a good principle in theory there are times when the rules doesn’t work and simply isn’t helpful to our users. As designs as we search to optimise or users experience by reducing the number of clicks we often find ourselves giving users a greater number of choices which only serves to confuse our users.
The moral of the story here is that we should all try to make our websites more like Door Handles; emulate the simpicity and improve our users flow as they access our online content.