iTunes 10, Firefly, forked-daapd

Apple recently introduced the new version of iTunes: iTunes 10. For those, like me, who are using Firefly to broadcast their music on their local network, you may have seen that iTunes 10 does not show the content of your remote playlist anymore :-( . The bad news is that a lot of commercial products are using it (especially NAS devices like Drobo…).

Someone started a thread about that on Apple’s forum: http://discussions.apple.com/thread.jspa?threadID=2564925

One guy says to have a look to forked-daapd which is a full rewriting of Firefly. So I did. On my Debian box, a package is available in “testing”:

$ sudo apt-get install forked-daapd

Change the directory where the music is in /etc/forked-daapd.conf, restart and that’s all. Then go to iTunes, the shared library should be visible and filled with your music!

Since Firefly is a dead project (no activity for a while), everybody using it should migrate to forked-daapd.

Note: this is my 100th post on this blog!

Do not use “Verified by Visa”

If you buy stuff online, you may have seen this “Verified by Visa” thing which is a big pain in the ass, completely useless and badly designed.

According to Visa it’s for better protection of online payments and increasing customer confidence… Usual marketing bullshit.

The first time I used it I had to create a kind of account with a small password and set my “forgot password” answer. The way it’s done I have no way to tell my browser to remember the password. And the session timeout is very short, so I had to do the process twice because my session expired.

The second time I bought something on a website using “Verified by Visa”, I already forgot my password and my browser was not able to help me on that… so I had to retrieve my password using the “Forgot password” feature. This mean I had to answer the question: “What’s your mother’s maiden name?”. Has you can see, it’s an highly secure question… So mostly anybody from my family (which I may not be in good relation with) or people how knows me (or know how to use Google) are able to retrieve my password too…

The third time, I had to enter some of my bank account details and enter the code I received by phone… Yes, “Verified by Visa” has a lot of different ways to check your identity. There are two problems here. Each time you are going to buy something, you may have a different thing to do, and I really don’t like that as a user. It’s so confusing that I even forgot to check that I was on a SSL connection… The other problem is that it does not work. I enter my phone number, click next, I have to enter the code I received on my phone… wait! I haven’t received anything. Why? I did not entered my phone number in the right format and the website did not bother telling me. You have to look on the “help” page to see that an international phone number is: “00″ + country code + phone number, not “+” + country code + phone number. Technically, as far as I remember, the real phone number (MSISDN) is: country code + phone number (without “00″ or “+”). Anyway, why are they stupid enough to not support the different formats or at least warn when you are using the wrong one? So again I had to try again… but in the mean time my session expired…

In conclusion:

  • better security: is that a joke?
  • better customer confidence: next time I buy something online and I’m redirected to the “Verified by Visa” site, I will cancel my payment and buy somewhere else.
  • better user experience (OK, it’s not one of Visa’s goal): please shoot yourself a bullet in the head, thank you.

We are in 2010, how is it possible that companies provide so badly thought services? (well… not thought at all I guess) I don’t mind if they provide sucking services, but I really mind when I have no other choice than using them. I’m sure they spent millions in it and the only thing I want them to do is to shut it down so we can go back to the way it was before. I agree if they want to increase security, but they have first to find out one of the right ways to do it.

If you have an online shop, please don’t use the “Verified by Visa” option or cancel it if you did.

Posted in Uncategorized. Tags: , . 1 Comment »

3D?

Each time I go to the cinema to watch a movie in “3D”, I’m a bit disappointed. First you have to put those heavy active glasses, and it’s not always easy if you already wear glasses. Then… well, the picture is bad. I recently watched a bit of an animation movie made for 3D on one of those big 3D LCD screens, and it’s not better, I think it’s even worse.

If the picture is not moving a lot, the 3D effect is quite good (that’s the only good point I see). Otherwise, the picture flickers, there are some “ghost” images (maybe due to LCD remanence), when the picture moves, it’s not fluid (maybe because the frame rate drops from ~24 pictures per second to 12…) and the 3D effect mostly disappear.

It seems to me that this technology is far from being ready yet, and in fact it looks like a scam to me since the technology I have seen is very old. I can’t believe they haven’t found a way to make it better. All this 3D buzz is surely just a marketing thing to sell more screens.

Posted in Uncategorized. Tags: , . 1 Comment »

GIT

When I started working several years ago, we were using CVS as version control system (VCS) and I didn’t really liked it. It was obvious that the CVS team took some design decisions that were completely wrong so it was quite a pain to use. But CVS was first released in 1990, so it was already an old software, and maybe at that time the knowledge on how to do VCS was not really advanced.

After using CVS for a while we started looking for alternatives, and the quick and easy solution was to use Subversion (SVN). SVN was released in 2000, the goal of SVN developers was to build “a better CVS” (so users would be familiar with the commands but without all the CVS bugs and missing features). There are tools to convert a CVS repository to SVN, so we did. And life was already much more beautiful :-) .

