HNHacker News
TopNewBestAskShowJobs

jdmichal

6,062 karma · joined February 9, 2012

I live in Tampa Bay, Florida, US. I find problems and drive them to solutions. I'm a software engineering manager, architect, and project manager.

Hobbies: sailing, gardening, linguistics, food and cooking, archery.

Feel free to contact me; I'm on gmail.

submissionscomments
jdmichal··on Waymo's collision avoidance testing
Did I miss the dirt road part? That looks like it starts on a rural but paved road, and ends in a town.
jdmichal··on Switching to AWS Graviton slashed our infrastructure bill
We've been running RDS PostgreSQL on r6g instances for the past few months with no issues.
jdmichal··on Speeding up the JavaScript ecosystem, one library at a time

    // Does the same as `Number.prototype.toFixed` but without casting
    // the return value to a string.
    function toFixed(num, precision) {
        const pow = 10 ** precision;
        return Math.round(num * pow) / pow;
    }
I know doubles are big, but doesn't this combination of multiply-and-divide introduce the possibility of precision issues that I'm assuming is not applicable to `toFixed`?

Unless I'm wrong, I would be very hesitant to use this version of the method when I don't control the input.

jdmichal··on Tesla rival Rivian posts losses of $1.7B, with worse to come
Ford's "boring, me-too cars that happen to be electric" strategy on the F-150 Lightning was absolute genius. The F-150 has been the best-selling truck since 1977, and the best-selling vehicle since 1981. Why would one ever mess with that?

GM is taking a different approach on the Silverado EV. Still looks like a normal truck, but it's been designed around the electric powertrain. So we'll see who wins that race.

I'm sure I'm not the only person in the world that just wants a normal car or truck, but electric.

jdmichal··on Nushell: Introduction to a new kind of shell
When I'm using PowerShell as a shell, I use all the aliases and shortcuts.

When I'm using PowerShell as a scripting environment, I use the full name for every command and parameter, and even include the names of positional parameters.

I love that it can do both.

jdmichal··on Nushell: Introduction to a new kind of shell
It can also cross-run programs and UIs. I can type in `code .` in my Ubuntu image, and VSCode will open in Windows at that directory. I can also run UI programs in Ubuntu and their windows pop up in the Windows desktop environment.
jdmichal··on Nord – An Arctic, north-bluish color palette
My vision is not bad and I still agree with your statement.
jdmichal··on The United States’ Unamendable Constitution
They found a nice workaround with federal taxation though. There's a lot of instances where the states technically have the power to pass different laws than what's federally blessed. However, they'll lose federal funding if they do. And the majority of the time, that's just not a good trade-off.

So the federal government is essentially taxing the state's citizens, then giving some amount of it back to the states in exchange for rowing the boat in the right direction. States that increase their own taxes to compensate for refusal of federal funds would become noncompetitive to other states who don't.

jdmichal··on The United States’ Unamendable Constitution
I know Florida has some "law-like" amendments. At least a couple recent ones, specifically the legalization of medical marijuana and minimum wage increases, came about because it's a way for the populace to directly vote on and implement laws that state representatives are refusing to pass or even discuss.
jdmichal··on The search is on for banana ancestors
That's now how bananas work. Bananas are sterile hybrids; that's why they're cloned in the first place. Other plants are cloned for other reasons, typically because they don't grow true from seed.

Luckily for us, banana plants grow like bromeliads. They flower and fruit then die. But not before sprouting several new stalks. So they're really easy to propagate by separating the new stalks once they get big enough.

Someone else posted this excellent article on it:

https://www.damninteresting.com/the-unfortunate-sex-life-of-...

jdmichal··on The search is on for banana ancestors
We grow our own and are looking at a variety called "ice cream". I figured the name was exaggerated, but now you have me second-guessing that...

EDIT: Apparently they're in fact the same cultivar. The bananas start off blue and ripen to yellow.

jdmichal··on Red Dead Redemption 2 fan with 6k hours on Stadia begs for character transfer
That goes to cranium's point here:

https://news.ycombinator.com/item?id=33036297

> I like this rule of thumb to know if a behavior can be a psychiatric disorder: "when it interferes with normal functioning". It's purposely vague and subject to interpretation but it's a good first filter.

If these new "addictions" aren't interfering with "normal functioning", then they're not disorders. They're just normal parts of that person's life.

jdmichal··on Why to not use JWT (2021)
> i'm not sure though how a bearer token would prevent CSRF. imo it's roughly the same as a session with a long expiration time.

You said it yourself. Bearer tokens have to be added manually, while cookies are automatic. So simply issuing a request to a backend will not include the bearer token, and you (as the attacker) have no way of actually gaining that token from your cross-site context.

jdmichal··on The ‘Epic of Gilgamesh’ is not the oldest surviving work of literature
I think the assumption that literature complexity must have been incremental is flawed. Complex oral tradition could have led directly to complex story-telling literature. All it would take is someone writing it down.
jdmichal··on The ‘Epic of Gilgamesh’ is not the oldest surviving work of literature
From wiktionary:

> 1. The body of all written works.

> 2. The collected creative writing of a nation, people, group or culture.

> 3. (usually preceded by the) All the papers, treatises etc. published in academic journals on a particular subject.

> 4. Written fiction of a high standard.

So it sounds like you're basically describing definition (1). I make this judgement because "this tastes good" is not creative or fictional writing, which are key points in definitions (2) and (4).

