HNHacker News
TopNewBestAskShowJobs

bgentry

5,978 karma · joined December 3, 2009

Software engineer building River (riverqueue.com). Former Co-founder at Distru. Mux, Opendoor and Heroku alum.

[ my public key: https://keybase.io/bgentry; my proof: https://keybase.io/bgentry/sigs/RDwSk5TnJBGqGLpMbkVGHs1oi8xRF6bs-yXND13oxiM ]

submissionscomments
bgentry··on Washington crews destroy first U.S. “murder hornet” nest
It’s worth noting that the honeybee defense mechanism you describe is unique to Asian honeybees, which evolved this defense specifically because of the native Asian giant hornet / murder hornet.

European honeybees, which are used in most of the world, have no such defense mechanism and would indeed be helplessly slaughtered by these hornets.

I’d definitely advocate watching some YouTube footage about these creatures, they’re fascinating.

bgentry··on 1Password for Linux beta
The 1Password macOS app is not subscription-only; the standalone purchase is just fairly well hidden because it's not the recommended path: https://support.1password.com/upgrade-mac/

This topic inevitably comes up on every HN 1Password thread.

bgentry··on FreeYourMusic lets users migrate their playlists off Spotify
I’ve been getting hit by this for years. How is there still not a setting for this??

My workaround for this is to go out of my way to make sure the iOS app is closed before I resume playback on my desktop.

bgentry··on FreeYourMusic lets users migrate their playlists off Spotify
Spotify still doesn’t support AirPlay 2 streaming in their iOS app, so playback is susceptible to networking blips as I walk around the house into dead spots or change APs. If they supported AirPlay 2, effectively the entire song would get prebuffered and playback would never skip or stutter—even when playing to multiple AirPlay destinations.

AirPlay 2 has been out for years.

bgentry··on Palihapitiya to acquire Opendoor, valuing home marketplace at $4.8B
SEC 8-K filing: https://www.sec.gov/Archives/edgar/data/1801169/000110465920...
bgentry··on Lunar – macOS utility to set brightness and volume on external monitors
Hi there, I couldn't find a way to disable built-in logging & analytics to log.lunar.fyi. Is there a setting to disable any network requests other than for software updates? Thanks!
bgentry··on Supreme Court declines to hear cases over qualified immunity
Qualified Immunity is a protection against civil liability. This does not generally involve District Attorneys, whose job is to prosecute criminal cases.

The lack of criminal prosecutions is more of an indication that District Attorneys aren't doing their job (or that the reality of their job is that they are disincentivized from prosecuting criminal cops).

bgentry··on Supreme Court declines to hear cases over qualified immunity
Completely agree! Qualified Immunity only frustrates civil suits and does not impact criminal prosecutions, and IMO it is more important that cops who break the law or take away rights be criminally prosecuted for it. Ending Qualified Immunity only unlocks what should be a last resort for accountability; the larger problems is that cops don't generally face criminal charges or convictions when they violate the law or others' rights.
bgentry··on Supreme Court declines to hear cases over qualified immunity
There's also the Players Coalition, a group of >1400 prominent professional athletes and coaches, which has publicly called on Congress to pass the Ending Qualified Immunity Act: https://www.washingtonpost.com/sports/2020/06/10/athletes-pe...
bgentry··on Supreme Court declines to hear cases over qualified immunity
Nice work! If I can offer a suggestion, I think it might help to list everybody who is on record as supporting the bill. In addition to many House Democrats, at least one Republican has also signed on: https://twitter.com/justinamash/status/1270859758061436929
bgentry··on Supreme Court declines to hear cases over qualified immunity
Qualified immunity already doesn't protect you if you knowingly break the law, and it doesn't protect you if you are clearly incompetent.

If you believe the experts that are well-versed in this area, this is not how it works in practice. The Wikipedia article covers a lot of the controversy around this doctrine: https://en.wikipedia.org/wiki/Qualified_immunity#Objections_...

Here is an example of a man in Grand Rapids, Michigan, who was brutally assaulted by undercover officers because they believed he was somebody else. Take a look at how difficult it has been for him to get any recourse for a blatantly obvious abuse of power (6 years and counting): https://twitter.com/AaronParseghian/status/12701818156644966...

bgentry··on Lawmakers begin bipartisan push to cut off police access to military-style gear
It's entirely insufficient. Qualified immunity is a concept that protects officers from civil liability. It's part of the puzzle for sure, but the much bigger issue is that officers that violate the law or others' rights almost never face criminal liability.

An officer that chokes a nonviolent person to death for 9 minutes straight, or an officer that kicks an unthreatening protester in the face, or that fires rounds at people peacefully standing in their own home's doorway, or one that knowingly attacks journalists, should be first and foremost be prosecuted and put in jail, and also be subject to civil suits for their actions.

Unfortunately there is a significant structural disincentive for DAs, prosecutors, and Attorneys General to pursue such cases except in the most egregious high-profile incidents so justice is rarely served. Eliminating qualified immunity allows individuals some recourse to sue the perpetrators in these incidents, but it is no replacement for prosecuting and putting them in jail.

bgentry··on As Qualified Immunity Takes Center Stage, More Delay from SCOTUS
The actual law in this case is the 1871 Enforcement Act, also known as the Civil Rights Act of 1871: https://en.wikipedia.org/wiki/Third_Enforcement_Act

Its text is quite straightforward, essentially saying that judicial officers are liable for the violation of a person's rights.

However the concept of "Qualified Immunity" is a Supreme Court invention which began to be applied in the late 1960s, and which today effectively shields police from any meaningful (civil) liability as originally defined by the law. It's hard to square the modern interpretation and its effects with the clear language in the statute, yet here we are needing to pass a law that effectively says "yes this law actually means what it says".

https://theappeal.org/qualified-immunity-explained/

IANAL.

bgentry··on Justin Amash announces introducing the “Ending Qualified Immunity Act”
Small typo in the title: it's the "Ending Qualified Immunity Act", not the "End Qualified Immunity Act".
bgentry··on Siri, What Time Is It in London?
I looked up the last screenshot I had of this. What I asked was "In 2 days remind me to call FRIEND_NAME", and Siri created a reminder that just said "call". Transcribed perfectly, wrong content in the reminder.

I tried it again right after, and the reminder said "call FRIEND_NAME".

I don't think there was any previous conversational context or anything like that. Hard to fathom how that could happen.

bgentry··on Siri, What Time Is It in London?
The craziest and most confusing behavior of Siri for me is:

Sometimes you can ask a question and watch it be perfectly transcribed in real time, but then receive a nonsensical answer from it. Ask the exact same question immediately after on the same device, transcribed exactly the same way, and get the correct answer.

Where does such unpredictability come from? How can Siri transcribe the words correctly but fail to deliver the right answer?

bgentry··on Does Zoom use end-to-end encryption?
The linked CitizenLab report (titled "Move Fast & Roll Your Own Crypto") is worth reading on its own for more technical details: https://citizenlab.ca/2020/04/move-fast-roll-your-own-crypto...

Its key findings:

-Zoom documentation claims that the app uses “AES-256” encryption for meetings where possible. However, we find that in each Zoom meeting, a single AES-128 key is used in ECB mode by all participants to encrypt and decrypt audio and video. The use of ECB mode is not recommended because patterns present in the plaintext are preserved during encryption.

-The AES-128 keys, which we verified are sufficient to decrypt Zoom packets intercepted in Internet traffic, appear to be generated by Zoom servers, and in some cases, are delivered to participants in a Zoom meeting through servers in China, even when all meeting participants, and the Zoom subscriber’s company, are outside of China.

-Zoom, a Silicon Valley-based company, appears to own three companies in China through which at least 700 employees are paid to develop Zoom’s software. This arrangement is ostensibly an effort at labor arbitrage: Zoom can avoid paying US wages while selling to US customers, thus increasing their profit margin. However, this arrangement may make Zoom responsive to pressure from Chinese authorities.

bgentry··on Tailscale has reached general availability
Quoting from the page linked above:

Sign in with Apple works natively on iOS, macOS, tvOS, and watchOS. And it works in any browser, which means you can deploy it on your website and in versions of your apps running on other platforms.

So it at least sounds like it can be used anywhere with a web login flow. Although the docs say this must be accomplished using their JS library, as opposed to a standard OAuth2 flow of some kind: https://developer.apple.com/documentation/sign_in_with_apple

bgentry··on Zoom Falsely Claims Its Group Video Can Be End-to-End Encrypted
Link to the source article: https://theintercept.com/2020/03/31/zoom-meeting-encryption/

Dupe of https://news.ycombinator.com/item?id=22735746

bgentry··on Ask HN: Who is hiring right now?
Distru (https://www.distru.com) | Senior Frontend Engineer, Senior Backend Engineer | Oakland, CA | REMOTE | Full-Time

Distru is a software platform for the cannabis supply chain. Our product helps cannabis companies manage production, sales, invoicing, and shipments, automating compliance with complicated state regulations that require real-time inventory tracking gram-by-gram. We are growing rapidly with over $700M in transactions per year passing through our platform, and we're uniquely positioned to define trade in the growing cannabis industry.

We are a lean 20 person engineering-focused team that includes early engineers from Opendoor and Heroku. We are hiring experienced engineers to help take our product to the next level. We love product-minded engineers that can own a feature across the frontend and backend, even if they're stronger at one side of that. Our tech stack is built from the ground up on Elixir/Phoenix, Postgres, React/Redux, and GraphQL.

After bootstrapping ourselves to profitability, we raised our seed round with Felicis Ventures, Village Global, Global Founders Capital, and notable angel investors including Elad Gil, Katie Stanton, and Avichal Garg: https://techcrunch.com/2019/06/03/distru-a-maker-of-supply-c...

Please apply at https://distru.com/careers and mention Hacker News!

bgentry··on New research shows social distancing a must to beat Covid-19
Per the CDC, 20% of hospitalizations are from people aged 20-44. Another 20% are 45-54: https://www.nytimes.com/2020/03/18/health/coronavirus-young-...
bgentry··on Ask HN: Who is hiring? (March 2020)
Yes! In fact our first non-founder engineering hire is in Barcelona, while we have others in Brazil and around the US.
bgentry··on Apple to pay up to $500M to settle U.S. lawsuit over slow iPhones
It's shocking to me that even in a technical audience like HN, so many people don't understand the fairly simple story that you've outlined here. Look around this thread and see how many people spread the narrative like "Apple intentionally slowed phones down" or even "Apple tried to extend battery life at the cost of performance". Reiterating the summary:

- Some iPhones in this generation began randomly shutting down as their batteries aged.

- While looking into this, Apple determined it happened because certain aged batteries could no longer deliver enough current to sustain peak workloads (computers use more current when performing more intensive tasks). This is probably due to Apple underprovisioning the battery capacity in this generation, but that's not something they could fix in existing devices.

- Apple added a mechanism to detect when these random shutdowns occurred on a specific device due to insufficient power from the battery.

- Once the random shutdown had been detected on a specific device, that specific phone would instead throttle its CPU when the system was under heavy load to prevent the random shutdown from occurring.

In short, your phone was not affected unless your battery had already degraded and was experiencing power-related random shutdowns. The changes Apple made to deal with this were an unequivocally user-friendly change to work around a hardware shortcoming and keep peoples' phones working well for longer than they otherwise would have.

The mistakes Apple made were:

- Designing the phone hardware with barely enough battery capacity, such that some moderately old phones might not be able to keep working properly when the batteries decayed.

- Not being transparent with the hardware design flaw above, such as proactively replacing any customer whose device was being affected by this flaw while still under warranty.

- Not going far enough with the software changes to initially add something like the battery health info they later added in response to this PR fiasco.

That's about it, I think?

bgentry··on Ask HN: Who is hiring? (March 2020)
Distru (https://www.distru.com) | Senior Frontend Engineer, Senior Backend Engineer | Oakland, CA | REMOTE | Full-Time

Distru is a software platform for the cannabis supply chain. Our product helps cannabis companies manage production, sales, invoicing, and shipments, automating compliance with complicated state regulations that require real-time inventory tracking gram-by-gram. We are growing rapidly with over $700M in transactions per year passing through our platform, and we're uniquely positioned to define trade in the growing cannabis industry.

We are a lean 20 person engineering-focused team that includes early engineers from Opendoor and Heroku. We are hiring experienced engineers to help take our product to the next level. We love product-minded engineers that can own a feature across the frontend and backend, even if they're stronger at one side of that. Our tech stack is built from the ground up on Elixir/Phoenix, Postgres, React/Redux, and GraphQL.

After bootstrapping ourselves to profitability, we raised our seed round with Felicis Ventures, Village Global, Global Founders Capital, and notable angel investors including Elad Gil, Katie Stanton, and Avichal Garg: https://techcrunch.com/2019/06/03/distru-a-maker-of-supply-c...

Please apply at https://distru.com/careers and mention Hacker News!

bgentry··on Beer Waste Saves Montana Town $1M on Water Treatment
Apparently it’s more subtle: although the article begins and ends by talking about Bozeman (and saying even Bozeman doesn’t actually use this method), it turns out that Havre is the city that saved some money and is in fact using this method successfully.

However it hasn’t actually saved $1M, only saved a small amount over the alum that probably would have otherwise saved them from the $1M upgrade :)

bgentry··on Beer Waste Saves Montana Town $1M on Water Treatment
The last two sentences appear to undermine the headline:

While the Water Reclamation Facility in Bozeman found the chemistry worked, the logistics of transporting the liquid brewery waste there are too expensive for now. If regulations get stricter, the plant may consider this approach in the future.

So did they save $1M using this approach, or are they not even using it after all?

bgentry··on Google Cloud Platform Security Best Practices
In addition to your reasons, I also downvoted the comment because it is completely irrelevant; whether or not GCP might someday be shut down has nothing at all to do with security best practices on the platform.

If you wanted to discuss GCP's likelihood of sticking around, this top story from earlier this week would have been an appropriate place: https://news.ycombinator.com/item?id=21815260

bgentry··on Ask HN: What's the current sentiment on JWT for stateless auth tokens?
But then it isn't stateless, right? Because you need to know which current tokens are unrefreshable.

You only have to involve state in 1 request every 10-15 minutes upon refresh. All other requests can be done without having to check for revocation. This is a pretty nice real-world tradeoff.

bgentry··on Turning PostgreSQL into a queue serving 10k jobs per second (2013)
One of the main benefits of this model is the ability to transactionally enqueue any jobs that are being triggered at the same time as other changes your app is making. Also the ability to transactionally apply changes to your database at the same time as marking the job completed.

You only get this benefit if you’re doing everything in a single Postgres database. By the time you outgrow that setup, you may as well move to a more dedicated job queue or something built on Redis, because you’ve already lost the benefits of having a single system.

I suppose you could maintain the queue in a separate Postgres database, but without sharing ACID with the app I’m not sure What you’d gain vs another system.

bgentry··on Turning PostgreSQL into a queue serving 10k jobs per second (2013)
It helps to reference Que's schema [1] and source code to explain this further. But I'm also going from memory so it's possible I will miss some details :)

* If the entire worker process dies, then it will lose its Postgres connection which is holding an advisory lock on the jobs being worked. This releases those jobs to be worked by another worker. I don't recall how the built-in retry & back-off mechanisms work in this scenario. This advisory lock is indeed held for the entire time the jobs are being worked on, but only from a single supervisor connection (rather than one connection per job).

* If the job thread crashes, the worker supervisor catches this and the job is marked for a retry at a later time.

[1]: https://github.com/que-rb/que/blob/master/lib/que/migrations...

← PreviousPage 6 of 23Next →