Faille de sécurité de Skype corrigée sur Android

Les propriétaire d’un smartphone sur Android et ayant installé l’application Skype ont probablement reçu un email les avertissant d’une vulnérabilité touchant l’application Skype. Cette dernière, révélée par Android Police permet entre autres d’obtenir le noms, l’historique des dialogues et les contact du propriétaire du téléphone depuis n’importe quelle application malveillante présente sur ce même téléphone.

Cette faille vient d’être corrigée et Skype invite actuellement tous les utilisateurs l’utilisant sous Android à mettre à jour l’application.

 

Pour plus de détails sur la faille: Android Police

Catégorie : Android | Tag | Commentaires fermés sur Faille de sécurité de Skype corrigée sur Android

Changement d’hébergeur

Petit billet pour vous mentionner un changement d’hébergeur pour mon domaine 😉

Tout devrait rentrer dans l’ordre d’ici quelques heures niveau DNS (chez moi ils sont à la traîne).

Au menu: gain de quelques millisecondes (et meilleur support technique).

Edit: correction du formatage du à un réencondage de la sauvegarde SQL.

Catégorie : Divers | Commentaires fermés sur Changement d’hébergeur

De Gentoo à Archlinux

N’ayant plus beaucoup de temps pour garder à jour mon PC « de maison » sous Gentoo, je me retrouve parfois avec plus d’un mois de retard dans les mise à jour. Résultat: au moins 300 paquets à compiler et bien souvent, des problèmes (surtout à cause de mon utilisation de paquets en développement). De plus, j’avais quelques problème de « freez » temporaire sous Gentoo; impossible de trouver d’où ça venait, les disque étaient en ordre, la RAM aussi, aucune erreur dans les logs.

Du coup, pour avoir une machine avec des logiciels « à la pointe » sans avoir trop de soucis, j’ai opté pour ArchLinux. La migration a été plutôt simple, étant donné que les données non-spécifiques à la distribution se trouvent sur des partitions séparées. Lire la suite

Catégorie : Linux | Tag , , | Commentaires fermés sur De Gentoo à Archlinux

Deux types de RAM sur un Lenovo W510

En voulant booster un peu mon laptop, j’ai décidé de lui ajouter 8GB de RAM en plus des 4GB d’origine. Ceux d’origine étant en 1066Mhz, je me suis dit que de prendre 8GB en 1333Mhz et profiter du dual channel serait judicieux…

Seulement, une fois installées, les deux barrettes n’étaient pas reconnues (toujours 4GB de Ram). La solution: fouiller dans la documentation en ligne de chez Lenovo. En effet, les canaux ne sont pas agencés par emplacement de slots, mais plutôt croisés: canal 1: un slot sous le clavier, l’autre sous la machine, idem pour le canal 2. (source: support Lenovo en ligne). Lire la suite

Catégorie : Uncategorized | Tag | Commentaires fermés sur Deux types de RAM sur un Lenovo W510

Installation de Redmine 1.0.1 sur CentOS 5.5

Voici un petit guide d’installation de Redmine 1.0.1 sur la distribution CentOS 5.5 avec Apache. Nous partirons du principe que votre CentOS contient les paquets de base de la configuration « Server » proposée à l’installation. Ce guide peut également servir pour une migration Lire la suite

Catégorie : Configuration, Linux | Tag , , , | Commentaires fermés sur Installation de Redmine 1.0.1 sur CentOS 5.5

Améliorer la durée de vie de la batterie de son HTC Desire

En cherchant quelques idées de modifications pour mon HTC Desire, je suis tombé sur un blog assez sympa consacré à cet appareil. J’y ai notamment trouvé une manipulation supposée prolonger la durée de vie de la batterie en la recalibrant. Et je dois avouer que ça a fonctionné pour moi qui commençait à désespérer de devoir charger mon mobile tous les jours ou deux jours. La voici :

  1. Allumer son mobile et le charger durant 8 heures
  2. Débrancher le chargeur
  3. Eteindre le téléphone et le charger durant 1 heure
  4. Débrancher le chargeur, allumer le téléphone et patienter deux minutes
  5. Eteindre le téléphone et le charger durant 1 heure
  6. Débrancher le chargeur et utiliser le téléphone normalement.

Evidemment, si la batterie est en fin de vie ou qu’elle fonctionne déjà parfaitement, cette manipulation n’aura aucun effet.

Catégorie : Uncategorized | Tag , | Commentaires fermés sur Améliorer la durée de vie de la batterie de son HTC Desire

Mise à jour du blog

Rien de très neuf en ce moment, j’ai juste rapidement mis à jour le blog à la version 3 de wordpress. Le thème sera mis à jour dès que j’aurai du temps, en attendant c’est le modèle Twenty Ten (celui par défaut de WordPress 3) qui sera affiché.
Autre petit changement, j’utilise maintenant CodeColorer au lieux de SyntaxHiglighter (pour afficher du code), surtout pour rendre plus léger l’affichage du blog.

Catégorie : Uncategorized | Tag | Commentaires fermés sur Mise à jour du blog

Erreur signature: ()V) Constructor must call super() or this() avec Netbeans 6.8 et Glassfish

Lorsque l’erreur devient incompréhensible et surgit, par exemple, dans com.myproj.myejbs.mdb.<error> on se demande vraiment d’où peut venir l’erreur. Au point même de simplifier au maximum son MDB en mettant quasi tout en commentaire… pour toujours avoir cette erreur: ()V) Constructor must call super() or this() avec Netbeans 6.8 et Glassfish

