Apple iOS 12.1.2 Has a Serious Problem - <AUTHOR> https://www.forbes.com/sites/gordonkelly/2018/12/22/apple-ios-12-1-2-problem-iphone-xs-max-xr-mobile-data-cellular-4g-cannot-load-internet/ <comment><USER8> Is it just me or is "After a promising start, iOS 12.1.2 is going from bad to worse for iPhone owners" kind of a hilariously bad lede?

</comment><comment><USER9> Forbes publishes an article with a clickbait title like this for almost every version of iOS.

<comment><USER10> Gordon Kelly usually does three, "iOS <x> — Should You Upgrade?", "iOS <x> Has a Great Secret Feature", "iOS <x> Has A Serious Problem". They're all trash.

        Apple iOS 12.1.2 Has A Serious Problem - <USER7>
        Apple iOS 12.1 Has A Serious Problem - <USER7>
        Apple iOS 11.4.1 Has A Serious Problem - <USER7>
        Apple iOS 11.2.5 Starts Causing New Problems - <USER7>
        Apple iOS 10 Has Three Nasty Surprises - <USER7>
        Apple Confirms iOS 9.3.2 Has A Serious Problem - <USER7>

</comment></comment><comment><USER11> "...Disconnects Mobile Data" or the like would've made for a less obfuscatory headline.

<comment><USER12> That version of the headline wasn't upvoted, [https://news.ycombinator.com/item?id=18743963](https://news.ycombinator.com/item?id=18743963)

<comment><USER13> people click clickbait, whodathunk!

</comment></comment></comment><comment><USER14> To everyone hoping to avoid the problem, make sure you disable automatic updates if you are still on 12.1.1 or earlier.

Settings > General > Software Updates > Automatic Updates

<comment><USER15> I'm sticking with iOS 10.3.

<comment><USER16> If you can upgrade, you should. iOS 12 is the best version in a long time.

<comment><USER17> Yeah. Battery life, speed, everything is better on 12. Especially on older devices, like mine (6s). Don't need a new one for at least 1 / 1.5 years.

<comment><USER15> You must be one of the few 6S people to claim 12 is better. Pretty much all I've talked to regret every going to 11 or 12 on the 6S.

<comment><USER18> 11 sucked for older iPhones. 12 brought the magic back and new useful features.

</comment></comment></comment></comment></comment></comment><comment><USER19> Isn't there an extensive QA with all sorts of automatic and manual flows before they push out a release? Not sure this is the first time they've pushed out something with problems.

Not saying it's easy, either, I'm sure there's a lot of things to think about. But it's the world's most valuable public company.

<comment><USER20> The software I work on has about 50,000 daily users. Every time a change is made, there are extensive automated tests that test all of the software features. Then the nightly build is automatically connected to every compatible piece of hardware made in the past 20 years and tests that change against all of that hardware (this step takes about 10 hours to complete). Then, and only if it passes all of those automated tests, there is a team of people who continually test any new changes, and try to recreate any problems that have been reported by beta users and field users. Before a release, they spend a month testing it from end to end.

If a critical bug ever makes it to the field, which almost never happens anymore, not only do we revert to an old version immediately (which I suppose Apple could make available if they wanted), we spend as much time as it takes to understand how it got past our tests in the first place. Then, not only do we write a specific test to catch it next time but we also look at how we can change our process to fill the hole that allowed it to get past in the first place -- so other problems can't get through that same gap later.

If that's our process, and we're a small outfit compared to Apple, I can't imagine how rigorous Apple's process is.

<comment><USER21> > If that's our process, and we're a small outfit compared to Apple, I can't > imagine how rigorous Apple's process is.

Why would you blindly assume they have a more rigorous process just because they are bigger?

<comment><USER22> 1\. larger customer base means more angry customers to deal with

2\. they have more money to throw at the problem

3\. any problem that makes it into the wild gets blown out of proportion, so pre-release testing is part of their PR budget

</comment></comment></comment></comment><comment><USER23> got this problem this morning, a message says my phone is not activated and then shows "No Service";after auto-upgrade to 12.1.2 last night after power off/on the phone, it seems ok for now;

I am in US, iphone 6s plus

</comment><comment><USER24> I'm seeing WiFi disconnections a few times a day since about 2 weeks (disconnecting during FaceTime for example), but only on my iPhone X, not on my iPad Pro 10'5...

</comment><comment><USER25> Is the problem just on X or newer iPhones?

<comment><USER26> I have a SE, I've had 12.1.2 for a few days with no problems.

</comment></comment><comment><USER27> Has Apple really not learned from the recent past? iCloud hacks, passwordless root login, Batterygate, the list of lacking QA and technical excellence goes on. Now this, and again with a total lack of good communication. I really wish the last hardware company with a track record in preserving privacy took some lessons from Google's SRE culture. A transparent, timely postmortem and a public apology would go a long way, but that just wouldn't be Apple. "We know what's best for our users", yeah...</comment>


Node.js and io.js leaders are building an open, neutral Node.js Foundation - <AUTHOR> http://blog.nodejs.org/2015/05/15/node-leaders-are-building-an-open-foundation/

<comment><USER2> I'm a big fan of node.js/io.js and I'm pretty excited about this, but I have to say I've lost all respect for Joyent.</comment>


Tackling Webdev as a Bioinformatician: why is it so hard? - <AUTHOR> https://jessimekirk.com/blog/web_for_biofx/ <comment><USER2> Tackling bioinformatics as a webdev: why is it so hard?

"I am a professional in Field X but I am doing work in Field Y despite having minimal skills or experience and I ran into loads of problems and issues that I don't know how to fix! Field Y is total bullshit and people need to make it easier so people with no skills or experience can do it! Wah wah!"

... or to be less facetious, modern web/frontend development is a genuine skill set that benefits from experience and knowledge.

Should we expect anyone to just jump in cold with minimal experience and not find it difficult? E.g. in the same way would we expect people to start bioinformatics cold and be productive immediately?

I'd doubt it.

On the past web dev has been looked down upon as somehow "lesser" than "real" engineering, with sneering criticism from people more used to traditional development approaches (particularly criticism of JavaScript). It is just some web pages right? HTML and CSS? How hard can it be?

Well guess what: it is a genuine skillset and people should not expect to just be able to jump into something without knowledge training or experience and be proficient at it, just like we'd not for brain surgery, car mechanics, concert piano, structural engineering, or indeed bioinformatics.

</rant>

<comment><USER3> This shouldn't be the top comment. Yes, switching fields and expecting to just work professionally is naive and insulting towards the other profession. Has web dev a lot of legacy cruft and suffers from over-engineering? Absolutely. Even for seasoned programmers starting web dev is harder than it needs to be. Front end development has JS frameworks, CSS or compile-to-CSS languages, templating, web packing, JS transpilers, tree pruning, multiple package managers and what not. But in the end it's just a bunch of text, images and buttons.

<comment><USER4> You can reduce any field to "it's a just bunch of...": All coding is just a bunch of binary numbers. All chemistry and biology is just a bunch of molecules. All construction is just a bunch of concrete, bricks and steel. It's nonsense, and is exactly the kind of naive and insulting statement you talked about.

Complexity is emergent. Look below any complex system and you'll find a simpler one, but that doesn't mean the higher-level complexity is unnecessary. All the things you complained about have good reasons to exist, invented by people who actually work as professional web developers and need to solve problems.

The real problem is "seasoned programmers" who don't work in web development, but who expect to be able to jump in an master it in a day, based on the fact that they put together a GeoCities homepage twenty years ago, and are enraged and disgusted to find that things aren't so simple anymore. It's absurd. Developers wouldn't expect to be able to jump into kernel development, or database development, and find it to be a breeze.

<comment><USER5> So, the thing is... I'm not a webdev, though I've done web development in the distant past (early noughties). I'm not a desktop dev, though again done it in the late nineties and early noughties. I messed around with modern desktop/mobile dev recently (specifically Cocoa) and it's basically fine; in many ways simpler and better abstracted than what I was used to (mostly GTK+ and some win32 stuff back in the day). I looked at modern webdev stuff... and I'm sorry, it's insane. Vast increase in complexity for, for most purposes, no real gains.

I can't think of anywhere else this is the case. If you want to access an SQL database, that's easier than it used to be, and better abstractions on top are available if you want them. If you want to write a web API, that's easier than it used to be, and again nice abstractions are available. If you want to process tens of terabytes of data, that's so much easier it's not even funny. But if you want to write a webapp... unless you totally ignore the modern stuff it's vastly, vastly more complex than it used to be.

I suppose this may be my grumpy old man side coming out, but I really don't find modern single page apps to be a better experience than mid-noughties webapps in the vast majority of cases. They're usually worse; in particular they're usually slower, and mess with UI expectations more. And yet they are _vastly_ more difficult to produce. The whole thing seems like it took a wrong turn somewhere.

<comment><USER6> This is not talked about enough. We frequently ask whether it's too complex, but that assumes the objective is even sound.

Anyone who has done significant work on a full scale SPA using any framework (or no framework) would have to weigh whether it was worth it. And that's on two levels: 1) Was the additional effort and complexity worth it for the _perceived_ improvements in user experience that were sought? And 2) were there actually any such improvements or, even, is the user experience actually worse as a result?

Because I have to say that I'm not convinced. There does seem to be a period when AJAX first became a thing wherein the added responsiveness gained from judicious use of dynamic operations with partial page updates improved the experience over full page reloads exclusively.

