Creative Commons License
.

Aller au contenu | Aller au menu | Aller à la recherche | Voir les modalités d'utilisation des travaux de l'auteur

Twitter à (encore) du mal fonctionner, je n'ai pas pu récupérer mes récentes activités :)
Page d'accueil rss Geekstories.fr La Boite à Vomi E-Generation Mon CV

lundi 23 août 2010

SegFaultProg: Premiere distribution Dispo, et site 80% ecrit!

[ Partager : Partager sur Digg ]
Salutations!

Voilà! J'ai enfin terminé le site repository de SegFaultProg, un langage de programmation dérivé du BrainFuck. La premiere distribution (1.3.0_Retro_beta i386) est disponible en téléchargement. Elle contient le moteur de la "VMA", une intégration à un terminal, un readme, et une DOC.

Prochaine étape, finir le moteur de dépot, et accumuler les versions par architecture... Voilà, ca se passe, ici!

mardi 3 août 2010

Je pars pour la pampa, session 2010

[ Partager : Partager sur Digg ]
Salutations!

Voilà, je pars pour la pampa pendant quelque jours avec les glandus. Au dessus, une magnifique photo de RMS découpée sur un fond d'écran ne portant pas de marque permettant d'identifier son auteur. C'est sur le forum LGDB qu'on m'a donné le lien. Ça se passe ici: Le Wallpaper
Superbe photo!

lundi 2 août 2010

Tixlegeek's Nothing else matter cover.

[ Partager : Partager sur Digg ]
Salutations!

Aujourd'hui, une "reprise" de "Nothing else matter", de Metallica. Le but n'est pas de rejouer le morceau, mais d'en faire une interprétation personnelle. J'ai enregistré ça vite fait chez moi il ya quelque temps, et je le trouvait joli!

Donc voilà de quoi il retourne:

dimanche 1 août 2010

[INFO] Interpréteur

[ Partager : Partager sur Digg ]
Information de parcour J'ai trouvé un nom et une charte graphique pour mon langage de programmation. Je suis entrain de faire un site de présentation/téléchargement. Plus de nouvelles d'ici peu!

vendredi 30 juillet 2010

The SysAdmin Day

[ Partager : Partager sur Digg ]

Encore une info pompée à TimGau... Today is the SysAdmin Day!

http://fashionablygeek.com/wp-content/uploads/2008/03/de-evolution-of-man-shirt.jpg
Happy SysAdmin Day!

mercredi 28 juillet 2010

Mon interpréteur BrainFuck perso

[ Partager : Partager sur Digg ]
Salutations!

Pour ceux qui ne connaissent pas ce merveilleux langage de programmation, il y a dans la note précédente, quelques exemples de code brainfuck. Le brainfuck, conceptuellement, c'est trop cool. Un seul registre, un jeu d'instruction tres réduite, et une utilisation tres proche des systèmes logiques. Et bien, en attendant d'avoir le courage de bidouiller un ordinateur brainfuck, j'ai décidé de coder ma propre version de ce langage!

