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.
84 karma · joined February 1, 2009
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.
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.
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.
But there are other non-virtual-DOM ways to manage DOM state efficiently and in a maintainable manner. For example, my own library uses Observables to drive precise DOM updates and works with trees holding real (not virtual) DOM elements, so it doesn't need to do any diffing at all: https://github.com/raquo/Laminar
I don't think it's a given which of these techniques would be faster, it depends heavily on the particular use case and the implementation of diffing (for virtual DOM) and Observables (for my pattern). If both are well optimized I'd expect virtual DOM to lose in a lot of cases.
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.
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.
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
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.
FWIW the WhatPulse app can tell you that (for your own typing) e.g. https://i.imgur.com/SuPLw9h.png
I used its data to drive my custom layout decisions.
For example, you can program the keyboard in such a way that pressing X+A sends Ctrl+C keys to the OS, where X is a custom modifier button (Not Ctrl but a separate button that you assign for this use case) and A is, well, whatever other button on the keyboard you want to use for this, not necessarily "C".
Or you can have a single button programmed to send Alt+Tab, or... whatever, really, the firmware is very flexible.
Also, I found that putting a small touchpad^ in a thumb-accessible area (near where a laptop touchpad would be) is a good enough replacement for a mouse.
I have since switched to a split ergonomic keyboard (Diverge 3) and adjusted the layout somewhat (kept qwerty, but put all the modifier keys in custom locations). That took me about a month to exceed my previous speed. Typing on standard keyboards when needed is not a problem either.
I never cared to measure my typing speed though.
As a remote contractor I sometimes feel that it would be nice to have a chat like that, but a few startup-themed slack channels that I tried out turned out to be no good for me.
From what I've read on their website, they actually do bundle it with custom software like drivers. But really my bigger point is that a lot of things do not work the way they're supposed to if you deviate from the happy path just a tiny bit. In my experience.
> Their support, particularity around BIOS issues on their XPS and Precision range has been fantastic in my experience
Hm, I'll give it a shot, thanks for the heads up.
I very much regret this decision. I spent ~100 hours trying to get it to work properly and to configure Ubuntu (including supposedly simple things like switching Alt and Ctrl keys). At the hourly rate I'm charging, this is more than enough to buy ANY laptop. Next time I'll swallow my pride and just buy a top of the line Macbook Pro.
Out of the box Ubuntu works great, but it is very fragile to updating. For example, updating BIOS to a version that fixes an important CPU bug causes the computer to freeze and shutdown every few minutes at random.
Updating the OS itself caused weird bugs such as being unable to click on app menu items with a USB touchpad. Ditching the default Unity for Gnome3 fixed this particular bug.
The recovery image that Dell provides for Ubuntu simply does not work a few months after release – craps out when it's unable to either fetch or install some package. So I don't even have a way of getting a working version of Ubuntu on this laptop if anything happens to my hard drive.
Oh and the touchpad configs are appallingly bad out of the box. Impossible to use. I fixed 98% of palm interference issues with a few lines of xinput config. I don't know why Dell didn't do that themselves.
And of course, Dell only provides only 7 days of Ubuntu support. After that you're on your own.
Now I'm trying to sell this laptop, but no one on craigslist wants it even at 35% ($900CAD) off the original price. A few months old laptop in perfect condition that is still on warranty.
Speaking of Ubuntu itself, it has been a profound disappointment as well. I will not be trying Dell or linux on desktop for another 7 years at least. My 9 year old Macbook Pro is far superior to this mess.
PS I also tried hackintoshing this laptop, and it worked 95% of the way, but it requires the latest BIOS to work, and that causes random shutdowns regardless of the OS.
I wish I could use it at work since we (Hootsuite) already use Scala heavily on the backend, but I am reluctant in part because Scala.js does not quite have financial support of Lightbend. Or so it seems, it's a bit hard to tell where Lightbend ends and the non-profit Scala Center begins. The latter did pay to get some features implemented but reading their advisory board minutes, I'm not sure if they would have enough funding to pay for the majority of Scala.js development, which if I understand correctly happens for free as part of a PhD right now (note: my information might be wrong/outdated!)
So, if anyone involved with Scala.js is reading this and has better insights on the situation, it would be nice to know.
But I will keep using it regardless. It's marvellous.
For example: http://hnapp.com/?q=haskell%20type%3Astory%20score%3E20
If you don't see the "next" link, then there are no more results. Note that hnapp only has data since around August 2014.
Personally, I like Economics problems too but chose to focus on software development a long time ago. The alternative to me at the time was finance with VBA / MS Access coding sprinkled in. No thanks.