pmjordan

Joined 19 years ago

Karma
7,982
Submissions
2,488
Member since
Jan 21
British-Austrian software developer, happiest when on a travel adventure.

While looking for the next big thing, I do contract/consulting work; I prefer lower-level stuff, such as device drivers/kernel hacking, real-time graphics and game tech.).

You're welcome to email me about anything, and I promise to reply if you stick to one topic or question and it isn't too open ended. Specifically:

I get a lot of email with technical questions that would require me to download and read the documentation for libraries X, Y and Z to answer - please don't do that; instead, put the code that doesn't work (or pseudo-code that you'd like to turn into real code) in the email, and quote the prototypes for any used APIs, ideally deep-linking to their documentation just in case I do need to look at it.

Obviously, if you're planning to pay me for my help and advice as a consultant you may ignore the above. :-)

website: http://philjordan.eu/

email: phil+hn at philjordan dot eu

fedi/mastodon: @[email protected] https://mstdn.social/@pmdj

github: https://github.com/pmj

View on Hacker News

Recent submissions

Comment · 6 years ago
This reminds me of the time we wanted to ride the Amtrak Coast Starlight from Seattle to San Jose on our trip to the US in 2014. It's supposed to be a scenic route, and takes about 24 hours for that leg. (The train carries on to LA IIRC.)

When we got to the station in Seattle and checked in our bags they told us the train was at least 5 hours delayed, so we should go do something else for 3 hours and then come back for a status update. We also left our mobile number and email address with them in case there was anything else. (Though in theory they should already have had these from the ticket booking.)

Anyway, we went off to a café round the corner (it was an apparently rare snowy day in Seattle - hence the delay, plus we didn't want to stray too far) and had some drinks and brunch.

After about 2 and a half hours later we wanted to stretch our legs and wandered back to the station. Whereupon we were told the train had already left without us… but with our bags, but we could have a refund or take the train on a later day. ️

We only had overnight bags, and an onward journey planned the other end, plus we were now super annoyed so we ended up scrambling to find a flight that would get us there by the next day. That was the closest to the flight time I've ever bought an airline ticket, less than 3 hours I think. It worked out OK in the end, we got our bags from San Jose station the next morning as we'd beaten the train there, though the contents of one of the bags was damaged from rough handling.

Comment · 6 years ago
While unfortunate, this has been the case since Ryzen launched. Ryzen 2000G(E)/U series were Zen-based like Ryzen 1000(X), Ryzen 3000G(E)/H/U series were Zen+-based like Ryzen 2000(X), Ryzen 4000G(E)/H(S)/U is Zen2-based like Ryzen 3000(X(T)).

I suspect they do this because the APUs typically launch half a year after the GPU-less variants and

What's really confusing and unfortunate is that there are some Ryzen 1000 series variants (Ryzen 3 1200, Ryzen 5 1600) that were re-released well over a year after their initial launch and which are actually Zen+ based.

Comment · 6 years ago
Of course, modern iPhones and iPads actually come with fully fledged NVMe SSDs. So it's not really clear why that decision hasn't been revisited - or why Apple hasn't at least introduced some kind of process hibernation which fully restores background processes when switching back.
Comment · 6 years ago
Anno 1800 might float your boat? Or any of the previous games in the Anno series for that matter. The campaign does very much have a story and specific objectives, but the interesting bit is the regular sandbox game:

Turn off pirates and competitors, and either turn off or ignore NPC quests. (There's no penalty to ignoring them, but they sometimes can be useful if you need money.) You'll still have incidents like fires, industrial explosions, disease, and riots, but those are influenced by factors you control, and with well-placed fire stations, hospitals, and police stations you can very much contain them so they're a non-issue.

Comment · 6 years ago
Sorry, can you elaborate? Apple's "A" series CPUs have been out-of-order for years and at least a few years ago had a similar superscalar/ooo structure to Intel's Haswell chips. (Apple poached a bunch of Intel processor designers…)
Comment · 6 years ago
Comment · 6 years ago
If by most, you mean >50%, then you're probably right, but but especially within EU countries, having >10% foreign nationals among the population is common. Those foreign nationals will frequently give birth to equally foreign children, who need to obtain passports whether or not they're planning to travel. (Although they frequently do travel to visit family.)

TL;DR, 1-year-olds with passports are common.

Comment · 6 years ago
> This is bizarre, blame the passport for only having the last two digits and not the computer reading it.

I mean, the passport only showing 2 digits is worth mentioning. But I doubt this 101-year-old got much choice in exactly what format his passport contained his DOB - so the software needs to handle it. So if in doubt (e.g. both possibilities yield an age younger than oldest person on the planet) the software should be asking to confirm the century.

If you want to get really fancy, check the issue date first. If this is before the supposed 20xx birth date, the birth date must actually be 19xx. People aren't issued passports before they are born.

Comment · 6 years ago
DriverKit has only been around since 10.15 so currently it's not easy to correctly support a range of versions with everything so massively in flux and Apple's aggressive deprecation schedule. Writing and maintaining macOS system level software (including drivers, etc.) has generally become a pretty big headache since around 10.13, stuff is constantly breaking due to OS changes and regressions.

This obviously always happened to some extent, but the pace of breaking changes and bugs picked up massively around that time - I think a large part of the problem is that Apple's own developers don't actually need to use any of these features themselves, so they are just dumped onto 3rd party developers in a half-arsed state. I'm thinking of kernel extension authorisation (which was super buggy in earlier 10.13.x releases and still has weird quirks), various user consent additions (there are no APIs for directly checking or prompting for many of the permissions, let alone notifications when the user grants or revokes consent), DriverKit, EndpointSecurity, etc.

Comment · 6 years ago
Someone else on the project experimented with FileProvider during the Catalina beta, so this is all second hand, but it wasn't really suitable for the job - it seemed more designed for having a special folder like the iCloud Drive, and didn't work well with CLI tools. I actually didn't realise it was pulled before the Catalina launch, but that makes sense, I got the impression it was nowhere near production ready.
Comment · 6 years ago
If you are relying on the ability to develop and load specific types of kext in macOS in future, I recommend getting in touch with Apple DTS. (Note that communications with DTS are unfortunately typically under NDA.)
Comment · 6 years ago
VFSForGit is/was not a true file system, it just intercepts file I/O events to dummy files to lazily fill them with content and to log writes so that 'git status' does not have to scan the whole repo for changes.

The macOS port uses the KAUTH listener API, which was indeed deprecated with 10.15.

Comment · 6 years ago
I was the external contractor brought onto the project as the project's macOS kernel extension expert; my contract expired in November after the port was put on ice. As far as I'm aware it's no longer being pursued, with sparse checkouts being the new hotness.

I don't want to and can't speak for Microsoft, and I did not make the final decision, but:

* The user space alternatives (NSFileProvider, EndpointSecurity) are not up to the job for various reasons.

* Porting everything to the much more involved VFS KPI would have been a large amount of work, and with a near-100% risk of having the rug pulled out under it yet again.

Comment · 6 years ago
Comment · 6 years ago
There is NSFileProviderExtension, but last I heard it was still a very immature API.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton