HN user

pmjordan

7,982 karma

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: @pmdj@mstdn.social https://mstdn.social/@pmdj

github: https://github.com/pmj

Posts128
Comments2,314
View on HN
www.bbc.co.uk 13y ago

1913: When Hitler, Trotsky, Tito, Freud and Stalin all lived in the same place

pmjordan
2pts0
www.bbc.co.uk 13y ago

LED at 50: An illuminating history by the light's inventor

pmjordan
2pts0
thenextweb.com 13y ago

Oct 5th deadline to comply with Twitter’s new tweet Display Requirements

pmjordan
1pts0
www.bbc.com 13y ago

Shorter .uk Internet domain proposed by Nominet

pmjordan
23pts34
thenextweb.com 13y ago

CEO of Lookk Steps Down Less Than a Week After Co-Founder Leaves

pmjordan
1pts0
www.eclipse.org 14y ago

Xtend - Modernized Java

pmjordan
3pts0
www.reuters.com 14y ago

Oracle can't copyright parts of Java - court ruling

pmjordan
60pts9
www.bbc.co.uk 14y ago

Shark attacks - A magnetic solution?

pmjordan
1pts0
github.prideout.net 14y ago

Modern OpenGL

pmjordan
2pts0
www.wired.com 14y ago

Facebook Opens Up Hardware World With Magic Hinge

pmjordan
6pts0
blog.xamarin.com 14y ago

Android Ported to C#

pmjordan
516pts165
lists.gnu.org 14y ago

Grub.pxe, ARP-after-boot, DMA, and trouble (another boot-time memory overwrite)

pmjordan
1pts0
www.livescience.com 14y ago

Largest Molecules Yet Behave Like Waves in Quantum Double-Slit Experiment

pmjordan
1pts0
www.bbc.co.uk 14y ago

Singapore pushes 'entrepreneurial nation'

pmjordan
1pts0
rachelnabors.com 14y ago

How to scare off female developers

pmjordan
25pts31
joshrweinstein.com 14y ago

Summer Roller Coaster: moving from NY-CA-NY

pmjordan
1pts0
www.avc.com 15y ago

Internet VC Investing in Europe

pmjordan
3pts0
ldn.linuxfoundation.org 15y ago

What’s up with ARM

pmjordan
124pts6
www.telegraph.co.uk 15y ago

Start-ups launch recruitment fair for 100 new jobs

pmjordan
1pts0
eu.techcrunch.com 15y ago

Hipster Ventures? Lame name for good idea to launch Euro startups in the Valley

pmjordan
1pts0
twitter.com 15y ago

IOS app developer threatened with patent lawsuit for in-app purchase

pmjordan
6pts1
www.marketwire.com 15y ago

Nvidia to Acquire Baseband and RF Technology Leader Icera

pmjordan
3pts0
www.macworld.com 15y ago

OS X update and the MacBook Air's 3D graphics performance

pmjordan
3pts0
www.flickr.com 15y ago

First Australasian Antarctic Expedition (1911-1914)

pmjordan
1pts0
robotics.eecs.berkeley.edu 15y ago

The Möbius Gear

pmjordan
164pts21
www.schneier.com 15y ago

Folk Models in Home Computer Security

pmjordan
4pts0
news.opensuse.org 15y ago

OpenSUSE 11.4

pmjordan
6pts1
www.foundedproject.com 15y ago

Garmz: Founded to enable fashion talent

pmjordan
2pts0
daringfireball.net 15y ago

Sony's Next-Gen Developer Framework to Be Based on GNUstep and Objective-C

pmjordan
24pts2
deplinenoise.wordpress.com 15y ago

SSE expression generation

pmjordan
3pts0

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.

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.

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.

Does it though? It’s a rare edge case that should be trivial to solve with minor human intervention.