But after using SVN for a while, you see some of its shortcomings. In the overall, for most projects, it’s good enough. During the years they made SVN better and better. At the beginning merging was a nightmare, nowadays it’s much more easier, but when you look how they did that, it looks like a hack and not a very good one. But I don’t think they could do much better considering how SVN was designed.

Few years ago, lots of buzz started around DVCS (distributed VCS) and around GIT specifically. GIT was initially developed by Linus Torvalds for managing Linux kernel source code.

For my daily work, SVN does not cause any trouble (to me at least), so we don’t need to spend time to look for a new VCS. I’m actually starting a pet project (I will post something about it if I manage to get something useful) and I decided to give a try to GIT (it’s good to try new/different things, note to myself: I should to that more often). So I started using GIT few days ago and I’m quite impressed by it.

Some of the features I like:

  • It’s fast. Ok, my repository is currently very small, we will see how it evolves in the future, but Linux kernel is about 15 millions line of codes I think and about 10 000 commits between each release. It seems GIT can handle a quite big repository.
  • It displays correct binary prefixes. When cloning/pushing to a repository you see the size and download speed in MiB and MiB/s (or KiB and KiB/s).
  • You can’t get your repository screwed (i.e. corrupted). Ok, I never really had the problem with SVN either, but it can occurs in SVN. However I definitely get SVN in some strange status once in a while.
  • It’s distributed (no kidding ;-) ). The thing I like about that is I can do commits even if I’ve no network connection (being distributed has also other advantages but for the moment I’m the only developer on my project).
  • I can regroup commits. Lets say I start working on a feature, I do an important modification, my project is in a bad state, but I want to keep a trace of that state, so I commit. I continue working, doing commits each time I think I do something important. At the end, I can regroup in one commit all those related commits.
  • I can commit line by line! That’s a neat feature. Imagine I did 2 modifications in a file, one that I just want to keep on my development version and one for the feature I’m working on. I can say that I want to commit one modification but not the other one. On SVN I had to copy the modification I didn’t want to commit, revert that part of the code, commit the file and put back my modification.
  • I haven’t checked that yet, but given they way GIT works, merging is very easy.

SVN was known to be “CVS done right” but as Linus Torvald said: “There is no way to do CVS right”. From what I have seen and understood on how SVN and GIT work, GIT is obviously much well designed than SVN.

I think even in a small project, you can get benefits by using GIT instead of SVN and on bigger projects I think the Linux kernel development is a proof that GIT works pretty well. But using GIT may need you to change the way you use your VCS usually. For instance, I think the way KDE team(s) could not use GIT the same way they are using SVN right now (in fact they have a project to move to GIT and they are obviously going to split their current SVN in several GIT repositories).

Posted in Uncategorized. Tags: , , , , . No Comments »

Do not check email adresses!

You may have noticed that on some rare websites (≈99.999 % of internet websites), you have to provide an email address when you register. And most of the time the application running the website check if the email address you entered is valid.

But you know what? Most software developers (you know, the guys staying all day long in front of computers, the guys you call when you have a problem with your computer because they have some magical power that allows them to fix your problems) don’t know what a valid email address is!

