jeudi 24 décembre 2009

Joyeux Noël

A tous mes lecteurs,
Habitués et Occasionnels,
Contributeurs et Commentateurs,

Je vous souhaite à tous un

Joyeux Noël

jeudi 17 décembre 2009

Passerelle entre un serveur Apache et une Application

Bonjour,

Aujourd'hui je vais tenter de vous montrer comment utiliser le protocole HTTP pour le détourner à vos propre besoin.

Tout le monde le sais, le protocole HTTP est très utilisé. C'est le protocole qui est le plus souvent autorisé à passer simplement au travers des nombreuses protections actuelles (proxy, firewall, etc...)

Plus tôt que de vous livrer du code, je vous livre une methodologie. Je vous la livre telle que je l'ai utiliser pour l'un de mes progiciels.
L'utilisation de requête HTTP est simple mais peu aussi se révélé peu sécurisée. En premier lieu il ne faut pas utiliser cette méthode pour le transfert de donnée sensible.
La première chose à faire est d'interdire l'accès au navigateurs sur les API accessibles depuis l'application. L'API doit refuser de répondre à quiconque ne disposant pas de l'Agent ID voulu.
Après la vérification de l'Agent ID, nous utiliserons les entêtes HTTP pour faire transiter les données.
Le nom des entêtes commence par X et ressemble à ceci : X_PRODUCT_ID par exemple. Du côté PHP elle sera acessible dans la variable surper globale $_SERVER['HTTP_X_PRODUCT_ID'].
Même chose pour les réponses, PHP retourne certaines données telle qu'une erreur via une entête (ex. header('X_API_ERROR: Erreur 2 !')). Laissant ainsi le corps de la réponse disponible pour un fichier XML qui pourra être traité par le logiciel ayant envoyé la requête.

L'avantage de ce cette méthode est que sont implémentation en Cocoa sur Mac Os X et est rétro-compatible avec Mac Os X 10.0 à 10.6 ! Elle est également rapide à mettre en oeuvre avec QT 4.5 !
Rendant ainsi le développement de logiciel serveur réduit à une API pouvant utilisé un framworks. Une limitation de taille est également présente. Il n'est pas possible d'envoyer une requette HTTP de plus de 2Go tout compris. Dans ce cas, rien ne vous empèche de tranférer par morceau !

vendredi 27 novembre 2009

Entre QT et Cocoa : QTableWidget vs. NSTableView

Aujourd'hui, je vous propose un petit comparatif pas très équitable. Je dit cela car mon expérience en QT4 est largement inférieur à celle que j'ai en Cocoa.
Cependant, je préfère largement Cocoa sur la gestion de l'affichage des données dans un tableau.
Les différences :
- Cocoa utilise un objet qui est "passif" (se contente de répondre à des demandes) alors que QT4 oblige le développeur à remplir le tableau à la main !
- En QT4, il y a une différence entre la ligne active et la ligne sélectionné, je vois pas pourquoi !
- En QT4, si on souhaite bloquer la sélection à une simple ligne cela implique une sélection obligatoire
- En QT4, vous sélectionnez une cellule pas une ligne !
- En QT4, la ligne sélectionné peu vous poser des problèmes quand vous souhaitez rafraîchir le contenu de la table.
- Lors de l'ajout d'une ligne il faut créer soit même la ligne et ajouter les objets pour chaque cellule.
- Par contre, en QT4 la table est bien plus souple et plus configurable. Mais à quel prix !
- En Cocoa, le changement de sélection renvoie un message au delegate, en QT4 la selection d'une cellule appelle une fonction.

Il y a de forte chance que j'utilise mal les QTableWidget. Mais je trouve aussi que c'est un peu le basard dans la façon de faire. Il y a un peu de MVC et du "fait tout toi même" !

Un souhait de cadeau : Cocoa en multi-plateforme ! Apple ?

mercredi 25 novembre 2009

Créer un cluster Apache 2

Aujourd'hui je vais vous montrer comment faire pour mettre en place un cluster de 3 machines virtuelles avec Apache. Chacune des machines dispose de la même configuration logiciel. Je me concentrerais plus sur la configuration des machines.

La première chose à faire est de déterminer les adresses ip des 4 serveurs.
Serveur hôte : 192.168.0.2
Cluster 1 Server 1 : 192.168.0.3
Cluster 1 Server 2 : 192.168.0.4
Cluster 1 Server 3 : 192.168.0.5

Dans ce post, je suppose que vous savez configurer et créer une machine virtuel sur virtualBox, que vous savez installer une debian, utiliser SSH, utiliser pico et connaissez les commandes de base pour la navigation dans les fichiers sur Linux.

Quelques précisions sur la configuration et le système utilisé :
- La distribution Linux utilisé est une Debian Lenny (5.0.2).
- Le dossier DocumentRoot des 3 machines du cluster est stocké sur le serveur hôte. L'accès ce fait par NFS.
- Le dossier de stockage contient les sous dossiers suivants : wData qui contient les pages web; wLog qui contient les fichiers log Apache ; wSession contient les fichiers de sessions PHP et wConf qui contient une sauvegarde des fichiers de configuration.
- La configuration Réseau des machine virtuel est en mode "pont".
- Lors de l'installation du système nous utilisons tout le disque dans une seule partition (disque de 4Go).
- Les éléments installés avec le système sont "Serveur Web" et "Système de base".
- Après l'installation, la première chose à faire est d'installer "openssh-server" et "php5-mysql" pour permettre l'accès au serveur en SSH et activer le support de MySQL dans PHP5.

La machine hôte est un serveur fonctionnant sur Mac Os X Server (10.5). Nous disposons d'une partition nommé Data dans laquelle ont stock toutes les données. Dans cette partition nous allons créer un dossier "wVirtual" qui sera partagé via NFS. Ce dossier contiendra les données pour les serveurs apaches des machines virtuelles. Dans ce dossier nous allons créer "wCluster1" qui contiendra les données pour les 3 machines du cluster. Puis l'arborescence telle que décrit plus bas.
Pour effectuer le partage NFS du dossier wVirtual, il faut utiliser l'utilitaire "Server Admin".
Dans les options du partages, choisissez :
- (Cocher) Exporter cet élément et son contenu vers "Liste de clients"
- Dans la liste ajouter toutes les adresses IP des postes ayant besoins d'y accéder. Dans notre cas, la liste se limite au 3 serveurs du cluster.
- Mappage : de Root à Root
- Sécurité mnimal : Quelconque (Any)
- Décocher "lecture seule"
- Cocher "Autoriser le montage des sous-répertoires"
- Valider et sortir.
Dans le terminal nous allons créer un fichier de configuration apache pour qu'il gère le cluster.
Nous créons le fichier avec la commande : sudo pico /etc/apache2/sites/0003_192.168.0.2_80_cluster.exemple.com.conf
Voici le contenue du fichier :

