mardi 19 juin 2007

Distribution Linux de 50Mo : Damn Small Linux !

Un linux de 50Mo, qui contient une interface graphique, des navigateurs web dont FireFox, un logiciel de traitement de texte, des visionneuses d'images et de pdf, un tableur, un client mail, ... vous-y croyez ?
Ca existe pourtant : Damn Small Linux

Le truc encore plus fou, c'est que : le package qui tient facilement sur une clé USB contient de quoi :
-booter depuis un CD
-booter depuis une clé USB (si le bios supporte l'usb au boot)
-fonctionner dans un windows (une machine virtuelle ['qemu' je crois] est incluse dans le package) => ca c'est énorme

Bref à tester d'urgence c'est HUGE!! Toutes les fonctionnalités et applications sont détaillées sur le site officiel.


Autres choses :
La liste de toutes les distributions linux en live CD
Screenshots de toutes les distributions linux

Mes liens sur des trucs relatifs à linux

Navigateur Opera, vraiment fort !

Pour effectuer une recherche, vous connaissez tous le Ctrl+F, sauf que c'est relou d'avoir une popup qui cache la page web... Et puis sous FireFox c'est pas mieux parceque la seule façon d'enlever la barre de recherche c'est d'utiliser la souris et de cliquer sur la croix rouge...
Hier j'ai découvert un moyen plus rapide et bien moins contraignant : la touche '/' !
Recherche : touche '/' puis le mot ; toutes les occurrences sont 'highlightées' en jaune en direct!! Même pas besoin de faire 'entrée', c'est vraiment puissant :)

En mode plein écran, si on change d'onglet, la barre d'adresse revient souvent (trop souvent à mon goût), pour la cacher/afficher : Ctrl+F8

Un raccourci bien efficace qui rajoute 'www.' et '.com' à l'url : Ctrl+Enter
FireFox permet le .net en faisant shit+enter et même le .org en faisant ctrl+shift+enter.
On Opera 9 pressing Ctrl-Enter adds www. to the beginning of what you typed and .com at the end.
You can customize and add other top level domain names (.co.uk, .net, .org, .fr...) by clicking Tools > Preferences > Advanced > Shorcuts > Edit (next to keyboard setup), expand Advanced then Address drop-down widget.Example: set shift-enter for .net top level domain names:Shorcut: enter shift, Actions: Autocomplet server name, "htpp://www" , "net"


Sauvegarder rapidement une image : Ctrl+clic dessus (bien plus rapide que de faire clic droit sauvegarder l'image sous...)

Stop Tabs from Focus Stealing : Tools | Preferences | Advanced | Content |
JavaScript options | Allow raising of windows

D'autres astuces sur http://operawiki.info/

vendredi 11 mai 2007

Changement de fond d'écran automatique, cette fois sous Windows !

Edit : Légère correction des sources le 13/05/07.

Et oui j'ai récidivé :) Je me suis amusé à coder un script équivalent à celui présenté dans ce billet, mais cette fois pour le système d'exploitation Windows!

J'ai donc réalisé une application en C++ qui fait grosso modo les mêmes choses :
1 : on télécharge la page des dernières images sorties sur interfacelift.com, pour la résolution voulue
2 : si il existe de nouvelles images on les télécharge
3 : puis on choisit une image aléatoirement dans le dossier et on l'affiche sur le bureau

Vous avez la possibilité de changer la résolution des images à télécharger, il suffit de changer les variables resx et resy en début du main, il faut donc recompiler le projet, volontairement [nécessite l'installation du package GRETA pour Dev-C++].
Il n'y a aucune fenêtre ou console qui s'affiche, volontairement, mais vous pouvez le changer, cf commentaires ^^.


Et bien la première chose que j'ai à dire est la suivante : c'est VRAIMENT VRAIMENT plus fastidieux de coder ca en C++ plutôt que dans un script shell!
Purée qu'est-ce que c'est génial le shell dans le monde unix, il existe bon nombre de commandes simples qui permettent d'intéragir extrêmement facilement avec le système d'exploitation, en particulier avec le système de fichiers...
Je me suis vraiment fait ch*** là, mais bon j'y suis arrivé, pfiou.
Comme je l'explique plus en détails dans les commentaires du code, j'ai utilisé des librairies qui m'étaient inconnues, dont j'ai trouvé peu de documentation/exemples et qui était assez obscures. Par exemple :
-wininet pour télécharger des fichiers du net
-GRETA pour faire des expressions régulières
-GFL pour convertir des images jpg en bmp

Fichiers créées :
-dossier 'images_interfacelift'
-les images jpg sont téléchargées dans ce dossier
-fichier 'current.bmp'

Evidemment le programme effectue des requêtes sur internet, il faut donc que votre firewall lui en laisse l'accès pour que le téléchargement fonctionne.

Bon maintenant y'a plus qu'à créer une tâche planifiée pour que le script s'éxécute toutes les X minutes/heures...

Veillez d'abord à ce que le service "Plannificateur de tâches" soit démarré :
Démarrer -> Exécuter -> services.msc puis ok
Je vous conseille de mettre le démarrage en automatique sinon au prochain reboot du pc les tâches plannifiées ne seront plus exécutées car le service ne sera pas démarré ^^

Puis dans une console [Démarrer -> Exécuter -> cmd puis ok] (toutes les 2h ici) :

Schtasks /create /tn ChangeWallpaper /tr "D:\Temp\wallrenew\ChangeWallpaper.exe" /sc HOURLY /mo 2

Evidemment vous remplacez le chemin par l'endroit ou se touve le programme sur votre disque dur...

Le programme est fonctionnel sous XP mais pas sous Vista... Normal puisque j'ai codé ca sous dev-c++ avec le module windows32api de xp... Désolé... j'essayerai de faire une version pour vista si j'ai le temps et le courage!

Mon programme ChangeWallpaper

lundi 30 avril 2007

Divertissements :)

Je me suis très récemment acheté un tapis de DDR (Dance Dance Revolution), plus d'infos sur Wikipédia.
Il est assez dur de trouver un tapis de bonne qualité en France hormis sur eBay ou en temps qu'accessoire avec un jeu playstation... Sauf que, je voulais justement un tapis de qualité (mousse), et que je puisse brancher sur mon PC en usb sans avoir à acheter d'adaptateur! En effet, il existe des logiciels open-source et gratuits qui vous permettent de danser pendant des heures sur votre tapis. Le plus connu est appelé Stepmania.


J'ai choisi d'acheté mon tapis sur play-asia.com, c'est revenu à ~50€ compte tenu des frais de port élevés [plus élevés que le tapis -_-] car il vient du japon!!. Bon faut se dire que ca reviens moins cher qu'un jeu pc ;)
Néanmoins je ne suis vraiment pas déçu car :
-on peut remplacer la mousse qui se glisse dans le tapis (fermeture éclair)
[au bout d'un an je pense qu'elle va commencée à être bien écrasée]
-3in1 : 3 connecteurs = 1 playstation + 1 xbox + 1 pc
et ca c'est vraiment cool pour se ramener chez un pote qui a le jeu playstation car vous pouvez jouer en multijoueurs et ca déchireuuuuuuuuh
-c'est vraiment fun et sportif, au bout de 10 minutes je suis gluant lol
Toi aussi ami nerd, tu veux refaire du sport ? Le DDR a été conçu pour toi xD

Il existe des tapis en métal bien plus cher (sa monte facile à 500€), et c'est vraiment la classe mais bon je suis pas encore prêt à investir autant ^^
N'achetez pas n'importe quel tapis, ils ne sont pas tous compatibles avec les jeux pc si ils nécessitent un adapteur, cf Wiki Stepmania.

A noter qu'il existe une version juste usb ("usb dancing mat") de 8 euros moins cher, mais y'a pas la mousse... donc le 3in1 est vraiment un bon choix!

Bon on trouve les packs de musique du jeu originel sur internet mais chut hein!
Vous pouvez même ajouter vos musiques perso et y'a moyen que les flèches se génèrent automatiquement, j'ai pas testé mais ca à l'air sympa. De toute façon il existe des milliers de musiques en dl gratos donc ^^

Pour bien configurer Stepmania

Remarque : une fois mon tapis branché sur une playstation, le X est en haut à droite et pas en bas à gauche comme sur les tapis livrés avec les jeux playstation, mais bon c'est juste pour valider les menus^^


Bon je voulais aussi vous parler de Trackmania, un super jeu de voiture pour PC, mais le billet commence à être long alors je vous redirige vers ces vidéos bien cool pour vous faire saliver :
Trailer TM-Nations
Trailer TM-United
1K Project II
Du vrai stunt de barge
Coast Stunt
Il existe actuellement :
Trackmania Original
TrackMania Sunrise
TrackMania Nations (gratuit!)
TrackMania United (reprend tous les autres, 40€!)

C++ & SDL = Moteur 3D :)


Notre prof de C++ nous a donné un TP afin de découvrir l'orienté objet à travers un projet sympa : afficher un cube en 3D et le faire tourner.
Bon perso je connais le C++ depuis ma première année de DUT donc c'était les doigts dans le nez concernant le développement des classes, j'ai même fait un peu d'héritage et de lecture de fichier^^
Revenons au projet : l'objectif est de gérer un objet 3D de 1200 points, chaque point possédant 3 coordonnées (x,y,z) car on travail dans l'espace. Mais ce n'est pas tout, il fallait aussi transformer les coordonnées 3D(notre objet) en coordonnées 2D(écran) ! Et enfin, chose la plus dure : appliquer des matrices de rotation d'axe X, Y ou Z sur les points de notre objet afin de le faire tourner !

Vous l'avez bien compris, le but n'était pas d'utiliser une API 3D (directx, opengl, ...) qui gère elle même les rotations et l'affichage en 2D de vos objets, mais bien une API 2D afin de nous même calculer les coordonnées des points sur l'écran :)

Bref le TP m'avait l'air assez sympa, car j'ai rarement eu l'occassion de faire un truc aussi fun (animé, graphique, ...), ormis de créer des fichiers d'images de fractales.

J'ai choisi d'utiliser la SDL afin de réaliser le TP, il y'a un excellent tutorial sur le site du zero pour prendre en main cette librairie.

