Humour de/pour développeur

November 30th, 2013

(fr) http://lesjoiesducode.tumblr.com
(en) http://thecodinglove.com

Nombres entiers aléatoires avec pas différent de 1

April 11th, 2013

Pour générer un entier aléatoire avec un “pas” différent de 1, on peut faire comme ça:

  1. générer un nombre aléatoire (généralement un float)
  2. le diviser par le pas voulu
  3. l’arrondir
  4. le multiplier par le pas

Ca marche bien si les bornes (ci-dessous 30 et 50) sont des multiples du pas.

Exemple: Pas de 5 entre 30 et 50

void draw() {
  println(round(random(30, 50) / 5) * 5);
}

Si les bornes ne sont pas des multiples du pas, il faut en tenir compte:

  1. calculer la plage (max – min)
  2. générer un nombre aléatoire dans la plage avec un pas comme ci-dessus
  3. ajouter le min

Exemple: Pas de 5 entre 32 et 42

void draw() {
 println(32 + round(random(42 - 32) / 5) * 5);
}

Facebook anti partage et j’aime forcé

August 26th, 2012

Certains site hébergent des vidéos ou du contenu qu’on est obligé d’aimer ou de partager sur Facebook avant de pouvoir les voir. Je n’aime pas être forcé de la sorte et bien que très souvent le contenu n’en vaut pas vraiment la peine, j’aime le défi qui consiste à faire sauter la barrière Facebook.

Généralement il y a moyen de bricoler pour faire sauter la protection. C’est différent sur chaque site, mais quand j’ai le temps de chercher et que je la trouve, je mettrai la solution ici.

Read the rest of this entry »

Processing error “WARNING: RXTX Version mismatch”

June 10th, 2012

Problem

Using Processing 1.5.1, I used to have this message when starting a sketch using serial communication:

WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2

Also, I get another error when quitting the sketch:

APP_NAME a quitté de manière imprévue lors de l'utilisation du module librxtxSerial.jnlilib.

Invalid memory access of location 0xb19bdb60 eip=0x6301c90c

Solution

The easiest solution I found is to download Arduino (1.0.1 at that time) and copy 2 fils from Arduino folder to Processing folder.

  • Quit Processing
  • Open Arduino and Processing packages (right click application file, show package content)
  • Find RXTXcomm.jar and librxtxSerial.jnilib in /Applications/Arduino.app/Contents/Resources/Java
  • Find the same files in Processing package (in /Applications/Processing.app/Contents/Resources/Java/modes/java/libraries/serial/library and the macosx subfolder)
  • Copy each file from Arduino folder and replace them in Processing folder

Kaléidoscope

January 26th, 2012

Cet exemple Processing utilise la classe PGraphics et un masque pour extraire un secteur circulaire d’une image et le reproduire en plusieurs exemplaires, à la manière d’un kaléidoscope.
Read the rest of this entry »

Perlin noise: une alternative à random()

October 6th, 2011

La fonction Perlin noise est un générateur de séquence aléatoire qui produit une succession de nombres plus naturellement ordonnée, harmonique comparée à la fonction standard random(). Elle a été inventée par Ken Perlin en 1980 et a été utilisée depuis dans des applications graphiques pour produire des textures procédurales, des mouvements naturels, des formes, des terrains, etc.

Cette application permet de tester différents paramètres liés à la fonction noise() de Processing et de voir les résultats en temps réel.

Read the rest of this entry »

15 astuces pour ne plus se faire piéger sur le Net

September 22nd, 2011

Voici un bon résumé des menaces qui nous guettent sur Internet et auxquelles il faut donc faire attention.

Un homme averti en vaut deux (une femme aussi, d’ailleurs, à peu près dans les mêmes proportions)

A lire, relire, garder et relire de temps en temps.

http://www.commentcamarche.net/faq/32768-15-astuces-pour-ne-plus-se-faire-pieger-sur-le-net

Solution to disturbing default reminder for Outlook all-day events

August 12th, 2011

Outlook users can define default reminder time for new calendar event. However this applies to normal events with a start hour, not to all-day events. For those events, there is a default value of 18 hours, which sets the reminder at 6am the previous morning. Most people don’t want to be reminded so early.

