#jwrd Logs for Dec 2020

Filed under: #jwrd logs, Logs — Jacob Welsh @ 07:13
Day changed to 2020-12-01
[07:13] cruciform: -- great
[07:13] sourcerer: 2020-11-30 17:12:32 (#jwrd) jfw: cruciform: maintaining the USD price of the product and evaluating exchange rate on the day of payment suits me
[07:14] cruciform: I'm afraid I'm still under the weather; can we postpone today's session - perhaps rescheduling for Thursday 18:00 UTC?
[13:05] dorion: cruciform, rest up and feel better. I'll let jfw confirm, but pretty sure that'll work for him. did you receive the email with hw 4 & 5 corrections ?
[15:04] jfw: cruciform: yup that works for me, feel better. btw, I've uploaded last week's recording to the class file tree; I'll keep these up until the end of each module.
[15:29] jfw: billymg: any idea how it might be that pingbacks worked at least to the standard they normally "work" for mysql-based article updates for diana_coman but aren't doing so for me?
[16:34] billymg: jfw: unfortunately i'm not very familiar with the pingback code in mp-wp, except knowing that it's been a recurring point of frustration for people. do they work for you for non-log posts? did they work at some point and then stop working?
[16:42] jfw: they work in the sense of sending one or two pings at a time when I publish or save a previously published article through the web admin interface. They don't appear to work for me when using mysql directly.
[17:51] billymg: jfw: ah, i see. yeah i'm not sure what's going on there
Day changed to 2020-12-02
[01:20] dorion: hey billymg, how goes ?
[01:23] dorion: in other goings, let's see where this one goes:
[03:41] dorion: tis been interesting.
[04:23] jfw: dorion: hey thanks for venturing forth. you know the square bracketed link notation is of republican provenance though? (phf specifically.) Like citation quoting and selection linking and basically all the nice things it dun do much in the barren surroundings
[04:25] dorion: jfw, yeah, I know.
[04:25] jfw: it's rare enough to even have public logs (and observe those folks don't evidently find it important enough to run their own, seem to be using whatever public toilet was convenient)
[04:25] jfw: but boy does it optimize those github links all nice and tidy!
[04:27] jfw: I hadn't encountered oasis or cproc
[04:28] dorion: my approach right now is to use the forms of expression I recognize as superior and see who says what.
[04:29] jfw: main reason tcc isn't that interesting to me is that while cpu and C standards support might improve, it does zilch for c++ so we'd be stuck with gcc anyway
[04:31] jfw: I can see that approach; though I wonder at what point it's more like talking latin to the locals (...Romanian to the Anglos?)
[04:33] dorion: jfw, that i don't know.
[12:08] cruciform: jfw, dorion -- I'm still pretty out of it; can we move back tomorrow's session to Tuesday 8th @ 18:00 UTC?
[12:09] cruciform: -- received, thanks
[12:40] dorion: cruciform, ^ didn't quote because you're using the category, not the article for the month, i.e.
[12:40] sourcerer: 2020-12-01 13:05:19 (#jwrd) dorion: cruciform, rest up and feel better. I'll let jfw confirm, but pretty sure that'll work for him. did you receive the email with hw 4 & 5 corrections ?
[12:40] dorion: next tuesday is fine by me, rest up and get better will ya ?
[14:28] dorion: -- a couple links : ,
[14:28] sourcerer: 2020-12-02 03:41:13 (#jwrd) dorion: tis been interesting.
[16:03] whaack: dorion: heyo, not too many new developments here. Been mostly focused on spinning around on my surfboard and developing a tremolo on the guitar. Broke the non-writing streak yesterday with a couple of paragraphs yesterday, I'm feeling the energy to get a writing streak going
[16:05] dorion: hey whaack, good to hear from you. I left a comment that's in your mod queue.
[16:05] dorion: gonna be publishing any recordings of the guitar developments ?
[16:28] whaack: sure i'd love to, although I'd prefer to find a half decent mic setup first. Maybe the pnoje is good enough
Day changed to 2020-12-03
[01:22] jfw: cruciform: I should be explicit - yep, see you next Tuesday. Plague 2.0?
[06:09] jfw: billymg: any reason you don't just link to your patches & seals in and ? I did a wget -m to make sure I had everything without having to copy & paste into the terminal like a monkey - er, PHP coder, para no insultar los monos - then found I still didn't have everything
[06:11] jfw: I even let apache do the work and nobody seems to mind


#jwrd Logs for Nov 2020

Filed under: #jwrd logs, Logs — Jacob Welsh @ 20:49
Day changed to 2020-11-02
[16:32] cruciform: jfw, thanks (and apologies for the late reply)!
[16:35] cruciform: I'm always very tempted to do as little work as possible when 'building on someone else's work' (the work's already done - I'll do just enough to pass it off as mine!)
[16:36] cruciform: (ftr, I'm speaking of my own laziness; not suggesting that's what you've done, here)
Day changed to 2020-11-03
[17:39] cruciform: disclosure: I've not finished Session 3's homework, yet - I'll have it completed and emailed by end of day
[17:54] jfw: alright
[18:03] cruciform: also, I'm 2 minutes late!
Day changed to 2020-11-05
[18:37] jfw: in local progress of cancers here in North Boston,
[18:42] jfw: the only somewhat surprising part to me is how strong is the skew toward socialism. 5 of the 6 referendum questions were put on the ballot by an unabashed "Democratic Socialists" group, for measures that had been defeated not that long ago
Day changed to 2020-11-10
[16:54] jfw: cruciform: we've posted homework #5; note that it references some newly added files on the training server. Just ask here if there's any trouble.
[17:32] cruciform: jfw: great, thanks
Day changed to 2020-11-12
[17:31] dorion: hey cruciform, how goes ? we'll be standing by at 18:00.
Day changed to 2020-11-15
[15:53] jfw: In unexpected discoveries of brokenness today: busybox 'shuf' misses a large portion of the permutation space. E.g., 'seq 2 | shuf' always produces 1, 2.
[16:01] jfw: looks like it's essentially excluding the 'unchanged' value for each choice. As in, never draws the Ace first or the two second or the three third, etc.
[16:03] jfw: so I typoed the 'seq 2 | shuf' result - it's always 2, 1.
Day changed to 2020-11-17
[18:14] dorion: cruciform, sent you the invite via email.
[18:16] dorion: so ftr, moving back today's scheduled session 6 to thursday, november 19th at 18:00 utc to allow cruciform to submit hw 4 and 5. session 7 is planned to return to the tuesday schedule nov 24th.
[18:20] dorion: cruciform, as you work through hws 4 and 5, feel free to ask questions here.
[18:22] dorion: cruciform, btw, did you ever read eric raymond's essay on [][smart questions] ?
[18:29] cruciform: got the email, thanks - I'll check out that essay
[18:29] jfw: as a side note, plz not to skimp on the http: prefix for links - it's the only reliable way for a text scanner to identify them
[18:29] cruciform: noted
[18:30] jfw: (consider all the new-fangled GTLDs - how's a poor machine to know that is a website? or even a human for that matter?)
[19:08] dorion: http:// -- noted jfw, there you go.
Day changed to 2020-11-18
[02:52] jfw: !s hi
[03:15] jfw: !s hi
[03:19] jfw:
[03:23] jfw: so basically nothing worked on the first try (so what else is new in this world?) but it's a start
[03:26] jfw: ah cool, one of the fails was just that I got the quit syntax wrong (needs the command prefix even in PM)
[03:30] jfw: !s hi
[03:33] jfw: !s hi
[03:40] jfw: awk is such a sloppy language, ugh. Many trivially-preventable typo bugs here - global vs. local variables and such.
[03:40] jfw: this is diana_coman's awklogbot prototype, hacked up a fair amount by me.
[03:41] jfw: !s hi
[03:44] jfw: !s hi
[03:50] jfw: !s hi
[03:50] sourcerer: Hello there, jfw
[03:50] jfw: now that's more like it!
[03:50] jfw:
[03:50] sourcerer: 2020-11-18 03:50:10 (#jwrd) sourcerer: Hello there, jfw
[03:50] jfw:
[03:50] sourcerer: 2020-11-18 03:50:15 (#jwrd) jfw: now that's more like it!
[03:55] jfw:
[03:55] jfw:
[03:55] sourcerer: 2020-11-18 03:54:50 (#fixpoint) jfw: testing...
[03:55] jfw: !s help
[03:55] sourcerer: !s is my prefix for commands: hi, help
[03:59] jfw: so that's pretty cool, the owner can have it !s join #newchannel on the fly and the new article is created in the db and everything, just without a specific category assigned for the channel as with statically configured ones
[04:05] jfw: .:: testing bracket notation ::.
[04:18] jfw: Function argument count mismatch was another pain in refactoring - awk DGAF and happily sets missing parameters to "", and in fact "it's a feature" i.e. the only way to do local variables.
[04:19] jfw:
[04:19] sourcerer: 2020-11-18 03:15:09 (#jwrd) jfw: !s hi
[05:52] jfw: !s hi
[05:52] sourcerer: Hello there, jfw
[05:55] jfw: Testing after change of line formatting tags.
[05:57] jfw: ...
[06:01] jfw: ...
[06:02] jfw pokes some more
[06:08] jfw hopes the testing hasn't been too noisy and might move it elsewhere if there's to be much more.
[06:19] jfw: but it's working nicely now and just about where I want it ; the main things I'd like to add before going live are scraping of external links for auto-archiving, and forward/backward threading links for the log articles. Then I'll need a script to back-fill my existing logs through the usual processing. Although, I suppose I could post-date them so that going live isn't dependent on finishing
[06:19] jfw: that.
[06:22] jfw: I'd also like to add search, but that's fine to do later on.
[06:24] jfw: <- sample of the rendered HTML.
[06:25] jfw: !s hi
[06:25] sourcerer: Hello there, jfw
[06:28] jfw: <- updated to show the bot chat; it's pretty nice I think as nested spans. Also since there aren't block elements (table cells, paragraphs) the famous MP-WP #select mechanism might work across multiple lines.
[06:29] jfw: ugh, probably not though because its span will get closed by the others, nvm.
[06:32] jfw: I guess as long as the bookends aren't inside a bot or action line.
[13:05] dorion: jfw, nice. not seeing the logs on your blog yet, am I overlooking or still in testing phase ?
[13:06] dorion: also, forwarded you an email from one of tonight's participants suggesting the use of jitsi instead of zoom.
[13:54] cruciform: jfw, dorion: I've a friend interested in watching the presentation tonight - does he need a separate invite (perhaps you could email it to me, if so)?
[14:53] dorion: cruciform, he can use the link and password provided to you.
[17:25] cruciform: cheers
[17:29] jfw: dorion: still testing, which is the meaning in the listing above of what's to be done before going live
[17:31] jfw: because I don't want to be hand-fiddling the html in previously published articles
[17:47] jfw: perhaps I'll dig out my last missive on the thing presently calling itself Jitsi, but in short: it's about as "alternative" to Zoom as Pepsi is to Coke, and tastes worse too. It's in the "we'll call it free and open source because we're too shallow to have considered the dependencies"
[17:47] jfw: * camp.
[17:50] jfw: which does seem to fit in with the thing the guy asking about it is on the board for: "OEMR is a non-profit organization formed to ensure that all people, regardless of race, socioeconomic status or geographic location, have access to high-quality medical care through the donation of free, open source medical software and service relating to that software."
[17:58] jfw: to make myself clearer: high-quality anything does not from "free code" or "open access to the best tools" or whatnot. There's entirely enough of that in the world already. It comes from competent *people* who can apply those tools effectively, and that's about the most scarce resource there is.
[17:58] jfw: *does not come from
[18:02] dorion: jfw, I scanned the jitsi website. first thing noticed was I didn't see a source download for desktop, only mobiles.
[18:03] jfw: probably on github somewhere.
[18:05] dorion: jfw, ah, i missed that line. sorry. how does the job of scraping links for auto-archiving compare to the script to back fill the history ?
[18:08] jfw: the first is pretty simple since it's already detecting links, just a matter of sticking them in a table.
[18:08] dorion: it seems to me like the history importing script is the easiest and most logical to do first. the auto-archiving and forward/backward links are nice to haves from my perspective. even if their easy, I'd prefer to have it public to return to habits such as log link quoting.
[18:09] dorion: they're
[18:11] jfw: I didn't mean fully implementing such archiving right now - just the intake side of a link queue in mysql basically. because I intend to do it eventually and so would rather not have to do the processing part twice
[18:13] jfw: let me ask this way: if we go live with log articles now and add a threading links feature later, it will only be in articles created after that point; would we then need to go back and update the old ones by hand or by some special-case code, for consistency?
[18:13] dorion: jfw, ok, I understand about the intake only part of the archiving.
[18:16] dorion: my question in response to the updating is, won't article that publishes this line need to be updating anyways each time in the future that anyone links it in channel ?
[18:16] dorion: won't the article*
[18:16] jfw: updating how?
[18:18] jfw: as in, what changes in a past line by its being referenced in the future? if you mean btcbase-style backlinks, that's handy but possibly done well enough already by wordpress trackbacks
[18:19] dorion: jfw, this line has 7 links to where it's referenced in future logs.
[18:21] dorion: jfw, oh, I suppose then I'm unclear what you mean by "forward/backward threading links for the log articles".
[18:22] jfw: backlinks indeed - so no, I don't think modifying old article content is a good way to implement that. btcbase can do it becase the pages are dynamically generated.
[18:23] jfw: by forward/backward I mean simply a link to the next and previous log article by date for the particular channel, so you can read in sequence without having to bounce back through the category.
[18:27] jfw: perhaps that's an unimportant luxury though, what do you think?
[18:30] jfw: we all have the experience of using the #ossasepia blog-based logs; this thing is going to work just the same except for what I change.
[18:33] dorion: oh I see, makes sense.
[18:34] dorion: to me, it's a nice to have. another option to navigate without going back to the category is to modify the url in the browser.
Day changed to 2020-11-19
[07:05] jfw: ... ...
[07:06] jfw:
[07:06] sourcerer: 2020-11-19 07:05:40 (#jwrd) jfw: ... ...
[07:07] jfw: well, link extraction for later archival is working except that it redundantly processes its own citations, heh.
[07:15] jfw:
[07:15] jfw:
[07:15] sourcerer: 2020-11-19 07:05:40 (#jwrd) jfw: ... ...
[07:16] jfw: and fixed.
[07:22] jfw: this is all pretty exciting I must say! maybe it even turns out I have something to say using all this shmancy realtime hypertext technology.
[07:31] jfw: I'm leaning toward skipping those threading links; for one thing, with monthly articles it's not going to be a big deal and for another, derivation of the "permalink" (in wordpress terminology) is potentially troublesome even given the article name/slug
[07:34] jfw: I will publish my changes to the logbot as V patches, so if the lack of such links bothers anyone... let him send in the patch!
[12:52] dorion: jfw, cool, sounds good.
[17:17] dorion: hey cruciform, how goes ?
[17:17] dorion: thanks for joining last night's call.
[17:19] dorion: what's your status for training today ? we have yet to receive hw 4 and 5.
[17:21] cruciform: just finishing up hw 5; done hw 4
[17:21] cruciform: on for 18:00 session today
[17:22] cruciform: brb
[17:23] dorion: thanks, sounds good.
Day changed to 2020-11-20
[14:23] dorion: hey cruciform, how goes ? as of ~6:00 UTC we had not received homeworks 4 and 5. Did you forget to submit them or what's the status ?
[14:32] dorion: regarding sharing the material with your friend, first thanks for asking. we understand that there's not a whole lot we can do to prevent you from doing so, but think his request presents an opportunity.
[14:37] dorion: from what you've shared, it seems like he's in a pattern of consuming material without much interaction. we see the core value of our service being the training sessions and office hours in which clients have accountability and guidance, which save time in acheiving their goals. there are already a number of free options for learning Unix and the specific applications we teach in later modules are
[14:37] dorion: all publicly documented to some degree.
[14:38] dorion: part of the long term value to you is the degree to which you can use the tools like gpg and btc with people you trust, so if he gets up to speed that helps you.
[14:41] dorion: if he does become a client, we'd pay you a 10% referral fee, giving you further incentive to persuade him to become our client.
[14:43] dorion: I'll leave it to your discretion, but I propose you ask him to join #jwrd and have a conversation with us about his interest in becoming a client before you share the written materials with him. that at least raises the likelihood of disrupting his pattern of consuming w/o interaction.
[14:44] dorion: perhaps you also suggest he registers a key and you'll encrypt the files to his key to share.
[14:46] dorion: cruciform, how does that strategy sound to you ?
[17:23] cruciform: dorion, while the homework is "done", it's not completed to a level I'm happy with - I'm going over it; will have it emailed by 00:00 UTC today
[17:24] cruciform: the above makes sense wrt my friend - as always, getting him to come out of hiding is the issue...
[17:44] dorion: ok cruciform, thanks for the update. feel free to raise questions in here too.
[17:45] dorion: understood re your friend.
[18:25] dorion: jfw, I have updates to my own about/contact page to make, but while it's on my mind, adding #jwrd to yours makes sense to me.
[21:34] jfw: dorion: thanks for noting; ftr I do have #fixpoint listed as an IRC contact point, where I'm indeed still tuned in, but with the focus now on #jwrd I don't quite see a need to keep that open.
[21:40] jfw: seems like there's some other gardening work in order though, like adding some basic bio / history, linking, removing from the active 'blogroll'
[21:41] jfw: and pointers to getting started with my software as diana_coman noted a while back.
[22:27] cruciform: dorion, jfw: Homework 5, Q15; I can't see a file called "sums" in the UNXClass directory?
[22:44] jfw: cruciform: I see a file "sum" (on the training server) with the expected contents, try that instead.
[22:47] cruciform: jfw, works - though only checks the one sum contained in the file "sum"; the wording of the question implies there's a missing file, "sums" containing sums for every file in UNXClass?
[22:51] jfw: I could see that interpretation, or at the very least more than one. You can leave it as just the one for this assignment.
[22:51] jfw: dorion: what's going on here, did we clobber a "sums" file that in fact existed or what?
[22:51] cruciform: cool, no worries - I created a file with all the sums, and verified 'em
[22:52] jfw: cruciform: sounds good, sorry about the confusion.
[22:53] cruciform: np
[22:54] cruciform: I've been trying to dissuade a friend as to Tether FUD - he thinks the BTC price is entirely fabricated from unbacked printing
[22:57] jfw: sounds like he's listening to a thief who cries "thief!"
[22:57] jfw: I wonder what he means by "backed" though
[22:58] cruciform: he means the Tethers aren't backed by USD (they're running a fractional reserve)
[22:58] cruciform: not sure what you mean by the thief comment?
[22:59] jfw: erm, you said BTC price, so I took it that he meant printing of BTC so not seeing where tether enters into it
[23:00] cruciform: aha, I see the confusion - I mean he thinks unbacked-Tether printing is inflating the BTC price
[23:00] jfw: I have heard also that tether is a fractional reserve and indeed would be more surprised if it weren't.
[23:00] cruciform: I agree
[23:01] cruciform: I suggested that OTC trades determine the BTC price; not exchanges
[23:03] jfw: could be, then; there aren't all that reliable price signals there (but are there anywhere these days?)
[23:03] cruciform: seems likely to me that exchanges are wash-traded, with thin order books
[23:04] cruciform: precisely - there isn't a free market in anything, really (expect BTC mining), with all the central bank printing
[23:05] jfw: There was an argument that much of the 2013 rally was fraudulent trading by infinitely-funded bots on mtgox; and that's quite possible but things like that do run their course soon enough.
[23:05] jfw: anyway, I'm off for now.
[23:05] cruciform: yes - seems that'd get harder as the market cap increases
[23:05] cruciform: ttyl
[23:15] cruciform: jfw, homeworks for sessions 4&5 sent; apologies for tardiness
Day changed to 2020-11-21
[03:14] jfw: got them cruciform, thanks.
[03:18] jfw: re the BTC/fiat price action - BTCUSD testing the all-time high - I will point out that while there's no "right answer" to "do I buy or sell or hold??", it is quite likely a good time to be re-evaluating the situation and re-balancing so that you'll be satisfied with your situation no matter the outcome.
[03:26] jfw: is the long-term chart, such as it is; purely based on this it's quite possible either that we pull back to $5k or never again see below $50k. I know in 2018 I was kicking myself for not having hustled more to sell during the December frenzy.
[03:27] cruciform: jfw: not a bad time to pay for modules 2+3, either! ;)
[03:27] jfw: could be!
[03:28] cruciform: I feel you regarding the lack-of-hustle; I have similar regrets from the 2017 bull run
[03:28] cruciform: I'll let my OTC buyers know I'm looking to sell
[03:30] jfw: My personal guess at a narrative would be simply: second wave of the pandemic is leading to second wave of lockdowns, which will assuredly lead to second wave of stimulus / easing / fiat-printing, such that Tether's attempts will look amateurish by comparison.
[03:30] jfw: otoh, bitcoin hasn't been known to correlate much with mainstream news.
[03:30] cruciform: that is my view, too
[03:34] cruciform: I'm not one for timing the market, but do want to divest
[03:35] cruciform: amusingly, my tether-worried friend is heavily invested in TSLA - coz that's not propped up by printolade, at all!
[03:37] jfw: right?
Day changed to 2020-11-22
[19:56] jfw: hello abrelosojos
[19:56] cruciform: jfw: abrelosojos is my friend who listened to the talk you guys gave
[19:57] jfw: ah cool.
[20:17] jfw: abrelosojos, have you used IRC or GPG before?
[20:18] abrelosojos: yeah I have used them before
[20:18] abrelosojos: thanks for your time on that talk on zoom the other day
[20:19] jfw: our pleasure, hope it was informative.
[20:25] jfw: Do you have a GPG key you can link here? That way you can establish a long-term identity & secure communications when necessary without Freenode as a dubious intermediary
[20:25] jfw: is good for pasting such things
[20:30] jfw: registering with deedbot - which associates an irc name and Web of Trust ratings with the key - has traditionally been a part of that rite of passage. dorion & I haven't quite decided whether to keep using it, and for instance haven't contracted for the bot's services here, but I suppose it wouldn't hurt to at least register if you like the nick.
[20:38] abrelosojos: yeah sure - I was planning to register my key
[20:53] jfw: And we are live!
[20:54] jfw: logs look a bit plain presently but just needs some css tweaks.
[21:18] dorion: jfw, nice. looks good in links.
[21:23] dorion: -- nice, thanks for the intro.
[21:23] sourcerer: 2020-11-22 19:56:44 (#jwrd) cruciform: jfw: abrelosojos is my friend who listened to the talk you guys gave
[21:25] dorion: bienvenido abrelosojos.
[21:27] dorion: -- how does he explain BTC price action before tether ? or bitfinex ?
[21:27] sourcerer: 2020-11-20 22:54:25 (#jwrd) cruciform: I've been trying to dissuade a friend as to Tether FUD - he thinks the BTC price is entirely fabricated from unbacked printing
[21:29] dorion: what's supported more by unbacked printing, us treasury bond prices or the btc ? hmm ? lol.
[21:31] jfw: got that css done, e.g. bots and actions are nicely distinguished now, and verily multi-line selection works even across all sorts of intervening elements
[21:31] cruciform: yes indeed; on pointing out the Fed-induced stock market bubble, got a lulzy response of "it's legal when the USG does it!"
[21:34] dorion: jfw, sweet.
[21:36] dorion: cruciform, "legal" is determined by who makes the rules. the rule for a while was, "whoever has the gold, makes the rules". gold hasn't done a very good job keeping up with btc purchasing power though.
[21:39] dorion: -- thanks for joining. were there any points you think we could improve and clarify ?
[21:39] sourcerer: 2020-11-22 20:18:59 (#jwrd) abrelosojos: thanks for your time on that talk on zoom the other day
[21:41] jfw: re "legal when the mob does it" - it's not necessarily so ;
[21:46] dorion: jfw, good reference.
[21:49] billymg: hey dorion, jfw
[21:50] billymg: your new logs ( ) just popped up in alf's channel. i had a chance to skim/read through them and figured i'd join and lurk for a while if that's alright
[21:51] jfw: welcome billymg, glad to have you
[21:53] dorion: hey billymg, welcome. how's costa rica ?
[21:54] billymg: jfw: ty, likewise glad to see jwrd still going strong in the sane bitcoin storage solution space
[21:56] billymg: dorion: it's good, can't complain too much i suppose. the complaints i have wouldn't go away in any other country that i'm aware of (speaking of the global shift to... not even sure what to call it)
[21:57] billymg: i've been mostly splitting my time between spanish practice, some light fiat gig hours, and working on property renovations with a contractor
[21:58] dorion: billymg, nice, sounds constructive.
[21:58] billymg: just recently acquired a second place, as a rental (for btc no less), for the exclusive reason that it has fiber internet and my neighborhood still does not
[21:59] dorion: billymg, sounds advantageous on multiple fronts.
[21:59] billymg: dorion: haha, it's at a very relaxed pace i can assure you
[21:59] cruciform: billymg, you're paying rent in BTC? How'd you manage that?
[22:00] jfw: sadly I'm still fiberless myself; one thing at a time though.
[22:01] billymg: cruciform: dumb luck tbh, the landlord is contact through a friend and he just happened to want some btc
[22:01] billymg: jfw: in rural mass?
[22:01] dorion: billymg, how did the "shift" shift your plans with the bed and breakfast ? has international tourism picked itself off the floor at all ?
[22:02] jfw: I'm in urban Maine presently (though was in coastal village Maine for a couple months)
[22:02] billymg: dorion: oh it completely killed it in the short term, we had three 1-2 week long tour groups scheduled to rent the entire place during the months of may - july that were all forced to cancel
[22:03] dorion: billymg, yeah, that's rough. panama's boarder was pretty tight into sept.
[22:03] billymg: jfw: ah, so that's what was meant by North Boston?
[22:04] jfw: ayep.
[22:05] dorion: lol.
[22:05] billymg: jfw: gotcha haha
[22:05] jfw: (and I suppose I finally need to fix the damn theme to not show full articles under the categories/archive lists.)
[22:06] billymg: dorion: yeah, it's unfortunate. and i don't even mind the lack of business as much as the general annoyance of ~everything these days
[22:12] dorion: billymg, they've increased restrictions here in recent weeks. bars had been open pretty much the whole time but they just shut'em down prior to the thanksgiving migration.
[22:13] jfw: billymg: say, would you have any pointers re before I set off into the mpwp labyrinths? I'm using a lightly modified 'classic' theme
[22:13] sourcerer: 2020-11-22 22:05:51 (#jwrd) jfw: (and I suppose I finally need to fix the damn theme to not show full articles under the categories/archive lists.)
[22:14] dorion: no more outdoor dining either given it's not warm enough to keep the leaves on the trees.
[22:15] jfw: Nobody in Portland minds the new restrictions here because everyone's too old to be up past 9pm anyway. I read it in the paper!
[22:16] dorion: -- do you want to sign an addendum and settle the payment this week ?
[22:16] sourcerer: 2020-11-21 03:27:01 (#jwrd) cruciform: jfw: not a bad time to pay for modules 2+3, either! ;)
[22:16] billymg: dorion: sad to hear, gotta keep the demoralization campaign going i suppose. everything seems to be open again here, just with earlier closing times, capacity limits, mask rules in shops, etc. etc.
[22:18] billymg: jfw: one sec, i think this is the thing i helped diana_coman with earlier this year. lemme look back and see if i can find the discussion and/or fix...
[22:19] dorion: billymg, yeah, it's a mental virus more than anything imo.
[22:19] billymg: dorion: absolutely. i think mp mentioned it somewhere that if people were still people they would've simply said "fuck you" to all the new rules and nothing would've happened
[22:20] jfw: I was rereading in search of some stronger footing re my own position
[22:20] dorion: I enjoy being outside it winter, took a lot of practice, but the cold can be refreshing if you know how to embrace it.
[22:21] jfw: One point I didn't see addressed there, and wonder if any here can help out, was the "flattening the curve" argument - that restrictions can't reduce the overall case count but can reduce the intensity so as not to overwhelm those fragile socialist supply chains (though I suppose that last part is where it's addressed indirectly)
[22:24] jfw bbl, dinner.
[22:28] cruciform: -- sounds good; mind itemising the invoice for me?
[22:28] sourcerer: 2020-11-22 22:16:17 (#jwrd) dorion: -- do you want to sign an addendum and settle the payment this week ?
[22:29] billymg: jfw: ah, no, she was trying to adjust pagination in a way that would only affect the archive list
[22:32] billymg: jfw: there is a "setting" in mp-wp admin (Settings > Reading > For each article in a feed, show: Full Text | Summary) that i thought would do the trick but tried on my blog and did nothing
[22:35] billymg: jfw: my guess would be to look into that though. i'm thinking there should be a hook somewhere at the theme level that checks this setting and displays articles on list pages accordingly
[22:36] billymg bbl
[22:42] dorion: good to catch up billymg, laters.
Day changed to 2020-11-23
[00:48] jfw: billymg: thanks for that and the ref, and amazingly enough the [+if ( get_option('posts_per_archive_page') && ($this->is_archive) ) {pasted snippet still loads.
[00:48] jfw: +$q['posts_per_page'] = get_option('posts_per_archive_page');
[00:48] jfw: gah!
[00:49] jfw: * the pasted snippet still loads
[00:49] jfw: (and is now even archived inline, lolz)
[00:53] jfw: but as a side note, I'm still friends with diana_coman, who is still very much alive, so let's kindly link to her stuff when linking to her stuff.
[01:01] dorion: jfw, cheers to that.
[03:14] cruciform: - jfw, dorion, Module 2: $4000 + Module 3: $3200 + Hardware Package: $2500 - Retroactive 10% Discount: $1080 - Cost of FG (which I already own): $500 = $8120. Does that sound right?
[03:14] sourcerer: 2020-11-22 22:28:35 (#jwrd) cruciform: -- sounds good; mind itemising the invoice for me?
[14:53] dorion: cruciform, you will have the invoice today. $8120 looks correct, but does not factor shippping. we've delivered hardware to all other clients in person.
[14:56] dorion: cruciform, another question is if you want two laptops or a laptop and a desktop.
[16:36] billymg: << ack, no problem. i use ascii's because it has the best search functionality currently, but after after a lengthy discussion i do understand the "why" behind logs in mp-wp
[16:36] sourcerer: 2020-11-23 00:53:40 (#jwrd) jfw: but as a side note, I'm still friends with diana_coman, who is still very much alive, so let's kindly link to her stuff when linking to her stuff.
[20:21] jfw: re desktop, not sure if I mentioned explicitly so: we don't presently have a known-working, new-parts coreboot desktop to offer, though dorion's efforts in that direction have been promising.
[20:23] jfw: thus if you're interested in that, cruciform, what might make sense is to go with one laptop for starters and tackle desktops a bit later
[20:25] jfw: billymg: I hear you re log search; I do intend to implement it here, and the database is set up fine for it, though might not get around to it for a while yet.
[21:27] cruciform: -- jfw, dorion I'll have to think about that. It may take me a couple of weeks to settle the payment. Do you want to lock-in the BTC price at today's rate, until - say - Dec 7th?
[21:27] sourcerer: 2020-11-23 20:23:32 (#jwrd) jfw: thus if you're interested in that, cruciform, what might make sense is to go with one laptop for starters and tackle desktops a bit later
Day changed to 2020-11-24
[03:34] dorion: cruciform, alright, think about it. could go with the laptops right now and then make a decision about a desktop at a later date. as jfw clarified, the desktop option is still under development.
[03:37] dorion: cruciform, a two week option at ~all time high is hard a bargain, what percentage could you put down as a down payment this week ?
[03:39] dorion: we have one thinkpad in stock and will order the other this week. that should give sufficient window to get them set up and shipped off to you by the time you're ready to start module 2.
[03:45] dorion: crucifrom, worth mentioning too that the desktop quite large and heavy compared to the laptops and shipping will be more expensive for the former.
[17:31] cruciform: -- about 0.36BTC worth
[17:31] sourcerer: 2020-11-24 03:37:04 (#jwrd) dorion: cruciform, a two week option at ~all time high is hard a bargain, what percentage could you put down as a down payment this week ?
[19:53] jfw: cruciform: btw the system administration topics will take up the remaining 'beginner' sessions though it's not clear yet whether it'll fit in 8 or need all 9. If it fits in 8, I could prepare something on a topic of your choice for #9.
[19:55] jfw: For instance, I recall you were interested in running your own blog; for that, some basic php or mysql literacy will be helpful
[19:58] dorion: cruciform, that'll suffice to lock in the price.
[20:05] jfw: lock in like a vice, what'd be gone in a trice, without asking twice, like sugar and spice
Day changed to 2020-11-25
[22:17] jfw: cruciform: to confirm & get down for the log the status of things from Tuesday, we received homeworks 4 and 5 late so they will be returned by next Tuesday; homework 6 is due from you at that time; homework 7 will be assigned also at that time - this was my bad for not getting caught up on writing those last week. There was also reading assigned last week that I didn't check on, so proceed with
[22:17] jfw: that if not done yet as well as the 'less' & 'tmux' review that we found was necessary.
[22:17] jfw: dorion & I are working on getting a proposed contract out ASAP for the next modules and hardware.
[22:23] dorion: cruciform, I sent you some pms to sync up on shipping.
[23:29] cruciform: jfw, dorion - sounds good, thanks
Day changed to 2020-11-26
[14:10] dorion: welcome whitehorn, who might you be ?
[14:11] dorion: cruciform, are you ok with US layout keyboards for the thinkpads ? or do you want UK keyboards ?
[14:15] whitehorn: hi dorion, Steve here
[14:17] dorion: whitehorn, nice ! happy thanksgiving.
[14:17] whitehorn: happy thanksgiving!
[14:17] whitehorn: nice day out there, very mild
[14:19] whitehorn: building my install script, hit a snag
[14:19] dorion: jfw, want to put the #jwrd logs link in the topic.
[14:20] whitehorn: in the BUILD doc, 3.4
[14:21] dorion pulls up BUILD file
[14:21] whitehorn: goes to cross compile but the configure script barks
[14:21] whitehorn: checking for C compiler...
[14:21] whitehorn: ./configure: cannot find a C compiler
[14:22] whitehorn: looks like it was built as xgcc
[14:22] whitehorn: /var/build/gales/build/build-gcc/gcc/xgcc
[14:27] dorion: whitehorn, hmm, first time I've seen that error.
[14:31] dorion: let's gather some info to help jfw when he checks the log. what host are you building on ?
[14:32] dorion: I have a couple gales installs running, but I don't currently have a build environment to immediatly cross reference.
[14:34] whitehorn: ok, thank you, Linux 5.4.0-54-generic #60-Ubuntu SMP Fri Nov 6 10:37:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[14:41] dorion: whitehorn, what's the result of `echo $TOOLS $ROOT` ? from Section 1. of BUILD, "tools -- where the cross toolchain and any other build-time utilities are installed."
[14:51] whitehorn: checking for C compiler...
[14:51] whitehorn: ./configure: cannot find a C compiler
[14:51] whitehorn: make: Nothing to be done for 'install'.
[14:51] whitehorn: bash-5.0$ echo $TOOLS $ROOT
[14:51] whitehorn: /var/build/gales/tools /var/build/gales/root
[14:54] whitehorn: thanks for pointing that out though, looks like my script hadn't set them
[14:54] whitehorn: now i see the gcc under /var/build/gales/tools/bin
[14:55] whitehorn: x86_64-gales-linux-musl-gcc
[14:56] dorion: did you set all the environment variables in Section 1 ?
[14:57] dorion: $S and $GALES_REPO have to be modified from the BUILD doc.
[14:57] whitehorn: yep, just manually entered them on the bash line with export
[14:57] whitehorn: export S=/home/steve/src/gales
[14:58] whitehorn: export GALES_REPO=/home/steve/Downloads/gales-linux-20191201
[14:59] whitehorn: think i see something typed incorrectly, thanks
[15:00] dorion: not having those likely fouled up prior steps.
[15:03] whitehorn: :-D
[15:05] dorion: the BUILD doc is designed to facilitate copy and pasting of the steps. diana_coman reported making a script out of the BUILD doc, though she also read the files a few times prior to scripting it.
[15:07] dorion: copy pasta without reading can obviously still cause problems/indigestion.
[15:30] whitehorn: reading != understanding
[15:37] whitehorn: still failing there
[15:37] whitehorn: (build) steve@steve-MS-7B23:/var/build/gales/build/musl-1.1.21$ ./configure --build=$BUILD --host=$TGT --prefix= --disable-shared --enable-warnings CFLAGS=-O1
[15:37] whitehorn: checking for C compiler...
[15:37] whitehorn: ./configure: cannot find a C compiler
[15:37] whitehorn: (build) steve@steve-MS-7B23:/var/build/gales/build/musl-1.1.21$ echo $BUILD
[15:37] whitehorn: x86_64-ubuntu-linux-gnu
[15:37] whitehorn: (build) steve@steve-MS-7B23:/var/build/gales/build/musl-1.1.21$ echo $TGT
[15:37] whitehorn: x86_64-gales-linux-musl
[15:38] whitehorn: that CFLAGS = -O1 :)
[15:47] dorion: hmm, did you start from stratch or tweak and try to resume prior run ?
[15:50] dorion: what does `echo $PATH` yield ?
[15:51] whitehorn: from scratch, now looking into configure script in musl dir
[15:51] dorion: should've been set in Section 1, specifically: `env -i TERM=$TERM HOME=$HOME LC_ALL=C PATH=$PWD/tools/bin:$PATH PS1="(build) $PS1" bash --norc`
[16:00] whitehorn: ok, thanks
[16:13] dorion: -- I went through a fresh gales build, just made it through Section 3.4. and was unable to produce the error about no C compiler.
[16:13] sourcerer: 2020-11-26 14:32:55 (#jwrd) dorion: I have a couple gales installs running, but I don't currently have a build environment to immediatly cross reference.
[16:24] whitehorn: made it to 3.5 :)
[16:26] whitehorn: error from line 204 of BUILD
[16:26] whitehorn: make[2]: Leaving directory '/var/build/gales/build/build-gcc/gcc'
[16:26] whitehorn: make[1]: *** [Makefile:3491: all-gcc] Error 2
[16:26] whitehorn: make[1]: Leaving directory '/var/build/gales/build/build-gcc'
[16:26] whitehorn: make: *** [Makefile:857: all] Error 2
[16:29] dorion: whitehorn, is a service we use for sharing pastes of text. would you mind sharing as much of the output as possible through that service. paste it into the box there, submit it and it will return a link you can share here.
[16:33] whitehorn: ok, nice
[16:33] whitehorn:
[16:33] dorion: ty
[16:34] dorion: hmm, doesn't differ from what you posted in the channel. can you include say the prior 50 lines as well, I'm guessing there's more context.
[16:34] dorion: as well ?*
[16:42] whitehorn:
[16:42] whitehorn: looks like there's a problem in the Makefile with the PWD_COMMAND
[17:16] whitehorn: will prepend CFLAGS like on line 176
[17:16] whitehorn:
[17:20] whitehorn: dang, no luck, time for lunch :)
[17:24] dorion: gobble
[18:07] jfw: - done, thx for the suggestion.
[18:07] jfw: rather.
[18:07] sourcerer: 2020-11-26 14:19:26 (#jwrd) dorion: jfw, want to put the #jwrd logs link in the topic.
[18:19] jfw: welcome whitehorn & great to see you're making headway.
[18:19] jfw: I take it you've been doing software long enough to have some idea how ..."interesting" things can get even with the "known-working process"
[18:22] jfw: in theory, the Gales bootstrap is meant to work from any "reasonably Unixy" initial host system; in practice I'm not sure it's been tried from Ubuntu yet. Do you know what version you're on? (if not, "cat /etc/debian_version" iirc)
[18:31] jfw: - this can be probed manually by "$BUILD-gcc -v" ; if that gives command not found, something's wrong with the TOOLS path or similar as seen here, or earlier steps failed.
[18:31] sourcerer: 2020-11-26 15:37:20 (#jwrd) whitehorn: ./configure: cannot find a C compiler
[18:37] jfw: ah sorry, $TGT-gcc not $BUILD-gcc above; $TGT is the prefix for the cross toolchain. - this showed only compiler warnings which aren't that interesting; a full build log would be helpful i.e. "make 2>&1 | tee gales-step-3.5-make.log"
[18:37] sourcerer: 2020-11-26 16:42:25 (#jwrd) whitehorn:
[18:40] jfw off to butter up the cranberry sauce then indulge.
[18:42] dorion butters bread, not cranberry sauce.
[21:22] jfw: dorion: suit yourself, but the sauce was a winner - notwithstanding that ourdemocracy was unable to supply vanilla bean and it had to be substituted with extract.
[22:48] cruciform: happy thanksgiving
[22:48] cruciform: -- I prefer US-layout, thanks
[22:48] sourcerer: 2020-11-26 14:11:38 (#jwrd) dorion: cruciform, are you ok with US layout keyboards for the thinkpads ? or do you want UK keyboards ?
[22:49] dorion: cruciform, aok.
[23:10] cruciform: looks like my friend's got his key uploaded
[23:11] cruciform: can't rate him, yet - seems deedbot needs time to update
Day changed to 2020-11-27
[02:16] jfw: deedbot sometimes works in mysterious ways.
[02:18] jfw: but this seems a good juncture to decide on the question of whether to use it (or its equivalent). to my knowledge the latest in the public discussion of the topic is
[02:23] jfw: certainly those who see benefit in making their ratings public can do so, now as ever; but I'm not seeing that anyone has made that case for going through the trouble of maintaining a public and shared representation of part of the WoT. I'm not prepared to make such a case myself.
[02:28] jfw: undoubtedly there are nice things that are possible when you have it, but there is a cost to maintaining it, of which the above sort of "what's the matter with the bot this time" but scratches the surface; and the Republic of powerful Men with the authority to push it and a Forum in which to work out wtf in case of dispute, does not exist
[02:36] jfw: I will wait a bit & listen if anyone has that case to make.
[12:58] whitehorn: good morning, thank you for the support yesterday dorion
[12:59] whitehorn: am running ubuntu 20 or bullseye/sid in debian speak
[13:36] whitehorn: thanks for the suggestions as well as requesting the log jfw
[13:42] whitehorn: it's almost like 8M, how should I deliver?
[13:43] whitehorn:
[13:43] whitehorn: hmm, think we are not cross compiling?
[14:00] whitehorn: oh, that's the ubuntu gcc
[14:00] whitehorn: anyways, can send the config.log too
[14:42] dorion: good morning whitehorn, my pleasure. I think deedbot paste can eat 8M of text. If you try and it barfs an error, do you have webserver where you can make it available ?
[14:56] whitehorn:
[14:58] whitehorn: payload was too large for deedbot
[14:59] whitehorn: looks like gist is truncated so will put up 2nd part
[14:59] dorion: cruciform, for the thinkpads, the power supply units we have in stock have US plugs. the units are modular in that you can seemlessly install UK plugs into the power brick. we're thinking it makes more sense for us to ship you the bricks with US plugs and for you to acquire the UK plugs on your own rather than having them shipped twice across the atlantic. is that acceptable to you ?
[15:10] dorion: thanks whitehorn.
[15:59] whitehorn: good call on the website soln,
[16:24] dorion: ty whitehorn. are you bootstrapping on gcc 5 ?
[16:28] dorion: whitehorn, the gnu_inline error looks to be the same as bvt reported when attempting to build on debian 9 with gcc 5. archived patch that bvt linked to.
[16:41] whitehorn: ok, nice, thank you
[18:43] whitehorn: maybe a typo on line 149 of BUILD
[18:43] whitehorn: ln -s ../../binutils-2.24/include/xregex.h include/
[18:43] whitehorn: should be
[18:43] whitehorn: ln -s ../binutils-2.24/include/xregex.h include/
[18:44] jfw: good link dorion, I've added a trackback to my release article. There is a possibly easier and stronger but untested fix based on the explanations in the patch: adding "-std=gnu89" to CFLAGS for that step 3.5 configure (though not "-std=c89" as I wrote there at the time)
[18:45] jfw: I see there was also "makeinfo" trouble there. I guess the upshot is we haven't yet worked out the issues with doing this from those "new and improved" systems so there's likely to be more trouble on this path, ouch.
[18:46] whitehorn: do you have a suggestion for a machine to build with?
[18:46] whitehorn: it doesn't have to be on this ubuntu work comp
[18:47] jfw: it's looking like 2015ish distros or older are the best bet, based on gcc versions.
[18:48] whitehorn: ok, thank you
[18:48] jfw: Gentoo is what I used, though it's a moving target.
[18:48] jfw: taking a look at the ln -s thing...
[18:49] jfw: ah, not a typo: the link is going in the "include/" subdir, the extra .. is because it needs to be relative to that subdir.
[18:50] jfw: equivalently, "cd include; ln -s ../../binutils-2.24/include/xregex.h .; cd .." if that makes more sense (and it'll tab-complete)
[18:50] dorion: jfw, did you also build gales on openbsd ?
[18:51] jfw: parts of it at least - actually yes I think I got it all working but getting nondeterministic output which had been the main point of the exercise
[18:53] jfw: as in, the cross compiler provided by the same gcc version producing different binary output on the two platforms in rare cases
[18:54] dorion: whitehorn, spyked bootstrapped from Debian.
[18:56] dorion: jfw, I recall you getting through the build on obsd.
[18:57] jfw: and that was openbsd 5.8 / amd64.
[18:58] jfw: seems to be my old hangup, "made significant progress but didn't get it 100% perfect so didn't write it up"
[18:59] dorion: whitehorn, I don't think anyone has tested all the way on a gcc version higher than 4.9.4. bvt started, but then switched to cuntoo, which uses gcc-4.9.4.
[19:00] dorion: jfw, you probably have good notes, but did it at least 12 months before you had fixpoint.
[19:00] jfw: that too.
[19:03] whitehorn: ok, thank you dorion and jfw
[19:03] jfw: I say 2015 based on gcc versions; the idea is to be 4.9.x or older.
[19:05] jfw: it's not the only thing that could break of course, but the other things like 'makeinfo' will also be of the same generation.
[19:05] dorion: you're welcome whitehorn, let us know how it goes !
[19:05] jfw: and yw!
[19:07] whitehorn: with that patch to the cfns am thru 3.5
[19:09] dorion: sweet.
Day changed to 2020-11-28
[08:43] cruciform: -- yes, that's fine
[08:43] sourcerer: 2020-11-27 14:59:55 (#jwrd) dorion: cruciform, for the thinkpads, the power supply units we have in stock have US plugs. the units are modular in that you can seemlessly install UK plugs into the power brick. we're thinking it makes more sense for us to ship you the bricks with US plugs and for you to acquire the UK plugs on your own rather than having them shipped twice across the atlantic. is that acceptable to you ?
[23:20] dorion: -- cruciform, here's the draft of the addendum for the hardware and training modules 2 & 3.
Day changed to 2020-11-29
[04:38] jfw: MP on the shockingly!! stolen US election
Day changed to 2020-11-30
[05:11] jfw: cruciform: how goes with the proposed contract, do you need more time to review? I'm mostly leaving this to dorion but wanted to point out that we're aware we didn't leave you much time to act on that verbal price lock and there might be some leniency possible as a result.
[05:15] cruciform: jfw, I was a tad under the weather yesterday; I'll read it and get back to you in a couple of hours
[05:19] jfw: perhaps better to get some sleep then? I'll go ahead and extend the downpayment deadline to Tuesday (Dec 1, 12 UTC) as I won't be able to gpg-sign before the present one as things stand.
[05:37] jfw: today's bot update was adding html escaping for ((mp-wp)) [[metacharacters]] and pulling bot and blog specifics out into a config file so the script itself can now be redeployed directly from a V press.
[12:49] cruciform: jfw, dorion - the contract looks fine to me. I've derped with regard to how much BTC I have to hand; I won't be able to make any payment until Dec 6th (I can pay in full then). How do you want to handle the exchange rate?
[14:25] dorion: cruciform, ok, thank you for the update. good to read the addendum is agreeable to you. let's set the amount closer to the settlement date.
[14:25] dorion: cruciform, how goes with hw 6 ?
[14:46] dorion: cruciform, let's see what jfw says about the amount when he wakes up and reads.
[16:56] dorion: hello dilynm, who might you be ?
[17:12] jfw: cruciform: maintaining the USD price of the product and evaluating exchange rate on the day of payment suits me
[17:23] dilynm: dorion: just some random linux enthusiast looking into statically building stuff, found gales
[17:47] dorion: dilynm, nice, welcome.
[17:50] dorion: dilynm, what interests you in static linking in particular ?
[17:50] dilynm: Mostly just for fun, I've read all sorts of stuff on static vs shared and the improvements don't seem *that* pronounced (if any exist at all), but I'd like to see it for myself
[17:51] dilynm: And I've run out of other projects for the time being, so learning more about cc/ld/ar etc seem worthwhile
[17:55] whaack: “The left environmentalist is not a reliable defender of nature: he’s “anti-racist” first and cares for nature second. ”
[17:55] whaack: heh misclick
[17:56] dilynm: Critical Theory is fun
[17:56] whaack: (that was supposed to be a meta-V to scroll up with yrc, instead a paste was inserted and sent i guess since it had a \n
[17:56] whaack: )
[18:18] jfw: dilynm: feel free to look around & ask questions; there's lots going on here, slowly & unglamorously, besides just static linking, and with quite some history too
[18:19] jfw: possibly random enthusiasm is all that's to be found in the world today anyway
[18:22] jfw: dilynm: not sure which improvements you're referring to but the main thing about static linking is the position that the supposed improvements offered by dynamic linking aren't worth the added complexity (and aren't even all that clearly improvements in the first place)
[18:27] dorion: dilynm, nice. do you have a blog where you publish what you've learned ?
[18:27] dorion: welcome back whaack, if it is was by accident paste, lol. how goes ?
[18:40] jfw appreciates how the unicode quotes show up in the lord's own latin1 in the log viewer
[18:40] sourcerer: 2020-11-30 17:55:02 (#jwrd) whaack: ???The left environmentalist is not a reliable defender of nature: he???s ???anti-racist??? first and cares for nature second. ???
[18:43] dilynm: jfw: yeah I've been reading through your stuff and there's some good work happening here! I agree about the complexity issue - part of my motivation the last year has been removing it from my laptop (I switched to KISS Linux 11 months ago for instance)
[18:43] dilynm: dorion: I have a website I just put up, but right now it just hosts my philosophical work. Eventually it will include docs about what I've learned...
[18:44] dilynm: Biggest project demonstrating some culmination of knowledge (I'm sure) is, bring KDE to KISS
[18:47] jfw: hah, now I wonder how one possibly arrives at KDE from a path of 'keeping it simple' - possibly with compass painted backwards?
[18:48] dilynm: Mostly just exploratory :)
[18:48] dilynm: The intention was to see what Arch, Alpine etc do and do it better
[18:49] dilynm: Biggest discovery is that if you use a dbus stub library, you could probably launch krita just fine! Which is cute
[18:55] jfw: there's all sorts of things that could work much better "if only the featherless bipeds involved had been a bit less monkeylike"; and you can fix them too, sure, but note that there's really no limit to how much time you can spend on cleaning and it's important to pick & choose
[18:56] dilynm: Very true
[18:56] dilynm: Luckily working from home has given me ample time to be far too liberal with such decision making
[18:58] jfw: I've been there indeed;
[19:02] jfw: time has a way of taking care of the problem of excess time all on its own though!
[19:02] jfw: and with that I'll bbl.
[19:19] dorion: dilynm, I'm curious to read your philosophy writing, mind linking ? jfw and I met in 2014 when he came to a philosophy centric meetup I hosted in Panama. I don't recall how much philosophy was disccused at that meet up in particular.
[19:21] dorion: -- what do you do for work ? where are you located ? I'm currently in Vermont.
[19:21] sourcerer: 2020-11-30 18:56:36 (#jwrd) dilynm: Luckily working from home has given me ample time to be far too liberal with such decision making
[19:35] dilynm: You're more than welcome to peak! the collection is broad and most of the writings are about things that disinterest me (I was trained as a logician)
[19:35] dilynm: I work for a bank in pennsylvania
[19:50] dorion: thanks for the link dliynm, will have a a read.
[19:59] dilynm: Most of them haven't been edited/cleaned up yet so you'll have to forgive the poor quality
[20:05] dorion: dilynm, at least you have a start. my blog is far from blemish free.
[20:12] dorion: dilynm, so this kiss linux is busybox + musl + shell based package manager, eh ?
[20:13] dilynm: Yeah
[20:13] dilynm: It's designed to be very hackable, as well. No good reason you couldn't use sbase and ubase, or coreutils, or systems, or or or...
[20:15] dorion: what's the bootstrapping process like ?
[20:17] dilynm: It comes with a ready-to-go x86_64 rootfs tarball that you just unarchive and chroot into
[20:17] dilynm: Build a kernel, add a bootloader, reboot and you're done
[20:17] dorion: dilynm, which are the packages you maintain for kiss ?
[20:17] dorion: wham, bam, thank you ma'am.
[20:21] dilynm: A breeze of an install to be sure!
[20:21] dilynm: I maintain a few in community... lz4, extra-cmake-modules, qt5{declarative,svg,webchannel,webengine,x11extras}, Falkon, viper (qt browser), nss
[20:21] dilynm: And quite a large number more in my own repo, plus the whole KDE stack
[20:28] dorion: dilynm, I see. gales linux is a bit more involved, but everything is distributed as source files, so the value to be had from a bit more up front work is you compile everything yourself.
[20:29] dilynm: For sure. I did LFS for a few months out of morbid curiosity and switched to KISS afterwards to simplify package management
[20:33] dorion: dilynm, if you manage to make a gales install a priority, I'd be curious to read how you think it compares between lfs and kiss.
[20:34] dilynm: Just looking at it, I'd think it falls somewhere in between. I'll probably have a go at it before the end of the year
[20:37] dorion: cool.

#jwrd Logs for Oct 2020

Filed under: #jwrd logs, Logs — Jacob Welsh @ 20:49
Day changed to 2020-10-01
[17:21] dorion: my trb node is at height 650789 ; "ProcessBlock" has resulted in nothing but ~30 BASTARD BLOCKS in the past ~4hrs, all from, though I ACCEPTED several blocks from that peer prior.
[18:45] jfw: week of oct 12 works for me except Wednesday I'll be relocating the office.
[18:47] jfw: dorion: seems to me that the main value we got from the Faraday cage experience is insight into what *doesn't* work, among which the "local metal shop" concept
[18:47] jfw: I have no doubt we could develop a working solution, but we don't exactly have one to offer presently that i can see.
[18:52] jfw: I'll tackle the questions in that article in its comments.
[18:53] dorion: jfw, thanks.
Day changed to 2020-10-11
[12:58] dorion: good afternoon cruciform.
[12:58] cruciform: s'up
[12:59] dorion: doin aight. you ? I'm seeing 11,359.59 on cmc
[12:59] cruciform: I'm seeing $11,359.59 as the price on coinmarketcap - looks good?
[12:59] cruciform: great
[12:59] dorion: lol.
[12:59] cruciform: just got back from gym; got a summary to write later - life's good! started hunting?
[13:01] cruciform will brb
[13:01] dorion: nice, I've not hunted yet. next weekend for sure.
[13:10] cruciform: cool - we don't really have that culture over here
[13:10] cruciform: so, shall we get the contract signed?
[13:18] dorion: yea, I have to move it over to the airgap and back. calling jfw to see if he's up yet.
[13:18] cruciform: ok
[13:22] dorion: no answer, he should be around soon though.
[13:23] cruciform: great - to confirm: this is the payment address 1Je81fN6KHso92oZaD9rzC2BnnNqLP42CF ?
[13:25] dorion: want to check back in an hour or so ? best to verify the payment address by verifying the signature on the contract. I don't think there's a high chance of being mitm right nao, but that's why we have the sigs to fall back on.
[13:25] cruciform: great - be back in an hour
[14:16] dorion: cruciform, I've received no word from jfw this morning. it's 10am here and he tends to be a night owl that sleeps into the late am.
[14:18] cruciform: dorion, ok; what d'ya wanna do?
[14:19] dorion: I'd like him to get logged up and to hear from him. what is your schedule like today ? are you available to check back in later this evening your time ?
[14:19] cruciform: yea, that's fine; I'll be in all day - ping me
[14:21] dorion: cool, thanks. as will I.
[14:21] dorion: cruciform, do you have any articles cooking ?
[14:28] cruciform: Working on the #o logs for 2nd Sept 2019; there's some interesting stuff relating to the BitBet miner cartel -
[14:28] cruciform: how about you?
[14:33] dorion: nice. yeah, the bitbet history is indeed interesting.
[14:35] dorion: I have a few at various stages, going to decide today which to finish and publish first. I need to knock off the blogging rust.
[14:36] cruciform: yea - I find it gets easier once you're in the rhythm
[14:40] dorion will check back at 16:00 utc.
[18:08] jfw: "it's 10am here and he tends to be a night owl" << more to the point, I don't presently maintain reachability at all times so if someone needs me available in a rush it will help to let me know to expect that.
[18:09] jfw: I can get to the signing shortly.
[18:12] cruciform: jfw, noted; I'm free to sign as soon as you and dorion are
[19:03] jfw: warming up the keys and giving a final readthrough now.
[19:08] cruciform: jfw, dorion I forgot I need my password for signing stuff, which I don't have with me - is there another way I can sign-off on the contract?
[19:09] jfw: hah, brought keys but left brain behind?
[19:10] cruciform: something like that - I've never actually signed anything; don't need the password for decrypting
[19:11] jfw: well, it seems to me that since the contract is mainly there to hold us to delivery in exchange for payment in advance, it's good enough if we sign and receipt of the payment as specified is enough on your end
[19:11] cruciform: I agree
[19:12] cruciform: as I discussed with dorion, I've no issues with contents of the contract
[19:15] dorion: cruciform, hm, my gpg asks for my password when I decrypt. does yours have the password saved somehow ? anyways, I'm fine with signing and you can too at your convenience when you have the password.
[19:15] cruciform: the only thing we brought up was the handling of the 10% discount; we agreed it to be applied totally in reducing the price of the third module, rather than 10% off each module purchased individually
[19:16] cruciform: dorion, yea, I vaguelly recall setting up a password when I generated the keypair; I don't have to enter it when decrypting - only signing
[19:16] cruciform: I've got it written down somewhere, but not to hand
[19:16] jfw: whew, just found my serial cable; thought it was going to be my turn to be embarrassed!
[19:17] jfw: possibly the encryption subkey is unencrypted
[19:17] jfw: (re passwords)
[19:17] cruciform: it was generated via GPA in Ubuntu, if that sheds any light
[19:19] jfw: more like sheds darkness, heh. could be any kind of nonsense that ubuntu cooked up on top of actual-gpg
[19:20] dorion: yeah, for the future discount it'd be ($7200 * 0.9)-$360 = $6,120 worth of btc (at that future price).
[19:21] cruciform: dorion, makes sense
[19:21] dorion: cool.
[19:22] dorion: cruciform, you may want to try to change the password on your gpg key sooner rather than later to something you actually know/have saved.
[19:23] cruciform: yea, I've made a note to get that sorted as soon as possible, thanks
[19:23] dorion: good luck.
[19:24] cruciform: I may need it :p
[19:26] dorion: there's only so much one can do, especially if it requires the current password to change to a new one.
[19:27] cruciform: dorion, yea - I'd totally forgotten about it, given that deedbot only requires decrypting
[19:28] dorion: there is a thread in #ossasepia where thimbronion and diana_coman discuss his case.
[19:28] cruciform: cheers - I'll have a look for it
[19:29] cruciform: I'm reasonably sure I've got it written down somewhere, so fingers crossed
[20:12] jfw: I'm making a few minor changes e.g. consistent pluralization of "Consultants", clarifying the expiration clause, and noting that client's acceptance is based on issuance of the settlement transaction.
[20:13] cruciform: jfw, sounds good
[20:23] jfw: looks like gpg clearsigning is even jankier than I realized: it strips trailing whitespace somewhere in the process - probably for the input to the hash - but not in the output file.
[20:33] jfw: Signed contract is in the mail.
[20:34] cruciform reads
[20:44] cruciform: jfw, all looks well within the contract; I'm getting "Key not valid - Uncertain signature by Jacob Welsh" message upon verification?
[20:47] dorion: hm, it verifies fine for me.
[20:47] cruciform: odd - I got your public key from
[20:50] dorion: cruciform, does your client show the fingerprint for the key ? does it differ from ?
[20:54] cruciform: dorion, checking now
[20:56] cruciform: they appear to be different
[20:59] cruciform: jfw, dorion I've emailed you the differences between the keys found at and
[21:07] jfw: I can't quite decipher that "comparison" format, it seems to show identical lines interleaved as if differing. The key at deedbot (with actual url , not the html you linked...) differs only in being a minimal export i.e. without signatures by other keys
[21:08] jfw: I presume GPA gives you a way to list the public keys it knows about. What does it show for the fingerprint on mine?
[21:09] cruciform: 1198 8371 F17B E74A AE3D 4F01 F2C5 9329 5A9A E8D4
[21:10] cruciform: sorry, it shows: 0CBC 0594 1D03 FD95 C3A4 7654 AE0D F306 0255 94B3
[21:12] jfw: the second is correct, so hm, guess we need to find why it thinks the key woudl be 'invalid'
[21:13] cruciform: I just tried importing your key from - it didn't import; presumably because it's recognising it as a duplicate of the one from deedbot
[21:14] cruciform: (GPA read it fine, though)
[21:14] dorion is working on issuing my sig now.
[21:16] jfw: gpg will show something like 'gpg: key 025594B3: "Jacob Welsh (jfw)" not changed' on importing an unchanged key.
[21:17] jfw: apparently 'valid' is their new and improved word for 'trusted', ugh.
[21:17] cruciform: jfw, yea, it showed a similar message
[21:18] cruciform: aha, I thought it might be - I tried changing the "validity" ie. trust; but it didn't do anything
[21:18] jfw: so 'uncertain signature' probably means 'valid signature but from a key not marked as trusted'
[21:18] cruciform: yea, what great use of language
[21:20] cruciform: lol, upon setting trust to "Ultimate"TM, it comes back valid
[21:20] cruciform begins to see a case for command line...
[21:21] jfw: < yep, 'tis gpa-specific nonsense.
[21:21] cruciform: at any rate, I'll get the payment sent imminently
[21:22] cruciform parsed gnupg-devel as gnupg-drivel :P
[21:23] jfw: most so-called development amounts to as much anyway
[21:24] cruciform: having read the Collection of Pearls article recently, I belive it!
[21:24] cruciform: (summarised it here:
[21:25] dorion: the contract with my signature should be in your emails now.
[21:26] dorion: might as well try to verify it without setting my trust to ultimate, but I'm not holding my breath that the result will be any different.
[21:28] cruciform: dorion, worked upon Ultimate-Trust, but not before
[21:34] cruciform: payment sent; gotta sort out SSH and zoom before Tuesday
[21:35] jfw: 'ultimate' iirc means you designate the key as a root of trust, thus it will trust any keys signed by that key. Marking it 'trusted' possibly means something like you trust the owner to sign other keys, but without a signature tying that key to a root, it still won't trust the _key_. Anyways, you're probably best off ignoring its whole 'trust model' and manage your own keys.
[21:36] cruciform: jfw, makes sense - looking forward to ditching gpa altogether, in preference for command line
[21:36] jfw: cruciform: cool, will be on the lookout and do let us know if any questions re ssh keys or zoom!
[21:37] cruciform: will do, thanks
[21:37] cruciform is afk
[21:40] dorion: cruciform, cool, cheers.
Day changed to 2020-10-12
[21:00] cruciform: jwd, dorion is it ok to have zoom running on a separate machine to the one I'm SSH-ing on? I've not got a webcam/mic on my main linux box
[21:13] cruciform: I've emailed my SSH public key to - I'm not sure what is meant by SSH client software (I'm on Ubuntu 16.04)? I've done sudo apt install openssh-client - is that sufficient?
[21:31] dorion: hi cruciform, it is fine to have zoom on a separate machine. important factors for zoom are : 1) sufficient power (in practice we've found it drains a call phone battery before the session is through.) 2) stable internet and 3) big enough screen to read if jacob shares his screen.
[21:31] cruciform: cool - laptop should be fine
[21:33] dorion: yep.
[21:34] dorion: the payment is well confirmed by now, thanks for sending with efficiency.
[21:35] cruciform: glad to hear; efficiency?
[21:36] dorion: i.e. it was issued and confirmed in short order after you received our signatures.
[21:37] cruciform: gotcha - thought you might be ironically referring to it coming from a "3" multisig address via PRB
[21:37] dorion: been awhile since I used ubuntu, I was somewhat expecting ssh to already be installed. you can open a terminal and issue :
[21:37] dorion: ssh -V
[21:37] cruciform: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
[21:37] cruciform: does that sound ok?
[21:38] dorion: that does sound okay.
[21:39] dorion: I didn't see that the transaction was signed by a 3 address. I used gbw-node to watch it and then also asked jfw who used the same. didn't look at any 3rd parties :)
[21:40] dorion: and trb doesn't know about any 3.
[21:40] cruciform: PRB seems to default to 3 addresses (and the latest versions to segwit...) - guess that as the receiver, your node doesn't care either way
[21:41] cruciform: I wonder how much BTC is currently stored in SegWit addresses; how long until miners claim it
[21:42] dorion: right, but we defined bitcoin as so in case someone said, "send me a 3addy/segwit/anythingnottrb instead of an actual address, which all start with 1.
[21:42] cruciform: yea, makes sense
[21:43] dorion: not sure how much is in segwit, or in multisig.
[21:43] cruciform: is there a way to scan UTXOs to find out?
[21:43] dorion: seems like many fiat and altcoin exchanges use 3 addresses for deposits.
[21:44] dorion: there is certainly a way to calculate, I'm not exactly sure how though.
[21:44] cruciform: yea - it's all over fiat exchanges; though to my understanding, multisig isn't inherently shit - unlike segwit?
[21:45] dorion: multisig is also 'anyone can spend'
[21:45] cruciform: hmm - seems I need to check the logs for more info
[21:46] cruciform: what is it that makes segwit particulary shit vs multisig, then?
[21:47] dorion: segwit attempts to remove signatures from blocks.
[21:47] cruciform: I was under the impression that segwit had an additional incentive for "theft" over multisig
[21:49] dorion:
[21:49] cruciform: thanks
[21:50] dorion: cruciform, it very well may, tbh I dunno cause I don't use or recommend either.
[21:51] dorion: like if you asked me about the details of some random altcoin.
[21:51] cruciform: yea, that's fair - I don't use 'em either - was surprised that PRB defaults to 'em, though I suppose that's not really surprising
[21:52] dorion: I don't pay attention and ultimately don't care because it doesn't affect me. not to discourage you from asking questions !
[21:52] dorion: but that's the answer re that one.
[21:52] cruciform: yea - more an academic question; asking to get an understanding of the difference
[21:53] dorion: yeah, not really a surprise. "it's for the user's benefit, after all."
[21:53] cruciform: "lower fees!"
[21:53] dorion: bitcoin for the poor.
[21:54] cruciform: need to reread , too
[21:54] dorion: yeah, that's an important one of many.
[21:56] dorion: how was your visit to the sticks to see your infowarrior friend ?
[21:56] cruciform: surprisingly connected, actually - though used it as an excuse to not do any work :P
[21:57] dorion: it's healthy to unplug.
[21:57] dorion: like fasting.
[21:58] cruciform: for sure - though I've the opposite problem
[21:58] cruciform: need to get back on a fasting regimen, actually - what's yours?
[22:00] dorion: I typically don't breakfast until noon. then a 36-48h fast once a month or so. hasn't been the most regimented lately, but am doing one tomorrow.
[22:02] dorion: I do take coffee in the morning, so if to be strict it's being broken then, but no food.
[22:02] cruciform: nice - I did a similar 16/8 daily while pokering; then a Taleb-esque power law schedule (his original FB post seems to be down)
[22:02] dorion: s/so if to/so to/
[22:02] dorion: is it on ?
[22:02] dorion: I like reading taleb.
[22:04] cruciform: can't seem to find it on - I belive this is the original URL
[22:04] cruciform: the core of his idea is to introduce variance into the fasting schedule, to mimic randomness of nature
[22:05] cruciform: so, rather than fasting eg. the same day each week, fast 1 day/week, 2 days/month, 3 days/quarter, 4days/year etc
[22:09] dorion: makes sense.
[22:12] cruciform: I've not gone beyond 48 hours, but a friend's fasted 28 days with no ill-effects (he's morbidly obese)
[22:13] dorion: the longest I went was ~5 days. I would've gone longer if I had more fat to burn.
[22:14] cruciform: nice - any ill effects?
[22:15] dorion: no ill effects. there is a youtube channel run by a guy that runs a fasting center in costa rica, talks about people fasting 30, 60, 90 days.
[22:16] cruciform: and there's this guy
[22:16] dorion: I have a friend that did a 90 day juice fast. he lost a lot a lot of muscle mass, but I don't think ill effects otherwise. most serious yoga dude I ever met.
[22:16] cruciform: "juice fast"
[22:16] dorion: the guy in cr is loren lockman.
[22:16] dorion: yeah, only take juice. no fiber.
[22:17] dorion: weil, juice and water.
[22:17] cruciform: I went no fiber via carnivore for a few weeks - killed my gym performance
[22:18] dorion: hmm. yeah, I've heard of it, but never tried.
[22:18] cruciform: also, got black hairy tongue from coffee + lack of fibre
[22:19] cruciform: I got the idea from Saifedean Ammous, and the guys at the Nakamoto Institute: and
[22:20] dorion: I ran sha512sum on the ssh key you sent and got :
[22:20] dorion: ea3a81d7cc6f281e57e4d6a20f59253f1bcac435abcd4717425fbf3b9d66988e60e0c239cb3aecdc3fe6d03a75d222391fd8c7ac31770f235f5edd4955b95757
[22:22] dorion: yeah, I've read the sni ppl, not saifedean though.
[22:22] cruciform: matches my hash
[22:22] dorion: cool.
[22:22] cruciform: he's generally pretty sound; friends with Taleb, too. Thanked MP in the foreword to his book
[22:23] dorion: jfw will follow up with the platform and zoom info.
[22:23] cruciform: great
[22:26] dorion: re saifedean :
[22:26] cruciform: aha, thanks!
[22:27] dorion: np. I'm about to step away for a bit, good to chat and thanks for managing the ssh key and sha512sum , you're off to a good start :)
[22:27] cruciform: aye - looking forward to tomorrow!
[22:30] cruciform: found Taleb's Power Law fasting document:
Day changed to 2020-10-13
[03:15] jfw: "is it ok to have zoom running on a separate machine" - yes, preferable in fact: zoom is not any kind of hygienic thing, apparently we need to call that out a little louder or something. I run it on a Windows toilet-box.
[03:17] jfw: dorion: "thanks for sending with efficiency" - "expediency" is perhaps the word.
[03:51] jfw: cruciform: "guess that as the receiver, your node doesn't care either way" - right, pecunia non olet in that regard.
[03:53] jfw: "I wonder how much BTC is currently stored in SegWit addresses" - whaack was wondering the same a while back; if he manages to get off arse and back to work on that block explorer, could add that index as a later feature
[03:59] jfw: however, the way "miners claim it" would go would be as a chain fork (a manifestation of one or more of the many forks in the protocol rules pushed by the power rangers); the p2sh bagholders won't recognize the redemption transactions as valid and the dispute will be settled in the field ala BTC/BCH.
[04:00] jfw: which is the larger reason for defining bitcoin relatively explicitly.
[04:04] jfw: "is there a way to scan UTXOs to find out?" - certainly, if someone codes it; my gbw-node even provides most of the supporting machinery though you'd have to extend it to recognize & index the nonstandard output forms.
[04:10] jfw: " was surprised that PRB defaults to 'em" - it didn't when p2sh (3-addresses) was first introduced, but sounds like they've got a ratchet going. "Can't send to 1-addresses anymore" would be the logical next step if the sheep have followed thus far
[04:32] jfw: I need to reschedule this week's office hours to 18:00 UTC Friday as I may be on the road or still reassembling the office on Thurs.
[04:43] jfw: "" - ugh. dude can't figure out how to write markup on his own site or what?
[04:44] jfw: apparently nothing to read there anyway,
[11:52] cruciform: jfw, thanks for clarification; no problem re: rescheduling office hours this week
[12:35] dorion: good morning. jfw, thanks for the clarifications. it's not clear to me what the field looks like if/when miners revert those softforks to trb, especially given many of the fiat exchanges use multisig, i.e. what price do you reference for trb ? a point of the auctions, e.g. for pizarro, was to establish a tmsr price.
[12:38] cruciform: it'd be really helpful to know how much BTC is anyone-can-spend, to get a feel for the scale of the disruption
[12:51] dorion: yeah, and then try to tag who are the holders.
[15:16] cruciform: sounds like a cool project; something I'd like to do once I know how
[16:50] dorion: cruciform, fyi working on the creds for you now.
[16:53] cruciform: dorion, great
[17:31] dorion: cruciform, emailed you the cypher.
[17:32] cruciform: got it, cheers
[17:32] dorion: cool.
Day changed to 2020-10-15
[16:52] whaack: howdy all
[16:53] cruciform: whaack, hey, how's it going?
[16:53] whaack: jfw: i learned yesterday that your alma mater is getting its admission process blessed by the equality fairy
[16:53] whaack: cruciform: not bad, trying to get back on track with some more meaningful work now
[16:54] whaack: picking up today on the block explorer project I started a couple months ago
[16:54] cruciform: I know the feeling! nice - is that the SegWit investigation?
[16:55] whaack: Nope, it's not, but I guess it could be used for that with some adjustments
[16:55] cruciform: got a link to the project?
[16:58] whaack: cruciform:
[16:58] cruciform: cheers, I'll take a look
[16:58] dorion: hey whaack
[16:59] whaack: heyo, hows the golfing going?
[17:01] dorion: winding down, especially after :
[17:08] dorion: thought at present I'm preparing a presenation I'm giving at the club about why bitcoin is the strongest asset protection instrument in existence.
[17:08] dorion: though*
[17:12] whaack: aha so you're giving up golf for ~ sniping at Nascar events?
[17:14] dorion: not committing to the later, but it is hunting season here : fall turkey, squirrels, bow for deer (I don't hunt that), early muzzleloader for doe (I will hunt that).
[17:14] dorion: latter*
Day changed to 2020-10-16
[03:36] jfw: cruciform: the training server and I are back online; I've updated the IP address in the instructions (ssh-invite-dg.txt on the class site).
[03:38] jfw: welcome whaack. "admission process blessed by the equality fairy" - sounds like an amateur attempt; we will not know a just and equitable society until the same standard applies to the graduation process
[03:45] jfw: "People whose names start with T are disproportionately failing your course. Remedy this unfairness at once!"
[03:47] jfw: whaack: if you http:// prefix your links they may grow up into real links, as I have a log bot + viewer for this chan somewhere in the pipeline.
[04:08] jfw: whaack: have you settled on whether to go with http or irc+pastes for your block explorer interface? I can see the appeal of sticking to just the one stateless protocol and leveraging the browser for rendering tables and such, but I thought the voicing as access control aspect was a pretty interesting argument for irc
[04:10] jfw: and there's other advantages to having that overlay network : users don't need to know the service's IP for instance, and you're fairly insulated from flooding/ddos
[04:10] jfw: ofc at the cost of depending on that sometimes-flaky irc net.
[04:11] jfw: then if you go the web route, are you still leaning towards flask or what?
[14:28] cruciform: jfw, cheers
[17:58] dorion: ahoy.
[17:59] cruciform: dorion, how's it going?
[17:59] dorion: pretty well, how about you ?
[18:00] cruciform: not too bad - almost finished the homework
[18:00] dorion: nice!
[18:01] cruciform: just one question - Exercise 2, Question 3: What is the significance of grepping for “(1” ? Does this correspond to the first chapter/title page of the manual?
[18:02] dorion looks
[18:08] dorion: it's a compound command, so there's a couple things going on there.
[18:09] dorion: one point it that some characters need to be escaped. did you try it without the double quotes ?
[18:10] dorion: btw, your "(1" reads like \xE2\x80\x9C(1\xE2\x80\x9D in yrc since there's no unicode support in yrc. (not a problem, just saying.)
[18:11] jfw: nah, the command given there is literally as given, including the quotes.
[18:11] jfw: ^ yeah his irc client is curly-quoting.
[18:11] cruciform: you're saying it's better to use single quotes than doubles?
[18:12] jfw: cruciform, let's back up a sec. were you asking what the grep command itself does, or why the particular search string or what?
[18:12] dorion: single and double quotes have different meaning in the shell.
[18:12] cruciform: why that particular search string
[18:13] cruciform: dorion, aha, I'll investigate
[18:13] jfw: in that case I suggest trying it without the grep to see the whole list that's being narrowed down
[18:15] jfw: but yes the 1 is the manual 'chapter' number - more like the category of thing being documented: user command, programming interface, configuration file... - as mentioned in the text
[18:15] cruciform: thanks; I'd assumed so
[18:18] jfw: cool.
[18:21] dorion: cruciform, are you starting to use the terminal on your ubuntu a bit more ?
[18:22] cruciform: dorion, slowly but surely - I'm starting to see how text is more efficient than waving a mouse around
[18:23] cruciform: also, "seeing" things with mind's eye, rather than actual eyes
[18:24] dorion: yeah, there was a time when I was learning it and I had a dream that clarified the file paths, lol.
[18:25] cruciform: lol
[18:25] cruciform: not yet dreaming of filesystems :p
[18:25] dorion: it was like, "oh, that's how it fits together."
[18:26] dorion: it's still early !
[18:26] cruciform: I can already see how the GUI file structure obfuscates/abstracts what's going on
[18:27] dorion: nice.
[18:27] cruciform: it's meant to simplifiy, but actually adds complexity (visually and conceptually)
[18:27] dorion: "should be so easy grandma can use it."
[18:29] cruciform: I can remember C:\ Windows to get into 3.1 as a kid; seems everthing's been GUI'ed since then
[18:29] jfw: the gui world seems to take that as far as it'll go too; e.g. I liked the Windows 3.1 file manager fine, gave a straightforward representation of the tree, but they kept piling things on to obscure it. right!
[18:39] cruciform: apologies - system crashed
[18:51] jfw: 'training to exhaustion' isn't supposed to mean *of the equipment*, heh
[18:52] cruciform: lol
[18:52] cruciform: need to get a bouncer set up
[18:53] cruciform: I was planning to check out Madrid and Barcelona next month, with a view to moving in the new year, but the plague restrictions have been ramped up
[18:53] jfw: no rush, I don't mind the irc-noise at present levels and once I get that logger up it'll cover the "what did I miss" part
[18:53] cruciform: are you guys planning to go back to Panama when possible?
[18:54] cruciform: jfw, can't have enough logs!
[18:54] jfw: at the wood-heated cottage I was in for the autumn that was certainly true!
[18:55] cruciform: I was also gonna check out Bitcoin meetup groups at the local universities, but they're all doing remote-learning atm
[18:56] cruciform: did you guys write up your experience with establishing an OTC Bitcoin trading network in Panama? I'm looking to do the same
[18:57] cruciform: jfw, always annoys me that ~75% of fireplace heat goes up the chimney
[18:57] jfw: I suspect the 'Bitcoin meetup groups' thing peaked ~2013, to the extent there was even anything to it
[18:57] cruciform: having said that, my formerly malfunctioning boiler has resulted in a ridiculous gas bill
[18:58] jfw: I'm not ruling out Panama but not in any rush to return.
[18:58] cruciform: I expect you're right re: meetup groups; not sure how else to find local BTC traders
[18:58] cruciform: possibly via
[18:59] jfw: they stopped being cool once they tried to ban cash. Probably got to go look for the generally cool people first then see who's interested in btc
[19:00] cruciform: yea, afaik they KYC everyone now, too
[19:00] cruciform: I've the problem that all my friends tend to do silly things like buy real estate/gold/stocks over BTC
[19:02] jfw: I'm no expert re the street trading, but seemed like some good advice given at
[19:04] cruciform: jfw, aha, thanks for the link!
[19:04] jfw: yw
[19:04] cruciform: now to see if my Boomer landlady takes coin...
[19:10] jfw: "~75% of fireplace heat goes up the chimney" - depends whether it's more of a decorative or functional fireplace too; plenty of ways to retain more heat if built for it
[19:11] jfw will bbl; hasta luego
[19:12] cruciform: take it easy!
[19:28] dorion just returning from working sponsors for a local bitcoin event of my own.
[19:28] cruciform: dorion, this was your BTC-as-sound-money pitch to golf club?
[19:29] dorion: ever been to Madrid or Barcelona before cruciform ? do you have friends/contacts there already ?
[19:29] cruciform: I've been to Barcelona; not Madrid - don't know anyone - it's an attempt to escape UK winter and learn Spanish
[19:30] dorion: yeah it's the golf club event, here's a draft of the flyer
[19:32] dorion: I see, I visited both a couple times when I studied in bilbao. liked barcelona more.
[19:32] cruciform: parsed "payment preference: Bitcoin, Cash," as "Bitcoin Cash"
[19:32] dorion: lol.
[19:33] cruciform: what did you prefer about Barcelona?
[19:34] dorion: keep in mind it was through university student's eyes, but I liked the setup more. the sea, las ramblas, etc.
[19:35] cruciform: yea; reckon I might end up agreeing with you - will have to spend a week or two in both and decide
[19:36] dorion: is one preferable to the other for poker ?
[19:37] cruciform: I know there's a casino in Barca; not sure about Madrid. There're a ton of Spanish poker players in London, so assume neither's great
[19:38] dorion: re Panama, I'm looking to at least test the waters mid-Q1. as of now I have a bias to rent for a month or two in chiriqui (western mountain province that borders costa rica).
[19:39] cruciform: look stunning
[19:39] cruciform: looks*
[19:40] dorion: <cruciform> now to see if my Boomer landlady takes coin... << does she have a son that would broker it for her/you ?
[19:41] dorion: how's the new place btw ? I recall you moved, but not recalling where.
[19:42] cruciform: only a daughter, afaik, but good point - I could ask. I moved to Bath a few months ago - it's lovely, though winter's coming and my lease ends in January, so considering options
[19:43] dorion: are most of your friends poker players ? when did you start playing btw ? it was bigly yuge mid-2000s with my friends.
[19:54] cruciform: dorion, I've only got a couple of close poker buddies; I started playing in 2011 - way after the mid-2000s golden era. Do you play?
[19:57] dorion: I've not played regularly for some years, but do like to play. played a couple weeks ago at a buddy's.
[20:05] dorion will bbl.
Day changed to 2020-10-17
[05:36] jfw: grumble... e2fsck on its time-based check decided that "Inode [number] extent tree (at level 2) could be narrower", and that this "could be more optimal" situation was important enough to interrupt bootup and ask me whether to "Fix?".
[05:38] jfw: not a problem on this machine but not good for things that need to boot unattended, guess I need to poke either the fsck options or e2fsprogs config files on Gales.
[05:42] jfw: if anyone's curious, that's run from the /etc/rc script; that and daemontools are about all there is to know about the Gales boot process.
[05:56] jfw: looks like I'm after "-p" for "preen", though I don't much like the language that it's for "automatically fixing problems". if there's a problem then I want to know about it; if on the other hand there's an "opportunity for optimization", it should either happen unconditionally or not at all.
Day changed to 2020-10-19
[18:57] whaack: jfw: heyo. I've been floating back and forth between the irc or web interface in my mind. I think that I'll go with irc. One headache is I would like to add a pushrawtx functionality to the blockexplorer, which may be annoying if the txn takes more bytes than irc allows in one message
Day changed to 2020-10-20
[16:12] cruciform: jfw, I've emailed you answers to session 1 homwork
[17:55] jfw: cruciform: received, thank you. Session 2 outline and homework are up on the site in case you'd like to preview / print. My own habit-homework is to start getting these up further in advance.
[17:56] cruciform: jfw, thanks; running about 5 minutes late for today's lesson
[20:30] jfw: cruciform: fyi I've corrected the known typos + misleading/confusing parts in the posted outline, in case you'd like to re-save / print / read.
[20:32] cruciform: jfw, thanks - I'll look at the updated version. 'Also, they stopped being cool once they tried to ban cash. Probably got to go look for the generally cool people first then see who's interested in btc' - turned out to be good advice; found a coupla poker guys looking to buy BTC OTC
[20:34] jfw: oh hey, nice
[20:38] jfw: whaack: I suppose the standard solution there would be to let it read as well as write from the designated paste service(s)
[20:39] jfw: or allow wrapping, by having a start of command delimiter that wouldn't be found in the rawtx hex
[20:42] jfw: or perhaps better, a closing delimiter so there's no doubt where the command ends. [line 1] !push "0123456 [line 2] abcdef"
Day changed to 2020-10-22
[20:34] jfw: I'll confess ftr that I forgot about the scheduled office hours today; because that I just didn't get caught doesn't mean it didn't happen.
[20:53] cruciform: jfw, thanks for full disclosure; as it turns out, I haven't got round to this week's homework yet anyway, so no questions unanswered at the moment
[20:57] jfw: so that works out fine apparently!
Day changed to 2020-10-23
[17:52] jfw: cruciform: dorion points out that I probably ought to offer to reschedule the office hours although they were unused so that we can all strengthen the habit. I can offer 18:00 UTC tomororw (Saturday)
[18:05] cruciform: jfw, perfect, thanks
[18:09] jfw: alright, noted.
Day changed to 2020-10-24
[18:01] cruciform: jfw, on Exercise 1, Q3 of Session 2 Homework, the command 'ls -d [A-Z]*' is listing files that don't start with a capital letter
[18:03] jfw: looking
[18:06] jfw: works for me; are you sure you "spelled" it right in the terminal?
[18:08] cruciform: yea; weird
[18:09] jfw: is this on the training system - shall I attach your tmux and have a look?
[18:09] cruciform: this is on my local system; lemme get on the training one
[18:10] jfw: another thought is maybe there are file names with spaces in them that you've confused for separate files
[18:12] cruciform: I don't see any files with spaces in 'em; works fine on training system
[18:14] jfw: most curious, pretty sure this should work the same on any linux/unix shell at least in the 'bourne' family. Do you mind screenshotting your terminal to show both the command and results?
[18:15] jfw: (there are more civilized i.e. text-based ways to do such session recording but guessing this will be the simplest for now.)
[18:17] jfw now imagines diana_coman saying "*never* just asusme something will work the same in a different environment unless verified!"
[18:17] cruciform:
[18:18] cruciform: lol yes, 'just assume' got me in trouble from her recently
[18:19] jfw: I bet it's some "locales" / unicode thing, "2 can equal 12 in some cultures that don't discriminate against large numbers"
[18:19] cruciform: gotta love non-standard standards
[18:21] jfw: well in my view the ubuntu system is deviant; the original exercise, proposed answer & Gales Linux behavior are historically and logically correct, based on the objective fact that unix filesystems are case-sensitive.
[18:22] jfw: nice find though, thanks for asking
[18:22] cruciform: gotcha; I'll do the exercises on the test system
[18:22] cruciform: that was the only question from this week's work; thanks for your helpe and resheduled office hours
[18:23] jfw: cool, my pleasure.
[18:39] dorion is glad to read that worked out and vaguely recalls dash being the default shell on ubuntu.
[18:40] cruciform: I'm using GNOME Shell 3.28.4
[18:41] dorion: heh, I've heard of gnome, but not the shell.
[18:45] jfw: different type of shell (though same general concept), GNOME co-opted the term to simply mean ...GNOME.
[18:46] jfw: iirc dash is the default shell for script execution on ubuntu but it still has bash for user interaction, and I'm guessing it's bash at work here given the colorful prompt
Day changed to 2020-10-25
[16:27] cruciform: jfw, would it be possible to move this week's lesson back - perhaps to Wednesday @ 18:00 UTC?
[19:48] jfw: cruciform: it would.
[19:48] cruciform: jfw, great, let's do that - thanks! How's your weekend?
[20:05] jfw: weekend's fine, nothing too remarkable for me: got fresh bread from the oven, got fresh cookies even, and all my teeth still to rot with 'em; got trails to walk and take in the crisp leaves and crisp air; got hacking, wherein a pile of Scheme work continues slowly but surely coming together; and still got a mostly-neglected blog.
Day changed to 2020-10-26
[00:36] dorion: jfw, cruciform, do you want to maintain the thursday office hours or move back a day or two to give cruciform more time to work through the exercises ?
[00:38] dorion: ^just for this week I mean ?
[00:38] dorion: whoops, wasn't supposed to be a question.
[00:40] jfw: I could trade that for shifting Tuesday Nov. 10 class to Monday the 9th
[01:13] cruciform: jfw, dorion sounds good - Nov 9th, rather than 10th; how about moving office hours this week to Friday @ 18:00 UTC?
[01:14] jfw: works.
[01:15] cruciform: also, sounds like you had a great weekend!
[01:15] cruciform is afk
[01:16] jfw: thanks, cya.
Day changed to 2020-10-28
[18:01] jfw: how about that, all my recurring meetings have disappeared from Zoom. cruciform: I'll post an updated invite shortly.
[18:01] cruciform: jfw, ok
[18:05] jfw: ...or not, they reappeared and then there was USB driver trouble. Should be working now.
Day changed to 2020-10-30
[17:49] jfw: cruciform: I have corrected "Intermediate Use of the UNIX Operating System - Exercise 1" and the linked answers to reflect our present environment and will have 2-3 done shortly.
[17:49] cruciform: jfw, aha, I had wondered about that
[17:54] jfw: One note from the reading is that the "alias" command syntax shown is for the C or T shell. For ours (the Bourne shell family which is the usual on Linux) you need an = sign with no space between the alias name and definition, as in: alias my_command='existing_command -args' . (The quotes are necessary due to the space in the definition; the different types of quotes will be covered in more
[17:54] jfw: detail.)
[17:55] cruciform: jfw, gotcha - thanks
[17:56] cruciform: I'd like to do some reading up on graph&set theory - recommend any introductory textbooks?
[17:59] jfw: hm, my own introduction to the subject was from a course with assorted linked document sort of readings so I don't know a textbook offhand. 'Discrete math' is the more abstract branch and 'theory of computation' the more in-depth as applied to computing
[18:01] cruciform: thanks
[18:06] cruciform: it occured to me that the cmd line requires thinking because it's essentially writing, and writing IS thinking
[18:09] jfw: afaik the classic on symbolic logic is Whitehead & Russell but I'm a ways from tackling that; while set theory goes back to Cantor
[18:09] cruciform: corrected link from above
[18:09] jfw: indeed.
[18:09] cruciform: jfw, thanks - I'll check it out
[18:11] cruciform: I've been having some lulzy conversations with poker buddies regarding 'crypto' - they're all into Ethereum and who knows what else; skeptical of BTC coz it can't pay for coffee
[18:12] cruciform: I pointed to the idiocy of the crowds regarding the plague, and that 95% or w/e of global wealth is held by 1% of population; mass-adoption isn't necessary (cf. gold, stocks, SDRs etc.)
[18:12] jfw: heh, so do they think gold or the Bank of England aren't things because they aren't used retail?
[18:13] cruciform: exactly!
[18:13] cruciform: this is the guy who has 1/4 - 1/3 of his wealth in TSLA (P/E ~ 1K)...
[18:15] jfw: well, trend following works wonders, until it doesn't
[18:15] cruciform: jfw, I'm surprised you haven't already corrected the homeworks to refer to our system environment - hasn't this come up already with prior students?
[18:17] jfw: yes, and it's a shameful situation where I'd made corrections on printouts but not got them merged back to the source.
[18:21] jfw: not even sure why I've avoided it so; not like it's hard once I sit down to do it.
[18:21] cruciform: I see; perhaps you could correct 'em prior to the lessons, so I don't have to go back and repeat?
[18:22] cruciform: ime, avoidance doesn't tend to make much sense, by its very nature
[18:22] cruciform: nor is it all that connected to the amount of work being avoided
[18:23] jfw: quite so. and yes, I could & will.
[18:23] cruciform: cheers
[18:23] jfw: apologies for the trouble.
[18:24] cruciform: no problem; my only questions were regarding that issue
[18:25] cruciform: how's the Scheme interpreter going?
[18:26] jfw: well, if slowly; had a devil of a bug to trace that took me all the way down into Linux kernel sources
[18:27] jfw: with the result that a certain interface simply doesn't work the way I expected & wanted and I simply need to use a different method.
[18:28] cruciform: sounds tricky, but fruitful
[18:31] jfw: lately we've also been researching AMD graphics hardware and will be testing out a corebootable desktop option
[18:31] cruciform: cool - is that to get around Intel diddling?
[18:32] jfw: to get around Intel as a whole, for whatever badness may be thereby excluded
[18:34] cruciform: sounds good!
Day changed to 2020-10-31
[10:24] jfw: cruciform: now that we see what my "shortly" estimates mean - practice sets 2 and 3 and corresponding answer keys are all updated now. While it turned out I'd already covered the noted "alias" discrepancy in the text, there were a couple other things crying out to be updated or clarified; if you reload the text you should see the insertions highlighted in green.
[10:28] jfw: One way I screwed myself here - besides the initial call to build on someone else's stuff, although I kinda like the perspective it brings simply from being old, beyond what I could have come up with myself - was not going straight to an automated cleanup tool like perhaps to deal with the mess of likely GUI-generated markup cruft that quite interfered with any actual
[10:28] jfw: editing work and got me doing pen on paper corrections in the first place.
[10:33] jfw: (so possibly the avoidance had an intelligible cause after all, lol)

#jwrd Logs for Sep 2020

Filed under: #jwrd logs, Logs — Jacob Welsh @ 20:49
[13:23] dorion: hello
[13:24] dorion: <cruciform> is the potential hardware issue solved by using Coreboot?
[13:24] cruciform: I'm not sure I have a preference for AMD vs Intel atm; at any rate, we can get started with the Beginner sessions before deciding?
[13:24] dorion: correct, the hardware can be decided later.
[13:25] cruciform: so, <dorion> the next steps will be to pick a class schedule, finalize the contract, settle the payment and start.
[13:26] dorion: right. so when are you thinking you want to start and at what frequency ? 1/week ?
[13:26] cruciform: 1/week sounds good to start; possibly move up to 2/week
[13:27] cruciform: I'll need 7-10 days or so to sort payment
[13:27] cruciform: So, we could look to start in, say, 2 weeks' time?
[13:28] dorion: ok, pretty sure the week of oct 12th works for us. I'll let jfw confirm.
[13:29] cruciform: great. is there anything you need from me in the meantime?
[13:30] dorion: let's nail down the schedule a bit more. what time and day of the week do you prefer ? can you do tuesday evenings utc ?
[13:31] cruciform: yes, Tue evening UTC will be fine
[13:31] dorion: ok, cool. how's the poker going by the way ? were you predominantly an in person player and are they still having those in the UK ?
[13:32] cruciform: haven't played since plague; I mostly played live - casinos have reopened, and they've got plastic screens between players...
[13:32] dorion: one of my contacts in Panama is building an app for casinos to run in person games w/o chips.
[13:33] cruciform: lol
[13:33] dorion: not exactly how much it helps if still using physical cards, lol.
[13:34] dorion: not exactly sure*
[13:34] cruciform: poker chips are notoriously filthy; never stopped punters eating with bare hands in between handling em
[13:34] dorion: true.
[13:35] cruciform: don't think I've ever seen a poker player complain about filth/degenerate playing conditions
[13:35] cruciform: degenerate people, on the other hand
[13:36] dorion: yeah, the wrong people fuck up a game in the right place more often than the place fucks up a game with the right people.
[13:36] cruciform: ^
[13:37] cruciform: the place is virtually never the problem
[13:37] dorion: jfw, if you didn't see :
[13:37] cruciform: I'd best get back to work - I'm not always on IRC, but you can ping me at YH anytime
[13:40] dorion: cruciform, regarding the Faraday cage. We have designed and implemented one for our own use. If we were to design/implement one for you, we'd have to know more details about where it would sit. e.g. is there a door/entry big enough for it to pass in one piece ? or does it have to be disassembled.
[13:41] dorion: then factor in the shipping costs. e.g. it could be more economical to outsource the construction to a local metal shop.
[13:42] cruciform: gotcha
[13:42] cruciform is afk
[13:42] dorion: sounds good cruciform. we'll follow up further on the yh article and get you the contract for review.


Some shower thoughts on networks and referencing

Filed under: Philosophia, Software — Jacob Welsh @ 21:50

Every so often I find myself, like many an inquisitive blogger before me I'm sure, wondering why exactly I go through this yearly ritual of "renewing my domain names". You know, verifying my contact information, accepting the terms of service and extended such-and-such contracts, getting a payment routed through a seriously rusted financial system, having to navigate whatever "single page application" web 3.0 javashit the overemployed deadbeats of San Francisco have "innovated" this time around, all that. Certainly I'm aware I could reduce this to a once per decade hassle, but more to the point: who is this ICANN anyway and what business do they have being a gatekeeper between me and my correspondents? (Let's suppose for now that I have correspondents cool enough not to be importing anyway every conceivable Googappazonosoftbook into the pipeline because "it's convenient" or "being a person is hard" or some such. Because I do; and I'm breeding more of them.)

Why is it that my links can't just look like

Hm? One customary answer given to n00bs as to "what is the DNS(i) and why" is that "computers address each other using numbers and those are too hard to remember". I don't buy this though; even the most commonplace sort of homonid has been using numeric street addresses, telephone numbers and similar without substantial difficulty for quite some time now. If you use a number regularly you'll remember it; otherwise there's bookmarks and address books and so on, plenty of simple solutions not requiring some royal naming authority in the sky.

A second attempted answer might be: "how are new readers going to find me?" That is, the DNS can serve the role of an introducer, a sort of gregarious fellow who knows everybody in town and can hook you up, if only in the narrow situation that you know precisely who you're looking for but not where to find them. That's all well and good, and perhaps even worth paying for; but then why not have just a landing page on the DNSweb that simply redirects to the full numeric one? Why take in this introducer as a permanent and required part of the ongoing relationship?

The strongest answer I've found is that there's an important distinction between a locator and identifier - of an online resource as with the living human or group that it serves. In plain terms: what matters to me is to whom I'm talking rather than where they happen to be at a given time. Where this becomes most painfully obvious is in referencing external resources: IP addresses can and do change over time with changes in provider relationships, and it makes no sense to give the providers more leverage than necessary by adding friction to the change.

On a side note: a sane computer network, to my mind, would model reality by having identifiers consisting of a globally-unique part generated by the individual, like 0CBC05941D03FD95C3A47654AE0DF306025594B3, and a convenience alias like "Jacob Welsh", granted simply as a convention by the recognition of one's peers and with no uniqueness requirement. Solves the problem and without creating any imaginary "real estate in names" and thus "naming authorities".

But back to external referencing. Here it is useful to distinguish between two different sorts of things one might wish to reference: living and dead. To further clarify, this distinction applies more to the manner of reference than the thing itself, because there's some inherent subjectivity in the latter. Someone may be "dead to me", where I judge a once-interesting intellect to be fallen into insanity or senility or enemy control or some such. The way to reference a dead source is to archive it yourself, in full and as faithfully as you can manage, so that you become its living vessel. In this case there is no "IP address problem" at all. The live source, by contrast, is one where you wish to direct the reader not just to the author's words as they were written at the time in their historical context, but also to the author himself, such that he may offer corrections or clarifications, host discussions, and become acquainted with his readership. Thus the live reference is a kind of social relationship.

Observe, then, that the live reference can and will transition to dead at some unknown time. From this it follows that properly referencing a live source involves already creating the archival copy, if not necessarily publishing it, to be prepared for the inevitable, as well as keeping up with the activity of the source, at the bare minimum to notice when your external link is broken.

Based on the foregoing, it seems to me that there's something lacking in the present web publishing tools or at least the ways I've figured out to use them. Why isn't there a single field whereby I can update all my external links to a given source? Such a thing would serve equally well to let me re-broadcast the "DNS updates" of my friends as it would to let me switch to archived copies on the sad occasion that the friend is consumed by the forces of entropy.

On a final side note: I've begun to suspect the "IP address" is a poor abstraction from the start. It's insufficiently concrete to enable the machines to actually deliver a packet to the recipient, without a whole extra layer of routing protocols ultimately subject to the same "DNS problems"; yet it's insufficiently abstract to be useful to people as a long-term identifier.

  1. Domain Naming System: the protocol, software, and authority structure rooted at the US government that computers on the Internet use to translate names like "" to numeric Internet Protocol addresses, at least while the system feels like allowing it. [^]


Gales Scheme

Filed under: Historia, JWRD, Scheme, Software — Jacob Welsh @ 22:26

There's a project I've been working on, passionately though intermittently, for some years now that I'm at last going to start laying out, one bit at a time.(i)

Its framing started out ambitiously enough as a simple yet complete Scheme interpreter for the Unix environment. The idea was to build a robust implementation of this classical, expressive and compact programming language, that would fit in my own head and enable me to meet business needs as technical co-founder of what's now JWRD Computing, with greatly reduced reliance on the conventional options of the day. Those seemed to offer only "industrial scale" bug-infested quagmires on one end and half-assed hobbyist efforts on the other.(ii) It has achieved this to some degree and is already quite serviceable, albeit for a rather narrow sort of domain.

I now envision its future as nothing less than a complete and self-sufficient computing system, enabling all of the accreted layers of software and hardware sludge - historical, modern and postmodern - to be safely jettisoned. It has a lot of growing to do, and so do I if I'm to get it there. And I'll be needing some help.

The code is already available for what I consider a maintenance branch, in V patch format here,(iii) but major changes are afoot.

  1. Hopefully not the binary sort of "bit" - though I'm going for small-scale articles on the theory that I can be more consistent about it that way. [^]
  2. For what it's worth, it was an attempt at reading the TinyScheme source code that convinced me that writing my own was quite doable and yet quite necessary if I was to have the kind of diamond I sought. [^]
  3. I recently issued a re-genesis to better follow V conventions, and some bug fixes: the recommended head is gscm_fix_m_whitespace_package_install.vpatch. [^]


The Fixpoint used car checkup checklist

Filed under: Hardware — Jacob Welsh @ 18:39

Relatives are looking into buying a used car, so I've dug out the checklist that served me well enough the last time I did this just over ten years ago, and expanded a bit.

I gather the major trends since that time have been toward ever flimsier materials(i) and integration of complex electronics into core vehicle functioning.(ii) Nonetheless, the basics won't have changed much.

Used cars are, of course, the canonical example of what economists call "the market for lemons": there's an inherent asymmetry of information in favor of the seller, so buyers are rightly distrusting and won't pay what a car might well be worth, so the good ones are less likely to go on the market at all, leading to more distrust and so on. The only way out, such as it is, is to mitigate the asymmetry; that is, by having a clue. If you don't have strong mechanical knowledge yourself, be sure to get the vehicle checked by a mechanic you trust.(iii) If the seller won't let you, move on.

That said, you can still learn things and save time by doing as thorough a pre-check as you can on your own. When going to check a vehicle, be sure to bring:

  • Pen and paper
  • Flashlight
  • Paper towels for checking oil
  • Tire pressure gauge

Inquire as to the vehicle's history (single-owner is preferable). Are service records available? Has it been involved in an accident (not necessarily a dealbreaker if it was minor, but definitely affects the price)? Has it been in a flood (dealbreaker)? Is the title clean? If possible in your market, use a service like Carfax to corroborate these. If buying from a dealer and looking for a warranty, what's the current status or cost of extending?

Of course there's the question of whether it fits your needs: cost, comfort, safety, size, storage space, power, looks and so on. If you're into hybrids for some weird reason, note that like all batteries, the hybrid battery degrades over time, but is much costlier to replace than a conventional lead-acid starter battery.

Moving on now to the the parking lot self-check; first the exterior:

  • Check the body lines (silhouettes, reflections) for dents, and panel paint colors for unevenness (i.e. indicating undisclosed repairs).
  • Check gaps (door and hood perimeters) for even width.
  • Check tires: tread wear patterns; sidewall damage; that they're a matched set and of a reputable brand; pressure; spare; changing tools (jack and lug wrench).
  • Look for corrosion, particularly on the exhaust system.
  • Under the hood: check belts, fluid levels, and that all caps are present. (This is a good basic safety check before even taking a test drive. I was once shown a car with no detectable oil level!)
  • On the (cold!) engine, remove oil filler cap and check its underside for suspicious residues.
  • Check that door handles have little free play and the doors can lock and unlock manually. Check opening and closing of doors, trunk, hood, gas door and gas cap.
  • Check suspension by bouncing each corner (gently but firmly). There shouldn't be a repeated bounce.


  • Check presence of owner's manual (glove compartment) and manufacturer label (driver's door jamb).
  • Check odometer.
  • Check all electrical components: headlights, high beams, fog lights, turn signals, emergency flashers, taillights, brake and backing lights, power locks, power windows, HVAC, seat adjustment, mirrors, wipers and pump, sunroof, stereo.
  • Check condition of seats, headrests and seatbelts.
  • Check for smells and signs of moisture. If there's a foul smell: it's probably never going away. If there's a pleasant smell: what's it covering up?
  • When cranking, check for smoke (suggesting oil leak) and excess noise or vibration.
  • Check dashboard warning lights and gauges.

On the test drive:

  • When safe, check acceleration; there should be no hesitations.
  • Check for smooth shifting, reverse, and downshifting.
  • For manual transmission, check for clutch slip (e.g. floor it in second or third and check that tachometer doesn't outpace speed). Check synchronizers on first and second (i.e. smooth engagement from neutral immediately after disengaging clutch; these do wear out and it's fine to do without but takes more finesse.) For automatic, check that shifting is responsive enough for your taste.
  • Check main brakes and handbrake.
  • Check handling on turns.
  • Check performance of suspension on bumps if possible.
  • Check cruise control.

Good luck, and may you find a suitable mechanical beast to serve you for years to come. Take care of it and it'll take care of you!

  1. For fuel economy and the environment, of course. Surely not because the consumer can't afford steel anymore, nope, couldn't be that. [^]
  2. This mirrors the constant push for convenience at the cost of technical comprehensibility and robustness seen in the computing industry proper, as well as the near extinction of the manual - once "standard"! - transmission at least in the US market. [^]
  3. In Latin America I never met anyone who knows a mechanic they trust (though to be fair, I wasn't looking very hard). In the US, cars tend to be both more affordable and more essential, while the poor are - for so long as the dwindling reserves of government largesse hold out - not actually all that poor, so virtually any long-term resident in a given location will have their war stories and recommendations, so this part of the search is easier. [^]


A bevy of fixes for V in Perl

Filed under: Software, V — Jacob Welsh @ 21:49

"Fixes" may be a strong term, in that it could be argued the item in question wasn't exactly broken. It was however darn near unusable in practice, and contained a number of fragile and unstated assumptions about its environment and invocation.

I thought I'd introduce my work by putting it in context with a quick recap of what V is; but then it turned out that my understanding of the matter, and perhaps even my approach to gaining understanding, needed some fixing too.(i) In short, it's nearsighted to define V as an improved kind of version control system; rather, its proper placement is a few levels up in the tree of concepts as a new way of thinking about, talking about, and deploying software, broadly construed. Thus I surmise it's also inadequate to consider the present "V in Perl" artifact, its label notwithstanding, to be a kind of reference implementation of V, but rather an early implementation of a relatively small part of the overall vision.

Still, whether I fully manage to see in this horseless carriage prototype a "transportation revolution to permanently alter the shape of civilization" or "just a faster kind of cart" - or something in between - if I'm to be riding in it then I want the wheels on straight; and I'm plenty capable of seeing to that.

The first patch packs in quite a few relatively small and independent fixes, building off the GNAT-demanding ksum/vpatch branch. Paralleling my previous work, the second swaps in keksum and patch to avoid the secondary compiler requirement (a change that's now more straightforward).



Taking the main patch, one item at a time, from the manifest:

(1) Eliminate use of external binaries (cat ls sort pwd which) and provide more hygienic directory listing;

Now I'm no Perl monk (and would likely never choose it myself for a new project) but I know you don't have to open subshells and pipelines just in order to read a file or list a directory, really now! The "ls" scraping is a particularly risky pattern due to the possibility of unexpected control characters in filenames. I was surprised to learn that stock Perl lacks an internal "getcwd" function, but the "pwd" and "which" usage turned out to be doing more harm than good anyway and easily eliminated.

(2) add missing error handling in build_wot;

This is a repeated pattern in the code, and one I probably haven't entirely eliminated. Much like the underlying C, many Perl functions don't raise exceptions but expect the caller to check manually for errors. Much like the underlying C programmers, many Perl programmers don't bother with that pesky error checking stuff. Combine this with mutable variables repeatedly reinitialized by a loop on the assumption that nothing fails, and you get all sorts of interesting leakage possibilities. In this case, if one of the GPG key files placed in ".wot" was invalid, the program would not only fail to notice but label the bad key with the metadata of an unrelated victim that was seen previously.(ii)

(3) eliminate some variable regex patterns;

Using a complex tool when a simple one suffices - and, predictably, not using it correctly (i.e. by quoting regex metacharacters).

(4) avoid slurping(iii) full vpatches and verbose output into memory;

Thus it should now work (albeit slowly) on arbitrarily large vpatch files with respect to the system's main memory, and for verbose mode flush the "patch" output to terminal in closer to real time.

(5) fix exponential recursion blowup in traverse_press_path and get_all_descendant_nodes;

This was the original motivation for this work, as I'd noted:

Algorithmic inefficiency is a serious drawback of this tool. I suspect the "toposort" is something like O(n^2 log n) while "traverse_press_path" is exponential, like the textbook Fibonacci example of how not to do recursion. This becomes acutely noticeable around 32+ patches.

Exponential traversals turned out to be in two different functions; happily, the memoization needed to avoid revisiting the same subtrees over and over was already inherent in the data structures being built.

After tracking down the second instance, I used some "awk" to build a full list of recursive calls in the program for scrutiny (namely: traverse_press_path verify_ante remove_desc add_desc_edges add_desc_src_files), so I'm fairly confident there are no more heads on this particular hydra.

(6) allow the patchdir to be a relative path;

It happened that relative paths worked already for the seals and wot directories.

(7) replace some numeric indexing with named variables;
(8) tweak hash program parsing to not require two spaces;
(9) document restricted positioning of global options handled distinctly from commands;

The option-handling code clearly wasn't doing what it was meant to be doing; I haven't exactly fixed that but have at least noted the extant restrictions on where the wotdir/patchdir/sealdir options may be given.

(10) make help and version commands work without a wotdir;

You can't demand I already know how to use a program in order to view its documentation! Well I mean, you can, but... you know what I mean?!

(11) allow patches and seals to share a directory but require standard extensions (.vpatch .sig);

I never quite saw the point of separate subdirectories here, so now you can just ln -s patches .seals and keep them all under "patches", saving a fair amount of pointless shuffling in my own usage. (The default ".seals" path is preserved for compatibility.)

(12) take basenames of patch arguments to allow tab-completeable paths;

That is: press a some_big_long_name.vpatch

can now be spelled as press a patches/some_big_long_name.vpatch

(i.e. the actual path, although the prefix could be anything). This applies to all subcommands that take patch names.

(13) clean up the tempdir on SIGINT (^C);

Less important now that it doesn't get effectively wedged on exponential algorithms, but still.

(14) factor out some repetition;
(15) other minor simplifications.
Version 99989.


$ diffstat v_fix_exptimes_paths_etc.vpatch
 manifest |    1     |  234 +++++++++++++++++++++++++++++++++------------------------------
 2 files changed, 124 insertions(+), 111 deletions(-)


  1. Full details in the logs:

    jfw: diana_coman: I'm trying for a concise intro/description of V, in the present (post-Republic) context. Does this about capture it: "versioning system that supports owner control of computing by placing primary focus on the change and explicit management of trust through strong cryptography" ?
    diana_coman: jfw - hm, what do you mean by "of computing" there?
    jfw: well, of the operation of one's own computers
    jfw: possibly a bit circular with "ownership of one's own"...
    diana_coman: it's more that the definition as you gave it doesn't do all that much - though it takes a few readings, hm.
    diana_coman: it's a bit tortured on various fences by the looks of it; for one thing, defining it as a versioning system cuts away an important part - the deployment of software that is usually not all that much the traditional concern of versioning systems
    diana_coman: jfw - what's the audience you have in mind there or is this blog/generic?
    jfw: it's the blog, yes - and partly for clarifying it for myself, heh.
    jfw: my grasp of what V does for deployment is basically to say that the other tools traditionally used for it aren't necessary
    diana_coman: ahaha, going for once fully-negative-space there (and that getting rid of all the other "tools" is not a tiny thing either at that, but it's more of a consequence than anything else)
    diana_coman: V is a complete solution in that sense, hence "the other tools [...] aren't necessary"
    jfw: (though um, it's still known to lean on 'wget' etc.)
    diana_coman: well, it also still requires an OS!
    diana_coman: anyways, I wouldn't say that "other tools are not necessary" - it's more that the change is so fundamental that previous tools don't fit /don't have a useful place anymore; other tools though *are* still necessary - only they need to be built
    diana_coman: it changes the whole landscape if you want
    diana_coman: but let's rewind and try to grab it from some more concrete end perhaps
    jfw: alright
    diana_coman: so for one thing, V is not some particular implementation but essentially a paradigm for software
    diana_coman: and software as a whole, not just development, nor even just deployment, it goes all the way to even what software *is*
    diana_coman: sure, one can use V for some narrow part that they care about and it's true that the first implementation was just that, a very narrow thing in fact, but that doesn't mean much.
    diana_coman: and I suppose that the current state of V-use and development otherwise might give the impression that there isn't anything more to it either, huh
    jfw: I suppose I've tried to understand the species based on observations of what's shared by the known instances
    diana_coman: jfw - you know, I think your attempt and question there hits actually deeper (and well done for it, too) than you intended, lol
    jfw: haha, indeed
    diana_coman: jfw - so where did you start from, anyway? from the current implementations of V, is that what you mean by the instances?
    jfw: right
    jfw: heh, you know the one about the blind men and the elephant?
    diana_coman: that kind of locks you unhelpfully into some rather sterile and narrow mindframe, myeah (and I'll leave the tracing of the root cause there to each log reader)
    diana_coman: jfw - hm? doesn't come to mind, no.
    jfw: apparently a story that exists in many versions, but basically each man feels a different part of the elephant and extrapolates a completely different (& quite incomplete) picture of what an elephant is.
    diana_coman: ah, the fable, yes
    diana_coman: I can see the similarity, indeed
    jfw: - possibly the main English version.
    jfw: ponders how to "see true v-elephant with mind's eye"
    diana_coman: the thing is, V is not just a different type of versioning system - a bit like a car is not just a faster cart, hm
    diana_coman: jfw - well, better start from the beginning as it were which indeed is *not* whatever implementation, no matter what claims are made otherwise; e.g. [][the change similar to that introduced by the understanding and controlling movement in terms of mass, impulse and energy, such as it occurs in the launching of
    diana_coman: satellites]
    diana_coman: damn, it still broke the link, didn't it
    jfw: space between the words in the text, yeah
    diana_coman: jfw - my, yrc can't recall previous line??
    jfw: nope :/
    diana_coman: jfw - why, why, why whyyyyyy
    diana_coman: the change similar to that introduced by the understanding and controlling movement in terms of mass, impulse and energy, such as it occurs in the launching of satellites
    jfw: because it's young still
    diana_coman: so based on the above, you can start perhaps with a broad definition of V as a new way of understanding software - and therefore, as a consequence of this deeper and more precise understanding, the resulting more efficient way of talking about software, developing (version controlling being only one part of that developing) software, deploying software, maintaining software and so on.
    diana_coman: jfw - well, yrc may be young and have all the time ahead of it indeed but what can I say, I'm getting older day by day here so pleaaaase: can haz tab-completion and last-line recall?
    jfw: yes; and kill/yank (cut/paste) for the input is needed too.
    jfw: "manage his investment of trust at all junctures so that he is never required to implicitly trust either an unknown code author, or a code snippet of unknown provenance." - hey I pretty much got that part, right?
    diana_coman: with that broad definition at hand to help you avoid the pitfalls of stupid compartmentalizing, narrow focus, childish pick-and-choose and other numerous afflictions of the "software industry/engineering", the next step is to review the stated principles at the root of it all:
    jfw: (but yes, paradigm rather than particular set of scripts was missing.)
    diana_coman: namely software being the property of those running it and identity being constructed by others' view, upon a fixed support
    diana_coman: jfw - trust is possibly the skin of that particular elephant and at least the word itself has been repeatedly brandied about for sure
    diana_coman: it might have been bandied, but I do like brandied better.
    jfw: mmm, brandytrust!
    diana_coman: quite, it can produce... intoxication!
    jfw: especially hazardous when pregnant with concepts & definitions
    diana_coman: ahahah, indeed!
    diana_coman: looking back at your original definition, I'm afraid there isn't much of it left though.
    diana_coman: making a first attempt at tightening up that previous definition:
    sonofawitch: 2020-06-23 21:56:55 (#ossasepia) diana_coman: so based on the above, you can start perhaps with a broad definition of V as a new way of understanding software - and therefore, as a consequence of this deeper and more precise understanding, the resulting more efficient way of talking about software, developing (version controlling being only one part of that developing) software, deploying software, maintaining software and so on.
    diana_coman: V is a new conceptual framework for software, emerging from a better understanding of what software is and providing as main benefits the means for explicit, verifiable enforcement of software ownership by users as well as the correct incentives and supporting concepts for a qualitative jump in the way software is developed, deployed, maintained and evolved.
    diana_coman: jfw - does the above sound like the sort of concise definition you were looking for?
    diana_coman: it aims for a more practical intro so it necessarily leaves some stuff out/picks some to highlight.
    jfw: diana_coman: it's the sort of definition, yes - I don't know that I'll use it here directly though because if I'm to give a definition I'd want it to be one I fully understand myself (i.e. to have that new understanding of software & be able to explain why it's better)
    jfw: I'll work on getting there but the present article can make do without it.
    diana_coman: jfw - ah, no need to use it directly anywhere, lol; and anyways, if not clear, ask further tomorrow or whenever, sure.
    jfw: yep, & thanks for the pointers.
    diana_coman: yw
    diana_coman: such excellent questions are a pleasure to answer, so...keep asking them!

  2. "User error", yes; but as the Python folks say, "errors should never pass silently, unless explicitly silenced", one reason that I still grade that language a cut above Perl. [^]
  3. It's the official Perl term, what can I say? [^]


yrc re-genesis and patch for smooth scrolling and other fixes

Filed under: Software, yrc — Jacob Welsh @ 06:50

I revisit now my IRC client from the other side of seven months since initial public release and a full year since my last round of development on it. Its usage in this interval has been pleasantly free of unexpected problems; indeed the Unix process containing my own "daily driver" has an uptime of that full year, handling everything Freenode's managed to throw at it without a hitch. On the other hand, the software didn't see all that much attention from others, and I became rather complacent about its known quirks and problems.

The interval also saw me coming around to Mircea Popescu's insistence that indentation is done with tabs and not spaces(i) while line breaks are for conveying some kind of meaning beyond "my terminal is too dumb to wrap text on its own". I also switched to the tree structuring convention, prevalent in the software that grew in TMSR, of having a top-level directory named to match the project. As making these changes to an existing tree results in quite a noisy patch, perhaps to the point of effectively severing the connection to the previous state for all the good it does the reader, I've taken this occasion to re-bake the genesis patch yet again. As I'm unaware of anyone else having reviewed the code, I expect this won't pose any real inconvenience.

This out of the way, we get to the more substantive change: refining the scrolling model to count by lines on screen rather than full IRC lines, while still staying anchored to the visible text when the window is resized. I also managed to preserve algorithmic independence from scrollback log length: wrapping is computed on demand for only the necessary lines, ensuring UI responsiveness.

The reason for prioritizing this fix was that a new user pointed out its importance. There's more work upcoming, including tab-completion of names.

A few other fixes and improvements are included, including Python 2.6 compatibility (as yet untested by me); see the included NEWS file for details.

To install, you will need a Keccak V implementation such as my starter, plus the patches and seals:

Or download in bulk, e.g.:

wget -m --no-parent

Once the tree is pressed, see yrc/README.txt for futher instructions.

  1. I'm still not sure what if anything this says about Lisp. [^]


Build system overhaul for bitcoind

Filed under: Bitcoin, Historia, Software — Jacob Welsh @ 21:19


The Real Bitcoin's build system for some years has consisted at the top level of a number of GNU Makefiles and a thing called "Rotor", building on an earlier "Stator". According to its 2015 introduction by Stanislav Datskovskiy, it served to compile the "bitcoind" executable deterministically and with full static linking, given a reasonable starting environment. The key to this magic was "buildroot", essentially a miniature, non-self-hosting Linux distribution designed for cross-compiling embedded systems.

The determinism came from capturing a full set of dependencies all the way down to the compiler. This came at the cost of adding considerable complexity to the process, as what was formerly a mere application took on all the potential problems involved in bootstrapping an operating system from an unpredictable environment, in addition to the already intricate build systems of the required libraries Boost, Berkeley DB (BDB) and OpenSSL. In an early sign of trouble, Michael Trinque found it wouldn't build BDB on his system without some CPU architecture specific configuration. In my own experience, I got it to work once, but when demonstrating to some friends on fairly similar Gentoo systems I'd built for them, it failed in multiple different ways. Ultimately I couldn't be bothered to track them all down, partly because of how unbearably slow it was: to try any change you would have to repeat the whole toolchain bootstrap.

The V cryptographic source code management system was introduced, with Bitcoin as its first user, shortly after Rotor; somehow the Rotor scripts and patches didn't end up in the V-tree proper, meaning that they in addition to the library and toolchain sources had to be rounded up in order to do offline (i.e. reliable) builds or study the code.

Finally, having already taken on the publication of a Linux distribution with similar static linking and deterministic bootstrapping goals, but going further in providing a self-sufficient system with native compilers, I had little desire to be stuck maintaining two different such beasts.

The vpatch

Thus I now present bitcoin_system_compiler.vpatch (with seals on the shelf). Building on my previous raw transactions patch, it:

  • Rewrites the Makefiles almost entirely. This includes the "makefile.unix" inherited from earlier developers, greatly simplifying it and eliminating historical baggage such as dynamic linking tweaks, Ubuntu bug workarounds, linking of "libssl" and way too much "sed" magic. Additions include compiler warning flags (resulting in quite a bit of warning spew, some of which might be interesting) and building "test_bitcoin" by default. Automatic header dependency analysis is preserved.
  • Removes some minor GNUisms like "tar xvfz" in order to work on BusyBox systems.
  • Brings "openssl-004-musl-termios.patch" formerly found in the external rotor sources into the tree.
  • Adds "boost-no-demangler.patch", discussed below.
  • Removes the various "src/obj" directories and moves all compiler output to the "build" directory. (For instance, this makes it easier to "grep" or "diff" the code without tripping on binary files.)
  • Avoids copying the "bitcoind" binary all around and removes the "bin" subdirectory: one place is enough.
  • Corrects the oversight that a library build failure would be ignored on a second "make" invocation because the mere extracted directories were used as the targets for dependency calculation.
  • Fixes parallel "make" by forcibly serializing the recursion into OpenSSL's ever-so-special custom build system.
  • Avoids recursing into "deps" on a top-level "make clean" so that dependency tarballs won't need to be re-downloaded. (Ultimately these need to get cleaned up and imported directly to the tree.)
  • Tweaks the BDB configuration to prevent "libtool" from attempting to build unwanted shared librarires.
  • Tweaks the Boost "bjam" invocation (the "compression" module gets built at install time if suppressed only at build time) and removes some "|| true" constructs that caused failures to be ignored.

It still supports the "make ONLINE=1" mode to download out-of-tree dependencies into the "deps" subdirectory from deedbot; these are reduced to the three essentials (Boost, BDB, OpenSSL).

In short, it makes both development and deployment much less painful, with a sane starting system as the price of admission.

The undemangling

Special mention is in order for the new boost-no-demangler.patch. Gales Linux uses an older branch of GCC that didn't receive fixes when the long-existing "stack clashing" (archived) family of attacks was stirred up in 2017, meaning some applications could end up vulnerable, especially those using the hazardous yet popular "alloca" or variable-length array features.

As a first step in investigating this, I enabled a number of warnings by default in the GCC configuration relating to excessive or dynamic stack frame size. While these warnings produce many false positives, they've done nicely to illuminate some suspicious code, such as binutils/libiberty/cp-demangle.c. Got that all read? Me neither... but so what, that "libiberty" is just an internal part of the toolchain, or so say the docs, right? And it's "well-known" that you don't want to feed untrusted input to the linker and friends. But wait: the GCC build system copies that code into libstdc++; from there it gets linked into C++ programs. This happens even if the program doesn't use the nonstandard "__cxa_demangle" extension it provides, by way of the default exception handler ("terminate called after throwing an instance of std::whatever").

So my gcc-4.7.4-demangler-amputation.patch, included in the Gales toolchain, removes __cxa_demangle along with the copying of cp-demangle.c, and simplifies the termination function to print raw symbol name, as it previously did anyway for the case of demangler failure (hah! - we learn that they knew their code doesn't always work). These names can be fed to "c++filt" to decode them manually if need be. It then turns out that Boost contains a couple uses of __cxa_demangle - none of them in components actually needed by bitcoind, harrumph - so the Boost patch simply cuts out the assumption that GNU compilers support it.


$ diffstat bitcoin_system_compiler.vpatch
 .gitignore                          |   21 ----
 Makefile                            |   21 ----
 bin/Makefile                        |   13 --
 bin/Manifest.sha512                 |    1
 build/Makefile                      |   97 +++++++++++++--------
 build/Makefile.rotor                |   56 ------------
 deps/Makefile                       |  166 +-----------------------------------
 deps/Manifest.sha512                |   17 ---
 deps/boost-no-demangler.patch       |   49 ++++++++++
 deps/openssl-004-musl-termios.patch |   46 +++++++++
 manifest                            |    1
 src/makefile.unix                   |  145 -------------------------------
 src/obj-test/.gitignore             |    2
 src/obj/.gitignore                  |    2
 src/obj/nogui/.gitignore            |    2
 src/obj/test/.gitignore             |    2                           |    5 -
 17 files changed, 168 insertions(+), 478 deletions(-)

Looking only at the "make" code, 471 lines across seven files is reduced to 112 lines across three: quite the improvement I should think!

Future directions

Some work that sorely needs doing, as suggested earlier, is getting those external libraries under control, through some combination of pruning their code to just the necessary parts, replacing their build systems, and importing to the tree, or changing bitcoind code to eliminate them.

Older Posts »

Powered by MP-WP. Copyright Jacob Welsh.