jlj

The musings of an aspiring carver of space

Is Python as esoteric as it seems?

First, the new colours: Awful? Nice? Strange? If I'm risking the little traffic I'm getting now with this, I'd appreciate a quick heads-up/@mention. ;–) I was playing around with Khroma late last night, and I'm still sleepy now, so I'm willing to accept that my judgment may be flawed. [Edit: I'm going back to the drawing board.]


My zettelkasten project is off the ground: I've been using Obsidian for a few days now. Just for note-taking — modelled roughly on the workflow outlined in Effective Remote Work's video on the topic — because working with new software while also learning the nuances of a more involved workflow seemed audacious at this stage. If there's one thing I've learned from blogging over the years, it's just bash it out: get something down, and keep that ball rolling; you can edit — heavily, if necessary — later.

One stumbling block to that process has already surfaced: I thought I'd blogged about all this, because the interface and thought process I use for both are, well, identical. But, no, a few keyword searches later revealed nothing on the blog; this is another process I'll need to refine as my slip-box grows.


That rclone process I talked about yesterday is still running, by the way; some 32 hours later. This is both surprising and fine: I'm really hoping that most recovery scenarios will involve using local snapshots; this is yet one more nightmarish aspect of the nightmare scenario of a house-fire or something, I guess.


I've talked about how I'm thinking about learning Python. I'm questioning the wisdom of that lately: every time I try to play with some code, or even get someone else's up and running, I end up on Stack Overflow nine or ten times an hour. My thought process, in no particular order, goes:

  • Should I set up a virtual environment?
    • I'll run pip when I want pip3 then; better do it.
  • Have I activated it yet?
  • How should I install this? Easy install?install setup.py .? With a whl file instead?
    • Is using pip ... setuptools --upgrade associated with the former? Is upgrading wheel all I need to do to get the latter working?
  • Is this pyyaml error related to the pip install, or to a missing dependency in my wider Linux installation?
  • What's Anaconda?
  • Do I still need to worry about generating a requirements file?

On and on. Worse still, nothing sticks because I'm not working with this stuff enough. And, yes, I'm exaggerating a bit to make a point. Maybe it comes down to what you learned on. When I'm compiling C code, I'm looking to the developer to point out dependencies; I'm happy pulling down libraries based on their documentation, or on subsequent build errors, even linking libraries symbolically as required. That may make as little sense to someone else as the various building blocks of any Python environment do to me, I suppose.

End of Day 38

jlj@Fosstodon #100DaysToOffload

I'm writing this as part of the 100 Days To Offload project; join us at: https://100daystooffload.com/

Remembrance, versus reverence and normalisation

Following on from the news about terminology changes in the codebase of both GitHub and OpenZFS, I joked in our company's chatroom about how our new hires like me might be the last contingent to test on Splunk's current cluster terminology. To my surprise, a colleague quickly replied, saying that such changes are indeed afoot.

I have to admit, the urge to roll my eyes was strong. In fact, my response was, “Satire is hard these days.” But, on second thought, there is something to be said for these changes, if less about the motives, so publicly expressed, behind them. A few years ago, I wrote about the Confederacy statues being demolished in the American south. To paraphrase, there is a very important difference between remembrance and reverence. We are not cleansing history with these acts, as some have argued, but failing to revere them any longer.

Now, few would call referencing the terms of slavery — in software and code, devoid of any other context — reverence. I could see an argument being made for calling it normalising, though. And, to go further, that the outcomes from both reverence and normalisation are exclusively somewhat to extremely negative.

As I get older, I realise how difficult it is to objectively assess things that have been a part of one's experiences and observations for most of one's life. Whether something came to be five years before your birth, or 50 years before, will be indistinguishable to you. (Well, let me quickly clarify that that is the perspective of a cis white male, very obviously, and, far from coincidentally, likely also the perspective of the majority of eye-rollers right now.) But that fact alone is poor rationale for it to outlive you as well.


I did have some success with the home set-up today too: rclone is currently backing up a Timeshift snapshot to Google Drive using a service account I set up for the purpose. I wonder how long the term clone will be in common use.

End of Day 37

jlj@Fosstodon #100DaysToOffload

I'm writing this as part of the 100 Days To Offload project; join us at: https://100daystooffload.com/

Timmy's ain't been quaint for a long ole time

My son decided that 5am was go-time this morning. My Splunk revision has suffered as result, I think it's fair to say. Still, I feel more comfortable with search head clustering now, so it wasn't a total loss. For completeness, in a disaster recovery scenario, whether the remaining search heads are an odd or even number isn't relevant (as far as I've been able to discern): it's whether 51% of the original membership remains. If so, the election of a new captain will proceed without issue. If not, manual intervention is required; likely in the form of designating a static captain temporarily.

Fascinating, I know.

