AjaxAmp est un plugin Winamp qui permet de le controller à distance, via
une interface Web utilisant intensivement Ajax. Pour faire bref, vous
tapez une adresse dans votre navigateur, et l’interface de Winamp
apparaît dans la page Web, avec le lecteur, la playlist et la
médiathèque. AjaxAmp permet également de streamer la musique vers un
autre ordinateur équipé de ce plugin, ou même d’écouter sa musique sur
n’importe quel lecteur à distance. Assez bluffant.
AjaxAMP v3.0
PCWorld nous présente sa liste des pires logiciels/matériels de tous les
temps, c’est à dire depuis le début de sa parution, il y a près de 25
ans. Et devinez qui est en tête ;) Beaucoup de
classiques, mais aussi quelques produits oubliés ; amusant.
PCWorld.com - The 25 Worst Tech Products of All
Time
Dans le cadre d’un projet en C#, j’avais à lire des données dans un
buffer n fois par secondes - rien de plus classique. Je me suis
cependant rendu compte que cela nécessitait des Timers assez précis : si
l’on perd ne serait-ce que 10 millisecondes par seconde à cause
d’imprécisions du timer, le système devient rapidement impossible à
gérer.
Or les différents types de Timers du .NET Framework ne fournissent
qu’une précision maximale d’environ 20ms - et encore, cela dépend
fortement du système hôte. C’est largement insuffisant pour de
nombreuses applications où la gestion du temps est critique… Comment
alors peut-on faire pour obtenir des ticks parfaitement réguliers ?
Il faut pour cela utiliser des Timers Multimédia. On désigne
généralement sous ce nom les Timers faisant appel à des fonctions Win32
particulière, produisant des ticks très précis, mais assez couteux en
temps processeur. Il n’existe hélas pas de Timer Multimédia dans le .NET
Framework… On peut cependant faire une surcouche .NET à ces APIs, et
ainsi utiliser des timers précis dans .NET. C’est ce que Leslie Sanford
a fait, et cela fonctionne parfaitement.
L’inconvénient de ces Timers est bien sûr la non-portabilité, car ils
marshallent directement les APIs Win32. Il est donc exclu de les faire
fontionner sous PocketPC, SmartPhone, bref sous tout système
non-Windows. Il doit y avoir moyen de les porter sous Linux, mais ce
serait sans doute compliqué.
En tout cas cet article de Leslie Sanford est très instructif, et permet
enfin d’avoir une synchronisation du temps correcte en C#.
The Multimedia Timer for the .NET Framework - The Code
Project
En utilisant un excellent tutoriel sur les Image
Map de Stu
Nicholls, dont j’ai déjà parlé dans ces
colonnes,
j’ai implémenté un site composé uniquement d’images et de zones
réactives sur celles-ci, avec apparition de texte au survol, le tout en
pur XHTML/CSS. Le tutoriel permet de ne pas se perdre et d’être sûr de
fonctionner sous Internet Explorer.
Mais un autre point du cahier des charges était l’apparition de blocs de
texte lors du clic, en plus du survol. Une solution est de faire un
lien vers une page quasiment identique, mais comportant le bloc de
texte ; ce n’est pas très élégant. J’ai donc utilisé les pseudo-classes
CSS :active et :focus sur les zones réactives pour faire apparaître
les zones de texte lorsque que les liens ont le focus - c’est à dire
qu’ils ont été cliqués ou activé. La contrainte sur le XHTML est que
tout le contenu texte du bloc à faire apparaître doit être contenu dans
le lien réactif, il faut donc n’utiliser que des éléments inline. Mais
au final, l’effet obtenu est assez réussi, le code élégant et surtout
léger.
Quelques problèmes rencontrés néanmoins : les utilisateurs d’Opéra
doivent maintenir le bouton de la souris appuyé pour voir le texte, à
cause d’une bizarrerie de comportement de ce navigateur qui prend très
mal en compte les liens actifs ; à noter également que les navigateurs
Gecko 1.7 (comme Firefox 1.0*) n’affichent pas le texte lorsque l’on
clique sur le texte de la zone réactive, il faut cliquer dans la zone
mais pas sur le texte - ceci a été résolu dans Gecko 1.8 (et donc
Firefox 1.5*). Tous ces comportements étranges peuvent sans doute être
corrigés à l’aide d’un brin de Javascript non-obtrusif. Edit: C’est
même un peu plus qu’un brin, mais le Javascript a été rajouté ; il
dégrade sur la version “full CSS” si JS n’est pas activé.
Vous pouvez regarder le produit fini sur
pourquoitucours.fr. Je requiers
néanmoins votre indulgence car le site a été réalisé en très, très peu
de temps ;)
Edit: Le site a depuis été remplacé par une autre version, réalisée
par un autre développeur. Le lien donné n’a plus rien à voir avec moi,
donc.
Si vous avez déjà essayé de faire un menu déroulant dans une page Web,
vous avez sans doute constaté que c’est tout à fait réalisable en pur
CSS (sans Javascript), mais qu’à cause des limitations d’Internet
Explorer il fallait rajouter une surcouche de Javascript - ce qui
empêche les visiteurs ayant désactivé Javascript d’utiliser le menu. Il
est communément admis qu’un menu CSS-only n’est pas réalisable sous
IE…
Hé bien Stu Nicholls a trouvé un moyen, et
développé un menu déroulant sans Javascript, passant sous les principaux
navigateurs, dont IE6 et IE7b. Il utilise pour cela une bizzarerie du
rendu d’IE6, qui lui permet d’imbriquer des liens si ils sont contenus
dans des tables. Grâce aux commentaires
conditionels,
le code général et la feuille CSS restent valides.
J’ai implémenté cette merveille du côté de Viens voir ce site
!, ce sera en ligne d’ici quelques
jours. Vous pouvez en attendant consulter la page de démonstration et
d’explications de Stu Nicholls, The Ultimate CSS only Dropdown
Menu. Enjoy !