Timeless permalink

Before this blog had the following URL structure /yyyy/mm/dd/sample-post/ ex: /2018/09/05/sample-post/  . Most online newspapers follow this URL structure. It’s great when the blog creates a lot content.

Over time, I figured out my posts still had visitors years after.  In terms of SEO, search engine may not  directly penalize in their algorithms but people will naturally look for content with a recent date.

More over, I often updated old posts . So I had to change the permalink structure.

I removed the date in the URL so the permalink changed from  /2018/09/05/sample-post to /sample-post

Someone liked your old post and shared the link . Now this link doesn’t work anymore , it is broken. You have to redirect the old URL to the new ones.

The redirection must be permanent , use the HTTP code 301 . A 302 is a temporary redirection. I use the plugin redirection .

You could redirect URL one by one, it will be time consuming. Better use a regular expression ( regex ) . Mine is


Yoast redirect tool  is a great tool to figure out the regex from your old permalink structure to the new one.

More tips from the expert

ICANN 60 day lock

My blog was down for the couple past days, because I changed the hoster.

Normally it should have been very smoothly. The domain was due to expired on July 1st 2017 . The support at FastComet told me to renew at Planethoster because they need 15 days to transfer. But I didn’t expect a 60 day lock after transferring my domain  raychenon.com to the new hoster.  Somehow the registrant’s information  (WHOIS ) was modified when I ordered the transfer not by me directly.

FastComet transferred the website content ( DB, images, post , …)  but the domain name was still with Planethoster. Since the transfer was in progress, I couldn’t edit the DNS, nameservers . But the support at Planethoster could. I was just the middle man between Planethoster and FastComet.  The fix took a week.

Currently the domain is still with Planethoster, but all the existing links are there.

To avoid the 60-day lock :

  • Request the transfer to another registrar before changing the registrant’s information
  • Have the prior registrant opt-out the 60-day lock (if this option is offered by the registrar) before making any change to registrant information.

In the next post, I will explain the reasons why I changed the Cloud Hosting for my blog powered by wordpress.

PlanetHoster tech support

Website hosting is a commodity, prices are dragged to the bottom. In terms of infrastructure and software, hosters are pretty much the same . Higher cost hosting providers have better customer support and extra service. That’s the general rule.

4 years ago, I chose a cheap hoster at ovh.com . I had trouble to set Domain Name System (DNS) . After a few days , no reply from customer support. So I invited a DevOps friend for pizza at home, after a few hours he couldn’t fix. The lunch cost more one year subscription. Then I reviewed on hostsearch and hostadvice . I tried out Planethoster during the free trial.

Customer Support

First I was impressed by how technical the support was. At any time of the day, within a few hours the technical support will reply to me. Just open a ticket on their website, you can reply to it by email like zendesk without being zendesk.

It wasn’t simple questions. They helped transfer my old wordpress to a new domain without breaking any link. Redirect to a sub-domain. Anonymize on whois.org …

Then the following years, I still stick to it.

Most hosters give incredible discount for the 1st year and increase dramatically the next year (Strategy of godaddy ) . But Planethoster stayed true to the initial price.

In addition, since the company is from Québec, Canada. The support speaks English and French.


Thanks to Cpanel , it is very easy to install in one-click WordPress, Drupal, Joomla, Prestashop, WooCommerce, Magento. The updates are automatically taken care.

I’ve been a satisfied customer of Planethoster for over the past 3 years on multi hydrid now moving to Platform World ( 6 USD per month).

Disclaimer: I don’t advertise products I’ve never tried. The link below is an affiliate link. A percentage of the sale will go in my pocket. This commission comes at no additional cost to you

Activer l’Option Voyage de Free Mobile, un casse-tête

Tout d’abord cela va faire 5 ans que je suis chez Free depuis j’ai quitté un autre opérateur . Ne résidant plus en France, je garde quand même mon numéro FR mais je rétrograde l’abonnement de 20€ à 2€.

Pour activer l’option voyage , il faut d’abord payer 10€ seulement par carte. Sauf que le code de confirmation est envoyé par SMS et que ce numéro de tel ne peut rien recevoir hors de France. D’où la raison pour activer le roaming , cette fameuse option voyage. C’est le serpent qui se mord la queue.

La réponse de Free Mobile sur Twitter ( oui, le compte Twitter de freemobile est plus facile à joindre le support officiel ):