Voilà, donc j'ai commencé par programmer un interpréteur simple, qui supportait toutes les instructions du brainfuck, pour ensuite le modifier. J'ai déjà implémenté deux ou trois fonctionnalités tres pratiques qui rendent bien service, comme le support des boucles imbriquées, et un incrément numérique des valeur du registres. Prochain étape, l'adressage "direct" du registre. Finalement, ça va s'apparenter à ce que je voulais faire (voir le billet sur mes projets en cours). Le brainfuck est vraiment tout indiqué, et est bien plus facile à interpréter que le BASIC (la conversion "langage->code" c'est trop la merde, et ca dépends trop de la finalité.).

Là, je pense être sur la bonne voie pour créer un langage pratique, rétro-compatible (il peut interpréter un code brainfuck), et léger (moins de répétitions, interpréteur simple=bug--). Je vais poster le code source de l'interpréteur, sous licence GPL (of course) et le langage lui même aussi j'espère.

Et bon surf!

lundi 26 juillet 2010

It's BrainFucking time !

[ Partager : Partager sur Digg ]
Salutations!

Grace à TimGau, qui a posté une de ses sources BrainFuck sur le réseau social totalitaire et bleu, j'ai eu le plaisir de re-goûter à ce merveilleux langage qu'est le BrainFuck. J'ai alors demandé à mon entité cérébrale nerd de me remettre en RAM les vicissitudes de ce dernier. Quel miracle, un langage si simple, et si poétique à la fois! Il regorge de concepts tout à fait intéressants d'ailleurs.

Pour rappel, le brainfuck permet de manipuler UN registre, d'afficher la valeur d'une cellule de ce registre, et de demander la saisie d'une valeur de cellule. Il dispose aussi de la formidable "[]" qui est une boucle conditionnelle.

Quelque petits codes BrainFuck

Signature Brainfuck
+++++ +++++ +++++ ++++
[>+++++<-]
+++[>----<-]>+.
<+++[>+++++++<-]>.     
<+++[>+++++<-]>.
<+++[>----<-]>.
<++[>---<-]>-.
++.
--..
<++[>+++<-]>.
Un petit compte à rebours avec retour-chariot
>+++++ +++
[<+++++ ++>-]<+
>>+++
[<+++>-]<+
>++++++++++.<
[<.->->.<]
Et son homologue, le compteur
>+++++ +++
[<+++++ +>-]<
>>+++
[<+++>-]<+
>++++++++++.<
[<.+>->.<]
Un petit programme mignon tout plein pour les sensibleries geekesques:
>++++++++++
[>+++++++<-]>+++.
<++[>-----<-]>---.
<++[>-----<-]>+.
<++++[>++++++++<-]>++.

Hm... Et c'est tout pour le moment. Je vais avoir le temps de brainfucker, je vous tiens au courant!

Vidéo de la Nuit Du Hack 2010

[ Partager : Partager sur Digg ]
Salutations!

Voici la vidéo résumant la nuit du hack de cette année :

Encore une fois, et, sans me répéter encore, Tres bonne soirée! Bien organisé, malgré la foule impénétrable s'agglutinant dans les salles de conférence, et l'absence de wifi la plupart du temps.

Surprise! Mes bras et mon PC (DooWeee) apparaissent sur la vidéo! J'étais alors entrain de bricoler mon framework graphique pour points d'accès, juste à coté de types qui tentaient de cracker une livebox (je ne leur ai été d'aucune aide... C'est frustrant ;) ) Et juste en face de moi, il y avait Korben (le brun/roux en polo rouge)

Voilà pour le deuxième post de la journée :)

Coder les fonctions usuelles des librairies standard du C

[ Partager : Partager sur Digg ]
Salutations.

Souvent, quand on est amené à manipuler de la mémoire en C, par exemple, lors que l'on a des chaines de caractères, ou que l'on doit analyser une structure "complexe" de données (images, etc...), on aimerait pouvoir résoudre de petits problèmes simples avec élégance... Si les librairies standard offrent de bons moyens de ne pas avoir à savoir coder, il est en revanche un constat accablant à faire: apprendre à bien coder éviteraient parfois de belles bourdes.

Je n'ai pas la prétention d'avoir des leçons a donner. Mais finalement, pourquoi ne pas diffuser un peut ce qui me semble utile?

Je propose donc de donner quelques exemples commentés de fonctions usuelles codées dans un style élégant, qui pourraient vous permettre d'enfin apprécier de faire un code découlant d'une logique implacable. Et le code logique et pur, c'est beau.

Strlen

strlen (string lenght) est une fonction définie dans le header de la librairie standard string.h, et ayant pour prototype "size_t strlen(const char *s);". Son role est de renvoyer la taille d'une chaine de caractères (nombres de caractères contenus dans la chaine). Une chaine correspond en réalité à un pointeur, donnant accès à une plage de caractères, et dont la fin est déterminée par un \0 (valeur à 0). Le pointeur donne l'emplacement mémoire du premier caractère de la chaine.

Comme je le disait plus haut, le C permet une manipulation de la mémoire très propre, et bien intégrée. On pourra donc coder notre fonction de strlen en utilisant les pointeurs et leur syntaxe:


/* (c)Tixlegeek 2010 - GPLv3  */
int strlen(char *str)
{
   int i=0;
   while(*(str+i)){i++;}
   return i;
}

Malgré qu'il puisse etre un peut intimidant pour les débutants (et c'est normal, ya des pointeurs :) ) on peut aisément l'expliquer et le comprendre:


