{"id":10274,"date":"2013-12-21T23:25:20","date_gmt":"2013-12-22T04:25:20","guid":{"rendered":"http:\/\/scruss.com\/blog\/?p=10274"},"modified":"2025-01-23T14:56:10","modified_gmt":"2025-01-23T19:56:10","slug":"introducing-raftp-the-really-annoying-file-transfer-protocol","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2013\/12\/21\/introducing-raftp-the-really-annoying-file-transfer-protocol\/","title":{"rendered":"Introducing RAFTP: the Really Annoying File Transfer Protocol"},"content":{"rendered":"<p>I would like to describe a new and highly impractical method of transferring data between computers. Modern networks are getting more efficient every year. This protocol aims to reverse this trend, as RAFTP features:<\/p>\n<ol>\n<li>Slow file transfers<\/li>\n<li>A stubborn lack of error correction<\/li>\n<li>The ability to irritate neighbours while ensuring inaccurate transmission through playing the data over the air using <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bell_202_modem\">Bell 202<\/a> tones.<\/li>\n<\/ol>\n<figure id=\"attachment_10277\" aria-describedby=\"caption-attachment-10277\" style=\"width: 90px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/12\/doge-small-tx.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-10277\" src=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/12\/doge-small-tx.png\" alt=\"doge-small-tx\" width=\"90\" height=\"120\" \/><\/a><figcaption id=\"caption-attachment-10277\" class=\"wp-caption-text\">Figure 1<\/figcaption><\/figure>\n<p style=\"text-align: left;\">Figure 1 shows a test image before it was converted into <a href=\"http:\/\/netpbm.sourceforge.net\/doc\/pgm.html\">PGM<\/a> format. This was then converted into an audio file using\u00a0 <a href=\"http:\/\/www.whence.com\/minimodem\/\">minimodem<\/a>:<\/p>\n<pre style=\"text-align: left;\">minimodem --tx -v 0.90 -f doge-small-1200.wav 1200 &lt; doge-small-tx.pgm<\/pre>\n<p>This file was then transferred to an audio player. To ensure maximal palaver, the audio player was connected to a computer via a USB audio interface and a long, minimally-shielded audio cable. The output was captured as mp3 by <a href=\"http:\/\/audacity.sourceforge.net\/\">Audacity<\/a> as this file: <a href=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/12\/RAFTP-demo.mp3\">RAFTP-demo<\/a><\/p>\n<p>The mp3 file was then decoded back to an image:<\/p>\n<pre>madplay -o wav:- RAFTP-demo.mp3 | minimodem --rx -q -f - 1200 | rawtopgm 90 120 | pnmtopng &gt; doge-small-rx.png<\/pre>\n<p>Figure 2 shows the received and decoded file:<\/p>\n<figure id=\"attachment_10276\" aria-describedby=\"caption-attachment-10276\" style=\"width: 90px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/12\/doge-small-rx.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-10276\" src=\"http:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2013\/12\/doge-small-rx.png\" alt=\"Figure 2\" width=\"90\" height=\"120\" \/><\/a><figcaption id=\"caption-attachment-10276\" class=\"wp-caption-text\">Figure 2<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>I would like to describe a new and highly impractical method of transferring data between computers. Modern networks are getting more efficient every year. This protocol aims to reverse this trend, as RAFTP features: Slow file transfers A stubborn lack of error correction The ability to irritate neighbours while ensuring inaccurate transmission through playing the [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[1747,1104,2761,2763,2762],"class_list":["post-10274","post","type-post","status-publish","format-standard","hentry","category-computers-suck","tag-annoying","tag-audio","tag-bell202","tag-doge","tag-ftp"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-2FI","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/10274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/comments?post=10274"}],"version-history":[{"count":4,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/10274\/revisions"}],"predecessor-version":[{"id":17738,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/10274\/revisions\/17738"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=10274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=10274"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=10274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}