Apparently[1] centenarians make up 0.02% of the UK population; how well this statistic transfers to EU nationals in the UK I don't know, but if it's 1:1 then this issue affects about 600 people. A large proportion of those will however have some trouble rectifying the problem themselves; the over-90-year-olds I know certainly would all struggle with this sort of thing. In the article, the activist who volunteers helping people with the registration process is quoted as saying it required 2 calls to the Home Office. This is someone who presumably has some practice dealing with the process and the Home Office and they couldn't get it sorted out trivially. If it's an accepted failure case of the automated process, there needs to be an established alternative process; it sounds like no consideration was given to this edge case at all. So, not "minor human intervention."

[1] https://www.ons.gov.uk/peoplepopulationandcommunity/birthsde...

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.

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.

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.

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.

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.)

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.

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.

Why can't someone slap the XNU api onto Linux

Probably because importing Mach messaging and VM APIs into the Linux kernel, and recreating IOKit and similar from scratch is a pretty major undertaking; the APSL isn't GPL-compatible, so using the existing XNU code and trying to make it fit into the Linux kernel isn't something that could ever be upstreamed. Aside from the fact that Linux's device model doesn't exactly map to IOKit well.

Then there are invariably plenty of assumptions that userland makes: launchd is probably assumed to have PID 1; all sorts of stuff like that.

Plus of course, there's the question of whether this would be inline with the EULA of Apple's userland…

There's always GNUStep if you want to write Cocoa apps in Objective-C on Linux. Somehow I have a feeling the APIs aren't what's been holding back Linux on the desktop.

Only reselling already implemented stuff is neither software engineering nor what I love.

$240k would be a highly respectable income pretty much anywhere in almost any field. In most of the world, doctors are paid less than that while routinely working night shifts and constantly making life and death decisions about their patients, and you’re seriously complaining about being paid $2k/day for fiddling about with stuff on a computer?

the whole comment section was insisting that per-project billing is the only viable way to make money in consulting.

Generally, when someone gives you advice that's supposed to be 100% right in all cases, they either stand to gain from it personally or have no idea what they're talking about.

In this case, the difference between the two approaches is mostly a question of who ends up with what risks. My wife and I run a two-person development contracting business, and we've done projects with both approaches. Both have worked well for us, but for the type of work we tend to do, most projects would not be suitable for fixed price billing.

The reason is that most of our work consists of "deep dives" for figuring out if something is possible at all. (Or more precisely, possible within a reasonable amount of effort.) So what usually ends up happening is we'll agree on a capped research budget, and dig into the problem up to that number of days. If we find a solution before that time, great; if we find a fatal blocker before that time, well, not great but it's a result. Otherwise, we'll hopefully have found some leads to pursue in that time and can give a better estimate for how much more effort it'll take.

Maybe it's possible to do this sort of project on a value-based basis, but I certainly haven't found one that seems fair, or that a client is likely to accept. The author of the original article likes to claim that with value based pricing, interests are aligned. Well, for this sort of project, one of the parties is likely to lose out massively if you agree a fixed price up front.

And as for the author's assertion that your income is capped: you have one variable you can tweak: your rate. Charge more! We charge more than his "optimistic estimate". Sure, we're still not rolling in it, but we also don't work anywhere near 40 hours a week. And the implication that our incentive is to drag out projects to get more billable hours - well, I have a stronger incentive to make all my clients super happy so that they keep coming back for repeat business. This way, we have more requests coming in than we can feasibly accept.

Of course, only touch open ended projects for savvy clients. The nature of our particular specialty means we work with tech companies who understand the nature of big unknowns in projects.

Additionally, you have artists and level designers working on these files. These people tend to be semi-technical, and confronting them with the full details of git is usually met with a lot of resistance.

I know some smaller studios that use git to some extent, and they tend to struggle with it on occasion - again, primarily in the art & design departments, mainly with binary files. All the larger studios and some of the smaller ones seem to use perforce. Publisher-owned multinationals might have their own proprietary systems, I don’t have any insider information there.

In any case, people who aren’t familiar with the requirements of gamedev like to argue about this. It’s like proponents of forks arguing with someone trying to eat soup with a spoon.

