Vous voulez avoir accès à vos machines linux de n'importe où et sans avoir obligatoirement de client ssh ?
Voici un client ssh mais web : sous forme d'applet Java. Si vous l'hébergez sur un de vos serveur (il ne nécessite aucun script particulier, contrairement à de nombreux web-based ssh qui tournent sous python), vous pourrez vous connecter en ssh à vos machines de n'importe où avec un simple navigateur web supportant le java.
Il a l'air très puissant : il intègre aussi des clients telnet, sftp etc... Et gratuit pour un usage personnel.
Bref, si vous voulez le télécharger, rendez-vous ici :
http://www.appgate.com/index/products/mindterm/mindterm_download.html
Voici une découverte très récente que je viens de faire : l'azerty (et le qwerty) sont des claviers qui ont été inventés POUR RALENTIR la frappe des utilisateurs. Ça date de l'époque des machines à écrire, où si le/la secrétaire tapait trop vite, les touches se bloquaient.
Seulement aujourd'hui on a plus ce problème, et je dirais même qu'on voudrait le plus de rapidité possible, pourtant on est resté aux mêmes clavier azerty.
C'est bien dommage, d'autant plus que ces claviers sont fait pour nous ralentir, donc parcourir de grands mouvements avec les mains, ce qui peut entrainer dommages aux muscles, tendons et nerfs (y'a t'il des victimes dans la salle ^^ ?).
Bref, c'est la où je vous parle du Dvorak : une configuration des touches alternative conçue pour minimiser les mouvements et accélerer un maximum la frappe : de l'ergonomie quoi.
Le Dvorak est à l'origine anglais mais il existe des équivalents français.
Apparemment il y'en aurai 3 types différents, personnellement j'ai retenu le dernier : le fr-dvorak-bépo, car il est à jour, issu de communautés open source (donc suffisamment travaillé) et ça a l'air d'être le meilleur des 3 (purement subjectif).
Un peu de visuel, c'est plus parlant :