int strlen(char *str)
{
   int i=0;   Déclaration de la variable i et initialisation à 0
   while(*(str+i)){i++}  Tant que la valeur *(str+i) (=valeur à l'adresse str+i) est supérieure à 0, on incrémente i.
   return i;   On est arrivé à un 0, on retourne donc la valeur de i, qui correspond au nombre de caracteres parcouru dans la boucle précédente.
}

ltrim

OOPS! L'ami Mathedit m'a fait remarqué à juste titre que ma fonction ne marchait pas! (je flagellerai ma chaire impure avec une courge molle ce soir, c'est promis) Et m'en a fait la démonstration. Je ne suis pas encore certain des circonstances du bug, mais à l'évidence, ca plante. Ce n'est que partie remise! Et merci à mathedit

Voilà. Ces deux fonctions permettent de comprendre un peut mieux l'utilité des pointeurs, et en quoi ils peuvent nous changer la vie. Ce ne sont que des exemples, mais le haut niveau n'empêche pas d'avoir à savoir programmer un minimum!

vendredi 23 juillet 2010

[Reverse engineering d'enseigne lumineuse] Idée pour la suite: la boite à lambert

[ Partager : Partager sur Digg ]

Salutations!

Je viens de recevoir mon nouveau programmateur de PIC, et suis en passe de le faire marcher sous GNU/Linux. J'ai donc commencé à m'intéresser sérieusement à ce que j'allais faire de l'enseigne lumineuse dont j'ai fait la description ce moi ci. Et j'ai eu une idée tres intéressante: La boite à lambert.

Tout est partit de cette vidéo:

Hohoho

Et donc j'ai trouvé ce dont j'avais besoin, l'entregistrement ultime, retravaillé à partir d'une vidéo de youtube, avec ffmpeg (extraction de la bande sonore) et Audacity (troncature et amélioration)

Je vais donc m'atteler à trouver un PIC en DIP8 avec un oscillateur interne, et une sortie PWM matérielle... Pour pouvoir envoyer le fichier ré-échantillonné dans la mémoire du chip. La PWM, un aop, et un condo feront le reste. Bref!

La suite au prochain épisode.

jeudi 22 juillet 2010

Un petit peu de PUB sur mon blog.

[ Partager : Partager sur Digg ]
Salutations!

Je me suis rendu compte que, mine de rien, mon petit Blog plaisait à quelque personnes. Et ça se traduit en particulier par une fréquentation de plus en plus soutenue. J'ai décidé de tenter deux expériences:

  • Installation d'un bandeau publicitaire en haut de page: Voir s'il me serait possible de financer l'entretien du blog (Hébergement, nom de domaine, sauvegarde) et/ou, quelque projets. J'essaye de faire en sorte que ça ne gêne pas la lecture, et que es lecteurs (vous =) ) ne soient pas agressés par des tracts religieux ou politiques. Entant qu'utilisateur, je sais à quel point c'est chiant.
  • Un bouton d'intégration facebook sur le site, et les articles: Si des gens aiment ce blog, j'aimerai le savoir. Je sais que beaucoup de personnes viennent voir mon blog, et qu'un bon tiers d'entre eux sont des "habitués". Mais connaitre vos opinons, ca m'intéresse, et je sais qu'on ne pense pas forcément à laisser un commentaire, ou qu'on en a pas forcément envie.
  • Voilà! Faites moi part de vos impressions en utilisant le boutton "j'aime", et n'hésitez pas à utiliser les bandeaux publicitaires!

dimanche 18 juillet 2010

Les Chips asiatiques

[ Partager : Partager sur Digg ]

Oui, comme tous les bidouilleurs, je suis une victime du système.

vendredi 9 juillet 2010

Reverse engineering: Les enseignes lumineuses : Contre temps ù__ù

[ Partager : Partager sur Digg ]
image

Je me suis rendu compte, hier, en avançant un peut dans mon reverse d'enseigne lumineuse, que mon programmateur de PIC chinois ne supportait pas les 12F508 !!!!!! et ce, même après quelques modifications... J'en ai commandé un autre pour voir, espérons que je ne sois pas obligé de tout bonnement changer le µC pour une version mieux supportée u___u...

Mais je crois avoir réussi à dumper le firmware, vous en saurez plus d'ici quelques jours!

vendredi 2 juillet 2010

Interlude musical

[ Partager : Partager sur Digg ]

Aujourd'hui, un ptit peut de musique pour se détendre, et oublier la chaleur torride de cet été de montagnard. Waaaahaannnn, black betty!!!! bam a lam...

mardi 29 juin 2010

Reverse engineering: Les enseignes lumineuses

[ Partager : Partager sur Digg ]
Mesdames messieurs, bonsoir.

Depuis ma plus tendre enfance, je ne peux m'empêcher de récupérer toute sorte de bidules électroniques... Que ce soit pour voir ce que ces trucs contiennent, pour récupérer des pièces, ou juste pour en faire autre chose. Du coup, j'hérite souvent par le biais de ma môman, de petits bidules publicitaires, et d'autre trucs sympas (oui, j'ai la vingtaine) en provenance des commerçants du coins (j'ai souvenir d'un énorme écriteau publicitaire comportant 90 LED bleues HL, un vrai bonheur).

Malheureusement, ces petits bidules sont en général tout juste bon à être démantibulés. Leur petits µC "goutte noire" ne permettant pas, en général, de les reprogrammer, ou de les utiliser très intelligemment. Dommage!

Mais hier, un bidule un peut particulier m'est arrivé entre les mains (encore môman). Ce n'était pas qu'un simple bidule clignottant. Non. Ce bidule la, aspirait à devenir bien plus! En regardant l'électronique de plus près, mon sang n'a fait qu'un tour.

Un gros µC en DIP8 en plein milieu! Mais, qu'est-ce? Un double AOP monté en intégrateur pour faire varier la luminosité des LEDs? Probablement pas... Les LEDs clignottent quand on les bouge rapidement, ce qui induit l'utilisation d'un rapport cyclique. Il faudrait au moins 3 AOP pour faire ca en analog, et en DIP8, c'est impensable... Qu'est-ce donc alors? *prends ses yeux macros* MAIS C'EST UN PIC!!!!

Et oui, un PIC, qui l'eu crû? Pas moi en tous les cas. Ma premiere réaction fût de regarder s'il s'agissait d'un modèle ré-inscriptible (xxFxx).. Et bien, croyez le ou non, mais, oui... Et alors? REVERSIIIIIIING!

Le PIC est un 12f508 (que je ne connaissait pas). Il est entouré de deux résistances, un condo, un transistor. Les évidences à en tirer sont donc :

  • Le 12F508 doit disposer d'un oscillateur interne (bon point)
  • Le transistor est controlé par la seule sortie câblée du PIC, et sert sans doutes à driver les LEDs
  • Le condo est une capa de découplage
  • Le circuit est gros, je vais pouvoir souder pleins de fils comme un gros goret.

Toutes ces conclusions de premier abord sont confirmées et précisées par la datasheet du PIC. L'oscillateur interne est à 4mhz. On remarque aussi, sur le PCB, l'URL du site du fabriquant: Led.de.
Il va maintenant être temps de dresser le schéma de la carte. Je l'ai fait en intégralité puis-ce qu'elle n'est pas très compliquée. puis, ça va m'être utile pour câbler un ICSP propre par la suite, et tirer les sorties.

On ne peut plus simple. On remarque surtout que si l'on veut reprogrammer cette petite platine, on à plusieurs solutions:

  • Retirer le PIC, le reprogrammer, le remettre en place (et recommencer à chaque programmation --> chiant et nul)
  • Cabler un port ICSP pour le reprogrammer in-situ, et conserver toute l'intégrité du bordel. (sympa et cool =) )
  • Lui faire le coup du micro onde chamanique (n.b. je viens de l'inventer, n'essayez pas)
Comme tout bon gros geek qui se respecte, je choisis la manière belle et cool (ICSP). En plus, avec des jolis fils de toutes les couleurs, ça aura fier allure, et je pourrai me la péter.

Voilà donc ce que va me donner le cablage ICSP :

Et, déjà, là, ça a de la gueule (croyez le, s'il vous plait)

La suite: Quand je serai retourné chez moi, et que j'aurai récupéré mon fer à souder et mon programmateur de PIC. See you next week!

Creative Commons License
Les travaux signés "Tixlegeek" by DUBIEF Gery sont mis à disposition selon les termes de la licence Creative Commons Paternité-Pas d'Utilisation Commerciale-Partage des Conditions Initiales à l'Identique 2.0 France.

Pour toute modifications apportées, merci de mentionner l'auteur d'origine, et l'adresse de ce blog.