jdmichal··on Tornado Cash and bullets
Privacy of the system that has a centralized, open ledger as a primary feature? The only thing private about these systems is who owns any particular address. But once an address is pinned down to an entity, the entire history of that address is an open book.
jdmichal··on Work is work, in which returns diminish (2020)
A pair!
jdmichal··on Investors sue Treasury Department for blacklisting crypto platform Tornado Cash
Agreed on the last bit. Having a clear-cut line where "this must be reported" is I think necessary for liability reasons. There are definitely other transactions that should be reported, in the spirit of the actual AML (anti money laundering) issue. But I think it's necessary to be able to say, in a legal setting, that the required obligation was met and discharged, even if something happened that probably should have been caught.
jdmichal··on Work is work, in which returns diminish (2020)
Yes. Jargons exist for a reason. They develop because people working together come to a common agreement on specific meanings for specific terms, regardless of common usage. And it typically leads to more precise communication. "Legalese" is a great example.
jdmichal··on Work is work, in which returns diminish (2020)
English is a Germanic language that was injected with a large amount of French vocabulary. Latin and Greek are typically used in very specific jargons, such as philosophy or medicine, with some phrases escaping confinement and reaching a larger population.

English being a Germanic language is why the whole "no prepositions at the end of sentences" thing never made sense. That was a Latin rule. But Germanic languages have a property of augmenting verbs using prepositions. In German itself these are called "separable verbs".

Ich stehe auf. I stand up.

"Up" is not a preposition in this sentence. It's an integral part of the verb. That is, the verb is, in its entirety, "aufstehen" or "to stand up".

Meanwhile, this same phrase in Spanish uses reflexivity:

Levanto me. I lift myself.

jdmichal··on Work is work, in which returns diminish (2020)
I'm with you on "couple" potentially not being exactly two, though I tend to default to using "few" in such cases. But I can't sign up for "pair" not being exactly two.

Yay language!

jdmichal··on Investors sue Treasury Department for blacklisting crypto platform Tornado Cash
Your real estate example is not a great fit, because real estate transfers are not common. That particular tax-free status on the transfers would probably be best interpreted as a carve out or loophole, with the normal status being that the transactions should be taxed.

On the other hand, depositing money is the normal status. Depositing what amounts to large sums over arbitrary periods of time is also normal. Directly to the point, the limit in place is not a restriction, but merely one that triggers mandatory reporting. The limit is very clear and absolute -- though at their discretion banks may report smaller transactions. Structuring is specifically about avoiding that limit and the accompanying questions and reporting.

So how would you rewrite this law to require mandatory reporting, but also not allow structuring? Because it's not apparently trivial how to achieve that goal any better than they did.

jdmichal··on Ask HN: Does anyone else think SQL needs help?
That's an excellent point. I hadn't thought of it because the joins where I witnessed this were all on primary keys, as $DIETY intended. (That's a joke.)
jdmichal··on Microservices – Please, Don’t (2016)
That's the point. At my last job, the training for microservice design was training in Domain Driven Design with Bounded Contexts. My predecessors at my current job could have used that training, because what I got was a different microservice for every data type, along with another microservice to essentially perform `JOIN` operations across these other microservices... When in reality, all these different pieces of data are just supporting information for the main entity we actually care about, and modeling it as a singular aggregate works much better.
jdmichal··on Ask HN: Does anyone else think SQL needs help?

    WITH one AS NOT MATERIALIZED (
      SELECT 1 AS value, 'one' AS name
    )
    SELECT *
    FROM one
As srcreigh said, this is the default since I believe PostgreSQL 12, as long as the CTE is only used a single time. If you use it more than once, it by default wants to materialize it instead of recalculating each time. You can also force materialization by dropping the `NOT`.

Also note that materialization acts as an optimization fence. That is, PostgreSQL will not push down filter criteria and such from the query into the `WITH` clause. It can do such if it's not materialized.

jdmichal··on Ask HN: Does anyone else think SQL needs help?
At least PostgreSQL's query optimizer can and will drop `LEFT JOIN` clauses if the data is not actually being used. It can't do that for `INNER JOIN` because it must verify that a matching row exists.
jdmichal··on An enthusiast’s deep dive into mechanical keyboard switches
I haven't used Topre switches, but I've had a Das Keyboard Quiet with Cherry MX Silent Red switches for over 10 years now. And I second everything you say about them. I also don't mind the linear feel, since I do a fair bit of gaming with it in addition to work. And even in the middle of some fierce button mashing, the noise is enough to confirm to me that I'm hitting the key, but not enough to distract from what's going on.
jdmichal··on “UBO Minus (MV3)” – An Experimental uBlock Origin Build for Manifest V3
Isn't there some rule that any browser on iOS must use the native Safari engine? So if iOS Safari doesn't support something, there's no way for Firefox to add that support. It's basically just a skin.
jdmichal··on FedNow FAQ
No worries. It also didn't help that, if I recall correctly, clearXchange was also marketed by the different banks under their own pet names for the service. So there wasn't even a single name for it.
jdmichal··on FedNow FAQ
I just want to clarify that Zelle was basically a 2017 rebranding of clearXchange, which existed since way back in 2011. Both Zelle and clearXchange were mostly marketing failures. The basic use-case of nearly-instant person-to-person transfers has been constant and functional throughout its existence.

And you're 100% correct that uptake in the long tail of smaller banks and credit unions is probably one of the biggest "issues" with the service. If your bank isn't signed up, there's nothing you can do as an individual except move to a bank that is. Systems like CashApp and Venmo don't have that issue.

← PreviousPage 6 of 34Next →