For what it's worth, crows in Central Europe have been doing this for decades. They (carrion crows) used to do it outside my childhood home in Austria ~25 years ago. (Very light traffic, so no traffic lights; they just put some nuts in place when they heard a car coming.) They would generally first attempt to crack the nuts simply by dropping them onto the road from a height. I guess they left the ones that didn't crack on impact at terminal velocity for the cars to deal with.

There may well have been multiple independent discoveries, and passing the skill on between individuals and generations has probably made it near-ubiquitous now.

SoftRAM 95 (1996) 7 years ago

macOS and iOS do this too. iOS doesn't even use any traditional swap and gets away with it by putting the onus on developers to make sure their apps never go OOM when in the foreground and to deal seamlessly with apps being OOM killed when in the background.

In addition to the sensible question of whether Google even would need to link against any GPL code raised by other commenters, there's also the question of whether the GPL would even make any sense for a kext, considering the kext needs to include Apple's header files (largely APSL-licensed) and link against macOS's kernel. (binary-only proprietary fork of the open source xnu source dump)

(I've licensed my own FOSS kext code as LGPL - either way, the copyleft aspect wouldn't affect any userland code using the kext as it'd be running in a different process. And AGPL doesn't change anything in this context either as far as I'm aware as its additional provisions are only relevant for code running on systems not under the user's control, and again if you're not linking against it, your code isn't a derived work.)

Far Cry 7 years ago

Thanks for checking! :-)

Oh, I’m not complaining about the voice acting. The fast-talking mission briefings are a little odd at first, but they work. And yeah, they put a lot of effort into idle animations and chatter; putting more effort in just yields diminishing returns. Plus, real people repeat themselves too, particularly when bored…

I just brought up the matter-or-fact remark about never repeating a line because it suggested something to me about the author.

Far Cry 7 years ago

So, an enemy might have just walked into an animal?

Possibly! They normally take flight when they notice a human nearby[1] but as the player you can certainly bump into them if you sneak up. And I think they just fall over and die if you do that.

The other claim in the article that's clearly untrue is the one about not hearing a line of dialogue twice. The idle dialog between NPCs definitely repeats fairly soon, sometimes within a minute or so. So I get the impression the author isn't particularly familiar with games and is quite happy to parrot some of the publisher's claims or perhaps they found some pre-release interviews where some of this was mentioned.

[1] As they should! Contrary to popular belief, the vast majority of wild mammals and birds in Africa, including predators, will be on alert it if they spot a human nearby and leg it if they get close. Safaris are only a thing because cars/safari trucks haven't been hunting or retaliating against predators for 99.9% of the last 100000+ years, and most animals can't distinguish the human figures/faces inside vehicles. This is another thing Far Cry 2 got right versus the subsequent Far Cry games, which are just crawling with highly aggressive predators and where the herbivores are essentially tame.

I haven’t used this or any other micro-borrowing service. But we’ve got over a decade‘a worth of failed microtransaction services in the West. I’m going to guess that this is a fantastic way to encourage traction with such a service. Want to spend a few cents here and there? Great! Get started and pay us later. Then when you’ve used that up they get your (bank) details and trust you with more and more credit, until they’re no longer micro-loans. And people buy all sorts of stuff (consumer goods) on credit, this much shouldn’t be a surprise.

Far Cry 7 years ago

I think they've started doing those for the Assassin's Creed series, so you never know, future iterations might bring something like that.

Far Cry 7 years ago

Try increasing the difficulty level. When you take as many bullets to die as the enemies do, and there are typically more of them, it very much becomes a challenge to survive, and the whole atmosphere becomes more convincingly menacing.

Far Cry 7 years ago

I guess for many of us, the controls have become second nature (mouselook in my case) so they do not break immersion for me for that kind of game.

Something like Far Cry 2 in VR would be amazingly immersive but also terrifying. The main other issue I see is that the Far Cry worlds are huge, and exploring them is a large part of the appeal. And walking around in VR isn’t a solved problem yet as far as I’m aware. (IMO teleporting breaks immersion more than mouselook controls ever have but YMMV.)

Far Cry 7 years ago

It’s funny how you can’t please everyone. My take on Blood Dragon is it was a cute gimmick that was unnecessarily dragged out over 10 hours of gameplay.