HNHacker News
TopNewBestAskShowJobs

zeroimpl

614 karma · joined January 11, 2018

submissionscomments
zeroimpl··on iTerm 3.5.1 removes automatic OpenAI integration, requires opt-in
I don't think they're going to let you claim a donation to an open source developer as some sort of charitable donation, which means the tax write off would be no different here from any other business expense.
zeroimpl··on API Shouldn't Redirect HTTP to HTTPS
But listening on port 80 and revoking the key also won’t help either as the active MitM would have been smart enough to internally proxy to port 443 or return some other fake response.

The real point is to break the application during development before the first MitM. Either approach does that equally well.

zeroimpl··on Addition with flamethrowers – why game devs don't unit test
In my experience (full stack web development), unit tests are mostly useless and it is the high-level system tests which add real value. Unfortunately it can take a fair amount of work or skill to architect the test suite in the first place, but once it’s working you can write elegant tests that verify large swathes of code with fairly few lines of test code.

I think UI testing in general is hard though, and given how large a part of games involves UI, that’d be the real reason games don’t have much tests.

zeroimpl··on Voyager 1 Resumes Sending Science Data
While great inventions, neither of those are "scientific achievements" IMO. The silicon transistor on the other hand is a good example of an invention that came directly as a result of science.
zeroimpl··on Visa changes mean Americans will carry fewer physical payment cards in wallets
Doesn’t make much sense to me. If you are going to use a credit card for some payments, why wouldn’t you use it for all?
zeroimpl··on Making a Postgres query 1k times faster
While OR can be performance killers, in other cases it works perfectly fine, or sometimes even better than the equivalent UNION ALL query. In this case the problem is that they are applying a LIMIT with ORDER BY so it can’t do the usual BitmapOr optimization and thus the index ends up being used purely for sorting purposes.
zeroimpl··on Apple and Google deliver support for unwanted tracking alerts in iOS and Android
Even if the tracker didn’t alert the thief, how hard is it for a thief to find a tracker on the bike on their own? I don’t think an AirTag is going to save too many bicycles.

Seems like the calculus would only make sense when you are talking about big expensive items - cars, boats, RVs. But for those you probably want a non-bluetooth solution.

zeroimpl··on Run0, a systemd based alternative to sudo, announced
But sudo already doesn’t do that either. Eg sudo may ask for a password, and output some control sequences which hide the text so your password is not visible.

This feels like much ado about nothing.

Edit: Also don’t forget the “with great power comes great responsibility” blurb that sudo likes to output. I know that doesn’t happen in scripts when output is redirected, but I’m sure run0 will figure that out too.

zeroimpl··on Ten years of improvements in PostgreSQL's optimizer
> Deferred or alternative scenario planning should be adopted, especially for large and expensive queries. As it is today, your plan is finalized before it is executed, even though earlier stages of execution could provide information (like rowcounts or cardinality estimates) that could dramatically improve later stage plans.

Alternative planning sounds awesome. I saw a query plan the other day where it expected about 1000 rows from some subquery so did a nested loop to an index scan. In reality there’s about a billion rows. I’m not sure yet why the estimate was so bad, but being able to pivot from a nested loop to a hash join if the row count crossed some threshold would be great at avoiding some catastrophic plans.

zeroimpl··on App developers required to reveal home address to EU customers
This new requirement from Apple related to the EU's Digital Services Act will display developer's contact information (address and phone number) on app store listings in the EU. It's not clear to me what problem this is solving, and this is going to be a fairly large privacy concern for many small businesses.
zeroimpl··on A simple dice game shines a bit of light on the psychology of regret
This seems so obvious that it’s baffling to me that the article doesn’t discuss this issue.
zeroimpl··on Conditional Love for AWS Metadata Enumeration
Note the ids appear to be 40-bit numbers, which isn’t great for security in the first place. I’m not sure off hand if there’s an efficient way to test all 2^40 values but seems feasible.
zeroimpl··on GIMP 2.99.18: The last development preview before 3.0
There’s several things which break down if you eliminate layer boundaries.

Can you still have a layer that is bigger than the image boundary, or would pixels get cropped when they move outside?

What happens if you apply a noise filter? Does it generate an infinitely large layer with noise? Or only generates noise on the visible portions? Or some other arbitrary rect in between?

And how would you handle the case of a small layer with a weird blend mode like multiply/subtract? With no boundaries it now must apply to the entire image below.

I’m sure there are solutions to these individually but it’s clearly a very complex problem to solve all these kinds of cases in an intuitive way.

zeroimpl··on Show HN: PRQL in PostgreSQL
Makes sense. You mentioned index so I thought maybe you were were querying a table.

Would be nice if postgresql could tell you when the flags don’t match. I think anytime you deal with timestamps you can have problems since the expression may depend on the session’s time zone.

zeroimpl··on Show HN: PRQL in PostgreSQL
An immutable function cannot query a table because the table itself isn’t immutable. If your stable/immutable flags don’t match reality, the function can’t be inlined.
zeroimpl··on Implementing system-versioned tables in Postgres
The way I deal with this is my history tables have 3 fixed columns:

    * OperationType: An ENUM of "INSERT", "UPDATE", "DELETE"
    * OperationTimestamp: TIMESTAMPTZ
    * OperationId: BIGSERIAL (needed to can handle cases where a row is modified multiple times in a transaction)
