Recent submissions

Comment · 6 years ago
We do plan to do some tests, to the extent that we're able. We can A/B test much of the UI but we can't A/B test the insurance terms that we give people because that would require different pricing and thus different rating, which needs to be the same for everyone legally (also any pricing changes require approvals regardless of A/B testing or not).

Don't take this too literally as I'm just a developer, not a licensed insurance agent. But this kind of thing is harder in a heavily regulated business such as ours.

Comment · 6 years ago
(Goodcover dev here)

It could be, along with say family size. But the UX cost of asking such questions is real, especially on an insurance application form. People get worried why we want to know such things so early on.

Today we're able to provide a pretty good estimate with no personal details, nothing but a zip code in fact. We might work the zip code into temp housing default at some point, but it's not without issues. Changes to the property <> temp housing link built into our rating require solid data and regulatory approvals.

Comment · 6 years ago
Scala.js too! Been a great experience overall. (I work at Goodcover)
Comment · 7 years ago
What I'm saying is outside of the virtual DOM paradigm you might not need to diff any elements at all, real or virtual, and so you wouldn't care about the performance of DOM reads, as you're not doing them.

Then it becomes a matter of DOM write performance, but that is the same for everyone assuming the native DOM API commands issued by the libraries are the same, which is a more or less reasonable assumption for well optimized libraries even if they use different paradigms to calculate what those commands should be.

Comment · 7 years ago
Comment · 7 years ago
> Oh wow. You just described the existing imperative DOM APIs, haven't you? Inflexible implementation wasting everyone's time.

Existing DOM APIs are very simple, low level and unopinionated. A pleasure to build libraries on. That's what durable platform APIs should look like.

It is very easy to build virtual dom and importantly other DOM management paradigms on top of those low level APIs.

The same can not be said about virtual dom - it's a very opinionated, very rigid paradigm. I know because I built FRP UI libraries based on Snabbdom and on native DOM APIs. The latter is much simpler to deal with and more performant. Virtual DOM only works well if that's exactly what you want. It has no place among browser APIs, at least not in any recognizeable shape or form.

Regarding performance, the whole point of the virtual dom is that the diffing engine does not know which elements changed or didn't change. It gets a new virtual subtree and has to diff it with the previous one. The browser would be doing all the same diffing work, just closer to the metal. But we will soon be able to do the same with just WASM.

Comment · 7 years ago
> Why waste time implementing and “reducing it even further” and not just implement it in the browser?

Because the browser should not offer inflexible implementations of complex, highly opinionated and currently overhyped paradigms, because those standardized APIs will stay with us for much longer than they will be useful, wasting everyone's time.

We're only talking about virtual dom here because it's a popular concept with good library implementations. We don't need to reimplement it in all major browsers because we already have it working well.

Even aside from that, it is easier to build one library than implement the same spec in all major browsers. Moreover, library designs compete with each other, and can be improved faster than APIs baked into a browser which will have to be maintained in a backwards compatible manner for more than a decade.

> First bullet point is relevant for internals mostly, little bearing on actual API.

The concepts of Components, State, Context, Thunks, Fibers, Plugins, etc. are very important differentiators between various virtual DOM APIs. Either the presence or absence, let alone the specific design of those concepts strongly affects the API surface and what users can do with it and how. Don't mistake React's API for some kind of standard.

Once the hype inevitably moves on from virtual DOM to whatever the next declarative UI paradigm will be (e.g. FRP with precision DOM updates) this whole standardization and reimplementation exercise will be rendered a giant waste of time.

Comment · 7 years ago
There is enough differentiation in virtual DOM designs[1] that I don't think implementing a lowest common denominator that is flexible enough to support competing strategies would be useful. Being a browser API it would need to be a rather timeless, low level design. Essentially, we already have that – the imperative DOM API.

With WASM the performance gap between libraries and native browser code will be reduced even further. Focusing on that has the benefit of lifting all boats, not just a particular DOM building paradigm that has been popular recently.

[1] Just some examples that come to mind:

- logic that decides when to update an element vs when to create a new one (including but not limited to having the concepts of components, thunks, deciding to look at class names, ability to move nodes, etc.)

- design of lifecycle methods and hooks, as well as any performance-oriented optimizations such as asynchronous / delayed rendering, short circuiting logic, etc.

- handling of props vs attributes vs reflected attributes

Comment · 7 years ago
Because virtual DOM is not the only way to achieve efficient DOM updates, and even within the concept of virtual DOM there could be many different ways to achieve efficient diffing (e.g. React vs Snabbdom). There is nothing special about a particular virtual DOM spec to deserve a place in web standards.
Comment · 7 years ago
Comment · 8 years ago
Yup, I've seen more than one friend leave Vancouver for Ontario and Quebec. But hey if you work remotely, you're in the same timezone as SF!
Comment · 8 years ago
Directly. One of my friends is holed up in Yukon working via a website similar to upwork. Seems to work for him although these kind of sites generally get bad rep on HN.
Comment · 8 years ago
Yes, I worked remotely for both US and Canadian clients. Dealing with Quebec clients is a pain (need to file their sales tax, _in french_), otherwise it's been a smooth sailing. Just remember that you're a contractor, not an employee.
Comment · 8 years ago
Spoiler alert: the best setup is to hole up in a nice town in Canada working remotely for a client in the US.

Vancouver numbers I know from friends, mostly from a couple years ago, web application dev:

- Starting salary around 60K CAD

- Mid range 70-90K

- Senior 90-130K

Companies like Amazon pay ~25% more than this, but are also more demanding of time and sanity

Go browse AngelList, lots of offers with salaries there from smaller companies.

Comment · 8 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton