Derniers billets

Flux Rss
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 next >>
 

Compact disc

By esion - the 2009-09-10 13:27:00 - in Informatique

(0) Comments

Depuis un petit moment je me suis mis en quête de vieux albums qui ont bercé ma jeunesse et la suite chez les disquaires d'occasion, un peu de Body Count et de Urban Dance Squad et d'autres. Me voilà parti pour encoder riper pirater (c'est pas moi qui le dit) et l'avoir prêt de moi sur ma ubuntu box ou éventuellement iPhone. Le cd finira alors dans une étagère prenant une place folle.

Et au fur et à mesure je me rend compte à quel point le support cd c'est pourrit.

Tout le monde le sait, ça se raye, les boitiers "crystal" coutent chers, sont moches et cassent trop facilement.

Serait-ce Radiohead qui nous apportera la nouvelle voie ? Mais là j'ai de serieux doutes; on a toujours besoin de matérialiser la musique. Et que ce soient des explications, des images ou photos de manière à rentrer dans un certain univers sur une jaquette ou livret, cela reste important. Je me demande si l'on peut dissocier le visuel de la musique : une affiche, un clip, un t-shirt ...?

Aussi, un morceau ce n'est pas la même chose qu'un album. Peut on dire qu'un peintre est allé au bout de son oeuvre en dessinant un tiers de son tableau?

 

Bon c'est pas tout, je vais voir quand est-ce qu'ils sortiront les clés usb-album à l'effigie de groupes contenant la discographie de ceux-ci ... sans drm bien sûr.

 
 

hadopi youpi

By esion - the 2009-04-05 13:45:13 - in Informatique

(0) Comments

Riposte graduée ? - La Quadrature du Net

Ça a démarré jeudi dernier, l'internet français tend à devenir un media sur-controlé et censuré.Tiens ça me fait penser à la télé, le medium démoniaque qui lobotomise les gens.

Quand est-ce que  l'on va commencer à voir les virus hadopi infecter le parc informatique français? On ne sait pas comment les oeuvres seront protegés par hadopi (bin oui, ils n'ont pas fournit les specifications n'est-ce pas) mais en tout cas un programme qui s'execute à l'insu del'utilisateur pour renvoyer des informations le concernant via internet ... moi j'appelle ça un virus. Peu importe les choix technologiques de protection, tout le monde est présumé coupable(et tout le monde l'est en définitive). Comme pour "les grands mères pirates", on devrait voir arriver des sanctions exemplaires; vraiment ça va être magnifique.

 
 

Lutter contre le spam et les chaines d'emails

By esion - the 2009-03-28 12:36:00 - in Informatique

(0) Comments

Internet, le partage de l'information, de la connaissance et des trucs rigolo sur lesquels on est tombé :)
On a tous reçu par mail du spam pour du viagra ou des chaînes pour sauver la petite lili atteinte de la leucémie en transférant à tous cet email sinon on risque de se faire flageller à coup de nouilles trop cuites par le clown de Stephen King. Certains auront aussi eu la « chance » d'avoir reçu des mails phishing (hameçonnage). Et bien sûr sans oublier d'éventuels vrais virus qui trainent.

On me dit souvent « comment je peux recevoir du spam alors que je n'ai jamais donné mon email ? ». Premièrement cette adresse elle doit forcement être quelque part dans les contacts d'un amis, sur un site mal sécurisé ou peu importe , ensuite il suffit d'avoir reçu au moins une fois un chaîne. Un des problèmes est que la plupart des gens renvoient les chaînes en copie, c'est à dire que tous les emails précédents sont visibles ce qui fait le bonheur des spammeurs et fraudeurs quand ils récupèrent en retour ces adresses, c'est une boucle sans fin.

Une solution ?

Il ne sera pas possible de complètement éradiquer le spam en un claquement de doigts mais on peut lutter contre avec un peu d'esprit critique et quelques bonnes pratiques.

  1. Les chaînes « du cœurs » ou hoax: jamais on ne pourra sauver quelqu'un en renvoyant 10000 emails surtout que ce quelqu'un est surement fictif. Pour le vérifier un site : http://www.hoaxkiller.fr
  2. Les chaînes rigolotes : ça fait toujours sourire de voir « le chien qui fait du skate » du coup on le fait tourner aux collègues, copains, familles, martiens ou anciens profs peut être. Alors la copie-invisible est là pour ça!

Copie carbone invisible