<virtualhost>
ServerName cluster.exemple.com
ServerAdmin admin@exemple.com
DirectoryIndex "index.html" "index.php"
CustomLog '|/usr/sbin/rotatelogs "/var/log/apache2/access_log_app2" 604800 60' "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
ErrorLog '|/usr/sbin/rotatelogs "/var/log/apache2/error_log_app2" 604800 60'
<IfModule mod_proxy_balancer.c>
ProxyRequests off
<proxy *>
Order deny,allow
Allow from all
</proxy>

<proxy "balancer://cluster1">
ProxySet lbmethod=byrequests
BalancerMember http://192.168.0.3/
BalancerMember http://192.168.0.4/
BalancerMember http://192.168.0.5/
</proxy>
ProxyPass / balancer://cluster1/
ProxyPassReverse / balancer://cluster1/
</ifmodule>
</virtualhost>


Sur chacune des machines du cluster :
ouvrez une session en tant que "root" (via SSH ou en console) :
- puis éditez le fichier "interfaces" : pico /etc/network/interfaces
- sur la ligne : "iface eth0 inet dhcp", changer "dhcp" en "static"
- en dessous ajoutez les lignes : "address", "netmask" et "gateway"
pour la première machine cela donne :
iface eth0 inet static
address 192.168.0.3
netmask 255.255.255.0
gateway 192.168.0.1

- Une fois modifié sortir en enregistrant
- Puis rebooter la machine
- Après le reboot, ouvrez une session en tant que root
- Créer le dossier de montage pour le partage NFS : mkdir /mnt/wData
- Changer les droits d'accès : chmod 777 /mnt/wData
- Éditer le fichier "fstab" : pico /etc/fstab
- Ajouter une ligne : 192.168.0.2:/Volumes/Data/wVirtual/wCluster1 /mnt/wData nfs defaults 0 0
- Enregistrer en sortant du fichier puis faite : mount -a
cela aura pour effet de monter les partitions non monté (tel que le partage)
- Maintenant il faut modifier la configuration d'Apache 2 pour aller chercher les documents au bon endroit. Pour cela : pico /etc/apache2/sites-enabled/000-default
- Changer les lignes : "DocumentRoot /var/www/" en "DocumentRoot /mnt/wData/wData/"
- et "<directory /var/www/>" en "<directory /mnt/wData/wData/>"
- et "ErrorLog /var/log/apache2/error.log" en "ErrorLog /mnt/wData/wLog/error-cl1s1.log" le s1 de la fin signifiant serveur 1.
- et "CustomLog /var/log/apache2/access.log combined" en "CustomLog /mnt/wData/wLog/access-cl1s3.log combined"
- Sortir en enregistrant
- Maintenant il faut indiquer à PHP le nouveau lieu de stockage des fichiers de session.
- Éditer le fichier php.ini : pico /etc/php5/apache2/php.ini
- Ajouter ceci en dessous de la ligne d'exemple : "session.save_path = /mnt/wData/wSession"
- Sortir en enregistrant les modifications
- La configuration est terminé il faut maintenant que le serveur la prenne en compte.
- Un petit test pour eviter les catastrophes : apache2ctl -t
- Il doit répondre "Syntax OK". Si ce n'est pas le cas, vérifier la modification du fichier 000-default
- si c'est OK, exécuter : apache2ctl graceful
Le serveur redémarre en n'indiquant rien.

Petit test dans un navigateur en se rendant sur la page : 192.168.0.3 puis les autres serveurs.
Puis le tests final est d'accéder au domaine configurer : http://cluster.exemple.com

Comme à l'accoutumée, j'attends vos réactions !

vendredi 23 octobre 2009

Créer une fenêtre d'attente efficace en Objective-C

Avant de rentrer dans la façon de faire, voyons déjà le pourquoi.
Certain utilisateur sont déjà abituer a voir une fenêtre d'attente pendant l'ouverture du logiciel. Le premier logiciel qui me viens a l'esprit (et qui utilise ce genre de fenêtre) est Photoshop.
Maintenant, voyons les critères pour justifier l'utilisation de ce genre de fenêtre.
Il faut que je logiciel mette un certain temps à ce lancer (plusieurs secondes), que la fenêtre puisse s'ouvrir le plus tôt possible (pour donner une impression de réactivité élevé du logiciel) et enfin qu'elle disparaisse dès que le logiciel est près à l'utilisation.

Maintenant, entrons dans le vif du sujet et voyons comment s'y prendre en Objective-C. Cette méthode expliquée ici n'utilise pas de fichier NIB pour la fenêtre car jugé trop long à charger. Nous allons donc la créer à la main (dans le code). Cependant, nous ne somme pas devin et les coordonées et tailles des objets ne vons pas sortir comme ça. Pour cela nous utiliserons Interface Builder pour modéliser visuellement le résultat et ainsi obtenir les informations manquantes.

Tout logiciel dispose d'une class principale qui sera chargé en premier. En général elle se nomme AppController.

Dans le fichier d'entête '.h' nous alons ajouter une variable d'instance:
NSWindow * startscreen;

Maintenant, dans le fichier '.m' nous allons ajouter le code de création de la fenêtre dans la méthode -(id) init. C'est la première à être appelée après alloc.
NSRect frameWindow=NSMakeRect(10.,50.,560.,350.); //définition de la taille de la fenêtre
startscreen=[[NSWindow alloc] initWithContentRect:frameWindow
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO
screen:[NSScreen mainScreen]];//création de la fenêtre
//paramétrage de la fenêtre. Elle affiche une image.
[startscreen setBackgroundColor:[NSColor windowBackgroundColor]];
[startscreen setHasShadow:YES];
NSImage * image=[NSImage imageNamed:@"monimage.png"];
NSImageView * iv=[[NSImageView alloc] initWithFrame:NSMakeRect(0.,0.,560.,350.)];
[iv setImage:image];