Then, someone said, "hey, if that's cool, then why don't we make the whole thing dynamic, fighting Web semantics (and standard browser behavior like back buttons and history) every step of the way?

Not so sure that's a good premise or has led to a good result.

</comment></comment></comment></comment></comment><comment><USER7> All programming has a barrier, but I think web development is a unique situation where there's a lot of complexity because it's so open to abuse. If you don't do HTTPS right bad things can happen, so setting that up is hard. If you process payments bad things can happen, so setting that up is hard. If you send people email bad things can happen, so setting that up is hard. With things like game programming the worst that can happen is your game is slow or buggy or laggy but usually you're not exposing it to the huge, often malicious audience. With web development you make one mistake and someone is stealing thousands of dollars from you and running cryptomining on your VPS while defacing your website.

<comment><USER8> But things like HTTPS, payment processing, emails / account management and even game programming, all of these have already been made easier - nobody has to build any of that on their own anymore, at best they have to configure it.

To make a safe website, stop wanting to do everything yourself. Use a webhost that doesn't give you SSH access, or a service like Netlify.

<comment><USER9> And linking all these heterogeneous pieces together and configure them to work is like cat herding: each component is so different and the developers are so proud of their "innovative" way of doing things that one cannot master it. A few years ago I started to believe that modern web developers are more about showing off and hipstering than having a genuine desire to make things better.

<comment><USER10> Weirdly, I think the same. I noticed an uptick of twitter programmers.

</comment></comment></comment></comment><comment><USER11> I feel like interacting with there real world, and with users in particular, just inevitably leads to orders of magnitude more complexity.

You can see that even in simple cases. Writing a basic single-propose script is trivial; it may end up being just a line or two. As soon as you decide to make it general and reusable, though, complexity explodes: positional arguments are confusing, better name them. Users are gonna expect a familiar format. Need a library for that. Reasonable and understandable names are tricky! What arguments are required versus optional? What if _this_ option is specified without _that_ one? Gotta add proper errors for every bad state! What if the user starts using globbing? Or wants to specify multiple inputs and one output, or vice versa?

Your three-line script is now 100+ lines. And you're not even worried about hostile or abusive users yet!

Writing code for the web is all that--and much more besides.

</comment><comment><USER12> In a related article: "Tackling bioinformatics as a Webdev: Why is it so hard?"

Maybe Webdev is just complex? But tbh, as a bioinformatician (in Next Generation Sequencing mainly) I actually find Webdev easier. I mean, we face Bam files, Sam files, Cram files and annotate them with Bed files (with many different poorly documented standards) or GTF files depending on your Ensembl or UCSC references persuasion... Some file types are 0-based inclusive, some are 1 based exclusive, some call chromosome just ints (1,2, and then error when X, Y if you really assume they are ints) some call them chr1, chr2, chrX etc. We have fastq files with different quality encodings depending on their age, I recently had some strange errors, turns out the R2 of a fastq file is reverse complementary from the standard (why?!)... It's a mess and many people that spend years in the field still don't know more than just "choose one side and stick with it"... We also have a huge amount of frameworks for data analysis pipelines, Snakemake, Bpipe, Broad's WDL, etc, etc, etc. Not to mention the insance amounts of read mappers (BWA, RSEM, Tophat 1 and 2, Kallisto etc). Need I go on?

<comment><AUTHOR> That's super interesting. If someone asked me if bioinformatics was complex, I'd say "Yes, massively so." But then, I would take it in a totally different direction. To me, the complexity of bioinformatics come from the biology. How do you think about weird biological edge cases? What do your distributions look like and how do you choose thresholds? How do you even form a good question?

Thinks like [B|S|Cr]am files are complex in their own way, but mostly they're just kinda annoying to have to figure out. You can dig in as deep as you need pretty easily.

On the other hand, maybe I'm over-simplifying because I feel more comfortable in this domain, which I think is your point.

<comment><USER12> Well, I come from Biology, always had Webdev as a hobby and then moved into bioinformatics which now turns towards software development. So Biology feels most familiar, but it is indeed also always complex.

Btw, the files are ok and with effort can be understood and maybe some could even be considered elegant. It's just the shear amount of "standards" or rather the lack thereof.

</comment></comment></comment><comment><USER13> Documentation is frighteningly bad across the industry and nobody has a good solution yet other than hoping that someone else will do something about it.

And if you think Django is murky, try Spring :). Django is one of the easiest frameworks to work with simply because it includes so many functions you would otherwise need to somehow integrate. And even then there are still these issues.

Good post.

<comment><USER14> I think Django's documentation is fantastic. 90% of the time I have to look up something, google redirects me there anyway.

<comment><USER13> Django's documentation is great for developers who know their way around documentation like that as it is very comprehensive. It drills down nicely and is quick and easy to understand if you otherwise know what else is going on.

What it misses is mapping that documentation to the specific problem a person wants to solve or the feature they want to build. When I was learning Django a couple years ago I found the examples and best practices sparse.

<comment><USER15> A long long time ago, there was a really great website called djangobook.com. It had like 20 chapters and projects explaining how things are done in Django, and each paragraph had a comments section where people could ask questions specific to that paragraph. That site probably did a lot for Django's success in the community.

Unfortunately, giving away a free resource like that doesn't balance the books and years of neglect later the site no longer represented modern Django. It's entirely possible the new Django book site is just as good, but the paywall discourages novices and experts alike. My friends who stayed webdevs think Two Scoops of Django is close in scope, and comes with free updates. It's not quite the everbook that I had hoped the original site would be, but is highly focused on best practices.

<comment><USER16> The Two Scoops book is good but I found it difficult to read due to its extremely contrived examples. Maybe that is just me though.

<comment><USER17> Not just you. Also annoyed at their pricing model; I bought the original book, 3 months later it was out of date and "buy our updated copy" was their answer. I got no use out of it.

</comment></comment></comment></comment></comment></comment><comment><USER18> It's funny, when I was first learning programming 15 years ago, the thing I heard everywhere was "webdev is easy and for noobs", and sure, it was 15 years ago and webdev has come a long way... but when I interview the fresh-out-of- college candidates for junior positions, there's still the elitism of "If you aren't managing memory and flipping bits you aren't a REAL programmer."

No, most web developers aren't implementing the most complex and intricate algorithms or 'close to the metal' or whatever other gatekeeping people want to claim, but that doesn't mean it's easy work. I've never had a job where I didn't see some green engineer laugh off a feature request with "Oh, that's easy, it's just calling an API and putting the information into some HTML, what's so hard about that?" and then getting stuck when their first implementation fails QA, or the product manager explains that the customer needs it to be ever so slightly different, and the complexity of those edge cases turn out to not be so easy to deal with as the world of perfect computer science might suggest.

Is it hard in the same way? No, I will fully admit that coming up with a novel algorithmic solution requires a different mindset and brilliance that very few, if any, really good web developers I've met really have (although I'm certain there are people who excel at both, they're rare enough that I haven't been lucky enough to encounter them). But being really good at building a solid, secure, modern website isn't easy either, and it's _also_ valuable.

This post focused on the complexity of the tooling, which yes, is definitely a thing, but if you don't know web development, and you _know_ that you don't know web development, why are you attempting to build something using complex high level tools designed for and used by advanced web developers? Then again, if you don't know web development and you don't know what you don't know, and you've just heard 'Django is good' how would you know to maybe pick Flask or something simpler to understand?

I don't have an answer or a larger point other than this: writing software is difficult and complex and none of us should look down on anyone else because what they do seems easy on the outside.

<comment><USER19> I wouldn't count Flask as simpler than Django. These 5 lines hello world examples are incredibly misleading.

<comment><USER20> Exactly.

You end up cobbling together half a dozen plugins (auth, forms, orm, admin) and adding dependencies that, albeit useful, are complex themselves: Celery, SQLAlchemy, etc.

<comment><USER19> Having a single source of documentation and components perfectly integrated out of the box make a huge difference.

</comment></comment></comment></comment><comment><USER21> You start with HTML. Write your HTML in an editor. You now have what we started with and I won't complain about your un-styled site. Right now I'm working on a simple personal thing with unstyled pages and a static site generator (Hugo.)

The first Google search for hosting should be fine. There should be a simple tutorial for uploading your HTML file.

That's all there is to it. Beyond that, maybe you're just trying to bite off more than you can chew because you think you need things. It would be like going to ACME engineering supply and grabbing a bunch of stuff off the shelf because it sounds good. Then you get home and you have no idea what these things do.

A lot of this stuff looks deceptively like it all goes under the category of "web development." Sending an email isn't web development. That's dealing with a different protocol and different server software. You don't need to go far down that path before you start to wonder how any of this mess can work at all. I'm not even talking about web development, I feel this way all the way down to the metal. Yesterday I spent hours trying to troubleshoot an issue with Ryzen 3rd generation chips apparently having a problem when you load up all the slots with RAM (I threw in the towel because I can get by with half the RAM.)

That has always been the case. Software hasn't gotten worse, it has always been bad. But functional. Maybe it has become more complex.

<comment><USER22> Anecdotally I have a Ryzen 3600 on a B450 board with all RAM slots populated and have yet to notice an issue that isn't there when using only half the RAM.

