<< Previous | Home | Next >>

iOS7 - At last some real usability improvements.

Don't worry, I'm not going to write a review of iOS7. I lack the time and the patience to do so, but I wanted to share with you some usability improvements that really make the platform more usable for me. And saved me two spots on my home screen.

The first one is with the flashlight. You're not discovering anything here as it's been all over the news already, but having the flashlight two taps away from the lock screen realy comes in handy. And gone is the flashlight app from my home screen.

Then comes the alarm clock and timer. I used an alarm app called Touch LCD, mostly because you didn't have to think to figure out when you're going to wake up. When launching the app, you see the time of the next alarm and the time between now and the next alarm, which gives you the hint of whether the next alarm is set for tomorrow or for another day. On the stock alarm clock, you have to hunt through your alarms that are on, check the time, check the day of week they're supposed to ring and figure it out for yourself. The problem is that sometimes when going to bed, part of my brain is already sleeping (or drunk for that matter). These times, it is painful.

Now, in the notification center, you see instantly the next alarm setup for either today or tomorrow. No need to hunt in settings.

The snooze has also been improved. Again, whenever the alarm clock rings, part of my brain is sleeping (actually all of it) and sometimes I'll hit snooze and sometimes I'll unlock thinking I hit snooze. Then I wake up and I have no way of knowing if a snooze is in progress or not. Maddening.

Now, right in the lock screen, you see the time remaining from the last snooze, with seconds counting down. Really helpful.

There is also the timer. When cooking something, my iPhone has become my new countdown device of choice. I have it in my pocket so wherever I am when it goes off, I hear it. The problem is: how much times remain? Get your phone out of your pocket, unlock it, hunt for the clock app, see the time remaining.

Now, also right in the lock screen, you see the time remaining for the current timer, with seconds counting down. Really helpful.

The last item is the Messages app. Whenever sending an SMS to anyone, you kind of never know if it got through or not. If it fails to get delivered, you see a nice "!" icon on the SMS app. That is, if you think about looking at it. If your phone sits in your pocket, you will never be notified.

In iOS7, the failure to send an SMS sends you a notification, just as if you'd just received an SMS. Much smoother.

 

Well, all in all, all these are small things, but they add up to the overall usability of the entire device.

Tags : , , ,
Categories : iPhone and iOS

Limbo

So, I'm not going to write the umpteenth review of Limbo, the game by PlayDead. There are plenty already. But one thing bothers me about this game.

Well, it's great. Not in the game itself but the mise-en-scène, the universe, ambiance. The graphics are stunning, the music bewitching, the whole thing nightmarish. It's not about game controls or maneuverability, it's about the journey this little boy will take. And of course, when you're done, you wish there was more.

And why not? I'm sure that with the success they had they got their money's worth from Limbo. So why is there nothing more than this? Because for all the praise Limbo gets, there is one downside: the game is done quickly, very quickly. And I'm fine with this. I understand PlayDead was a small company with not much resources. And they did well.

So I hear here and there that they sold the rights to some big firm which will invest heavily into a 3D-based sequel. Which I don't want. I mean, it might be great and all, I'm sure, but that's not what I want right now. What I want is more of the same. Let's say he's now unsure about the fate of his little brother, and let's start over the whole thing! The same game, with more levels, more forest, more villages more factories, more hotels, more rain, more floodings, more spiders (but less gravity jumps please.)

Why not? Angry Birds did exactly that. The Rio edition or the Seasons edition was exactly that: More of the same. Sure, a couple more musics, a few twitches into the game engine, a couple of new monsters. But the core game is the exact same. Why can't they do that with Limbo? As I said, the game is not great because of its levels or controls, but about the universe it plunges the player in. We want more of that!

All in all, there is one thing I want to say now that I'm done with Limbo:

Moar! Gimme moar!

Categories : General rambling

Dilbert: The end of the road

