23 septembre 2011

UEFI secure booting

Est-ce que le démarrage de sécurité UEFI que M$ veut imposer avec Windows 8 pourra gêner l'installation de Linux sur les nouvelles machines estampillées Windows 8 ? - Non, à condition que le démarrage de sécurité puisse être désactivé (de la même manière que l'on change le paramétrage du bios). - Oui, si on veut un dual boot Linux/Windows 8 (à moins peut-être d'activer le démarrage de sécurité quand on veut Windows 8 et de le désactiver quand on veut Linux?). - Non, même en dual boot si Canonical, Redhat, Debian... arrivent à... [Lire la suite]
Posté par InPhilly à 23:44 - Commentaires [0] - Permalien [#]

30 juin 2011

region free - region hack for DJIX PVS 702 40L

I bought the small DJIX PVS 702 40L dvd player for its dual screens. My kids brought back a stack of dvd from Philadelphia, their favorite Curious George, Babies, Tomas and Friends... So I had to find a hack (to keep my twins quite during the long journey on the A7). Perhaps, it could be useful for some of you. So here is the easy hack: - Power on the player. - Open the tray. - Press Setup button (on the remote control). - Press Right arrow button 3 times (on the remote control). - Press 9 6 5 3 (on the remote control). Now, you... [Lire la suite]
Posté par InPhilly à 22:01 - - Commentaires [1] - Permalien [#]
30 juin 2011

Dézonage du lecteur DJIX PVS 702 40L

J'ai fait l'aquisition du petit lecteur de dvd portatif double écrans DJIX PVS 702 40L. Mes enfants ont une pile de dvds qu'ils ont emportés avec eux de Philadelphie. Il a m'a donc fallu trouvé le code de dézonage. Je pense que cela pourrait intéresser quelques personnes alors le voiçi la procédure: - Mettre le lecteur sous tension. - Ouvrir la porte. - Appuyer sur setup (télécommande). - Appuyer sur la flêche droite 3 fois (télécommande). - Composer 9653 (télécommande). Le menu secret doit apparaitre. - Avec les flêches haut /... [Lire la suite]
Posté par InPhilly à 21:31 - - Commentaires [5] - Permalien [#]
23 juin 2011

Vala: Les fonctions qui retournent null et les fonctions qui plantent avec null

Je vais lister sur ce billet les fonctions et opérations qui peuvent générer une erreur de segmentation (segmentation fault) avec Vala. Cette liste sera complétée à l'occasion. A - Fonction qui plante lorsqu'elle reçoit une chaine non référencée (null): int.parse(str)  si str = null alors un segment fault est généré. var strB = strA si strA = null et que valac traduit cette affectation par un g_strdup (ce n'est pas systèmatique). B - Opération qui plante lorsque les bornes sont dépassées: string[] strA={"abc","def","ghi"} ... [Lire la suite]
Posté par InPhilly à 14:25 - - Commentaires [0] - Permalien [#]
23 juin 2011

les risques d'erreur de segmentation en Vala

Vala est moins succeptible aux erreurs d'allocation mémoire, aux erreurs de segmentation que le C. Mais quelques risques subsistent. Dans mon précédent billet, je vous ai parlé du problème du split, dans celui-ci je vais abordé le problème des tableaux, et en particulier lorsqu'on dépasse les limites du tableaux. Prenons le petit exemple qui suit: string[] str = {"ABC","DEF","GHI"};message(str[5]); La table str ne contient que 3 chaines, et on tente d'accèder à une chaine en position 5. À l'execution du programme, on obtiendra un... [Lire la suite]
Posté par InPhilly à 09:18 - - Commentaires [0] - Permalien [#]
22 juin 2011

string.split n'aime pas le pointeur null

Les trois lignes ci-dessous vont générer un 'segmentation fault" string strA = null; var strB = strA.split(" "); var strC = strB[0]; g_strsplit détecte que le pointeur sur la chaine est nulle et donc le pointeur sur strB se retrouve non initialisé. Lorsque le programme va tenter un g_strdup  ( pour copier strB[0] dans strC ), le programme crash. Voici l'extrait du code C produit par Valac:     gchar* strA;    gchar** _tmp0_;    gchar** _tmp1_ = NULL;    gchar**... [Lire la suite]
Posté par InPhilly à 19:03 - - Commentaires [0] - Permalien [#]

15 juin 2011

Vala, c'est trop bien!

J'ai passé trois jours à developper un petit programme avec Vala. Un vrai plaisir a écrire environ 400 lignes de code sans aucun pointeur, sans avoir à gérer l'allocation et la désallocation de la mémoire, avec des instructions puissantes. Bref, en codant pratiquement en C#, tout en conversant les performances du C.Vala, c'est vraiment bien! Le code est là: http://sourceforge.net/projects/openbotamsr/files/decision-linear-classifier-based/  
Posté par InPhilly à 13:08 - - Commentaires [0] - Permalien [#]
05 juin 2011

Flash back

En débarassant des cartons entreposés depuis plus de dix ans, je suis tombé sur livre que j'avais totalement oublié "Linux Un système surpuissant de l'éditeur Sybex". Edité en 1998, il proposait un RedHat 5.0 sur un CD-ROM. Je n'ai pas résisté au plaisir de feuilleter encore une fois ce gros bouquin à la couverture jaune, et ce malgré son odeur de moisissure. 1998, c'était l'année de mes premier pas avec Linux, j'ai débuté avec cette distro de RedHat, je m'en souviens de cette installation pas très évidente et des paquets RPM qui me... [Lire la suite]
Posté par InPhilly à 00:09 - - Commentaires [0] - Permalien [#]
03 juin 2011

Fonction de recherche avec table de hachage

J'ai modifié la fonctions gnu hsearch_r pour permettre la suppression d'enregistrements et j'ai ajouté une fonction qui permet d'agrandir la table. Le paquet hashsearch.tar.gz est ici: http://sourceforge.net/projects/openbotamsr/files/utilities/ hashsearch_r comme hsearch_r permet d'ajouter une entrée, de rechercher une entrée, de modifier les données d'une entrée; mais permet en plus de supprimer une entrée (retval->key=NULL) : extern int hashsearch_r (HENTRY __item, ACTION __action, HENTRY **__retval, struct hsearch_data... [Lire la suite]
Posté par InPhilly à 23:16 - - Commentaires [0] - Permalien [#]
21 mai 2011

Un complément à hdestroy_r pour libérer la mémoire.

Le problème de hdestroy_r, c'est qu'il ne libére pas la mémoire qui a été allouée pour y stocker les clés et les données ( comme par exemple: entry.key = strdup(motcle); entry.data = strdup(donnee); ). Une première solution est de créer une table qui contiendra les clés et les données, et ainsi de ne fournir à entry.key et entry.data que les pointeurs sur cette table, ainsi: entry.key=key_tab[i]; entry.data=data_tab[i];  Une deuxième solution est d'exploiter la structure hsearch_data pour accéder... [Lire la suite]
Posté par InPhilly à 19:42 - - Commentaires [0] - Permalien [#]