Je remonte cette information. Je vous confirme que les cartes bancaires étrangères ne sont pas acceptées. Pour activer l’option voyage, vous devez être sur le réseau Free mobile en France, il n’est pas possible de l’activer une fois à l’étranger. Bonne journée.

Donc pour activer cette option voyage, il faut :

  1. être sur le réseau en France
  2. payer avec une carte Française supportant 3D secure.

J’ai résolu ce problème 2 par la carte d’un ami.

Mais allons plus loin dans la réflexion, Free a une autorisation de prélèvement sur RIB. Pourquoi ne pas débiter automatiquement sur le compte bancaire ? Après tout, quand il y a du hors forfait , Free prélève le dépassement sans autorisation supplémentaire.

Le support téléphonique est encore plus désarmé par cette situation. Je dois être dans le 1% des usagers.
En passant par d’autres interlocuteurs, la 2ème personne en vient à la même idée du prélèvement automatique , dont elle fera part à sa hiérarchie. Je lui promet que je twitterai ça à Xavier Niel et elle éclate de rire. Pour des raisons de qualité, la conversation a été enregistrée.

Le meilleur moyen pour contacter Free Mobile

Confronté à un problème avec Free mobile, je dois les contacter depuis l ‘étranger. Avant tout, je suis client sur 2 numéros mobiles et Freebox depuis plusieurs années sans jamais avoir contacté le service client. Soit un taux de défaillance de < 0.1 %. La plupart du temps, je me rends sur mon compte du site officiel avec un email automatique pour chaque facturation.

Free mobile ou Freebox a mis en place un parcours du combattant pour décourager ses clients “casse pied” à les contacter. Jusqu’à maintenant , j’ai toujours cru que le service client était le maillon faible de Free.

1ère recherche Google donne http://mobile.free.fr/contact.html

  • Par téléphone : hors de question. Je suis à l’étranger.  Mais il y a le +33 1 78 56 95 60 depuis l’étranger. D’une manière ou d’une autre, il faudra payer le coût de l’appel depuis l’étranger.
  • en ligne : Découvrez notre site d’assistance.  On tombe sur un FAQ mais pas moyen d’envoyer un message pour une question personnalisée qui sort du cadre du FAQ.
  • fax payant . Obsolète , on est en 2017
  • contact par email : Voici comment contacter le service client free par Mail . Mail envoyé, ca ne répond pas.

Non, il y a une solution beaucoup plus simple, rapide et gratuite . Pas d’arnaque.

Le compte Twitter   peut vous aider. Il suffit d’envoyer un message privé avec votre numéro de téléphone et identifiant ( 8 chiffres ).

J’ai reçu une réponse dans les plus bref délais. Réponse garantie entre 8h et 20h. Encore merci.

Anonymity on the peer to peer (P2P) network

As a general rule of thumb, you are allowed to download anything. What  is penalized by law is to upload copyright material and offer it to other people. Here is a way to avoid any copyright lawsuit/penalty/infringement .Law firms track users uploaded the content by looking at their IP address. They can request the Internet Service Provider (ISP) to give the IP address’s name holder only within their respective countries. For example : a German law firm can only request a German Internet provider  (not French or British ) to disclose the name of IP address holder. Thus it is best to not expose your own IP address on public BitTorrent.

utorrent peers list . IP addresses are listed

IP addresses and ISP name are listed


A virtual private network ( VPN ) creates an encrypted ‘tunnel’ between the computer and the host server, with the internet traffic going in and out of the host server. An ISP or government can only see that the user has connected to the VPN server and nothing else – the activities, IP addresses visited etc. are all completely hidden from the ISP.

However, the VPN server can keep logs. After the post Snowden era, all your VPN history and logs are likely to be harvested by the NSA.

Go for a non-US provider. If possible with untraceable payment method.

Apart from the peer to peer ( P2P ) anonymity, VPNs can bypass geo-location restriction ( content only available in certain countries )



is a remote server hosted used for the safe uploading and downloading of digital file. Contrary to a VPN, a seedbox will not use your bandwidth. Most seedbox are hosted in a high-bandwidth data center. A seedbox can be safely hosted in a country where file sharing is illegal. Because data centers are considered professional use.  For example, the biggest datacenter in Europe is OVH ( in Roubaix, France ). A lot of French customers use OVH as seedbox while if they use their private internet, they could get a fine.

Seedbox are more expensive than VPN.

Use an internet cafe