<comment><USER21> Probably the wrong place for the discussion. Do a search and you'll find all sorts of people with this issue. I had the problem after I first built the computer. Then I was able to boot by lowering the speed of the memory in the BIOS, now I have the problem again after a reboot. I don't know what changed. There's hundreds of threads which cover a lot of ground on this issue. I'm just going to make this a long term project to understand the issue until I finally cave and buy something which has already been built.

Edit: Also 3600 with B450 board. Kingston DDR4-2666 Ram (8x4) which is all the computer store here in smallish city in the Philippines had in stock.

</comment></comment></comment><comment><USER23> I 100% feel your pain.

I used to work for a very large financial news company. They were all javascript. I though to my self: I learnt JS in 2008, this should be easy (it was 2014). Apparently very hard.

HTML isn't HTML anymore JS is forced everywhere, and everything has a different name.

Anyway, I disappeared back into HPC/VFX/machinelearning, to re-appear into webdev in 2020.

I was forced to do some front end work as part of a bootcamp. It took the best part of a week to make a bit of text a link.

The template library was so far removed from anything googleable, there was no documentation, worse still no style guide or example style guide.

I am glad I don't do web GUIs, they are hard and nasty.

<comment><USER24> _It took the best part of a week to make a bit of text a link._

This highlights the problem with web dev quite nicely. Not doubt you weren't _really_ just making some text in to a link. I know the sort of thing bootcamps do, so you were probably installing and learning React, displaying a set of components, implementing React Router, and figuring out how to update app state based on the browser's History API. All with a template library that was a terrible choice for learning (because it didn't have docs). You _could_ summarize that as "making a bit of text a link", but that's glossing over the details.

What you were _really_ doing was learning component orchestration, reactive state management, and a browser API. Why _wouldn 't_ that take a week?

So the problem with web dev is actually that it's really, _really_ easy to trivialize. You can make hard things sound like they should be very straightforward because they look a lot like something simple from the past. And when people find that they're not really doing the simple thing any more they complain because the new, harder way of doing something (which is actually doing something _completely_ different eg reactive state management and in-browser routing vs asking the browser to do a GET) is hard.

<comment> dynamite-ready And there's the problem...

"...component orchestration, reactive state management..."

Webdev tool makers are sadists, and many of the 'thought leaders' in the field have Stockholm syndrome.

Some aspects of web development certainly are hard (security especially).

Frontend development however, does not need to be as hard as it currently is. At the very least, I think there's an opportunity to simplify that layer of the stack, and give the control back to design professionals.

Dreamweaver to my mind, represented a more productive direction than React currently does.

<comment><USER24> On the contrary, front end isn't good enough yet, and getting to the point where it's ideal will require _more_ complexity. Users want things to work fast. If you're including a roundtrip to a server your app will _never_ be good enough for a user on a rural 1Mbps satellite connection with 500ms latency. That's the goal - your app has to work well for that guy. You _can 't_ get it to be fast if you're using the network a lot. We need concurrent rendering, async background processing, and as much work shifted on to worker threads as we can manage. All the things that native apps do to crank up the performance need to happen on the web too.

Also, don't forget that the web is fantastically backwards compatible. You can write web apps without the complexity if you want to. You can use Dreamweaver! You can server-side render every page. It works. If that's what you want to serve your users then you should do that. Just don't complain when they use the competitor's app that's faster, more responsive, and does fun things like working offline.

<comment> dynamite-ready More than any framework, what most market leading applications need to provide a competitive service, is greater access to creator resource (developers / designers / content creators, whatever) and / or innovation in pre-production and design.

The problem with current development trends is in how the complexity found in the tools, makes the pool of available creators (at a want for a better term) a tiny, exclusive club. This has a detrimental effect on efforts to innovate at design / pre-production stage, because the designers are near enough held hostage by us developers.

It also has an overall effect on project velocity, because work that could possibly be covered by techically competent designers (namely HTML/CSS development), can only be addressed by expensive and exclusive 'framework specialists'.

I strongly believe this can change by rethinking where the complexity lies.

The culture built around over-complicated tooling is possibly analogous to placing the responsibility for the production of a feature film in the hands of the VFX and lighting teams, or perhaps only deeming a mechanic as having the aptitude to drive a car.

I'm not rigidly stuck to this idea, I'm just musing here.

<comment><USER24> _perhaps only deeming a mechanic as having the aptitude to drive a car_

This analogy is a really good one, but you've got it slightly wrong. The website user is the person driving the car. The developer is the equivalent of the person building the car. Saying the development process is "too complicated" is like saying developers should only ever build compact family cars like a Ford, but some of us want to be building BMWs and Teslas and Porsches and F1 cars and monster trucks and semi-trucks, etc. Sure, it's more complex and difficult, but the end result suits the user better, fulfils their needs better, and often just makes them a lot happier.

</comment></comment></comment></comment></comment></comment><comment><USER25> I start getting my friends up to speed by giving them just enough JavaScript + HTML to write a Tetris clone. Of course - I guide them along the way, answer any questions they have, and push them towards the right direction if they get stuck. If they can get through it - then they can make it in the world of WebDev, and software engineering in general.

The main thing to remember is that you can only show the way - the person in question must actually step forwards and be motivated enough to go through the learning process. Otherwise - you need to think of another career. Programming is not for everyone IMHO.

<comment><AUTHOR> A little tangential, but learning to code through video games has always seemed like one of the best ways to do it, particularly with friends.

</comment></comment><comment><USER26> And it looks like you've just scratched the surface, you're not finished encountering walls yet.

Hang in there, there's a relative important chance that the fog will clear for you in some months/years.

The hard truth is, software engineering today is made of layers upon layers of abstractions. You have to dig threw those layers, understanding sufficiently the inherent and different complexity of each one before jumping to the next. And then finally it'll make sense, and new layers (there's a new layer every year btw) will be easier to grok.

If it helps, we've all had to go threw this learning process. All of us. However I don't think everyone is made for enjoying this process, that's another hard truth.

The real difficulty is sticking to the learning process while everything and everyone is screaming at you "Go! Build something! Ship Something! Show something you lazy b __ __".

</comment><comment><USER27> Http is just clearly not made for the current state of the internet. It was obviously made for much simpler uses cases but has organically grown together with the internet. This has led to numerous hacks and workaroudns which often became the defacto standard to do things on the web. It's not necessarily an easy problem to solve, client server communication is hard. But http protocol seems like the least effective way to do it, but almost impossible to replace now.

<comment><USER28> Applies even more so to CSS and JS.

All the above are quick hacks that never really did the job properly in the first place. So they're propped up by a creaking pile of frameworks and other support systems that try to mitigate their awfulness, but mostly just add extra awfulness of their own.

Meanwhile backend systems - core server and db infrastructure, user authentication, computing resource allocation, payments, media and content management, privacy, and project build systems - are even more byzantine and non-standardised and more or less have to be retooled from scratch for every project - a huge job which duplicates an incredible amount of work across the entire industry.

</comment></comment><comment><USER29> > or the "right" framework to choose, changes from year to year

I've been using React in all of my projets since it came out in 2013. That's 7 years. React's (+ node for backend if needed) been one of the recommended for at least 4 years.

And lots of things have changed ! Using modules and building complex apps now with Webpack & co is so much easier than before. Not needing to support IE is also a blessing.

The piece doesn't say how mobile dev would be easier. Or how embedded dev would be easier.

It just says : dev is hard. Yes it is, it's a a full job.

Hopefully nocde solutions will reduce the gap for some use cases.

<comment><USER30> React - as a library, but especially as a UI paradigm - has clearly won the frontend war for now, taking the mantle from JQuery. I don't even use React directly, just its DOM renderer through a ClojureScript wrapper (reagent) and the high-level concepts are still basically the same.

Still, when I glance at the JS frontend world people are _still_ looking for the next hot frontend framework all the time, even if many are doing something similar to React. Going by github stars, Vue is the biggest one now. There's also Angular, Svelte, Ember, and Aurelia.

<comment><USER29> You're right. React and Vue are hard to compare though. The fact that React has no router, while react-router has 40k stars makes it a very imprecise metric.

</comment></comment></comment><comment><USER31> Yes, web development is hard and stupidly complicated and slapdash and we all hate it. It sucks, and the whole thing should be burned to the ground, the ashes sown with salt, and pissed on by donkeys.

Unfortunately we're stuck with this Rube Goldberg collection of excrement, and it pays the bills. So there's nothing much you can do except lean in and embrace the suck. Maybe hit yourself in the forehead a few times with a clawhammer or start carrying a hipflask to keep yourself at happy-drunk.

</comment><comment><USER32> Very thoughtful article. There is so much accidental complexity in software.

<comment><AUTHOR> It's kind of ironic. While I've been thinking about the complexity of software/webdev for a while, I was feeling a little unsure about posting this particular link because I wrote it in a hasty, semi-embittered fit of annoyance. Regardless, thanks for the read. :)

<comment><USER33> hopefully this observation won't be taken too harshly...

I have also worked in programming for the sciences my entire career, multiple decades, would not want to do anything else. There is an awful lot of actual complexity out there especially in the life sciences which is inherently messy ... a system of exceptions ... Sometimes looking at the stuff that has to happen now, just to give information away for free it is staggering. The only conclusion I come to is complexity envy, Because I can't believe all this inevitablely became necessary. Yes there are bad actors and good security is very hard, and much more so if you are transacting money, but in other cases you can't really steal what is being given away but now there is the expectation that all this extra stuff is par for the course it you are putting on the web.

