Thursday, February 28, 2013

Don't go cheap!

Money is hard to earn and easy to spend. That's why we get the cheap version from time to time at the expense of quality, hoping that it will do the job anyway...

Most often, this little money saving tip will work, but not with tablets. I got my hand on a cheap Android tablet (Hipstreet Aurora) a while ago. And when I say cheap, it was really cheap (69$).

It sounded like a good deal as an entry level device to learn about it and eventually explore app development. Knowing about mobile development in a professional career is a must these days. For me, it looked good enough for that purpose since my main tablet is an iPad.

Of course, comparing the Aurora with the iPad is not relevant as they are two different beasts. Anyway, this is how I discovered Android and the after taste is pretty strong.

Overall, Android looks nice and has some pretty nifty features that I don't have on my iPad. But the implementation on the Aurora made the experience pretty awful considering that my expectations are based on the iPad.

It was freezing all the time, it was slow and apps looked awful. I have to say that Google Play was not available on this device and I had to rely on 1Mobile store for apps. Sadly, the apps were a bit old compared to the version found in the Google Play store.

In the end, the whole experience was a disaster. Not because of Android, but because it was a cheap entry level device. I'm pretty sure that a decent device like the Nexus 7 would have been more pleasant and I would have learned more about developing apps for Android.

With tablets, cheap is a waste of money and time. Better get the real deal and be happy!

Patrick Balleux

Tuesday, February 26, 2013

Z10, the leading smartphone?

I came across this article from the Globe & Mail, stating that the new Z10 as sold more than the iPhone or the Samsung Galaxy SIII.
No numbers published, no details revealed...
It drives me mad to see that kind of article as they promote more than they inform. There are many ways to interpret numbers and the mobile market has been so creative in the last 3 years.
Some benchmark:
- Devices manufactured
- Devices shipped
- Devices sold
- Devices activated
Devices manufactured are rarely used to promote market share and rarely revealed. Basically, a company may have manufactured millions of items and have all of them in a warehouse in the middle of nowhere. All it can tell is that they have high projections numbers or not.
Devices shipped may tell another store. But again, it only means that retail stores and cell providers may have them in their own warehouse, ready to be put on shelves. They are not sold to the general consumer.
Devices sold gives a better view. The problem is that a device, priced at 0$ with a 3 years contract will gain market shares because the end user do not want to pay for his/her device. The market share, even if real in terms of people owning a device does not represents the actual interest in that particular brand.
Devices activated are basically the same as the Devices sold. Since all smartphones do need to be activated, this is almost a 1-on-1 factor.
There are many aspects when analyzing market shares. A brand new device may get a momentum for a few weeks. The arrival of a new device may lower the numbers as people will wait for the new version. The time of the year may impact greatly also. Think about December... And the aggregation or method of grouping brands and models will tell a totally different story.
A few examples:
- Apple vs Android: basically 2-3 models against a few thousands
- 0$ model against 600$ models: for sure, cheap will attract more
- New model vs A-few-months-old models: older models will sell less as people want the newest
Back to the Z10...
For a brief moment, they may have sold more Z10 than the competition. We are a few months after the release of the latest iPhone and the latest Samsung Galaxy SIII. That simply means that those who bought the Z10 were not interested in Apple or Samsung and they waited for the release of the Z10. The other users already got their iPhone or their Galaxy a few months ago, just in time for Xmas. So for a brief moment in time, the Z10 may have sold more, for a few days at least. That does not make the Z10 the most sold device of all time.
What I want to see: how many devices were sold/activated in the last year, by brand and models (not by OS).
As for my personal experience, all I see around me are iPhones and a few Galaxy's. when I say "Blackberry", people tell me about how bad their experience was and will never get a Blackberry again...
Maybe the Z10 will be a game changer for Blackberry, but stating that it is "the leading smartphone" is rubbish!
Patrick Balleux

Sunday, February 24, 2013

I want a new iOS look! ... NOT!

One thing we can say about the look of Apple's operating system on mobile device is consistency. The iPod, the iPhone and the iPad share the same look: iOS.

iOS gets updated regularly each year with new features and functionalities. But the interface hasn't change that much since the early versions.

Many reviewers and bloggers write on the fact that they want a new UI for iOS. The look and feel is getting old, boring and obsolete.
A new look may be cool, fun to explore and be better... But only for geeks!

Guys! Remember that you're not alone. The majority of users are not techno-geniuses...

By comparison, think about Microsoft Windows. With each new version, they made significant changes that made people burn their shirt on the street. Windows XP had a reign of over a decade. People, like my mom were used to it. When Windows Vista came out, nobody wanted to upgrade because it was too different. The same thing is happening with Windows 8 right now.

It has nothing to do with bugs, new features and stability: it's all about being able to use the device without having to re-learn everything. The new Windows version was so much better that it had a "Back to the Classic Mode" feature...

