16 nov. 2010

Assembleur sur Macbook (Macintel)

J'ai pris comme option ce semestre "Langage d'assembleur et jeux d'instructions". Dans ce module nous nous rapprochons du hardware plus particulièrement de l'architecture 8086 d'Intel.
Les TP se font normalement sur les machines du Petit Valrose (des PC Core 2 Duo sous Fedora), mais comme j'ai un mac et que je suis assez aventurier (ce que je regrette des fois), je me suis dit que normalement ca ne devrait pas trop changer, c'est quand même un Core 2 Duo que j'ai dans le macbook.

9 nov. 2010

Livre de programmation fonctionnelle en Scheme

Je suis fier de vous annoncer que mon prof de programmation fonctionnelle Scheme vient de publier son livre de cours.
Le livre est disponible sur le site d'Eyrolles et coûte une trentaine d'euros.
C'est peu donné pour l'ampleur que couvre ce livre. On commence par les bases du fonctionnel, on fait ensuite de l'impératif, et même de l'objet ! Bref que de notions essentielles pour la programmation qui permettront d'avoir un bagage complet, et vous pourrez briller en soirée lorsque vous parlerez de paradigmes, d'analyse syntaxique ou d'induction :D
Je compte personnellement me le commander, car ce livre pourrait me servir de livre de chevet tellement il est complet. Il y a des concepts très pointus qui sont abordés, et la pédagogie employée permet de facilement comprendre ou de réapprendre beaucoup de choses !
Si vous voulez vous mettre a la programmation fonctionnelle en schème, c'est LE livre a posséder, il est simple a lire et surtout il est en français.
Si vous êtes etudiant en Science a Nice Valrose, il est fort a parier que vous tombiez sur Mr Roy lui même comme prof, ce que je vous souhaite pleinement ! Dans ce cas le livre est un excellent support qu'il ne faudra pas négliger.

- Posted using BlogPress from my iPad

Location:Rue Prémeynard,Bordeaux,France

1 nov. 2010

Aide mémoire GDB

Parce qu'en LAJI (Langage d'Assemblage et Jeux d'Instructions) ont est amené à debugger du code, on utilise ald. Manque de pôt ald ne fonctionne que sous linux, et ne fonctionne pas sous Mac OS X.

Mais il existe gdb qui est censé être utilisé pour débugger du C mais il se débrouille quand même assez bien avec de l'assembleur.

Alors je me suis fait une petite Cheatsheet au cas ou ^^:

 

  • usage: gdb hello.asm
  • start: lancer le débuggeur
  • si: executer l'instruction suivante (pas à pas)
  • info reg: afficher l'état de tous les registres
  • disassemble: affiche un dump du programme en mémoire
  • <Entrée>: re-input la commande précédente
  • x/ft addr: affiche ce qui est à mem[addr] au format ft
  • set: pour modifier un registre ou un endroit dans la mémoire. (set $eax=123)
  • stop: arrêter le debuggage
  • help: pour afficher l'aide

 

 

 

 

 

 

 

 

 

J'ai aussi trouvé un équivalent à readelf sous Mac OS X: c'est gobjdump, et il s'installe via Macports.

usage: gobjdump -p hello.o

 

21 oct. 2010

fichier de configuration d'Emacs pour OSX

