HNHacker News
TopNewBestAskShowJobs

PeterWhittaker

2,211 karma · joined April 27, 2009

submissionscomments
PeterWhittaker··on Programming Used to Be Free
I've been doing this almost 40 years and have never had to pay for either.

Now, if you don't find gcc and neither of vi (and later vim) or emacs usable, well, let's not go there.

And the tools, they just keep getting better. Now I have both clang and gcc, and so many wayy-cool vim plugins to choose from.

I still pay for good hardware, but thanks to Linus and his ilk, I barely need to do that anymore.

PeterWhittaker··on Alpine Divorce: A Hike That Ends a Relationship
Thank you for forcing me to clean my keyboard. </s>

:->

PeterWhittaker··on BlueHammer abuses Windows Defender's update process to gain SYSTEM access
Site renders great for me, iOS Safari with blockers; text selection works fine.

Yeah, I know, karma hit coming, but the other comments are so counter to my experience (I quite like the page and content) that I could not not comment.

PeterWhittaker··on The Blueprint of a North Korean Attack on Open-Source
What if they are? Why should people attempting to browse securely be punished?
PeterWhittaker··on Perfmon – Consolidate your favorite CLI monitoring tools into a single TUI
Looks pretty good, but would love to know this compares to bottom (btm), featurewise. Thanks!
PeterWhittaker··on Turns out your coffee addiction may be doing your brain a favor
Especially when you drizzle them with balsamic vinegar!
PeterWhittaker··on Just make it hard to fail
Fascinating. Anecdata, sample size 1. If it works for OP, fantastic.

Definitely does NOT work for me.

My recipe, such as it is:

1. Be gentle with myself every morning. I may wake vaguely human, but consciousness and acuity require coffee, word games, ablutions, and point 2.

2. Dog walking, aka DW, aka Diagnostic Wandering, allows me to breathe fresh air, let my mind wander or perhaps let it focus. Most of the best code I've written in the last 4 years has been DW code. All of the weird bug discoveries have been DW discoveries. Most - and almost all - of my discoveries about how ND I am and how I really work have been DW discoveries.

3. Recognize which brain I have today, and select issues/workload based on that...

4. ...unless I really, really must, MUST, work on something specific, in which case force it, knowing there is a cost.

