,________________________________________________________________________,
| ,_______,,_, _____ ,_, |
| |#######||#| __ ___ ,'#####| ___ ____ |#| __ ___ _ __ |
| |#| |#|/##\ /###\ |#| /###\ /####\ |#|/##\ /###\ \\/##\ |
| |#| |#|/ \#||#|_|#| |#| ___|#| |#||#| |#||#|/ \#||#|_|#||#| || |
| ,|#|, |#| |#||#|___ |#|__|#||#|_|#||#|_|#||#| |#||#|___ |#| |
| \###/ \#/ \#/ \###/ \#####/ \###/ |#:70/ \#/ \#/ \###/ \#/ |
| ,_______, _ |#| |
| |#######|(o) _ __ __ ___ ___ \#/ _,-' ) |
| |#| /#\ \\/##\/##\ /###\ /###\ ( ,-' _,-' ) |
| |#| |#| |#| |#| |#||#|_|#||#|__ ( ,-' _,-' ) |
| ,|#|, |#| |#| |#| |#||#|___ _\##| ( ,-' |
| \###/ \#/ \#/ \#/ \#/ \###/ |###/ |
|________________________________________________________________________|
| Opus 7 Gopher News and More gophers://bitreich.org/1/tgtimes |
`------------------------------------------------------------------------`
,---- [[4m Shell Redirections by athas [0m]
|
| 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:
|
| [31m $ sort numbers[0m
|
| Soon after, newcomers will also encounter shell redirection, by which
| the output of these tools can conveniently be read from or stored in
| files:
|
| [31m $ sort < numbers > numbers_sorted[0m
|
| 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:
|
| [31m $ sort < numbers > numbers[0m
|
| 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:
|
| [31m $ sort < numbers | sponge numbers[0m
|
| 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:
|
| [31m $ (rm numbers && sort > numbers) < numbers[0m
|
| This approach requires no dependencies and will work in any Unix
| shell.
|
`----
,---- [[4m Library of Babel now available on gopherspace. by Bitreich [0m]
|
| 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.
|
| [31m
https://libraryofbabel.info/About.html[0m
|
| Now available on gopherspace!
|
| [31m gophers://bitreich.org/1/babel[0m
|
`----
,---- [[4m Donkey Meter goes online. by Bitreich [0m]
|
| 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:
|
| [31m gophers://bitreich.org/1/donkeymeter[0m
|
| It takes a second to load due to donkey technology restrictions.
| You might also be interested in our Large Donkey Collider technology.
|
`----
,---- [[4m Most minimal Gopher server by tgtimes [0m]
|
| 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.
|
| [1m[4mCommunication[0m[22m
| 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.
|
| [1m[4mProcessing[0m[22m
| 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.
|
| [1m[4mAutomation[0m[22m
| 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.
|
| [1m[4mStorage[0m[22m
| A slot for a MicroSD card would allow storing and updating
| the static content to serve, and storing network configuration.
|
| [1m[4mScripting[0m[22m
| 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.
|
| [1m[4mPower[0m[22m
| 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".
|
`----
,---- [[4m Gemini2gopher proxy now at Bitreich by 20h [0m]
|
| 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:
|
| [31m gophers://bitreich.org/1/\[0m
| [31m gemini?gemini://gemini.osnews.com[0m
|
| You can get the v0.1 release of the proxy at:
|
| [31m git://bitreich.org/gemini2gopher-proxy[0m
| [31m gophers://bitreich.org/1/scm/gemini2gopher-proxy[0m
|
| Have fun! Please send in bugs you encounter. The goal was to display the
| osnews.com gemini capsule.
|
`----
,---- [[4m Geomyidae v0.96 release by Bitreich. [0m]
|
| 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:
|
| [31m gophers://bitreich.org/0/con/2023/rec/state-of-geomyidae.md[0m
|
| In addition:
|
| [31m * TLS was completely fixed. It now works on OpenBSD.[0m
| [31m * Thanks Evil_Bob and adc for debugging this![0m
| [31m * Connection and serving of files is now vastly improved due[0m
| [31m to reverse DNS lookup not being default.[0m
| [31m * Thanks Evil_Bob for finding this![0m
| [31m * We need to fix the DNS Internet.[0m
|
| And don't forget BOB! Don't drink and write programming languages!
|
| Here are the links for package maintainers:
|
| [31m git://bitreich.org/geomyidae[0m
| [31m gophers://bitreich.org/1/scm/geomyidae[0m
|
| Have much fun with geomyidae!
|
`----
,---- [[4m Groundhog Day Service Page online. by Bitreich [0m]
|
| 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:
|
| [31m gophers://bitreich.org/1/groundhog-day[0m
|
| 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 |
| |
| |
| |
| |
+------------------------------------------------------------------------+
,---- [[4m Gopher 2007 Pearl Project [0m]
|
| Do you like adventures?
| Do you like to discover?
| Many treasures are awaiting you!
| Get ready to search for the pearls:
|
| [31m gophers://bitreich.org/1/gopher2007[0m
|
| 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:
|
| [31m gophers://bitreich.org/0/gopher2007/archive/seanm.ca/\[0m
| [31m 70/0/nerd/gopher-manifesto.txt[0m
|
| See the 'What we need' section. We completed nearly all points there. :-D
|
| A second pearl example:
|
| [31m gopher:s//bitreich.org/0/gopher2007/archive/seanm.ca/\[0m
| [31m 70/0/nerd/language_parable.txt[0m
|
| [31m And each language could be heard to mumble as it tromped and[0m
| [31m tromped and tromped, with complete and utter glee:[0m
|
| [31m Have to parse XML, eh? Have to have an XML API, eh? Have to[0m
| [31m work[0m
| [31m with SOAP and XML-RPC and RSS and RDF, eh?[0m
|
| [31m Well parse this, you little markup asshole.[0m
|
| You want to see all postscript files from back then?
|
| [31m curl -s
gopher://bitreich.org/0/gopher2007/archive/\[0m
| [31m non-empty-mime-files.txt | grep postscript[0m
|
| I wish much fun reading and discovering even more!
|
`----
,---- [[4m C Thaumaturgy Center opens at Bitreich by Bitreich [0m]
|
| People always had a desire for magic.
| This magic does not end in modern times.
|
| [31m Any sufficiently advanced technology is indistinguishable from[0m
| [31m magic.[0m
| [31m -- Arthur C. Clarke[0m
|
| So is C, C pointers and C bit twiddling:
|
| [31m gophers://bitreich.org/1/thaumaturgy[0m
|
| 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 <
[email protected]>
|
| I will include them into the programme of the C Thaumaturgy Center.
|
`----
,---- [[4m This's opus C Thaumaturgy [0m]
|
| // 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));
| }
|
`----
,---- [[4m Bitreich Telemetry Service goes Public. by Bitreich [0m]
|
| 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!
|
| [31m $ git clone git://bitreich.org/geomyidae[0m
| [31m $ cd geomyidae[0m
| [31m $ make telemetry[0m
|
| In case you want to use the telemetry API in your project, just us:
|
| [31m # Everything behind the second / field will be stripped.[0m
| [31m [0m
| [31m $ printf "/${projectname}/...\r\n" | nc bitreich.org 70[0m
| [31m [0m
| [31m Thank you for installing ${projectname}![0m
| [31m Nothing is logged. You can trust us, we are not Google.[0m
|
| It is free to use!
|
`----
,---- [[4m Peering Cake for IPv6 by tgtimes [0m]
|
| 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:
|
| [31m
https://worldcat.org/en/title/1086268840[0m
|
| 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).
|
| [31m
https://www.mail-archive.com/nanog@nanog.org/msg15608.html[0m
| [31m
https://live.staticflickr.com/2685/4031434206_656b2d8112_z.jpg[0m
| [31m
https://www.theregister.com/2018/08/28/ipv6_peering_squabbles/[0m
| [31m
https://mailman.nanog.org/pipermail/nanog/2009-October/\[0m
| [31m 014017.html[0m
|
`----
,---- [[4m Announcing the "tgtimes" keyword by tgtimes [0m]
|
| 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.
|
`----
,---- [[4m bitreich-cooking by ggg [0m]
|
| 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.
|
`----
,---- [[4m Most minimal gopher client by tgtimes [0m]
|
| 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.
|
| [1m[4mNetwork[0m[22m
| 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.
|
| [1m[4mProcessing[0m[22m
| 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://.
|
| [1m[4mDisplay[0m[22m
| 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.
|
| [1m[4mInput[0m[22m
| 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.
|
| [1m[4mText[0m[22m
| 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:
|
| [31m
http://unifoundry.com/unifont/[0m
|
| [1m[4mAudio[0m[22m
| 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.
|
| [1m[4mExtension[0m[22m
| An USB interface would allow plugging the device to a computer for
| either automation or using a full keybaord.
|
| [1m[4mPower[0m[22m
| 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.
|
| [1m[4mEnclosure[0m[22m
| 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.
|
`----
,---- [[4m Meme cache pointer support by Bitreich [0m]
|
| 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 '*<tag>', instead of
| the usual '#<tag>'.
|
| [31m Example:[0m
| [31m <adc> #gnu-hut[0m
| [31m <annna> #gnu-hut:[0m
| [31m gophers://bitreich.org/I/memecache/gnu-hut.jpg[0m
| [31m <adc> *gnu-hut[0m
| [31m <annna> *gnu-hut:[0m
| [31m gophers://bitreich.org/9/memecache/filter/*gnu-hut.jpg[0m
|
| The pointer notation works for image and video memes. Remember that
| you can explore our memes with
|
| [31m git://bitreich.org/bitreich-tardis[0m
|
| bitreich-tardis, and explore the inner
| workings of annna in the
|
| [31m git://bitreich.org/annna[0m
|
| git repository.
| -adc
|
| [1m[4mDeep pointer support in memes.[0m[22m
|
| 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:
|
| [31m gophers://bitreich.org/9/memecache/filter/\[0m
| [31m **********athas-teapot.jpg[0m
| [31m gophers://bitreich.org/9/memecache/filter/\[0m
| [31m ****athas-teapot.jpg[0m
|
| With cache support.
| Have fun pointing at memes! We had much fun making this. :D
|
| [1m[4mReverse pointer support for memes.[0m[22m
|
| After a public request by an avid pointer lover, we of course implemented
| reverse pointer support for memes now:
|
| [31m gophers://bitreich.org/9/memecache/filter/\[0m
| [31m &&&&&&athas-teapot.jpg[0m
|
| See how you can dereference this teapot now.
|
`----
,---- [[4m Four Billion more Gopherholes have gone online! by Bitreich [0m]
|
| People are thinking, it is impossible to grow further than the web.
| Gopher did this today, by introducing the four billion gophers project.
|
| [31m
gopher://bitreich.org/1/billion-gophers[0m
|
| IPv6 is required.
| Maybe you find the hidden secret of monkey^Wbillion gophers!
|
`----
,---- [[4m The Road to Success by josuah [0m]
|
| 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.
|
| [1m[4mThe Road to Success?[0m[22m
| 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.
|
`----
,---- [[4m sfeed 1.9 was released by bob [0m]
|
| sfeed is a tool to convert RSS or Atom feeds from XML to a TAB-separated
| file.
|
| It can be found at:
|
| [31m git://git.codemadness.org/sfeed[0m
| [31m
gopher://codemadness.org/1/git/sfeed[0m
| [31m
https://codemadness.org/releases/sfeed/[0m
| [31m
gopher://codemadness.org/1/releases/sfeed/[0m
|
| sfeed has the following small changes compared to 1.8:
|
| [1m[4mFeatures[0m[22m
|
| 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 ":
|
| [31m SFEED_NEW_MAX_SECS=3600 sfeed_plain ~/.sfeed/feeds/*[0m
|
| While creating a web report for last week's news by:
|
| [31m SFEED_NEW_MAX_SECS=604800 sfeed_html ~/.sfeed/feeds/*[0m
|
| 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.
|
| [1m[4mFixes[0m[22m
|
| 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.
|
| [1m[4mCode-cleaning / pedantic fixes:[0m[22m
|
| 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.
|
|
| [1m[4mDocumentation:[0m[22m
|
| 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.
|
|
| [1m[4mBitreichcon 2023[0m[22m
|
| Bitreichcon 2023 was cool. It was also fun to hold a RSS/Atom/web
| presentation to a club of like-minded peoples.
|
| [31m
gopher://bitreich.org/1/con/2023[0m
| [31m
gopher://bitreich.org/0/usr/20h/phlog/\[0m
| [31m 2023-08-10T17-08-41-168752.md[0m
| [31m
gopher://bitreich.org/0/usr/20h/phlog/\[0m
| [31m 2023-08-10T19-40-04-621487.md[0m
|
| [31m Slides:
gopher://bitreich.org/9/con/2023/rec/\[0m
| [31m state-of-sfeed.zip[0m
| [31m Audio:
gopher://bitreich.org/9/con/2023/rec/\[0m
| [31m brcon2023-dump-2023-08-10-20-06-35.mp3[0m
|
|
| Thanks for all feedback and patches,
|
| Donations can be send to:
|
| [31m
https://codemadness.org/donate/[0m
|
| :)
|
| Thanks,
| Gopherholistic coach,
| Hiltjo
|
`----
,---- [[4m Volunteers for a The Gopher Times trial wanted. by Bitreich [0m]
|
| 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
|
| [31m Christoph Lohmann <
[email protected]>[0m
|
| World delivery to all remote places is possible too.
|
`----
,---- [[4m Publishing in The Gopher Times [0m]
|
| [1m[4mYou want your article published? [0m[22m
|
| [1m[4mYou want to announce something to the Gopher world? [0m[22m
|
| Directly related to Gopher or not, reach us on IRC with an article in any
| format, we will handle the formatting and everything else.
|
| [31m ircs://irc.bitreich.org/#bitreich-en[0m
| [31m gophers://bitreich.org/1/tgtimes/[0m
| [31m git://bitreich.org/tgtimes/[0m
|
| Here is how you write an article for the next opus 8:
|
| [31m $ git clone git://bitreich.org/tgtimes[0m
| [31m $ cd tgtimes/opus8[0m
| [31m $ ed $(id -un)-my-personal-technical-project.md[0m
| [31m # Git workflow to send patch follows.[0m
|
| Thanks for reading The Gopher Times!
|
| -- the Gopher Times Team
|
`----