Categories
PepperHQ

PepperHQ

In early September I decided I wanted to find a new role in which I could make more of an impact than at my previous jobs. After having spoken to the very enthusiastic CTO of PepperHQ, Andrew Hawkins, about a role as the Senior Software Engineer of the Pepper Platform I decided it would be the perfect place for me to make a mark.

Pepper build a series of iPhone and Android applications for resturants, retail and hospitality — primarily Coffee Shops at the moment — which allow users to pay for products and recieve awards for being a loyal customer.

In my mind the coolest use case of the Pepper Apps is CheckIn/Pay by balance. Imagine you work in Canary Wharf and visit the same Coffee Shop every morning to get your caffeine hit. Without Pepper you would have to go in, order your drink, wait for it to be made and then pay for it using cash or a credit card and, if you wanted to earn loyalty rewards, you would have to carry a flimsy bit of paper with you and get it stamped every morning — assuming you don’t lose it before you’ve collected enough stamps for a drink.

With Pepper you can automatically be “Checked in” to a location as soon as you are within a given distance of the store, perhaps just as you come out of the tube station. You can then make your order from your phone and have it ready for you as you get to the counter. Here’s the cool bit, you can just pick up your coffee and walk off. Checking in to the location earlier made your profile picture show up on the till in the store so the Baristas know that it’s your coffee. The payment is taken from your in app wallet (which can, optionally, be auto-topped up from your credit card, meaning you never have to think about it again). Your loyalty is also managed in-app.

Some Pepper Customers
Some Pepper Customers

Pepper is really one of those applications that makes the most sense when you see it in action and realise just how much time it would save someone who buys two or three coffees a week.

My role at the company is to be in charge of the pepper platform — all of the backend services, primarily Node.js, that manage the interaction of the applications and point of sales systems.

I’ve been at the company for 3 months now and am really enjoying my time here. It’s pretty neat to build a product people can see the value in, and that is available for use with companies that are household names.

So far in my time at Pepper I’ve added “Pseudo Currency” as a type of loyalty scheme, improved the development process by introducing Continuous Integreation, Linting and a Pull Request merge model using protected branches and started work on a series of improvements to the loyalty reward process.

I plan to keep the blog up-to-date with any developments at the new job.

Danny

Categories
University

Mobile Devices and Applications Coursework Result – 100%

On Monday 12th May our Mobile Devices and Applications coursework was due in at 9am and I had to demonstrate mine at 1:30pm, which was a very quick turn-around! At the demonstration I received my grade of 100%, which I was of course very happy with.

The coursework this year was to develop an Android Application called AMULET –  “An m-health (mobile health) tool for the valid self-assessment of alcohol-induced impairment” for a real-world research project in the University of Hull’s Social Sciences Department. In this post I will briefly outline the functions of the application.

User Management

 

All users of the service had to sign up to use the AMULET service, which keeps track of all their data. They could do this inside the application itself, and information could be synced with however many devices they decide to use. The interaction with the AMULET web service is via a RESTful JSON API. The user could also manage their account from within the application including deleting it and changing its password.

The Tasks

 

The main point of the application was for users to be able to self-test various attributes and skills whilst sober, as a calibration, and then compare this score with their current score at the time of intoxication. Users were asked to input details of their current drinking session before taking a test, and shown results afterward.

The Inspection Task measures the users speed of information intake. It does this by showing the user 8 sheep and changing one of them to be a wolf for a small period of time — 100ms — the wolf then changes back to being a sheep and the user has to select the correct sheep. If the user selects the correct sheep then they complete the same task again, this time with less time — it goes down in 10ms increments. When they eventually fail this is their recorded score. A sober person should manage a time around 60ms.

The Sequence Task measures the users ability to locate information. It does this by asking them to tap every number, in order, from highest to lowest. The users score is the number of seconds it takes for the user to complete the task.

Finally, the Pilot Task measures the users ability to split their attention between multiple objects. In this task the user has to drag around the white square and keep it away from the red enemy squares. The recorded score is the amount of time in seconds the user avoids the enemies.

In my implementation each task had 3 different difficulty settings; easy, medium and hard.

In the inspection task on easy mode the sheep would change to a wolf (which was both a different shape and colour), on medium mode the sheep would change to a purple sheep, (which was the same shape but a different colour) and on hard mode the sheep colour would change only slightly.

In the sequence task easy mode makes the user count to 9, medium mode makes the user count to 16 and hard mode makes the user count to 28.

In the pilot task the enemies move faster at the higher difficulty settings, and believe me it gets rather tough. Different calibration scores and results are stored for each setting, meaning users can’t calibrate on hard and then compare that score to an easy result when drunk — because that would be cheating!

 