J’ai vraiment tout essayé: recréation d’un domaine glassfish, ajout d’un constructeur au MDB (avec appel à super()), vérification de toutes les classes du projet héritant d’une classe parente…

Au final, la solution est triviale et devrait être dans ma liste de suspicion pour les erreurs paranormales à l’avenir:

Supprimer le cache de netbeans:  rm -rf ~/.netbeans/6.8/var/cache/

Pour les plus conservateurs, renommer le dossier cache peut aussi faire l’affaire.

Catégorie : Uncategorized | Tag , , | Commentaires fermés sur Erreur signature: ()V) Constructor must call super() or this() avec Netbeans 6.8 et Glassfish

Parser la ligne de commande avec getopt_long()

Durant un projet C/C++, j’ai eu besoin de parser efficacement les arguments du programme. Le nombre d’options étant devenu important, j’ai décidé d’utiliser getopt_long, disponible avec GNU C. Une fois l’outil pris en main, j’ai eu un peu de mal à trouver comment se déroulait le parsing des arguments n’étant pas des options (nom de fichier par exemple). C’est finalement en tombant sur de la documentation oracle/sun que j’ai trouvé la solution.

Voici tout d’abord les déclarations de base de pour utiliser getopt_long:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <getopt.h> //requis pour l'utilisation de getopt_long
struct globalArgs_t {
unsigned int help; /* -h option*/
unsigned int algorithm; /* -t option */
bool toStdout ; /*-stdout option*/
bool fromStdin ; /*-stdin option*/
string* infile;
int verbosity; /* -v option */
} globalArgs;

static const char *optString = "t:h?;";//"Il:o:vh?"; //pour plus de détails, cf doc GNU

static const struct option longOpts[] = {
{ "help", no_argument, NULL, 'h' },
{ "algorithm", required_argument, NULL, 't' },
{ "stdin", no_argument, NULL, 0 },
{ "stdout", no_argument, NULL, 0 },
{ "verbose", no_argument, NULL, 'v' },
{NULL, 0, NULL, 0}
};

La première structure globalArgs permet de stocker les valeurs pour les options de nos programmes (et les utiliser plus tard).

La chaîne optString permet de définir la structure des arguments. Les deux points signifient par exemple d’un paramètre est attendu pour l’option -t. Pour plus de détails, je vous conseille la doc GNU.

Enfin, le tableau d’option longOpts[] permet de définir les options longues (spécifiées par –option) ainsi que les options courtes comme -h ou -t.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
int parseCmd(int argc, char** argv)

{

int longIndex;
int opt = getopt_long( argc, argv, optString, longOpts, &amp;longIndex );
globalArgs.algorithm = 0;
while ( opt != -1 ) {
switch ( opt ) {
case 't':
if ( strcmp( "alg1", optarg ) == 0 ) {
globalArgs.algorithm = ALG1;
}
//...
if(globalArgs.algorithm == 0){
fprintf(stderr,"Invalid algorithm option, defaulting to alg5\n");
globalArgs.algorithm = ALG5;
}
break;

case 'v':
globalArgs.verbosity++; //-vv will set verbosity to 2 for example
break;

case 'h':   /* fall-through is intentional */
case '?':
displayHelp();
break;
case 0:     /* long option without a short arg */
fprintf(stderr,"case 0");
filtered = false;
if ( strcmp( "stdin", longOpts[longIndex].name ) == 0 ) {
globalArgs.fromStdin = true;
filtered = true;
}

if ( strcmp( "stdout", longOpts[longIndex].name ) == 0 ) {
globalArgs.toStdout = true;
filtered = true;
}
break;

default:
/* You won't actually get here. */
fprintf(stderr,"Error parsing arguments...");
return -1;
break;
}

opt = getopt_long( argc, argv, optString, longOpts, &amp;longIndex );
}
for ( ; optind &lt; argc; optind++) {
if (access(argv[optind], R_OK)) {
// c'est ici que l'on pourra récupérer, par exemple, un non de fichier en entrée et tenter de l'ouvrir
fprintf(stderr,"Non-option argument: %s\n",argv[optind]);
}
}
return 0;
}

L’appel à getopt_long() ne permet pas de récupérer un non de fichier (par exemple) autrement qu’avec -i fichier. Pour utiliser les arguments n’étant pas des options, il faut procéder comme ci-dessus en utilisant optind.

Catégorie : Uncategorized | Tag , , , | Commentaires fermés sur Parser la ligne de commande avec getopt_long()

KDevelop 4.0.0 est arrivé !

Il y a à peu près 4 ans, je me souviens encore avoir fait mes premiers pas avec Qt en utilisant KDevelop 3. Plutôt perdu dans les spécificités de Qt et pas très au point avec C++, j’avais très vite abandonné pour me tourner vers d’autres langages comme PHP ou Java.

Mais ces derniers temps, poussé par l’évolutivité impressionnante de KDE et quelques projets en C++, j’avoue avoir été de plus en plus impatient que KDevelop 4 sorte. Il faut dire que QtCreator m’avais fortement déçu (je le trouve assez incomplet).

Avec cette nouvelle version ayant nécessité cinq ans de développement, il faut s’attendre à d’agréables surprises… pour n’en citer que deux que j’ai découvert au lancement avec un projet C++:

  • importation des projets CMake
  • coloration individuelle des variables (int i: int j; par exemple, i et j seront de couleur différente)

Pour plus d’informations: http://www.kdevelop.org/

Bien entendu, je vais tester celà avec mes projets si tout se déroule bien. Je continuerai à faire part de mes surprises, agréables ou non.

Catégorie : Uncategorized | Tag , , , | Commentaires fermés sur KDevelop 4.0.0 est arrivé !