Don't even get me started on the criteria under which a master node will rebalance the indexer cluster, or what triggers a change in its generation (ID).


But you didn't come here to revise Splunk. (I hope — may God have mercy on your soul otherwise.)

I'm Canadian. I think that's come up before, but I wanted to put it out there again, as Tim Horton's is a national institution to our older generations (of which I am most certainly a member). I mean, it's been an American company for, oh, twenty years now or something, and stopped selling doughnuts with coconut shavings thirty years ago, so, really, why would anyone care? ;–) The fact is, “double double” is (still?) part of our lexicon (meaning coffee with two portions of cream and two portions of sugar, I know you were dying to know).

And Tim Horton's is in the news. Well, in the Financial Post. For avidly tracking the users of its app. I was shocked by the bit on server-side location processing, or the tools at the command of third-parties in the event of you preventing an app from accessing your GPS data. The type and number of events generated around user movements — including confidence factors around why the user might be where they are — is chilling. I mean, this makes loyalty cards mickey mouse; an increase in customer data of, what, tenfold? More?

And so, folks won't actually be rolling up any cup rims in the future, it seems. (Plenty of Canadians' favourite new car dream.)

End of Day 36

jlj@Fosstodon #100DaysToOffload

I'm writing this as part of the 100 Days To Offload project; join us at: https://100daystooffload.com/

Full horizon

Well, my next exam is booked: Splunk Enterprise Certified Architect, in a week's time. Closed book, as per usual, but this one is longer than earlier ones: 90 minutes. The blueprint is pretty intimidating, frankly; especially when you consider that the practical lab test I just finished purposely doesn't include search head clustering.

I need to brush up on so much stuff this week, but the bogeyman in front of me today is search head captain elections; specifically, what happens when one of two sites falls over, taking the current captain with it, and the remaining site has an even number of search heads. I remember the instructor said it's actually best to have a third (logical) site in this scenario with an additional search head, to break the inevitable deadlock in the new election.

But I don't understand why the deadlock occurs in the first place. It just stuck in my head because the instructor said there's a myth circulating that you can only have an odd number of search heads in a SHC; not true, but you do have to be careful. More work to be done.


Then it'll be on to writing more Terraform code for our lab environment. Who said furlough was bench time? As long as it's primarily about my learning, there's no shortage of things to be done.

I need to start planning some exercise in my routine, though. I'm convinced that's why I'm sleeping so poorly. I could put my head on my desk right now and be asleep in five minutes. This is partly because the house is so quiet. Today is my daughter's first full day at nursery. I can't remember the last time I was surrounded by so much silence that I wouldn't break for fear of waking a child.

End of Day 35

jlj@Fosstodon #100DaysToOffload

I'm writing this as part of the 100 Days To Offload project; join us at: https://100daystooffload.com/

Making oneself heard

Another day with little time behind the keyboard: my partner goes back to work tomorrow (remotely), so we made sure to have plenty of family fun in the garden. My daughter — 14 months now — may not have words yet, but she makes her wishes known: from the time she gets up until I'm singing her to sleep, she's asking to be picked up so she can point at everything around her. And if you don't make the noise she expects for, say, that painting of a ship, or, say, starting singing an In The Night Garden theme for the character she's picked out on her lampshade, prepare for an earful.


I did have some success today, however: my RSS feed seems to be displaying properly in Conky now. After a bit of research, it seemed likely that I was running up against Reddit's very low tolerance for bots; it was suggested that distinguishing the call with a user-agent string that included my username might help. For this, I switched back to my bash script — well, it's the one written by Bill Woodward that seems to have made the rounds — and modified it to take an optional user-agent string that it would then add to the curl command using the -A flag.

And I haven't seen “Too many requests” or a blank section since.


dvavasour@fosstodon.org wrote a nice little post on Dasher today. I hadn't heard of it before. I'm really impressed with what I've seen so far. It almost makes me wish I was back in my old job. (Well, not really; that was backbreaking. Maybe if I was working with the Augmentative and Alternative Communication devices.) It seems like a lifetime ago, but I did work for National Star as a facilitator for five years up until the beginning of this one. In a nutshell, you're there to help the students — who often have very complex disabilities — advance in their chosen college programme; everything is individually tailored.

One of the students I worked with a lot used an AAC device mounted to his wheelchair to communicate. Through the use of paddle switches in his headrest, he could select concepts and then words as the device cycled predictably through a grid of icons. Cognitively, he could converse with ease, with anyone. But he needed a lot of lead time, if he had questions he wanted to ask or statements he wanted to make. Constructing the sentences was very time consuming. He had to deal with some athetoid movements, but, usually, once he was comfortable in his chair, these were infrequent. I bet an eye-gaze device running Dasher would speed up his composition process tenfold, even accounting for some sort of error-checking process that would allow him to fix mistakes.