Before each task the user was shown the task brief, which allowed them to access instructions for the particular task they were about to start. At the end they were shown the task finished screen, which compared their results to a calibration or prompted them to make one. At any time the user could go to the home screen and tap “task history” to see their results from the past.

Drink Diary & Unit Calculator

 

As well as keeping track of the users abilities at times of sobriety and intoxication the application also kept track of the users drinking habits through a “drink diary”. This diary allowed users to enter information about a particular brand of drink including the brand name, alcoholic % and portion size, and then store how many they had drank along with a timestamp.

A unit calculator was also included for the users convince. The user could input the number of drinks they had consumed, the class of drink (e.g. Red Wine, White Wine, Average Strength Beer), and the portion size and be given a reasonable estimate of the number of units consumed. This functionality was also called when the user input drinks for the drink diary, to make data entry easier.

RESTful Server Interaction

One of the most interesting parts of the coursework was ensuring we stuck to the standard required by our lecturers server to send and receive data. This server allowed for research to take place on the information submitted by users, backed the data up and allowed users to carry information from one device to another.

All drink diary entries and task results were synced.

User Interface

Though the design of the application was very “windows phone-eseque” it was somewhat unique and supported many of the android features users have become familiar with; such as landscape and portrait support, different screen resolution support (from 3 inch phones to 12″ tablets and above) and notifications for long running processes such as data upload.

Thoughts on Developing for Android

I thought this coursework was a really nice way to pick up the programming language Java which, until now, I hadn’t needed to use. It’s similar to C# in a lot of ways with a few of its own idiosyncrasies, but a lot of the industry (and The University of York) use it extensively, so its a good thing to have learnt.

It was also interesting to have developed an application which worked across mobile phones, from small 3 inch screen devices, to much larger 12 inch tablets. This made me really think about the best way to develop the user interface, and I think I found a good compromise — it was certainly at least usable on all of these devices.

The main issue a lot of people had, including myself, wasn’t with Android itself, or indeed Java but rather the Eclipse IDE which most android developers use when writing applications. We all know that Visual Studio is in a class of its own, but it was a bit of a culture shock to change to an IDE that didn’t support debugging in quite the same way for example. Having said this I think this ability to switch between development environments is a good skill to have picked up. The other issue was just how slow the default andoird emulator is on a non-intel PC — but this can be solved through the use of Genymotion.

I will be getting my results for the module as a whole, along with my final university grade itself on the 2nd of July. I will of course update the blog then!

Danny

 

Categories
Computer Science

We need a standard… for implementing standards

Obligatory xkcd Comic

Standards are one of the things which makes writing software a bit of a pain, but also allows the pleasure of writing a system which integrates, uses and enhances other systems. Indeed the Internet Browser you are reading this blog post on works using a multitude of standards, from the Internet Protocol and Transmission Control Protocol used to deliver the information to you, to the HTML and CSS used to render this web page on your screen.

For those people who are not entirely familiar with the term standards, a technical standard is — according to wikipedia — a “formal document that establishes uniform engineering or technical criteria, methods, processes and practices”. In laymans terms it’s a document that tells you how something works and how to implement it so that your implementation is compatible with other peoples. An example is RFC 2616, The W3C Standard for the HTTP/1.1 protocol.

Standards, in theory and most of the time in practice are fantastic, why invent a new way of guaranteeing the delivery of a packet over internet protocol if there’s already a standard written by a group of intelligent people who have tried to find and fix every edge case and is compatible with everyone elses system? There is no point.

The only time real issues do occur is when there is an edge case that hasn’t been thought of by the author of the RFC, or the standard is implemented incorrectly — either on purpose or by accident.

How strictly should we adhere to a standard?

The motivation behind for blog post was found when doing my coursework for the “Simulation and 3D Graphics” module in an API called OpenGL. I had written a program using OpenGL 3.0 on the computers in the Fenner Computer Laboratory in the University. However, when I went to the ITMB Computer Lab in the next building my code produced a completely different result. You can see the stark difference below.

OpenGL Rendering - Intel Graphics Vs AMD Graphics
OpenGL Rendering – Intel Graphics Vs AMD Graphics

The image on the left hand side is what I had been seeing as I engineered my code in the fenner laboratory. A column — textured with some “Epic Faces” —  with a spotlight-lit sphere inside it. I’ll explain what the purpose of all this is in another blog post. On the right hand you can see what appeared using exactly the same code in the ITMB Lab, precisely nothing.