Certains auront remarqués les champs Cc et Cci lorsqu'ils écrivent un message. Cc ou Copie carbone permet d'envoyer un message à plusieurs destinataires. La grande différence avec le champ Cci (copie conforme invisible) est que les adresses des différents destinataires ne sont pas affichés. Ainsi si tout le monde fait le petit effort de transférer les messages en cci et bien je me sentirai vachement mieux et surement pas mal de monde seront reconnaissant.

Je vous invite à transférer ce message en Copie carbone invisible (Cci).
Merci d'avance,
David.

 
 

web App : export des contacts en csv

By esion - the 2009-03-22 17:09:44 - in iPhone

(0) Comments

Je viens de rendre publique une petite application web qui permet d'exporter les contacts d'un iphone au format csv originalement conçu pour yahoo.

L'appli nécessite un serveur web avec php et le module sqlite pour fonctionner ainsi que la base de données de contacts de l'iphone que l'on peut recuperer grâce à ssh sur un iphone jailbroken.

iphoneaddressbook est disponible sur github et ici la démo.

Évidemment c'est open-source, have fun.

 
 

De la pagination dans les "objets" ou Navigating across objects

By esion - the 2008-12-19 18:37:00 - in symfony

(0) Comments

Pour ceux qui comme moi se retrouve devant la "belle" documentation de symfony et plus précisement à l'explication sur l'utilisation de sfPropelPager (la classe de pagination spécial big up Symfony tout ça), je suppose que vous dû avoir la même réaction que moi :

"How the hell can that code work ???!!!!"

On voit un bout de truc qui ne veut rien dire ... et qui forcement ne fonctionne pas :

$article = $pager->getObjectByCursor($this->getRequestParameter('cursor'));

Bin ouais $pager n'est pas instancié. Alors on se casse les dents sur google à s'apercevoir que tout le monde réécrit les mêmes erreurs ou dans le moins pire des cas s'arrête avant.

Voilà comment réaliser une belle pagination sur liste et sur chacun des enregistrements :

version symfony : toutes avec quelques adaptations

D'abord on reprend le code de la doc qui fonctionne puis on l'améliore un poil pour rendre ce que l'on attend :

Le controller

app/frontend/modules/article/action/action.class.php

class articleActions extends sfActions
{
   public function executeList($request)
   {
       $this->pager = new sfPropelPager('Article');
       $this->pager->setPage($request->getParameter('page', 1);
       $this->pager->init();
   }
 
   public function executeShow($request)
   {
        $this->executeList($request);     //eh oui c'est ça qu'il manquait hahahaha!
        $this->article = $this->pager->getObjectByCursor( $request->getParameter('cursor') );
        //Ce qui suit pourrait être remplacé par une joulie évolution de sfPager
        if( ($previousCursor = $request->getParameter('cursor') - 1) >= 1 )
        {
           $this->pager->setParameter('previousCursor', $previousCursor);
         }
        if( ($nextCursor = $request->getParameter('cursor') + 1) <= $this->pager->getNbresults() )
        {
           $this->pager->setParameter('previousCursor', $previousCursor);
         }
    }
} 

Il ne reste plus qu'à  réaliser les vues.

Les vues

app/frontend/modules/article/templates/listSuccess.php

//je ne note volontairement pas les balises php comme il faut hein.
$cursor = $pager->getFirstIndice();
foreach($pager->getResults() as $article) :
   echo $article->getTitle();
   echo link_to('Read', 'article/read?cursor=' . $cursor);
endforeach;
//pagination sur liste
echo link_to('previous', 'article/list?page=' . $pager->getPreviousPage() );
echo link_to('next', 'article/list?page=' . $pager->getNextPage() );
//EOF
Et maintenant l'affichage de l'article plus des liens de navigation s'pas!
 app/frontend/modules/article/templates/showSuccess.php
echo $article->getTitle();
echo $article->getContent();
if( $pager->hasParameter('previousCursor')) : 
echo link_to('previous', 'article/show?cursor=' . $pager->getParameter('previousCursor') );
endif; 
if( $pager->hasParameter('nextCursor')) :  
echo link_to('next', 'article/show?cursor=' . $pager->getParameter('nextCursor') );
endif; 
//EOF

Paf

C'est comment dire, un peu magique. Une fois qu'on sait qu'il suffit d'instancier le pager depuis la méthode executeList (c'est mieux que de noter "..." et de voir que rien ne fonctionne).

Un autre évolution de sfPager serait de corriger $page lorsque l'on instancie un article depuis getObjectByCursor() (Chose que je vais proposer dès que j'aurais un peu de temps).

 

PS : le code présenté ici est écrit  plus ou moins from scratch et surtout pas du tout testé, donc merci à celui ou celle qui m'indiquera une erreur.

 

 
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 next >>