@simontatham@hachyderm.io avatar

simontatham

@simontatham@hachyderm.io

Free software developer. Hobby mathematician.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

fanf, to random
@fanf@mendeddrum.org avatar

damnit apple

i'm experimenting with getting my ssh passphrase out of the macOS keychain using Rust

i did some hacking around with the security_framework crate https://docs.rs/security-framework/ so i can get a debug printout of the query and to add a feature

so the query matches the one used by apple's hacked ssh to get the passphrase

GUESS WHAT

Error: Error { code: -34018, message: "A required entitlement isn't present." }

simontatham,
@simontatham@hachyderm.io avatar

@fanf 'entitlement' suggests that your code needs to be a member of the nobility to make this work.

But that can't be right – surely that's for peer-to-peer networking.

mjd, to random
@mjd@mathstodon.xyz avatar

Over the years the word for people who write computer programmers has changed from “programmers” to “coders” and now to “developers”. When did this happen, and why?

simontatham,
@simontatham@hachyderm.io avatar

@mjd 'develop' always strikes me as a bit vague, perhaps intentionally so. It doesn't say whether you're writing a whole new program, or making major changes to one, or just tinkering round the edges. It doesn't even really promise that you're making it better – only that you're changing it over time.

In that respect it reminds me of 'treat' in medicine, which also seems like a word calculated to vaguely suggest 'doing something about it' while carefully not promising any specific result.

simontatham,
@simontatham@hachyderm.io avatar

@mjd well, in fantasy fiction and videogames, doctor-analogues are often called 'healers'. That's definitely a word at the 'promising a result' end of the scale!

simontatham,
@simontatham@hachyderm.io avatar

@unspeaker ah, I was wondering about saying that, but thought it might just be my own bias. Yes, I also see 'programmer' as having a connotation of writing whole programs from scratch.

I also feel as if that's becoming a specialism these days, because there's so much work needing to be done on big existing code bases. You can have a career without writing anything new. (Of decent size, I mean; not counting 100-line utility scripts and the like.)

Hence the use of other words, I suppose!

simontatham, to random
@simontatham@hachyderm.io avatar

Chatting about data structures with colleagues, and one mentioned a "left-leaning red-black tree".

I guess in a left-leaning red-black tree, the algorithms ensure that every node receives a reasonable minimum amount of processing. Whereas in a right-leaning red-black tree, the nodes all just get to compete with each other in a free market.

simontatham,
@simontatham@hachyderm.io avatar

@a thank you, that's not one I'd seen before.

I'd normally use binomial heaps for that merging application (on the rare occasion that I need it at all). Those also have O(log n) worst-case time for a merge. I can't work out in 30 seconds which structure is better, though!

simontatham,
@simontatham@hachyderm.io avatar

@a I have to confess that despite being a huge data-structures nerd in most other respects, I've never quite managed to get my head round how a Fibonacci heap works. I understand what useful properties it has, and why that makes it a good fit for e.g. Dijkstra's algorithm, but how it works just never quite comes together in my brain.

christianp, (edited ) to random
@christianp@mathstodon.xyz avatar

Pals, what's the least egregious TV I can buy today, in the UK?
I want as little "smart" internet-connected nonsense as possible. Not bothered about 4k or massive size, but it should sound and look good.

That is, what's the Brother laser printer of TVs?

simontatham,
@simontatham@hachyderm.io avatar

@christianp depending on your needs, I actually wonder if something sold as a computer monitor might be a good answer! If you can live with all its inputs being HDMI, then a monitor could handle those just as well as an official telly, and wouldn't want Internet.

It wouldn't directly receive broadcast TV signals, of course, so you'd need a secondary bodge for that (maybe via an HDHomeRun).

At least some monitors come with remote controls, and some have OK speakers (like my last Philips).

simontatham, to random
@simontatham@hachyderm.io avatar

Pro tip: the opposite condition to (foo < bar) is not (bar > foo).

But it's surprisingly easy to stare at it for five minutes and not see the mistake!

OscarCunningham, to math
@OscarCunningham@mathstodon.xyz avatar