After many excruciating hours of searching — with some help from one of my housemates — I discovered the bug was being caused by me attempting to call the “glEnableVertexAttribArray()” method on a uniform member of a shader, something which you’re not meant to do, or indeed allowed to do in OpenGL. I had made a programming error, as every Software Engineer does many times a day. What is especially bad here however is that I wasn’t informed of my accident, either by error or by the thing simply not working.

Looking at the above image you may think that the Fenner Computer, using its Intel Graphics card, was “right” because it displayed the 3D objects I wanted it to. However, I would disagree. The AMD Graphics card on the ITMB Computer actually produced, according to the standard, the correct result. Nothing. Had I been working in ITMB when I produced the code I would have noticed that adding the glEnableVertexAttribArray() line broke everything, and would have immediately removed it, working in Fenner gave me a false sense of security that my code was in fact OK.

So, as far as I can tell this leaves us with a few options.

  1. We should say that in order to claim to implement the OpenGL standard, Graphics Card Manufacturers will have to write a, and work with a standard of how strict their implementations are, I would suggest that all graphics card manufacturers stick directly to the specification and throw exceptions or GL.ErrorCodes or display nothing on screen if there is an issue
  2. We write into the specification exactly what should happen in every possible edge case involved with the specification (this is obviously impossible)
  3. We don’t agree on a level of strictness and we waste countless hours of programming time, as we do at the moment

I sincerely hope that eventually number 1 happens, but I’m not sure how likely it is.

Should we ever add proprietary elements to a standard?

ActiveX Controls
ActiveX Controls

Another issue with standards its that sometimes they don’t fulfill everyone’s use cases, in other words they don’t allow everybody to do everything they would like. For example the body of standards used to make up web pages don’t allow websites to run executable code, such as c++ binaries, natively. This lead to things such as the much despised ActiveX control and the slightly less despised Java Web Applet.

The issues associated with this are many

  • Users have to install an additional piece of software before they can enjoy certain functionality
  • Users then have to ensure this software is up-to-date and manage it properly to avoid security failures
  • The fact these downloads exist allow other people to fake them, allowing easier drive-by-download attacks.

I would argue that if we are ever using a standard, or claiming to use a standard we should endeavour to never add to it ourselves. Instead, the correct course of action would be to write a Request for Comment (RFC) and implement the feature in your browser or program, but have it turned off by default. This way develops can turn it on to test it and play around with it, but they won’t become reliant on a proprietary features to implement their solution. Everyone wins. Thankfully most of the browser makers are going this way, so the HTML5 and associated specifications shouldn’t be too fragmented.

Worried about the future

Several things worry me about the future of some specifications, particularly HTML5 and its associated standards such as CSS3  and ECMAScript (AKA JavaScript).

As mobile browsing is becoming more and more popular at a tremendous rate more and more websites are aiming to make mobile friendly sites, either by making completely separate sites such as http://m.bbc.co.uk/sport or by using responsive designs such as the brilliant one which is used at https://www.gov.uk/. Whilst I can do nothing but encourage the development of mobile sites, especially if they have feature parity with the desktop sites and have a great touch-centric UI, I am worried that history is repeating itself.

Sites famously used to have landing pages which said “Works best in Internet Explorer” or “Works best in Netscape”, this is because often those websites would use proprietary features from either browser, for example gradient backgrounds. Unfortunately, because the two major mobile operating systems, Android and iOS, both use WebKit rendering engines to render HTML, CSS etc content mobile website developers are not only utilizing proprietary features , but actually relying on them.

Though the sites don’t show annoying images that say “This site works best in webkit” the result is equally annoying — a substandard browsing experience for anyone who uses a browser which doesn’t use a WebKit rendering engine, examples include Opera Mobile and Internet Explorer.

Developers, learn from the past, and if you can at your organisation have a standard for implementing true standards!

Danny

Categories
Blogging

Introducing The Hull Computer Science Blogs Workgroup

I’ve found that for projects like this is useful to have a Facebook group as most people at uni check Facebook more often than their Email Inbox

You may recall that earlier this year I started work on a Windows Phone 7 application for HullCompSciBlogs.com, this quickly progressed into a full scale project to make sure that the 3 smartphone operating systems with the highest market share had an application available. So far we already have a Windows Phone 7 app available on the Windows Phone Marketplace and an Android App available on Google Play.

Cameron is still working hard on the iOS application and expects that it will be available through iTunes in the very near future! When we were discussing this we both agreed that the back end system needed a complete revamp.

