,________________________________________________________________________, | ,_______,,_, _____ ,_, | | |#######||#| __ ___ ,'#####| ___ ____ |#| __ ___ _ __ | | |#| |#|/##\ /###\ |#| /###\ /####\ |#|/##\ /###\ \\/##\ | | |#| |#|/ \#||#|_|#| |#| ___|#| |#||#| |#||#|/ \#||#|_|#||#| || | | ,|#|, |#| |#||#|___ |#|__|#||#|_|#||#|_|#||#| |#||#|___ |#| | | \###/ \#/ \#/ \###/ \#####/ \###/ |#:70/ \#/ \#/ \###/ \#/ | | ,_______, _ |#| | | |#######|(o) _ __ __ ___ ___ \#/ _,-' ) | | |#| /#\ \\/##\/##\ /###\ /###\ ( ,-' _,-' ) | | |#| |#| |#| |#| |#||#|_|#||#|__ ( ,-' _,-' ) | | ,|#|, |#| |#| |#| |#||#|___ _\##| ( ,-' | | \###/ \#/ \#/ \#/ \#/ \###/ |###/ | |________________________________________________________________________| | Opus 7 Gopher News and More gophers://bitreich.org/1/tgtimes | `------------------------------------------------------------------------` ,---- [ Shell Redirections by athas ] | | Newcomers to the Unix shell quickly encounter handy tools such as | sed(1) and sort(1). This command prints the lines of the given file | to stdout, in sorted order: | |  $ sort numbers | | Soon after, newcomers will also encounter shell redirection, by which | the output of these tools can conveniently be read from or stored in | files: | |  $ sort < numbers > numbers_sorted | | Our new user, fascinated by the modularity of the Unix shell, may then | try the rather obvious possibility of having the input and output file | be the same: | |  $ sort < numbers > numbers | | But disaster strikes: the file is empty! The user has lost their | precious collection of numbers - let's hope they had a backup. Losing | data this way is almost a rite of passage for Unix users, but let us | spell out the reason for those who have yet to hurt themselves this | way. | | When the Unix shell evaluates a command, it starts by processing the | redirection operators - that's the '>' and '<' above. While '<' just | opens the file, '>' *truncates* the file in-place as it is opened for | reading! This means that the 'sort' process will dutifully read an | empty file, sort its non-existent lines, and correctly produce empty | output. | | Some programs can be asked to write their output directly to files | instead of using shell redirection (sed(1) has '-i', and for sort(1) | we can use '-o'), but this is not a general solution, and does not | work for pipelines. Another solution is to use the sponge(1) tool | from the "moreutils" project, which stores its standard input in | memory before finally writing it to a file: | |  $ sort < numbers | sponge numbers | | The most interesting solution is to take advantage of subshells, the | shell evaluation order, and Unix file systems semantics. When we | delete a file in Unix, it is removed from the file system, but any | file descriptors referencing the file remain valid. We can exploit | this behaviour to delete the input file *after* directing the input, | but *before* redirecting the output: | |  $ (rm numbers && sort > numbers) < numbers | | This approach requires no dependencies and will work in any Unix | shell. | `---- ,---- [ Library of Babel now available on gopherspace. by Bitreich ] | | The Library of Babel is a place for scholars to do research, for artists | and writers to seek inspiration, for anyone with curiosity or a sense of | humor to reflect on the weirdness of existence - in short, it's just like | any other library. If completed, it would contain every possible | combination of 1,312,000 characters, including lower case letters, space, | comma, and period. Thus, it would contain every book that ever has been | written, and every book that ever could be - including every play, every | song, every scientific paper, every legal decision, every constitution, | every piece of scripture, and so on. At present it contains all possible | pages of 3200 characters, about 104677 books. | |  https://libraryofbabel.info/About.html | | Now available on gopherspace! | |  gophers://bitreich.org/1/babel | `---- ,---- [ Donkey Meter goes online. by Bitreich ] | | Have you ever wondered, how much traffic is used on Bitreich.org? Now you | can see it. In combination with our French friends who spread donkey | technology, we now have a Donkey Meter: | |  gophers://bitreich.org/1/donkeymeter | | It takes a second to load due to donkey technology restrictions. | You might also be interested in our Large Donkey Collider technology. | `---- ,---- [ Most minimal Gopher server by tgtimes ] | | Gopher is a protocol providing a gateway to a document system, allowing | to serve an organized hierarchy of files over the network. Dynamically | generating the content as per user requests is also possible. The client | side is in charge of rendering the content as it sees fit. | | Generating Gopher indexes and transmitting file contents or generated | contents is low in software compmlexity, and in turn allows less expensive | hardware to be run than complex web stacks. | | Which cost would we end-up for building a minimal piece of hardware able | to host the Gopher protocol acheiving all of the above? | The Gopher Times investigates. | | Communication | While WiFi is inexpensive and fits moving device gracefully, the | reliability of Ethernet is indicated for a server. Ethernet adds | 1 USD of cost for the transceiver handling the electricial characteristics | of Ethernet. These typically expose an RGMII interface. | | Processing | A microcontroller featuring an Ethernet peripheral (with an RGMII | interface) could be the popular STM32F103, or an alternative | compatible part. Enough processing power would be present for an | embedded TCP/IP and a TLS stack. | | Automation | In addition, most microcontrollers feature a large range of | built-in peripheral such as timers and communication or analog | interfaces, enabling automation of devices such as lighting, | heating, laundry, motors, or an entire car, through external | modules. This would come for no extra cost. | | Storage | A slot for a MicroSD card would allow storing and updating | the static content to serve, and storing network configuration. | | Scripting | There exist project to fit programming languages onto microcontrollers. | Separate projects for supporting a subset of each of Python, Ruby, | Javscript, Go, Rust, Lua, Forth and more. | | Power | By letting power supply happen through the USB port, a large range | of power source can be used, such as battery, solar panels, wind | turbine, hydropower, or power outlet. | | The bill of materials for such a design would approximate 5 USD. | A marketed device with a small margin for the seller could reach | as low as 10 USD. | | Interestingly, such a device would also be able to provide an | equivalent Web service able to work with all Web client, but | not running the existing popular Web server software stacks | known as "Web Frameworks". | `---- ,---- [ Gemini2gopher proxy now at Bitreich by 20h ] | | As of the announcement of osnews.com to have a gemini capsule, this | content should be available via gopher too. So I dig into a simple | translation of gemini to gopher. | | There is a now a proxy running at: | |  gophers://bitreich.org/1/\ |  gemini?gemini://gemini.osnews.com | | You can get the v0.1 release of the proxy at: | |  git://bitreich.org/gemini2gopher-proxy |  gophers://bitreich.org/1/scm/gemini2gopher-proxy | | Have fun! Please send in bugs you encounter. The goal was to display the | osnews.com gemini capsule. | `---- ,---- [ Geomyidae v0.96 release by Bitreich. ] | | After Brcon2023 people tested the new features in geomyidae and some | major bugs were fixed, so now the v0.96 release is ready. Please see the | talk at brcon2023 for the vast changelog and description of the new | (flexible and complex) features: | |  gophers://bitreich.org/0/con/2023/rec/state-of-geomyidae.md | | In addition: | |  * TLS was completely fixed. It now works on OpenBSD. |  * Thanks Evil_Bob and adc for debugging this! |  * Connection and serving of files is now vastly improved due |  to reverse DNS lookup not being default. |  * Thanks Evil_Bob for finding this! |  * We need to fix the DNS Internet. | | And don't forget BOB! Don't drink and write programming languages! | | Here are the links for package maintainers: | |  git://bitreich.org/geomyidae |  gophers://bitreich.org/1/scm/geomyidae | | Have much fun with geomyidae! | `---- ,---- [ Groundhog Day Service Page online. by Bitreich ] | | At Bitreich we support the culture of grounded, based and ecological- and | animal-friendly technology. In this sense, it is natural for us to | support Groundhog Day, the scientific measurement for winter length | prediction. In preparation for our now yearly celebration of this day, we | now offer the current groundhog shadow status on Bitreich: | |  gophers://bitreich.org/1/groundhog-day | | Future prediction has never been that easily and worldwide available! | Now groundhog was harmed in the production of this service! | `---- +------------------------------------------------------------------------+ | | | ADVERTISEMENT | | | | | | * You really want this cat to be weber-cooked? | | | | ______________________ | | | Meow |..| | | | / |oo| | | * NO? | o o |/\| | | | (m) . |\/| | | |____(___)________|__| | | | | | | * You can only stop us by talking to us at: | | | | | | | | #bitreich-cooking on irc.bitreich.org | | | | | | | | | +------------------------------------------------------------------------+ ,---- [ Gopher 2007 Pearl Project ] | | Do you like adventures? | Do you like to discover? | Many treasures are awaiting you! | Get ready to search for the pearls: | |  gophers://bitreich.org/1/gopher2007 | | The archive of gopherspace from 2007 from archive.org is now available on | Bitreich for research. | | The pearl list begins with - of course! - the gopher manifesto: | |  gophers://bitreich.org/0/gopher2007/archive/seanm.ca/\ |  70/0/nerd/gopher-manifesto.txt | | See the 'What we need' section. We completed nearly all points there. :-D | | A second pearl example: | |  gopher:s//bitreich.org/0/gopher2007/archive/seanm.ca/\ |  70/0/nerd/language_parable.txt | |  And each language could be heard to mumble as it tromped and |  tromped and tromped, with complete and utter glee: | |  Have to parse XML, eh? Have to have an XML API, eh? Have to |  work |  with SOAP and XML-RPC and RSS and RDF, eh? | |  Well parse this, you little markup asshole. | | You want to see all postscript files from back then? | |  curl -s gopher://bitreich.org/0/gopher2007/archive/\ |  non-empty-mime-files.txt | grep postscript | | I wish much fun reading and discovering even more! | `---- ,---- [ C Thaumaturgy Center opens at Bitreich by Bitreich ] | | People always had a desire for magic. | This magic does not end in modern times. | |  Any sufficiently advanced technology is indistinguishable from |  magic. |  -- Arthur C. Clarke | | So is C, C pointers and C bit twiddling: | |  gophers://bitreich.org/1/thaumaturgy | | Get your daily magic there! | | In case you have your own C magic spells laying around and want to offer | them to the public, send them to: Christoph Lohmann <20h@r-36.net> | | I will include them into the programme of the C Thaumaturgy Center. | `---- ,---- [ This's opus C Thaumaturgy ] | | // Returns the smaller integer of x and y but without a branch | // (if/else/ternary, goto etc..) | // Normally min is implemented something like this: | // return x < y ? x : y; | // But we have a branch there so let's do it witout. (The branch | // free min could be used to merge arrays for example.) | // If x < y, then -(x < y) => -1 => all 1's in two complement | // representation. | // So we have y ^ (x ^ y) => x | // If x >= y, then -(x < y) => 0 so y ^ 0 is y. | | static inline uint8_t min(const uint8_t x, const uint8_t y) { | return y ^ ((x ^ y) & -(x < y)); | } | `---- ,---- [ Bitreich Telemetry Service goes Public. by Bitreich ] | | The industry is going towards telemetry everywhere: Go programming | language logging, Windows 11 poop logging etc. | To save you from burnout | (which is what Google uses for telemetry excuse!), | Bitreich is moving forwards too. | Try it now! | |  $ git clone git://bitreich.org/geomyidae |  $ cd geomyidae |  $ make telemetry | | In case you want to use the telemetry API in your project, just us: | |  # Everything behind the second / field will be stripped. |   |  $ printf "/${projectname}/...\r\n" | nc bitreich.org 70 |   |  Thank you for installing ${projectname}! |  Nothing is logged. You can trust us, we are not Google. | | It is free to use! | `---- ,---- [ Peering Cake for IPv6 by tgtimes ] | | The Internet Protocol is the fundamental encoding and communication | convention that permits computers to reach each other across multiple | LANs. | | An Protocol to allow Inter-Network communication. | Andy Tanenbaum wrote a beautiful introduction about the underlying idea: | |  https://worldcat.org/en/title/1086268840 | | The part of Internet visible from a single user looks like a tree, with at | its root the service provider. Regardless how complex the branches are, | there is usually "the gateway", implying a single one per network, to | allow traffic to "exit", implying a single direction to go for reaching | the outter world. The routing configuration rarely changes, and is often | boiling down to "going out", implying beyond the gateway is outside.. | | The part of Internet visible from a service provider, however, looks like | a mesh, a more balanced graph, with many possible gateways, many possible | "exit" directions, and no more idea of "outside". | If you pick one possible gateway picked at random, hoping them to nicely | find the correct destination for your IP packets, they may realistically | cut your connection and never ever talk to you again, | depending on how much traffic you suddenly sent (routing your IPs to | 0.0.0.0). This happens frequently. Network admin mailing lists are | constantly active with many people discussing with many others. | | Network admins themself are usually friendly among themself, even across | concurrents, but companies do not always play nice with each other. | | There is a legendary dispute known by all Internet Service Provider (ISP) | netadmins: the two biggest international internet network providers, | Cogent and Hurricane Electric, are disconnected. | The two major IPv6 Carriers, those giants connecting the ISP togethers | across continents, are currently refusing to exchange IPv6 packets with | each other. This means that with IPv6, from a country connected to only | Cogent, it is not possible to reach a country connected to only Hurricane | Electric, and the other way around. | For this reason, all ISPs from all countries connections with many more | carriers for IPv6 than it is for IPv4, resulting in either lower stability | or higher cost. | | This strategy permits Cogent to remain competitive face to its larger | concurrents. Hurricane Electric, on the other hand, have much more | commercial advantage to perform peering with Cogent, to therefore exchange | traffic. In the diversity of attempts to get Cogent to change its mind, | Hurricane Electric decorated a large creamy cake with a message, and | shipped the cake to the headquarters of Cogent. | | Here is what the message said in 2009: | | Cogent (AS174) Please IPv6 peer with us XOXOX - Hurricane Electric | (AS6939). | |  https://www.mail-archive.com/nanog@nanog.org/msg15608.html |  https://live.staticflickr.com/2685/4031434206_656b2d8112_z.jpg |  https://www.theregister.com/2018/08/28/ipv6_peering_squabbles/ |  https://mailman.nanog.org/pipermail/nanog/2009-October/\ |  014017.html | `---- ,---- [ Announcing the "tgtimes" keyword by tgtimes ] | | As any newspaper, The Gopher Times goal is to relay information. | Through chat discussions, The Gopher Times ocasionnally collect | heirlooms which are published back to the community in this newspaper. | | We propose this way of catching The Gopher Times attention, so | that editors can collect all occurences: | In an IRC chat discussion, simply make the word "tgtimes" appear | as a way to pingback to us. | | Upon publishing The Gopher Times, the IRC logs of various channels | will be searched for this keyword, hence noticing every time someone | wanted to submit something to the The Gopher Times. | One word to say and The Gopher Times comes that way. | `---- ,---- [ bitreich-cooking by ggg ] | | In the city home to the best pubs in the English-speaking world, Truth | keeps ggg alive, tantalises him sadistically, then heals and looks after | him so the cycle can continue. Coming from China, ggg waded through lies | to learn that nothing is more powerful than Truth; coming into Cork, ggg | learnt that Truth catches up nicely with nobody, still, you would prefer | Truth's company anyway. | | Life is fierce futility. | Agony unites us. | Renaissance can come. | | 60% hustler + 20% hacker + 20% hipster tend to be ggg. | The more he writes, the less words he ends up with. | You can find ggg on #bitreich-en and #bitreich-cooking. | `---- ,---- [ Most minimal gopher client by tgtimes ] | | Gopher is a protocol allowing browsing text, images interactively, | reach telnet interfaces, and download any file, or open any URL, | for custom action to be chosen by the user. | | Network | One reliable way to fetch the content from internet would be Ethernet, | but convenience and price would push toward using radio transmission | such as WiFi. | | Ethernet would require an extra transceiver chip, while wifi takes mostly | just a wire acting as antenna, which partly explains its low cost. | | Processing | One inexpensive family of processors featuring a high cost-to-performance | ratio, which also features WiFi, is the ESP32. The C3 iteration even uses | the open-source architecture RISC-V. The speed is decent enough for | decoding JPEG an PNG, or support TLS as used in gophers://. | | Display | The cost of displays have dropped considerably as they invaded the market. | Economy of scale made small color displays even cheaper than | character-based displays. | | Input | Browsing content is a lot about scrolling. Since we do custom hardware, | capacitive touch buttons can be used for little to no extra cost. | This could permit a smooth scrolling through the content. | | Once again, mostly requiring wires, this cuts the price and explain | their popularity. | | Text | Text is compact and efficient, and bitmap font requires a bit of storage | for all the common non-ASCII characters, but ESP32 have 16MB of flash | storage enough for the entire uncompressed Unifont: | |  http://unifoundry.com/unifont/ | | Audio | Producing sound does not cost much more than a small audio amplifier, | software for decoding MP3, and a 3.5mm Jack connector. | Very small cost added. | | Extension | An USB interface would allow plugging the device to a computer for | either automation or using a full keybaord. | | Power | A small dedicated battery could be included increasing the cost, | but getting all power from USB would also preserve the choice to | the user, free to chose a wall charger or portable power bank. | | Enclosure | A custom 3D printed case would allow keeping the cost very low | even at small volume production. | | There exist boards around 5 USD which would provide all of the above | except audio and a few wires, typically the size of an MP3 player. | The grand total bill of material could realistically approach 10 USD. | An actual product could eventually reach as low as 15 USD if keeping | only a small margin for the seller, and eventually lower if produced | on a larger scale. | | The support of TLS does not bring any cost in this example: an ESP8266 | could be used at around 0.85 USD instead of 1.25 USD for the ESP32-C3, | but is also capable of TLS. | Image decoding would then probably be much slower. | By far the most resource hungry part of this project. | | Writing the software for such a product from the ground up could take | typically an entire week, including JPEG and PNG decoding libraries, | image and font rendering, writing driver for all the parts involved, | integrating the TCP/IP stack and TLS stack. | | While an XML parser able to fetch content over HTTP would be relatively | as difficult to build, this would not permit the same level of user | experience as the Gopher-based project: CSS and JavaScript are becoming | an increasingly frequent requirement to access the Web, and reimplementing | a new compatible rendering engine is not feasible to a single person. | | This requirement would in turn affect the minimal performance of the | processing unit used: a processor in the GHz range with RAM in the | GB range, in particular if anticipating future needs of the Web | software system. | `---- ,---- [ Meme cache pointer support by Bitreich ] | | The Bitreich memecache joins modern programming languages like C in | supporting pointer notation. Get a pointer representation of a meme by | referencing it in our IRC channels with the syntax '*', instead of | the usual '#'. | |  Example: |  #gnu-hut |  #gnu-hut: |  gophers://bitreich.org/I/memecache/gnu-hut.jpg |  *gnu-hut |  *gnu-hut: |  gophers://bitreich.org/9/memecache/filter/*gnu-hut.jpg | | The pointer notation works for image and video memes. Remember that | you can explore our memes with | |  git://bitreich.org/bitreich-tardis | | bitreich-tardis, and explore the inner | workings of annna in the | |  git://bitreich.org/annna | | git repository. | -adc | | Deep pointer support in memes. | | Thanks the ground work of adc, we had pointer support for memes. Based on | this, we now have deep pointer support for all kind of memes: | |  gophers://bitreich.org/9/memecache/filter/\ |  **********athas-teapot.jpg |  gophers://bitreich.org/9/memecache/filter/\ |  ****athas-teapot.jpg | | With cache support. | Have fun pointing at memes! We had much fun making this. :D | | Reverse pointer support for memes. | | After a public request by an avid pointer lover, we of course implemented | reverse pointer support for memes now: | |  gophers://bitreich.org/9/memecache/filter/\ |  &&&&&&athas-teapot.jpg | | See how you can dereference this teapot now. | `---- ,---- [ Four Billion more Gopherholes have gone online! by Bitreich ] | | People are thinking, it is impossible to grow further than the web. | Gopher did this today, by introducing the four billion gophers project. | |  gopher://bitreich.org/1/billion-gophers | | IPv6 is required. | Maybe you find the hidden secret of monkey^Wbillion gophers! | `---- ,---- [ The Road to Success by josuah ] | | Success, the holy grail in Life. Many different forms and shapes. | Marriage? Career? A medal? A stable financial situation? Crossing the | border and get naturalized? So many facets to that same shiny diamond. | | Or does success mean avoiding failure? In that case, doing nothing means | no failure, but trying always have more chance to reach whatever one | names "success". | | If failing means that trying did not lead one as far as hoped for, then | the next thing to do for getting closer to "success" again is trying | again, in risk to fail over again. And while so, also going a bit | closer every time to success. | | What is the landmark that distinguish being very close to actually | reaching success? Which indicator to use? Is it about completing a large | project? Fame? A position in the company? And once at the top position of | a company, one can still say it was a tiny company and the real goal | always was to be at the head of a great company, and that success will | be when the company is large enough. | | So if there is no real landmark, if failing is trying but failing to | reach an impossible goal, then failing is the result of trying whatever | that leads to. Failure would be the moment that follows any attempt to | reach the end of a direction. Failure would simply be the moment where | you look back at where you were before trying, where you are now, and | the road left to go to reach infinity. | | Success looks similar: trying to move forward, constantly bumping the | objective further as one get closer to it. Again success is the moment | where you look at where you are, and estimate how far you've been. If | success and failure are the same, this suggests that something is wrong | somewhere. Somehow, the ultimate acheivement of every life is death. | | The Road to Success? | This is the same as the road to Failure: this is Life, it leads to Death. | Wherever we go, we will be on it as long as we live. So now, may we move | that idea of Success away so that we can enjoy living our life. | `---- ,---- [ sfeed 1.9 was released by bob ] | | sfeed is a tool to convert RSS or Atom feeds from XML to a TAB-separated | file. | | It can be found at: | |  git://git.codemadness.org/sfeed |  gopher://codemadness.org/1/git/sfeed |  https://codemadness.org/releases/sfeed/ |  gopher://codemadness.org/1/releases/sfeed/ | | sfeed has the following small changes compared to 1.8: | | Features | | sfeed_{curses,frames,gopher,html,plain}: add $SFEED_NEW_MAX_SECS | | By introducing the new environment variable $SFEED_NEW_MAX_SECS in some | sfeed_* utilities marking feeds as new based on comparing their age, | it is now possible to override this age limit. The default limit was | the last day (86400 seconds). | | This allows, for example, to be notified about new feeds within the last | hour with by prefixing new items with " N ": | |  SFEED_NEW_MAX_SECS=3600 sfeed_plain ~/.sfeed/feeds/* | | While creating a web report for last week's news by: | |  SFEED_NEW_MAX_SECS=604800 sfeed_html ~/.sfeed/feeds/* | | This marks the items of the last week as bold in HTML. | | Based on the initial patch by Alvar Penning, thanks! | | sfeed_update/sfeedrc: add url a as parameter to the filter() and order() | function This makes it easier to set filters or ordering by pattern | matching on a group of feeds by the feed URL. For example for Youtube | or Reddit feeds. | | sfeed_curses: move one line down when marking an item as read or unread. | I don't mind either behaviour, but it has been suggested by a few people. | For example the mutt mail client also has this behaviour. | | Fixes | | Improve to use proper includes. | | Reduce using some of the unneeded sys/* headers too. Using the C99 | includes. | | sfeed_atom: for gmtime_r() make the error message consistent with | sfeed_mbox. | | Makefile: change Gentoo commented example from -lcurses to -lncurses. | | sfeed_markread: fail early if creating a temporary file failed. | | Code-cleaning / pedantic fixes: | | sfeed: datetounix: code-style, change , to separate lines (-Wcomma). | | sfeed_curses: make struct urls static like the other variables. | | sfeed_gopher: reduce scope and shadowing of a variable (no effective | change though). | | xml.h: _XML_H_: macro name with an underscore is a reserved identifier. | | | Documentation: | | Improve note about CDNs and HTTP User-Agent blocking and change the | example in sfeedrc.5 by setting a User-Agent. | | sfeedrc.example: add comment to reference to the man pages and README | file. | | README: RSS 0.90+ is supported (not 0.91+). | | Typo fixes, consistency and structure fixes and some rewording. | | | Bitreichcon 2023 | | Bitreichcon 2023 was cool. It was also fun to hold a RSS/Atom/web | presentation to a club of like-minded peoples. | |  gopher://bitreich.org/1/con/2023 |  gopher://bitreich.org/0/usr/20h/phlog/\ |  2023-08-10T17-08-41-168752.md |  gopher://bitreich.org/0/usr/20h/phlog/\ |  2023-08-10T19-40-04-621487.md | |  Slides: gopher://bitreich.org/9/con/2023/rec/\ |  state-of-sfeed.zip |  Audio: gopher://bitreich.org/9/con/2023/rec/\ |  brcon2023-dump-2023-08-10-20-06-35.mp3 | | | Thanks for all feedback and patches, | | Donations can be send to: | |  https://codemadness.org/donate/ | | :) | | Thanks, | Gopherholistic coach, | Hiltjo | `---- ,---- [ Volunteers for a The Gopher Times trial wanted. by Bitreich ] | | As pioneers in the gopher world, we at Bitreich want to make the gopher | times more accessible to all people over the world. For this, we are | planning a trial to have printed out the gopher times sent to your | doorstep. | | If you want to participate, please send your name and address to | |  Christoph Lohmann <20h@r-36.net> | | World delivery to all remote places is possible too. | `---- ,---- [ Publishing in The Gopher Times ] | | You want your article published?  | | You want to announce something to the Gopher world?  | | Directly related to Gopher or not, reach us on IRC with an article in any | format, we will handle the formatting and everything else. | |  ircs://irc.bitreich.org/#bitreich-en |  gophers://bitreich.org/1/tgtimes/ |  git://bitreich.org/tgtimes/ | | Here is how you write an article for the next opus 8: | |  $ git clone git://bitreich.org/tgtimes |  $ cd tgtimes/opus8 |  $ ed $(id -un)-my-personal-technical-project.md |  # Git workflow to send patch follows. | | Thanks for reading The Gopher Times! | | -- the Gopher Times Team | `----