CompilerFax ou comment compiler du code C par fax !
Vous connaissez le principe du fax ?
Vous mettez votre document dans la machine, vous composez le numéro du destinataire, et hop le document est transmis via la ligne téléphonique et imprimé à distance. C’était fou pour l’époque ! Alors si je vous dis qu’un bidouilleur a détourné cette bonne vieille technologie pour en faire un compilateur C par fax, j’suis sûr que vous n’allez pas me croire.
Eh oui, grâce au projet délirant CompilerFax, vous pouvez désormais envoyer votre code C par fax, le faire compiler et exécuter sur un Raspberry Pi distant, et recevoir le résultat… à nouveau par fax ! Un vrai délire rétro-tech, un mashup improbable entre une technologie d’un autre siècle et du logiciel moderne. J’adore ce genre de projets WTF alors j’étais obligé de vous en parler !
Vous écrivez donc votre code C sur une belle feuille de papier, en utilisant une police adaptée à la reconnaissance optique de caractères (OCR). La police Calibri semble donner de bons résultats et n’oubliez pas d’ajouter en commentaire la ligne magique //REPLY=
suivie de votre numéro de fax, sinon vous ne recevrez pas la réponse !
Selon les tests, le taux d’erreur de l’OCR varie selon les polices utilisées car certains caractères comme O, i ou x sont souvent mal interprétés. Il vaut donc mieux vaut les éviter dans vos noms de variables, et pensez aussi à bien espacer votre code pour faciliter la reconnaissance.
Ensuite, direction votre fax préféré, vous composez le numéro de CompilerFax et vous envoyez votre code. De l’autre côté, un Raspberry Pi équipé d’un modem fax reçoit votre document, en extrait le code avec un outil d’OCR comme Tesseract OCR, le compile avec GCC et l’exécute dans un environnement sandboxé sous Alpine Linux (pour éviter que des petits malins exploitent des failles). Le résultat vous revient ensuite par fax illico presto ! Enfin, dans un délai raisonnable puisque la compilation est limitée à 20 secondes et l’exécution à 60 secondes. Au-delà, le programme est interrompu.
Derrière ce projet farfelu se cache de la bidouille de haut vol car le créateur de CompilerFax, Lex Bailey, a dû déployer des trésors d’ingéniosité pour faire dialoguer ces technologies que tout oppose. Et si ça vous branche, l’intégralité du code source est disponible sur Github.
Bon, je vous l’accorde, le débit de 9600 bits/s du fax, ce n’est pas idéal pour envoyer des gros programmes c’est pour cela que pour l’instant, seul l’envoi d’une page est supporté et la qualité de l’OCR n’est pas toujours au rendez-vous mais au final, CompilerFax fonctionne et permet de retourner un peu aux sources, à un rythme plus humain dans notre monde où tout est quasi-immédiat.
Belle bidouille en tout cas !