When I was designing the Windows Phone 7 application I decided on using XML as the data interchange format, mainly because I was getting used to using LINQ which means that an XML based solution is very easy to implement in C# for Windows Phone. I never expected that it would turn into a full scale project and instead expected that it would remain my own personal project. Probably a silly idea in hindsight considering that the Hull CS Blogs very fundamental idea is that of a community. Not only is XML not as well supported out-of-the-box on certain other fruity platforms, its not the best format for the job. In my opinion JSON is much better because it provides the same data in a much smaller file due to its simpler syntax.

The Data Interchange Format is just one niggle with the system, the other is that it is at the moment a bit of a pain to update. I have to manually edit an XML file to create, edit or update information on featured applications and contributors — which is based on my portion of Freeside, so no one else has access rights in order to update it themselves. There’s also currently no system for someone to submit their blog to our system and have it reviewed before becoming publically viewable. So the addition, removal and editing of contributor profiles and blog feeds isn’t exactly the perfect solution at the moment.

The final big issue with the system is that we simply don’t keep enough data on our contributors. The system we are currently proposing will keep the following details for contributors:

  • A display picture
  • Their full name
  • URL’s for both their website and blog RSS feed
  • Twitter Username
  • LinkedIn Username
  • Reddit Username
  • Date they joined HCSB
  • Study Year
  • Study Programme

Whereas at the moment we only keep their Name, Twitter username and Blog RSS url. We’ll also keep information on applications developed by students and lecturers who attend the university including:

  • Platform
  • Release date
  • Name
  • Version
  • Price
  • License type
  • Description

At this point we need to think about security because we carry a lot of information. It then becomes a bit more of a project that needs to be handled by more than one person, and instead handled by a team of competent computer scientists, and wheres better to source them than from the list of contributors itself? Therefore yesterday I put together the Hull CS Blogs Workgroup consisting of the current mobile application developers, John Van Rij — who set HCSB up initially — and a few people I thought would be helpful in producing a back end.

The basic aims of The HCSBW is to create a community based around Computer Science at the University of Hull based on an open JSON api that can be expanded on and improved by University students for years to come (one of the reasons why the whole system will only be written in language formally taught within the university itself) allowing students to improve their career prospects by getting their story out there for employers to see.

It will all begin properly in freshers week where the team and I will be presenting to the new first year computer scientists in an attempt to get them interested in Hull Comp Sci Blogs and indeed blogging itself. I’ll be sure to write about how our software project and social project of getting people on board works.

Danny.

Categories
Mobile Application Development

The Hull CS Blogs App is now available on Android!

In a continuation of the Hull CS Blogs teams quest for world domination Alex Pringle has designed, developed and published an Android Version of my Hull CS Blogs app. The application uses the same data sources as my application and is very similar to use, its also based off of the same code.

You can download it on Google Play here.

Windows Phone and Android App Comparison - Latest Blogs
Windows Phone and Android App Comparison – Latest Blogs

Cameron is still actively working on an iPhone version and we hope that will be delivered soon too!

Danny

Categories
Life

What have I been up to?

I haven’t posted since I received my results and felt it was time for an update.

Since I got back from Hull I’ve been working at my uncles company, Regtransfers.co.uk, who are the leading supplier of personal number plates. I’ve had several roles including contacting websites about Internet marketing opportunities, finding companies that have names relevant to number plates we own and want to sell and, most interestingly, a Windows Phone 7 application.

Regtransfers already have an iPhone application and a “HD application” for iPad as well as an Android app available on Google Play. My aim was to make an application that offered all the same functionality of the other applications:

  • Search for number plates
  • Select a number plate and choose options for the acrylic plate (Flag icon, border colour) and see both the front and back plates (white and yellow)
  • Make Enquiries about selected number
  • Buy selected number using secure form
  • Order the Regtransfers Magazine
  • View the Regtransfers Youtube Videos

I also added a twitter feed which is not present in the other applications since the company has started to have a bigger social media presence recently.

The application isn’t finished but below you can see some comparison between the WP7 application I developed and the iPhone version which was outsourced:

Windows  Phones vs iPhone plate search comparison
Windows Phones vs iPhone plate search comparison
Windows Phone vs iPhone build plate comparison (WP7 version incomplete)
Windows Phone vs iPhone build plate comparison (WP7 version incomplete)

As you can see, I’ve taken quite a native look putting a lot of emphasis on the simplicity and “flat look” Windows Phone users expect in their applications — though I’m not sure I’m entirely happy with the background at the moment — it looks nice but it can make some of the text a bit hard to read.

Here are some more images of the WP7 application