I'm going to see whether my former colleagues are aware of Dasher.

End of Day 34

jlj@Fosstodon #100DaysToOffload

I'm writing this as part of the 100 Days To Offload project; join us at: https://100daystooffload.com/

Debugging, and tech manuals

Didn't spend much time at the keyboard today. Chose to watch Picard this evening instead. (Don't worry; no spoilers.) What time I did spend there was mostly consumed by trying to debug my Conky config; yeah, I spoke too soon yesterday.

It seemed like my RSS script was being called too frequently; I'd grabbed the code from elsewhere, and “Too many requests” kept appearing in the window. I decided to switch back to the native RSS support, but that seemed to consistently return nothing. After playing around with Epsi's Lua code for debugging Conky, I confirmed that it too was eliciting the same response from Reddit (in the form of a 429 status in this case).

That's as far as I got because, while thinking about another RSS feed I might inadvertently abuse as part of this debugging process, I suddenly remembered LWN.net. I started reading it back in the late 90s — right around its inception, it seems, in 1997, although I didn't remember that — and then just stopped at some point, I guess; much like Slashdot. I couldn't believe it was still going, and I spent quite a while reading the archives. It, unlike other concepts on the 'net in the late 90s, has held up very well.

I read that, while they weren't struggling (yet), many of their former subscribers cited losing their jobs as their reason for cutting back. Well, I bought a year's subscription on the spot. That sort of experience, of quality, is effectively irreplaceable. I read a comment on HN the other day about that person's work at O'Reilly in its heyday. I bloody loved those books. Unix in a Nutshell? Advanced Perl Programming? All twenty or so of the X Window System bleedin' encyclopedia? With the exception of the latter — which was always scattered around the office as well as any treasure hunt — these bibles never left my desktop; never even got put back up on my shelves.

And, as much as I love Jeff Atwood, Stack Overflow killed them. Not directly, obviously, but as a consequence of us, collectively, failing to value experience, expertise and, just, hard work. The (wo)man-hours that went into these books — as laid out by the commenter — were staggering; far exceeding the most comprehensive entry I've seen in Stack Overflow. I used to believe that reputation systems would save the world; the cream they curated would be indistinguishable from god-sent.

I've come to my senses.

Simply put, I think there's a lot that collaboration — and the tedious grind of peer review and an editing department — bring to the table that reputation systems can't replicate; or at least the ones I'm familiar with. And that's nothing against them; I've seen some brilliant ones, that do indeed curate top-shelf content. But how did we decide they would replace our reference material, our ground truth in technology? Well, I think the answer is that we didn't; we just failed to step in when it became clear that they would perish without adequate investment.

When did this become a rant? I need to hit the sack.

End of Day 33

jlj@Fosstodon #100DaysToOffload

I'm writing this as part of the 100 Days To Offload project; join us at: https://100daystooffload.com/

RSS & Org-mode

This post will be a bit like ratatouille: thrown together with what's sitting in my notes file, as I've spent most of the day relaxing. My daughter had a longer orientation day at nursery today — which went very well — allowing my partner and I some time alone before she goes back to work part-time next week. (We did some reading and some cleaning; I know, I know, but the point was, we had — relatively speaking, anyway — near-infinite choice, and chose something. Pure luxury, as parents in the Fediverse well know.)

My Conky config is, dare I say it, done for now. I'm really happy with for the weather — augmented with my script grabbing the UV index from the Met Office — and, thanks to Reddit really continuing to embrace RSS, I'm much happier with the news section too: I had been using a (pretty ugly) desklet, but Reddit's support of what they've coined multireddit means I've got the latest from /r/Linux & /r/FOSS beautifully integrated in my minimal set-up with a simple script.

Why is RSS dying? I cry a bit inside every time I see a Subscribe text field for email.


I'm not quite ready to throw my hat in #screenshotsunday, however. I'm still using the notes desklet for my to-do list, which makes me sad. Syncing isn't a huge issue at the moment — especially in COVID-19 times — but I've got it pointing at a file on Dropbox anyway. I had been using Keep, but: a) I'm trying to pull my life out of Google, and b) I don't want to have to fire up a browser just to see and change my lists.

I've got space in Conky; I want it there.

