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 !