Home Page - Emphasizing Search
Home Page – Emphasizing Search
Order a magazine
Order a magazine
Twitter Integration
Twitter Integration
Enquire about a Plate
Enquire about a Plate

What else have I been doing? Well, I’ve realised I’m not back for long so I’ve been spending a lot of time with my friends, family and girlfriend. I’ve also done a bit of work on my brothers website and a few secret projects ill be announcing soon 😉

Danny

Categories
Mobile Application Development

Hull CS Blogs now available on Windows Phone and coming soon to iOS

Friday night the Hull Computer Science app for Windows Phone 7 finally got certified and accepted onto the marketplace. I say finally but it has to be said that this is the quickest an app of mine has passed through the process — taking just 3 days as opposed to the normal 5.

It’s also the first time I have passed certification first time, which can’t be a bad time. It’s safe to say that the beta I mentioned in my previous blog post definitely helped, as well as me being more stringent about having built in error checking around methods that could fail (for example a network request or file I/O operation).

If you want to download the application you can do so by clicking here.

Again a special thanks to the following people:

  • John Van Rij for his help with the back end of Hull Comp Sci Blogs.com
  • Rob Crocombe for general support throughout the process and the icon design
  • Rob Miles for the photography used in the application

In other exciting news fellow blogger and Hull Computer Scientist, Cameron Wilby, is porting my application to iOS, the operating system which runs both iPhones and iPads. You can see some very early builds of this in the images below:

Hull CS Blogs for iPhone by Brownsoft and Wilby Software - About Page
Hull CS Blogs for iPhone by Brownsoft and Wilby Software – About Page
Hull CS Blogs for iPhone by Brownsoft and Wilby Software - Contributors Pane
Hull CS Blogs for iPhone by Brownsoft and Wilby Software – Contributors Pane

As you can see its a direct port, with all the same features as the Windows Phone 7 application. I’ll start work on the Android version soon, and then we’ll have total Smartphone coverage across the 3 main platforms! Good stuff!

Danny

Categories
Blogging Mobile Application Development

UX not Specs – A Second Take

After writing my previous blog post on the topic of “UX not Specs” I posted a link to it on the “Microsoft UK Students Developer Group” — A facebook resource set up by Microsoft exclusively for students who have submitted apps on App Hub for Windows Phone or XBOX — in order to try and get some opinions on both the topic and my writing. I was very pleased with the responses I got. Due to the fact they were posted on Facebook I was a bit annoyed that some day I might no longer have access to them, so I thought it would be nice to write them up in this blog post and respond to a few of the comments made. 🙂

Phil Cross – Academic Audience Manager at Microsoft said:

Couple of typos in it Danny but it reads well (and a good photo). I like the way it starts, grabs your attention and then moves onto the commentary

After seeing this I went ahead and fixed the typos, it turns out Google Chrome hadn’t been catching all my typo’s whilst writing up the blog post on the WordPress website, but Microsoft Word did when I pasted the blog into the program. In future I think I’ll write my blogs in MS Word and then copy them to wordpress in order to reduce typos as much as possible. I appreciated the comment about my writing style, that’s what I was trying to achieve 🙂

Richard Walters – Developer of Calculator² and a PhD Physics student at Oxford University said:

Good article and I completely agree with you, quad core is currently completely unnecessary for a phone (I say currently because who knows how we’ll be using phones/tablets in 10 years time). The interesting question is why your friend, and a large proportion of the consumer market in general, go for Specs not UX.

Specs not UX is certainly one reason for Windows Phone not taking off as well we’d all like, although it looks like Microsoft are addressing this with Windows Phone 8. My impression is that the initial purchasers of any new gadget are technology ‘geeks’. For much of this audience, but not all, specs will matter because they’re doing things with the device which makes use of the improved/newer features. These are then the people who will review, blog, and create a buzz about a product so that the masses hear about it. Average Joe hears that there’s this new product with lots of new, fancy features and wants one, even though he’ll hardly use any of them. Even if he can’t afford the top of the range, he’ll go for the same brand because it’s associated with the best. In the technology World, specs means cool, and cool sells.

Of course, the other issue with specs for phones is that they are used above UX to sell the devices. In every phone shop or website the specs are listed with a device and are used to compare them. Why should I go for the Lumia 800 above the Galaxy S2 when the S2 has dual not single core? Dual core is better right? Unfortunately it’s similar with the number of apps. 70,000 vs 500,000 is a huge difference and used all over the place to compare WP7 to Android/iPhone, and that’s what Average Joe sees (although Windows Phone is still behind in the quality debate too with the lack of top apps from third parties).

