HNHacker News
TopNewBestAskShowJobs

PeterWhittaker

2,211 karma · joined April 27, 2009

submissionscomments
PeterWhittaker··on About time: Setting up ctags for Vim and Git
I've been a vim user for decades, a git user for years, but somehow I never got around to setting up ctags - watching my colleagues jump from function call to function definition was one of the few things that made me envious about VSCode.

I decided to set up ctags at last. Like so many things on the Internet, a lot of information was out of date and/or assumed you already knew what you were doing. I struggled more with a few really simple things (like how to tell vim where to find my tags files, since I'd never used them) than the more complex things (which weren't that complex, tbh), with a few detours caused by out-of-date documentation meeting my ignorance head-on.

So, FWIW, my overview of the process, with, I hope, getting-started information missing from other sources.

PeterWhittaker··on [dead]
I left my then-spouse at 51. I had no expectations for any future relationships, I just needed to protect myself by getting out of that one.

(I'm skipping details as a) they are not germane to this post and b) there is no way I could provide enough detail to forestall the inevitable armchair relationship counselling; let's just say it was bad, and I was the last to really recognize it. At any rate....)

I'm 60. I've been with my current partner for over 7 years. She is the sweetest, kindest, most loving, most accepting person I've ever known. Lest one get the wrong idea, she is also strong willed, intelligent, and, when she needs to be, blunt AF. But she rarely needs to be, because when you are with someone like that, it is easy to talk about EVERYTHING.

