#soylent | Logs for 2021-02-06

« return
[00:08:20] -!- dx3bydt3_ [dx3bydt3_!~quassel@142.134.uu.hr] has joined #soylent
[00:10:16] <FatPhil> Looks like my dying raspi was not actually dying - whilst I was juggling USB and video connectors, I disturbed the SD card enough for just a few occasional errors to occur. Just did a debsums on it, and the partition was spotless (and the home directories on the other partition seem just fine too)
[00:10:44] <FatPhil> however, I've moved stuff off the old pi onto the newer pi just in case.
[00:12:33] -!- dx3bydt3 has quit [Ping timeout: 265 seconds]
[00:43:16] <c0lo> FatPhil, how the heck did he do it? https://www.youtube.com
[00:43:18] <systemd> ^ 03Judd Trump Plays Shot Of 2021
[00:52:37] -!- AzumaHazuki [AzumaHazuki!~hazuki@the.end.of.time] has joined #soylent
[01:22:04] * c0lo nods to bytram https://www.reddit.com
[01:24:05] <c0lo> Eds are exhausted. And so it's the Pending queue.
[01:30:51] -!- dx3bydt3_ has quit [Ping timeout: 265 seconds]
[01:31:17] -!- dx3bydt3 [dx3bydt3!~quassel@142.134.qo.ypv] has joined #soylent
[01:45:06] -!- dx3bydt3_ [dx3bydt3_!~quassel@142.134.qo.ypv] has joined #soylent
[01:45:50] -!- dx3bydt3 has quit [Ping timeout: 265 seconds]
[01:57:18] <AzumaHazuki> =submit https://apnews.com from the company-towns-and-company-scrip dept.
[01:57:20] <systemd> ✓ Sub-ccess! "03Nevada Bill Would Allow Tech Companies to Create Governments" (13p) -> https://soylentnews.org
[01:57:24] <AzumaHazuki> people never fucking learn do they?
[02:14:50] <c0lo> Interesting as a social experiment. Capitalistic feudalism.
[02:16:09] <c0lo> Next up: churches with local government.
[02:18:54] -!- boru` [boru`!~boru@jjic-02-306-841-210.dynamic.mnet-online.de] has joined #soylent
[02:18:57] -!- boru has quit [Killed (NickServ (GHOST command used by boru`!~boru@jjic-02-306-841-210.dynamic.mnet-online.de))]
[02:18:59] boru` is now known as boru
[02:35:12] -!- AzumaHazuki has quit [Remote host closed the connection]
[03:41:33] * TheMightyBuzzard declares SN a sovereign nation and quits paying taxes
[03:51:24] * c0lo notes TMB did not consult in any way the rabbid socialists on SN before
[03:53:09] <TheMightyBuzzard> they can still pay taxes if they want. i won't stop em.
[03:54:13] <TheMightyBuzzard> hey, ya know what socialists used for light before candles? lightbulbs.
[03:55:44] <c0lo> =w raving rabbids
[03:55:46] <systemd> Raving Rabbids, known in France as Lapins crétins (Moronic Rabbits) and in Italy simply as Rabbids, is a video game franchise spin-off from the Rayman - https://en.wikipedia.org
[03:58:14] * c0lo notes TMB still didn't declare himself as the god emperor of SN. His previous declaration holds no value
[04:00:42] <TheMightyBuzzard> so far i've managed to sucker other folks into doing all the paperwork and making the final decisions. with any luck i'll keep that streak alive for a while yet.
[04:07:05] * TheMightyBuzzard fucks off to bed
[04:47:06] <Bender> [SoylentNews] - Nevada Bill Would Allow Tech Companies to Create Governments - https://sylnt.us - company-towns-and-company-scrip
[05:25:45] -!- lld has quit [Ping timeout: 265 seconds]
[05:25:45] -!- c0lo has quit [Ping timeout: 265 seconds]
[05:26:09] -!- lld [lld!~lld@2001:f40:qvv::o:wojt] has joined #soylent
[05:31:05] -!- c0lo [c0lo!~7892de8c@zqs-646-162-243-166.static.vic.bigpond.net.au] has joined #soylent
[05:57:07] -!- dx3bydt3 [dx3bydt3!~quassel@99.192.sn.rjm] has joined #soylent
[06:00:33] -!- dx3bydt3_ has quit [Ping timeout: 265 seconds]
[06:35:02] -!- Subsentient has quit [Remote host closed the connection]
[06:35:02] -!- aqu4bot has quit [Quit: aqu4bot baking shutting down.]
[06:35:15] -!- aqu4bot [aqu4bot!~aqu4bot@pptdbxlc9.us] has joined #soylent
[06:35:23] -!- Subsentient [Subsentient!~WhiteRat@pptdbxlc9.us] has joined #soylent
[06:39:13] -!- lld has quit [Ping timeout: 265 seconds]
[06:44:39] -!- lld [lld!~lld@2001:f40:npj::z:tgis] has joined #soylent
[06:58:04] -!- c0lo has quit [Ping timeout: 265 seconds]
[09:25:37] <Bender> [SoylentNews] - To Fix Australia's Environment Laws, Wildlife Experts Call For These 4 Crucial Changes - https://sylnt.us
[09:31:17] -!- lld has quit [Ping timeout: 265 seconds]
[09:36:28] <FatPhil> #weather
[09:36:30] <MrPlow> Raekoja plats 9, Tallinn, Estonia - Today: "Overcast throughout the day." 18/15F, Humidity: 73%, Precip: 10%, Wind ~12mph. Sun: "Mostly cloudy throughout the day." 20/16F, Humidity: 74%, Precip: 7%, Wind ~9mph. Mon: "Overcast throughout the day." 20/7F, Humidity: 76%, Precip: 9%, Wind ~5mph.
[09:36:52] <FatPhil> what's that in non-Victorian units?
[09:41:49] -!- lld [lld!~lld@2001:f40:ujm::q:whgj] has joined #soylent
[10:40:01] <chromas> that's 16 mozuls
[11:03:59] <FatPhil> and there are 16 square mozuls to the shivnitz?
[11:25:34] <chromas> of course!
[11:25:57] -!- humanstew [humanstew!~undead@vws-m28z74c7.vps.ovh.net] has joined #soylent
[11:32:47] <humanstew> The aliens must consume human flesh regularly in order to maintain their human appearance. As such, they have infiltrated and established, under occult logos, products which contain human flesh. It is disguised in alien technology and can only be detected with the right alternations to the brain.
[11:34:39] -!- humanstew has quit [Quit: humanstew]
[12:38:55] -!- AzumaHazuki [AzumaHazuki!~hazuki@the.end.of.time] has joined #soylent
[13:56:09] <TheMightyBuzzard> coffee++
[13:56:09] <Bender> karma - coffee: 5486
[14:15:46] <Bender> [SoylentNews] - Physicists to Look for Quantum Time Dilation Inside Nuclear Reactor - https://sylnt.us - turning-back-the-clock
[14:40:33] <AzumaHazuki> who the hell left it in there?
[14:49:50] -!- dx3bydt3_ [dx3bydt3_!~quassel@99.192.vj.wp] has joined #soylent
[14:50:46] -!- dx3bydt3 has quit [Ping timeout: 265 seconds]
[14:54:29] <TheMightyBuzzard> AzumaHazuki, wut?
[14:54:51] <TheMightyBuzzard> oh, watch joke. i need more coffee.
[15:14:19] <Bytram> AzumaHazuki++ nice one! thanks for the funny to help start my day.
[15:14:19] <Bender> karma - azumahazuki: 61
[15:27:30] -!- lld has quit [Ping timeout: 265 seconds]
[15:35:31] -!- lld [lld!~lld@2001:f40:hxu::h:krhr] has joined #soylent
[15:39:01] <Bytram> coffee++
[15:39:01] <Bender> karma - coffee: 5487
[15:44:15] * Bytram is familiar with using "basename" and "dirname" on linux; are there similar utilities available for filename and extension? (Ideally, that can also handle embedded spaces, single quotes, and double quotes?)
[15:47:00] <TheMightyBuzzard> Bytram, not that i'm aware of. there's no real reason for one since extensions are cosmetic in linux.
[15:47:02] <Bytram> examples: fn(foo) == foo; fn(foo.bar) == foo; fn(this and that.bar) == this and that; fn("this and that".bar) == "this and that");
[15:47:32] <Bytram> ditto for extensions/file types (ft).
[15:48:25] <Bytram> TheMightyBuzzard: understood...
[15:49:32] * Bytram has a boatload of historical files where foo.bar, when updated, would get backed up to: foo.YYYYmmdd_HHMMSS.bar
[15:51:06] <TheMightyBuzzard> this looks like a job for sed, awk, and grep!
[15:53:32] <TheMightyBuzzard> echo foo.bar | sed -e 's/\(.*\)\.\w\+$/\1/' and echo foo.bar | sed -e 's/.*\(\.w+\)$/' should do the trick
[15:54:01] <TheMightyBuzzard> meh, second should be sed -e 's/.*\(\.w+\)$/\1/'
[15:54:32] <Bytram> indeed! except it gets a bit more interesting with imbedded spaces, quotes, and double-quotes; especially since I am still getting up to speed with what BASH expects for "quoting" or, more properly, escaping those chars in a command line argument.
[15:54:34] <TheMightyBuzzard> easy peasy to write up an alias for those
[15:54:53] <TheMightyBuzzard> nope, sed don't give a crap about any of those
[15:55:52] <TheMightyBuzzard> FOO=$(echo foo.bar | sed -e 's/\(.*\)\.\w\+$/\1/') will give you the filename stuffed in $FOO. if you want to not have to worry about spaces, "${FOO}"
[15:55:55] <Bytram> I was thinking more about I do "my stuff" and then feed the resulting, processed, name to, say, firefox, or emacs, or vlc, or whatever
[15:56:02] <TheMightyBuzzard> or "$FOO"
[15:56:21] <TheMightyBuzzard> double quotes means safe name handling
[15:56:55] <TheMightyBuzzard> proper name handling too for that matter
[15:57:19] <Bytram> filename: Johnny Cash's Greatest Hits.mp4
[15:57:24] <TheMightyBuzzard> firefox "https://some.come/url with spaces in" will do what you mean
[15:57:43] <TheMightyBuzzard> mpg123 "$filename"
[15:57:54] <Bytram> filename: Some name with "imbedded quotes".html
[15:58:08] <TheMightyBuzzard> firefox "$filename"
[15:58:24] <TheMightyBuzzard> long solved prollem
[16:00:45] <TheMightyBuzzard> if you actually need the filename separate from the extension, just write alias fname="sed -e 's/\(.*\)\.\w\+$/\1/'" into your .bashrc and then ". ~/.bashrc"
[16:00:58] <TheMightyBuzzard> ditto for an extension alias but with the other sed thing
[16:01:55] <TheMightyBuzzard> then you can do a "locate *.bar | fname" and get all the filenames just like it was a proper command
[16:02:05] <Bytram> "Antonin Dvorak/Kubelik - Dvorak - Symphony No. 9 'From the New World'-yBKiaOzfpL0.mp4"
[16:02:24] <Bytram> or...
[16:02:32] <Bytram> "Antonin Dvorak/Kubelik - Dvorak - Symphony No. 9 'From the New World'.yBKiaOzfpL0.mp4"
[16:02:38] <TheMightyBuzzard> Bytram, mplayer "$filename"
[16:02:55] <TheMightyBuzzard> double quotes handle any possible characters in a filename
[16:03:29] <Bytram> including embedded double quote(s)
[16:03:32] <TheMightyBuzzard> yes
[16:03:37] <TheMightyBuzzard> any possible characters
[16:03:38] <Bytram> hmmm!
[16:03:56] <TheMightyBuzzard> even newlines if you feel the need to create a filename with one in it
[16:05:28] <TheMightyBuzzard> those sed routines i wrote up above will too for file/extension parsing purposes.
[16:05:48] <TheMightyBuzzard> except newlines
[16:06:19] <TheMightyBuzzard> but you need to smake yourself for being a wiseass if you went around putting newlines in files
[16:06:36] <TheMightyBuzzard> filenames rather
[16:08:16] <TheMightyBuzzard> okay, ima nap now. waiting on it to warm up enough to paint at the church and also enjoying some saturday lazy.
[16:08:41] <Bytram> k
[16:10:49] <Bytram> yeah, /me remembers too much crap from trying to escape strange chars on command lines from 20-30 years ago on Unix, the difference between "do_parse_and_substitute_within_me_text" and "do_NOT_parse_and_substitute_within_me_text"
[16:11:05] <Bytram> ugh
[16:11:13] <Bytram> yeah, /me remembers too much crap from trying to escape strange chars on command lines from 20-30 years ago on Unix, the difference between "do_parse_and_substitute_within_me_text" and 'do_NOT_parse_and_substitute_within_me_text'
[16:13:04] <Bytram> echo "this_$(ls -a| tail -1)_that"
[16:13:12] <Bytram> echo 'this_$(ls -a| tail -1)_that'
[16:13:30] <Bytram> produce very different results on my system
[16:14:34] <Bytram> grrr, underscores do not show up for me on hexchat window...
[16:14:43] <Bytram> echo "this.$(ls -a| tail -1).that"
[16:14:54] <Bytram> echo 'this.$(ls -a| tail -1).that'
[16:15:03] <TheMightyBuzzard> as well they should. single quotes on the command line mean do not interpret variables within this bit, among other things
[16:16:35] <Bytram> so... if I am trying to manipulate a filename that *contains* single and double quotes, I need to escape them somehow as I try to construct the backup filename... hold on
[16:16:40] <TheMightyBuzzard> no
[16:16:55] <TheMightyBuzzard> "$foo" will work no matter what is in the variable $foo
[16:17:37] <Bytram> but i am trying construct the variable foo's value, here's a concrete example:
[16:17:41] <TheMightyBuzzard> it's interpreted only once and anything within the variable is treated strictly as a filename or string or whatever you're using it as
[16:19:49] <Bytram> 1.) touch this-and-that.html
[16:19:55] <Bytram> 2.) echo $(ls --full-time --time c this-and-that.html)
[16:19:55] <Bytram> -rw-rw-r-- 1 martyb martyb 0 2021-02-06 11:18:35.943655637 -0500 this-and-that.html
[16:20:08] <TheMightyBuzzard> use ls -A btw. you almost never need or want to list . or ..
[16:20:21] <Bytram> kthx
[16:20:45] <Bytram> now I at the point of dealing with bash variables
[16:21:10] <Bytram> set foo=this-and-that.html
[16:21:38] <Bytram> now I can refer to $foo or, better, ${foo}
[16:21:41] <Bytram> right?
[16:22:01] <TheMightyBuzzard> use double quotes when assigning foo
[16:22:15] <TheMightyBuzzard> or single if you don't need anything interpreted
[16:22:24] <Bytram> set foo="this-and-that.html"
[16:22:27] <Bytram> or
[16:22:35] <Bytram> set foo='this-and-that.html'
[16:22:37] <TheMightyBuzzard> nod nod
[16:22:39] <Bytram> k
[16:22:53] <TheMightyBuzzard> easier to get the filenames you want programatically though if you can
[16:23:07] <requerdanos> "Don't parse `ls`"
[16:23:41] <Bytram> martyb@E6410-001:~/tmp$ set foo="this-and-that.html"
[16:23:41] <Bytram> martyb@E6410-001:~/tmp$ echo ${foo}
[16:23:52] <Bytram> nothing comes out
[16:24:18] <Bytram> echo ${foo}|hexdump
[16:24:18] <Bytram> 0000000 000a
[16:24:18] <Bytram> 0000001
[16:24:23] <TheMightyBuzzard> export not set
[16:24:41] <Bytram> rabbithole++
[16:24:41] <Bender> karma - rabbithole: 1
[16:24:56] <Bytram> how to set export?
[16:25:10] <Bytram> set export=true ????
[16:25:13] <TheMightyBuzzard> export foo="bar"
[16:25:16] <requerdanos> use the word export, not the word set
[16:25:26] <Bytram> tyvm!
[16:25:56] <TheMightyBuzzard> if you're doing it in a script, you don't need export. from cli you do.
[16:26:12] <TheMightyBuzzard> in a script simply foo="bar" will work
[16:26:27] <Bytram> okaaay....
[16:26:32] <requerdanos> from cli you can `foo="whatever" echo $foo`
[16:26:53] <Bytram> at a command line, I get a fresh "scope" with each command unless I export it?
[16:27:05] <TheMightyBuzzard> requerdanos, should be correct but i already tested and it's not
[16:27:13] -!- AzumaHazuki has quit [Remote host closed the connection]
[16:27:28] <TheMightyBuzzard> Bytram, yep, ish
[16:27:31] <requerdanos> holy crap you're right
[16:27:46] <Bytram> HTH!
[16:28:01] <TheMightyBuzzard> USED TO BE correct at least
[16:28:16] <Bytram> Now I do not feel *quite* so bad
[16:28:55] <TheMightyBuzzard> aight, really do need to get my nap on or ima be up at the church later than i wanna be painting.
[16:29:27] <Bytram> so... if I export someting, and call another script, does that exported value exist within the script?
[16:29:49] <Bytram> TheMightyBuzzard++ best of luck to ya, and thanks for all the help!
[16:29:49] <Bender> karma - themightybuzzard: 415
[16:29:49] <TheMightyBuzzard> from the same terminal as the same user, yes
[16:29:56] <Bytram> kewel!
[16:31:23] * Bytram feels like his brain is trapped in recursive Dr. Seuss verse. That's when you curse, and curse, and curse again! ;^)
[17:27:48] <pinchy> come all ye ethanol fueled
[18:55:47] <Bender> [SoylentNews] - SpaceX Fights Opposition to Starlink, Pursues Funding From FCC's Lifeline Program - https://sylnt.us
[19:16:23] <TheMightyBuzzard> #submit https://notthebee.com
[19:16:24] <MrPlow> Submitting. There is a mandatory delay, please be patient.
[19:16:49] <MrPlow> Submission successful. https://soylentnews.org
[20:03:10] -!- SwahiliWilli [SwahiliWilli!~Agorophob@208.78.ht.vjz] has joined #soylent
[20:04:18] <FatPhil> ~~~~
[20:06:59] <Runaway1956> Weather data is temporarily unavailable.
[20:07:12] <Runaway1956> I was wondering why we have no weather today.
[20:07:39] <Bytram> #weather boca chica, TX
[20:07:40] <MrPlow> 4911 Boca Chica, Henderson County, TX 75148, USA - Today: "Mostly cloudy throughout the day." 60/32F, Humidity: 82%, Precip: 36%, Wind ~8mph. Sun: "Clear throughout the day." 60/43F, Humidity: 76%, Precip: 6%, Wind ~8mph. Mon: "Mostly cloudy throughout the day." 68/52F, Humidity: 87%, Precip: 15%, Wind ~12mph.
[20:07:55] <Bytram> yep, no weather.
[20:08:04] <Runaway1956> Ahhh, the data flows in Boca Chica!
[20:08:19] <Bytram> #weather boca chica
[20:08:20] <MrPlow> Autopista Las Américas, Boca Chica, Santo Domingo, 15700, Dominican Republic - Today: "Clear throughout the day." 86/69F, Humidity: 75%, Precip: 23%, Wind ~8mph. Sun: "Partly cloudy throughout the day." 85/68F, Humidity: 75%, Precip: 31%, Wind ~8mph. Mon: "Partly cloudy throughout the day." 86/69F, Humidity: 73%, Precip: 9%, Wind ~7mph.
[20:08:27] <Bytram> both of them!
[20:08:56] <Runaway1956> Of course, the problem here may be that we haven't paid our Weather Tax.
[20:09:07] <Runaway1956> No weather for you, until you pay your taxes!
[20:09:19] <Runaway1956> #weather Texarkana, Ar
[20:09:20] <MrPlow> United States Post Office, 501 North State Line Ave, Texarkana, TX 71854, USA - Today: "Rain until evening." 48/31F, Humidity: 82%, Precip: 81%, Wind ~6mph. Sun: "Partly cloudy throughout the day." 51/36F, Humidity: 88%, Precip: 21%, Wind ~6mph. Mon: "Mostly cloudy throughout the day." 61/47F, Humidity: 90%, Precip: 18%, Wind ~8mph.
[20:09:21] <Bytram> #weather texarkana
[20:09:22] <MrPlow> Texarkana College, 2500 North Robison Rd, Texarkana, TX 75599, USA - Today: "Rain until evening." 47/31F, Humidity: 83%, Precip: 81%, Wind ~6mph. Sun: "Partly cloudy throughout the day." 51/36F, Humidity: 88%, Precip: 21%, Wind ~6mph. Mon: "Mostly cloudy throughout the day." 61/47F, Humidity: 90%, Precip: 19%, Wind ~8mph.
[20:09:45] <Runaway1956> Texarkana College is in Texas though.
[20:09:51] <Runaway1956> ;^)
[20:10:03] <Bytram> #weather texarkana. AR
[20:10:04] <MrPlow> United States Post Office, 501 North State Line Ave, Texarkana, TX 71854, USA - Today: "Rain until evening." 48/31F, Humidity: 82%, Precip: 81%, Wind ~6mph. Sun: "Partly cloudy throughout the day." 51/36F, Humidity: 88%, Precip: 21%, Wind ~6mph. Mon: "Mostly cloudy throughout the day." 61/47F, Humidity: 90%, Precip: 18%, Wind ~8mph.
[20:10:14] <Bytram> #weather texarkana, AR
[20:10:14] <MrPlow> united states post office, 501 north state line ave, texarkana, tx 71854, usa - today: "rain until evening." 48/31f, humidity: 82%, precip: 81%, wind ~6mph. sun: "partly cloudy throughout the day." 51/36f, humidity: 88%, precip: 21%, wind ~6mph. mon: "mostly cloudy throughout the day." 61/47f, humidity: 90%, precip: 18%, wind ~8mph.
[20:10:37] <Bytram> hrrrm can't get here from here?
[20:10:48] <Bytram> #weather Texarkana, Arkansas
[20:10:54] <MrPlow> United States Post Office, 501 North State Line Ave, Texarkana, TX 71854, USA - Today: "Rain until evening." 48/31F, Humidity: 82%, Precip: 81%, Wind ~6mph. Sun: "Partly cloudy throughout the day." 51/36F, Humidity: 88%, Precip: 21%, Wind ~6mph. Mon: "Mostly cloudy throughout the day." 61/47F, Humidity: 90%, Precip: 18%, Wind ~8mph.
[20:11:08] <Runaway1956> What's interesting is - there are some pretty big differences in the numers
[20:11:14] <Bytram> beats ms!
[20:11:25] <Runaway1956> The post office is ~2 miles from the college
[20:11:46] <Bytram> any hills? trees? water?
[20:12:16] <Runaway1956> Nothing to speak of, a creek, some streets, a hospital, lots of homes.
[20:12:17] <Bytram> I'd be willng to bet the college was prolly on the top of a hill
[20:12:29] <Bytram> ditto w/ hospital
[20:13:10] <Runaway1956> Texarkana is pretty flat really, maybe 10 ft difference in elevation
[20:13:20] <Runaway1956> Most of that along the river
[20:13:24] <Bytram> as they tend to be non-profit (read that: do not pay taxes) why would you put them where there is good fertile and otherwise more productive land?
[20:14:08] <TheMightyBuzzard> aren't there like three different texarkanas?
[20:14:35] <Runaway1956> Only two of them that I know of TMB
[20:14:59] <TheMightyBuzzard> #weather texarkana ar
[20:15:00] <MrPlow> United States Post Office, 501 North State Line Ave, Texarkana, TX 71854, USA - Today: "Rain until evening." 48/31F, Humidity: 82%, Precip: 81%, Wind ~6mph. Sun: "Partly cloudy throughout the day." 51/36F, Humidity: 88%, Precip: 21%, Wind ~6mph. Mon: "Mostly cloudy throughout the day." 61/47F, Humidity: 90%, Precip: 18%, Wind ~8mph.
[20:15:03] <Bytram> Just a good rule-of-thumb that I've found to be mostly true as to locating schools, hospitals, etc.
[20:15:07] * TheMightyBuzzard shurgs
[20:15:20] <Bytram> biab; break time
[20:15:27] <TheMightyBuzzard> there's a mess of natchitocheses too
[20:15:51] <Runaway1956> or nacogdocheses
[20:16:23] <TheMightyBuzzard> #weather 71854
[20:16:25] <MrPlow> 1472 Booker St, Texarkana, AR 71854, USA - Today: "Rain in the afternoon and evening." 48/33F, Humidity: 80%, Precip: 82%, Wind ~6mph. Sun: "Partly cloudy throughout the day." 52/37F, Humidity: 86%, Precip: 21%, Wind ~6mph. Mon: "Mostly cloudy throughout the day." 62/48F, Humidity: 88%, Precip: 17%, Wind ~8mph.
[20:17:02] <Runaway1956> #weather Nashville, Ar
[20:17:04] <MrPlow> Nashville Post Office, North Main St, Nashville, AR 71852, USA - Today: "Rain until evening." 47/33F, Humidity: 81%, Precip: 89%, Wind ~5mph. Sun: "Partly cloudy throughout the day." 49/35F, Humidity: 86%, Precip: 23%, Wind ~5mph. Mon: "Mostly cloudy throughout the day." 60/44F, Humidity: 89%, Precip: 24%, Wind ~6mph.
[20:17:05] <TheMightyBuzzard> pronounced "nack-uh-dish" in louisiana
[20:17:33] <Runaway1956> Yeah, they talk funny everywhere here in the south
[20:18:04] <TheMightyBuzzard> naw, them cajuns is off in a class of their own
[20:18:11] <Runaway1956> The French are the worst, throwing three or four extra letters into every word
[20:22:16] <Bytram> #weather sydney, australia
[20:22:17] <MrPlow> Northern Boardwalk, Sydney NSW 2000, Australia - Today: "Clear throughout the day." 80/65F, Humidity: 69%, Precip: 19%, Wind ~10mph. Mon: "Possible light rain in the morning." 72/64F, Humidity: 74%, Precip: 48%, Wind ~12mph. Tue: "Partly cloudy throughout the day." 74/63F, Humidity: 63%, Precip: 18%, Wind ~10mph.
[20:22:34] <Bytram> #weather sydney, me
[20:22:36] <MrPlow> Sydney, Guadalupe Victoria Infonavit, 34234 Durango, DUR, Mexico - Today: "Clear throughout the day." 81/37F, Humidity: 26%, Precip: 2%, Wind ~6mph. Sun: "Mostly cloudy throughout the day." 80/40F, Humidity: 28%, Precip: 1%, Wind ~6mph. Mon: "Partly cloudy throughout the day." 80/35F, Humidity: 22%, Precip: 0%, Wind ~7mph.
[20:22:45] <Bytram> #weather sydney, maine
[20:22:47] <MrPlow> 34 r Sydney Bechet, 49120 Bégrolles, France - Today: "Light rain throughout the day." 47/36F, Humidity: 95%, Precip: 97%, Wind ~8mph. Sun: "Partly cloudy throughout the day." 44/29F, Humidity: 87%, Precip: 42%, Wind ~9mph. Mon: "Overcast throughout the day." 39/31F, Humidity: 85%, Precip: 10%, Wind ~6mph.
[20:22:54] <Bytram> lol
[20:23:03] <Bytram> #weather sidney, maine
[20:23:04] <MrPlow> 13 Blake Rd, Sidney, ME 04330, USA - Today: "Mostly cloudy throughout the day." 35/15F, Humidity: 73%, Precip: 22%, Wind ~6mph. Sun: "Foggy in the afternoon and evening." 32/16F, Humidity: 78%, Precip: 35%, Wind ~5mph. Mon: "Partly cloudy throughout the day." 23/5F, Humidity: 66%, Precip: 12%, Wind ~8mph.
[20:23:43] <Bytram> #weather nome, ak
[20:23:44] <MrPlow> Nome, AK 99762, USA - Today: "Partly cloudy throughout the day." 16/1F, Humidity: 60%, Precip: 42%, Wind ~6mph. Sun: "Clear throughout the day." 8/2F, Humidity: 37%, Precip: 3%, Wind ~8mph. Mon: "Overcast throughout the day." 16/4F, Humidity: 39%, Precip: 6%, Wind ~15mph.
[20:24:04] <Bytram> #weather north pole
[20:24:04] <MrPlow> Fucking Cold.
[20:25:34] <FatPhil> pah!
[20:29:50] <FatPhil> #weather
[20:29:52] <MrPlow> Raekoja plats 9, Tallinn, Estonia - Today: "Overcast throughout the day." 19/15F, Humidity: 72%, Precip: 12%, Wind ~12mph. Sun: "Mostly cloudy throughout the day." 20/16F, Humidity: 72%, Precip: 14%, Wind ~9mph. Mon: "Overcast throughout the day." 20/7F, Humidity: 74%, Precip: 16%, Wind ~5mph.
[20:29:58] <FatPhil> believable
[20:30:16] <FatPhil> still, no need for long-johns
[20:31:40] <FatPhil> not worn long-johns for 5 years now
[20:32:03] <FatPhil> I do remembe when it was -20 for an entire month
[20:34:52] <FatPhil> it was also -29 on my bday,and I walked home for 30mins tha night not knowing the temperature
[20:50:37] <FatPhil> not sure if g/f's trying to deafen me, but she's put the late night got-to-bed music on at a muchos-muchos-richter level
[20:50:58] <FatPhil> sounds pretty dam good
[20:52:15] <FatPhil> the sound is actually tingling my balls
[20:52:57] <Bytram> !grab FatPhil
[20:52:57] <Bender> Added quote 1024
[20:54:54] <FatPhil> nah, but it's true
[20:55:29] <FatPhil> got 800W of amp, and a kingsize double only 2m away - it literally rocks the bed.
[20:56:06] <Bytram> that's... a lot.
[20:56:49] <FatPhil> dunno what bad it is, but they've just moonlight sonnatad in my fucking face
[20:56:56] <FatPhil> s/bad/band/
[20:56:56] <SedBot> <FatPhil> dunno what band it is, but they've just moonlight sonnatad in my fucking face
[20:58:37] <Bytram> In college we had 300 W driving two Voice of the Theater bass bins (18" driver), 200 W for a pair of horns, and 80 W for a pair of tweeters -- on EACH side of the stage. That filled the hall, and then some.
[20:59:42] <Bytram> worst part was there were so many resonant frequencies, we couldn't really run it anywhere near full volume.
[21:02:40] <Bytram> I'm guessing about 40-50 meters on each side with a balcony all around the hall with, say, 30 meter open space in the middle. Two stories, total.
[21:03:05] <Bytram> IOW, yeah, I can understand why things are rocking for ya!
[21:03:59] <TheMightyBuzzard> FatPhil, would you say she's looking to rock out with her Bach out?
[21:05:01] <FatPhil> dudz, I'll uploadz vidz of my noiz if you care
[21:06:11] <FatPhil> if you're lucky, the g/f will upload the vid of us having a beer with bernie s. earlier
[21:07:24] <FatPhil> i will confess to having tarded my CNS today
[21:12:20] <FatPhil> OK, teh noiz was "Ex Mortis" - Solid NOIZ, likey likey!
[21:22:17] <FatPhil> ok camera or brane was broke, failed to vid teh noize
[21:35:06] <FatPhil> the best thing about my phone, he says totally unironically, is how it will just lock up for no freaking reason at all. very important feature, one that apple failed to implement.
[21:36:12] <chromas> https://wanna-joke.com
[21:36:53] <chromas> So you got yourself an Apple phone?
[21:41:51] <FatPhil> father forgive me, for I know not what I will fucking do
[21:43:01] <TheMightyBuzzard> drop it less?
[21:46:28] <Bytram> http://rss.cnn.com
[21:46:29] <systemd> ^ 03Woman named Karen arrested for trespassing after refusing to wear mask in Northeast Ohio grocery store ( https://www.cleveland19.com )
[21:48:52] <FatPhil> anyway - g/f's captured direct download of my brainstem signals: http://fatphil.org
[21:49:20] <FatPhil> music was ex mortis
[21:50:41] <FatPhil> g/f says my spelling's broke
[21:53:27] <FatPhil> n.w. Britain_s_Most_Dangerous_Songs
[21:53:33] <FatPhil> cos I'm a reb
[21:56:23] <halibut> FatPhil: The third movement of the Moonlight Sonata is not as well recognized, but it certainly lends itself well to that sort of performance.
[21:57:33] <halibut> It's a little late, but I figured I would chime in a little about variables in bash. Don't use ``set''. In bash, just assign variables: foo=bar, or foo="bar".
[21:57:58] <halibut> Variables assigned that way will be available to the shell, but not passed on to child processes unless exported.
[21:58:01] <halibut> So:
[21:58:18] <halibut> $ a=5
[21:58:25] <halibut> $ echo "$a"
[21:58:26] <halibut> 4
[21:58:33] <halibut> (whoops -- 5, not 4)
[21:58:51] <halibut> $ bash -c 'echo "$a"'
[21:59:00] <halibut> <blank -- a not assigned in child process>
[21:59:09] <halibut> $ export a
[21:59:19] <halibut> $ bash -c 'echo "$a"'
[21:59:23] <halibut> 5
[21:59:39] <halibut> (because now that a is exported, it is passed to child processes)
[21:59:53] <halibut> You can also combine an export and an assignment:
[21:59:57] <halibut> $ export a=5
[22:01:17] <inz> or combine assignment and spawn: a=5 bash -c 'echo "$a"'
[22:02:12] <halibut> Yes. Giving a command on the same line as an assignment passes that assignment to the child process, and does not set the variable locally.
[22:02:14] <inz> Well, that's kind-of not an assignment, as the a does not get set in current process
[22:02:46] <halibut> Splitting basename and extension is a little trickier. Here is a way to do it entirely in bash, without needing regular expressions:
[22:03:13] <halibut> function myfunction () { ocal b="${1##*/}" ; local bb="${b%.*}" ; local e="${b:${#bb}}" ; b="${1:0:${#1}-${#e}}" ; DO_YOUR_STUFF_HERE ; }
[22:03:28] <halibut> s/ocal/local/
[22:03:28] <SedBot> <halibut> function myfunction () { local b="${1##*/}" ; local bb="${b%.*}" ; local e="${b:${#bb}}" ; b="${1:0:${#1}-${#e}}" ; DO_YOUR_STUFF_HERE ; }
[22:04:21] <halibut> In DO_YOUR_STUFF_HERE, b is everything up to the last dot (or everything if there is no dot). e is the last dot and everything after it (or nothing if there is no last dot).
[22:04:44] <halibut> It is smart enough to recognize that dots before the last slash do not count as extensions.
[22:05:11] <halibut> As a simple version, here is something that splits the given argument, and prints the base on one line and the extension on the second:
[22:05:24] <halibut> function split () { local b="${1##*/}" ; local bb="${b%.*}" ; local e="${b:${#bb}}" ; b="${1:0:${#1}-${#e}}" ; echo "$b" ; echo "$e" ; }
[22:06:12] <halibut> Try it out on things like 'a.b/c', 'a.b/c.', and 'a.b/c.d', for example.
[22:06:29] <inz> I'll try it on .tar.gz ;)
[22:06:59] <halibut> It gives .tar and .gz for me, which is what I intended it to do in such a case.
[22:07:16] <inz> Yeah, I know, I just meant that the problem is not well defined
[22:07:23] <halibut> On just '.gz', it treats .gz as all extension. Not sure what behavior should be intended for that.
[22:07:42] <inz> I could also have an extensionless file that happens to contain a .
[22:08:59] <halibut> Also, split '..' treats the first '.' as the base, and the second '.' as the extension.
[22:10:21] <halibut> Seems to work even with newlines in the string, though.
[22:11:12] <inz> yeah, those can be nasty
[22:11:23] <inz> as can files that start with a - or --
[22:11:26] <halibut> Particularly when trying to pass data to and from other programs.
[22:12:17] <halibut> Long ago, I made some mistake and accidentally named a file ``-f''.
[22:12:31] <Bytram> hey! thanks for jumping in!
[22:12:38] <Bytram> Ouch!
[22:12:41] <halibut> Now, I like to use that to provide a challenge to people. From the command line, how do you remove it without deleting other things in the same directory?
[22:13:14] <halibut> I create an empty directory, and create a ``dont_delete_me'' file and a ``-f'' file.
[22:13:24] <Bytram> mv -- '-f' 'foo'
[22:13:29] <Bytram> rm foo
[22:13:40] <chromas> rm \-f
[22:13:48] <halibut> Brytram's method works.
[22:13:52] <halibut> chromas' method does not.
[22:13:56] <Bytram> really? Woo Hoo!
[22:14:06] <halibut> However, you could do it in one step with either:
[22:14:08] <halibut> $ rm -- -f
[22:14:10] <halibut> or
[22:14:12] <halibut> $ rm ./-f
[22:14:21] <halibut> My favorite, though, is this mistake:
[22:14:24] <halibut> $ rm -i *
[22:14:40] <halibut> That deletes the file you want to keep (without asking!) and leaves the ``-f'' file.
[22:15:24] <Bytram> I know a buncha stuff; and that's the problem. It's not just this particular situation I'm trying to solve, but to get an idea of how, in general, to manipulate "stuff"
[22:15:27] <inz> yeah, a cautious person would always use -- before *
[22:16:11] <halibut> I always use either -- or ./ before *. There are some programs (like find) that do not use ``--''.
[22:17:06] <Bytram> on windows, I developed scads of batch programs that did little things (yanno, the "unix way"), and then other batch programs called them, and still others called those, etc. They communicated by setting environment variables.
[22:17:23] <Bytram> foo: SET foo=4
[22:17:40] <Bytram> foo.bat: SET foo=4
[22:17:54] <Bytram> bar.bat: CALL foo.bat
[22:18:12] <Bytram> now, in bar, foo has the value 4
[22:19:09] <Bytram> In essence, these batch programs treated environment vars as a kind of global memory
[22:20:04] <Bytram> there were no "local vars", so to speak.
[22:20:12] <halibut> You can do things like that with bash, but it is more common to either define a library of functions, which you could source in other scripts, or to pass things on the command line or via stdin.
[22:22:05] <Bytram> lastly, one advantage is that I can call a batch program with a single arg, say a full pathname, and it could set several env vars: path, full filename, extension, and filename without the extension.
[22:22:40] <Bytram> parseit.bat /this/that/these.those
[22:22:51] <Bytram> and parseit might do:
[22:23:10] <Bytram> set parseit_path=/this/that
[22:23:31] <Bytram> set parseit_filename=these.those
[22:23:44] <Bytram> set parseit_fn=these
[22:23:53] <Bytram> set parseit_ext=those
[22:24:40] <Bytram> is there an analagous way to do that in bash scripts? Or is there some other way you'd suggest doing this kind of thing?
[22:25:15] <Bytram> seriously, I have well over 1,000 batch progs developed over the years, so I'd like to start with the right approach from the start.
[22:25:27] <halibut> Two ways. First you can have a script define a function that sets variables, source that script from another, and then call that function within the script.
[22:25:51] <halibut> Second, you can have a script that just sets variables, and then source (not call) that script within your script.
[22:27:21] <Bytram> okaaaay
[22:27:33] <inz> that sounds 'bout right
[22:27:42] <halibut> I'm writing up a quick example ...
[22:27:55] <Bytram> I deal best with enumerated examples ... oh> Noice!
[22:28:09] <Bytram> halibut++
[22:28:09] <Bender> karma - halibut: 9
[22:28:36] <Bytram> brb
[22:28:40] <inz> There's also a wrong way to do it with echoes and evals, but don't go there, you'd open a can of guns pointer at all three of your feet
[22:28:49] <halibut> eval is dangerous.
[22:28:52] <inz> pointed
[22:28:53] <inz> indeed
[22:29:24] <inz> in every language, yet it somehow gets included again and again :)
[22:30:49] <halibut> First version:
[22:31:04] <halibut> ----- BEGIN split.sh -----
[22:31:11] <halibut> function split () { local b="${1##*/}" ; local bb="${b%.*}" ; local e="${b:${#bb}}" ; b="${1:0:${#1}-${#e}}" ; BASE="$b" ; EXT="$e" ; }
[22:31:14] <halibut> ----- END split.sh -----
[22:31:19] <halibut> ----- BEGIN myscript.sh -----
[22:31:27] <halibut> #!/bin/bash
[22:31:35] <halibut> source split.sh
[22:31:39] <halibut> split "$1"
[22:31:43] <halibut> echo "BASE is: ${BASE}"
[22:31:46] <halibut> echo "EXT is: ${EXT}"
[22:31:52] <halibut> ----- END myscript.sh -----
[22:32:04] <halibut> chmod 700 myscript.sh, and run:
[22:32:09] <halibut> $ ./myscript.sh a.b/c.d
[22:32:11] <halibut> It should output:
[22:32:17] <halibut> BASE is: a.b/c
[22:32:20] <halibut> EXT is: .d
[22:32:37] <halibut> The split.sh creates a function named split which sets a BASE and EXT variable.
[22:33:03] <halibut> myscript.sh sources split.sh, and then can call the split function. It does so on the first argument, and echos the BASE and EXT variables that the split function set.
[22:33:28] <halibut> The second version is to move the split call into split.sh.
[22:33:36] <halibut> ----- BEGIN split.sh -----
[22:33:40] <halibut> function split () { local b="${1##*/}" ; local bb="${b%.*}" ; local e="${b:${#bb}}" ; b="${1:0:${#1}-${#e}}" ; BASE="$b" ; EXT="$e" ; }
[22:33:43] <halibut> split "$1"
[22:33:47] <halibut> ----- END split.sh -----
[22:33:52] <halibut> ----- BEGIN myscript.sh -----
[22:34:00] <halibut> #!/bin/bash
[22:34:03] <halibut> source split.sh "$1"
[22:34:06] <halibut> echo "BASE is: ${BASE}"
[22:34:10] <halibut> echo "EXT is: ${EXT}"
[22:34:14] <halibut> ----- END myscript.sh -----
[22:34:33] <inz> And if you want to make things more portable, skip the "function" keyword, and use . instead of source
[22:35:25] <halibut> Yes, I think that helps it to work with older sh shells. That would not help here because I am using some bash-only parameter expansions in my function, but that is probably good advice in general.
[22:36:35] <halibut> The second version works in a similar version to the first, except now you pass an argument to the split.sh script, and it sets the BASE and EXT variables itself. myscript.sh needs to source split.sh (instead of just calling it) so that it is sourced in the same process (otherwise the variables are lost when the process ends), and then can use the BASE and EXT variables as before.
[22:37:36] <Bytram> so 'source' is like a #include in C?
[22:37:45] <halibut> Yes.
[22:38:33] <halibut> The first version is my preference. No point in re-sourcing the same file over and over if you can just source it once to get the function.
[22:38:35] <Bytram> umm, not really; cuse we have compiler vs interpreter glop confusing things, but I think you gt the idea
[22:39:13] <halibut> Both are equivalent to replacing the source/include line with the contents of the sources/included file.
[22:39:52] <halibut> There may be some special ways in which they are different than that direct replacement, but I cannot think of one off the top of my head.
[22:40:07] <Bytram> FYI: I've tested a compiler and a couple OSs, so am very familiar with concepts like storing things on the stack that disappear when that called program exits....
[22:40:28] <Bytram> just trying to translate those concepts to linus syntax and semantics
[22:41:18] <halibut> I need to step away for a bit. Hope this helped.
[22:41:29] <Bytram> if you could humor me, how about an AWK script that adds two numbers (arguments)
[22:42:06] <Bytram> echo 2 3 | gawk '{print $1+$2}'
[22:42:15] <Bytram> or, better still
[22:42:37] <Bytram> echo 2 3 | gawk '{print "SET sum=" $1+$2}'
[22:43:15] <Bytram> or, I could have all of that inside a bash script
[22:44:03] * Bytram is not sure of the syntax of how to pass bash positional parameters in, and then feed those into the awk script
[22:44:04] <halibut> (( sum = $1 + $2 )) ; echo "$sum"
[22:44:32] <Bytram> said awk script could be in another file
[22:45:47] <Bytram> try again; the example in AWK is illustrative of AWK processing (I've got hundreds of AWK scripts already)
[22:46:21] <Bytram> although, that *was* helpful! =)
[22:46:39] <halibut> The above ((...)) line is an example that works in bash.
[22:46:57] <Bytram> got it, tx!
[22:47:25] <inz> a more portable version of the split function could be: split () { local b="${1##*/}"; local bb="${b%.*}"; local e="${b#$bb}"; BASE="${1%$e}"; EXT="$e"; }
[22:48:00] <inz> works also in dash, which is the default /bin/sh in quite a few distros nowadays
[22:48:46] <halibut> Neat. I only have bash on my system (/bin/sh symlinks to bash), so it is hard for me to tell what would work on just sh.
[22:48:59] <Bytram> teamwork++
[22:48:59] <Bender> karma - teamwork: 56
[22:49:16] <chromas> It might act different when you call it as sh
[22:49:23] <inz> gawk -v a=1 -v b=2 'BEGIN { print a + b }'
[22:49:50] <Bytram> yes...
[22:50:08] <halibut> I also got:
[22:50:13] <halibut> $ awk 'BEGIN { print ARGV[1] + ARGV[2]; }' 3 5
[22:50:14] <halibut> 8
[22:50:15] <Bytram> now put that in a bash script that
[22:50:46] <Bytram> takes its two positional arguments, and feeds those to the awk script
[22:51:07] <Bytram> call the files add.sh and add.awk
[22:51:35] <Bytram> how would I do that?
[22:52:12] <Bytram> (This is an over-simplification, of course, but need to set a solid foundation before I go further)
[22:52:15] <halibut> ----- BEGIN add.sh -----
[22:52:19] <halibut> #!/bin/bash
[22:52:22] <halibut> awk 'BEGIN { print ARGV[1] + ARGV[2]; }' "$1" "$2"
[22:52:26] <halibut> ----- END add.sh -----
[22:52:39] <inz> or use "$@" if you don't know the amount of arguments
[22:53:11] <inz> and the script would be passed as -f add.awk
[22:53:50] <inz> Erm, should go to sleep before the dogfarts make it hard to fall asleep
[22:54:19] <halibut> inz: Thanks for chatting. It was fun.
[22:54:20] <Bytram> we're getting there. Let's just say AWK is like a rosetta stone for me.
[22:54:52] <Bytram> ---- BEGIN add.awk ----
[22:54:54] <Bytram> {
[22:55:26] <Bytram> print $1 + $2;
[22:55:28] <Bytram> }
[22:55:35] <Bytram> ----- END add.awk
[22:55:54] <Bytram> echo 2 4 | gawk -f add.awk
[22:56:07] <Bytram> would pring 6
[22:56:12] <Bytram> would print 6
[22:56:31] -!- bacteria has quit [Ping timeout: 265 seconds]
[22:56:44] <halibut> If you want to use stdin instead command-line arguments, then, in your bash script:
[22:56:44] -!- bacteria [bacteria!1125@976-501-612-500.biz.spectrum.com] has joined #soylent
[22:56:51] <inz> if you want that in a variale
[22:56:52] <halibut> echo "$@" | gawk -f add.awk
[22:56:59] <inz> use "$(awk ...)"
[22:57:29] <inz> if you want to set multiple vars, you're quickly in the do-not-enter eval land
[22:57:36] <halibut> As in: sum="$(echo "$@" | gawk -f add.awk)"
[22:57:46] <Bytram> yes, I could, but I'd prefer not. I'm a huge fan of explicit, simple coding with copious comments
[22:59:20] <inz> or if really adventurous and like rube goldberg machines, you could spawn another shell interpreter from awk :)
[23:00:30] <halibut> Did these examples answer your questions about accessing command-line arguments in a shell script?
[23:00:34] <inz> now really to horzontal position
[23:00:40] * Bytram first started programming in the 70's. Probably well over a dozen if not 20 different OSs and well over 30 languages. Simple is good. Explicit syntax >>>> creative syntax/semantics. K.I.S.S.
[23:00:54] <halibut> The first command-line argument is "$1" ("$0" refers to the script itself).
[23:01:04] <halibut> Then come "$2", "3", and so on up to "$9".
[23:01:12] <halibut> Accessing anything past that involves some tricks.
[23:01:22] <Bytram> inz++ thanks so much for your help! have a good night~
[23:01:22] <Bender> karma - inz: 4
[23:01:39] <Bytram> SHIFT
[23:01:41] <halibut> "$@" (with the double quotes) expands to the same as "$1" "$2" "$3" ... all the way to the end (even going past "$9" if you have that many command-line arguments).
[23:02:03] <halibut> It's lower-case, but yes -- shift is how you access past "$9".
[23:02:09] <Bytram> =)
[23:02:39] <halibut> Alternatively, bash supports arrays. arr=( "$@" ) ; ${arr[123]}
[23:03:32] <Bytram> It hasn't entirely gelled yet, but I can't really say where the holdup is. It is VERY much closer than when we started, that's for sure!
[23:03:40] <Bytram> halibut++
[23:03:40] <Bender> karma - halibut: 10
[23:03:46] <Bytram> halibut++ TYVM!
[23:03:46] <Bender> karma - halibut: 11
[23:04:01] <halibut> You are welcome. I'll be away for a bit, but I'll check the backlogs when I get back.
[23:07:41] <Bytram> part of the problem for me is that any scripts I've come across are by master coders who seem to be using every single trick they know to eke out that last 0.01% of performance. I'm more of a workman coder. When you look at my code, you should be able to follow along without any advanced skills at all. And where creative coding is necessary, then copious examples illustrate the various significant variations
[23:10:00] <Bytram> give me a bunch of coding samples, inputs, and outputs, and I can prolly give you a good chunk of the BNF for the language.
[23:10:32] <Bytram> =g BNF
[23:10:33] <systemd> https://en.wikipedia.org - Backus–Naur form - Wikipedia
[23:11:19] * Bytram goes off to ponder and digest but leaves a marker so he can quickly relocate this discussion.
[23:11:23] <Bytram> ====================================================================================
[23:26:10] <Bender> [SoylentNews] - China's Tianwen-1 Mars Probe Delivers its First Haunting Look at the Planet - https://sylnt.us - Knock,-knock,-knocking-on-Heaven's-Gate