Since the IP address matches the owner thus the downloader , it is best not to expose one’s IP address.
There are 2 important conditions to select an internet cafe :
– you can bring your own laptop.
– no ID asked. Of course, the payment method cannot identify you ( pay by cash ).

When the legal alternative is cheaper

Maybe you had a look at the cost of a VPN or seedbox, Netflix costs about the same price as a seedbox ( 9,99 USD /month for the standard subscription ) . The Netflix catalog may be smaller than all the content available on P2P but the content creators get a better redistribution of their work. You make your own choices.

Droidcon Greece experience

Last month Thessaloniki welcomed the first Droidcon in Greece. It was also my first time in Greece, and I was fortunate to be invited as a speaker. Aside from the high quality of the conference itself, the organizers (special thanks to Eliza Camberogiannis ) did a great job of spoiling us. It started at the airport, where a taxi was waiting for me. On Droidcon Eve, the other speakers and I were given a bus tour of Thessaloniki.

Droidcon speakers in Thessaloniki, under the Arch of Galerius

Droidcon speakers in Thessaloniki, under the Arch of Galerius

We stopped at a Bougatsa shop around the Byzantine Walls and tried both the salty and sweet versions of the pastry; my vote went to the sweet Bougatsa with cinnamon, pictured below :

Sweet Bougatsa

Sweet Bougatsa

Before lunch, we visited a local market and tried some mezze (ham, cheese and the biggest olives I’ve ever seen.) Then we were treated to a seafood lunch where, again, we experienced that extremely good Greek hospitality and cuisine.

The talks I liked the most

Droidcon took place at Noesis ( ΝΟΗΣΙΣ ), a science park on the outskirts of Thessaloniki. All of the talks were interesting, but these takeaways were the most memorable:

All the talks were interesting , some were more memorable.

Damien Mabin, Google developer advocate and former game developer , gave advices for game monetization :

    • Even if an user spends st 1$ in your game it’s still more than what you would get from him watching ads in your game/app. As soon as the user spent money on your app, remove the ads, he gave you enough money. The whales (big spenders) still generate more revenue the average user who spends less than 5$. Duet cleverly uses this strategy.
  • Damien also noted that time-constraint challenges incentivize players to spend more time in the game; these challenges generate a nice surge in traffic from the same users. (This point applies to non-game apps as well.)


Developer and evangelist Svetlana Isakova of Jetbrains (editors of Android Studio) demoed Kotlin, Jetbrain’s homegrown programming language. Nicknamed “the Swift of Android,” Kotlin is considered to be less verbose but more readable than Java, and it supports immutability, nullable types and lambdas. The easiest way to start using it is by automatic conversion of Java file to Kotlin file, done with an Android Studio/IntelliJ plugin. Java can interoperate with Kotlin methods and vice versa. In one of my pet projects, I’ve found Kotlin to be very concise for POJO classes with setter and getter methods.


Svetlana Isakova

Josh Skeen, an instructor at Big Nerd Ranch, led a workshop on RxJava — something I was really looking forward to. Rx stands for Reactive, and you may have heard of Retrofit + RxJava in combination. Josh explained the fundamental concepts of Rxjava, a library for composing asynchronous and event-based programs by using observable sequences. We tried to solve his RxJava Koans in order to reach RXJava enlightenment.


Savvas Dalkitsis from Shazam discussed how aspect-oriented programming can isolate code related to analytics and ads from your business logic. It reminded of our code base at Zalando, which uses a similar technique (tracking) for analytics.

Special kudos to the most productive speakers : two French men. Damien Cavaillès presented three talks and Damien Mabin did two talks.

As for my own talk (my second Droidcon presentation — I got to speak at Droidcon Berlin earlier this year), I focused on “App Fails and Retrospectives.” The topic didn’t quite fit the SDK track, which was where I appeared, in that it mostly offered failure-related anecdotes based on real-world Zalando experiences. Judging by the audience’s reaction, our “best” failure was the time our app was about to become the Editor’s Choice on Google Play, and on the same evening I had to revert to the previous app version because of an untested crash that was going to affect millions of users.

I came up with the idea of “epic fails” from an active Zalando group chat called “#guild-fuckup,” one of the most active of Zalando Tech’s +100 guilds. I found inspiration there the day before the Droidcon Berlin deadline, submitted the talk … and was accepted without sponsorship! I couldn’t offer expertise on trendy topics: Internet of Things, wearables, Android Auto, but failure and mistake-making was something I thought every dev or dev team could relate to, big company or small startup.