</comment></comment></comment><comment><USER34> I love these kinds of retrospectives as they give insight into the learning process. We tend to focus on the acquisition of specialized knowledge but there is often a body of shared knowledge, the context you might call it, that we pick up indirectly.

You have to read between the lines but what we have in this post is a Data Scientist skilled in the Python programming language struggling to acquire the shared knowledge required to build and deploy Web Apps. One toolchain (Python), one framework (Django), one backend architecture (12-Factor Apps) but the narrative surrounding URLs, HTTP, DNS, TLS, REST APIs, JSON, CORS, and www-forms is missing.

We seem to be missing a simple way to learn the shared knowledge needed to build apps in a world reshaped by Web, Mobile, and Cloud technologies.

<comment><AUTHOR> I'm not sure exactly what it is about this comment, but I really like it. "Context" is a great word for this idea. There are a bunch of small/medium complexity things that need to play well together to get things to work, and it can feel trickier than necessary.

</comment></comment><comment><USER35> Honestly I've always found UI development or anything with some aspect of UI in general has the potential to devolve into a tangled mess. I've avoided web facing development for the last 10 years of my career, and have transitioned to embedded work. Every time I traipse through job postings and look at the tech stack companies are using ("wanted: full stack developer") I just shake my head. I am sure most of the choices are justified, but it all seems so brutally overwrought from the outside looking in. But beyond a fetish for novelty in our industry, I think that's just endemic to user facing development.

</comment><comment><USER14> Trying to make the opposite transition, my quibble with web development is that much of the work seems so pointless.

I hope that after this crisis we will care less about making people click ads than about learning how stuff works in biology.

<comment><USER36> _Trying to make the opposite transition, my quibble with web development is that much of the work seems so pointless._

That's the problem with web development today. Something that not only should be straightforward, but used to be straightforward, is now very complex. Partly because it involves connecting a large number of complex and constantly changing packages.

The last time I wanted to do something with an API, I coded up the API in Go and ran it from FCGI to get multiple copies. Easier than all those "frameworks". Probably faster, too, since Go is hard-compiled.

<comment><USER37> _> used to be straightforward_