Admirably, Microsoft went for UX not Specs and concentrated on building an operating system that works well on low-end devices and is developer-friendly. In the long-run I believe Windows Phone will succeed because of this, while high end devices will also appear to help with the specs factor. It’ll also be interesting to see how Nokia’s Beautifully Different campaign will work, because I think it’s a very good strategy. As much as I like the Smoked by Windows Phone campaign, I don’t believe it will work as well because (I hope this doesn’t sound too horrible) logic doesn’t apply to the masses, who will certainly go for cool over better.

I hope that didn’t sound too condescending. I guess what I was driving at is that many consumers don’t make informed decisions about their purchases, often because this takes time (for research, etc.) that many people simply don’t have. Consumers can then be swayed by brands, marketing, peers’ opinions, etc. With phones, a spec sheet is a way to make the most informed decision possible in a short period of time.

Richard seems to be on the same wavelength as me and I agree with a lot of what he has to say, a user experience is a wholly subjective thing – manufacturers can’t write down hard data on user experience, it simply doesn’t exist, they can however show you hard data on specifications and — frankly — most modern smartphones have better specs on paper then even the most high end Windows Phone 7 device. That specificationis what people can compare with other devices and therefore that is, in the end, what makes a customers decision on which phone to buy.

Michael Hough had an opposing opinion and explained how quad core processors are not always necessarily running all 4 cores and therefore can be more power efficient than you would expect:

Your major point seems to be that quad core processors aren’t necessary, and more importantly that Tegra 3 has less battery life. I contest that. I have the Tegra 3 processor in question on my Asus Transformer Prime, and my experience is that I have around the same battery life as a dual-core iPad 2, twice as much as the (also dual core) OG Transformer. Tegra 3 has a power-saving core that means that the 4 cores are only used for taxing activities such as “console-quality gaming”.

Your opinion of quad cores not being necessary is slightly flawed, because it’s based on experience of using a Windows Phone alone. Because Windows Phones are all essentially the same (800×480 display, 1.4ghz cpu, 512mb RAM), developers know the limits of the system. With the Tegra 3 and the (dual core but still ridiculously powerful) Snapdragon S4 on Android, and the (again, dual) A5X processor on iOS, app developers have much more processing power to play with, allowing games and media to contain significantly more detail.

Personally, being an owner of the Nokia Lumia and a dated HTC Desire, I’m struggling to decide between the two. A big down side of WP7 for me is that all my paid apps are on Android, but this isn’t a huge problem. What is, from a user experience standpoint, is that Windows Phone lacks apps that I use every day – a train finder that covers my area, or a decent free sat-nav app, for example, both of which are available on Android.

Quite frankly, it’s a shame I’ll have hit my upgrade on my Desire before Windows Phone Tango comes out. I think that will fix a number of the issues I have with the system, but I’ll probably be using an Android as my daily driver by then. Although I’ll keep developing for both platforms, of course.

John Nolan who is studying Computing: Application Development at Edge Hill University chimed in with some important insights into WP as a platform and refuted some of the points made by Michael:

Your article does raise a nice point on battery life, but then crucially to your point comparing with WP, WP as an OS does not support multiple cores, not that it needs it, even if it did – the OS does not support it. I would also like to address Michael, I completely disagree with your argument that all WP are the same, they are not, they do however have the same minimum requirements so the basic experience from the products over point of view is the same. You also said that the OS lacks a free Sat Nav application, well you said you owned a Lumia 800 and funny enough I spent an hour in Halfords today and found that Nokia Drive outperformed many Nuvi’s and Navmans, Tom Tom struggled too finding and building routes.

Anyway back to my main point – we all came from a generation of phones we class as “dumb phones” when in fact I class it as a phone – it did do phone calls right? I mean that’s all they were supposed to do, we had text and some games with a little customization of the OS, but at the end of the day we charged that “dumb phone” once a week. I now have to charge my phone daily, sometimes I get a day and a half out of it but my new habit at night is to put my phone on charge.

I welcome any design that becomes more efficient whilst either maintaining performance or even increase it. So the likes of Android and iOS who support such hardware is completely outrageous waste of energy and a poor solution to their bigger problem and that is the OS lacks efficiency with tasks, something I have not come across on my Omnia 7 or my Lumia 800. Microsoft are on the right route, they put a real threat out to Android and iOS with their OS and the only way they could respond is to make the UX worse by decreasing the functionality period of a device to compensate its lack of performance compared to their competitors.