All Good Things come to an end

After the very last talk, we took a “family” photo and finished the event with a Greek dinner (of course).

Droidcon organizers and speakers

Droidcon organizers and speakers

Before leaving Greece, I bought a Terkenlis chocolate cake (tsourekia) for my team in Berlin. A Greek colleague recognized the cake and thanked me for bringing the best back from Thessaloniki. I thought it was the least I could do for all the hospitality I enjoyed there! It was definitely worth the trip.

Originally posted at https://jobs.zalando.com/tech/blog/my-droidcon-greece-experience

Speaker at Droidcon Berlin 2015

I am excited to announce I will speak at Droidcon this Friday June 5 2015. My talk is here

The initial title “Android Fuckup and postmortem” was accepted in the Call of Paper . But to be politically correct I renamed “Failures and Retrospectives” without changing the meaning.


How to change UI theme on IntelliJ and Android Studio

This post is deprecated, please read updated this tutorial how to change the color scheme from .jar file.

If you are tired of the default look or darcula theme of IntelliJ (tested on 2017.x and 2018.x versions) or Android Studio , you can switch to a better looking theme . This is a very short process


IntelliJ with Obsidian.jar theme and darcula

1 Select your theme

color-themes.com has plenty of themes ( Sublime Text 2 , Monokai,) . Download the .jar file . Roboticket.jar is my current theme

 Import the theme

Import to IntelliJ or Android Studio by going to File -> import settings -> and select the  .jar file you downloaded.
Select All . press OK. Then Restart your IDE.


Note : if you use darcula theme previously , you will notice the new theme is only applied to  the Text Editor. The light theme clearly contrasts


3 Appearance theme

On Mac , go to Preferences -> Appearance  . You can also use the shortcut Preferences -> search theme on the top left search bar
Next to Theme , Select Default . Or Darcula if you are using a dark theme .
Restart your IDE.


4 The final look



Odesk contractor rip-off

I previously a positive experience on Odesk for finding a graphic artist. I even offered a bonus.
The job was correctly after 3 hours, I decided to polish the work for a total of 10 hours.

However recently, I posted a job to build server side on Python Google App Engine for a new venture kowifi.com

How a contractor on Odesk can rip off

The people I invited were top talent, so they were busy with other projects. Some contractors bided . The ones who beg for the job are actually the needy. I interviewed two contractors from Ukraine both seemed good. I took the cheaper one and he seemed competent enough to do the job on his own. I planned 5 hours to get a first draft of the job done and as a test of skillset.

I passed some interview with great companies and before you get on an site or even technical skype interview, you have to pass a 5 hour challenge. Some are shorter like 30 minutes of coding test. But I said to myself : “no one will want to pass these tests for free”. Actually these tests filter the good candidates from the rest.

I should checked more on the dumb contractor. One job accomplished on Odesk for more than 200 hours and no review , sounds strange.

I hired him on friday. WRONG.
I set the time limit at 5 hour per week.
– However after 3h of work, nothing was visible. It was clear he had a poor understanding of “foreign key” and SQL. On the interview he bragged how he knew about PostgreSQL , GeoDjango … and showed his references project. But he had to look at the documentation every time. He hardly knew how to read SQL schema and translate into a Django model. Just three tables.
– I prolonged to 5 hours. still nothing. I should have stopped by then.
The Odesk  billing summary starts on Monday next week.
– On the next week, he worked unauthorized hours. I clearly said to wait for my instructions.
I saw my project on his github repo. No need to say some employees will get immediately sacked. It’s common sense not to make public the client’s project. When outsourcing software, the intellectual property is really important . But the bozo just pushed the source code on github. There was also the previous client project …

At the end , it’s a total of 8h, the test job is not done, time over run. I filed a dispute to get some cash back and for the extra log time.

Odesk makes money on hours billed

After reading this http://www.sitepoint.com/forums/showthread.php?987335-Odesk-getting-ripped-off

It’s clear Odesk is protecting the contractors or the hours billed by the contractors. Simply Odesk makes money on the percentage of hours billed. So it’s in their advantage not to refund money because it’s a loss. Odesk does not evaluate the quality of work. Even if I leave a bad review ( extra log time, put the source code on github … ) , the contractor can still make the comment private.

This open doors to shady contractor who will exploit it in the sense where as long they log their hours properly, they will be paid even though what they did is not usable nor complete.

Clearly I will never be fooled again by some bad contractors.