I used to be daily a reader of Dilbert - the comic strip. On the website (http://www.dilbert.com) you can read the Dilbert of the day for free. Just as you would do while reading your newspaper. So I subscribed to the blog via RSS. And every morning I'd get my daily dose of Dilbert in the subway. And that's what is good about RSS: You can download your dose of news and read it later, offline.

This morning, the Dilbert entry looked like this:

Dilbert readers - Please visit Dilbert.com to read this feature. Due to changes with our feeds, we are now making this RSS feed a link to Dilbert.com.

This means one thing: I won't be reading Dilbert anymore.

Goodbye. It was good while it last and you provided it in a form that I enjoyed consuming.

Tags : , ,
Categories : General rambling, News

Google: developers, developers, browsers !

Is it possible that a single company be responsible for both the best browser out there along with the worst one?

As it turns out, yes it is possible, and yes it does exist: Google.

Since the first release of Chrome, it has become my browser of choice: Fast, fast, stable, fast, versatile, and the easiest to debug. I did not think about it for a minute. Plus, as a developer, it is one of the most advanced browsers and allow many cool things. All in all, kuddos for your browser there, good work.

Then came Android, with a default browser also based on WebKit. I - among many - thought that it was a "mobilized" version of Chrome. But no, they did another browser altogether. Fine.

Now, it isn't as fine as we hoped at the time. It seemed obvious - knowing Google - that their browser would kick ass. But no, it doesn't kick ass: it sucks. In fact, among friends we call it "The IE6 of WebKit". "The IE6" refers to the disabled child in the family. There is a surprisingly homogeneity in the WebKit browsers if you exclude Android's default browser. And once every 5 times, you do something that works on iOS, Chrome, Safari... and Android stumbles on it.

Now, it's been several loooong years for web developers, and still there are so many areas that lag behind all other mobile browsers... that I'm starting to lose hope. Really. Despair crawls into me day after day, week after week, month after month.

So Google, pleeeeeeease, just give it the attention it needs, or replace it with Chrome, but pleeeeeeeease, do it fast. Seeing as 1/3 of the traffic from Android comes from version 2.3, we know one thing for sure: even when Google gets its act together on that front, it'll be quite a while for web developers to be able to forget this pain.

Please. Act quickly.

Categories : CSS, html, Android, JavaScript

Just released: color-finder

ColorFinder is a small javascript library that detects the main color in an image. The algorithm is simple and flexible. By the way of a callback method, you can influence the results by favoring certain types of colors. You can find it here: http://pieroxy.net/blog/pages/color-finder/index.html You can also have a look at the GitHub repo.

Categories : JavaScript

MySQL charset hell

There are not a lot of paradises on this corner of the earth, but there's one sure hell: charsets with MySQL. MySQL has the peculiar idea of defaulting everything to latin1. Everything.

Everything should be utf-8 of course, just because it fucking works with every character on earth.

Now, let's assume you got the following error message somewhere in some obscure logs:

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
This means one thing: you're in MySQL charset hell. Welcome in. You're deep in. It's hot.

The road to heaven

First, you will need to edit your my.cnf file, to be found on linux in /etc/mysql/ and add/modify the following properties in the proper section:
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] default-character-set = utf8 collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8
The goal is to see everything as UTF-8 while running the following:
show variables like 'char%';
The result you want is this:
+--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
Similarly for collation:
mysql> show variables like 'collation%'; +----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | +----------------------+-----------------+

Now what?

Now, you're still in hell, but you just got the promise of not getting deeper. And you still need to get out, that is to change all your tables to store UTF-8. There you have several options, some consisting in dumping everything, recreating a new DB and reloading everything (see the second link below). I chose the path of the ALTER. Here is what you can do:

Migrate your dbs:

ALTER DATABASE YourDbName DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

Locate the faulty tables:

SELECT table_schema,table_name, column_name, character_set_name FROM information_schema.`COLUMNS` C where character_set_name = 'latin1';

Migrate column after column:

ALTER TABLE t MODIFY col1 CHAR(50) CHARACTER SET utf8;
Of course, the CHAR(50) piece (and eventual other options such as NOT NULL) depends on the column. Good luck.

And remember: For every MySQL install you do from that point on, do this first. Less trouble for after.

Thanks:
Categories : General rambling
<< Previous | Home | Next >>