Whats really funny is that this is a complete repeat of the GHz race, we should all know by now that bigger and higher numbers does not always mean better, I remember the days my AMD Hammer Core running at 2.1 GHz smashed everything Intel had who claimed their sales through the lack of information the public had on how their products actually worked. I think its important that we all educate the people on why this OS is better and why we like it so much compared to the competitors, no we dont have dual, quad or octo cores, no we dont have silly resolutions but we do have a functional platform that is designed to make the everyday task a little easier whilst keeping us connected to our social networks which is currently driving the world.

Finally Jack Betts who is studying at Glamorgan University said:

You raise an interesting point that Quad cores are not useful in a mobile phone and i agree with you. However you seem to lose track of your argument and only focus on battery life. What about battery to processing power ratios?
What about the scenario in which a single core take 100secs to complete a task and a quad core takes 25secs, would the quad core use more power than single ?
You then bring in Windows phone at the end to cover user experience. I agree the windows phone operating system is a joy to use and is great for developing for (apart from 3D XNA games then i have some ranting to do) . However you completely neglect apple who are mostly about the user experience.

User experience also covers personalisation and the windows phone is very strict about what you can and cannot change. Control is also about user experience and Windows Phone 7 takes a lot of control away from the user, some times this is good sometimes this is bad.

Battery life, you are right about the usage time of a smartphone being about a day and they do take a while to charge however its not just about the battery hardware that affects battery life. Battery technology hasn’t changed in years, we are still operating on chemicals to produce an electrical current. It will be a long long time until a new power source comes to the consumer market so i believe that concluding that “we need to wait for better batteries” is poor.
A better angle to look into is how Mobile Operating systems take measures to preserve battery life and proposing new/updated methods on battery conservation.

“UX not specs” however is a brilliant concept and i do think you should develop it further into a full paper.

In some ways this comment provided the most food for thought. 🙂 In answer to his second point I don’t think that any quad core processor is exactly 4 times more efficient than a similar single core processor, controlling multiple threads on multiple cores takes quite a bit of overhead and many applications themselves are not actually developed in a way to fully utilise multi-core architectures, this is still true today on Windows, which has had multi-core support for years.

He is also right that I neglected Apple in the post, and again he is right that Apple are famed for their user experience. I must say this is one thing I really admire about the company and the software they produce, they can make relatively complex tasks simple and easy to understand and use even for the least technologically inclined among us, however in my somewhat biased opinion I would say that Microsoft are doing an even better job (perhaps even inspired by Apple) than Apple themselves at the moment with Windows Phone 7 and indeed even Windows RT (A.K.A Windows on ARM for Tablets)

The idea that Battery’s aren’t keeping up with the rest of technology seems to be an unfortunate fact of life. 😦 I’m hoping we will make progress on this in the near future but if not Jack is right, we need to look into how we can make our software more efficient at saving power. Some android devices provide an application which can be used to see how much of the battery each application/piece of hardware is taking and it always seems to me that Wi-Fi and the screen take the most power.

Microsoft have aimed to reduce this in Windows Phone by turning off Wi-Fi when the phone is locked, so you don’t waste power connected to a network when you’re not using it, and dimming the display if you have a white background. This is because white takes the most power to display on AMOLED screens. Another interesting thing Microsoft have done regards battery power is to make the default background black — this is because on modern AMOLED screens the display literally turns off in the areas that are black and this saves a lot of power.

This post has become pretty big now so I’ll leave it here. If you have anything else to say please whack your ideas in the comments section below. Thanks to all my commenters on Facebook.

Danny.

Categories
Life Tech Reviews

UX not Specs!

So, I’ve been back in Hull for a few days now, only to discover my friend Nick has betrayed the good ship Windows Phone and moved to the dark side of Android. 😛 Whilst we were discussing his new phone, a Samsung Galaxy Nexus,  we got talking about HTC’s latest Android offering — the One X.

What sets the One X apart from the rest of the crowd is the fact that it has a quad core processor. Quad core processors aren’t actually the norm in desktop PC’s yet, most people still have dual core chips, so to have one in a phone is an interesting development. Interesting, I would say, but not entirely useful — in fact, quite the opposite.

In my day-to-day life, my one concern about my phone is how long it will last. It’s always a pain when your phone runs out of juice just as you’re expecting a text, call or email. Smartphones at the moment typically have a battery life of around 20 hours, with light to moderate use of more advanced features like Wi-Fi and high screen brightness. This will last you a day at University or work, but god help you if you forget to charge it up at night and want to make a phone call the next day.