5. Recover from such costs as quickly as possible, but as gently as possible (cf #1, #2).

6. When off-roading with my very good friend the CTO, do NOT talk about work...

7. ...unless we both agree something needs 30-90s, after which resume #6.

8. Watch football all day Saturday, if possible, preferably Liverpool, but not necessarily. Detach. (If Saturday is impossible, e.g., family obligations, substitute Sunday.)

9. Read in bed every night before turning off the light, regardless of how tired I am. Subject is irrelevant (current bedside stack: LotR (again), two books of category theory, Ulysses). One sentence, one paragraph, one page, or as many as need be, until I start to drift off. If my GF has to collect the book from chest and turn off the light, so much the better! :-> (She's a night owl, there is no cost and there is much joy to her in this.)

10. Endeavour to start the bedtime process between 2300 and 2330 as often as possible - but see #1 re gentleness. DO teeth. EVERY night. REGARDLESS.

11. Nap occasionally. Ah, my 60s.

12. Recognize when #11 is a MUST, not just a SHOULD.

Let the brain cook and stew and bubble and backburn whilst doing other things. As effective as DWs for things that are more "R" than "d".

PeterWhittaker··on WFH is becoming a benefit again
This comment <s>, maybe?

I guess, then, that one of the big benefits of my daily is that we don't swing wildly between WFH and RTO with whatever trend/fashion/panic/wind/fart is in the zeitgeist/ether/air/media?

With the exceptions of the occasional client meeting that must be onsite, or the occasional conference, and our monthly team lunches, I've been 100% WFH since mid-2020, not pandemic related (I was mostly WFH for since sometime in 2019 (waves vaguely), and it was changing from consultant to senior wage slave that sealed the deal).

Just like the rest of my team. OK, sure, we're small, and OK, sure, perhaps we use the available communication channels more effectively than others seem to, and OK, sure, while some of us are friends, I don't think any of us make the category error of assuming that coworkers are supposed to double as our social life, but seriously, if people are effective working from home, and we are, then let them.

The world started WFH, we changed nothing. The world started RTO, we changed nothing. The world started complaining about gas prices, well, those of us who own trucks and/or off-road did too, but we changed nothing about how we work.

Triple the price of 1Gbps fibre to the home and we might get a bit more upset. </s>

PeterWhittaker··on Torturing Rustc by Emulating HKTs
Like I said to a friend, I know just enough category theory to know that I do not understand. Perhaps upon Nth reading.
PeterWhittaker··on NaN Is Weird
My guess is that no one ever bothered to define hash(nan), which should, IMHO, be nan.

nan isn't anything. It's an early attempt at None when no/few (common) languages had that concept.

That python allows nan as an index is just so many kinds of buggy.

PeterWhittaker··on FreeBSD Capsicum vs. Linux Seccomp Process Sandboxing
Interesting article, but it compares apples to a fruit stand: The approach could be improved by comparing Capsicum to using seccomp in the same way.

Sometime ago I wrote a library for a customer that did exactly that: Open a number of resources, e.g., stdin, stdout, stderr, a pipe or two, a socket or two, make the seccomp calls necessary to restrict the use of read/write/etc. to the associated file descriptors, then lock out all other system calls - which includes seccomp-related calls.

Basically, the library took a very Capsicum-like approach of whitelisting specific actions then sealing itself against further changes.

This is a LOT of work, of course, and the available APIs don't make it particularly easy or elegant, but it is definitely doable. I chose this approach because the docker whitelist approach was far too open ended and "uncurated", if you will, for the use-case we were targeting.

In this particular case, I was aided by the fact the library was written to support the very specific use-case of filters running in containers using FIFOs for IPC, logging, and reporting: Every filter saw exactly the same interfaces to the world, so it was relatively easier to lock things down.

Having said that, I wish Linux had a Capsicum-equivalent call, or, even better for the approach I took, a friendlier way to whitelist specific calls.

PeterWhittaker··on 19th century silent film that first captured a robot attack
The actual title of the short uses the word "automate", French for "automaton"; I suspect NPR simply used the more familiar word in their headline for clarity.
PeterWhittaker··on Libxml2 Enterprise Edition (AGPL, from the previous maintainer)
> Sorry, we don't accept code contributions and direct you to the original libxml2 project.

This has me puzzled to the point of being dumbfounded: If libxml2-ee has fixed many security and other flaws in libxml2, then what's the point of directing people back to a project that is relatively flawed?

Licencing it as AGPL is also interesting, since the original was MIT, though I'm not sure they've worked out all of the kinks, given this example from one of the M4 files:

  # LICENSE
  #
  #   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
  #
  #   Copying and distribution of this file, with or without modification, are
  #   permitted in any medium without royalty provided the copyright notice
  #   and this notice are preserved.  This file is offered as-is, without any
  #   warranty.
PeterWhittaker··on The Eternal Promise: A History of Attempts to Eliminate Programmers
> formulas. We aren't speaking latin here.

Define "here", please! Perhaps your "here" and mine differ, but the view from my here is that while all three plurals are generally acceptable, formulae is the correcter double plus good spelling for this context.

PeterWhittaker··on What AI coding costs you
Re determinism: that's what we'd like to believe, but it's true only if we redefine input to include overall build and execution context, and the latter is generally unreproducible. Over the last few years I've seen plenty of subtle bugs, some caused by UB, some caused by interactions with the overall execution environment, that resulted in mostly correct but sometimes wild and haphazard results, all for the same "input".

Once these bugs were fixed, things became deterministic, but to say that all software is deterministic is to assert some level of programming, build, and operational consistency that is often achievable with great effort.

Re gcc hacks: nope. No gcc'isms anywhere in the code, all warnings enabled, no warnings produced, just one case where a field is not updated in one very specific set of circumstances. Thanks for the suggestion, but that was one of the first things we thought of. There is a slight chance that it is actually a clang/llvm call stack depth bug, but the effort to reproduce that outweighs the impact of the bug, what with one thing and another not relevant here.

UB -> occasional non-determinism.

PeterWhittaker··on The Eternal Promise: A History of Attempts to Eliminate Programmers
Thoroughly insightful take!
PeterWhittaker··on What AI coding costs you
I enjoyed the article, though I do have to pick nits with:

> Software used to be deterministic

Ah, someone fortunate enough to have never coded a heisenbug or trip over UB of various causes.

I've written plenty of well structured, well thought out mostly-deterministic software, then spent hours or days figuring what oversight summoned the gremlins.

(There is one low priority bug I've occasionally returned to over the last two-three years in case experience and back-burner musing may result in insight. Nope. Use gcc, no bug, use clang, bug, always, regardless of O level, debug level, etc. Everything else, all of it far more complex, works 100% reliably, it's just that one display update that fails.)

(It occurs to me that that is a bad example, because it IS deterministic, but none of us can pinpoint the "determiner".)

PeterWhittaker··on The Eternal Promise: A History of Attempts to Eliminate Programmers
One important and often overlooked democratization is spreadsheet formulas: non-programmers began programming without knowing they were, and without concern for error and edge cases. I cannot find the reference right now, but I recall seeing years ago articles about how mistakes in spreadsheet formulae were costing millions or more.

I see an analog with AI-generated code: the disciplined among us know we are programming and consider error and edge cases, the rest don't.

Will the AIs get good enough so they/we won't have to? Or will people realize they are programming and discipline up?

PeterWhittaker··on Time-Travel Debugging: Replaying Production Bugs Locally
Interesting. I built a sort-of-similar system for executing a series of linked, serially-dependent system commands from the TUI used to manage some of our secure appliances. It made writing and debugging such sequences much easier: each command was represented by a struct containing optional pre, post-success, and post-fail log and status line messages, where status could simply default to log.

It meant that the user received meaningful short updates as things progressed, with detailed information in system logs.

This made it much easier for testers and users to report bugs and for developers to understand what to look for in logs.

PeterWhittaker··on Show HN: Respectify – A comment moderator that teaches people to argue better
Huh. Commented upon echo chambers and cults and was told "Request failed: fetch failed". Tried a private session as well, just in case my previous UBI comments had polluted things, but no love. Was it the length? FWIW, here's my comment....

A great many words surround what seem to me to be red herring arguments and arbitrary definitions and groupings, with the word cult appearing in the article precisely 8 times without any justification for the statement in the headline. Moreover, the sentence "We can pop an epistemic bubble simply by exposing its members to the information and arguments that they’ve missed" seems woefully naive: By the definition included in the article, traditional views re the roles of women or blacks in society would be epistemic bubbles and not echo chambers, and women's right were not advanced and slavery not eliminated through the bringing of facts, but through long, arduous moral struggles to convince at least a majority that women and blacks merited the same rights as men and whites.

But it liked my comment on UBI and potential cost reductions through elimination of fraud detection and mitigation, so obviously it does things well. 1/2 /s? :->

PeterWhittaker··on Building a TUI is easy now
There are some applications/systems for which certifying bodies forbid the use of web management because of vulnerabilities in both the protocols and the clients and servers. For example, in my daily, several national cyber organizations (NSA, CSE, GCHQ, etc.) have such direction. That's why our main product line is managed using a TUI accessed at the local console or over SSH (with very, very carefully curated SELinux MAC, among other things).

Having said that....

If one is willing to build one's own HTTP server with integrated MAC, etc., and is able to demonstrate mitigations against known vulnerabilities, one may be able to get the certifying bodies on board. Time will tell.

Yes, this is very niche, but TUIs are in general niche.

PeterWhittaker··on Any application that can be written in a system language, eventually will be
While I still struggle to think in Rust after years of thinking in C, it is NEVER the borrow checker or lifetimes that trip me, it's the level of abstraction, in that C forced me low level, building my own abstractions, while Rust allows me to think in abstractions first and muse over how to implement those idiomatically.

What did it for me was thinking through how mutable==exclusive, non-mutable==shared, and getting my head around Send and Sync (not quite there yet).

AI helps me with boiler plate, but not with understanding, and if I don't understand I cannot validate what AI produces.

Rust is worth the effort.

PeterWhittaker··on You have to know how to drive the car
Actual title: You Have to Know How to Drive the Car.

Actual theme: LARGE tech companies suck.

Declared subject: you have to know how tech companies work

Actually subject: you have to know how large-and-or-disfunctional-and-or-sales-or-finance-bro-led-companies work.

Tagging @dang re title.

PeterWhittaker··on First, make me care
Perhaps I am too much of a curmudgeon, but the example first sentence made me not care at all - not about Venice, but about the writer's approach, which seems to want to conjure breathless mystery about something I could easily look up on Wikipedia (or read in tl;dr comments in this thread).

It ISN'T Venice you need to make me care about, it's YOU! Why should I spend any of my time on you?

A good first sentence should make me care about your perspective, at least for non-fiction about subjects well-studied.

Fiction, obvs, differs. Scalzi's Old Man's War had such a great first sentence I devoured the series.

PeterWhittaker··on FIPS dependencies and prebuilt binaries
Definitely false, at least historically. The original FIPS only required HW at levels 3 and 4, "required" in the sense that levels 1 and 2 were quite doable in software (level was/is no authentication to the CM, letting it be protected by the host; level 2 was/is a form of basic authentication, e.g., encrypting private keys under a key derived from a password).

I was part of a team that had multiple level 1 and 2 certificates for software-only CMs in the 1990s, both 140 and the second edition, 140-1.

PeterWhittaker··on Douglas Adams on the English–American cultural divide over "heroes"
Exactly! Another, semi-related difference between the cultures: When Alexander chooseEitherOrBothOf(provided instructions, gave orders) during the Sicilian campaign, American generals took them as orders and did them, sometimes to their detriment, while British generals took them as intent/direction, and asked questions.

Eventually, the allies realized they had very different command cultures and learned to work together. It may be that Normandy, et al, would have been far different if they hadn't have figured this out in Sicily.

PeterWhittaker··on Douglas Adams on the English–American cultural divide over "heroes"
The article and the comments herein remind me a conversation a few years ago with an ex RAF pilot who had done a few exchanges with the USAF. Among other things, pilot/personnel evaluations in the two organizations were worlds apart. In the RAF, at least during his time, they were what I would expect, more or less factual: Bloggins is good at X, needs to improve Y, excels at P, shouldn't do Q at all.

Meanwhile, in the USAF, anything that could even be perceived as negative was a career killer, so ratings started at mildly superlative and went up from there: Bloggins is an X top gun, is very good at Y, walks on water doing P, and is good with Q.

YMMV, of course, those are my recollections of beery convos with a former Tornado jockey.

PeterWhittaker··on Douglas Adams on the English–American cultural divide over "heroes"
I'd argue that Coe is more than competent, just, you know, detached most of the time. Lamb always knows what needs be done, just never shares, and often lets things happen until what needs be done happens on its own or is inevitable.

Coe has extraordinarily high SA and makes decisions immediately. They might seem impulsive, but when he acts, it is always with forethought.

(Yeah, Coe is our favourite character.)

PeterWhittaker··on How I learned everything I know about programming
As a math loving programmer who acts, I can assert with confidence that both programmers and mathematicians are downright hoarders compared to theatre people. If you are lucky enough to enter that world, be prepared to be overwhelmed.
PeterWhittaker··on Ask HN: If you had $10M in the bank, would you still show up to your job?
How is that dissonance? The best you can hope for, in order, are: 1) not having to work, for whatever reason, and having personally meaningful interests with which to fill your time; (two-way-tie) 2a) not having to work, 2b) having to work and having a job you love that means something to you; 3) everything else.

