Jump to Navigation

Me on Twitter

  • Just got a "retry in 20s" toast on the lock screen for the 1st time. Looks linked 2 #lollipop bug fixes http://t.co/n0juzwaQ4H 6 days 5 hours ago
  • @nic0b0 Ha ! Finally.. #android5.0.1 up and running. Let's see what's new... 6 days 6 hours ago
  • Just seen an #Android5.0.1 update notification on my phone then... nothing... ??? 1 week 3 days ago
  • Looks like there's going to be an #Android5.1 "#Lollipop fails: the 5 worst things about #Android 5.0" http://t.co/xa54ShFaLw 3 weeks 3 days ago
  • #YotaPhone2 Definitely sexy phone http://t.co/CLV30ntTkl 3 weeks 3 days ago
  • @CyrilGRV thx je viens d'installer 3 weeks 3 days ago
  • Hello @CyrilGRV il t'en reste une ? 3 weeks 5 days ago
  • Hands on #android5 today. Colorful GUI, fluid animations, some strange ergonomics and... my app #SwitchDataSwitch broken :-( 3 weeks 5 days ago
  • RT @jeanhelou: Your developers aren't slow https://t.co/gfPXzqlQCM 4 weeks 2 days ago
  • #PayPal terms of use updated again... 8 pages of small characters... Any digest around ? 4 weeks 4 days ago

graphism How to cook an egg with a Gimp

Here is a tutorial to draw an egg with Gimp.

With the following techniques, you will be able to build a realistic egg for a serious business (!) as well as a cartoonish one typically for a gamification usage ;-)

You will find the full Gimp source attached to this article, which I invite you to reuse at will.

The egg evolves !

python Building PyCrypto for Win32

The PyCrypto library provides Python with implementation for a lot of algorithms for cryptography. It's very useful.

Ubuntu has it by default but if you want to have it for Python 3.2 on Windows, you must use Active Python, as there is no other binary release for Python 3.2 on the web.

In case you want to use the official Python distribution or if ActiveState did not (yet) released a PyCrypto for the version of Python you are using, this article might help you by putting together the steps to build it from source.

Also attached : a binary exe for the impatients.

Python logo

android A paper backup for your private key

Android keychainAndroid requires developers to sign their applications with a digital certificate and that each future release be signed with the same certificate.

Sadly, bad things happen when the developer (you) looses access to the certificate : he (you) will not be able to release updates for the application without it. NeverEver.

Android does not currently support multiple certificates per application so the best you could do would be to release a new app with the same name, in the hope your users will find a way to it by themselves.

As years go on, you will change your computer, wipe USB keys, reinstall OS, ...
So many dangerous operations for your digital certificates, hidden among millions of files !
If, like me, you are anxious at the idea of losing your certificates or passwords, just print a paper copy !
Although it is not invulnerable, paper should be less prone to mass erasing than a simple electronic file.

The idea is simplenot new, and you just need to know two commands to get a printable hard copy of your certificate.

Let's start.

drupal AddThis for Drupal

This small article might help you to figure out quickly how to work with the AddThis module for Drupal.
It is not a substitute to the original documentation : it just provides a concrete view of the configuration process from my experience.

Here is a sample "toolbox" generated with the AddThis module : AddThis : nicobo's sample toolbox

Here is an overview of the main steps to get AddThis working on Drupal :

  1. install the module : http://drupal.org/project/addthis
  2. choose in which nodes it appears : page, story, teasers, ...
  3. select which type of widget you want : they are called "button" and "toolbox" in the configure tab
  4. build the widget by adding components to it (only for "toolbox") : components includes popular buttons like facebook like, google +1, tweet, but also custom elements like separator, addthis 'more' button
  5. add a service customization for each component you listed : this step simply provides each component with adequate parameters
  6. customize it more using the numerous other options

[...]

drupal Displaying your tweets on your Drupal blog

If you want to display your latest tweets on your Drupal blog, you will probably want to use the dedicated Twitter module. Among other features, this module provides a new block type that lists a selection of tweets from an account. Tweets are retrieved via a cron job and stored in your website's database, making them available even through corporate firewalls that banish twitter.com. Just-what-you-need !