So I built a solution with a few lines of code to add to Outlook.

This code verifies the reminder hour when a calendar item is saved. If it is set before a minimum hour (default 9am) or after a maximum hour (default 8pm), an alert proposes a new reminder time. The user can accept or deny the proposed value or cancel the closing in case he wants to set another value manually.

Read the rest of this entry »

email en copie invisible seulement

December 25th, 2010

Depuis longtemps je recevais de temps en temps des emails non décodés, pleins d’informations peu incompréhensibles et des blocs de chiffres et lettres complètement illisibles. J’ai enfin trouvé l’explication et je recommande la lecture de ce billet à tous ceux qui m’envoient ces emails afin qu’ils sachent qu’une partie de leurs destinataires a de la peine à les lire et comment résoudre le problème.

Il se trouve que j’utilise encore une “vieille” version d’Outlook qui semble souffrir d’un bug et que Microsoft ne soit pas vraiment disposé à le reconnaître et à le corriger. Serait-ce pour m’inciter à acheter les nouvelles versions qui, elles, ont corrigé ce bug ?

Voici un exemple (extrait) de ce que je vois:

Return-Path: xyz@domain.com
Received: from mta-mr2.xyz.ch (mta-mr2.xyz.ch [xyz.16.68.107])
by mda85.xyz.ch (8.14.2/8.14.2) with ESMTP id oBL9uovx005953
for
; Tue, 21 Dec 2010 10:56:51 +0100
Received: from mta-gw2.xyz.ch (mta-gw2.xyz.ch [xyz.16.68.87])
by mta-mr2.xyz.ch (8.14.2/8.14.2) with ESMTP id oBL9uoJN025546
for
; Tue, 21 Dec 2010 10:56:50 +0100
Received: from smtp165.xyz.xyz.com (smtp165.xyz.xyz.com [xyz.97.245.165])
by mta-gw2.xyz.ch (8.14.2/8.14.2) with ESMTP id oBL9unYV014547
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
for
; Tue, 21 Dec 2010 10:56:50 +0100
Received: from localhost (localhost.localdomain [127.0.0.1])
by smtp46.relay.iad1a.xyz.com (SMTP Server) with ESMTP id B9417E8BB6;
Tue, 21 Dec 2010 04:56:46 -0500 (EST)
X-Virus-Scanned: OK
Received: by smtp46.relay.iad1a.xyz.com (Authenticated sender: valerie.xyz-AT-xyz.org) with ESMTPSA id 73928E8E54;
Tue, 21 Dec 2010 04:46:14 -0500 (EST)
Message-ID: <4D107763.1000200@xyz.org>
Date: Tue, 21 Dec 2010 10:46:11 +0100

La cause de ce problème est que l’email envoyé n’a pas de destinataire direct (A ou TO) ou en copie (CC). Dans ce genre d’email, tous les destinataire sont en copie invisible, généralement quand ils sont envoyés à un grand nombre de destinataire qui ne se connaissent pas. Ce qui est d’ailleurs une très bonne chose, pour préserver la confidentialité des adresses emails.

Quelle solution alors ?

Il suffit simplement que l’expéditeur qui désire envoyer un email à plusieurs personnes en copie invisible s’ajoute lui-même comme destinataire principal de l’email. Son adresse figure déjà comme expéditeur, ça n’a donc aucune conséquence négative. L’immense avantage est que tout le monde pourra lire correctement l’email reçu.

Choisir la bonne police pour taper du code

June 21st, 2010

De temps en temps, je me repose la même question: est-ce qu’il n’y aurait pas une autre police plus adaptée à l’écriture de code que celle que j’utilise actuellement ?

Les critères principaux d’une bonne police pour le développement sont:

  • monospace pour pouvoir aligner facilement les commentaires et autres blocs de code
  • pouvoir distinguer facilement les o, O et 0 (zéro) ainsi que les i, I et l et L
  • que les {} soient bien lisibles, par rapport aux [] et ()

J’en reviens toujours à Courrier New, mais chacun peut se faire rapidement une idée de ce que donnent les alternatives sur cette page: http://www.codeproject.com/KB/work/FontSurvey.aspx

Edit: j’ai fini par adopter Consolas.