Ces derniers temps je me suis mis a réutiliser plus intensément Emacs sous Snow Leopard. Et comme sous OSX il peut y avoir quelques soucis de configuration notament au niveau des touches, qui ne sont pas les même sous Linux par exemple, je me suis mis à la recherche d'un .emacs correct.
Chose pas facile, car pas beaucoup de gens à vrai dire utilisent Emacs sous OSX, ou seulement dans la langue de Shakespeare. J'ai décidé de partager le fruit de recherches intenses (haééé), pour fournir (d'abord à moi) à tout le monde un fichier de configuration qui pourrais vous être utile comme base d'une configuration Emacs.
Voici le fichier .emacs:
; themes
(add-to-list 'load-path "~/.emacs.d/plugins/color-theme-6.6.0/")
(require 'color-theme)
(eval-after-load "color-theme"
'(progn
(color-theme-initialize)
(color-theme-hober)))
;Activer la coloration syntaxique
(global-font-lock-mode t)
; Mettre un maximum de couleurs
(setq font-lock-maximum-size nil)
; Pour ne pas avoir à taper en entier la réponse yes/no
(fset 'yes-or-no-p 'y-or-n-p)
; Affichage des images et fichiers compressés
(setq auto-image-file-mode t)
(setq auto-compression-mode t)
; IMPORTANT - osx related
; sinon pas de square brackets ni de curly brackets !!
(cond ((eq window-system 'ns)
(setq mac-command-modifier 'meta)
(setq mac-option-modifier 'none))
((and (eq window-system 'mac) (boundp 'aquamacs-version))
(setq mac-command-modifier 'meta)
(setq mac-option-modifier nil)))
; pour le mode terminal (au cas ou)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
; j'add le dossier de flex-mode
(add-to-list 'load-path "/Users/paraita/.emacs.d/plugins/flex-mode/")
; j'add le dossier de g-client
(add-to-list 'load-path "/Users/paraita/.emacs.d/plugins/g-client/")
; je le load
(load-library "g")
; lazy load xD
(autoload 'flex-mode "flex-mode" "Major mode for editing lex files." t)
(setq auto-mode-alist
(append '(("\\.l$" . flex-mode)
("\\.ll$" . flex-mode)
("\\.lex$" . flex-mode)) auto-mode-alist))
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(gblogger-user-email "toto@gmail.com")
'(inhibit-startup-screen t))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)  
; fullscreen (patched)
(global-set-key (kbd "M-RET") 'ns-toggle-fullscreen)

19 oct. 2010

rencontre avec l'assembleur MacIntel

Ca commence bien... :/

MacBook-de-Paraita-Wohler% nasm -f macho hello.asm

MacBook-de-Paraita-Wohler% gcc -arch i386 hello.o -o hello

MacBook-de-Paraita-Wohler% ./hello

Hello eure

zsh: segmentation fault ./hello

MacBook-de-Paraita-Wohler%

18 oct. 2010

L'assembleur avec un macbook

Je suis une UEL ou l'on apprend l'assembleur pour processeur 8086.
Le professeur nous a conseillé d'utiliser une machine de la fac pour programmer mais étant curieux je me suis dis pourquoi pas essayer avec mon macbook ? de toute manière depuis que les mac sont passé sous architecture intel, je pense que ca n'est surement pas si différent que ca !
Pour commencer il faudra utiliser Nasm (Netwide Assembler), qui est disponible sur Mac. Je pense qu'il est possible de le compiler directement à partir des sources, peut être même qu'il y a un binaire disponible ? Mais j'ai opté pour macport, je l'installe donc avec:
sudo port install nasm
Il faut donc avoir déjà installé macport. Je suis sur qu'avec Fink c'est aussi possible de l'installer.
Il est recommandé d'utiliser gcc gnu, mais ca fonctionne très bien avec le gcc d'Apple.
J'ai trouvé ici un tutorial pour un Hello World en assembleur.
D'ailleurs il ne faut surtout pas oublier de spécifier l'architecture à nasm lorsque l'on va compiler notre source en fichier objet:
nasm -f macho helloworld.asm
Puis l'appel à gcc se fait par:
gcc -arch i386 helloworld.o -o helloworld
Chez moi j'ai du rajouter le flag -arch i386 car par défaut gcc s'attend à un fichier objet architecturé pour x86_64, or nasm retourne un fichier objet architecturé i386. Comme on fournit déjà le fichier objet à gcc, il ne fait que l'édition de liens, donc je pense qu'on peut passer par ld directement mais j'ai la flemme de chercher.
Par contre j'ai un soucis lors de l'execution du programme, une erreur de segmentation...

liens utiles:


21 sept. 2010

Vpn de l'université de Nice

Même si je n'ai encore jamais eu besoin d'utiliser un VPN, j'ai eu envie d'essayer celui de ma fac.
Pour tout vous dire les avantages dans mon cas précis de l'utilisation du VPN de ma fac m'échappent encore mais bon, ça pourrais vous servir.

La page nephi de la fac propose un guide d'utilisation du dit VPN mais il requiert l'utilisation d'un logiciel Cisco, disponible sur la même page.
Comme je n'ai pas envie d'avoir à installer cet utilitaire alors que Snow Leopard semble déjà pouvoir gérer un VPN j'ai cherché à savoir comment l'utiliser.

Sur la page nephi, il est demandé de télecharger le fichier VPN-Unice.pcf qui est en fait un fichier de configuration pour l'application VPN de Cisco. En l'ouvrant on se rend compte que c'est un bête fichier texte en clair et qu'il indique sur les informations de configuration de la connexion VPN.



Vous rencontrerez 2 soucis tout de même mais on va les surmonter plus loin.

Dans vos préférences système, cliquez sur le petit + qui va vous demander quel service ajouter à votre configuration réseau.

On va choisir l'interface VPN, et opter pour le type de VPN Cisco IPSec.


Sélectionnez votre VPN et réglons le premier problème qui est votre login.
Il faut savoir que le VPN est censé être utilisé lorsque l'on est détaché à un service, comme expliqué sur la page nephi. Mais cette même page n'indique pas le service pour les étudiants, qui est en fait etuval. Donc votre login serra de la forme toto@etuval, ou toto est votre login sésame. Votre mot de passe est le même que celui que vous utilisez pour vous connecter sur l'ENT par exemple. N'oubliez pas de renseigner l'adresse du VPN qui est indiqué dans le fichier VPN-Unice.pcf !



Ensuite passons aux réglages d'authentification du VPN:

Il requiert ici un code de groupe qu'il appelle "Secret partagé". En fait dans le fichier VPN-Unice.pcf le code y est mais encodé. J'ai trouvé grâce à Google une page qui propose de retrouver le code en clair avec la version encodé que vous aurez pris du fichier VPN-Unice.pcf à la ligne enc_GroupPwd.


Il faudra aussi renseigner le champ Nom du groupe avec UNICE (aussi indiqué dans le fichier VPN-Unice.pcf).


Il ne vous reste plus qu'à tout fermer, confirmer les nouveaux réglages.

Il est aussi possible de mettre dans la barre des menus une icône qui vous permettra en un clic de vous connecter/déconnecter du VPN.


Voilà !

2 avr. 2010

Xcode et Snow Leopard

S'il vous prend de coder avec Xcode, je vous rappelle que dans Interface Builder les actions et les outlets de vos objets ont bougé de l'inspecteur vers la library.

Voilà !



27 févr. 2010

Guess who's back !

Salut tout le monde !
On a repris les cours, et malgré un emploi du temps assez chargé, j'essaye de trouver le temps d'écrire ici et là.

J'attend toujours mes notes de seconde session, actuellement j'ai eu mon semestre mais comme pour l'année passé, j'essaye d'avoir la moyenne à chaque UEL. Du coup j'ai du repasser les épreuves d'Analyse II et de Statistiques (no kidding !).
Je m'en suis bien sorti grâce aux autres matières et j'espere avoir mes notes assez tôt pour vous les communiquer.

Les cours vont très vite, principalement de la programmation:

  • Python
  • C
  • Java
  • Prolog

De quoi faire une indigestion, mais c'est si bon ! Je me rend compte avec le recul que le langage importe peu lorsque l'on à une tâche à faire, "tout les chemins mènnent à Rome !" comme on dit.

Je profite de ma pause midi pour aller imprimer mes cours à la Corep à coté de la fac (pas de pub, c'est le plus proche) car ça aussi c'est une grande nouveauté de ce semestre, on ne nous distribue casiment RIEN, tout est en pdf, tout est en ligne (et des fois le cours ben c'est un fichier audio lol).

Depuis que je suis passé sous Snow Leopard, j'ai eu bien des tracas à compiler ou installer des applications que j'affectionnait particulièrement (Fluxus, PLT Scheme, Ffmpeg, mplayer, etc) et sauf erreur, ils ne sont pas encore compatible 64 bits sous le Snow Leopard.

Evidement les binaires existent dèjà mais subsistent des soucis comme l'impossibilité dans l'état actuel des choses de prendre le flux audio d'iTunes pour le mettre dans Fluxus ,avec Jack OSX 32 bits, tandis que la version 64 bits fait crasher Fluxus.

De plus je suis passé à la maison à une toute nouvelle configuration PC !

Adieu P4 3Ghz HT avec un FSB400 qui déconne aléatoirement !
Adieu carte mère toute poussièreuse (my bad :s) qui à un port AGP et deux misérables ports SATA I !
Adieu ram 2 Go DDR400 !

Welcome:

  • AMD Athlon II X4 630
  • 4 Go DDR3 1066
  • Carte mère avec 6 ports SATA II et port PCI-E 16x 2.0
  • Alimentation 650W modulaire


Alors voila, je vous tiens au courant :p !

19 janv. 2010

Bonne année 2010

Tout d'abord je sais que je n'ai pas été très présent cette fin d'année mais c'était pour de bonnes raisons (l'école), et j'ai préféré m'investir un peu plus sur les dernières mathématiques de mon cursus.
Enfin Bonne année tout le monde, et je promet un retour à un rythme plus normal :D !