HNHacker News
TopNewBestAskShowJobs

timhwang21

437 karma · joined September 19, 2016

submissionscomments
timhwang21··on Liero – Sling'n'shoot Worms Game
The larpa in Noita is a direct callback to Liero!
timhwang21··on Half-Life 25th Anniversary Update
They may be on VPN. Google recaptcha has dynamic risk-based friction and is prone to serving effectively impossible challenges to users on VPN.
timhwang21··on The architecture of Uber’s API gateway
Enjoying the article so far, but some things make it a bit hard to read. 1) code snippets are screen shots, and 2) some links point to an internal Google Docs page.
timhwang21··on On Cache Invalidation: Why Is It Hard? (2018)
"Cache invalidation, naming things and off-by-one errors. And cache invalidation."
timhwang21··on GHC 9.0, supporting linear types
Fantastic comment! Thank you so much for this.
timhwang21··on React's UseRef Deep Dive
> it might be better to just be a standalone library

See: https://github.com/reduxjs/redux, among others.

The React ecosystem did exactly this for the past few years, but evidently it was decided that a more native approach like hooks were better.

timhwang21··on React's UseRef Deep Dive
This is true as long as you're able to strictly enforce the container-presenter pattern, which is increasingly harder to do as an application grows in complexity.
timhwang21··on React's UseRef Deep Dive
One key difference between hooks and functions is that hooks tap into some hidden global component registry (I'm being handwavey here but this is more or less what happens). This allows side effects to be persisted and tracked between function calls.

You can probably build all this infrastructure yourself without hooks and only with plain functions. It'll involve some global store and some subscription mechanism. You'll end up with something really similar to Redux.

timhwang21··on React's UseRef Deep Dive
I've more or less driven frontend development with React at several companies over the last 4 years. While some of the complaints are exaggerated I don't think the overarching premise should be dismissed as "a meme."

> No idea what this promise chaining thing is that you're talking about.

If you have any asynchronous things going on in `useEffect`, you'll have to do something similar to that `await(0)` song and dance in tests. This specifically affects tests if you do things like update the UI by toggling loading spinners on await.

> Redux

s/Redux/higher order components. One of the motivations for hooks was that as a mechanism for logic composition, HOCs just felt awful to use. (So did render props, which everyone suddenly used for everything in a brief moment of collective insanity.)

> Only a superficial understanding of React

I think there's something in this. The fact is that good or bad, 1) hooks aren't intuitive, 2) hooks have basically doubled React's API surface area. Previously, React was so simple that a backend engineer could pick it up and get productive with it in half a week. That's much less the case these days. I've been onboarding devs to React for years, and these days there's a lot more "yeah, that's magic, you don't need to know how that works for now."

timhwang21··on JavaScript Pattern Matching Proposal
Stage zero proposals generally read less formally. IIRC they are held to lower standards and expected to be formalized in the later stages.
timhwang21··on JavaScript Pattern Matching Proposal
I wouldn't necessarily say it's deep equality, it's just a less verbose way of sequentially checking properties. It's not going to check every property.

At least for me, I feel I'd be using this a lot for the boring but common use case of checking for empty arrays and such:

  const doSomethingToArr = arr => match (arr) {
    [] => whatever,
    [x] => whatever,
    [x, ...xs] => whatever
  }
timhwang21··on Docker vs. Kubernetes vs. Mesos
This is addressed:

>Google had tremendous experience with containers (they introduced cgroups in Linux) but existing internal container and distributed computing tools like Borg were directly coupled to their infrastructure.

timhwang21··on Developers who use spaces make more money than those who use tabs
Well, of course. Only companies with fuck-you money can afford the extra bytes spaces take up versus tabs, so it follows logically that they'd pay their developers more.
timhwang21··on Ask HN: Who is hiring? (February 2017)
Rocket Fuel | Web Applications Developer (fulltime) | ONSITE | https://rocketfuel.com/

Looking for frontend developers to help port our existing platforms into an integrated UI build with React and Redux.

Hiring process: coding challenge > phone interview > on-site interview with team.

Contact: thwang@rocketfuelinc.com

Job description: http://app.jobvite.com/m?3GJgqiwS

timhwang21··on Show HN: CodeBuff – smart code formatter
If you're interested, Google Research recently published a paper about code formatting via dynamic programming: http://static.googleusercontent.com/media/research.google.co...