[[startscreen contentView] addSubview:iv];
[startscreen center]; //centrage de la fenêtre
[startscreen makeKeyAndOrderFront:self];//affichage de la fenêtre
//enregistrement au notification center que je souhaite être averti de la fin du lancement de l'application
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidFinishLaunching:) name:NSApplicationDidFinishLaunchingNotification object:nil];

Puis dans sous la méthode init, nous ajoutons la fonction lié à l'événement de fin de chargement de l'application:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{
[startscreen close];
}


Et voilà! En quelques lignes de code vous disposez d'une magnifique fenêtre d'attente sans barre de titre, centré et composé uniquement de l'image. A vous de l'agrémenter à votre grès.

mardi 13 octobre 2009

Comment activer TimeMachine sur un NAS

Pour permettre à Time Machine de sauvegarder via le réseau sur autre chose que les Time Capsule d'Apple, il suffit d'exécuter une petite ligne de commande. Attention toute fois, cela n'est pas supporté par Apple !

Source : http://www.engadget.com/2007/11/10/how-to-enable-time-machine-on-unsupported-volumes/

lundi 12 octobre 2009

Mactonique IDE 0.3.9 + Bug

Pour ceux qui ne l'aurait pas remarqué la version 0.3.9 de Mactronique IDE est disponible depuis quelques temps. cependant un bug plutôt gênant a été découvert dans cette version.
Après avoir crée un nouveau fichier, mieux vaut l'enregistrer, le fermer pour le réouvrir. Car en dehors de cette manipulation tout le contenu du fichier sera efface lors de l'enregistrement.
Ce bug était déjà présent dans une version ultérieur mais avait été corrigé. J'espère pouvoir trouver une solution à ce problème rapidement.

jeudi 13 août 2009

Mactonique IDE 0.3.8

Le développement va vite ! La version 0.3.8 apporte son lot de nouveautés mais corrige également des bugs de la version précédente. Sortie semble-t-il un peu vite.
La mise à jour ne se fait qu'à partir du logiciel ou via Bodega.

MAJ:

Si vous avez utilisé le script unInstallMTIDE2 pour tout supprimer et réinstaller proprement, un petit problème vas se poser lors de la tentative de compilation d'un fichier C.

SDCC cherche GPASM et GPLINK dans le dossier /usr/bin/ alors qu'ils sont dans /usr/local/bin/
Pourtant avec le teminal il n'y a aucun problème de compilation. Pour résoudre se problème, executez cette commande dans le terminal :
sudo ln -s /usr/local/bin/gp* /usr/bin/
Elle aura comme effet de créer un lien symbolique pour chacun des fichiers commencant par gp et ce trouvant dans /usr/local/bin/

Fin MAJ

Comme a l'accoutumée, j'attends vos retours d'expérience.

PS: les développements future arriveront que si j'ai des retours d'expériences. Un don ne peut pas faire de mal non plus !

jeudi 6 août 2009

Mactonique IDE 0.3.5 est sortie !

J'ai le plaisir de vous faire part de la sortie de Mactronique IDE version 0.3.5. Elle est disponible au téléchargement via le site Mactronique.com ou via le menu "Mactronique IDE >> Check for Updates..." du logiciel (version 0.3.0).

Cette version apporte :
- Numérotation des lignes
- Personnalisation des couleurs de l'éditeur
- Coloration syntaxique
- L'auto fermeture des parenthèses et accolades
- L'auto indentation
- Indentation automatique des accolades
- Personnalisation des couleurs des logs
- Information sur les outils installés
- Installation des outils complémentaires
- Interface de mise à jour de PICKit 2 OS Firmware
- Interface PK2CMD pour la programmation d'un PIC

Cette version est encore en développement ! N'hésitez-pas à faire remonter les informations soit en écrivant un commentaire, soit par mail, soit sur les forums de Mactronique.

Je souhaite stabiliser cette version avant d'ajouter d'autre options. Les modifications ont été nombreuses et pose encore quelques problèmes. Merci de votre aide et votre générosité.

mardi 4 août 2009

Mactonique IDE 0.3.5

Voici quelques images de Mactronique IDE 0.3.5.
Cette version apporte :
- Numérotation des lignes
- Personnalisation des couleurs de l'éditeur
- L'auto fermeture des parenthèses et accolades
- L'auto indentation
- Indentation automatique des accolades
- Information sur les outils installés
- Installation des outils complémentaires

Il reste à faire :
- refaire la coloration syntaxique selon différent type de document (http://www.icu-project.org/apiref/icu4c/index.html)
- lancer la programmation d'un PIC d'un programme C ou ASM dans l'interface dédié
- édition d'un programme ASM







dimanche 2 août 2009

Mactronique IDE avance vite !

C'est vrai, ça avance vite quant on y travail et que l'on sait ou l'on vas !

Et bien voilà les nouveautés dans Mactronique IDE :
- Installation des outils complémentaires (menu : File >> Install Complement tools...)
- Vérification des versions (menu : Mactromique IDE >> About Tools...)
- Préférence permettant de changer les couleurs du texte écrit dans les log

Cette version est la 0.3.5. Bientôt disponible via le menu Mactronique IDE >> Check for Updates...

Des images ?



Compiler GPUtils en Universal Binary

Suite à une question posé sur PommeDev, zoc m'a donné la réponse tant cherché. J'aurai peut être dû la poser plus tôt !

Voici donc la solution ; remplacez la commande "./configure" par :
env CFLAGS="-O -g -arch i386 -arch ppc -arch ppc64 -arch x86_64" LDFLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64" ./configure --disable-dependency-tracking
make
file gpasm/gpasm
gpasm/gpasm: Mach-O universal binary with 4 architectures
gpasm/gpasm (for architecture i386): Mach-O executable i386
gpasm/gpasm (for architecture ppc7400): Mach-O executable ppc
gpasm/gpasm (for architecture ppc64): Mach-O 64-bit executable ppc64
gpasm/gpasm (for architecture x86_64): Mach-O 64-bit executable x86_64

Comme vous le voyez, c'est un quadruple binaire.

Documentation technique Apple

jeudi 30 juillet 2009

Compiler GPUtils pour votre mac

Aujourd'hui je vais me pencher sur la compilation de GPUtils. C'est un compilateur (incluant d'autres outils pour la compilation) pour programme assembleur destiné aux micro-contrôleurs dont ceux de Microchip.

Nous allons utiliser notre dossier SourceCache comme à l'accoutumée. Voici les étapes :

Pour ceux qui n'ont pas le dossier SourceCache :
1) ouvrir le terminal
2) mkdir /SourceCache

