|
|
article-tgtimes-most-minimal-gopher-server.mw - tgtimes - The Gopher Times |
|
|
 |
git clone git://bitreich.org/tgtimes git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/tgtimes (git://bitreich.org) |
|
|
 |
Log |
|
|
 |
Files |
|
|
 |
Refs |
|
|
 |
Tags |
|
|
 |
README |
|
|
|
--- |
|
|
|
article-tgtimes-most-minimal-gopher-server.mw (2408B) |
|
|
|
--- |
|
|
|
1 .SH tgtimes |
|
|
|
2 Most minimal Gopher server |
|
|
|
3 . |
|
|
|
4 .PP |
|
|
|
5 Gopher is a protocol providing a gateway to a document system, allowing |
|
|
|
6 to serve an organized hierarchy of files over the network. Dynamically |
|
|
|
7 generating the content as per user requests is also possible. The client |
|
|
|
8 side is in charge of rendering the content as it sees fit. |
|
|
|
9 . |
|
|
|
10 .PP |
|
|
|
11 Generating Gopher indexes and transmitting file contents or generated |
|
|
|
12 contents is low in software compmlexity, and in turn allows less expensive |
|
|
|
13 hardware to be run than complex web stacks. |
|
|
|
14 . |
|
|
|
15 .PP |
|
|
|
16 Which cost would we end-up for building a minimal piece of hardware able |
|
|
|
17 to host the Gopher protocol acheiving all of the above? |
|
|
|
18 The Gopher Times investigates. |
|
|
|
19 . |
|
|
|
20 .IP "Communication" |
|
|
|
21 While WiFi is inexpensive and fits moving device gracefully, the |
|
|
|
22 reliability of Ethernet is indicated for a server. Ethernet adds |
|
|
|
23 1 USD of cost for the transceiver handling the electricial characteristics |
|
|
|
24 of Ethernet. These typically expose an RGMII interface. |
|
|
|
25 . |
|
|
|
26 .IP "Processing" |
|
|
|
27 A microcontroller featuring an Ethernet peripheral (with an RGMII |
|
|
|
28 interface) could be the popular STM32F103, or an alternative |
|
|
|
29 compatible part. Enough processing power would be present for an |
|
|
|
30 embedded TCP/IP and a TLS stack. |
|
|
|
31 . |
|
|
|
32 .IP "Automation" |
|
|
|
33 In addition, most microcontrollers feature a large range of |
|
|
|
34 built-in peripheral such as timers and communication or analog |
|
|
|
35 interfaces, enabling automation of devices such as lighting, |
|
|
|
36 heating, laundry, motors, or an entire car, through external |
|
|
|
37 modules. This would come for no extra cost. |
|
|
|
38 . |
|
|
|
39 .IP "Storage" |
|
|
|
40 A slot for a MicroSD card would allow storing and updating |
|
|
|
41 the static content to serve, and storing network configuration. |
|
|
|
42 . |
|
|
|
43 .IP "Scripting" |
|
|
|
44 There exist project to fit programming languages onto microcontrollers. |
|
|
|
45 Separate projects for supporting a subset of each of Python, Ruby, |
|
|
|
46 Javscript, Go, Rust, Lua, Forth and more. |
|
|
|
47 . |
|
|
|
48 .IP "Power" |
|
|
|
49 By letting power supply happen through the USB port, a large range |
|
|
|
50 of power source can be used, such as battery, solar panels, wind |
|
|
|
51 turbine, hydropower, or power outlet. |
|
|
|
52 . |
|
|
|
53 .PP |
|
|
|
54 The bill of materials for such a design would approximate 5 USD. |
|
|
|
55 A marketed device with a small margin for the seller could reach |
|
|
|
56 as low as 10 USD. |
|
|
|
57 . |
|
|
|
58 .PP |
|
|
|
59 Interestingly, such a device would also be able to provide an |
|
|
|
60 equivalent Web service able to work with all Web client, but |
|
|
|
61 not running the existing popular Web server software stacks |
|
|
|
62 known as "Web Frameworks". |
|