Catégorie: "Geek!"

Unix: dead?

Extrait de la préface du Unix-Haters Handbook:

The passing years only magnify the flaws. Using Unix remains an unpleasant experience for beginners and experts alike. Despite a plethora of fine books on the subject, Unix security remains an elusive goal at best. Despite increasingly fast, intelligent peripherals, high-performance asynchronous I/O is a pipe dream. Even though manufacturers spend millions developing "easy-to-use" graphical user interfaces, few versions of Unix allow you to do anything but trivial system administration without having to resort to the 1970s-style teletype interface. Indeed, as Unix is pushed to be more and more, it instead becomes less and less. Unix cannot be fixed from the inside. It must be discarded.


Ne manquez pas non plus le chapitre consacré au désastre X Window dont les intertitres sont évocateurs: "X: The First Fully Modular Software Disaster", "The Nongraphical GUI", "The Motif Self-Abuse Kit", etc... (On y dit même du bien de MS Windows ;) )

J'aimerais quand même bien pouvoir tester en profondeur un Mac sous OS X (en tant que desktop, pas serveur :P) pour voir si ces problèmes n'auraient pas finalement été résolus... mais je n'arrive pas vraiment à envisager d'en acheter un "juste pour voir"! (Hum... je crois que l'idéal serait que ma copine en ait un!!! :D)

PS: oui oui Linux c'est bien... en tant que serveur! (Bien que les développements avancent assez vite, je trouve qu'on est encore loin du niveau de finition nécessaire pour en faire un desktop OS à usage quotidien pour qui veut utiliser nombre d'applications et de périphériques variés...)

How To Be a Superprogrammer

Ed Yourdon décortique le personnage du superpogrammeur dans un article de 1976 qui n'a pas pris une ride!


Voici quelques uns de mes passages préférés à propos des méthodes de travail des superprogrammeurs:

Isolate yourself from the distractions normally found in an office. It is extremely difficult carrying out superprogrammer activities in a typical commercial "bullpen" office. This may require you to work at night or to work at home -- neither or which will make you popular with your management.


Make sure you are calm and rested and then work straight through until you have finished the project. This implies, of course, that the project is not very large. Nevertheless, I have watched several superprogrammers work 24, 36, and even 54 hours until they have finished coding a program, at which point they drop from exhaustion. After a good night's sleep, they spend another 54 hours getting the program to work -- and then take a week off.


Spread your papers -- especially your coding sheets -- out on a large table so you can see everything you have done as you write the code. Even better, paste the program up on a wall as you write it. This will allow you to see the entire program as your write it, so you can see if you've forgotten anything and so you can see how everything fits together.


Tout cela m'évoque des souvenirs sympathiques d'une époque lointaine... mais ce qui m'intéresserait dans l'immédiat c'est d'avoir l'avis de Cédric. Pour sûr, il ne s'agit pas ici de software engineering dans les règles... mais faut-il pourtant se passer des gains de productivité énormes qu'on peut obtenir en confiant un développement à un superprogrammeur? :

While the phrase superprogrammer is apparently being replaced by the phrase chief programmer, it is still recognized that there are programmers in the industry -- and always will be -- who at least an order of magnitude better than the average programmer.


Encore une petite, juste pour le plaisir:

There is another phenomenon that is enormously important if one is to understand the personality of a superprogrammer: most of them reach a critical age (usually 30, plus or minus a couple of years) when they decide that they should grow up and do something constructive with their lives, rather than just playing games in a computer room. As a result, we have seen a number of brilliant superprogrammers throw it all away by becoming a manager (ugh!), getting married, having a baby, or deciding to become a farmer. Conversely, those superprogrammers who do not make such a radical change at the age of 30 are often those who, because of their personality, are totally unable to do so. Hence, it should not surprise us that many of the established superprogrammers are freaks in some sense of the word: they look funny; they wear funny clothes; they refuse to work regular hours; they don't get along with normal people; and so forth.

Convergence numérique domotique

J'aurais aussi pu titrer plus simplement "interopérabilité des appareils de la maison" ou "connected consumer electronics" or whatever... :P

Il est intéressant de constater comme certaines normes facilitent peu à peu l'interopérabilité de tous les appareils électroniques dont nous disposons chez nous. A commencer par les bus USB et Firewire (iLink chez Sony) qui permmettent notamment d'échanger photo, vidéo et musique entre ordinateur et appareils portables adéquats.

Bientôt ce seront les téléphones qui seront fournis avec connexion USB afin de mieux concurrencer les PDA.

La même chose existe sans fil: BlueTooth. C'est encore mieux: pas de fils à brancher, il suffit d'avoir les appareils à proximité. Quelques mètres et pas besoin de pointer. Voilà même de quoi relèguer les télécommandes infra-rouge au placard!

Mais justement! Pourquoi tous les appareils mobiles se dotent-ils de capacités d'interconnexion et pas les appareils de salon? Pourquoi ne puis-je pas connecter ma chaine Hi-Fi, mon téléviseur, mon lecteur de DVD, mon magnetoscope... à mon ordinateur? En réalité, je peux le faire mais avec des connexions de "bas niveau" ou je ne peux faire transiter que du signal! Je ne peux pas les contrôler à distance! Impossible de commander au magnétoscope d'enregistrer depuis le PC comme on peut le faire avec un camescope Firewire. Impossible de commander au téléviseur d'afficher telle ou telle source sans utiliser sa télécommande propriétaire... Typiquement, je voudrais, en une seule opération:

  1. Lancer la lecture d'un DivX sur le PC
  2. Commuter le téléviseur sur la bonne source
  3. Commuter l'image en 16/9e
  4. Couper le son sur le téléviseur
  5. Commuter l'ampli sur la bonne source
  6. Sélectionner le mode surround qui va bien, par exemple un DTS 5.1
  7. Couper l'affichage sur le moniteur du PC
  8. Eteindre les lumières de la pièce
  9. Baisser les volets roulants (j'ai toujours rêvé d'avoir des volets électriques :) )
    (le tout pas exactement dans cet ordre là, mais c'est plus clair comme ça...)



    Or les technologies existent... la seule chose qui manque, ce sont des standards!!! :(

Télécommande bluetooth

Je pense qu'il y a des périodes où je préfère poster des commentaires chez Russel Beattie plutôt que d'écrire ici... mais encore une fois je voudrais me faire un post-it pour le retrouver plus facilement...

Ce post sur un lecteur mp3 sans fil m'a donné l'idée suivante...

A mettre en place chez moi dès que possible: un Sony Clié avec son port infra-rouge amélioré servant de télécommande universelle pour mon équipement audio-vidéo (lequel ne peut évidemment pas être piloté par BlueTooth ou WiFi pour l'instant)... et en appuyant sur un simple bouton du Clié, je pourrais accéder à la "killer app": un accès BlueTooth à ma collection de mp3 sur mon ordinateur avec la possibilité de les jouer dans WinAmp! J'adore cette idée! :)) Le parfait équipement pour le surfeur de canapé :))