Explication pour un point de programmation :
Comme précisé à la partie 4 de cette page, "la SDL ne propose aucune fonction pour dessiner pixel par pixel. Mais on a le droit de l'écrire nous-même :)"
Donc je tiens à préciser que tout le code SDL présent dans mes sources provient du site du zéro [merci les gars], hormis peut être une ou deux lignes concernant les évènements claviers, mais j'ai commenté à ce moment là.

Pour enlever le "fullscreen" si ca vous embête, ou bien si vous voulez admirer l'utilisation CPU (j'suis chou une star) pendant l'exécution, il suffit d'enlever " | SDL_FULLSCREEN" dans l'appel de la fonction "SDL_SetVideoMode", dans le haut de main.cpp

Ami(e) développeur(se), je t'invite à lire ou relire sushi (oO), afin de savoir comment faire proprement les directives pré-processeur #include et autres using namespace std; :)

Euh ... ah oui les sources, me semblait bien avoir oublié un truc!
J'ai utilisé l'IDE Dev-C++, j'ai mis le projet entier dans le zip, avec le .exe compilé et le fichier SDL.dll nécessaire lors de l'éxécution.

Version 1 : Regarder "A LIRE.txt" avant de lancer le .exe

Version 2 : Version similaire sauf que :
-la rotation de chaque objet ne s'effectue pas en fonction du centre du repère mais du centre de l'objet
-matrices de translation + rapides
-ajout voiture :)
Fichiers à voir :
explication_rotation-translation.jpg
voiture1.txt
voiture2.txt
Pour infos j'ai obtenu ces coordonnées avec 2 modèles de voiture de Trackmania (grand fan, team Szchm0p!) grâce à Blender, un super logiciel de modélisation 3D gratuit :)

N'hésitez pas pour toute question, aussi ridicule soit-elle.