There are a few catches however : it will likely not work if you are on a shared host because Twitter puts rate limits to the usage of their API, and there is a bug in the block view that can be circumvented.

tooling Migrating from Subversion to Mercurial

Need to migrate from Subversion to Mercurial ?

This is a quick guide to migrating an existing SVN repository to a new Hg one.

It takes 2 major steps :

  1. make a local copy of the existing SVN repository
  2. convert it to Hg

[...]

Successful import from SourceForge's SVN to Google Code's Hg :

Sample project imported from Sourceforge's SVN to Google code's Hg

java HttpClient 3.x : a portable SSL Socket Factory implementation

I was just trying to implement client and server authentication over SSL on IBM Websphere 6 (JRE 1.4.2)...

[...]

It may sound awkward in 2012, but if you wish the HTTPS server to identify your Java client (versus : only the server is identified), you will have to write your own implementation of a socket factory.

The Java Runtime Environment doesn't provide ready-to-use classes to do this. Yes : there is javax.net.ssl.SSLSocketFactory.getDefault() but it requires to set some system (therefore global) properties to point to the certificates files !!!

Even with Apache's HttpClient (at least version 3.x), you have to use a custom SSLProtocolSocketFactory.

The HttpClient SSL Guide provides sample code to implement mutual client and server authentication ; unfortunately the latest stable release of it (contrib 3.1) is bound to Sun's API with imports such as com.sun.net.ssl.KeyManagerFactory. Needless to say that this will not work on an IBM Websphere JRE...

This article contains an implementation of a SSLProtocolSocketFactory for HttpClient, to whom may be interested...

android Small devices are ignored

This has been annoying me since the beginning : small screen devices are not taken into account by the vast majority of apps editors.

Worse : despite Google's pleading about size-caring (see http://developer.android.com/design), they recommend patterns that actually don't fit the real small screens for which size-caring IS important.

Here are screenshots of Android Market and Google Reader on an Xperia Mini (HVGA 320x480, 88mm long) :

Android Market on Xperia MiniGoogle Reader on Xperia Mini

android Where Android Market stores the downloaded .apk

Today I ran into a small problem that might happen sometimes : trying to benefit from a 2 day-only offer to download for free Duke Nukem 3d (just for fun, I don't think it's going to be the killer app this year), I found out that my phone had not enough free memory to install it (Market told me : 56MB required).

After putting several apps off the memory (to SD card) to free enough space to install it and after a first failed attempt to download the 28MB archive, I was able to download the .apk from the Market (that was "phase 1 : download").

Immediately after the file was downloaded, I started up my Open Advanced Task Killer to free more memory for the installation process.

Of course I got the very bad idea to kill the Android Market process, while it was already installing the app ("phase 2 : installation").

From there, even though Duke Nukem 3d was listed in my installed apps, I only had the option to install it, not to launch nor uninstall it. Even launching the Market again was not triggering the installation anymore.

Duke Nukem 3d app icon

android How to organise XML resources

The first time I read Android developer docs, there was something that was unclear to me : what resource to put in which XML file.

In this article, I will focus on resources in res/values and give some hints about how to name your XML resource files and what kind of resource to put inside.

...

In my case I had only one or two arrays of strings so it was overwhelming to put them in a separate file just because they were of a different type.

Another problem was accessing constant values from both XML layout and Java code. They are constant strings for internal use only, but in order to avoid duplicate declarations I decided to make them available as XML resources. I wanted those resources to be clearly separated from other, 'user visible', resources like GUI labels.

Another thing adding to the fog was the fact that, in derivate files (e.g. strings-fr.xml is derivated from strings.xml), you only want to find values relevant for the given file.
For instance, if you put all values of type 'string' in the same file but only a part of them should be internationalized, you would have a gap between the original and derivated files not only by the translated values but also by the list of values they declare. When coming back to the project after a long time, you might have a hard time remembering why there is this gap.

...

Syndicate content