Pour tous :
3) cd /SourceCache
4) mkdir gputils
5) svn co https://gputils.svn.sourceforge.net/svnroot/gputils/trunk gputils
6) cd gputils/gputils/
7) ./configure
8) make
9) sudo make install

Par défaut il est installé dans : /usr/local/ (bin pour les binaires, share/gputils, share/man/fr/ et share/man/man1).

Et voilà, c'est compilé. Les grands amis de ce compilateur sont : SDCC, le compilateur C pour micro-contrôleur et PK2CM, l'outil permettant la programmation des micro-contrôleurs.

Je me permets de vous présenter le programme qui utilise tous ces outils avec une interface graphique : Mactronique IDE.

lundi 27 juillet 2009

Mettre à jour la librairie JPEG pour GD

Ce qui nous intéresse aujourd'hui est la mise à jour ou la première installation de la librairie JPEG sur Mac Os X Server. Cette librairie est utilisé par l'extension GD de PHP5. L'environnement doit être (le même que pour le premier tutoriel) :
- Mac Os X Léopard 10.5.3 (ou plus) et Mac OS X Léopard Server (10.5.3 ou plus)
- Xcode 3.x
- X11
- X11 SDK
- Apache 2
- PHP 5


Mac Os X ne dispose pas en natif de la librairie JPEG. Il faut donc commencer par la compiler et l'installer. Pour ce faire :
1) Ouvrez le terminal
2) tapez les commandes suivantes (sans le $):
$ mkdir -p /SourceCache
$ cd /SourceCache
$ curl -O http://www.ijg.org/files/jpegsrc.v7.tar.gz

Note : La première commande n'est obligatoire que si vous n'avez pas effectué mon premier tutoriel sur la compilation de l'extension GD pour PHP5.

Note 2 : La dernière commande permet de télécharger le fichier et l'enregistrer dans le dossier SourceCache qui se trouve à la racine du disque dur. Il est possible de télécharger l'archive par le navigateur. Enregistrez l'archive dans le dossier SourceCache qui est à la racine du disque dur. Puis décompressez le !


3) Nous allons maintenant décompressez l'archive si vous ne l'avez pas déjà fait :
$ tar xzpf jpegsrc.v7.tar.gz

4) Nous allons rentrez dans le dossier puis préparer la compilation de la librairie :
$ cd /SourceCache/jpeg-7
$ cp /usr/share/libtool/config.sub .
$ cp /usr/share/libtool/config.guess .

Les deux dernières commandes permettent de copier des fichiers dans le dossier en cours. Il faut bien mettre la commande complète avec le "." (point).

Maintenant les choses se complique un peu ! Il va falloir connaitre l'architecture de votre Mac. Pour cela allez dans le menu pomme puis "A propos de ce Mac".

Si en face de processeur vous avez :
- PowerPC G3 (très rare)
- PowerPC G4
- Core Duo
Et bien votre ordinateur a une architecture 32 bits !

Si vous avez :
- PowerPC G5
- Core 2 Duo
- Xeon
Et bien votre ordinateur a une architecture 64 bits !






5) Maintenant que vous connaissez votre architecture choisissez la commande pour préparer la compilation selon votre cas :

Architecture 32 bits :
$ ./configure --enable-shared

Architecture 64 bits :
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --enable-shared
Attention : tout doit être sur la même ligne !

6) La compilation :
$ make

7) Préparation à l'installation (uniquement pour la première installation) :
$ sudo mkdir -p /usr/local/include
$ sudo mkdir -p /usr/local/bin
$ sudo mkdir -p /usr/local/lib
$ sudo mkdir -p /usr/local/man/man1

Note : lors de la première utilisation de "sudo" il vous demandera votre mot de passe tapez-le. Vous avez droit à 3 essais avant que cela annule la commande ! Rien ne s'affiche lors de la saisie du mot de passe et c'est normal !

8) Installation :
$ sudo make install

Et voilà, vous venez d'installer pour la première fois ou mettre à jour votre librairie. Comme d'habitude, vos réactions sont les biens venues !

mercredi 17 juin 2009

Données intéressantes

Aujourd'hui je vous propose quelques données intéressantes provenant d'un Mac Pro sous Mac Os X Léopard Server.
Avec un uptime (temp de fonctionnement) d'un peu plus de 104 jours, le serveur a délivré sur le réseau plus d'un tera octets de données.
Les chiffres sur la lecture et écriture sur les disques durs est aussi impressionnant.

Voici les image écran :

Les disques durs :

Le réseau :

Il est a noter que ce serveur n'est qu'un serveur web.

lundi 8 juin 2009

Podcast sur Cocoa en français !

Voici le liens vers un podcast parlant de Cocoa en Français !

C'est par la :
http://www.cocoacast.com/?q=blog/189

Connexion sécurisé à un serveur via VNC

Voici la procédure vraiment très simple pour créer un tunnel SSH et établir une connexion sécurisé avec un serveur avec VNC. Les administrateurs réseau seront d'apprendre que cela fonctionne sur Linux et Mac OS X. Pour ma part, je me connecter à un serveur Mac avec un Mac !

1) Ouvrez le terminal.
2) Tappez : ssh -p port_public_sur_serveur -L port_local:localhost:port_de_l_hote_pour_le_tunel user@DNS_name_ou_IP

voici un exemple concret : je me connecte sur le port standard ssh : ssp -p 22 -L 55900:locahlost:5900 moi@monserver.dyndns.net
Cette comande aura pour effet que lors d'une connexion au serveur VNC via l'adresse vnc://localhost:59000 tout le trafic arrivant sur se port sera redirigé vers le port 5900 du serveur distant via le tunel SSH.

3) pour s'y connecter entre l'adresse localhost:59000 dans votre client VNC.

Sur Windows, il est possible de créer des tunel via l'utilitaire Putty. Il est gratuit et facilement trouvable sur internet !