As someone who remembers having to do weird CSS tricks for really basic layouts (negative margins? hidden extra elements that don't make any sense, but cause other elements to move?), manually modifying the UI made up of jQuery plugins that require a very specific prescribed HTML structure to even work, or doing significant adjustments for 3 or 4 different browsers, I definitely dispute that claim.

Web development right now (at least the frontend for sure) feels like a breeze compared to about 10-15 years ago.

Steps 1 and 2 of the whole process may have gotten more difficult, but steps 5 through 100 are a lot easier these days.

</comment></comment></comment><comment><USER38> Backwards compatibility.

It's possible to design coherent easy to use UI systems. Flutter and Qt are great and both much easier to develop for than the web IMO. But they don't have to worry about running in web browsers.

</comment><comment><USER39> I don't think the author is saying "why front end application development hard?" so much as "why is setting up a website hard?".

On one end of the spectrum, simply putting content on a website isn't so hard, right? On the other end, making a web application is understandably difficult.

Features like users, payment forms, and email confirmation (so e.g. the website can be used for a course) sounds like they ought to be as simple as the former, but are closer to the latter.

Is the value proposition from the website building websites like Wix that they take care of the hard stuff?

</comment><comment><USER40> People who understand the mess are much more influential and they are moving the show forwards. Making things easy for newcomers is just not very high on the agenda (anymore)

Perhaps things have to get complicated enough for it to get priority, perhaps cool things will happen all of a sudden. I was highly amused by the spreadsheet programming tool a while back. It seems a giant leap in the other direction.

</comment><comment><USER41> This is common among academics, who expect full transparency and understanding in what they're doing, instead of a "get it working and go" attitude.

The problem is the OP didn't test anything: He launched and users couldn't log in.

Ideally I'd like to gain 100% visibility into everything related to my tasks in webdev, but it's impractical and counter productive.

</comment><comment><USER42> It is hard to get the hang of Django is because the polls tutorial isn't helpful to actually understand Django and no one wrote this book yet, but I think Nigel has done a great job: [https://djangobook.com/mastering- django-2-book/](https://djangobook.com/mastering-django-2-book/)

</comment><comment><USER43> Welcome to real world, academic Neo.

<comment><AUTHOR> As my PI used to say, "If it were easy, it wouldn't be fun. And we wouldn't have jobs."

</comment></comment><comment><USER44> It's awesome to see an article get to the five why's. This is the Way.

<comment><AUTHOR> This has been my first experience with it and it seems like a great tool to ensure structured thinking. It's easy to give up a level or two deep and just say, "Oh, it's probably because..."

</comment></comment><comment><USER45> Related: institutions and labs need to recognize that 'research software engineer' is an increasingly necessary role and attract/fund more of them.

</comment><comment><USER46> Because instead of fixing genuine problems and making it easier people invent new languages and frameworks to do things in their own way.

</comment><comment><USER47> It is no brainer for professionals, but to be frank, it's too hard for everyone. It's time for a new PHP.

</comment><comment><USER48> looks like it got hugged

[https://web.archive.org/web/20200507060013/https://jessimeki...](https://web.archive.org/web/20200507060013/https://jessimekirk.com/blog/web_for_biofx/)

<comment><AUTHOR> Oh no! It's github pages and totally static, so it should recover pretty easily, I hope. Thanks for the archive though!

<comment><USER48> Must have been a blip on my end then.

<comment><USER49> It definitely got hugged, I couldn't access it either for a bit. Recovered quickly enough though

</comment></comment></comment></comment><comment><USER50> Is the author asking why putting up a paywall for Django hosted on Heroku with Stripe integration on what should be static content is difficult (for stories related to overcoming idiosyncrasies in using Python for bioinformatics, or all things)? I'd like to give a rebuttal, but the site (the Minimal Errors theme for Jekyll?) does click-jacking (blocks copy/paste) so I won't bother. I guess the answer is right there: webdev (and bioinformatics) is full of incidental complexity and zero-sum "solutions" advertised to you when the original purpose of the web is just publishing structured documents via HTML/SGML (even though I'd agree Python is great for learning, and Heroku has at least a reputation for being the easiest cloud hosting option out there).

<comment><AUTHOR> The site that's giving me problems isn't the site you were on, but another site I'm building:

[https://mycodestories.com/](https://mycodestories.com/)

It's not static; it's a platform for helping people (life scientists) learn to code.

In general, Heroku has been a great platform. The fact that you can just `git push`, and your dyno rebuilds and restarts and your changes are live is so cool.

</comment></comment><comment><USER51> A great read!

</comment><comment><USER15> > Why's there so much data in the url? A common refrain I'll use for the > remainder of the post is, "I don't know". One of my biggest gripes with web > programming is the number of rabbit holes to fall down. There's just not > enough time.

I mean, bioinformatics is _notorious_ for spending just enough time working on software to publish a result and no more. If we want to talk about rabbitholes I nominate BioPerl.

> here are a list of terms that you'd never come across as a bioinformatician: > ["X-Forwarded-Proto", "proxying", "requests", "TLS connection", "HTTP", > "loopback/localhost", "whitelisted proxy servers", "gunicorn", "nginx", > "Apache/httpd", "HAProxy", "Django", "SECURE_SSL_REDIRECT", > "SecurityMiddleware", "adapter", "URI"]

This list is more than a little disingenuous:

Django: This is like, the framework OP built their software on top of. I don't know how one gets the point of filing this bug without knowing the term Django

requests: literally, a user's web request.

HTTP/URI: this is the web developer equivalent of a biologist not knowing the term DNA. Or DOI for that matter.

whitelist: the opposite of a blacklist

Much of rest comes down to the simple fact that job of web developers is to build a network service. This is primarily done with layers; each layer only needs to know how to interface with the adjoining layers above and below, like a lego brick. This is actually a _solution_ to the complexity, allowing us to constrain the design of each layer to interact only with those above and below it. This layer abstraction lets us reason about each layer locally, independently of the system as a whole.

nginx, Apache/httpd, HAProxy: in this context, mentioned as possible proxies forming the outermost layer. in this context, accepts HTTP/HTTPS connections and makes HTTP connections to gunicorn

gunicorn: the thing that runs the Django app. Accepts HTTP connections, makes WSGI calls to the Django app

Django: Accepts WSGI function calls, routes them through middleware, then to the app as you define in urlpatterns

SecurityMiddleware: a class that potentially modifies inbound requests and outbound responses

Finally, OP is in the unhappy situation of bridging two network protocols: HTTP and email. The normal trick of using a protocol relative URI will not work here because you've gone outside the browser request-response loop. This puts them in the unhappy state of the lowest layer needing to know the details of the highest layer, hence the discussion of absolute uris. This is a direct violation of the local reasoning constraint, and what makes all of this hard.

X-Forwarded-Proto: An HTTP header, added to incoming HTTP requests designed to indicate to layers below which URI scheme was originally used, HTTP or HTTPS.

SECURE_SSL_REDIRECT: a setting for SecurityMiddleware that will stop processing the request and send a response to the browser telling it to resend the query over https (an HTTP 302 redirect), if the incoming connection is seen as coming over not http.

tl;dr: email is the thing that sucks.

</comment><comment><USER52> Because it's artificially made hard by people who enjoy complexity for its own sake. The article is about implementing a shopping cart, as far as I can make out. Well people used to write those kinds of websites, that perfectly well enabled users to browse products, fill a basket, place the order and make a payment using nothing more than notepad.exe.

Some software is legitimately hard to write, even some websites. But this isn't an example of that. The author has been sent on a wild goose chase.

<comment><AUTHOR> I'm curious where you got the idea that the site is a shopping cart?

CodeStories is a site to help life scientists learn to program by giving them problems, then letting them submit scripts and then auto-graded their scripts for correctness.

<comment><USER52> _CodeStories is a site to help life scientists learn to program by giving them problems, then letting them submit scripts and then auto-graded their scripts for correctness._

Because it's a pretty generic e-commerce application that could have been built on the web 25 years ago. It should not have been complicated to do.</comment></comment></comment>


Why does having a sexual interaction make you feel better for some time? - <AUTHOR> This may be the dumbest question ever... but I notice that if i go more than a few weeks without having an interaction, I start getting depressed and feeling tight. If I get some, I feel noticeably calmer and more confident/at ease for at least a week or more. Why is this, besides the obvious answer? <comment><USER2> Evolution? Animals having mechanisms to reward frequent sexual interactions would survive longer/better...

<comment><AUTHOR> Yeah but also there could be a mechanism that increases intensity of certain behaviors/feelings when the animal ISN'T reproducing regularly?

Also I wonder how doing it without an actual partner changes the chemical response.

<comment><USER2> I'd say that evolution would not have worked out anything more detailed, as long as the basic mechanisms worked for its purposes... so e.g. "doing it without an actual partner" might not change much, as long as the reward mechanism gets enough people to do it with a partner...

(Of course I'm attributing intent here, but it's a random process + feedback)</comment></comment></comment>


Ask HN:Instinctively writing comment blocks 80 columns wide? - <AUTHOR> I noticed something interesting in my code last night, that every single one of my comment blocks are all above 70 but below 80 chars wide. The longest single-line comment I could find was 82 chars.
I regularly write scripts for work, but I am certainly more of a hobbyist coder, so I imagine most of you who have many more hours doing this will observe similar?
Is there some secret aesthetic to 80 columns that makes it more comprehensible? <comment><USER2> 45-90 is recommended by typographers: [https://practicaltypography.com/line- length.html](https://practicaltypography.com/line-length.html)</comment>


Pygal – A Python SVG Charts Creator - <AUTHOR> http://pygal.org/

<comment><USER2> this is the first i have heard of this library, but i look forward to experimenting with it because it has an important use case: creating 'native' plots etc in the ipython notebook.

ipynb which has an impressive display system, eg, to view svg within the notebook:

from IPython.display import SVG SVG(filename='plot-made-from-pygal.svg')

alternatively, you could use ipython's HTML display: from IPython.display import HTML

and inject the pygal-created SVG into your own HTML template--a particularly nice option because ipython notebook is html rendered in a browser.

</comment><comment><USER3> Pygal has been ported to Javascript[1] and can be embedded in arbitrary web pages. I don't know quite what to make of that. Though the implementation in trinket.io[2] is pretty cool

[1] [https://github.com/trinketapp/pygal.js/](https://github.com/trinketapp/pygal.js/)

[2] [https://trinket.io/charts](https://trinket.io/charts)

<comment><USER4> Bloody hell. Last time I looked at skulpt I judged it as an 'interesting toy'.

But it's dawned on me that I'm watching a fully client-side Python app. And at 80kb it's not unrealistic to think about using it in production. Crikey...

</comment></comment><comment><USER5> Found this great library when trying to play with and visualise some data recently[1]. One of the easiest way to create a nice graph from pure python.

[1] [https://github.com/lebinh/aws-usage-report- analyser](https://github.com/lebinh/aws-usage-report-analyser)

</comment><comment><USER6> The following libraries target Python runtime instead of the browser:

\- [http://bokeh.pydata.org/index.html](http://bokeh.pydata.org/index.html)

\- [http://vispy.org/](http://vispy.org/)

</comment><comment><USER7> I'd really like the 'try it online' to be able to easily save the output so that I could have students use it to create their charts and then save them...

</comment><comment><USER8> Very nice hover effects. I have only one gripe with them though: The transitions should be way faster. .3 seconds max., possibly less.

</comment><comment><USER9> Ugh. No 2.7 support

</comment><comment><USER10> nice, i was looking at this last week!</comment>


US states set to reopen as coronavirus could push jobless rate to 16% - <AUTHOR> https://www.reuters.com/article/us-health-coronavirus-usa/next-wave-of-us-states-prepare-to-reopen-as-coronavirus-could-push-jobless-rate-to-16-idUSKCN2280L0 <comment><USER2> Just another Pearl Harbor/9-11 for the US. They could have responded early and mitigated this like Australia/NZ/Taiwan but now there is massive community spread there is no right answer. You open things up and more people die. You close them down and people likely die from poverty related things. The only sane solution was to act early and prevent this.

Why even have intelligence services, scientific expertise, governments, infectious disease agencies and emergency plans if they are all ignored until it is too late. I don't understand how so many countries messed this up.

<comment> Pick-A-Hill2019 Not a specific commentary on the US reaction (or any particular country) but some of it comes down to complacency. Zika, Ebola, SARS, MERS and various other outbreaks occured and were contained which lead to a general feeling that (especially in the early days) this would be another 'Non-Event'. It reminds me of a post a few months back asking if Y2K was actually a problem. [https://news.ycombinator.com/item?id=22556156](https://news.ycombinator.com/item?id=22556156)

<comment><USER3> Moreover, some of the places with the best reactions (eg Taiwan) were hard hit by previous epidemics and already had practice with responding to an epidemic.

</comment></comment></comment><comment><USER4> Opening up does at least one thing: removes the ability for workers to claim unemployment benefits if the employer also opens up.

More zero-hour contracts? You betcha.

<comment><USER5> Reduction in hours is a reason to claim unemployment.

<comment><USER6> What about reduction in salary for FTEs?

<comment><USER5> From Texas: "To be eligible for benefits based on your job separation, you must be either unemployed or working reduced hours through no fault of your own. Examples include layoff, reduction in hours or wages not related to misconduct, being fired for reasons other than misconduct, or quitting with good cause related to work."

Also quitting due to significant change in work agreement is a valid reason for unemployment benefits.

Every state is probably different.

</comment></comment></comment></comment><comment><USER7> We have to find a way to get to a new normal, where we can go about our daily lives with some reasonable level of safety measures. It's simply not sustainable to maintain a shut down long term.

<comment><USER8> Isn't what this article is about? "Some" states are "opening up", so I guess we'll get data soon as to how much economic benefit they got vs. how many lives were lost.

This doesn't sound, to me, like a very ethical experiment given that the cost of waiting it out for another two-ish months is comparatively easily calculated and not terribly "doomsday" in scope. Whereas a return to the days of late March where the death count was doubling twice a week very much... is.

Now... in practice? The "lockdown" won't really be released like that in these states, because people aren't going to be willing to travel or dine even if it's "legal". So these states will probably see a moderately worst outbreak and see moderately better results, and we'll all get to continue these arguments forever.

Probably. Or it could be a total disaster. I wouldn't bet on that result, exactly, but I wouldn't be shocked if it happened either.

For evidence: consider pork production. That is an "essential" industry. It's never been "locked down". Yet per the news today I see that 25% of the industry is effectively shut down by viral outbreaks anyway. That's what we should expect if we insist people go to work -- unexpected, uncontrolled outbreaks in locations and businesses and industries. We're not going to get to anything resembling a normal economy.

<comment><USER9> That's interesting, I hadn't seen calculations like that. What's the cost of waiting it out for another two-ish months?

<comment><USER8> The point is: not much more than the cost of "opening up" right now. Because "lockdown" isn't magic the government can control at a whime. People aren't going to engage in a full employment economy if they're justifiably scared of dying.

Or, possibly but not probably: the cost of opening up is vastly higher if we end up looking at 2-300k needlessly dead Americans.

<comment><USER10> But further lockdown can also mean more deaths from low economic activity. How do you know which deaths are worse?

<comment><USER8> Is there any reasonable modelling that puts worst case US recession deaths in the hundreds of thousands? I saw a pretty spun looking number in (I think) The Federalist back in March that claimed a staggering 40k deaths if we didn't open up right away. Needless to say that spin didn't survive reality well, that's not only the median worst case of the viral outbreak it's the status quo.

<comment><USER10> I would be interested in seeing such model as well

Some things to consider is also the type of deaths. Now I haven't calculated myself which decision is the correct one here, but just throwing out some factors that might (or might not) be favourable towards the decision to open markets sooner.

If most people who die are elderly and they would die in few years anyway are these deaths comparable to younger people who commit suicides or die from poverty due to recession - who otherwise might be productive members of society for the following 30 years?

If 75%+ of people who die are non-working elderly and maybe 80-90% of those would have died in the following 0-8 years would that mean 0-8 years of saved resources/care/medicine costs meaning economy would be better off and in the following 0-8 years we can expect proportionally fewer deaths?

Probably more factors here, but I would like to go to the next point now...

The steps on how to decide should be:

1\. Predict deaths (and what kind of deaths) for each following week/month due to economic recession, plus any other damages. Lost technological advancements etc which can indirectly also mean more deaths. Consider all the things that can indirectly cause deaths. There's also decrease in some type of deaths like traffic accidents during quarantine. Should we consider these?

I tried to Google for how many deaths 2008 caused - first thing I found was 260,000 extra cancer deaths, but I have no idea about validity: [https://www.hsph.harvard.edu/news/press-releases/economic- do...](https://www.hsph.harvard.edu/news/press-releases/economic-downturn- excess-cancer-deaths-atun/) This is 2.5x more than current deaths from coronavirus and probably within more productive demographic. Just citing that to suggest there's some possibility that recession could cause more deaths.

2\. Consider the pace on how fast can hospitals increase their capability to handle steeper curve.

3\. Predict how fast Corona would spread after opening. How would hospitals fare? Would this mean more deaths overall from Corona or same amount as if we had keeping a flatter curve. I think the only real way to know this is to start touching the waters, so in this case it seems like reasonable to try with few places first and get measurements from there to see if it's worth it.

<comment><USER11> Sure, they are comparable. Maybe not 1 to 1, but you could make up some metric that evened things out a bit:

[https://en.wikipedia.org/wiki/Quality- adjusted_life_year](https://en.wikipedia.org/wiki/Quality-adjusted_life_year)

(even if you don't agree with that metric, equivalence at some ratio is pretty clear, unless old people are just completely disposable)

At the moment it seems that individual susceptibility is a bigger factor than medical capacity, and we are researching dozens of possible treatments and working towards a vaccine. Makes it even harder to gauge the trade offs, as an effective treatment would pay big dividends when combined with a slowed spread.

I also wonder about attributing poverty deaths to economic shut downs. They are pretty preventable, and more a failure of our broader society than a result of the specific policy. The societal failure when it comes to suicide is less direct, but it's a factor there also.

<comment><USER10> > I also wonder about attributing poverty deaths to economic shut downs.

But this is always the case. If you can't solve this issue during normal times, how could you solve this issue during crisis? Force part of the society to pay more taxes during this time? There's certainly a lot of people dying all over the world due to poverty - these deaths could be prevented as well. Since there's less production things are probably even more scarce and expensive during crisis - if economy is shut down and people can't be productive.

Regarding ethical/moral dilemmas, to me it seems like the trolley problem is definitely highlighted during this crisis (it to some extent exists also during normal times), but now it's extremely apparent in my opinion.

Especially because also another question is very apparent - how valuable are different human lives?

Loosening economy means less deaths within general population, while it means more deaths specifically for elderly. Loosening isn't binary either so there's a balanced line that you have to draw. So you have to draw that balance between somewhere where you have to weigh economic damage, young productive human lives vs lives that are about to end anyway.

For instance. Would you save 20 people who were expected to live 1 year compared to a person who would go on to live 40 years?

If we considered years and probably higher quality years it would be 40 > 20 however death count would be 1 < 20

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Testing first, scientific analysis next, and opening last.

Or people can go to an Oklahoma restaurant packed shoulder-to-shoulder without masks with their governor and expedite the restart the pandemic curve to end up with 100k more deaths.

<comment><USER13> Oh, it will be more than 100K deaths if there are no measures at all. Once you run out of healthcare capacity, you're on your own.

</comment></comment><comment><USER14> It's worth noting that reopening early will also cause economic damage, and possibly more that not doing so would.

People dying costs money, both in the lost productivity of the dead and reduced productivity among those emotionally affected. More people will die with an early end to lockdown than would if it was maintained for another month or two.

I expect lots of grim economics research to come out of this.

<comment><USER10> Depends. In the conditions where coronavirus killed strictly only the old and weak and it had 2 percent death rate it would on average kill people around 2 years before their actual deaths. Let's just say everyone who would have died at 88 will now die at 86 instead.

This means that any costs are just advanced 2 years.

But since those 86 year olds do not provide value to the economy at this point, only consume resources, it will probably offset that by some margin. 2 years worth of resources and care.

Very simplistic way to look at this, but it could also make sense even if not only the elderies die. There is a possibility it is a net positive for the economy.

<comment><USER11> Average age is much lower than 86.

Michigan has had hundreds of people in their 40's and 50's die (~13% of deaths):

[https://www.michigan.gov/coronavirus/0,9753,7-406-98163_9817...](https://www.michigan.gov/coronavirus/0,9753,7-406-98163_98173---,00.html)

<comment><USER10> Yeah, I described extremes (for simple maths) to just show that it's plausible that a virus could have this effect given those conditions.

If you look here, you can see only 72% who die are above 64

[https://www.worldometers.info/coronavirus/coronavirus-age- se...](https://www.worldometers.info/coronavirus/coronavirus-age-sex- demographics/)

Median I would guesstimate based on this data to be around 72 or so.

But the point is how many people are dying who weren't productive members of society and how many years these people would have lived if coronavirus didn't strike them.

For illustration purposes if it always killed those first who were closest to death anyway and death rate was 2% it would mean I guess 74 * 0,02 years lost for median person or 1.5 years.

This number will increase of course because true nature is more random.

And to be completely fair then if in US each year dies a bit less than 1% of people and not all of them at old age. So let's say it's 0.6% dying of old age, then 2% death rate might mean around 3 years lost for median person.

But as I said this are illustrative and non-precise calculations.

If I had to guess I would say it's reasonable to estimate that median person would lose 1 - 7 years of their life due to coronavirus.

</comment></comment></comment></comment><comment><USER15> "Royal Rose, 39, owner of a tattoo studio in Greeley, Colorado, told Reuters.

Rose said she was reopening her shop after closing a month ago, not because she wants to but because bills are piling up and she feels she has no choice."

I don't think people will be rushing out to get tattoos...

<comment> aaron-lebo You must not know many people with tattoos. ;)

</comment></comment><comment><USER16> Seems that both sides, lock-down-until-proven-safe and stop-all-restrictions- yesterday, at least in the US are more focused on spin than facts.

What we need is an open and honest discussion, where conflicting opinions are not ridiculed or shut down but vigorously debated. This would put a premium on clear logic substantiated by numbers and estimates on error bounds. And explanations that an average engineer can follow; not super-complicated things that require a supercomputer to run and a bunch of PhDs to interpret.

In the end it comes down to figuring out what additional risks we, as a society, are willing to accept to stave off specific erosions of personal freedoms and economic impacts. If we do not learn to make this choice consciously it will be made for us by whoever is loudest today (and swapped by whoever is loudest tomorrow).

<comment><USER17> We don't have a (publicly facing) political system that rewards nuance.

<comment><USER16> I am not even talking about nuance, just some basic engineering clarity; and just between friends, no politicians nearby. I have seen a couple of times that the topic got discussed between otherwise calm, smart people. Both times it very quickly got into name calling, no technical arguments involved.

<comment><USER18> Engineering clarity and politics apparently don't mix. Not a good state to be in. How did democracy ever become "the loudest bullshitter calls the shots"? How sustainable is this?

</comment></comment></comment></comment><comment><USER19> It'll get far worse than that, with the Western Pact of States looking to have 80% of the lockdown through at least June, with no concrete plans or metrics to open up beyond that.

<comment><USER20> [https://www.gov.ca.gov/wp- content/uploads/2020/04/California...](https://www.gov.ca.gov/wp- content/uploads/2020/04/California-Roadmap-to-Modify-the-Stay-at-Home- Order.pdf)

<comment><USER21> Those aren't really metrics - it's very subjective. e.g. I read those 6 metrics and I'm like "ok, Bay Area can lift SIP".

</comment></comment></comment><comment><USER22> "Opinion polls have generally shown a bipartisan majority of Americans want to remain at home to protect themselves from the coronavirus, despite the impact to the economy."

I'll trust public opinion with my next health decision, it's always spot on.

<comment><USER23> It's remarkable that people are begging their governors to take away their civil liberties.

Table 2 is all a rational person should need to see to realize the quarantine is the work of fear-mongering by politicians and the media:

[https://www.cdc.gov/nchs/nvss/vsrr/covid19/index.htm](https://www.cdc.gov/nchs/nvss/vsrr/covid19/index.htm)

(For those who need an explanation - over the last two months, the data compiled in this chart shows that for people under 54, they are vanishingly unlikely to die from COVID. It shows that there is no rational reason that people under 54 should be locked down.

The flu killed 5x more people under 24 in the last two months than COVID did)

<comment><USER24> Help me understand your position.

I look at table 2 and see almost 30k people that died DESPITE a nationwide lockdown. Given what we know about the virus, that number would've hit 2M-4M had we not had the lockdown. What am I missing?

<comment><USER25> I think the idea is that as more data comes in it looks like this virus is not as bad as was first feared. There is no current data supporting a U.S. death toll of 2-4 million.

And a lockdown at this point doesn't save any lives, it only postpones the inevitable spread of the virus. It is not reasonable to stay in lockdown for a couple years until there is a vaccine, not for a virus that kills only 1 of 500 people.

<comment><USER26> yes, additionally, it is probably better to face the tide of covid cases during the warm weather rather than waiting for cold weather to compound its severity</comment></comment></comment></comment></comment>


Web browsers I have known, 1994-2012 - <AUTHOR> http://kottke.org/12/07/web-browsers-i-have-known-1994-2012 <comment><USER2> jwz's collection and instructions for getting old versions of Netscape running:

[http://www.jwz.org/blog/2008/03/happy-run-some-old-web- brows...](http://www.jwz.org/blog/2008/03/happy-run-some-old-web-browsers- day/)</comment>


Why Dealership Used Cars Cost More - <AUTHOR> http://blog.instamotor.com/why-dealership-used-cars-cost-more/ <comment><USER2> I was in a tight spot after college (recession 2010-11) and hustled hondas and vw's for a year and while this guy makes some good points, the 'average' car salesman was not making 60k. The guys on the floor were busting their asses 10-16 hours a day, 6-7 days a week (Saturdays mandatory, no paid vacation) for 30 - 50k at most places.

It wasn't uncommon to come in at 7 AM and close up at 11 PM after dealing with idiots that demanded to drive 5 cars and then get kicked out because they had 350 FICOs and wanted a new SUV with 0 down. The majority of people had no idea what kind of car they needed or what they could afford.

The things this guy doesn't point out is that dealerships will work with banks to get deals financed that otherwise might not be, they provide loaner cars, make sure people have insurance, and they deal with title/registration paperwork that is a huge hassle. They'll also take just about any trade-in if it runs (and some that barely run) and dispose of them (something that could cost you).

Vehicles are the highest value or 2nd highest value purchase for most people. You definitely need to know your stuff when purchasing a car, and I'm totally against predatory dealership tactics, but after working in the industry I don't have faith that the average american can navigate the myriad of vehicles, processes, paperwork, and other tasks that go into buying/selling cars directly. I also have a hard time trusting an individual seller after seeing the completely wasted cars we took in on trades.

<comment><USER3> Averages are weighted by the top end. Some salesman making 100k bring up the average wage even if the median might be ~45k.

<comment><USER2> I do understand statistics but 60k is way off. The lower end of the scale would be weighted more heavily due to turnover in the profession.

[http://www.payscale.com/research/US/Job=Sales_Consultant,_Au...](http://www.payscale.com/research/US/Job=Sales_Consultant,_Automobile%2FCars/Salary)

<comment><USER3> That brings up an interesting question if a dealership has 10 people working there on average, but 2 of those positions have really high turnover at the end of the year you might have 8 people that worked the full year, and another 8 that only did 3 months.

The day to day average would then be a lot higher than the per person average.

<comment><USER2> I think the actual commission distribution as well as the number of people in the position would be fairly consistent and most would assume these numbers are annualized. I'm assuming Payscale does something to that effect.

</comment></comment></comment></comment></comment><comment><USER4> Here is my recipe for purchasing cars. At first I really tried to purchase a car through car-max because I hated the negotiating process with the normal dealers.

What I discovered was that car max typically priced their cars 2-3K above what I could negotiate with another dealer. I also discovered if you want a used honda don't go to a honda dealer all the time, try going to a porche dealer or other high end dealers that don't want those hondas in their inventory at the end of the month. Also be willing to walk away

Summary:

1\. Goto car-max to get the max price of the vehicle and deduct 2-3k from it and try to find another dealer that will negotiate that price.

2\. Goto to high end dealers for non high end cars.

3\. Try to go towards the end of the month so I have been told by people in the business but I'm not sure on this.

4\. Most importantly don't be afraid to walk away . Last car I purchased I walked away then the dealer called me back a couple of weeks later and I got them for what I wanted to pay. This really shouldn't be an issue as most cars are not one of a kind and can be found at anytime for purchase.

5\. If the car is a hot model than all the above will likely be negated and they will be willing to not put to much time into selling you the car (negotiate)

6\. Buy at the end of the year nov-dec timeframe. This is because once January hits the car will be officially a year older.

Hence the dealer will work harder to sell you that 2014 or 2015 model before it becomes 2016 and it gets tainted officially as last years or 2 years ago model.

7\. Try to go by yourself and not with with your spouse or significant other , so you are the final word.

<comment><USER5> #4 and #5 are especially important.

Cars are built on an assembly line. Yes, there may be one on the lot that is exactly what you want, but that dealer is probably getting 6 identical models over the next few months. Being able to walk away is a must.

All this haggling and negotiating is great when it means 4% or 5% off MSRP for a car, free oil changes, etc. It sucks when you want a hot, very in-demand car that is trending 8-10% above MSRP and still has an 8-month wait.

<comment><USER4> Yep, Hot vehicles means there are 10 suckers behind you that are begging to overpay to get what they want or 5 others that don't care about money. Hence the dealer are willing to tell you to go F-off (not literally but negotiation type).

I actually had a dealer act like I was crazy when I laughed at the price of their stock Jeep wrangler in the 35K range. I had a couple jeeps before and I love jeeps but I'm also aware that they are not good vehicles for everyday usage and they are not very reliable . They are fun to drive and and off road with, but there is no way that I would justifying a 35K jeep for off-roading or weekend getaway vehicle.

Apparently others do and are willing to pay that 35K for it, so I'm out of luck in purchasing a Jeep as they don't need to negotiate.

So dealing with a dealer will be pointless for a 1-3 year old jeep.The only hope is to buy from an individual in need of getting rid of it, but even then that will be tricky because they likely owe more than its worth or what you would be willing to pay.

So my options are to buy an much older paid off jeep from an individual or possibly look at other alternative jeep like vehicles.

Also luckily for me I have a friend with a dealers license that allows me to buy at auction. So that will likely be my method of purchase when I'm ready again next time around.

<comment><USER5> I've got to disagree with you on the word "overpay." You can't have one side of the equation constant negotiation below MSRP or below invoice and then call it overpaying when the market will bear an above-MSRP purchase price. The alternative is a CarMax-type scenario where you have a sticker price that cannot be negotiated.

That being said, $35k does seem like a lot for a Jeep :)

<comment><USER4> True, Overpay is relative as you state and its based on the what the market bears. Like Popcorn in a movie theatre.

In my view and in my post I used overpay for what I considered what I'm not willing to pay for a product. Hindsight I could have used a better word or could have used a better description.

Like you I thought 35K was insane for a jeep wrangler but apparently many are willing to get loans for 7 or 10 year to pay for that 35K jeep. Those peeps are ruining it for the rest of us ;-)

</comment></comment></comment></comment></comment><comment><USER6> I currently work in this industry and the only thing I see that's drastically out of line with the real world is this:

>All the cars you see on the lot? They are owned by the dealership itself.

This, at least for the dealerships I work with, is almost never the case. For independent dealerships the only cars on the lot that they actually own are previous trade-ins. The majority are bought at auctions on credit (called "floor planning" in the industry). These are short term lines of credit that usually mature in 90 or 180 days. If the lot is productive, the unit will be long sold by then and the line of credit paid off, only to be used again. Depending on the number of sales made in the past year, the credit line with the floor plan company fluctuates.

Often, the same company (like Manheim in the US) owns the auction AND the floor plan financier. Cox Enterprises (Manheim's parent company) and KAR Auction Services in particular seem to be buying up smaller businesses in the industry left and right not unlike your big players in Silicon Valley. My company has fielded offers from both in the past, but our owner won't budge.

But I digress...the only other thing in the article that seems off to me is the emphasis on Certified Pre-Owned vehicles. Almost every dealer I work with will budge on that price. Making the sale is more important than a few extra dollars, in most cases. Plus, independent dealerships have a harder time with even getting vehicles certified, as opposed to the franchise stores that already have certified mechanics on site.

<comment><USER7> >For independent dealerships the only cars on the lot that they actually own are previous trade-ins.

Unless you are saying the dealer can return cars they bought at auction, I don't see what difference the floor-planning makes to the ownership of the car. When purchased off the dealer's lot, I presume the dealer's name will appear on the title as the seller.

<comment><USER6> The article seemed to imply that the dealer owns the inventory, where as I was just saying that the lines aren't always so cut and dried.

It's not uncommon for a dealer to buy a vehicle at auction without getting the title at the time of the auction purchase, floor it, then sell it with outside financing before the title is even in hand.

So the title essentially jumps from the auction seller to the outside finance company of the end buyer at some point after the time of the sale. The dealer never actually spends any money out of pocket for the vehicle, since it was floor planned.

Having a car last on your lot longer than the floor plan term usually means that it was a bad fit for your customer base (like stocking luxury cars in farm country) or you don't have good salesmen. Almost all sales are finalized before the floor plan term is up, so there is no out of pocket cost to the dealer up front.

Dealers _can_ return vehicles to the auction in some cases (for a fee), but usually that's only in the case of the auction itself being misleading (not disclosing prior major repair, salvage title status, or things like that).

<comment><AUTHOR> Floorplanning a car is still ownership, the only thing is that you're doing short term financing at very low interest rates. But once that financing is up, you still have to account for the $$ of the car. IF you don't sell it, you'll likely take it back to auction and sell it there (usually for a loss), so inventory risk is still present. Franchise dealers have floorplanning for sure, independents not so much. Plus, for USED cars, you usually don't floorplan those (from what I remember). There used to be a saying, if you want to find a Franchsie Dealer that was on it's death bed, look for the one that is floorplanning it's used inventory.

<comment><USER6> Without getting too specific, my company works almost exclusively with independent used car dealers (on the order of thousands across the country), and a majority of them absolutely floor plan their used inventory. Just look at the sites for NextGear[0] and AFC[1], targeting floor planning of used inventory:

"Our credit lines are accepted at over 1,000 auctions and accessible with other inventory sources throughout the U.S." and "Use your AFC line of credit to finance customer trades, dealer-to-dealer transactions and purchases made from auctions, leasing companies and other sources." This is how these services are being used.

And I'm not saying they won't eventually have to account for that inventory financially, but the process moves so quickly (at least at successful dealerships) that the dealer's bank statement will probably never even take the hit for the vehicle, because it's acquired and sold within weeks or days if they're buying the right inventory for their customers. The ones who aren't go out of business.

You're conflating independent used dealerships with franchise new dealerships who also happen to sell used cars.

[0] [http://www.nextgearcapital.com/inventory- finance/](http://www.nextgearcapital.com/inventory-finance/)

[1] [https://www.afcdealer.com/wps/portal/afcd/products/](https://www.afcdealer.com/wps/portal/afcd/products/)

</comment></comment></comment></comment></comment><comment><USER8> The article and comments (so far) miss the second dealer purchase negotiation phase. So you got a car for MSRP, or whatever, that's very nice. Well for $5/month over the lifetime of the loan we can throw in dealer provided product like this custom set of floor mats, they're really nice floor mats and you want a clean car and they're only going to cost you $5/month, right? (note that's $200 for those floor mats...). Or how about rust protection underbody spray, our dealership sells that for only 100% markup over just hiring a local to do it. Or how bout that service plan, we can roll your manufacturer scheduled $80 oil changes right into your loan, why, during your loan you wouldn't have to pay for anything but the loan and gas (and insurance, and garage, and parking permits, and that $80 oil change costs $40 anywhere else or $20 if you do it at home). You just spent $25K, how bout getting years of extra worry free driving with out extended warranty program, years of worry free driving for just another $3K?

</comment><comment><USER9> This seems like a "thin article"...of course a dealer is going to be more expensive, why do people hate some businesses for making money? Did you know Uber charges you more than it costs to drive?

I've recently bought 2 cars (first time through dealers), in all my calculations, over the life of the car, new or CPO came out significantly cheaper not even factoring in the nicer experience than trying to buy a Craigslist car or going to gravel lot dealers. I can't believe I just defended car dealers either, but, man, this article came across as terrible.

<comment><USER5> A lot of the dealership hate stems from the fact that negotiation is expected, so their first offer is always high, even above MSRP, and if you're meek and mild you're very likely to pay more than you need to. Even still, with the amount of information out there, margin are being squeezed and you're almost never going to find thousands in markup on any vehicle, especially brand new models, so a dealer offers MSRP (e.g. $30k), you counter with $25k, but since the dealer breaks even at $29,400 they stop answering your emails.

Transparency has helped but not as much as it could.

<comment><USER9> It's the same with private sellers, everyone wants the best price for them. Private sellers/buyers are terrible most of the time and act just like the stereotypical dealer, misrepresenting, not being communicative or transparent, dodging questions, etc. The main reason (I think) private party sales are lower is because very few people are comfortable doing a >$15k transaction without some sort of licensing and business reputation so there has to be a really good incentive to get a car from a non-dealer/franchise.

<comment><USER10> And this is hardly unique to cars. Yes, I'm going to pay more buying a used camera lens from B&H photo rather than off ebay. It's essentially a risk premium. (With autos, a dealer also provides some services related to paperwork and, potentially, financing/trade-in.)

</comment></comment></comment></comment><comment><USER5> The important part here is that the dealership's profit is $700-1k on a good CPO, not the $7,000 in total markup, which itself is a questionable figure.

I've never worked in car sales but a classmate from my undergrad sold at a new and used Lexus dealership for about a year and a half immediately after graduation. Even back in the 2007-2010 time period, there was _so much_ information going around that the vast majority of his deals were "minis," or sales where he got the minimum commission of $150 (I've heard it as low as $75 depending on dealership and make).

Car sales is sort of like a startup where if you grind for a while and build up a base you can make a pretty good upper-middle lifestyle. $150-200k a year is uncommon but not unattainable if you're naturally charismatic and can put a lot of volume through your pipeline, especially if you can move into the high- end aspirational market (e.g. Porsche, Aston-Martin, etc). It's also totally possible (likely even) to do $125k one year and $30k the next, and a lot of people can't handle that high level of volatility.

I really enjoy cars from a design perspective and I really enjoy business, if I had any sales ability at all it'd probably be a good part-time job.

<comment><USER2> Greater than $100k as a floor sales guy is extremely uncommon in a modern new car dealership, and really only possible in your major car meccas like houston/atlanta/LA. Most deals are "minis" (varies between $75 - 150). I worked in sales for a while and the average income is closer to 40k.

It's also pretty much impossible 'part-time'. Most people don't buy during their first visit. We worked 80 hour weeks because if you missed your client when they came back to buy it was somebody else's deal (or a halfsie).

<comment><USER5> Agreed on all counts (I figured it was an untenable PT gig but wasn't sure). I just meant that while the average is comparatively low to tech (if still slightly above the US average personal income), it's possible but uncommon to get into the range of upper-middle, with a considerable amount of skill/work/luck.

<comment><USER2> So at each dealership there is one sales guy that is going to be making good money. This is the guy that is given all deals that come through management in order to keep the rest of the floor guys drooling. I believe in the prostitution world this is the 'bottom bitch'.

From what I understood from the older guys, it used to a be a solid middle class gig with a free car, good hours, benefits, other perks, etc..but most new car dealerships are now consolidated countrywide conglomerates and the sales jobs are typical shitty retail with no time off and constant turnover.

Management and the finance guys still make good money but they work even more hours and you have to sit on a damn car lot 24/7.

To tell the truth, I lost all interest in cars after working on a lot. I drove high end bmw's, a ferrari (older), hummers, etc and now I give 0 shits about what I drive as long as it gets me around.

<comment><USER5> I come from a lower-middle/working class family and have always wanted a BMW. Everyone has said it's a waste of money, and intellectually I agree 100%. And I know with 90% certainty that when I eventually buy one at some point I'll think "Oh, that's it?" and get rid of it for another Toyota or VW.

But until then I will probably continue building BMWs, Benzes and Porsches online every few months :)

<comment><USER2> Don't get me wrong - driving a powerful car is a hell a lot of fun. But to me it was a novelty, and IMO you can get your fill and save a pile of cash by going to a track and renting a supercar for a day.

<comment><USER4> totally agree on renting the supercar and using the money saved to purchase nth home.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Car salesmen don't make great livings, and their income is very volatile. However, dealership owners always have the largest house in town. They also like to take advantage of unsuspecting customers. I have no sympathy for car dealers.

</comment><comment><USER12> Sorry, won't be reading this article or any other on your site until you disable smooth scrolling (or at least move the smooth scrolling logic into a separate smooth-scroll.js file so uBlock catches it and disables it).

</comment><comment><USER13> Also:

E.g. In Germany, dealerships have to provide 1 year of warranty for the car.

In some cases they also need to add 19% VAT (if it is a commercial re-sale?)</comment>


Internships that rake in BIG bucks - <AUTHOR> http://www.cnn.com/video/data/2.0/video/us/2014/03/03/hln-aber-highest-paid-internships-palantir-twitter.hln.html

<comment><USER2> I know those companies are big exceptions, but for comparison, interns in France are (as far as I'm aware, fairly uniformly) paid 436.05EU/month, or just under 600USD/month. That's 30% of France's national minimum wage.

It seems a shame that those big companies can skim off all the brightest talent by paying such lucrative wages, but at the same time, they've obviously worked hard to be in a position to be able to do so. A tricky one.</comment>


Ask HN: Is anyone still using Coffeescript? - <AUTHOR> With the rise of Typescript and lots of other languages that compile to JS, is anyone still using Coffeescript? Does it have any kind of future? <comment><USER2> That's a good question!

I think we'll ask the same question about Typescript in the future; I've integrated into a UI project I work with other people, to make one of our devs happy, but I won't use it myself. A few years ago I remember having one colleague who wanted to write in CoffeeScript but at that time we didn't know how to interoperate with JS, I believe? Or our tooling or knowledge wasn't the best, so we decided not to let him write CoffeeScript; From time to time I hear from that team and the project is still alive - luckily they don't have to support CoffeeScript.

I think you should use whatever makes you happy, for your own projects, but in a team, have in mind others and the future.

<comment><USER3> Typescript gives real benefits with type checking vs CoffeeScript which just looks sort of like Ruby. It's hard for me to imagine why someone would prefer endless "Cannot read property foo of undefined" runtime errors in normal Javascript over Typescript's in-line linting of those errors.

</comment></comment><comment><USER4> No, but it paved the way, in many respects, to those newer approaches – and Ecmascript itself evolving.

</comment><comment><USER5> As a longtime Coffeescript hater I'm happy to say I haven't seen it in many years in the wild. That said there are certainly many new sugary compile-to-JS languages (besides Typescript and Flow), but I don't anything comes close in notoriety.

</comment><comment><USER6> A lot of its ideas got folded into subsequent versions of ECMAscript, so in a way everyone uses it now. But for the actual "language" and runtime, it seemed from the start to have a built in expiry date, so I tried to avoid it as much as possible, mostly successfully.

Ultimately, if you want tomorrow's language features today, Babel feels like a better approach. You can choose your level of "buy-in" and then one day, certain things "just work" because they've been built into the runtime, and your code stays the same. Or at least, that's the hope. Making a new sub- language to get a handful of cool features/syntax involves a lot of pain for not enough gain, IMO.</comment>