She was - and continues to be - a complete surprise and breath of fresh air. I work in cybersecurity, when she worked her area was healthcare, and we met through theatre (she's backstaqe, I act, so it works really well). Our meeting and our connection were unplanned, unlooked for, and unexpected for us both (she had been single for a LONG time and was more than happy alone).

One never knows where or when these things might happen.

I know it might seem bleak or desperate, but at 35 you have a full life ahead of you, plenty of time to meet a better match.

Good luck! (And, FWIW, courage, patience, self-care, and hugs! - or a hearty backclap if you prefer....)

PeterWhittaker··on Ask HN: Who here is not working on web apps/server code?
Cross-domain systems programming, mostly C, moving everything in the transfer path to Rust. Unidirectional gateways with OEO diodes and complete protocol breaks, working on FPGA diodes with embedded filtering. Guards, high assurance filters, etc.
PeterWhittaker··on Landlock-Ing Linux
Of course, but you can also restrict those operations. The seccomp whitelist library I wrote only sealed itself after all FDs were opened for specific operations, and the API didn't expose the calls directly. Once sealed, the app got only those operations now specifically allowed.
PeterWhittaker··on Landlock-Ing Linux
So like using seccomp with a whitelist (fairly easy to do) with per-object access rights.

I'd love to see a comparison of landlock to restricted containers.

PeterWhittaker··on The working-class hero of Bletchley Park you didn't see in the movies
For different reasons I agree the article is trash. There is far too much about Turing and Enigma, perhaps because they are better known, but Enigma is to Colossus as the first airplanes were to orbital rockets, but just years apart, not decades, and without thousands learning from each other.

I know, it's not a great analogy, but what the Tunny team did was so far beyond the Enigma team in terms of a) no prior knowledge of the actual system, b) the development of new cryptanalytic techniques, c) the educated guesses as to how the OKW system probably worked, and d) the sheer brilliance and vision of building a bleeding edge electronic system to do the heavy lifting, that its story, and Flowers', do deserve to be better known.

PeterWhittaker··on Floating Electrons on a Sea of Helium
> Liquid helium is also a superfluid, meaning it flows without viscosity.

No. At least not at temperatures > 2.17 K, which is where the phase change occurs. In the range (2.17..4]K, He is just a regular liquid; it is only superfluid in the range (0..2.17]K.

Hard to trust anything in the article when it gets something that fundamental that wrong.

PeterWhittaker··on RTO: WTAF
Ditto, and I find that that socializing is higher value, because it is special: we made an effort to meet (and depending on one's WFH habits, that effort might be considerable), we didn't just shout "pub?" over the partition.
PeterWhittaker··on They Know More Than I Do
The overall tone is one of "father knows best" with plenty of adversarial over and undertones. My favourite example, and perhaps the clearest, is

"For example, if you just asked them to change the text on the “Login” button, and they’re talking about new libraries and rewriting the credential store, there’s a good chance your team didn’t understand what you told them."

There is an equal or better chance that you don't understand or are completely ignorant of dependencies with which they are intimately familiar, perhaps tangled copypasta created ad nauseam in response to overbearing leaders who could not be bothered to understand.

I've seen that more than once.

In that specific instance, it would be more helpful to dive into the why while expressing the surprise you actually feel. It might even be better to go straight to "is there something in there that shouldn't be?"

If your team has history you lack, one of your first jobs is learning the pain points and gaining enough of their trust that they will show you the scars and explain how they were earned.

PeterWhittaker··on They Know More Than I Do
One of the best project managers I know was faced with a similar scenario, and succeeded wildly by doing mostly #2, but with very specific questions: what do you need to work effectively, what is preventing you from getting this.

In most cases, the answers were dedicated time and interruptions.

He trusted the team to know their jobs and worked to insulate them from the chaos around them. They came to trust him when they experienced what they craved, dedicated time, no interruptions.

What I dislike about the original post is that he seems to think his job is to lead and have them follow.

It isn't. His job is to support, to do the things, manage the interactions, that are preventing the team from working effectively.

PeterWhittaker··on Configuration files are user interfaces
I don't understand that either. Considering that it is both well defined and hierarchical, with none of the problems of YAML or JSON (hey, NO is a country, not a truth value), TOML seems like the perfect compromise to me.
PeterWhittaker··on Returning to Church won't save us from nihilism
Nihilism appeals because the root causes are oligarchy and kleptocracy: when you realize you are powerless in the large, the only real alternatives are disengagement and violence in the small. Why violence? In this context, it is the only thing guaranteed to leave a mark.

The third alternative, the difficult way, is social engagement on a path to social democracy, to limiting the reach of autocrats and robber barons, and to defetishizing the first two amendments.

But that path requires lifting one's eyes, abandoning one's out groups, working with all, and foregoing at least some comfort and self advantage.

It is the only way. I doubt I will see it (entered 7th decade recently, feel pretty confident about that).

PeterWhittaker··on Bash Prompts Collection
Absolutely! Not only does filtering on $? provide info (last command interrupted, suspended, good, bad, etc.), it makes the prompt itself a quick way to test [[ ... ]] expressions....

(My prompt is platform aware since codes for some ops differ between MacOS and Linux. The return is colour-coded (green, red, purple, depending on case), and multiline, with git status if in a repo, cwd, and a few other things....)

PeterWhittaker··on Cognitive load is what matters
Quite a lovely word. Learned it from Steinem writing a foreword for a Doonesbury collection in which she excoriated Buckley for his use of the term to describe the fourth panel, the main punchline often having come in the third, in his foreword for a previous collection.
PeterWhittaker··on How did .agakhan, .ismaili and .imamat get their own TLDs?
Oh, that I got. Just made me laugh, since .uk is one of the oldest CC TLDs.
PeterWhittaker··on Cognitive load is what matters
The most important user of my temporary variables, à la "isValid" or "isSecure" is older/later me.

I could be adding a new feature six months later, or debugging a customer reported issue a week later. Especially in the latter case, where the pressure is greater and available time more constrained, I love that earlier/younger me was thoughtful enough to take the extra time to make things clear.

That this might help others is lagniappe.

PeterWhittaker··on How did .agakhan, .ismaili and .imamat get their own TLDs?
.uk was one of the first!

https://en.m.wikipedia.org/wiki/.uk

(Or did I miss an "/s"?)

PeterWhittaker··on Show HN: Envoy – Command Logger
Not at my computer so I cannot share the sauce, but each mahcine I use has a shared bash eternal history - shared between every interactive bash instance on that machine, using nothing but bashisms.

If I think of it later, I'll add it....

PeterWhittaker··on From M1 MacBook to Arch Linux: A month-long experiment that became permanenent
Not at my Mac right now, but I've defined cmd-F[12] to move windows from one monitor to the other.

The trick is to capture the exact words you see in the Window menu, with the exact monitor name, and use those exact words when defining the keyboard shortcut.

A clunky PITA, but once setup, works like a charm.

PeterWhittaker··on Dev Compass – Programming Philosophy Quiz
-1 concrete, +16 human friendly.

Feels about right.

PeterWhittaker··on The "high-level CPU" challenge (2008)
Wait, what?

Oh, yeah. Jeebus.

2008 was SEVENTEEN years ago.

I turn 60 soon. Anything 2xxx just seems like almost yesterday, 199x isn't that far away in mind, and even 198x is pretty close.

I love math (B.Sc. Physics, so more math than anything else) but sometimes math hurts.

Damn you, beloved math.

PeterWhittaker··on Italy's pizza detectives
Makes me think of those who pronounce "coup de grâce" as "coupe de gras". Ew.

Once I tried pointing this out. The speaker said "it doesn't matter". Sure, bud, enjoy your lard. Ew.

PeterWhittaker··on Spotting base64 encoded JSON, certificates, and private keys
In 1989, my Toronto-based team was at TJ Watson for the final push on porting IBM's first TCP/IP implementation to MVS. Some of our tests ran raw, no RACF, no other system protections. I was responsible for testing the C sockets API, a very cool job for a co-op.

When one of my tests crashed one of those unprotected mainframes, two guys who were then close to my age now stared at an EBCDIC core dump, one of them slowly hitting page down, one Matrix-like screen after another, until they both jabbed at the screen and shouted "THERE!" simultaneously.

(One of them hand delivered the first WATFOR compiler to Yorktown, returning from Waterloo with a car full of tapes. I have thought of him - and this "THERE!" moment - every time I have come across the old saw about the bandwidth of a station wagon.)

PeterWhittaker··on Ask HN: What are your favorite one-liner shell commands you use?
git grep -l foo | sort -u
PeterWhittaker··on Ask HN: What are some cool or underrated tech companies based in Canada?
Self-serving mention of https://sphyrnasecurity.com/ - we're a bootstrapped cybersecurity company with two main product lines: cross-domain hardware and GRC/IRM software.
PeterWhittaker··on Writing Code Was Never the Bottleneck
I'd have to more or less agree with a sibling comment, in the sense that writing the code isn't the hardest part (that's the agreement part) but it's not the easiest, either (that's the disagreement part).

I write a lot of code for highly secured black boxes that break a lot of networking rules: undirectional gateways and guards where two things must be guaranteed: one, no matter what, data can flow in one direction and one direction only, and two, no matter what, with the proviso that we cannot control customer operators, the only data flows permitted are those that have been reviewed by two people with independent roles.

The hardest part is understanding the space, how things need to be, what might work, what might go wrong, how a change here might break something there (and this in a system basically running in old-fashioned SELinux "strict" mode).

(There is only so much experimentation and instrumentation possible, because I need to make things work in that closed, tightly controlled appliance.)

The easiest thing is explaining this to others, at various levels: It’s about knowing what to include in the explanation, what to omit, and which analogies are useful, which are harmful. That all comes from repetition and retrospection.

Writing code is somewhere in the middle: once I understand the problem, the code is usually pretty easy, except, of course, when it isn't because oh, yeah, that.

Fortunately, I have a long legged hound. My entire team knows the value of our DWs, dog walks, or, as a colleague recently called it, Diagnostic Wandering.

Two hours a day in the woods, along the rivers, and much becomes clear. Not all, just much.

The really second hardest part is mentally working through the coding alternatives like an adversary, trying to figure which one is best, or, on the whole, given all the layers of defence, good enough.

PeterWhittaker··on Broken by Design: Systemd
Perhaps the fact that it's been 11 years and systemd works pretty well?
PeterWhittaker··on Starship: A minimal, fast, and customizable prompt for any shell
What am I missing? I went to the site, but I can find nothing to suggest why I might want to use this. Are there examples that I've missed, likely owing to having been heads down chasing a pernicious heisenbug all day?

Given that I do like my shiny prompt, which shows me:

  The result of the last command (in green, red, or purple)
  user@host:currentDirectory
  current branch, if in a repo
with the last line showing summary git status, if in a repo, and background jobs, I suspect I might be their market, but I cannot see a why anywhere.

(Green: Last command good, e.g., exit 0) (Red: Last command non-zero exit, with a special indicator if it was interrupted) (Purple: Last command suspended, and few other things)

PeterWhittaker··on Tell HN: Stop using "dropped" to mean "added"
I fall upon the floor, face contorted in uncontrollable guffaws!
PeterWhittaker··on Rewriting Unix Philosophy for the Post-AI Era
Perhaps because it is a dumb example.

  awk '/foo {print $2}' file
does the same thing, without a pipeline.

If one wanted robust rich pipelines, one could use PowerShell (which I used as my UNIX and Linux shell for a while when I was programming in it everyday as part of dayJob).

← PreviousPage 3 of 34Next →