Apple: stop routing idiots over a closed mountain pass [reddit] - <AUTHOR> https://www.reddit.com/r/apple/comments/5t3xxd/apple_stop_routing_idiots_over_a_closed_mountain/ <comment><USER2> The post was removed by the moderators (which for some reason deletes the text of the post as well...) so here's what it said:

> The direct route between Buena Vista, Colorado and the ski resort of Crested > Butte goes over a 12,000 ft pass. A gorgeous drive in summertime, but closed > for winter due to the deep snow. Google has figured out this seasonal > closure and routes appropriately. However Apple Maps is still navigating > people up the pass. > ([http://i.imgur.com/is2Oc6N.png](http://i.imgur.com/is2Oc6N.png))

> Most sensible people read the numerous signs warning about the road closure > and figure out their iPhones have been giving them bad instructions. The > more unobservant drivers venture a bit further until they see a five foot > tall snow berm designed to block cars and turn around.

> In this moment, the chaff is separated from the wheat. The last fella got a > running start, cleared the berm, and then lawn darted into the deep snow. > The others use their mystical stupidity to float up the deep snow until > their car becomes irrevocably stuck miles up the road. A few grand should > cover the tow bill and ticket.

> I'd guess that a handful of people get stuck on this road every winter due > to Apple Maps. We laugh at everyone of these city slickers. Someday, someone > is going to get stuck on a cold winter night and freeze to death in this > area without cell reception.

> Apple, fix yo shit.

<comment><USER3> >Someday, someone is going to get stuck on a cold winter night and freeze to death in this area without cell reception.

Here's a good example of this. One dead, one nearly so.

[https://arstechnica.com/cars/2016/05/death-by- gps/](https://arstechnica.com/cars/2016/05/death-by-gps/)

<comment><USER4> I wonder how many lives it has saved with good directions?

Less people freezing to death from a wrong turn. Less people dying from heat exhaustion from bad directions.

Less time on the road.... 1% quicker travel time is 1% less accidents. That's thousands of lives.

</comment></comment></comment><comment><USER5> Has anyone actually reported the error via the feedback system in Apple Maps, or do they just expect Apple is lurking on Reddit for feedback?

<comment><USER6> From one of the comments on Reddit: "I'm in Colorado too and anytime I submit a map error, it's resolved in ~24 hours. I've submitted maybe 25 corrections, the first five were ignored or took forever. Maybe they have a better review team or there's some threshold to prioritize submissions. I've also just now submitted these directions as an error. I would expect this to be fixed in the next day or so."

</comment></comment><comment><USER7> Um, you know this is google maps right?

<comment><USER6> No it's not?

<comment><USER7> The only map I can see in this link is in what appears to be a safari browser window showing maps.google.com</comment></comment></comment>


Vapor IO Partners with Cloudflare on Nationwide Deployment - <AUTHOR> https://www.vapor.io/vapor-io-partners-with-cloudflare-on-nationwide-deployment/# <comment><USER2> For those wondering (I was) vapor.io is NOT related to:

\- The server-side Swift web framework

\- The Laravel Vapor Serverless framework

\- A "wave" of music :P</comment>


Virtual Pascal - <AUTHOR> https://en.wikipedia.org/wiki/Virtual_Pascal <comment><AUTHOR> >"Virtual Pascal is a free 32-bit Pascal compiler, IDE, and debugger for OS/2 and Microsoft Windows, with some limited Linux support. Virtual Pascal was developed by Vitaly Miryanov and later maintained by Allan Mertner."

Features

The compiler is compatible with Turbo Pascal, Borland Delphi, and Free Pascal, although language- and RTL-compatibility is limited for features introduced after Delphi v2 and FPC 1.0.x.

VP was primarily useful for the following purposes:

Easily port existing 16-bit Turbo Pascal programs to 32 bits

Port existing 16-bit OWL programs to 32-bit Windows (in theory)

Write console (text-mode) programs for several platforms Pascal development using the 32-bit Windows API (the classic development, no COM)

Learn object-oriented programming

Significant features of Virtual Pascal include:

Text-mode IDE

Debugger is integrated directly into the IDE and is reminiscent of Turbo Debugger

Fast compilation

Tool-chain written mostly in Intel assembly"

Related:

Virtual Pascal Ning Forum Topic: "Where can I download VP?"

[http://vpascal.ning.com/forum/topic/show?id=854411%3ATopic%3...](http://vpascal.ning.com/forum/topic/show?id=854411%3ATopic%3A9)</comment>


Uber's plan to turn billion-dollar losses into profits isn't crazy - <AUTHOR> https://arstechnica.com/cars/2020/02/ubers-plan-to-turn-billion-dollar-losses-into-profits-isnt-crazy/ <comment><AUTHOR> > _Uber says Eats lost $461 million in Q4 2019. That 's a remarkable figure > because Uber's Eats revenue (excluding money that went straight to > restaurants or drivers) was only $734 million. In other words, Uber lost > more than 60 cents on every dollar of Eats revenue it took in._

Those are some terrible margins. Can this be turned around simply by economies of scale (more orders from the same neighborhood, all delivered at once)? Or is this something that can't be profitable until there are self-driving delivery vehicles?</comment>


Social polling startup hosts Presidential debate - <AUTHOR> http://wepolls.posterous.com/wepollscom-to-host-gop-presidential-forum-wit

<comment><USER2> That out to be good for media attention.</comment>


Laura Ingraham's advertisers aren't staging a boycott. It's a capital strike - <AUTHOR> https://www.washingtonpost.com/opinions/laura-ingrahams-advertisers-arent-really-staging-a-boycott-its-a-capital-strike/2018/04/04/aba91dd2-382a-11e8-acd5-35eac230e514_story.html <comment><USER2> > Commentators have raised concerns about the fairness of boycotts and the > threat they pose to free speech; some conservatives have also attempted to > initiate counter-boycotts of the companies that have parted ways with > Ingraham.

Given that money counts as free speech, it's not a threat to it at all - it's utilization of it.</comment>


Europe council unanimously decide to "block websites", enabling web censorship - <AUTHOR> http://www.consilium.europa.eu/uedocs/cms_data/docs/pressdata/en/jha/130727.pdf

<comment><USER2> As long as a court order is required, then this seems to me to be more of a freedom-protecting measure than a freedom-destroying one. Freedom is not about the absence of enforcement, it is about having reasonably just laws, and processes that ensure the law will be enforced reasonably justly.

<comment><AUTHOR> Actively blocking websites requires some infrastructure to be in place, and the underlying fear is that this infrastructure gets abused at some point, whether by introduction of new laws or unintentionally through bribery or incompetence. The previous french President Sarkozy was actively looking at putting much more than child pornography in such blocking systems, in very vague and worrisome wordings of which a translation could be "along with any illegal or order-troubling website".

Also, the worry is that the risk and cost of such an infrastructure is too high, especially considering the target has already moved and such blocks are completely inefficient.

Ironically, just at the time when European MPs decided that any form of censorship is bad and net neutrality matters, council turns around.

 _PS: When submitting the link I tried to be as neutral as possible within the 80 chars limit, precisely to spur constructive discussion._

</comment></comment><comment><USER3> when submitting this link you tried to be as sensational as possible. good job.. web censorship infrastructures are already in place _everywhere_ , the fact that you need court order to make use of it is what really matters.

</comment><comment><USER4> This doc doesn't say that.

<comment><AUTHOR>
        2. Reducing as much as possible the availability of child pornography online, inter alia by
        facilitating measures to remove or, where appropriate, _block websites containing child
        pornography_, and reducing as much as possible the re-victimization of children whose
        sexual abuse is depicted in child pornography

Whether you are in favor or against it, and whether the content is moral or not, actively preventing content to be accessible is censorship. If anything, it requires a blocking infrastructure to be put in place.

<comment><USER5> Any sane person does NOT see anything wrong with that paragraph, that is probably a paragraph that will convince anyone that putting such rules is for the best.

Well maybe not everyone, I guess pedophiles will be very disappointed and will play the card of freedom to convince otherwise.

<comment><AUTHOR> > that is probably a paragraph that will convince anyone that putting such > rules is for the best

 _Of course_ every sane person is against child pornography, just like every sane person is against terrorism. That does not make any measure having for goal to reduce those atrocious activities good measures to take. And that does not make someone asking himself questions about the relevancy of a solution one of those wicked people, nor one defending them.

It's all too easy to see it black or white. I'm not that concerned about freedom issues (although they do exist), but also about efficiency. After all, preventing terrorists to fly by wanting to scan every single person going through airports looks like a nice idea on paper, but the result is a security theater which costs a lot for weak results.

Given the time needed for a judge (and the overwhelming a mount of work they have otherwise) to examine proofs and order a block, I'm not sure this would be efficient. And even considering that would be, it's trivial for them to move and/or use proxies. That is, if they don't use alternate DNS systems and overlay networks (which they are reportedly using, according to a paper published _a few years ago_ ).

Police forces and network managers are generally agreeing that blocking is not efficient and that actively hunting them down is much more effective.

Also this does not make it any more helpful to stop it overseas, where most of the matter occurs. Blocking is like putting a blindfold and pretending it doesn't exist because we're "safe" here.

To sum it up, I'm worried it would be both a money- and time-sink with non- measurable results, cutting of resources that would be better spent chasing those bastards down and destroying their networks.

(anyway, thanks for indirectly calling me both insane and a pedophile, that really makes the discussion more constructive)</comment></comment></comment></comment>


Google, Can Indie Stone Have Their Money? - <AUTHOR> http://www.rockpapershotgun.com/2011/04/26/google-can-indie-stone-have-their-money/

<comment><USER2> Can Google Checkout (or any payment processor, really) be forced not to profit from transactions they refused to complete? Pass all the money either to the seller or the buyer, no fees, as they (rightly) refused to serve the transaction. Without delay, to ensure no revenue from interest either.

If there was no incentives in leaving transaction in such `limbo', the payment processors would be less hasty to lock up accounts.

<comment><USER3> Seems to me it's nothing but an assumption on your part that they _do_ profit from these transactions. The comments on the OP suggest otherwise.

You'll see two opposite complaints about payment processors:

1\. They let fraud run rampant.

2\. They're too hasty to lock accounts.

In order to have less of one, you have to have more of the other.

As for why customer service is so sketchy: Google's customer service is infamously bad across the board. It's not specific to Checkout.

</comment></comment><comment><USER4> This is vastly disturbing. Surely there is a gap in the market here for a payment processor that doesn't do shit like this? Are there any startups in this area?

Or is this just an inevitable result of working with money (having to be _very_ careful to avoid scammers/criminals)? I really can't believe that's the case though.

As @dexen said, perhaps there should be some provisions put in place to disincentivise current processors at least.

Perhaps bitcoin has a role to play to avoid such situations, Or would we just have the same problems over again? Perhaps somebody more knowledgeable than I could comment.

<comment><USER5> > This is vastly disturbing. Surely there is a gap in the market here for a > payment processor that doesn't do shit like this?

While I agree that there is probably a market for a payment processor that doesn't punish TOS violations, I really doubt that's a market anybody would want to play in.

Google's TOS disallow the use of the word "donation" unless you are a non- profit organization. And "donation" is precisely the term used.

For every "benign" TOS violation, I'm sure there must be hundreds of malicious ones trying to scam google or consumers out of their money. Not making exceptions at least is fair and users know exactly where they stand.

Still. I think Google should maybe

a) warn users before just banning them (though even this might lead to people trying to game the system)

b) hand out the money either back to the buyers or to the just banned seller (after manual investigation which might be what Google doesn't want to do)

c) maybe provide an appeal process, though, again, this might lead to people gaming that.

<comment><USER4> It's the 'frozen without explanation' aspect I don't like. I didn't realise that this was a legitimate ToS violation, but agreed, they should have at least warned them first.

I suspect that evil people ruin it for everyone, money is just too tempting for people with 'flexible morality'.

EDIT: But still, these providers should do better, regardless.

<comment><USER6> When google puts robots in charge of enforcing policy without a mechansims for the affected humans to request human oversight, that is the very definition of dehumanizing.

I wonder if you could sell hand crafted, polished oak, donation boxes with google checkout and not be attacked by their robots.

</comment></comment></comment></comment><comment><USER7> <http://projectzomboid.com/blog/index.php/2011/04/happy-days/>

</comment><comment><USER8> Why doesn't Indie Stone use Kickstarter? They fit the model perfectly, Kickstarter has no history of withholding money, and 5% is quite reasonable.

<comment><USER9> It's a good question. They've certainly reached the threshold of being a serious project, given the amount of press coverage they've received in the past.

The whole mess is an object lesson about the need to take non-development aspects of business seriously. They're trying to accept payments without reading the terms they agreed to. They're trying to run a web server while clearly not being experts on that (there's no need for a VPS or a dedicated server when their site is a perfect fit for something like Squarespace). If you can't afford to bring in an expert, you've really got to do the due diligence yourself, or it's bound to blow up in your face.

</comment></comment><comment><AUTHOR> Seems it's been solved now: <http://projectzomboid.com/blog/index.php/2011/04/happy-days/> :)

</comment><comment><USER10> I don't get it. Google Checkout sweeps money to my account every few days. I was confused at first about how it was going to work, because I didn't see a 'transfer money' option, but it's done it automatically for me for two years.

</comment><comment><USER11> Using the word "Donate" to describe a, uh, donation is reasonable. Hiding strange terms in the TOS no one is going to read and then keeping your customers money is not reasonable.

<comment><USER7> How do you know they kept the money instead of returning it to those who bought/donated?

</comment></comment><comment><USER12> Sometimes I wonder if these payment processing companies behave like this so they can keep their books straight/solvent.</comment>


Ask HN: How to setup a secure server on Amazon EC2 - <AUTHOR>

I have been looking at scalable web hosting solutions and I am interested in starting a web server on Amazon's EC2. It is simply because I can run many of my processes in the background and reduce the amount of online processing.
I have no experience in setting up and checking for security holes in my Apache server. I am wondering what is the best practice for setting up a secure webserver on Amazon machines?
Is there any AMI that is already configured to serve as a secure web host?
Thanks
Siah <comment><USER2> Unless your website is very low traffic, the Amazon micro instance will not hold up very well and you find that stepping up to the medium or large instance (= more money) may be required.

That said, there are too many ways to list here to check that any Apache server is secure. this Google search will get you started. <http://goo.gl/SM9sB>

<comment><AUTHOR> Are there Amazon AMI's that are already configured and are secure?</comment></comment>


Ask HN: Open source developers, how do you find time for contributions? - <AUTHOR> Hi HNers,
I see lots of places require github profile when applying to job, if you don't have one, just -1 point. They are asking for demonstrable skills or work. If you are just an average developer, who get things done, then again -1 probably.
If your products are open source, then it is okay to show your contributions, but if you mostly work in closed source environments, how do you find time to contribute or create open source?
I have family and children, it is very difficult to work again after work, because family definitely needs your care.
UPD: Why I am writing this? Even though I have full time job now, we are struggling to be cash flow positive, which might require to find another job in coming months. I applied for around 30+ jobs, but mostly no answer or rejection without giving any feedback or reason for rejection. But young devs with some past github contributions are doing just fine (I wish them luck of course :) no offense here, just giving info ). <comment> git-pull There are people with jobs, families, and other hectic schedules that still walk their dogs, attend clubs, mow their lawns, put up Holiday lights, have hobbies, even volunteer.

What I'm against is this crab mentality and envy that having contributions to open source is looked upon as if it's yacht sailing - when it's really hard work and quite thankless, heh.

I highly doubt every time I hear people saying "they don't have time", the person truly optimizes their schedule to be productive, or has forgone common "normal" timewasters.

Every time someone is playing video games, chatting, using social media, watching TV, and having spent on nothing productive: _that_ is when open source can happen. You can do a lot in an hour of time.

If you look at my open source contributions (to other projects), _more than half_ are:

\- updating continuous integration / tests

\- code styling

\- documentation

\- typos

How much time does it take to fix a typo? 1 minute.

To improve documentation? 5-25 minutes.

Code styling? 1 minute to 1 hour.

Updating CI? 10 minutes to 1 hour.

Those are all great stepping stones to help you gain momentum, instead of malingering with no direction. Nobody is going to come along and volunteer on your behalf, this is about your personal constitution.

A lot of my other patches come from work. In the natural course of duty, there's opportunity to send code back upstream.

My largest contributions span 2 days or more.

<comment><USER2> I've seen stuff like simple typos that would be really quick to fix in some open source projects, but then I start wondering if it's just going to be seen as one of those "cheap" contributions and choose to leave it. Having never contributed to open source, I sort of feel like I should prove my worth by contributing something that takes a bit more _effort_ before feeling comfortable going for the lowest hanging of fruit (I don't mean a huge feature or anything, but maybe something that involves some actual coding vs a typo in documentation or in a variable name). Typing it out I realize this sounds kind of silly...

<comment><USER3> If you don't start somewhere then you never start.

I for one would love to have someone that followed me around and cleaned up my mess. Why would you discount that as a contribution?

</comment></comment></comment><comment><USER4> Even when working in closed source environments there is some open source project you will use.

Liked it? Disliked it? Go to github, check their issue list. Most projects have beginner picks, grab one, solve it. Invest 30 minutes a week, and you'll have a solid, steady contribution showing on github.

Contributing is often a matter of minutes, and should be driven by your needs. That helps a lot.

I picked up Go and started contributing to Terraform providers because I use Terraform at work, and it's interesting. Side bonus, now I can fix all issues on my own and submit PRs to make them disappear for others.

For info: it's not a time issue. I run my own company, I have children, I am single parenting, I exercise daily, and enjoy a few leisure activities.

</comment><comment><USER5> Are you sure that they're weighting FLOSS contributions that heavily? At the first application stage I wouldn't expect them to look at them much so I'm not sure if your extrapolation from your rejections is accurate.

<comment><AUTHOR> > I'm not sure if your extrapolation from your rejections is accurate.

sure, it maybe wrong, maybe not. I just provided additional information to the context.

</comment></comment><comment><USER6> I was an active contributor to a number of popular open-source projects and a maintainer of a couple of my own. Nobody cares TBH unless the position you're applying for requires that particular project you've worked on. And even then some companies don't bother to answer. HN's "Who is hiring" has the lowest reply ratio BTW.

</comment><comment><USER7> I maintain my Ruby side-project for years and I opensourced some self contained parts of it (e.g. an extension to nginx), also contributed fixes to libs I use. Over the years they got some stars, tickets etc.

Although some people get impressed that I do some meaningful side stuff I think networking is much more important factor which helps me find a job. Especially in unrelated closed source envs, like enterprise Java.

So I would suggest to talk with influential tech people around you, learn from them, stay in touch when they change job. Ask what they do, do they need help with their projects etc. And if you are good they should be happy to recommend you at their places.

</comment><comment><USER8> Very little of what I write is so specialized that no part of it involves anything that might be useful in different contexts. Some parts, yes, of course. When I see something I'd like to use again and again in different contexts, I implement that component as a module.

By publishing a module as FLOSS, it becomes extremely simple to install. And these modular components join the grand, continually evolving chain of FLOSS tools.

At first it was kind of a nuisance to go through this process. Now it's almost automatic, and very fast and easy. What I found useful to me might be useful to others some day.

</comment><comment><USER9> I neglect personal and avocational responsibilities for days at a time.

</comment><comment><USER10> I don't contribute to open source. Never had any bearing on job applications. I do have a github but its mostly little experiments from curiosity.</comment>


Google API infrastructure outage incident report - <AUTHOR> http://googledevelopers.blogspot.com/2013/05/google-api-infrastructure-outage_3.html <comment><USER2> Very professional -- this should be a model for how to handle and report such outages. There is a lot of procedural machinery happening to even get to this state, i.e. monitoring, a change management system (who did what, and when), troubleshooting and escalation, deploying a fix and verifying that it worked. They do not gloss over the fact that this jumped QA!

<comment><USER3> Yep, someone's performance review is not going to go very well.

<comment><USER4> There's nothing in the incident report that says this was due to human action. An automated process could just have easily pushed configs to the wrong environment (either through a bug or a mis-configuration of the process itself). Not saying that's what happened, but the IR doesn't say.

In my experience (having personally been the trigger for a widespread outage that got us in the news), Google takes a fairly sophisticated view of outages: SREs as a rule care less about crucifying the engineer who did it, and much more about questions like:

what was the REAL root cause that caused this to happen? why didn't our processes/tools STOP it from happening? did our monitoring detect it? could we have detected it faster? did we fix it or mitigate it fast enough? did things like communication, escalations, handoffs between teams, etc. work effectively? _what can we do better next time?_

When I first started, my director took a bunch of us out to a Noogler lunch. We sat down with our plates, and he said "Ok, let's talk about how to get fired." Basically, mistakes happen. Bugs happen. If you cause a huge outage, that isn't necessarily a negative reflection on you, and shouldn't hurt your perf. If you cause a huge outage because you willfully ignored procedure, went around established safety controls, didn't monitor to make sure your changes didn't turn all the pretty dashboards red, THEN you're going to have a problem.

</comment></comment></comment><comment><USER5> Great job, Google API Infrastructure team! Communication is key. Now if only everyone did this...

</comment><comment><USER6> This is great - now if they actually have status page which says that API is not working so we do not need scramble thru forums (which are closed) and StackOverflow forums (which are open, but all questions regarding outage are immediately closed). In case of previous outages (the last one happened on Mar 18), there was actually an email sent to people subscribed to google-apps- apis-downtime-notify

<comment><USER7> FTFA...

 _Develop better mechanism for quickly delivering status notifications during incidents._

I can't be sure how the numerous references to _monitoring_ failures being related to _status_ updates, but at some point, you have to assume your "status page" will have "bugs" too.

<comment><USER6> Shouldn't be there somebody with title "Google Developer Relations" (or something like that) to send email to mailing list?

</comment></comment></comment><comment><USER8> Hopefully this is the first time that person screwed up like this so they weren't summarily executed^Wfired.

</comment><comment><USER9> _a configuration change was inadvertently released to our production environment without first being released to the testing enviroment._

Google - Just humans, too.</comment>


Light and Thin 64-bit ARM Based Open Source Notebook - <AUTHOR> https://www.pine64.org/?page_id=3707 <comment><USER2> Previous discussion: [https://news.ycombinator.com/item?id=13031786](https://news.ycombinator.com/item?id=13031786).

</comment><comment><USER3>
        The publically available SDKs contain kernel and u-boot trees
        which include and depend on several binaries. Allwinner is always
        violating the GPL in this way since A31. In the current A64 SDK,
        lots of blobs are included in kernel and U-Boot, including the
        critical DRAM code and the important HDMI code.

Source: [https://linux-sunxi.org/A64](https://linux-sunxi.org/A64)

<comment><USER4> I wonder what would happen if a lot of people got these machines and someone threw up a bounty to rewrite these firmware blobs. First person to replace and mainline them gets the bounty.

I hope this happens.

<comment><USER5> I think we need a reverse engineering and code mainlining organisation that has lots of people donating monthly, with priorities set by the donors, one vote per donor.

Linaro could have been useful but just ended up being beholden to their sponsors.

<comment><USER4> I'm a college student but I'd still donate a buck a month to that. Also having a group who makes datasheets for chips would be nice. Tackle each of the cheapest/"Best" chipsets and get perfect support so that more machines like these can be built.

</comment></comment></comment></comment><comment><USER6> I have a Pine64 2GB sitting fairly uselessly on my desk right now. I can't believe they already have this new product after the huge fiasco that was shipping the original board and components. Go check out the /r/pine64 subreddit, filled with complaints about people not getting their stuff on time (or ever).

Also, saying that it runs any "PINE A64 supported OS" doesn't mean much, it's debatable if you could consider anything currently available "supported". The android-based builds are the only ones able to play 480p Youtube without stuttering. Despite the promise of more horsepower and RAM compared to a RPi3, this has about 1/100th of the support level and community investment. Save your money and buy one of those or a NUC.

</comment><comment><USER7> As tempting as this device is, I'll be keeping my late 2015 rMBP as my daily driver for now.

<comment><USER8> Tempting with 2 gigs of ram? I could barely do web development with that

</comment></comment><comment><USER9> I would like to know differences in weight between the 11 and 14" versions. Also, if the 11" laptop size is proportional to the screen, and not just same enclosure as the 14" with more margin filled with plastic around the screen (ugly).

</comment><comment><USER10> The title is misleading, lots of parts are not opensource.

Finally, it doesn't seem to run Linux mainline but custom patched older versions.

TL;DR it's more of the usual ARM garbage

</comment><comment><USER11> Perhaps not the perfect open source laptop the purity patrol is looking for, but at $99 I really DGAF. Looks like a fine option for people who want a low- power self-contained machine (as opposed to an exposed circuit board Raspberry Pi, say).

</comment><comment><USER12> Anyone know if this can run ChromeOS?</comment>


Lighten Up - <AUTHOR> http://therealkatie.net/blog/2012/mar/21/lighten-up/?

<comment><AUTHOR> Original discussion from two years ago: [https://news.ycombinator.com/item?id=3736037](https://news.ycombinator.com/item?id=3736037)

I reposted it because I think the ideas in it are still important.

</comment><comment><USER2> Is it never appropriate to tell a woman to lighten up?

Are women incapable of actually being too sensitive?</comment>


Draco – new 3D mesh compression algorithm from Google - <AUTHOR> https://opensource.googleblog.com/2017/01/introducing-draco-compression-for-3d.html <comment><AUTHOR> This is very interesting. What is the comparison to the glTF binary format?</comment>


Spectre/Meltdown/L1TF/MDS Mitigation Costs on an Intel Dual Core and HT Laptop - <AUTHOR> https://www.phoronix.com/scan.php?page=news_item&px=Spec-Melt-L1TF-MDS-Laptop-Run <comment><USER2> From a purely non-scientific standpoint my Latitude E7470 performance is below an acceptable threshold now.

FWIW: I haven't done any benchmarks - This is purely anecdotal!

I use VS 2017 / 2019 and the performance is definitely taken a noticeable hit since the last BIOS update.

Opening projects is slow but once they're open the processor is pegged for longer and when using intellisense the process is pegged for longer now too. It's at the point where I looked to replace it even though it was fine up until Jan/Feb this year.

I tried backing out the BIOS update but it failed so I am stuck with it now.

I even bought a NVMe SSD which helped with IO a bit, and upped the RAM to 16GB but the processor is a huge bottleneck now.

It is bad enough that I even had a Surface Book 2 15" for a week to test it and its performance is rotten as well so I returned it

My desktop with an 8700K O/C to 5GHz hasn't had a BIOS update since early 2018 (I think) and is instantaneous for most things: needless to say, I have no intention of updating it.

This is bad for Intel... really bad imo.

Edit: Added the NVMe and RAM bit.

<comment><USER3> I also saw a measurable drop in my full rebuild times. As I do not run any untrusted code on that machine, I disabled all mitigations. There I use a dedicated browser for work related and NoScript for personal so I felt safe with this trade-off. Beyond javascript desktop machines should only be running trusted code.

You do not need to downgrade your BIOS. You can regain all of your performance on the OS level. You can use this tool on windows[1] or edit the registry. On linux just add this to your grub.cfg.

        noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off mitigations=off

[1] [https://www.grc.com/inspectre.htm](https://www.grc.com/inspectre.htm)

<comment><USER4> InSpectre only disables part of the mitigations. Another part is microcode update via BIOS or OS updates, another is binary updates containing workarounds like retpoline.

<comment><USER3> I may have changed some addition registry settings from the documents over at:

[https://support.microsoft.com/en-us/help/4073119/protect- aga...](https://support.microsoft.com/en-us/help/4073119/protect-against- speculative-execution-side-channel-vulnerabilities-in)

According to the powershell app

        PS> Get-SpeculationControlSettings

All mitigations are _disabled_. No need to do anything in BIOS.

</comment></comment></comment></comment><comment><USER5> > Context switching on this Core i7 Broadwell CPU takes seven times longer > since these mitigations.

Wow. This is of course a laptop, but anything remotely IO intensive is going to seriously suffer. Does anyone know the context switch delta for desktop and server processors?

</comment><comment><USER6> Would love to see similar in-depth analyses for Windows and MacOS. 25% perf loss in everyday work is a lot.

</comment><comment><USER7> Does the new Windows 10 sandbox feature help mitigate Meltdown/MDS?

</comment><comment><USER8> Spectre/Meltdown is a serious problem, but they matter only in shared environments (virtual hosting with multiple accounts per physical machine).

Why the mitigations are even on by default, if the problem doesn't exist for dedicated single user environments? (desktops/laptops/dedicated server hardware with no code from other users running).

P.S. [https://make-linux-fast-again.com/](https://make-linux-fast-again.com/)

<comment><USER9> _Why the mitigations are even on by default, if the problem doesn't exist for dedicated single user environments? (desktops /laptops/dedicated server hardware with no code from other users running)._

Most desktops and laptops run a boatload of untrusted code in the form of JavaScript.

<comment><USER8> How about enabling mitigations in Javascript engines?

<comment><USER10> There aren't such mitigations to enable. There aren't even purely software kernel-level mitiations.

<comment><USER8> > There aren't even purely software kernel-level mitiations.

Some are there, otherwise they couldn't be disabled in Linux kernel for faster performance. Which means that they could be enabled on demand.

<comment><USER10> _Some_ are there, yes, but they're insufficient to provide security. You need both them, _and_ the microcode changes, _and_ to disable HT. I'm not sure what if anything the software changes do alone, they may mitigate some of the attacks, but not all of them.

</comment></comment></comment></comment></comment></comment><comment><USER11> De we even have a Proof of concept for the MDS attacks (one that doesn't require other thread to be writing the same data over and over in a loop)?

So much of this seems driven by Intel hate, and while hardware manufacturers should work on mitigation, it shouldn't be done at the expense of performance, especially for machines that don't run untrusted code (even then, I'm not sure it should be done unless the cost is extremely minimal).

JavaScript/WASM is being used as a bogey man, when the overwhelming evidence is that it just isnt possible to exploit the browser with enough consistency to make it work when not assisted. The meltdown POC was more a "look at this neat thing I an do if I set everything up perfectly" \- set up to such an artificial extent that it wasn't even applicable to any computer system.

The the one MDS attack I saw required the target to repeatedly write the same byte of memory in loop while being attacked. This isn't going to happen. These MDS attacks at best seem to be able to pick fairly random bytes, and they can only do it while the data they are snooping on is in the load/store buffer, so they can't even run the number of times required to exfiltrate the data consistently.

I haven't seen a single piece of code that will, for example, grap SSH keys from a running ssh program using one of these attacks. From Javascript in a browser? LOL.

While these are very cool and interesting, they arent anything to be worried about, especially if you don't run a cloud service. Oh, but right, Intel hate.

<comment><USER12> The Intel hate is really misdirected. The entire industry had an incorrect mental model of what process isolation required. All that an x86 CPU promises is that you will get a page fault if you try to access privileged memory. That's it, and it's not sufficient for process isolation in the face of malicious code. JavaScript/WASM VMs assumed more or less the same thing. So long as you can catch any out-of-bound array reads or the like, you have a safe "sandbox." Again, that assumption was insufficient. It wasn't just Intel and JavaScript developers either. Entire bodies of research were dedicated to techniques that likely would be vulnerable to these sorts of attacks. For example, the idea that you could do away with CPU memory protection if you ran everything in a managed language that makes it impossible to access arbitrary memory.

What you're seeing as a paradigm shift in what kinds of process isolation are required for modern computing.

<comment><USER13> While it's true that speculation as a whole needs to be revisited, Intel is impacted to a much greater extent because they designed their hardware to speculate beyond permission barriers as a matter of routine. AMD did not [0] and consequently is affected only by the most general attacks on speculation, e.g., Spectre. As far as I understand, AMD chips are not impacted by Meltdown or any of the MDS attacks.

It'd be great to see Michael run the same benchmarks against an AMD chip that has all relevant mitigations enabled and compare the performance loss. I'd ballpark that AMD chips may have lost ~10% overall, whereas we see here that Intel chips have lost ~25%.

[0] [https://www.amd.com/system/files/documents/security- whitepap...](https://www.amd.com/system/files/documents/security- whitepaper.pdf)</comment></comment></comment>


Ask HN: Is there anything I should change about my resume? - <AUTHOR> Inquiring to see if anyone would be wiling to critique my resume. I am currently entering my senior year in college and in search of an internship for summer 2021.
I'm finding it challenging to pinpoint specific bullet points and fill it out.
Screenshot: https://i.imgur.com/dJ14pNt.png
Google Doc: https://docs.google.com/document/d/1__9RgIbSqvphjsZULbhCP9J6OIUiBf615TT_OG2TtDw/edit?usp=sharing
Please don't hesitate to rip into it, if it's terrible. Thank you all for your time. <comment><USER3> nodejs is not a framework

details on JS frameworks or libraries used; if you want to do any frontend, throw in keywords like react, vue, angular, redux, typescript, etc. - <USER2> the document I can't tell whether you're fixing jquery bugs or writing a SPA, both of which have massively differing results.

'deployed on DO with docker' reads slightly off to me. what is powering the docker? is your deployment just pushing a new container and then you pull it again on DO? is there orchestration of any kind like k8s?

<comment><AUTHOR> Thank you so much for your time. I just read over it real quick but will address these first thing in the morning and make changes.

Again, I can't thank you enough.</comment></comment>


Language-agnostic schemas based on Haskell's type system - <AUTHOR> https://github.com/seagreen/plate <comment><USER2> Neat. This reminds me quite a bit of the dhall language: [https://github.com/Gabriel439/Haskell-Dhall- Library/blob/mas...](https://github.com/Gabriel439/Haskell-Dhall- Library/blob/master/README.md)

<comment><USER3> Interesting. I see Plate as a much less ambitious project since Plate values can't be functions.

However, any comparison to one of Gabriel Gonzalez's projects can't fail to make my day:)

</comment></comment><comment><USER4> The argument presented against JSON Schema in the readme is that is is too expressive. Can someone explain to me, as someone who's used JSON Schema before, why this should concern me? If I understand correctly, JSON Schema's semantics allow one to assemble imperative control structures. But so what?

Context: I used JSON Schema to validate API responses against a schema (with RSpec in this case). Compiling a subset of Haskell's type system to a JSON Schema just seems completely overengineered to me?

<comment><USER3> Great questions (author here).

> The argument against JSON Schema presented in the readme is that is is too > expressive. Can someone explain to me, as someone who's used JSON Schema > before, why this should concern me?

If it doesn't affect you, then it doesn't affect you:)

The people who is does concern are tool authors. Trying to make an editor that handles schemas including things like "if field A is a string and matches regex X, then field B must match schema Foo instead of Bar" is really hard.

I believe the name for this in type theory land is dependent types.

> Compiling a subset of Haskell's type system to a JSON Schema just seems > completely overengineered to me?

The subset of Haskell used is actually far, far simpler than JSON Schema. It's basically just parametric polymorphism and algebraic data types. They're my two favorite things from Haskell, and both are really simple.

<comment><USER5> > It's basically just parametric polymorphism and algebraic data types. > They're my two favorite things from Haskell, and both are really simple

As a Haskell programmer I agree on the simplicity point, but you may want to use simpler terms if you're trying to sell someone on simplicity (in reference to parametric polymorphism and algebraic data types)

Cool project though!

<comment><USER6> So what are the simpler terms? Any examples?

<comment><USER5> You could probably say Generics instead of Parametric polymorphism, while far less formal a lot more people will grok what you're getting at.

I guess it's not so clear for algebraic data types, but I'd probably refer to swift enums or unions in elm as an example.

Last time I suggested this, someone likened it to intellectualism, lol. I see it more as a communication, a thing that the typed functional community seems to struggle with

<comment><USER5> Sigh, I cannot edit my comment at this stage, but correction I meant *anti- intellectualism

</comment></comment></comment></comment></comment></comment><comment><USER7> If you are already a haskell shop and need some way to write JSON schema, this probably doesn't seem too much over engineer. On the other hand, if the purpose is just to limit the expressiveness of JSON schema, I think a runtime checking is more than enough (that's how we solved our problem). Since any data schema we write inevitably has a "validation" phase during our build process. And doing runtime checking during the build phrase allows more flexible and extensible validation; with less abstraction to be understood by the strawman.

</comment><comment><USER8> Saying that something is like Haskell's type system raises more questions than it answers: are there GADTs? Type Families? Phantom Types?

<comment><USER3> It's only like Haskell's type system compared to other schema languages (most of which don't even have product and sum types). Plate has parametric polymorphism, phantom types, and algebraic data types. It doesn't have typeclasses however (I don't see a way to implement them, thoughts here: [https://github.com/seagreen/plate/issues/1#issuecomment-3028...](https://github.com/seagreen/plate/issues/1#issuecomment-302893806)) and so advanced Haskell features like type families are out.

</comment></comment><comment><USER9> What is the advantange to a relational sql/ddl schema?

<comment><USER3> Plate isn't really in the same space as SQL.

SQL is such a shockingly good engineering choice that if you can use it I would. So even if Plate was done I would use Postgres instead of a Plate-based datastore inside my apps.

Plate serves a different purpose: schema'ing human-readable formats like iCalendar ([https://en.wikipedia.org/wiki/ICalendar)[1]](https://en.wikipedia.org/wiki/ICalendar\)\[1\]) or JSON APIs. So even if you're using SQL within your app Plate may come in useful at the boundaries.

[1] Even if iCalendar was in JSON you couldn't write a Plate schema for it for the reasons listed here ([https://github.com/seagreen/plate/blob/master/docs/prioritie...](https://github.com/seagreen/plate/blob/master/docs/priorities.md#-ability- to-describe-existing-data-types-with-plate)), but it serves as an example of a common human-readable data format.

</comment></comment><comment> m-j-fox I love everything about this until he presents the syntax:

        album :: Schema
        album = ProductType (HM.fromList
          [ ("title", Builtin SString)
          , ("artist", Builtin SString)
          , ("tracks", Builtin (SSequence (Builtin SString)))
          ])

No thanks!

> (It won't be hard to make this conversion automatic, though I haven't gotten > around to it yet.)

Well let me know when you get around to it.</comment>


Window Functions in SQL (2013) - <AUTHOR> https://blog.jooq.org/2013/11/03/probably-the-coolest-sql-feature-window-functions/ <comment><USER2> LAG/LEAD are basically SQL having to give in a little to the timeseries and column db people. It obliterates the set theoretic nature of SQL, and they are dog slow.

This is why any decent columnar/timeseries db has its own often arrish query language to take advantages of ordering information inherent in the data. There is an order in that index and SQL table, you just don't have good tools to access and use it.

This touches on a conversation I was having a couple weeks ago where somebody was saying that column/array storage is purely a backend consideration and don't need to care about it in the front end of the database. That view gets you ugly primitives like LAG/LEAD. Being able to exploit your backend decision is paramount to performance.

Products like Informix or KDB+ just give you full access to the data on and off disk as an array so you ca build complex windowing primitives (and even store them and reuse them later).

(PS: I just find this really funny. KDB+ is probably is the only database I know that literally does streaming analytics on a Raspberry Pi. No joke, the full DB on Linux ARM/Pi. [https://kx.com/download/](https://kx.com/download/) )

<comment><USER3> I would be very surprised if LEAD and LAG couldn't profit from indexing, if you design your query / window function in a way that it actually can profit.

Perhaps you're hinting at the idea that it's too easy to screw this up as a user, for it to be inefficient

<comment><USER2> The doesn't help that much since you are probably already using an index for filter criteria, the table is probably unkeyed (fact table).

The case it does work is that you are ordered on timestamp (for example), the query planner properly figures to use any filtering indexes and sequential indexes, ... _magic occurs_

Now the job is making an SQL statement that the query planner can actual understand and optimize since SQL lacks so much of the machinery for order- dependent processing (this was a feature when SQL was conceived remember).

<comment><USER3> What if I'm designing a covering index to cover for both my filtering and ordering needs? The SQL engine should pick that up in my opinion and avoid needing to re-order anything.

Of course, SQL is by far more general purpose than producing ordered stuff. In fact, ordering is a completely non-relational thing that was even criticised in SQL in early days (such as offsets, limits, duplication, etc.). But SQL has learned to shoehorn foreign concepts into the language / platform for a long time, so I'm just curious about a concrete example where SQL window functions fail (and couldn't be fixed) in SQL for you.

<comment><USER2> Try doing a VWAP in a group by 5000 stock symbol over a LAG of last 30000 - basically a sample every 10 millis for 5 minutes. This is the simple case where you can actually use LAG of a fixed amount.

(When the query returns tomorrow morning you realize that LAG was actually useless because your observation arrivals weren't periodic and you need to deal with / bucket for that to actually get usable results).

We used to run a lot of LEAD/LAG queries on a very, very large Oracle install could never get the performance we wanted out of it. Basically turned it into a very expensive file server that spat out HDF that we then processed by a mix of shell and python. Should not have been faster than the overpriced heater in the corner we called a database but was.

<comment><USER4> Just to clarify, when you say LEAD/LAG here, do you actually mean ROWS/RANGE? So, approximately:

        sum(price * quantity) over w / sum(quantity) over w as VWAP
        ⋮
        window w as (partition by stock order by time range 30000 preceding)

Totally willing to believe first-hand experience, but surprised and disappointed if it's impossible to make that fast. (Apologies if I'm totally misunderstanding the use case).

<comment><USER2> Is there really that much of a difference between LEAD/LAG and OVER+RANGE when using an aggregation function? I'm sure there is, but it has been a few years since I had to deal with some of this.

There are probably also difference between OVER when used in TSQL and PLSQL.

Last time I had to do this was actually with real-time advertising bidding, and it was across keywords, not ticker symbols (many more, much sparser). We had a 20 millisecond budget, and had to break the queries up to at least get partial results to push out bid even if we didn't have all the results back in from the database that we wanted.

We used OVER+RANGE for average price, but needed LAG for first derivative (is the price trending up or down). We had to start doing roll ups of the data hourly and be constantly trimming to keep the real-time performance high enough, but that meant we needed to have have a separate off-line analytical system. Common to do, but still I think it can be done without it if you use the correct tech stack.

<comment><USER3> What you're doing certainly doesn't sound like an easy job for window functions, although it might be possible with RANGE + interval - at least in Oracle 12c.

How about Oracle 12c's MATCH_RECOGNIZE, though?

[http://www.oracle.com/ocom/groups/public/@otn/documents/webc...](http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/1965433.pdf)

<comment><USER2> Thanks. That was very interesting. Overall, a total band-aid of course, but still better than nothing. I can completely see doing ad hoc queries with that (and I can't wait to try it out) but I fear the performance hit of trying to build a system around it :)

It didn't give any examples of queries going both directions, e.g. the down-up V first example. You probably often also want the up-down ^ shapes too. It would be nice if the PATTERN had alternation too "STRT (DOWN+ UP+)|(UP+ DOWN+)" so you didn't need to double your queries. Or else you're probably better off creating a temp on CUR-LAG(1) to give you the sign and then pattern match the sign (if that makes sense).

Oracle really does go out of their way to keep SQL modern though. I remember the first time I saw a "CONNECT BY". lol. I had an interview a few months later and was asked to write an SQL query to basically traverse a tree (the gist of it). I being a young smart ass gave the correct answer (you can't) and proceeded to write the START / CONNECT just to show off a little.

<comment><USER3> Yes, it's a band-aid. But perhaps it will feel less so, if you're looking at the original invention by Esper Tech (I have no experience with it, just know that I've seen MATCH_RECOGNIZE there first): [http://www.espertech.com/esper/release-5.1.0/esper- reference...](http://www.espertech.com/esper/release-5.1.0/esper- reference/html/match-recognize.html)

Hah, yeah CONNECT BY is great for simple recursion, but for more complex (probably less performing) cases, I prefer the standard approach with CTEs...

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> > Once you know window functions, you risk putting them all over the place

Agreed.

A few years of writing expressive, powerful, performant SQL in big blocks will really change your mental model of data across _all_ languages.

I highly recommend a deep dive into the relational world, and I feel super grateful for the SQL-focused job I held previously. Brought those lessons back with me to both FP and OO.

<comment><USER6> They are extremely useful, although they seem to vary in performance quite a bit (SQL Server experience here, so YMMV). I'm always a bit shocked how little SQL most software developers know, especially because it's often the bottleneck if used poorly.

</comment></comment><comment><USER4> I think my only real complaint about window functions is that you can't access the 'current' row in aggregates and 'filter' conditions. It means very complex look aheads or look behinds aren't really possible.

It would also be great if windows could be function parameters in Postgres. I like to abstract complicated conditionals and calculations into functions, but it falls down if you're operating over a window.

<comment><USER3> Would you mind providing an example of what you'd like to do, which is too complex for window functions?

<comment><USER4> Apologies for contrived examples. First, it'd be nice to be able to use both rows inside some aggregates, e.g.:

        min(ST_Distance(this.point, foo.point)) over (blah)

That is, for each 'foo', get me the minimum distance to another foo in the current window.

The second peeve is to do with filters, e.g.:

        count(*) filter (where this.time - foo.time < 5 and type_id = 42) over (blah)

That is, how many events of type 42 are there up to 5 seconds before the current event.

In both cases, it's sad not being able to address the current row as well as the row in the window. I'm not saying either form is completely impossible to get working somehow, I just think it'd be a nice feature.

<comment><USER3> Thanks for clarifying. Oh, I see yes indeed. We can only nest aggregate functions inside of window functions, not the other way round (unless resorting to derived tables, views, ctes, etc.). Indeed, it's logical to know why it's not possible (the way the language was designed), but the language could have been designed differently.

Do note that Oracle has the KEEP clause that might probably solve your issue with aggregate functions only... But it's a rather esoteric, vendor-specific extension.

Anyway, I do agree, what you're describing would be a very nice feature.

</comment></comment></comment></comment><comment><USER7> So, yeah. Window functions are new to me. I was actually asking the team about a month ago if there was a way to do this in SQL. Consider my mind blown, and thanks for posting!

</comment><comment><AUTHOR> "Modern SQL" feature overview for MySQL + forks:

[https://dveeden.github.io/modern-sql-in- mysql/](https://dveeden.github.io/modern-sql-in-mysql/)

(aka "Look, window functions are coming")

<comment><USER8> Similarly, there's plv8 for PostgreSQL

<comment><USER9> > Similarly, there's plv8 for PostgreSQL

How is that similar? plv8 is a procedural language (javascript) for writing user defined functions.

</comment></comment></comment><comment><USER10> Windows functions are a feature I cannot live without. They achieve results that otherwise could only be achieved with complex and ugly CASE and embedded SELECTs. Another reason Postgres is superior to MySQL.

</comment><comment><USER11> The most useful feature imho is temporal data. Too bad Postgres does not support it.</comment>


Ask HN: Which desk do you use? Which desk Y Combinator use? - <AUTHOR>

Just wonder which desks do people use? And which desk Y Combinator use? <comment><USER2> YC doesn't have desks as such. We have long dinner tables custom designed by our architect Kate Courteau that some amount of work also gets done at ([http://www.vinodnarayan.com/wp- content/uploads/2011/05/y-com...](http://www.vinodnarayan.com/wp- content/uploads/2011/05/y-combinator.jpg)), and a few conference tables that are all different.

<comment><AUTHOR> Thanks for reply! I am big fan of YC so this was really interesting question for me :) I believe workspace design is very important for great results and looking at YC backed-startups I was wondering which desk (and not only desk) are you using.

I'll definitely enter YC with some of my ideas at least ready as initial prototype (writing this using the moment). I hope I will like it so to make something similar in future to save this state of startup-spirit.

</comment></comment><comment><USER3> I don't think my exact model is made anymore, but it's extremely similar to this: [http://www.amazon.com/White-Frosted-Glass-Steel- Fighter/dp/B...](http://www.amazon.com/White-Frosted-Glass-Steel- Fighter/dp/B003VOJOT0)

I've had it for about 5 years now. I like the size of it and it's surprisingly sturdy, but I'm not overly fond of the glass top, because it's so hard to keep clean.

</comment><comment><USER4> This isn't a pic of my actual desk (pulled from Google Images) but its the exact same desk I have, minus the drawer (was too lazy to take a pic): [http://farm5.staticflickr.com/4118/5221683438_8716ac1be8_z.j...](http://farm5.staticflickr.com/4118/5221683438_8716ac1be8_z.jpg)

Been using it for the last 6 years. Works great.

</comment><comment><USER5> I don't use a desk. I work on the sofa, on a chaise lounge in the sunroom, on a folding chair on the patio, sometimes in bed. With a laptop, on my lap. If I'm tired of sitting, I have a freestanding shelving unit in the sunroom that's the right height to put the laptop on top of while standing.

</comment><comment><USER6> This is my favorite desk:

[http://www.hardwoodfurniture.com/sitting-standing- computer-d...](http://www.hardwoodfurniture.com/sitting-standing-computer- desk.htm)

</comment><comment><USER7> Just switched to a hacked walking desk made from a board put on a treadmill. I lucked out with the height being about right for typing.

</comment><comment><USER8> How do you make a "Ask HN" post?

<comment><USER9> Like this: <http://d.pr/i/rMy2>

</comment></comment><comment><USER10> I personally use a desk called 'Bivi' <http://myturnstone.com/settings/private-office-2/> As far as YC, perhaps someone else will know.

<comment><AUTHOR> Thanks! It looks interesting.</comment></comment>


Ask HN: What do you think will happen to the Gig economy with the bill? - <AUTHOR> Please give you thoughts on what will happen to Uber, Lyft, DoorDash etc. with the new bill that's being passed in California.
This bill would require these companies to treat their contractors as employees - providing health insurance, benefits, etc. Completely killing the low on demand labor they currently benefit from.
What do you think startups that are relying on contract / on-demand workers should do?
Shameless plug - I'm building Shopr. A marketplace that connects online shoppers to nearby apparel stores to get their items delivered within 2-hours (vs. the typical 2-5 day shipping). Our model uses contract drivers to fulfill the orders, which is why I'd like to hear your opinion.
Thanks! www.ShoprDelivery.com <comment><USER2> There are several ways it can play out. Governor can veto the bill or can seem amendments that codifies some exemptions for the gig economy. If the bill passes as is, Uber will most likely continue to operate as is and battle it out in court. The ABC test is still fairly vague and if you can build a true marketplace, where buyers and sellers have full control, you don't have to change anything. Think of the eBay model. Uber can make some fundamental changes, like allow drivers to set prices, select rides etc. and give them more control. If Uber chooses to convert some drivers to employees, they will probably raise prices to cover those costs. This will play out over the years, but the fundamental message is clear, don't run a business whose business model depends on having everyone as "contractors"

</comment><comment><USER3> Here are some of the numerous regulatory issues that companies will need to deal with. It seems almost impossible.

[http://coyoteblog.com/coyote_blog/2015/06/ca-labor- commissio...](http://coyoteblog.com/coyote_blog/2015/06/ca-labor-commission- has-just-killed-uber-though-it-may-take-years-to-bleed-out.html)

<comment><AUTHOR> Thank you for sharing this, I didn't even take in the smaller thinks like sexual harassment training into consideration.

Reading over your article definitely makes it seem impossible in the current state we're in. This will definitely require higher prices for the services.

How do you feel about the bill? Are you for or against it. From what I read your article seemed pretty objective.

<comment><USER3> Personally, I'm against the bill, because I think California has a very poor regulatory environment for running a business, and it seems to be getting worse all the time. This just adds to that problem, in some cases dramatically.

Note, I didn't write the article.

<comment><USER2> California has the 4th largest economy in the world and is growing faster than most states. In 2019 alone, California probably created ~$300bn in public value through IPOs. Clearly, the regulatory environment seems to be great for running a business

<comment><USER4> California succeeds despite the regulatory environment.

Hollywood is there because of the great weather and sunshine which allowed filming all year long.

Tech is there because of the defense industry set up there during WWII.

Agriculture is there because of the great weather and soil.

Basically, every advantage California has is the result of its geography and weather. If you remove these three industries, there isn't much of an economy that isn't dependent on the money that these three industries bring into the state.

<comment><USER2> Florida has all of these, but doesn't have the same economy

Edit: actually, let me get into more detail on why I reject this hypothesis that I hear all the time "California is successful despite its govt / regulations etc.". I reject it in the simple notion that if the regulatory environment was bad for business, it will BE bad for business and it will play out over a time period on actual outcome. It is almost like a product manager saying that "I have the best product, but my users hate it". The fact is that the regulatory environment created the most successful economy in the US is the only thing that matters. Now let me get into why the regulatory machine works - first of all California legislature understands that we live in a knowledge economy - which means a low value regulatory relief like tax cut is unimportant. Rather, what people in the knowledge economy are looking for are safety nets, equality, worker protections, anti-competes, accessible healthcare, acceptance etc. The same arc that provides the strongest LGBT protection in the nation also passes AB5, with the sole intention of protecting worker rights. California laws provides volumes of the above - resulting in global talent willing to move here. Couple that with strong environmental protections, which not only provide recreational opportunities, but also spurs alternative industries. Looks the explosion in solar providers, electric car companies etc.

<comment><USER5> Given your first line 'Florida has all of these, but doesn't have the same economy' is wrong in so many ways, I have a hard time accepting your second paragraph.

<comment><USER4> Yup, someone clearly doesn't know much about the history of Florida, which was swampy and mosquito invested and only really became inhabitable after the invention of air conditioning and when terraforming become advanced enough to drain swampy areas. It was basically continental America's last frontier.

[https://www.politico.com/magazine/story/2017/09/08/hurricane...](https://www.politico.com/magazine/story/2017/09/08/hurricane- irma-florida-215586)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Haven't read anything about it but the usual outcome in situations like this is that entrenched players (who secretly backed the politicians responsible) come up with a clever legal structure that allows them to evade the laws. Small players can't compete and are forced out by barriers to entry. Politicians collect fat checks. Citizens are either oblivious or confused why life got worse. But it goes on.

<comment><USER5> I could not agree more, and that is why I hate ALL politicians, and the corporations that buy them.

</comment></comment><comment><USER7> I think it will have a bigger impact on FedEx and the "real gig economy" that has millions of contractors.

</comment><comment><USER8> This does not generalize to the broader gig economy, but I expect quarterly losses will increase for Uber and Lyft, whether due to adhering to or fighting the bill.

While I'm not a fan of either company, heavy blows to both have the risk of putting Lyft into a downward spiral as they have far less capital to weather a storm than Uber. If the duopoly becomes more like a monopoly that would give Uber even more leverage over drivers.

</comment><comment><USER9> Business models that rely on being able to exploit workers who are desperate for income by compensating less than is required to survive in the expensive cities where those businesses operate will fail. This is not a bad thing.

</comment><comment><USER10> Almost every company had an "unfair competitive advantage" until regulation took over. It seems the gig economy did not move on to other things fast enough and now they 've "overstayed their welcome".

</comment><comment><USER11> If they really relied on revenue and profit, so function like normal businesses, they would simply register overseas and pay drivers using bitcoin.

Problem for those companies is that they rely on inflated valuations fueled by printed money i.e. basically robbing these same contractors but in their old age, their future pensions/public funds... Which leaves them in quite a difficult predicament, but why should we care?</comment>


Emmy Awards brings the computer algorithm to Hollywood - <AUTHOR> http://www.thetimes.co.uk/tto/arts/tv-radio/article3874137.ece

<comment><AUTHOR> It's behind a paywall, but basically the article is suggesting that the success of House of Cards is down to Netflix's data mining.

"In the case of House of Cards, the data signalled that fans of the original BBC series also liked Spacey and Fincher. Those findings were pivotal in the decision to invest $100 million (£62 million) in 26 episodes. This, say pundits, could be the start of a television revolution."</comment>


The useless text book algorithms - <AUTHOR> http://ayende.com/blog/171937/the-useless-text-book-algorithms <comment><USER2> 1) Lots of algorithms are built into tools. For instance, a relational database will generate an algorithm for doing the query by composing various parts. Some vague knowledge about the algorithms can help you write better queries, but you can do a lot of "searching" and "sorting", and when you use prebuilt libraries you can get code where people have thought about cache locality and all the practical issues of performance as well as the O() limit.

2) Knuth is obsolete. Learning CS from AoCP is like learning physics by reading Newton.

<comment><USER3> Everyone learns physics by starting with Newton.

<comment><USER2> Not reading the original though.</comment></comment></comment>


Is Ruby surpassing Python, Perl any time soon? - <AUTHOR> http://www.indeed.com/jobtrends?q=ruby%2Cpython%2Cperl&l=

<comment><USER2> Does this data have anything to do with anything?

Because these appear to be percentages of jobs on indexed job sites that mention term X, every single programming language that I checked is shrinking in share. Is that because software is becoming passé? Is it because there's a sudden enormous demand for pipefitters? Or is it just because some hiring managers (but not others) have concluded that hiring people through job site postings is a complete waste of time?

And is the relative share of Java, C++, Perl, Ruby, and Python being completely skewed by the relative percentages of hiring managers who think that job sites are a complete waste of time?

I certainly would never make an open job posting for a Ruby programmer unless I had no other choice. I don't enjoy reading resumés with a shovel.

</comment><comment><USER3> No. But who cares? It's still fun, and a perfectly viable choice.

</comment><comment><USER4> <http://www.google.fr/trends?q=ruby%2C+perl%2C+python>

<comment><USER5> Very informative link. You can see Python's poor PR at work in the headline on the right, "Python eats Australian family dog."

<comment><USER6> Ha! In all seriousness, Ruby doesn't fare any better.

<comment><USER5> True: "JFK Documents Include Reported Ruby, Oswald Conversation."

</comment></comment></comment></comment><comment><USER7> [http://www.indeed.com/jobtrends?q=ruby%2Cpython%2Cperl%2C+ja...](http://www.indeed.com/jobtrends?q=ruby%2Cpython%2Cperl%2C+java&l=)

<comment><AUTHOR> Take a look at the speed of adoption - [http://www.indeed.com/jobtrends?q=ruby%2Cpython%2Cperl%2C+ja...](http://www.indeed.com/jobtrends?q=ruby%2Cpython%2Cperl%2C+java&relative=1)

</comment></comment><comment><USER8> Check the Relative view, as opposed to defaulted Absolute:

[http://www.indeed.com/jobtrends?q=ruby%2Cpython%2Cperl&r...](http://www.indeed.com/jobtrends?q=ruby%2Cpython%2Cperl&relative=1)

</comment><comment><USER9> No.

</comment><comment><USER10> Will Arc surpass Ruby or Perl anytime! Soon or late?</comment>


A Protocol for Dying - <AUTHOR> https://changelog.com/205/ <comment><USER2> [https://news.ycombinator.com/item?id=11547212](https://news.ycombinator.com/item?id=11547212)

<comment><AUTHOR> Thanks for linking that, but this in an in depth audio interview with Pieter on that subject, and more. Tons of wisdom shared by Pieter in this call.

</comment></comment><comment><AUTHOR> Listen to this podcast episode. You will not be disappointed.

Then, come back here and share your favorite quoteable moments.</comment>