Cette opération est faisable pour tout les protocoles ! Attention toute fois aux protocole qui utilise plusieurs port tel le FTP.
Comme d'habitude, je serai ravi de lire vos commentaires sur cette petite astuce !

jeudi 12 mars 2009

SproutCore au Google Summer of Code 2009

Voici la page décrivant les idées proposer aux étudiants voulant travailler avec SproutCore durant l'été et espérant décrocher une bourse. Cela n'est valable qu'au Etat-Unis ! A quand la version Française ?

Certaine idées sont intéressantes ! Les projets proposer serons Open-Sources !

Cela ce passe ici : http://sproutcore.pbwiki.com/GSOC-2009-Ideas

Nouveau Wiki pour SproutCore

Voici un peu plus d'une semaine que le nouveau Wiki de SproutCore est disponible !

Nouvelle organisation et nouveaux documents ! On y apprend donc qu'il y a deux grands projets en cours !
Le premier qui à pour nom de code Bitburger, est la version 1.0 du FrameWorks.
Le deuxième porte le nom de code Abbot, c'est un Interface Builder pour SproutCore développé avec SproutCore 1.0 (Bitburger).

Cela ce passe Ici : http://wiki.sproutcore.com

SproutCore: Utilisation de SC.Server

Je viens de publier une nouveau tutoriel sur l'utilisation des requêtes au serveur de données.

Cela ce passe par ici : Utilisation de SC.Server

Comme pour le reste j'attends vos retour ici où dans le groupe !

sproutcore-fr le groupe français !

Je suis heureux de vous annoncer la création du groupe Sproutcore-FR. Il n'a rien d'officiel car je ne fait pas parti du groupe des développeurs du framworks.

Il est seulement ici pour aider au dialogue entre les développeurs SproutCore !

Pour visiter le groupe par le Web : http://groups.google.com/group/sproutcore-fr

L'adresse email du groupe : sproutcore-fr@googlegroups.com

Les inscriptions sont libres !

SproutCore: Comprendre les erreurs !