I have tons of things to do in my real life. Work, bills to pay, managing the house, car repairs, etc... So when I pickup the iPhone to make a call, I don't have the time nor the desire to figure out the new icon to do it...

A completely new UI is fun to explore if you have nothing else to do. That's a simple fact of busy people. It doesn't mean that subtle changes are not welcomed, on the contrary. But having a complete new look is an annoyance when you don't have time to spare on piece of glass and metal that helps you organize your day.

For example, move around your apps in different screens and folders. For a while, you will be annoyed by the new layout. Even if it's better than the previous one. It will take some time to get accustomed to it simply because your losing time searching for the right icon...

Are people too lazy to learn about all the functionalities? I would answer by saying that people are too busy to do it. It's much more fun to spend time watching a movie with my girlfriend than exploring the new OS, whatever device it runs on.

There are two kinds of people wanting a new UI:
- Geeks that make a living by reviewing the techno-sphere
- Lazy people that have a very dull life

Back to Windows 8... It took me a good 5 minutes to figure out how to shutdown the PC. That simple task annoyed me so much that I won't "upgrade" for a long time simply because I don't have time to spare on figuring how to handle the new UI. I am already overbooked with more important tasks like delivering the new software version in time.

Apple, keep it simple! The current UI may not be perfect, but it works. On the next iOS update, don't change the UI too much... Or at least, do like Microsoft and let us go back with the "Classic Mode".

Patrick Balleux

Monday, February 18, 2013

Coding in plain English

I've worked on many projects and I've seen my share of code. There is all kinds of coding style going from the most elegant to the "I'm your worst nightmare".

The thing is that "not so elegant code" is often written because of lack of time to do better. Deadlines will force coders to implement some duck tape here and there, while thinking that when they'll have time, they'll make it more elegant and efficient.

That's kind of a wishful thinking process since we all know that going back to change what's already working is a no-no in the business of software developpement.

But some times, there is code that just does not make sense. From a computer point of view, the code works. But from a human perspective, it does not tell the story of the process at all.

Here's an example:

float r = 10f;
while (i < 255){
int c = temp[i] * r / 100f;
temp[i] = c;

Some of you may have guessed that it's a simple calculation to apply an alpha channel based on a ratio. This is a simple example, quite explicit for the initiate. But for a coder who never worked with colours, it will require some effort to understand. The code is clear, the context is not...

Let's re-write that in a more elegant way:

float transparencyRatio = 0.1f;
for (int colorIndex = 0; colorIndex < imgBufferData.length; colorIndex++){
imgBufferData[colorIndex] = imgBufferData[colorIndex] * transparencyRatio;

There is a much better way to do that kind of calculation, but I just wanted to illustrate that naming variables, avoiding unnatural operations and ensuring that the code can be described easily in plain English will help everyone, including you, when you'll have to go back in that code section, a few months later.

Another example is when you have to deal with delegate functions. It has the benefit of saving memory and process time but may render the code completely unreadable.

myObject.executeDelegate() is one of the worst line of code to debug. To find out what is the object and what it does, you'll have to debug line-by-line and follow the process to figure out what is going on.

Make sure that the code is explicit enough so that any experienced coders will be able to read it as plain English. Sometimes, we have to implements some twists to make it work. Add comments and try to make you code as clear as possible since it can be tricky to understand.

Finally, avoid multiple conditions in a single IF condition. You know, the kind that you need to split to find out which condition was TRUE and made the execution enter that block... I've seen some IF having to deal with 12 conditions to validate the execution of the code block below... And I'm not even talking about the infamous if not (not(x or y) and (z and x) or not y).

Happy coding!

Patrick Balleux

Sunday, February 17, 2013


Working together is great.  Working together on a software is great but can be nightmare if you haven't done some planning...

Here's a short video providing some tips:



When developing a software, you often need to store data.

Here's a short video about databases and how they work:

Movie formats

When watching a movie on your computer or on your mobile device, you have to make sure about having the right format.

Here's a short video explaining what are codecs, muxers and movie files:

Many coders, many files

You have to work on a project with other coders but how to avoid overwriting someone else's modifications to the code?

Here's a short video providing some tips:

Bit's n bytes

Bit, byte, megabytes, gigabytes...

You hear those words all the time.  Here is a short video explaining the most basic unit in computer language:

Making a web page

Always wanted to create your own website?  But you don't know how to start?

Checkout this short video for some tips:

Saturday, February 9, 2013

Windows Tablets... Too much good reviews?

While browsing some online stores, I was curious about the new player in town, Windows Tablets.

So I had a look to get some an idea of the new kid and realized that they had really good reviews on everyone of them. I mean, all of them. Then I became suspicious and read the comments...

Overall, they are are well written, proclaiming that the tablet is fantastic and so on. Having a few reviews like that would be normal, but all of them?

Any product reviewed will have it's share of bad reviews, bad written text and some saying "I luv it!"

There are two possibilities here: Windows tablets are so good that they make their users better at writing, or there is something fishy with those reviews...

Have a look around, maybe it's just me...