I have a question about the aperiodic spectre tile (or the hat/turtle).

I know that the proof of aperiodicity works by showing that the tiles must fit together in a hierarchical structure that eventually repeats itself at a larger scale. But the larger units aren't literally scaled copies of the spectre. I also know that there is some freedom as to how you draw the edges of the spectre.

Is there a way you can draw the edges that allows you to literally use spectres to cover a larger copy of themselves? If so, is this way of doing it unique?

simontatham,
@simontatham@hachyderm.io avatar

@OscarCunningham I'm pretty sure you can transform the hats' HTPF metatile system into a form where each higher-order metatile exactly covers a set of metatiles of the next order down. (Use the 'converged' metatile shapes; use a non-overlapping version of the expansion rules; do some horrible limiting thing that fractalises all the metatile edges.)

But then you still have four different fractally-shaped metatiles, and no way to decompose those into individual hats that are all congruent.

simontatham,
@simontatham@hachyderm.io avatar

@OscarCunningham in fact, here's the paper I vaguely remembered seeing but couldn't put my hands on yesterday, which does pretty much what I said. https://arxiv.org/abs/2305.05639, diagrams on pages 7 and 8.

simontatham, to random
@simontatham@hachyderm.io avatar

Arrgh, Outlook!

"This message couldn't be sent right now. Click for more details."

'More details', Outlook, should mean more details of why the message couldn't be sent. It doesn't mean 'show me the same error message but this time with the full text of the email'. I just finished typing the email. I already know what it says. Tell me what went wrong!

simontatham,
@simontatham@hachyderm.io avatar

@bignose unfortunately, when you're constrained to talk to an Exchange mail server because that's where your email is delivered to, Outlook is still the least bad option I've found as a client. Using any other client via IMAP adds an extra layer of 'impedance mismatch' which outweighs whatever usability advantages the other client would normally have given you.