(la configuration fr-dvorak-bépo)
Pour y installer, sous windows, linux ou mac, aucun souci (il suffit de télécharger les pilote ici :
http://www.clavier-dvorak.org/wiki/Windows_:_installation)
Le problème : c'est que ça ne change pas physiquement vos touches :-D, donc perso j'ai choisi la bonne vieille méthode avec des étiquettes par dessus les touches, ça marche bien. Maintenant il ne reste plus qu'à apprendre à réécrire à l'ordinateur (le basculement entre azerty/dvorak est très facile au cas ou).
Les gains possibles :
- jusqu'à 40% de vitesse de frappe
- moins de fatigue musculaire et repos des tendons et nerfs (idéal pour les problèmes de canal carpien)
- les mains bougent moins, la frappe est beaucoup plus agréable (selon les dires de ceux qui le pratiquent)
Pour ma part je commence juste à m'y mettre, j'ai à peine mis 1/2 heure pour taper cet article ;-)
Lien vers le site :
http://www.clavier-dvorak.org/wiki/Accueil
Pour les intéressés, je ne crois pas que ce genre de claviers soient vendus tels quels (physiquement modifiés), j'ai cherché des revendeurs mais je n'en ai pas trouvé.
Si vous développez des captcha, graphiques en tous genres etc... en PHP (ou autre langage serveur), vous avez peut-être été confronté à ce problème : l'image précédemment générée reste en cache dans le navigateur et si le script génère une image différente, celle-ci n'est pas réactualisée.
Voici une solution, tordue mais simple, quand vous ne voulez pas (ou pouvez pas) toucher aux Headers de l'image : rendre le nom de l'image aléatoire.
Comment ? En insérant simplement un nombre aléatoire dans l'url en paramètre GET, comme ça ça n'influe sur rien d'autre que l'appel à l'image. Voici un exemple tout simple :
<img src="histogramme.php?random=<?php echo rand(); ?>" alt="Chargement de l'histogramme..." />
Ahaha, voilà une erreur PHP assez sympa :
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting ',' or ')' in xxx on line 20
Apparemment, ça serait une histoire de "::"... J'en sais pas plus j'ai fait une erreur de frappe et je crois qu'il n'a pas aimé mon code PHP.
Aujourd'hui, je viens d'apprendre quelque chose que j'ai trouvé vraiment intéressant, et surtout piégeur !
Je développe actuellement un site web tout simple avec stockage de la connexion des utilisateurs en
variable de session. Seulement, j'ai remarqué des phénomènes limites paranormaux : de temps en temps, après une redirection avec la fonction PHP
header(), on se retrouvait déconnecté sans raison. Et impossible de reproduire le bug à coup sur, et surtout : ça n'arrivait jamais en local.
La raison est assez simple, mais tordue (merci aux commentaires dans les fonctions PHP du site php.net !) :
Si le script A ouvre une session (pour voir si l'internaute est connecté), puis redirige avec header() vers le script B, et que le script B ouvre lui aussi rouvre la session pour voir si l'utilisateur est connecté, il peut y avoir un problème.En effet, normalement la session PHP est refermée à la fin du script. Donc quand A redirige vers B, on fait
die() (ou
exit) dans A et A termine son exécution.
Mais le serveur peut être tellement rapide que le script B est déjà appelé par le navigateur client avant même que A ait fini son exécution, et donc le serveur exécute le script B qui demande d'ouvrir la session. Il y'a donc un
conflit et B (en tout cas c'est ce que j'ai constaté avec mes tests approximatifs) voit bien le tableau de session, mais celui-ci est vide. Et donc boum -> l'internaute est déconnecté.
La parade ?
Utiliser
session_write_close().
Soit après en avoir finit avec la session, c'est plus sur, soit juste avant l'appel à la fonction header(). Comme ça on est certain d'avoir fini de travailler sur la session et le script B peut l'ouvrir sans problème.
PS : je
pense que ça n'arrivait jamais en local car mon PC n'a pas du tout la même puissance que le serveur, bien que les temps de réponses soient bien plus infimes, mais ça n'est que mon interprétation.
J'ai récemment rencontré un bug facheux sur le script BigDump.
Ce script PHP sert à importer des gros fichiers de bases de données sans se soucier des limitations de tailles imposées par phpMyAdmin ou de la nécessité d'avoir un shell linux pour executer des commandes mysql (que généralement on a pas sur notre hébergeur).
Il est très sympa, simple (1 seul fichier), rapide et configurable, joli (avec interface AJAX), mais a un gros défaut :
il ne fonctionne pas avec les fichiers Windows.
L'erreur en question commence par :
Error at the line 3001: INSERT INTO table (xxx)
xxx représente un peu n'importe quoi, le script de découpage du fichier ayant un bug, c'est une chaine de caractère un peu aléatoire qui en sort.
La ligne 3001, c'est parce que le script traite les lignes par paquets, et donc au 2è paquet de ligne à traiter, la il y a erreur. C'est du aux retours à la ligne différents sous Windows (\r\n) et sous UNIX (\n).
C'est ce que j'ai eu le malheur de découvrir en l'utilisant, et j'ai remarqué que je n'étais pas le seul à avoir cette erreur. J'ai fouillé dans le script et je me suis rendu compte qu'en fait l'auteur a rajouté quelques lignes pour rendre son script compatible avec Windows mais qu'il ne l'a jamais testé (et ça ne marche pas bien sur :( ). Donc la solution la plus simple, c'est d'ouvrir le fichier csv à importer dans votre base de données avec Notepad ++, de le convertir en fichier UNIX, et de relancer le chargement.
Je n'ai trouvé cette solution nulle part ailleurs, alors j'espère que ça pourra en aider quelques uns.
Un super casse-tête qui m'a empeché de dormir pendant un certain temps 
Le principe est simple, vous avez 2 triangles composés exactement des mêmes "morceaux". Seulement sur le triangle du bas, un "trou" apparaît... Où est l'erreur ?

Si vous êtes comme moi : vous voulez que le moindre espace de l'écran, le moindre clic de souris soit optimisé, alors vous cherchez surement à afficher votre barre de favoris (ou plutôt de marques-pages devrais-je dire) sur plusieurs lignes.
J'ai longtemps cherché sur internet, trouvé difficilement quelques codes sur des sites anglais, jusqu'à en trouver un qui marche.. à peu près : je ne pouvais plus redimensionner ma fenêtre. J'ai donc fait un petit mix des codes que j'ai pu trouvé et le résultat fonctionne.
Voilà la méthode : vous devez éditer le fichier userChrome.css qui se trouve dans C:\Documents and Settings\VotreNom\Application Data\Mozilla\Firefox\Profiles\id.du.profile\chrome\ (ici le chemin d'accès sur ma machine sous XP, à adapter pour vous...).
Attention : pensez à fermer Firefox ;-)
Rajoutez les lignes suivantes à la fin du fichier :
/* Toolbar de marques-pages multilignes */
#bookmarks-ptf {
display:block;
line-height:25px;
}
#bookmarks-ptf toolbarbutton {
margin: 0 1px !important;
}
#bookmarks-ptf toolbarseparator {
display:inline
}
#bookmarks-stack {
overflow: visible !important;
}
C'est du CSS, vous pouvez rajouter quelques trucs, enlever quelques balises qui vous semblent peut importantes, rajouter du style, bref je vous donne juste la base (et encore y'a surement des lignes qu'on peut supprimer).
Enregistrez et relancez Firefox pour tester.
Voilà j'espère que ça vous sera utile.
MadMatt
Si comme moi vous avez complètement la flème de réinstaller EasyPHP entièrement pour pouvoir profiter de PHP5 (c'est à dire passer de EasyPHP 1.8 à EasyPHP 2), voici la marche à suivre pour remplacer PHP4 par PHP5 sous la version 1.8.
Déjà, téléchargez les binaires pour windows de PHP 5.25 ici :
http://sourceforge.net/project/showfiles.php?group_id=14045
Ensuite, arrêtez EasyPHP et dans son répertoire d'installation renommez le dossier /php/ en /php4/ par exemple. Dézipper ce que vous avez téléchargé et renommez le répertoire d'extraction en /php.
Dans le dossier /conf_files/, ouvrez le fichier httpd.conf et à la ligne 198 changez :
LoadModule php4_module "${path}/php/php4apache.dll"
par :
LoadModule php5_module "${path}/php/php5apache.dll"
Puis à la ligne 245 :
AddModule mod_php4.c
à remplacer par :
AddModule mod_php5.c
Faites ensuite les mêmes modifications dans le fichier /apache/conf/httpd.conf. (ce deuxième fichier est généré automatiquement par EasyPHP à partir du premier, mais je ne sais pas comment 'provoquer' volontairement sa mise à jour). Attention : ${path} est remplacé par le vrai chemin d'accès sur votre machine pour le fichier du répertoire /apache/conf/, c'est pour ça qu'il y'a 2 fichiers...
Ensuite, PHP5 n'est pas configuré par défaut pour fonctionner avec MySql. (essayez http://127.0.0.1/mysql/ pour vous en rendre compte).
Pour cela, il faut également éditer le fichier php.ini, présent (comme pour httpd.conf) dans /conf_files/ et dans le répertoire /apache/.
Ajoutez l'extension mysql à la fin du fichier :
extension=php_mysql.dll
Dernier détail : le dossier des extensions a changé entre les deux versions, il faut donc également modifier la ligne (445) :
; Directory in which the loadable extensions (modules) reside.
extension_dir = "${path}\php\extensions\"
en :
; Directory in which the loadable extensions (modules) reside.
extension_dir = "${path}\php\ext\"
Même remarque que précédemment : ${path} est remplacé par le vrai chemin d'accès sur votre machine dans le fichier qui se trouve dans le répertoire /apache/
Et voilà, un beau PHP 5 tout neuf ;-)
Voici quelques liens d'outils très sympa quand on est en train de définir des élements graphiques d'un site web.
Ce sont des générateurs de jeux de couleurs. Vous leurs donnez une couleur ou une image et ils vous sortent une liste de couleurs associées.
Celui la est très sympa et efficace, les couleurs générées sont assez cohérentes tout en restant variées.
http://www.colorblender.com/
Ces deux vous plus loin, ils proposent de choisir le mode de génération des couleurs : le choix est plus varié, mais plus forcément cohérent dans certains cas (enfin je pense que c'est une affaire de gouts avant tout).
http://wellstyled.com/tools/colorscheme2/index-en.html
http://www.siteprocentral.com/html_color_code.html
Et le dernier extrait les couleurs principales d'une image, ce qui peut être utile dans certains cas :
http://www.degraeve.com/color-palette/index.php
Si vous en cherchez d'autres vous pourrez trouver une liste bien complète d'outils (pas tous forcément intéressants c'est pour cela que j'en ai sélectionné que quelques uns) ici :
http://www.korben.info/generateurspartie-224.html
Bonjour à tous,
J'ai récemment constaté à grand regret que la plateforme de blog Dotclear ne "fonctionnait" pas quand elle était installée sur un sous-domaine.
Il s'agit tout simplement d'un problème de CSS, Dotclear utilise en effet l'adresse absolue des feuilles de style dans ses pages.
Donc la page
http://www.monsite.com/blog/ marche très bien, mais est moins facile à retenir et est, entre autre, différente au niveau du référencement (un sous-domaine est considéré comme un site à part entière par google, au contraire des sous-dossiers).
Si on veut son blog à l'adresse :
http://blog.monsite.com/
il faut un peu tricher.
Rendez-vous dans le panneau de configuration de Dotclear, et remplissez le champ "URL vers le weblog : depuis http://www.monsite.com/" par un "/" (Dotclear n'accepte pas une adresse vide).
Et il ne faut pas se soucier du "depuis http://www.monsite.com/", ça n'a aucun impact pour la suite.
Ensuite, plus bas, videz le champ "Emplacement de l'application", et remplissez les suivants en ne mettant pas de sous-dossier "/blog/"
ex : - "/images/"
- "/rss.php"
- etc...
Sauvegardez les modifications et rafraichissez la page de votre blog (maintenant http://blog.monsite.com/)
Toutefois l'adresse http://www.monsite.com/blog/ est toujours accessible et donne un résultat dont on se passerait bien (même problème que précédemment : les CSS ne sont pas trouvées).
Une petite redirection par URL Rewriting fait donc très bien l'affaire.
En espérant que ça puisse faire gagner du temps à certains intéressés ;-)
Une vidéo bien délirante :
http://www.vimeo.com/173714
ça donne envie d'aller y bosser.
(le meilleur est à la fin)
J'ai récemment fait la découverte d'un article d'Eric Vernié sur les nouvelles API introduites dans Windows Vista et Serveur 2008.
Il y'en a une certaine liste :
- Application Recovery and Restart
- Boot Configuration Data
- Common Log File System
- Condition Variables
- Debug Help Library 6.6
- Kernel Transaction Manager (KTM)
- Multimedia Class Scheduler Service
- Object Namespaces
- One-Time Initialization
- Performance Logs and Alerts
- Restart Manager
- Thread Ordering Service
- Thread Pool
- Transactional NTFS (TxF)
- Wait Chain Traversal
- Windows Error Reporting
(certaines ont vraiment l'air intéressantes)
Mais l'article détaille l'utilisation des API "Application Recovery and Restart"
Voici le principe simplifié :
- Lors de l'execution de notre application, on définit quelle données doivent être récupérables en cas de plantage
- On définit également quelle sera la fonction de callback appelée par Windows Error Reporting lors du redémarrage après plantage
- Si l'application plante, le WER va proposer à l'utilisateur de redémarrer l'application
- En cas de redémarrage, le WER va alors appeler la fonction de Callback en lui passant en argument le fichier temporaire contenant les données sauvegardées avant plantage
On peut donc récupérer nos données
Et c'est l'utilisateur qui va être content.
Plus d'infos sur l'article :
http://msdn2.microsoft.com/fr-fr/visualc/bb870268.aspxUn exemple est même donné en téléchargement
Salut à tous !
Je rejoint à mon tour avec ce blog la grande famille des bloggeurs ! (faut vivre avec son temps ^^)
Je connais déjà certain membres mais c'est avec plaisir que je compte en rencontrer d'autres.Donc pour ceux qui ne me connaissent pas, je me présente rapidement. Je suis Matthieu Napoli, vous pouvez me retrouver au nom de MadM@tt sur CS, je suis étudiant en école d'ingé (INSA de lyon si y'en a qui connaissent ;) et bien entendu dans la filière Informatique ^^.Bref, cette année est l'année des grandes découvertes, des grands projets et des rencontres pour moi, alors je compte en profiter et rapporter sur ce blog quoi que ce soit qui puisse être intéressant (à vous de me dire de me taire :p)
Voilà, j'espère que vous serez gentils avec moi ;), et je tiens bien entendu à remercier Nix et tous les admins CS, grace à qui j'ai tant appris depuis tant d'année !
Les 10 derniers blogs postés
-
Event : Conférence sur le Cloud Computing à Genève par
Blog Technique de Romelard Fabrice le il y a 1 heure et 21 minutes
-
SQL Server Kilimanjaro : Vous avez envie de vous inscrire à la Beta ? par
SQL Server vu par Christian Robert le il y a 2 heures et 37 minutes
-
AJAX : Seadragon Ajax Library par
Blog technique de Nicolas Boonaert le il y a 5 heures et 34 minutes
-
CodePlex : Google Maps Intellisense Helper - Release par
Blog technique de Nicolas Boonaert le il y a 11 heures et 29 minutes
-
[Open XML] Les spécifications d'Open XML ISO enfin publiées ! par
Julien Chable le il y a 14 heures et 47 minutes
-
SAF 2008 : Day I par
Blog de Frédéric Queudret le il y a 16 heures et 21 minutes
-
PASS 2008 : Résumé de la première journée par
SQL Server vu par Christian Robert le il y a 21 heures et 22 minutes
-
Windows Azure Services : Première application - Service On the Cloud : Just do it ! par
RedoBlog - The .NET Gentleman !!! le il y a 21 heures et 40 minutes
-
SQL Server Kilimanjaro : Data-tier Application Component - DAC par
SQL Server vu par Christian Robert le il y a 21 heures et 54 minutes
-
Live Mesh : ne confondez pas Usage Mesh et Developpement Mesh ! par
RedoBlog - The .NET Gentleman !!! le 11-20-2008, 00:49