A propos: je cherche toujours la carte son idéale avec entrée et sortie S/PDIF pour relier numériquement (par fibre optique) mon PC à mon ampli audio-vidéo. Encore une fois, il serait illusoire de vouloir réaliser cette connexion là sans fil à ce jour... Si quelqu'un lisant ceci a une recommandation autre que les cartes soundblaster totalement surdimensionnées pour cet usage et sans pour autant sacrifier la qualité, ça m'intéresse!! :)

Finalement, ce qui est dommage dans cette histoire c'est que je devrai toujours finir par reconnecter ma télécommande sans fil ultime à quelquechose pour en recharger la batterie! Et le pire c'est que plus je l'utiliserai sans fil, plus je devrai la reconnecter! :(

WinMX: Réglages, configuration et optimisation B)

En consultant mes stats sur eStat, je vois régulièrement des gens qui sont venus sur un de mes blogs suite à une recherche Goggle portant sur "winmx" ainsi que "réglage" "configuration", "optimisation" ou "bande passante". En fait j'avais mentionné WinMX à titre anecdotique pour signifier que contrairement à Morpheus (et également Kazaa je crois) il n'installait pas de spyware. Toutefois, il me parait donc aujourd'hui indispensable de dire un mot sur l'optimisation de la bande passante avec WinMX. D'autant plus que je ne sais pas pour vous, mais en ce qui me concerne je n'ai jamais vu aucune aide ou guide d'utilisation émanant des auteurs du logiciel...

En revanche, il existe des fichiers texte qui circulent sur MX et qui prétendent qu'en entrant des valeurs astronomiques dans vos maximum incomming et outgoing bandwidth vous allez atteindre des records de vitesse de transfert. N'en croyez pas un mot. Les auteurs de ces fichiers espèrent simplement vous faire débrider votre bande passante sortante pour mieux pouvoir se fournir!! Mais ils s'y prennent fort mal!

En effet, en mettant des valeurs maximales au delà de votre bande passante réelle (ou encore en ne spécifiant aucune limite) vous autorisez WinMX a envoyer des paquets au delà de ce que peut absorber votre connexion... un très grand nombre de ces paquets vont donc tout simplement être jetés aux orties par la couche réseau... et WinMX ne s'en rendra compte qu'à l'issue du timeout correspondant à ce paquet... la conséquence est l'inverse du but recherché: une dégaradation de performances. Voilà pour le principe général. Je ne peux pas m'étendre en détails sur les pourquois du comment ici... d'autant plus que la licence d'utilisation de WinMX n'autorise pas à en analyser le fonctionnement!!

Toujours est-il que pour obtenir les performances optimales, vous devez donc fixer les limites à un seuil très légèrement inférieur (disons 15 à 20%) à votre bande passante maximale. Si vous connaissez votre bande passante ça vous simplifiera la vie. Attention aussi au fait que certaines connexions (câble, ADSL...) sont asymétriques (sinon il n'y aurait d'ailleurs pas de A à ADSL) et que les bandes passantes entrante et sortante sont donc différentes.

Si vous ne connaissez pas précisément votre bande passante, procédez par tatonnements: lancez un maximum de downloads et d'uploads pour saturer votre liaison. Ensuite regardez les graphiques de l'onglet bandwidth: regardez jusqu'où ils montent et regardez si la courbe globale est bien plate et écrêtée ou bien si elle est en dents de scie. Encore une fois, ceci n'est valable qui si vous saturez votre bande avec un grand nombre de transferts. En posant une limite à 80% du maximum pour in et out, vous allez obtenir des courbes bien plates. Vous pouvez essayer de monter la limite jusqu'à ce que les dents de scie réaparraissent, vous saurez alors que vous venez de dépasser la limite.

Dernière chose: vous devez absolument régler le incomming et le outgoing de manière conjointe: en effet chaque paquet transmis à besoin d'acquittements dans l'autre sens, donc une saturation d'un sens entraine obligatoirement des perturbations sur l'autre.

Personnellement, sur mon ADSL Tiscali j'avais obtenu les meilleurs résultats avec une limite incomming à 53000 octets par seconde et une limite outgoing à 12500 octets par seconde.

Rappel: échanger des contenus copyrightés à l'aide de WinMX est illégal. Echanger vos propres créations (photos, montages vidéos... à propos de grand prix moto par exemple) est légal. Merci de ne pas utiliser les infos ci-dessus à des fins illégales.