Why do I say such things? Because each time I register on a website, it complains that I should enter a valid email address… but my email address is valid actually! What I’m complaining about is not that they check email addresses of course, I’m complaining about the fact they are rejecting valid ones. Like for an email spam filter, you don’t care that some spam emails still reach your inbox, but you hate when a valid email is dropped because it was considered spam.

Unfortunately, most email address filters that have been written are rejecting a lot of valid email addresses. Why? Because checking that an email address has a valid format is very difficult. Have a look at this summary of RFC’s email address format, you will understand what I mean.

So, if you are a software developer and you have to check the validity of email addresses, don’t bother much checking the email address format (or the strict minimum like “there is a ‘@’ and a ‘.’) because even an email address that have a valid format may be invalid (in the way that the corresponding email account does not exists).

For registration process it’s easily solved by asking the user to click on a confirmation link you send them to the given email address. Only then you will know that the email address is really valid.

Les Cast Codeurs

Si vous êtes développeur Java, vous connaissez certainement le podcast The Java Posse, 4 experts (Tor Norbye, Carl Quinn, Dick Wall et Joe Nuxoll) du monde Java (au sens large) parlant des news concernant Java, la JVM et tout ce qui touche de près ou de loin (voire de très loin) à ça, sur un ton en général très décontracté et humoristique.

Il y a un peu plus d’un an maintenant, 4 français (Emmanuel Bernard, Guillaume Laforge, Antonio Goncalves et Vincent Massol) ont décidé de faire quelque chose de similaire, le podcast Les Cast Codeurs, mais dans la langue de Molière. Je dois avouer qu’au début je ne voyais pas trop l’intérêt, étant donné que nous travaillons dans un secteur très anglophone, ça me semblait assez redondant avec The Java Posse, à part peut-être pour les quelques irréductibles gaulois qui ne comprennent toujours rien à l’anglais (et il semblerait qu’il y en ait encore pas mal en France ;-) ).

Récemment je me suis décidé à en écouter quelques épisodes, et c’est plutôt pas mal, même si dans l’idée c’est assez proche du Java Posse, le contenu et l’approche sont assez différents pour que ce ne soit pas complètement redondant. Sans compter que l’actualité française et européenne du domaine (si si, il y en a) est un peu plus abordée. C’est entre autre par Les Cast Codeurs que j’ai découvert le BruJUG.

Continuez comme ça les gars, ça me fait quelque chose de plus à écouter dans le métro ;-) .

Hayaku: A Time Lapse Journey Through Japan

Posted in Uncategorized. Tags: , . 1 Comment »

Helpdesk

A colleague sent me a link to this video today, enjoy:

Posted in Uncategorized. Tags: , . No Comments »

The Power of Abstraction

During last BruJUG third half-time, Alex Snaps told us about a presentation by Barbara Liskov (also known for the Liskov Substitution Principle) in which she tell us a bit of computer science history, how the data abstraction emerged and so on.

It’s a very interesting presentation, it’s quite amazing to see that most of programming languages principles where designed 30-40 years ago. If you are a developer, I recommend you to watch Barbara Liskov’s presentation: “The Power of Abstraction”.

BruJUG

Last wednesday (May 26th) was the first BruJUG session, and I was there ;-) .

So, what’s BruJUG? It’s Brussels’ Java User Group, so if you are a Java developer living/working in Brussels, you might be interested to attend BruJUG sessions in order to learn some stuff, talk with other developers, exchange some ideas, have a good beer…

When I was in Paris, I was going quite often to the ParisJUG, which was the first JUG in France. BruJUG just started but it’s not the first one in Belgium, there is also BeJUG which is moving from cities to cities in Belgium.

What happens in Wednesday’s session? First of all it was in Google‘s office, aka GooglePlex,  which is quite a nice one and there was two presentations, a non-technical one on content strategy and a technical one on ehcache (and a bit of terracotta of course). Both were very interesting, you can read the session post on BruJUG website or on BruJUG’s wiki (there are some pictures too!).