An issue I don’t encounter on a day-to-day basis is lack of computing power on my phone. Whilst I frequently think “I wish this had a bit more oomph sometimes” on my i3 powered Dell Inspiron 15R Laptop I can honestly say the thought has never occurred to me about my Samsung Focus Flash Windows Phone, everything seems seamless and frankly im not doing anything taxing like editing and converting video on my phone… I make phone calls, text people, read my emails, browse the web, listen to music and play the occasional game — none of this requires the power of a quad core.

Quad core processors sip more battery than a single core would. Simple fact, so for my experience at least it would actually enhance an issue I have and ‘solve’ an issue I don’t. Of course, everyone uses their devices differently, so your experience may indeed be improved by a bit more power but I think most people want to get the essentials done, with a tad of gaming but be able to do all that for a longer period of time.

Going back to the seamlessness of my phone experience, during our conversation about processing power in phones I coined the term “UX not specs”, which is now the title of this blog post. UX stands for User Experience, the way in which users experience your hardware and software, this includes the “person’s perceptions of the practical aspects such as utility, ease of use and efficiency of the system” according to Wikipedia. What is important here is the word perception, a quad core is usually going to be quicker than a single core clocked at the same speed, but this increase in speed might be so small that it not be noticeable by the user, in which case its almost a waste.

Specs stands for Specifications and rhymes nicely with UX. 😉 Specifications are the list of details about a piece of  hardware’s innards, including its CPU Core count, amount of RAM, measurement of storage space etc.

Windows Phone is very cleverly designed so that smooth animations cover the loading time, so even if something takes a while because everything is moving you deem it to be efficient, fast, and working instantly on command. The user experience is good, I’ve never been irritated by a slowdown in Windows Phone so I personally wouldn’t be willing to sacrifice any battery life for more cores. The user experience is great, even without the specs which you think it would demand, so windows Phone has got the UX, but not the (battery draining) specs of some high-end Android phones.

Until we invent a technology capable of holding many days’ worth of battery life on a smartphone device I for one will yearn for more battery life over computational power.

Danny.

Categories
Tech Reviews

A “Resolutionary” Screen Vs. Extended Battery Life

Today I made the 15 mile journey to Milton Keynes, my trademark black skinny jeans had a hole in a rather unfortunate position and needed replacing, whilst there I strayed into the Apple Store and saw a gigantic floor-to-ceiling display for the iPad 3 with a few display models underneath.

Now, the Milton Keynes Apple Store uses iPad 2’s as a sort of catalogue, which can also be used to interact with the employees and flag that you require assistance, this is quite clever. It also meant that I could see an iPad 2 right next to an iPad 3.

Having seen both together, I found that to my eye there was very little difference between the normal old iPad 2 screen and the new “RESOLUTIONARY” iPad 3 screen. Admittedly, the iPad 3 did look better, just, but at that screen size I don’t think a PPI (pixels per inch) increase of the size that Apple did would ever have made much difference. The iPad 3’s screen is not the same “retina” display of the iPhone 4, which has 326 PPI, but rather a screen with a much less impressive 264 PPI. This is double the 132 PPI of the iPad 2.

Why does this all matter so much? Well, It comes down to what you want to do with your iPad. Having a more impressive screen (and really, its not that much more impressive) comes at the cost of battery life. The Battery in the iPad3 is 70% larger than that of its predecessor, but the battery life that apple says the device gets is exactly the same, about 10 hours. Personally, if I was going to buy a tablet I would prefer to have the extra 70% battery life than a screen that seeps all of those gains away, especially as its meant to be a portable device, and not one permanently plugged into a wall.

I must say, it strikes me as odd that apple have gone down this route of making a small adjustment to the screen at the expensive of battery, especially as they are now marketing the iPad as a portable productivity device (e.g. one you can use to write up documents etc.) Instead I think they would have been better of giving the new iPad the 70% bigger battery and a Keyboard attachment as standard, making it into a true laptop competitor and potentially gaining more of the business and education markets.

If you look around our lectures at University you’ll see well over 150 people with laptops, but as far as I know only 2 or 3 with iPads and not many more with Android powered tablets. If apple made a tablet with really good battery life (im talking 15 hours here, which seems possible if they dimmed down the displays a bit) and a nice, portable keyboard attachment as standard they could really be on to something.

Perhaps this is where Windows 8 on ARM tablets will step in, the ARM CPU architecture — which Apple uses in the iPad —  allows for really good power-efficiency, and due to the fact that Windows 8 is licensed rather than sold on devices manufactured by Microsoft we may see a lot of different form factors and ideas of what a tablet should be like from different OEMs (Original Equipment Manufacturers).

Here’s to a more power efficient, productive tablet future,
Danny

PS: “Resolutionary” isn’t and never will be a word, I hate when companies make up silly words like that.