pulkomandy a écrit 2029 commentaires

  • [^] # Re: GitHub

    Posté par  (site web personnel, Mastodon) . En réponse au journal Authentifiez-vous sans mot de passe grâce à XMPP, 10 ans plus tard. Évalué à 7 (+4/-0).

    À une époque l'interface web était assez légère et fonctionnait même sans javascript. Ce n'est plus du tout le cas, maintenant il y a des websockets de partout et plein d'autres trucs compliqués qui ne semblent pas utiles vu le service rendu.

    Comme je navigue sur internet pas toujours avec les navigateurs les plus à jour, ou avec le webkitt pas fini pour Haiku, Github fait partie des sites qui sont source de problèmes.

    Ces derniers temps il fait en plus une poussée de boutons "AI copilot" qui sont de moins en moins discrets.

    En plus de ça, je trouve le modèle "fork et pull request" inutilement compliqué, et le bugtracker trop limité par rapport à la modularité de Trac. Et puis de toutes façons, Github, c'est pas libre.

    En bref, j'ai déjà fait 2 fois la bêtise de migrer vers une plateforme fermée (de sourceforge et berlios vers google code hroject hosting, puis ensuite vers github). C'était une mauvaise idée la première comme la deuxième fois. Je me remet à l'auto hébergement en m'assurant que mes dépôts de code sont sauvegardés par software heritage (en plus de mes propres sauvegardes)

  • [^] # Re: Ascii vaincu

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Dans le coffre aux trésors d’Unicode 17 : des chameaux et un trombone. Évalué à 8 (+5/-0).

    Mais comme il se refuse à utiliser les caractères prévus à cet effet pour indiquer qu'il n'est pas sérieux (points d'ironie, marqueurs de sarcasme, emojis divers, etc.), personne ne le comprend.

  • [^] # Re: A propos du token

    Posté par  (site web personnel, Mastodon) . En réponse au journal Authentifiez-vous sans mot de passe grâce à XMPP, 10 ans plus tard. Évalué à 5 (+2/-0).

    Le token sert surtout à limiter les attaques "authentication fatigue" où on envoie plein de demandes d'authentification à un utilisateur en espérant qu'il finisse par cliquer sur la mauvaise en essayant d'accéder à son compte.

    Avec ce token, on peut sélectionner la bonne requête dans ce cas là. Dans les autres cas, on va souvent recevoir une seule notification et il n'y a pas forcément d'intérêt à vérifier le token. La confiance repose plutôt sur la sécurisation du réseau XMPP (si on arrive à recevoir et envoyer des messages avec un faux expédieur, on peut se faire passer pour n'importe qui sur le serveur HTTP).

    J'ai mis en place une page frontale qui se place avant l'authentification. Pour l'instant c'est en test ici: http://pulkomandy.tk/drop/test-login.html

    Maintenant il suffit de comparer le token affiché des 2 côtés. Je vais voir si je peux intégrer ça directement dans le code Rust pour simplifier le déploiement. Pour l'instant, si on a pas Javascript, ça redirige vers la méthode "classique", ce que j'aimerais bien conserver, il faut que je voie comment faire. Et ce serait bien aussi que ça fonctionne facilement avec wget ou autrres outils similaires sans trop s'embêter. Dans ce cas, c'est bien que ça reste une page à part pour le formulaire de login, le endpoint de l'authorizer n'a pas besoin d'être modifié.

  • [^] # Re: Ascii vaincu

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Dans le coffre aux trésors d’Unicode 17 : des chameaux et un trombone. Évalué à 4 (+1/-0).

    Je ne crois pas qu'on puisse tout faire avec uniquement les polices de caractères. Ouand on parle d'Unicode on pense en premier aux caractères et aux glyphes, mais il y a aussi les algorithmes pour déterminer les endroits où il est pertinent de placer un retour à la ligne (dans les cas simples, pas forcément pour les césures où des règles différentes s'appliquent pour plusieurs langues même si elles partagent un alphabet), ou même simplement de placer le curseur lorsqu'on édite du texte. Ce qui peut être un peu compliqué si par exemple on a des chiffres "arabes" (écrits de gauche à droite, au milieu d'un texte dans une langue écrite de droite à gauche.

    Heureusement, cette partie d'Unicode évolue moins que le reste, et les nouveaux caractères se trouvent simplement étiquettés avec les informations nécessaires à l'algorithme. Tout au plus il y a de temps en temps quelques caractères qui étaient mal caractérisés et donc des corrections sur ces métadonnées.

    Mais finalement, oui, tout ce travail peut être fait une bonne fois pour toutes, ce qui est très bien.

  • [^] # Re: Ascii vaincu

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Dans le coffre aux trésors d’Unicode 17 : des chameaux et un trombone. Évalué à 5 (+2/-0).

    Je me suis mal exprimé alors. J'essayais de dire justement que sans Unicode, on se retrouve avec tout un tas d'encodages locaux (iso 8859, codepage 850, macroman, et ça c'est juste pour les utilisations européennes de l'alphabet latin, pour le reste il y en a encore plein d'autres) et de problèmes de conversion. Penser que l'ASCII rend les choses plus simple que Unicode et permetrait de faire de l'éco-conception est donc une bêtise.

  • [^] # Re: Ascii vaincu

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Dans le coffre aux trésors d’Unicode 17 : des chameaux et un trombone. Évalué à 3 (+0/-0).

    Les centaines d'extensions (standardisées ou non) de l'ASCII pour traiter différentes langues, et les heures perdues à rédiger des standards, définir des algorithmes de conversion entre les encodages, investiguer des problèmes d'interopérabilité, ce n'est pas ce qu'on peut appeler de l'éco-conception, mais plutôt une fausse bonne idée que l'on continue de payer pendant une cinquantaine d'années par la suite.

    Je crois que cette idée est encore pire - en termes d'économies réalisées - que de supprimer les vieux e-mail?

  • # lighttpd

    Posté par  (site web personnel, Mastodon) . En réponse au message Dossier de developpement web sous linux. Évalué à 3 (+0/-0). Dernière modification le 12 septembre 2025 à 15:26.

    Bonjour,

    Une chose à savoir et qui m'a fait perdre du temps: dans le packaging Debian de lighttpd, l'écriture dans les sous-dossiers de /home est interdite par une configuration au niveau du service systemd. Ce qui peut se défendre d'un point de vue sécurité, sauf si on a envie d'héberger des services web stockés dans des dossiers utilisateur et qui font des écritures dans leur propre dossier.

    J'ai mis du temps à trouver d'où pouvait bien venir l'erreur "permission denied" causée par cette configuration. C'est documenté assez clairement mais… sous forme d'un commentaire dans le fichier de définition de la unit systemd. Donc c'est très clair, mais seulement une fois que on a trouvé le problème. Et en plus, comme ce n'est pas un fichier de configuration, toute modification dedans est écrasée sans avertissement lors des mises à jour du paquet lighttpd.

    Je ne sais pas si les autres serveurs web ont une configuration similaire, et si c'est un choix spécifique à Debian.

  • [^] # Re: Merci !

    Posté par  (site web personnel, Mastodon) . En réponse au journal Authentifiez-vous sans mot de passe grâce à XMPP, 10 ans plus tard. Évalué à 5 (+2/-0).

    Merci également, cette page m'a bien aidé parce que j'ai du implémenter la XEP-0070 dans mon client XMPP en même temps que j'implémentais la partie serveur. C'était bien utile d'avoir une implémentation "de référence" pour tester la partie client.

  • [^] # Re: Bravo pour XMPP

    Posté par  (site web personnel, Mastodon) . En réponse au journal Authentifiez-vous sans mot de passe grâce à XMPP, 10 ans plus tard. Évalué à 5 (+2/-0).

    Je vais voir comment faire pour afficher une page de login en HTML avec des explications, car effectivement ce n'est pas du tout clair avec le dialogue par défaut des navigateurs web, qui n'est pas du tout personnalisable.

    Mais actuellement c'est bien ça, il faut soi-même choisir un "token" qui permet dans le client XMPP de vérifier qu'on accepte bien sa propre demande de connexion (et pas celle de quelqu'un d'autre essayant d'usurper l'identitié).

    Avec une page web, un formulaire et un peu de Javascript, ce token pourra être généré par la page web et il faudra simplement vérifier dans le client XMPP que c'est bien le même.

  • [^] # Re: Vrai soucis pour définir sa propre rentabilité

    Posté par  (site web personnel, Mastodon) . En réponse au lien La tech au bord du gouffre financier . Évalué à 6 (+3/-0).

    Ce n'est pas forcément idiot d'un point de vue de la stratégie commerciale. Par exemple des fabricants de consoles de jeu vendent la console à perte en sachant qu'ils vont gagner des sous en vendant les jeux qui vont avec.

    Ou encore les supermarchés qui ont des produits d'appel vendus à perte ou à prix coûtant, en sachant qu'une fois attirés dans le magasin par une promo incroyable, les gens vont aussi acheter d'autre trucs.

    D'un point de vue éthique, c'est beaucoup plus discutable. mais le "bon sens" est là oùon veut le placer.

  • [^] # Re: Aucune légitimité

    Posté par  (site web personnel, Mastodon) . En réponse au lien B. Kernighan (co-créateur d'Unix) sur Rust : « Je ne pense pas qu'il va remplacer C tout de suite ». Évalué à 5 (+2/-0).

    Effectivement ça semble être autour de 50MHz, j'ai un peu exagéré

    Sources:

    https://forrestheller.com/Apollo-11-Computer-vs-USB-C-chargers.html (un chargeur Anker avec un processeur à 48MHz)

    https://www.righto.com/2015/11/macbook-charger-teardown-surprising.html?m=1 (un chargeur Apple, à seulement 16MHz mais tout de menme 4 fois plus rapide que le processeur central du Macintosh original)

    https://spritesmods.com/?art=hddhack&page=1 (un disque dur avec un processeur ARM à 150MHz et 64MB de RAM, l'auteur ne s'arrête pas à l'identification du matériel et finit par démarrer Linux directement sur ce disque dur sans avoir besoin de le connecter à un ordinateur)

  • [^] # Re: Aucune légitimité

    Posté par  (site web personnel, Mastodon) . En réponse au lien B. Kernighan (co-créateur d'Unix) sur Rust : « Je ne pense pas qu'il va remplacer C tout de suite ». Évalué à 4 (+1/-0).

    Et les CPU sont tellement pas cher que on en met vraiment partout. Un chargeur de téléphone aujourd'hui a un processeur à 200MHz, bien plus puissant que la plupart des ordinateurs dans les années 90. Même chose pour un disque dur ou un SSD, la plupart des périphéricues USB utilisent un coeur Intel 8051 boosté, …

    Donc d'une certaine façon l'architecture est déjà pas mal distribuée. Mais il y a des processeurs classiques partout, et le besoin de réaliser des circuits spécialisés (qui sont plus chers, c'est un peu le sur mesure de l'électronique) est de moins en moins justifié car les performances avec un CPU générique sont bien suffisantes.

  • [^] # Re: Aucune légitimité

    Posté par  (site web personnel, Mastodon) . En réponse au lien B. Kernighan (co-créateur d'Unix) sur Rust : « Je ne pense pas qu'il va remplacer C tout de suite ». Évalué à 10 (+11/-0).

    Question de béotien : comment arrives-tu à ça ? C'est intéressant comme point de vue, je suis curieux !

    En regardant ce qui se fait ailleurs, par exemple, les LISP Machines qui ont (ou avaient) un jeu d'instruction plutôt dédié à manipuler très rapidement des listes chaînées; les données dans la mémoire sont "taggées" par exemple pour indiquer si une adresse contient une valeur entière, une référence vers un autre objet, ou rien du tout, ce qui est très utile au garbage collector pour nettoyer la mémoire.

    Ou plein d'autres architectures historiques comme le z80, sur lequel écrire un compilateur C est possible, mais assez pénible, parce que les registres et instructions sont spécialisés pour faire d'autres choses. Par exemple, il n'y a pas vraiment de quoi implémenter un "frame pointer". Sur un processeur 68000, SPARc ou x86, ça se fait en une instruction (link/unlink, save/restore, et un mov bp, sp avec un offset sur le dernier). Ils ont tous les 3 également des modes d'adressages indexés, on peut donc facilement avoir sur la pile un pointeur vers une structure, et en une ou deux instructions, on va:

    • Récupérer ce pointeur dans la mémoire (adressage par bp + offset)
    • Ajouter un offset à ce pointeur (soit un offset constant pour accéder à un champ d'une structure, soit un nombre d'éléments multiplié par la taille d'un élément pour accéder à un tableau
    • lire ou écrire quelque chose à cette addresse

    C'est un exemple de ce que je disais par "nombreux niveaux d'indirection de pointeurs". Bien sur on écrit pas int**** truc; dans un programme, mais on écrit facilement ce genre de code:

    struct machin* truc;
    truc->champ1[index].chose = 3;
    

    Si on compte on a ici:

    • Premier niveau: le pointeur de pile
    • Deuxième niveau: le pointeur truc avec l'offset champ1
    • Troisième niveau: l'index dans le tableau champ1
    • Quatrième niveau, l'index de chose dans l'élément de champ1

    Le code passe plus de temps à manipuler des adresses que des données (comme donnée dans cet exemple il y a la constante 3). Si on regarde un processeur comme le 68000, on voit que la moitié des registres sont dédiés aux calculs d'adresses en conséquence. C'est encore plus flagrant sur son petit frère 8 bit le 6809: pour gérer les adresses on a 4 registres 16 bit, alors que pour les données on en a un seul (découpable en 2 moitiés de 8 bits). Et les calculs sur les adresses sont plus rapides car ils disposent d'une unité arithmétique 16 bit dédiée (alors que les calculs sur les données sont fait en 8 bit et donc en 2 fois).

    Il y a d'autres processeurs où la pile est limitée à 256 éléments au total. Sur le z80, on peut simuler un registre BP avec l'un des deux registres d'index, mais on ne peut pas adresser plus de 256 octets de mémoire et les index sont forcément constants. Pour tout le reste il faut faire des acrobaties qui consomment une quinzaine d'instructions.

    On a des informations historiques des concepteurs de ces langages, aussi. Pour le x86, ce n'est pas exactement le C qui était visé, mais plutôt le Pascal. Mais le modèle d'exécution est assez similaire: fonctions avec passage de paramètres sur la pile, structures, tableaux. Pas de programmation objet, par exemple (ce qui se concentrerait plutôt sur des sauts indirects via des vtables). ça n'a pas vraiment été étudié pour les coroutines non plus.

    Pour le SPARC, les choix de jeu d'instruction ont été faits en simulant l'exécution de code existant. Comme c'était en plein dans l'époque de UNIX pour Sun, ça a forcément été fait avec du C.

    De mémoire, il y avait eu un essai avec des processeurs Java, et c'était pas la folie. Ça ne veut pas dire que la prochaine fois ce sera aussi un échec, mais l'idée a été testée.
    D'ailleurs, dans les processeurs Apple (M1 etc.), il me semble qu'il y a des circuits dédiés à JavaScript, pour accélérer certains comportements.

    Pour le Java, je suppose que tu parles des processeurs ARM Jazelle. Qui ont été un échec pour deux raisons: d'une part parce que ce mode d'exécution est incomplètement documenté par ARM, et d'autre part parce qu'il ne correspond pas du tout au fonctionnement interne des machines virtuelles Java de l'époque (qui font beaucoup de transformations sur le bytecode pour l'opptimiser avant de l'exécuter).

    Pour le Javascript, effectivement il existe plusieurs opérations dédiées pour des comportements spécifiques sur certaines opérations mathématiques (ce n'esst pas spécifique à Apple, on trouve ça dans plusieurs processeurs ARM et c'est dans le jeu d'instruction officiel).

    Dans les choses qui n'ont pas marché on peut aussi citer l'Intel iAPX 432 dont le but était de faire un processeur orienté objet.

    Et un autre qui rejoint un peu ce que j'essaie de dire, c'est l'architecture Itanium de Intel. Le but était justement de supprimer des couches de complexité dans les processeurs (réordonnancement des instructions, renommage de registres, exécution spéculative) pour remettre tout ça sous la responsabilité du compilateur. En théorie, ce n'est pas une mauvaise idée pour avoir un langage vraiment "proche du matériel". En pratique, la densité du code est plus basse (et donc il s'exécute moins vite, parce que la mémoire est beaucoup plus lente que le processeur), et surtout, le code compilé est lié à une implémentation spécifique du CPU. Si une nouvelle génération de CPU devient disponible, avec, par exemple, des unités de traitement ou des registres supplémentaires, il faut tout recompiler pour en tirer parti. C'est l'erreur qu'ont fait les générations précédentes de RISC avec le "branch delay slot" par exemple (exécuter une instruction supplémentaire après un jump, avant d'aller à la nouvelle addresse: ça simplifiait beaucoup le design initial avec un pipeline à 4 étages seulement, mais c'est resté ensuite dans le jeu d'instruction alors que ça n'avait plus aucun intérêt).

    On semble donc se diriger, aussi bien dans le logiciel que dans le matériel, vers une solution intermédiaire: un code assembleur qui fournit une représentation compacte de ce qu'il faut exécuter, mais tout en étant facile à décoder et optimiser par des phases de pré-traitement avant d'être exécutée. C'est le principe des machines virtuelles (javascript, java, wasm), mais c'est aussi ce qu'il se passe à l'intérieur des processeurs modernes (pré-décodage du jeu d'instruction x86 ou ARM vers des instructions internes microcodées; jeu d'instruction Thumb sur ARM pour gagner en densité et en bande passante mémoire). Une exception notable est le RISC-V, qui part dans la direction opposée avec un jeu d'instruction très minimaliste et donc peu dense, avec dans l'idée que cela pourrait permettre à ce pré-traitement d'être plus complexe et intrusif (c'est un peu plus facile de manipuler ce flot d'instruction si chaque instruction fait très peu de choses), mais par contre avec une densité faible qui risque de poser problème si les mémoires ne font pas de gros progrès en vitesse d'accès.

    Au final, il y a en fait un genre de co-évolution: on exécute beaucoup de code basé sur le modèle d'exécution du C, donc on achète (et on fabrique) les processeurs qui sont efficace pour ça, et les autres architectures sont oubliées depuis longtemps. Les compilateurs s'adaptent également à ces processeurs courants. Et si quelqu'un vient proposer un langage avec des idées radicalement différentes, il vient se heurter à des processeurs pas forcément adaptés et donc à une pénalité de performances.

  • [^] # Re: Aucune légitimité

    Posté par  (site web personnel, Mastodon) . En réponse au lien B. Kernighan (co-créateur d'Unix) sur Rust : « Je ne pense pas qu'il va remplacer C tout de suite ». Évalué à 6 (+5/-2).

    Le C était proche du matériel du PDP-11 sur lequel il a été conçu. Il n'est pas du tout proche du matériel actuel, malgré les efforts des fabricants de processeurs pour adapter leur architecture à l'exécution du C et de langages apparentés (stockage de grosse données sur la pile d'exécution; opérations sur les pointeurs avec plusieurs niveaux d'indirection; …). Ce sont des choses qui n'étaient pas du tout évidentes à l'époque de l'invention du C. En d'autres termes, c'est le hardware actuel qui est proche du C, et non lwinverse.

    Les choses seraient certainement plus simples avec un langage plus haut niveau laissant le soin au compilateur et au fabricant de processeur de choisir comment l'implémenter.

    Si Rust a autant de succès que C, un jour ou lwautre on verra apparaître dans les processeurs et dans les systèmes d'exploitation de nouvelles primitives (instructions, appels systèmes, …) pour l'implémenter plus efficacement.

  • [^] # Re: tu oublies que ça se compile

    Posté par  (site web personnel, Mastodon) . En réponse au journal Microsoft libère le code de leur Basic pour le microprocesseur 6502. Évalué à 5 (+2/-0).

    Le code ascii définit les 128 premiers caractères, si on encode sur 8 bits on peut faire un peu ce qu'on veut avec les 128 autres.

    Le BASIC étant dévelophé sur un PDP-10, une machine avec des mots de 36 bits découpables en 2x18 bits, c'est sûrement un peu différent. Le listing a l'air de ne pas utilise de lettres minuscules par exemple, il est donc loin d'exploiter toutes les possibilités de l'encodage ascii!

  • [^] # Re: appli privatrice

    Posté par  (site web personnel, Mastodon) . En réponse au journal Lettre ouverte à Radio France. Évalué à 5 (+2/-0).

    La version sncf gares et connexions aussi. Il y a des écrans partout dans les gares. Avant ils affichaient les horaires de départ des trains. Maintenant ils affichent "les horaires de départ des trains sont dans notre application".

  • [^] # Re: Le cas Commodore

    Posté par  (site web personnel, Mastodon) . En réponse au journal Microsoft libère le code de leur Basic pour le microprocesseur 6502. Évalué à 3 (+0/-0).

    Il suffit de compiler le code et de vérifier qu'on obtient une image de ROM identique à l'original, ce sera probablement plus rapide à vérifier

  • [^] # Re: tu oublies que ça se compile

    Posté par  (site web personnel, Mastodon) . En réponse au journal Microsoft libère le code de leur Basic pour le microprocesseur 6502. Évalué à 8 (+5/-0). Dernière modification le 05 septembre 2025 à 15:03.

    La version de 1975 était pour le processeur Intel 8080, et en particulier pour le micro-ordinateur Altaïr.

    A priori, les sources ne sont pas disponibles publiquement. Mais une copie est disponible à Harvard. Elle a été découverte lors d'un déménagement, elle était tombée derrière des meubles, "quelques temps avant 1980". Heureusement, un des professeurs présents sur place lors de ces travaux a compris que ça ne devrait pas partir à la poubelle et l'a confié aux archivistes.

    Voilà comment fonctionne la préservation des logiciels…

  • [^] # Re: tu oublies que ça se compile

    Posté par  (site web personnel, Mastodon) . En réponse au journal Microsoft libère le code de leur Basic pour le microprocesseur 6502. Évalué à 10 (+10/-0).

    OK j'ai compris ce qu'il s'est passé, il s'agit bêtement d'une erreur de lien vers le side de Michael Steil dans l'annonce de Microsoft.

    Ils ont mis un lien vers cette page de 2008 qui contient des sources obtenues par reverse engineering.

    Mais Michael Steil ne s'est pas arrêté là, et en 2015 il a retrouvé les sources originales. Pas du tout dans les archives de Microsoft, mais via un site coréen, qui lui-même avait récupéré des fichiers de Apple qui ont fuité via un certain David T. Craig qui avait publié du code source liés aux Apple ][ et au Lisa en 1993. Cette partie est expliquée à la fin de l'article, et le processus de développement sur PDP-10 et les outils utilisés sont également expliqués. Je comprend mieux que Microsoft ne se soit pas vanté des origines de ce code plus en détail, si j'étais mauvaise langue je dirais qu'ils ont fait exprès de se tromper de page dans leur annonce.

    La bonne nouvelle, c'est que maintenant j'ai les réponses à mes questions et qu'il y a moins de doutes sur la provenance de ce code. On ne saura pas exactement quelle modifications Apple ou David Craig ou les autres personnes qui ont eu ces fichiers entre leurs mains ont pu y apporter, mais on a une explication précise du reformatage fait par Michael Steil pour tenter de se rapprocher de ce à quoi pouvait ressembler le code original.

  • [^] # Re: tu oublies que ça se compile

    Posté par  (site web personnel, Mastodon) . En réponse au journal Microsoft libère le code de leur Basic pour le microprocesseur 6502. Évalué à 7 (+4/-0).

    Oui, en regardant les fichiers de plus près, ça semple vraiment venir des archives (avec par exemple les commentaires tout en majuscules d'époque), mais ce n'est pas très clair (les explications dans le blog pointent plutôt vers autre chose?) et ça manque de traçabilité, ce qui est dommage.

    La moindre des choses (dans ce contexte d'archivage et de préservation historique) serait de préciser:
    - d'où viennent les fichiers utilisés
    - qu'est-ce qui a été modifié (changement d'encodage? Numérisation d'un listing papier avec risque d'erreurs de reconnaissance de caractères? Changement de support de stockage c'est à peu près certain)
    - qu'est-ce qui a été ajouté (par exemple, le fichier gitignore antidaté, c'est assez maladroit)
    - qu'est-ce qui a été perdu hour l'instant (les informations sur la chaîne de compilation, par exemple, dont on peut déduire des commentaires qu'il s'agissait d'outils fonctionnant sur un PDP-10 avec un simulateur de 6502)

    Ce sont ces informations manquantes qui font que on doute sur l'authenticité du code source, ou en tout cas, c'est difficile de dire à quel point il a pu être altéré. Et donc, même si ce fichier est finalement authentique, on ne peut pas en être sûr.

    Pour l'exemple du fichier gitignore: ça nous semble évident aujourd'hui. Mais si un historien de l'informatique trouvait ces fichiers dans 50 ans (ou plus), tels qu'ils ont été publiés, ça pourrait le à devoir faire des recherches supplémentaires sur la date d'apparition de git, chose qui ne serait pas forcément simple à ce moment là (j'espère que si, mais on ne sait jamais).

    Il y a quelques rois quand j'ai voulu trouver ds infos sur certaias contrôleurs vidéo commercialisés dans les années 70, j'ai eu quelques difficultés à trouver des infos fiaples. Le 6845 de Motorola aurait soi-disant été conçu par Hitachi, mais je ne trouve que des sources récentes à ce sujet qui répètent la même chose sans source fiable. Pour les dates de commercialisation, impossiple de trouver quoi que ce soit, la meilleure solution est d'éplucher les pages de publicités de magasines où des revendeurs font apparaître le composant à leur catalogue. Et quand il s'agit oe trouver la date de fin de production, n'en parlons même pas.

  • [^] # Re: tu oublies que ça se compile

    Posté par  (site web personnel, Mastodon) . En réponse au journal Microsoft libère le code de leur Basic pour le microprocesseur 6502. Évalué à 10 (+11/-0).

    Je lis l'annonce de Microsoft qui dit:

    Over the years, dedicated preservationists have reconstructed build environments and verified that the historical source can still produce byte-exact ROMs. Notably, Michael Steil documented and rebuilt the original BASIC process for multiple targets. He has ported the code to assemblers like cc65, making it possible to build and run on modern systems.

    This open-source release builds on that work, now with a clear, modern license

    Je lis la page de Michael Steil qui est liée:

    If you disassemble a single binary, you can never tell why something was done in a certain way. If you have eight different versions, you can tell a lot. This episode of “Computer Archeology” is about reverse engineering eight different versions of Microsoft BASIC 6502 (Commodore, AppleSoft etc.), reconstructing the family tree, and understanding when bugs were fixed and when new bugs, features and easter eggs were introduced.

    Ma conclusion est qu'il s'agit oe reverse engineering. Microsoft aurait remis le source dans un format permettant de le compiler sur les logiciels d'époque, mais il n'y a aucune mention nulle part de:

    • comment ces fichiers ont été restaurés à partir de sauvegardes de 1978 (je ne pense pas que Bill Gates a dit "ah oui bien sûr je les ai toujours migré d'une machine à l'autre à chaque fois que j'ai fait un upgrade, tenez voici les fichiers". Éventuellement on peut imaginer qu'ils avaient une version sur papier et que le travail de Michael Steil a permis de vérifier que le code générait bien des binaires identiques?
    • Même l'illustration du blog de Microsoft est une photo de la version du basic pour intel 8080 qui est exposée dans un musée.
    • quels outils il faut utiliser pour les compiler? Le readm dit "Assembly Format: Compatible with period assemblers for 6502 development"

    Il y a quelques autres bizarreries comme le fichier .gitignore antidaté à il y a 48 ans (bien avant l'invention de git, si vous n'avez pas suivi). Pour moi cela rend ces infos peu exploitabnes si on veut étudier ce source comme un artefact historique. Peut-être qu'il est authentique, que Microsoft est effectivement très bon pour garder des backups de son code source pendant 50 ans sur des supports facilement accessibles, et qu'ils ont juste eu à récupérer le fichier sur leur serveur de sources actuel oùeil était disponible. Mais ça manque de preuves pour en établir l'authenticité, ce qui serait intéressant si on veut s'en servir pour étudier comment les développeurs géraient la compilation conditionelle en 1978 pour cibler plusieurs machines avec le même source.

    Si on veut simplement étudier le fonctionnement du BASIC ou le porter sur une nouvelle machine, par contre, l'officialisation de la license par Microsoft est une très bonne nouvelle!

  • [^] # Re: tu oublies que ça se compile

    Posté par  (site web personnel, Mastodon) . En réponse au journal Microsoft libère le code de leur Basic pour le microprocesseur 6502. Évalué à 10 (+7/-0).

    Le code qui est publié est une reconstruction de sources à partir de l'analyse des binaires de multiples versions du BASIC pour différentes machnes. Plus d'explications par lwauteur de ce travail. Microsoft a récupéré ces informations et a "officialisé" la chose et la license (ce qui pose question, car une partie des changements documentés ne sont pas de leur fait, mais d'entreprises qui avaient acheté et "forké" le BASIC). Est-ce qu'ils ont tout puolié, ou bien ils ont pris soin dans leur version de ne garder que les variantes sur lesquelles ils sont effectivement propriétaires du copyright?

  • [^] # Re: Compliqué les nouveaux patrons de tapisserie

    Posté par  (site web personnel, Mastodon) . En réponse au journal Conception d’un circuit intégré avec OpenRoad. Évalué à 4 (+1/-0).

    J'avais vu passer les photos sur le fediverse mais je n'avais pas lu l'aticle complet, qui explique un peu pourquoi ce tissage existe. J'ai appris plein de choses sur la fabrication de circuits intégrés par les indiens Navajo dans les années 1960-70, dont certains qui se trouvent peut-être sur la Lune.

  • [^] # Re: Solution fonctionnelle actuellement ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien Mastodon says it doesn’t ‘have the means’ to comply with age verification laws. Évalué à 5 (+2/-0).

    J'ai lu ici que plusieurs sites pornos parmi les plus connus ont été bloqués en France faute d'avoir mis en place une vérification de l'âge (puis peut-être débloqués, voire rebloqués… il me semble que le feuilleton a été assez complexe et je ne me rappelle plus de la fin).

    Pas vraiment, une loi demandant aux sites pornos de mettre une vérification d'âge en place été publiée, certains sites (pornhub, youporn et d'autres appartenant au même éditeur) se sont auto-bloqués avec un message expliquant pourquoi ils sont opposés à cette loi avant même qu'elle soit appliquée.

    Cela leur a permis d'indiquer clairement à leur clientèle que le blocage n'est effectif qu'en France, et donc il y a eu un pic d'abonnement à divers services de VPN.

    D'autres sites ont mis en place diverses vérifications ou se sont engagés à le faire.

    Je ne crois pas qu'il y aie de blocage effectif pour l'instant. Et s'il y en avait un, ce sera probablement une mesure du type blocage DNS (plutôt facile à contourner) si les sites en question ne sont pas hébergés en France (ils ne le sont pas pour la plupart).

  • [^] # Re: Résumé de la situation

    Posté par  (site web personnel, Mastodon) . En réponse au lien Mastodon says it doesn’t ‘have the means’ to comply with age verification laws. Évalué à 4 (+1/-0).

    Ta restriction d'âge sur youporn, c'est un peu comme mettre un barrière d'1m de haut, sur un carré de 2m/2m sur une plage de la baie du mont saint-Michel pour interdire de ramasser du sable.

    Je croyais qu'on essayait de la désensabler, cette baie?