I used Trello a long time ago, and while it does have a REST API, I want to go FOSS, if possible. Wekan has jumped up the ranks, after I randomly saw SuperDicq@cdrom.tokyo plug it yesterday. (There's a handy comparison on GitHub, actually.) Today — I can't even remember how I got on to this; must've specifically searched for Org-mode, as it's tied up in lots of Roam discussions — I'm thinking that the ease of exporting from Org-mode might be the way forward. Particularly as I could also see using it to publish here, and there are zettelkasten options for Emacs as well. A one-stop shop, dare I hope? More research required.

End of Day 32

jlj@Fosstodon #100DaysToOffload

I'm writing this as part of the 100 Days To Offload project; join us at: https://100daystooffload.com/

I passed!

Got the confirmation this morning. Didn't cover myself in glory by any stretch, but I got some solid feedback to work on, and, most importantly, cleared the hurdle. Now it's only the exam between me and the title of Splunk Architect.

I really feel like I've reached the limit of what I can take by firehose. I've gotten by with informal methods and procedures to date, but, most recently, that was only with the benefit of an insight from my manager's stunningly-thorough runbook. That said, this realisation may dovetail nicely with my zettelkasten project, although that would be mean fully committing to the pursuit. On that note, a place has opened up on the Roam waiting list. However, you only get a certain number of days free now before the not-insignificant subscription fee of $15/month (IIRC) kicks in. My nascent plan is to really kick the tyres on Obsidian, and then, with my well-practised workflow, try Roam. A potential snag is this window to Roam closing in the interim, of course.


As if I needed another lesson in humility after the Architect lab, I spent longer than I care to admit debugging a 'problem' with tmux. Spoiler alert: the problem was solely between my keyboard and chair. In my defence, I was attempting to learn it for the first time. (Oh, how I wish I'd had it for my Architect lab, jumping around between eight different ssh sessions.) It looked like the key bindings weren't working: Ctrl-B, changing it to Ctrl-backslash — I can't even find a shortcut to that character in the current layout on my netbook; the nail in the coffin for that idea — had no effect; like the key binding was being seized before tmux got a look in. Enough with the suspense: have you guessed what I did? I didn't release Ctrl-B before trying to execute any of the various commands I tried. #facepalm

As with all learning, however, should you seek it out, a silver lining will usually present itself: showkey -a was new to me, and echoed all my keystrokes perfectly to STDOUT, you now won't be surprised to learn. Also, bind -p stunned me by showing the number of key bindings in bash by default. I was reminded of a few gems too: Ctrl-A for the beginning of the command line; Ctrl-E for the end. I was saving loads of time with Ctrl-R already, but these will certainly be in daily use now as well.

End of Day 31

jlj@Fosstodon #100DaysToOffload

I'm writing this as part of the 100 Days To Offload project; join us at: https://100daystooffload.com/

Break

I decided to stick with the plan to take a week's leave, even though the wedding we were to attend has been postponed. (Because of COVID-19; they're still happy together, last I heard.) I need the time.


I've decided to make some changes to the site; let me know what you think. It's part of signing up to a free trial of a pro account on write.as. I'm lucky enough to be able to support the people who make the Internet a better place, so I've stopped making excuses.

I didn't go through with deleting my bookface account, in the end. My partner was understandably saddened by the idea of losing all the associated photos, and comments on posts like our birth announcements. And I'd forgotten that I'd scanned and posted loads of my mum's old photos for the enjoyment of her circle. So the account has been reinstated, but locked down. Only they can see it, and I won't be posting anything new with it. This feels like a good compromise, and, happily, I don't feel any pull to go back to that space (for now).

End of Day 30

jlj@Fosstodon #100DaysToOffload

I'm writing this as part of the 100 Days To Offload project; join us at: https://100daystooffload.com/

I've been furloughed

It's official now, so I'll simply say that I've been furloughed. I'm certainly not alone, even in my company, and I'm still better off than many. It's worrying, but that isn't why I've been away.


I completed my Architect practical lab yesterday. (Or around 3am today, more precisely. I needed 18 of the 24 hours, in the end.) That's my shorthand for what Splunk calls their Splunk Enterprise Deployment Practical Lab Public Class, by the way. Quite a mouthful. It'll be a few days before I get my results. There isn't much feedback, apparently. And, they are completely upfront about it being a subjective evaluation, just as it would be with a customer, waiting to be paid.

I'm disappointed, regardless of the outcome. The whole process has highlighted some glaring gaps in my knowledge, particularly around apps and technology add-ons. I was deep on trying to extract fields from syslog before a colleague pointed out that putting the *nix TA on my search head would do the job for me. (I'd only installed it on the universal forwarder that was gathering the data.) And my regex is pitiful: I tried to use the Add Data wizard on a custom XML data source, and was so thrown by the stream of gobbledygook it spat out that I lost hours and never properly parsed the stuff, in the end. I tried to justify that point, amongst others, in my report to the 'customer'; we'll soon see how it all went down.

It was a real blow to my ego. Especially now, seeing my manager finish the same lab in seven hours today. I'm so impressed by her intelligence, work ethic and thought process, but, try as I might, I still use moments like this to knock myself down. Ah, well, I'm a work in progress, as we all are.

End of Day 29

(I know I've missed a few actual days, but I've decided to ignore the gap.)

jlj@Fosstodon #100DaysToOffload

I'm writing this as part of the 100 Days To Offload project; join us at: https://100daystooffload.com/