HN user

jbn

97 karma
Posts0
Comments211
View on HN
No posts found.

after the freeze lifts, you also have multiple contributors dumping large PRs at the same time, missing out on the progressive integration that happens otherwise. This makes it difficult to figure out the cause of regression (think bisect but with large commits).

Code freezes like this are worst when there is no individual branching capability or local revision control, because that guarantees large commits.

it's funny because I have seen the opposite. Engineer: "it crashed because it dereferenced a null pointer" boss: "add null pointer checks everywhere!"

... and because it used "if" instead of "assert", it made the null pointer arg a valid argument, making it a tolerable state of the running software, which displaced the locus of crashes far from the source of the issue. Moral of the story, use "assert" to make it crash as early as possible and debug THAT. You want to restrict the representable states in the software, not expand them by adding null checks everywhere.

This uses the Most Significant Bits to pack some bits into pointers..

Another technique is to use the Least Significant Bits: indeed since pointers are 64 bit aligned, the lowest 3 bits are always zero, therefore it is possible to pack 3 bits of information there.

And there's a third technique in C++, which is to use placement new to morph an object in-place. This can be use to toggle between 2 classes with a boolean method, where one has this method return true and the other class has this method return false. This creates per-object state that really uses bits in the vptr to store this boolean state. Obviously this can be used with a whole set of classes to stores more bits. I have used this successfully to store values of refcount (each AddRef/Release using placement new to morph from RefCounted1/RefCounted2/../RefCountedN classes) to implement reference counting without a counter.

or a port of the lock-free hash map from https://preshing.com/20130605/the-worlds-simplest-lock-free-...

But really, the premise of using a shared map with concurrent readers and writers seems like a good generator of hard-to-reproduce bugs. IMHO shared-nothing (when feasible) is much easier to reason about, and possibly do periodic merging of thread-local updates, but I would avoid concurrent updates entirely (in particular if 2 threads race to update the same key... that goes to deeper design issues in the application).

Same here. I have never unlocked the macbook successfully the 1st time around (for a good 10 years), I always get a "wrong password" and have to re-enter.

My initial guess is that the text edit control has "select all content" set initially, so when you enter the 1st character, it's selected, and when you enter the following characters they overwrite that, essentially chopping off the 1st letter of the password (which is then incorrect, obviously). Unbelievable that this was never fixed (especially with IT-managed laptops that lock themselves very quickly).

US citizen here. I have a special situation which I think will be only of interest to me...

My wife (a green card holder) and I have moved abroad and her travel document is expiring soon (in July). We have no returned to the US in the past 3 years, and were not planning to visit only for the purpose of resetting the counter..

We are planning to actually fly into the US for a vacation right after the expiry date... what if anything can be done to renew or extend the travel document (a.k.a re-entry permit)? Of course we are in good standing with respect to US taxation.

Else, can she apply for an ESTA (country of citizenship is part of the visa waiver program for tourists), which I believe be done up to 3 days before travel (is it ok to apply right at the deadline when the permit is about to expire but just so we travel 1 or 2 days immediately after expiry) ?

and that's only one issue. Paris is the only place where the taxi driver picks the passenger (and not the other way around)... if he doesn't want to go to your destination, he will refuse to pick you up :)

Agreed, this market is ripe for disruption, or at least de-regulation (like giving out more (free) taxi licenses in Paris).