This structure is super intuitive to understand, and very efficient since the History table is append-only. But if you are trying to use it to reconstruct the state of items from a specific time the past, it's a bit awkward and the use of a RANGE column instead would be easier to query.
zeroimpl··on Implementing system-versioned tables in Postgres
While renting does typically cost more than owing, from a purely financial perspective, in practice you can argue that the difference is simply what you are paying the landlord for the services they are providing. The landlord is responsible for maintenance, taxes, insurance, and more. Not everybody wants to deal with those things. The landlord might be more efficient at those things too, especially in a rental apartment.

AWS might cost more but it provides a lot of benefits that are hard to assign a dollar value to.

zeroimpl··on Why is the mouse cursor slightly tilted and not straight?
Also nobody is asking why it's pointed up, but it's the same reason. Your hand is usually below your eye-level. From a theoretical point of view, the most intuitive cursor would be a crosshair, but I've tried that and don't like it.
zeroimpl··on Breaking Free from DRM: Hacking My Air Purifier
Even if not cleanable, the machine isn't going to actually know if they need to be replaced or not. It will depend on how dirty the air was and how much stuff got filtered out. Normal air purifiers would have a reset option to reset the timer.
zeroimpl··on SSH ProxyCommand == unexpected code execution (CVE-2023-51385)
Yeah I assumed that's what you were doing, since you mentioned Github blocked specifically. If you need to proxy through a protocol other than SSH, likely need to keep using ProxyCommand.
zeroimpl··on SSH ProxyCommand == unexpected code execution (CVE-2023-51385)
Try ProxyJump instead - it’s the newer way of doing it.
zeroimpl··on TC39: Add Object.groupBy and Map.groupBy
The part I’m confused on is the documentation saying the returned object from Object.groupBy doesn’t extend from Object.prototype. Is it still an object?

    The return value of groupBy is an object that does not inherit from %Object.prototype%.
zeroimpl··on Wikifunctions
Probably gotta define h(x) = f(g(x)) and then invoke h. Or they should build a REPL or Fiddle interface to let you test arbitrary expressions.
zeroimpl··on Microsoft Fixes Excel Feature That Forced Scientists to Rename Human Genes
> Remove leading zeros and convert to a number

This is stupid. If a leading zero was input, it was intended to be there and probably isn't a number. Been burned by this many times.

> Keep first 15 digits of long numbers and convert to scientific notation

This is stupid. If scientific notation was intended, somebody would have input it that way. This unnecessarily discards data. Been burned by this many times.

> Convert digits surrounding the letter "E" to a number in scientific notation

This actually makes sense I think?

> Convert continuous letters and numbers to a date

This is fairly stupid - dates ought to have delimiters between things (and a year!). Been burned by this a few times.

zeroimpl··on Where is my file's metadata?
It's a matter of defaults, and no choice of default will work for everybody.

I agree that "rsync --archive" ought to preserve extended attributes, same with creating a tarball. But when copying a file, as opposed to creating a backup/archive, I don't think extended attributes should be included by default.

And yes I've also had to compile custom versions of rsync at one point to get a version which understood extended attributes on Mac, but I think that's mostly standardized now.

EDIT: Also most programs don't even preserve permissions/ACLs on copy, so not sure why they'd preserve attributes by default.

zeroimpl··on Where is my file's metadata?
There's an important difference between metadata owned by a file and metadata that a user/program has attached to a file.

Metadata onwed by a file ought to be embedded in the file's data, so that it will be preserved if you copy the file to a different system. This is the case for images, pdf, mp3 etc.

Metadata attached to a file is useful to simplify many 3rd-party programs, but should generally not be preserved if you copy the file. Stuff like display attributes for Finder, quarantine attributes for the virus scanner, etc.

Each of these requirements deserves a different implementation approach, which is why the current state of affairs makes sense to me.

zeroimpl··on Google's 21-year deal with Apple is the "heart" of monopoly case, judge says
The article kind of implies it's Apple's fault, but Google was the well established leader before iPhone launched. Apple did build a Google Maps alternative, but it took a while for it to become good.
zeroimpl··on Apache HTTP Server 2.4.58 (CVE fixes)
Surprising to see stuff like this included in a patch release:

    core: Updated conf/mime.types:
     - .js moved from 'application/javascript' to 'text/javascript'
That’s probably going to break something for somebody.
zeroimpl··on The Future of CSS: Easy Light-Dark Mode Color Switching with Light-Dark()
That looks awful, but presumably if you are using sass instead of css you could define a light-dark macro already which does exactly that.

I wonder if custom functions might ever make their way to css.

zeroimpl··on VeraCrypt: Free open-source disk encryption for Windows, Mac OS X, Linux
By default if rsync sees any difference in metadata (timestamps), it just copies over the file fresh - first to a temporary file and then renames over the original. To do an in-place update you'd need to specify an arg for that. And even then, it needs to do a full read of both files to compare, so all it saves on is bandwidth.
← PreviousPage 2 of 15Next →