We require sustenance and shelter and sanitation and a few other things. Those require resources, one way or another. If one has to perform some activity in order to acquire the resources necessary to those needs, then one might as well do something one enjoys, if one can.

I absolutely LOVE my job (WFH systems programming in a challenging space (cross domain)), have the best team (my boss, the owner, is a friend from way back in another cyber co; my closest colleague is a great friend from off-roading; my other colleagues are all great people, with fantastic younger team members who break every cliché and trope about their generations; etc., etc.).

And if $10,000,000 showed up in my bank account tomorrow, I would wind down my work as smoothly and quickly as possible, to not leave them hanging, carry on consulting occasionally for them, when needed, and spend a year working on my house and Jeep and learning category theory and walking the dogs and watching as many football matches as I could (heck, with that money, maybe I even would spend the $50/month to get FA Cup games on top of what I already have).

Once the house was to my - and my GF's liking - and once the Jeep was again the beast it once was, and a bit more (portals!!!), well, there would be still be football to watch and math to learn and dogs to walk. Maybe we'd move somewhere we could foster many, many dogs? Ah, the mind reels.

I might even upgrade my phone or monitors.... (I'm a cheap bastard. The dead pixels on the phone screen are a PITA, but they only really impact Quordle.)

← PreviousPage 2 of 34Next →