Premier cas :
Voici dans le code de body.rhtml une balise d'ouverture de vue :
<% view :sourceList, outlet=>true do %>
Lors du test vous obtenez cette erreurs :
undefined local variable or method `outlet' for
Cette erreur est dû au manque des ":" devant le nom "outlet". 'outlet' est considéré comme une variable et elle n'est pas définie !

Deuxième cas:
Dans la console de FireBug il vous informe que : 'ret is null' !
Bien évidement la liste est vide ! Cela est dû au fait que l'élément HTML parent n'est pas un objet sproutcore ! C'est en général un DIV qui n'est pas contrôlé par Scroupcore ! Dans ce cas, retirer l'argument ":outlet=>true" ou transformez votre DIV en view !

Si vous en avez d'autre avec leur solution je suis preneur !

lundi 9 mars 2009

SproutCore: Créer une liste

Nous allons voir comment créer un modèle d'objet, un contrôleur et afficher les objets dans une liste.

Pour commencer :
1) Créer un projet (dans le terminal) :
$ sc-init test_list
$ cd test_list


2) création du modèle et du contrôleur:
$ sc-gen model test_list/ligne
$ sc-gen controller test_list/ligneController SC.ArrayController


3) Ouvrez : clients/test_list/english.lproj/body.rhtml et coller :

<% scroll_view :record_list_scroll_view,
:height => 200 do %>
<%= list_view :record_list, :content_value_key => :title,
:content_value_editable => true,
:can_reorder_content => true,
:can_delete_content => true,
:bind => {
:content => "TestList.ligneController.arrangedObjects",
:selection => "TestList.ligneController.selection"
} %>

<% end %>

4) Ouvrez ensuite :
clients/test_list/fixtures/ligne.js

Coller ceci en dessou de la ligne "TestList.FIXTURES = TestList.FIXTURES.concat([" :
{ guid: 1,
type:'Ligne',
title: 'ligne1'
},
{ guid: 2,
type:'Ligne',
title: 'ligne2'
},
{ guid: 3,
type:'Ligne',
title: 'ligne3'
},
{ guid: 4,
type:'Ligne',
title: 'ligne4'
}


5) Ouvrez :
clients/test_list/main.js

Coller ceci sous le commentaire "// Step 3. Set the content..." :

var lines = TestList.Ligne.findAll().clone() ;
TestList.ligneController.set('content',lines);


6) dans la console lancer le serveur de test :
$ sc-server


7) aller dans votre navigateur à l'adresse suivante : http://localhost:4020/test_list/
Vous devez obtenir quelque chose de similaire à ceci :
Pas mal pour un travail de 3 minutes ?


Je me suis basé sur cette page pour la réalisation de ce tutoriel. Vous pouvez me faire part de vos retour d'expérience dans les commentaires de cet article !

samedi 7 mars 2009

Ajouter l'extension APC à PHP

L'extension APC permet de suivre la progression d'un envoie de fichier à un serveur Apache. Je vais vous monter comment faire pour compiler et installer l'extension.
Tout d'abord lisez cc post pour déterminer le type de votre ordinateur. Une fois fait nous pouvons commencer.

1) Téléchargez les sources de l'extension directement sur le serveur SVN avec la commande suivantes (veuillez a être dans notre dossier pour les sources : cd /SourceCache ) :
$ cvs -d:pserver:cvsread@cvs.php.net:/repository co pecl/apc

2) Entrez dans le dossier apc avec cette commande :
$ cd pecl/apc/

3) Préparation de l'extension avec :
$ phpize

4) Préparation en vue de la compilation pour Apache 2 (pour Apache 1.3 remplacer apxs2 par apxs). Pour les processeurs 32bits :

$ ./configure --with-apxs2

Pour un processeur 64bits :
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --with-apxs2

5) Compilation (des warning apparaissent en cours de compilation ce n'est pas très grave) :
$ make

6) Installation :
$ sudo make install

7) ajout de l'extension dans le fichier de configuration de PHP :
$ sudo pico /etc/php.ini

Ajoutez :
extension=apc.so

8) prise en compte de la nouvelle extension :
$ sudo apachectl restart

9) Vérification :
$ php -i | grep -i APC

Et voilà votre extension est installé ! N'hésitez pas à ecrire des commentaires sur cet articles.

mardi 3 mars 2009

Nouveau Mac de ce jour !

Apple viens de mettre à jour la quasi totalité de ses ordinateurs. En tout cas tous les ordinateurs de bureau.
Pour commencer le Mac Mini est maintenant doté d'un Core2Duo d'un lecteur SuperDrive 8x DL et de la carte graphique 9400M de NVidia. en outre il abandonne le FireWire 400 pour passer au 800.
Les configurations :
- Mac mini 2 GHz/1Go/120Go Superdrive pour 599€
- Mac mini 2 GHz/2Go/320Go Superdrive pour 799€

Ensuite les iMac ont eu une mise à jour au niveau du processeur et de la carte graphique. Ils disposent de la 9400M pour les deux configuration de base et il est possible de changer la Geforce GT 120 (qui n'est rien de moins qu'une Geforce 9500) pour les deux configuration haut de gamme pour une Geforce GT130 ou une ATI HD 4850. Ils disposent tous du FireWire 800.
Configurations :
- IMAC 20" 2.66 GHz/2Go/320Go/ Geforce 9400M pour 1099€
- IMAC 24" 2.66 GHz/4Go/640Go/ Geforce 9400M pour 1399€
- IMAC 24" 2.93 GHz/4Go/640Go/ Geforce GT120 256 Mo 256 Mo pour 1699 €
- IMAC 24" 3.06 GHz/4Go/1To/ Geforce GT120 512 Mo pour 2099€

Maintenant les Mac Pro! Ils sont nettement plus cher et embarque des Nehalem jusqu'à 2,93GHz. Ils seraient 1,5x à 2,5x plus rapide que l'ancienne génération en octo-coeur 3,2GHz ! Là aussi le fireWire 400 disparait au profit du 800 !
Les configurations :
- MAC PRO 2,66 GHz/3Go/640Go/NVIDIA GeForce GT 120 512Mo pour 1299€
- MAC PRO 2 x 2,66 GHz/6Go/640Go/NVIDIA GeForce GT 120 512Mo pour 2999€


Apple à mis le temps, mais maintenant tout le monde ou presque a droit au FireWire 800! Est-ce le début du re-nouveau de cette norme laisser à l'abandon par Apple lors du passage au procésseurs Intel ?

Premier pas avec SproutCore

Le frameworks SproutCore est utilisé par Apple pour le service en ligne MobileMe. Connaissant Apple et sont Cocoa, je me suis intéressé à ce frameworks peux connu. Son système de fonctionnement est similaire à celui de Cocoa avec la notion de binding et de notification. De plus il est basé sur le modèle de développement MVC (Modèle-Vue-Controlleur).

Je vais aujourd'hui m'arrêter sur l'installation de SproutCore et au premier test.

Avant d'installer SproutCore sur Mac OS X il faut mettre à jour Ruby:
sudo gem update --system

Maintenant nous pouvons télécharger et installer SproutCore
sudo gem install sproutcore
Si vous avez des avertissements lié au dépendance, utilisez ces commandes pour installer :
sudo gem install rubygems-update
sudo update_rubygems
sudo gem install sproutcore
Maintenant nous allons passer à la partie la plus intéressante. La création d'une application.
Commencez par ouvrir le terminal puis exécutez :
sc-init hello_world
cd hello_world
sc-server
La première ligne demande au programme d'initialisation de projet de créer le projet "hello_world" dans le dossier courant. La deuxième ligne change le dossier courant et la dernière ligne lance le serveur SproutCore pour tester l'application.
Il est possible de tester l'application à l'adresse : http://localhost:4020/hello_world/
Pour stopper le serveur appuyez sur Ctrl + C .

Votre première application est créer et fonctionnel. Il n'y a rien de spécial mais c'est un bon début.

La suite : Organisation du dossier projet. Vos commentaire sont les bienvenues !

samedi 21 février 2009

Installer GNUstep

Pour commencer, GNUstep n'est pas un système d'exploitation. Il se repose sur un système UNIX ou Linux pour fonctionner.

Pour ma part, je suis attiré vers GNUStep car il dispose du langage de programmation Objective-C et aussi parce qu'il est la base de Mac OS X. Bien entendu, Mac Os X a tellement évolué que nous ne voyons plus les points commun.

Après de long mois de tentative infructueuse pour installer GNUstep sur Ubuntu, FreeBSD, Mandrake, Mandriva, etc... Je viens de réussir sur Debian. Je vous montre ici comment procéder :

La première chose à faire est de télécharger le CD Debian 5.0 NetInst (installation réseau). De le graver sur CD et démarrer dessus !

Lors du boot sélectionnez "Install", puis suivez les inscructions...

Lors du choix des packages dé-sélectionnez tout sauf le dernier qui correspond au système minimum.

Une fois l'installation fini, installer GRUB (sélection de boot) puis redémarrer sur le disque dur fraichement installé.

Vous arrivez alors au prompt d'identification. Entrez en tant que "root" avec le mot de passe saisie lors de l'installation.

Maintenant nous allons installer GNUStep et ses composant grace à cette commande :
apt-get install grub gnustep gnustep-games gnustep-devel menu wmaker x-window-system-core bubblefishymon randomize-lines wmnd pcmciautils mc screen


Il vous demande de valider l'installation d'un nombre impressionnant de package. Accepter et tapant "O" (sans les guillemets) puis valider. Il téléchagera tout les package et les installera.

Une fois l'installation fini, vous pouvez démarrer GNUstep avec la commande "startx".

Vous arrivez sur WindowMaker. Le menu est obtenu par un clic-droit. Vous avez un éléments qui se nomme "Applications" Il contient les lanceurs pour les applications pré-installé.

Les outils de développement sont déjà installé ! Il reste à s'amuser !

Attention quand même. Il reste peux utilisé comparer au autre système !
Faite mois part de vos retour d'expérience !

Sources : Live CD GNUStep
Site du projet GNUstep
GNUstep Applications et Tutoriaux

Edit : Je trouve étrange que GNUStep tourne sur le serveur X11. Je ne comprend pas trop le pourquoi du comment mais il reste que ça marche. Si quelqu'un arrive à installer et faire fonctionner GNUStep sans le serveur X11 je suis prenant !

samedi 7 février 2009

Vidéo de tutoriel et autre...

Vous trouverez sur cette chaine YouTube mes vidéos montrant mes réalisations et parfois des tutoriels !


vendredi 6 février 2009

Installer ZIP à PHP5 sur Mac OS X Server Leopard 10.5.x

Dans la continuité de mon précédent post sur l'installation de GD en tant qu'une extension de PHP, voici le retour de l'extension de PHP. Cette fois nous allons ajouter les fonctions du ZIP.

Pour ceux qui n'ont pas télécharger les sources de PHP il faut commencer par créer un dossier qui contiendra les sources de PHP :
1) Ouvrez le terminal puis tapez :
$ mkdir -p /SourceCache
$ cd /SourceCache

$ curl -O http://www.ijg.org/files/jpegsrc.v6b.tar.gz
$ curl -O http://www.opensource.apple.com/darwinsource/10.5.2/apache_mod_php-44/php-5.2.5.tar.bz2
$ tar xjf php-5.2.5.tar.bz2


2) Maintenant tout le monde à les sources. Nous allons aller dans le dossier de l'extension ZIP par cette commande :
$ cd /SourceCache/php-5.2.5/ext/zip

3) Préparation de l'extension :
$ phpize

4) Choisissez la commande qui correspond à votre architecture :
Architecture 32 bits :
$ ./configure

Architecture 64 bits :
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure

5) Puis on compile :
$ make

6) Puis installation :
$ sudo make install

7) Puis ajout de la ligne "extension=zip.so" dans le fichier /etc/php.ini. Voir le précédent post pour la methode de modification du fichier.

N'hésitez pas à faire vos commentaire !

Installer GD à PHP5 sur Mac OS X Server Leopard 10.5.x

Ce qui nous intéresse aujourd'hui est la compilation de l'extension GD pour PHP5. L'environnement doit être :
- Mac Os X Léopard 10.5.3 (ou plus) et Mac OS X Léopard Server
- Xcode 3.x
- X11
- X11 SDK
- Apache 2
- PHP 5


Mac Os X ne dispose pas en natif de la librairie JPEG. Il faut donc commencer par la compiler et l'installer. Pour ce faire :
1) Ouvrez le terminal
2) tapez les commandes suivantes (sans le $):
$ mkdir -p /SourceCache
$ cd /SourceCache
$ curl -O http://www.ijg.org/files/jpegsrc.v6b.tar.gz

Note : La dernière commande permet de télécharger le fichier et l'enregistrer dans le dossier SourceCache qui se trouve à la racine du disque dur. Il est possible de télécharger l'archive par le navigateur. Enregistrez l'archive dans le dossier SourceCache qui est à la racine du disque dur. Puis décompressez le !

3) Nous allons maintenant décompressez l'archive si vous ne l'avez pas déjà fait :
$ tar xzpf jpegsrc.v6b.tar.gz

4) Nous allons rentrez dans le dossier puis préparer la compilation de la librairie :
$ cd /SourceCache/jpeg-6b
$ cp /usr/share/libtool/config.sub .
$ cp /usr/share/libtool/config.guess .

Les deux dernière commande permettent de copier des fichiers dans le dossier en cours. Il faut bien mettre la commande complète avec le "." (point).

Maintenant les choses se complique un peu ! Il va falloir connaitre n'architecture de votre Mac. Pour cela allez dans le menu pomme puis "A propos de ce Mac".

Si en face de processeur vous avez :
- PowerPC G3 (très tare)
- PowerPC G4
- Core Duo
- Pentium 4 (parfois écrit P4)
Et bien votre ordinateur a une architecture 32 bits !

Si vous avez :
- PowerPC G5
- Core 2 Duo
- Xeon
Et bien votre ordinateur a une architecture 64 bits !





5) Maintenant que vous connaissez votre architecture choisissez la commande pour préparer la compilation selon votre cas :

Architecture 32 bits :
$ ./configure --enable-shared

Architecture 64 bits :
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --enable-shared
Attention : tout doit être sur la même ligne !

6) La compilation :
$ make

7) Préparation à l'installation :
$ sudo mkdir -p /usr/local/include
$ sudo mkdir -p /usr/local/bin
$ sudo mkdir -p /usr/local/lib
$ sudo mkdir -p /usr/local/man/man1

Note : lors de la première utilisation de "sudo" il vous demandera votre mot de passe tapez-le. Vous avez droit à 3 essai avant que cela annule la commande ! Rien ne s'affiche lors de la saisie du mot de passe et c'est normal !

8) Installation :
$ sudo make install

Maintenant les pré-requis pour la compilation de GD en temps que module de PHP est complète ! Nous allons pouvoir nous concentrer sur PHP et GD :

1) Le terminal est encore ouvert (si c'est pas le cas ouvrez le)
2) Retournons dans notre cache de code source :
$ cd /SourceCache

3) On télécharge les sources de PHP. Les sources contiennent les dossiers d'extension pour PHP.
Nous le téléchargeons là ou Apple à mis à disposition les codes sources de la partie libre de Mac Os X ! Il pèse 7,5Mo environ !
$ curl -O http://www.opensource.apple.com/darwinsource/10.5.2/apache_mod_php-44/php-5.2.5.tar.bz2

4) On décompresse :
$ tar xjf php-5.2.5.tar.bz2

5) On rentre dans le dossier de PHP puis des extensions puis GD :
$ cd /SourceCache/php-5.2.5/ext/gd

6) on prépare l'extension à devenir une extension de PHP avec la commande :
$ phpize

Note : si la commande indique des erreurs de permission exécutez : "$ sudo phpize" et saisissez votre mot de passe. Sudo garde le mot de passe 5 minutes. Passez ce délai il redemande le mot de passe pour continuer.

7) Encore une fois choisissez la commande qui correspond à votre architecture :
Architecture 32 bits :
$ ./configure --with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6

Architecture 64 bits :
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6

Note : Selon certain critère pas très bien connu, il arrive que la commande génère l'erreur suivante : "/usr/X11/lib/libpng12.0.26.0.dylib: No such file or directory". Dans ce cas éditez le fichier : "/usr/X11/lib/libpng.la" par la commande : "$ sudo pico /usr/X11/lib/libpng.la".
Rechezchez les lignes :
library_names='libpng12.0.dylib libpng12.dylib libpng12.0.26.0.dylib'
current=26
age=26

et remplacez les par :
library_names='libpng12.0.dylib libpng12.dylib libpng12.0.24.0.dylib'
current=24
age=24

Attention : évitez le copier-coller ! Des caractères spéciaux pourait géner !
Note : l'utilisation de pico se fait avec les racourcis suivant : Ctrl + W pour faire une recherche; Ctrl + O pour enregistrer le fichier; Ctrl + X pour quitter.

8) Compilation de l'extension :
$ make

9) Installation de l'extension :
$ sudo make install

Résultat de l'installation :
iMac-G5:gd admin $ sudo make install Password: Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20060613/ Installing header files: /usr/include/php/

Copier le chemin se trouvant après : "Installing shared extensions: ". Cela sera utile pour la configuration de PHP.


10) configuration de PHP pour prendre en compte les extensions.
$ sudo pico /etc/php.ini

La première chose à faire est de rechercher (raccourci : Ctrl + W ) le texte : "extension_dir" (sans les guillemets).
La valeur par défaut est : extension_dir = "./"
Mettez un ; (point-virgule) au début de la ligne pour la désactivez puis saisissez : extension_dir = ""
et collez entre les guillemet le chemin que vous avez copier avant d'éditer le fichier de configuration de PHP.
Cela doit donner :
extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20060613/"

Puis faire une recherche de "extension="
Avant la ligne "; Windows Extensions" ajoutez des lignes vide et sur l'une d'elle écrivez :
extension=gd.so

Maintenant enregistrez (Ctrl + O puis entrée) puis quittez pico (Ctrl + X).

Dernière chose : redémarrer le serveur Apache par la commande :
$ sudo apachectl restart

Un petit test pour voir si PHP charge bien la l'extension ?
tapez dans le terminal :
$ php -i|grep -i gd

Note : la barre vertical s'obtiens par le raccourcis : alt (option) + Maj + L

Le résultat doit être à quelque chose près :
gd GD Support => enabled GD Version => bundled (2.0.34 compatible)

Si rien n'apprait c'est que l'extension n'est pas chargé!
Autre moyen de le savoir :
1) tapez dans le terminal :
$ echo "" > /Library/WebServer/Documents/info.php
2) puis dans safari allez à l'adresse : http://localhost/info.php
3) Cherchez GD. Si vous l'avez, l'extension est chargé !

Merci d'avoir suivi mon tutoriel. Il est le résultat d'une journée de travail ! N'hésitez pas à me faire part de vos retour !

jeudi 5 février 2009

Problème d'identification FTP suite à la mise à jour 10.5.6 Server

Si vous lisez ce post c'est que vous devez avoir des problèmes d'identification des utilisateurs avec le protocole FTP (sur Mac Os X 10.5.6 Server) ?

Si c'est le cas et qu'en plus de cela vous venez de mettre à jour votre Mac os X Serveur en 10.5.6 et bien sachez que le problème est simple !
Les fichier de configuration sont corrompu ! Pour résoudre le problème, suivez la procédure suivante :

1) Ouvrez "Admin serveur"
2) Stoppez le service FTP
3) Aller dans : /Library/FTPServer/Configuration
4) Supprimer tout les fichiers ne finissant pas par ".default"
5) Redémarrer le service et c'est réglé !

Source : Forum Apple.

Bonne chance et n'hésitez pas à me faire part de vos retour d'expérience !

lundi 12 janvier 2009

Windows 7 Beta un bon début !

Ayant téléchargé Windows 7 Beta pour le tester et le mettre à mal voici mes premières impressions à chaud !
Premier point : Il est plus rapide ! Ma configuration est un modeste Mac Mini Core Duo @ 1,66GHz disposant de 2Go de Ram. Mais il ne tourne pas en natif ! Il est émulé par Fusion 2. Pour ce qui est de la configuration de la machine virtuelle, c'est comme pour Vista (étant donné que la GMA950 est trop faible pour la 3D, cette dernière est désactivée dans les paramètres de la MV) !

Pour commencer, l'installation est plus rapide et plus simple ! Pour le coup, c'est un jeu d'enfant pour peu que le PC cherche d'abord à démarrer sur le lecteur DVD en premier.

N'ayant pas réalisé d'image écran à chaque étape de l'installation, en voici une montrant une différence avec Vista :
Lors de la création des partitions sur le disque dur, il génère automatiquement deux partitions. Une de 200Mo et une autre avec la taille restante. Pour le moment, je n'ai pas encore trouvé le but de cette partition ! Une possible sécurité pour le système....

Voici l'un des petits message que Windows 7 affiche pour éviter de croire à un plantage...
Même si les couleurs sont vives, le design est agréable. Après l'arrêt, voici le démarrage de Windows 7. Malgré la faiblesse de ma carte graphique, il y a un petit effet sur le logo de Windows au démarrage ! Maintenant ça ne ralentit plus le Boot ? Chez Microsoft ils ont trouvé la méthode pour optimiser les effets sur une carte de basse qualité ?
En tous cas, les couleurs restent vives !
Pour le premier démarrage, il paramètre l'ordinateur. Là aussi je n'ai pas pris toutes les étapes.
Il le dit et avec un petit effet !!!
Maintenant, on renseigne son nom d'utilisateur et le nom du PC :
Puis ça mouline :
Et nous voilà sur le bureau :
A peine installé, il y a déjà des messages ! Une des nouveautés réside dans la présence de la clé de 10 à côté de la croix. Cette clé permet de définir si on souhaite voir telle ou telle alerte !! Finies les alertes intempestives qui se suivent en bas de l'écran.

Internet Explorer 8 : Première utilisation, premier plantage (c'est un bêta heureusement) !!!

Le menu "démarrer", un peu remanié :
Windows Update : Déjà des mises à jour et déjà des problèmes !!! Bah, ils vont en avoir des feedback...
Action Center : Il regroupe toutes les informations sur les actions que vous devez entreprendre pour sécuriser et maintenir Windows 7 au mieux.
Encore une nouveauté :
Les librairies, je n'en ai pas encore trouvé l'utilité mais il est possible qu'elles servent au partage de documents entre les différents utilisateurs du même ordinateur. Par exemple pour éviter d'avoir 3 fois la même photothèque ou discothèque sur l'ordinateur !! Ça peut être utile !

Voilà pour le moment, je m'arrête là pour continuer les tests !