i9-3-article-tgtimes-most-minimal-gopher-client.md - tgtimes - The Gopher Times Err bitreich.org 70 hgit clone git://bitreich.org/tgtimes git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/tgtimes URL:git://bitreich.org/tgtimes git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/tgtimes bitreich.org 70 1Log /scm/tgtimes/log.gph bitreich.org 70 1Files /scm/tgtimes/files.gph bitreich.org 70 1Refs /scm/tgtimes/refs.gph bitreich.org 70 1Tags /scm/tgtimes/tag bitreich.org 70 1README /scm/tgtimes/file/README.md.gph bitreich.org 70 i--- Err bitreich.org 70 i9-3-article-tgtimes-most-minimal-gopher-client.md (3586B) Err bitreich.org 70 i--- Err bitreich.org 70 i 1 # Most minimal gopher client by tgtimes Err bitreich.org 70 i 2 Err bitreich.org 70 i 3 Gopher is a protocol allowing browsing text, images interactively, Err bitreich.org 70 i 4 reach telnet interfaces, and download any file, or open any URL, Err bitreich.org 70 i 5 for custom action to be chosen by the user. Err bitreich.org 70 i 6 Err bitreich.org 70 i 7 ## Network Err bitreich.org 70 i 8 One reliable way to fetch the content from internet would be Ethernet, Err bitreich.org 70 i 9 but convenience and price would push toward using radio transmission Err bitreich.org 70 i 10 such as WiFi. Err bitreich.org 70 i 11 Err bitreich.org 70 i 12 Ethernet would require an extra transceiver chip, while wifi takes mostly Err bitreich.org 70 i 13 just a wire acting as antenna, which partly explains its low cost. Err bitreich.org 70 i 14 Err bitreich.org 70 i 15 ## Processing Err bitreich.org 70 i 16 One inexpensive family of processors featuring a high cost-to-performance Err bitreich.org 70 i 17 ratio, which also features WiFi, is the ESP32. The C3 iteration even uses Err bitreich.org 70 i 18 the open-source architecture RISC-V. The speed is decent enough for Err bitreich.org 70 i 19 decoding JPEG an PNG, or support TLS as used in gophers://. Err bitreich.org 70 i 20 Err bitreich.org 70 i 21 ## Display Err bitreich.org 70 i 22 The cost of displays have dropped considerably as they invaded the market. Err bitreich.org 70 i 23 Economy of scale made small color displays even cheaper than Err bitreich.org 70 i 24 character-based displays. Err bitreich.org 70 i 25 Err bitreich.org 70 i 26 ## Input Err bitreich.org 70 i 27 Browsing content is a lot about scrolling. Since we do custom hardware, Err bitreich.org 70 i 28 capacitive touch buttons can be used for little to no extra cost. Err bitreich.org 70 i 29 This could permit a smooth scrolling through the content. Err bitreich.org 70 i 30 Err bitreich.org 70 i 31 Once again, mostly requiring wires, this cuts the price and explain Err bitreich.org 70 i 32 their popularity. Err bitreich.org 70 i 33 Err bitreich.org 70 i 34 ## Text Err bitreich.org 70 i 35 Text is compact and efficient, and bitmap font requires a bit of storage Err bitreich.org 70 i 36 for all the common non-ASCII characters, but ESP32 have 16MB of flash Err bitreich.org 70 i 37 storage enough for the entire uncompressed Unifont: Err bitreich.org 70 i 38 Err bitreich.org 70 i 39 http://unifoundry.com/unifont/ Err bitreich.org 70 i 40 Err bitreich.org 70 i 41 ## Audio Err bitreich.org 70 i 42 Producing sound does not cost much more than a small audio amplifier, Err bitreich.org 70 i 43 software for decoding MP3, and a 3.5mm Jack connector. Err bitreich.org 70 i 44 Very small cost added. Err bitreich.org 70 i 45 Err bitreich.org 70 i 46 ## Extension Err bitreich.org 70 i 47 An USB interface would allow plugging the device to a computer for Err bitreich.org 70 i 48 either automation or using a full keybaord. Err bitreich.org 70 i 49 Err bitreich.org 70 i 50 ## Power Err bitreich.org 70 i 51 A small dedicated battery could be included increasing the cost, Err bitreich.org 70 i 52 but getting all power from USB would also preserve the choice to Err bitreich.org 70 i 53 the user, free to chose a wall charger or portable power bank. Err bitreich.org 70 i 54 Err bitreich.org 70 i 55 ## Enclosure Err bitreich.org 70 i 56 A custom 3D printed case would allow keeping the cost very low Err bitreich.org 70 i 57 even at small volume production. Err bitreich.org 70 i 58 Err bitreich.org 70 i 59 There exist boards around 5 USD which would provide all of the above Err bitreich.org 70 i 60 except audio and a few wires, typically the size of an MP3 player. Err bitreich.org 70 i 61 The grand total bill of material could realistically approach 10 USD. Err bitreich.org 70 i 62 An actual product could eventually reach as low as 15 USD if keeping Err bitreich.org 70 i 63 only a small margin for the seller, and eventually lower if produced Err bitreich.org 70 i 64 on a larger scale. Err bitreich.org 70 i 65 Err bitreich.org 70 i 66 The support of TLS does not bring any cost in this example: an ESP8266 Err bitreich.org 70 i 67 could be used at around 0.85 USD instead of 1.25 USD for the ESP32-C3, Err bitreich.org 70 i 68 but is also capable of TLS. Err bitreich.org 70 i 69 Image decoding would then probably be much slower. Err bitreich.org 70 i 70 By far the most resource hungry part of this project. Err bitreich.org 70 i 71 Err bitreich.org 70 i 72 Writing the software for such a product from the ground up could take Err bitreich.org 70 i 73 typically an entire week, including JPEG and PNG decoding libraries, Err bitreich.org 70 i 74 image and font rendering, writing driver for all the parts involved, Err bitreich.org 70 i 75 integrating the TCP/IP stack and TLS stack. Err bitreich.org 70 i 76 Err bitreich.org 70 i 77 While an XML parser able to fetch content over HTTP would be relatively Err bitreich.org 70 i 78 as difficult to build, this would not permit the same level of user Err bitreich.org 70 i 79 experience as the Gopher-based project: CSS and JavaScript are becoming Err bitreich.org 70 i 80 an increasingly frequent requirement to access the Web, and reimplementing Err bitreich.org 70 i 81 a new compatible rendering engine is not feasible to a single person. Err bitreich.org 70 i 82 Err bitreich.org 70 i 83 This requirement would in turn affect the minimal performance of the Err bitreich.org 70 i 84 processing unit used: a processor in the GHz range with RAM in the Err bitreich.org 70 i 85 GB range, in particular if anticipating future needs of the Web Err bitreich.org 70 i 86 software system. Err bitreich.org 70 .