(And let's not even talk about the mess third-party clients make of Exchange calendaring.)

simontatham,
@simontatham@hachyderm.io avatar

@dwm I admit I haven't tried Evolution in the last decade. I found it very flaky about 15 years ago, but probably it's had some fixes since then.

But part of the problem is that any IMAP client talking to Exchange seems to see a confusing lack of data consistency, with emails randomly appearing and disappearing.

I'd almost rather use the fetchmail approach – download each message once, and thereafter work locally. But then you can only use your local client. Pros and cons.

simontatham,
@simontatham@hachyderm.io avatar

@demoographics that sounds actually interesting, at least for the part where it reads your Outlook calendar and gets the information into a locally usable form. What was your technique for that?

With that part solved, I could use a solution of my choice for the most important thing, namely reminding me when I have a meeting. Then I wouldn't mind opening a browser for all other calendar operations, which are much rarer.

mjd, to random
@mjd@mathstodon.xyz avatar

Take a look at this email and let me know what you think.

http://plover.com/~mjd/misc/Ask%20me%20anything.txt

I have gotten a lot of incoherent and bizarre email over the years, but never anything quite like this.

simontatham,
@simontatham@hachyderm.io avatar

@pozorvlak @mjd yes, I see no reason this couldn't be a real human autodidact with a ~10% baked idea, wanting at least some reassurance that they're talking to someone who won't burst out laughing before they go to the effort of typing up their thoughts. I've had similar communications, before generative AI was a thing.

(Is that an OSS thing particularly? I thought it was good sense whenever there's a long round trip time. E.g. intracorporate email between time zones has the same property.)

fanf, to random
@fanf@mendeddrum.org avatar

2021 retro-link! http://justinjaffray.com/query-engines-push-vs.-pull/ - Query engines: push vs. pull.

simontatham,
@simontatham@hachyderm.io avatar

@fanf that link automatically redirects to the same thing but with https as the scheme, which seems sensible. I wonder if your retro-links in particular would benefit from an automated check for that?

simontatham, to random
@simontatham@hachyderm.io avatar

Famous apocryphal story: cryptographer tells amateur cipher designer 'In each of these 3 envelopes is an attack against your cipher. Open one and check it. Then find the other two by yourself.' Amateur is never heard from again.

Surely the cryptographer in this story could have cheated by putting the same attack in each envelope!

Done properly, there should have been 4 envelopes. Open any two, check they are (a) attacks, (b) not the same as each other. Then go look for the remaining two.

jugglerchris, to random
@jugglerchris@hachyderm.io avatar

I've seen a surprising number of foxes recently, in broad daylight. Including one on my way to work this morning, not far from Mill Road at rush hour.

My best guess is that my orange bike gives off friendly fox vibes... 🦊

simontatham,
@simontatham@hachyderm.io avatar

@jugglerchris a couple of weeks ago I saw a totally fearless fox sitting on a grass verge on the same side of the street I was walking down. It let me stride past within 2m without twitching a muscle.

Big contrast to the ones I often encounter when walking late at night, which see me at the far end of a long alley, go 'yikes, a human!' and hastily nip through a hole in a fence.

This one was also enormous, and had an especially fluffy white beard, which made me regret not having a camera on me.

simontatham, to discworld
@simontatham@hachyderm.io avatar

Whenever I drink fizzy wine, I can't resist making these tiny turtles out of the bottle tops. A bad habit learned from my dad.

I've never yet succumbed to the urge to make four tiny elephants and a #Discworld to go on top of one, but it's surely only a matter of time. Perhaps by 3D printing?

fanf, to random
@fanf@mendeddrum.org avatar
simontatham,
@simontatham@hachyderm.io avatar

@fanf interesting that that post doesn't mention the other way in which sudo is a bad userv, namely the far less controlled amount of user context it passes in to root. I guess you had enough complaints already!

If I had a user I didn't trust with full root and I needed to let them invoke one root service, I'd never do it by giving them access to 'sudo only this one thing', because it's too likely there'd be a way past the 'only' clause.

simontatham,
@simontatham@hachyderm.io avatar

@fanf (though, that said, I do sometimes configure sudo to let me do a few things without a password, but only in accounts where with a password it lets me do any rootly thing I like. I don't really think of that as a security measure – if a serious attacker gets as far as that user account then I've surely already lost. It's more a balance between convenience for common commands, and the 'make you think twice' safety-catch of the password.)

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

I don't know if I hallucinated this but maybe someone recognises it:

I'm sure I once (~20 years ago) saw an arbitrary precision real number library for C or C++ that worked by picking some fixed precision and worked until it produced a result at the required precision, or, if it convinced itself it couldn't achieve that precision, did some kind of backtracking so it could redo the computation at a higher fixed precision. Somewhat analogously to how transactional memory works - and I think under the hood there may have been some unusual memory model.

Sound familiar to anyone?

simontatham,
@simontatham@hachyderm.io avatar

@fanf @dpiponi also spigot doesn't match any of the rest of that description! Exact real calculator, yes; but it doesn't come in library form¹, mostly doesn't work² by retrying calculations from scratch in higher and higher precision, and certainly doesn't do anything resembling transactional memory.

¹ unless you count the not-quite-published Python wrapper module

² a few number-generating classes do redo from start, but it's always a last-ditch fallback when I couldn't think of a better way

simontatham, to random
@simontatham@hachyderm.io avatar

Centuries after Sauron's defeat, Middle-Earth developed motor racing, and Gandalf found his new dream job: driving the safety car.

Unfortunately, he didn't think of applying for that job until he needed a career change, having been fired from the prestigious position of Head of Examinations at the University of Gondor.

simontatham,
@simontatham@hachyderm.io avatar

@claudius and in his spare time, he played bridge, but just couldn't get the hang of the bidding phase.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • thenastyranch
  • magazineikmin
  • InstantRegret
  • tacticalgear
  • osvaldo12
  • Youngstown
  • everett
  • slotface
  • vwfavf
  • rosin
  • mdbf
  • kavyap
  • DreamBathrooms
  • provamag3
  • ngwrru68w68
  • Durango
  • cubers
  • ethstaker
  • khanakhh
  • tester
  • modclub
  • GTA5RPClips
  • anitta
  • cisconetworking
  • normalnudes
  • Leos
  • JUstTest
  • All magazines