Feerless: Crowd-sourced, preemptive notifications for Netflix watchers with PTSD - <AUTHOR> https://feerless.us/ <comment><USER2> This is a really creative approach to a problem that far too many people need to deal with. I think this project is going to end up helping a lot of people.

<comment><USER3> Thanks! I'm really hoping that it'll help a lot of people dealing with PTSD live a normal life. It sucks to get surprised and have something that's supposed to be entertainment ruin your day.

</comment></comment><comment><USER4> Very nice. Would be nice to somehow feed back to other viewing devices -- e.g. Netflix app on the PS3 or "smart" TVs. Suppose that requires integration from the company Netflix.... (there isn't an add-on marketplace for TVs, right?)

<comment><USER3> (creator here) Wish there was, but they closed down their API several years ago. It would be great to get an integration on Apple TV, which would likely require some kind of partnership with Netflix like how Rotten Tomatoes and Common Sense Media does it.

<comment><USER5> If you want to get tricky, you could build a mobile app that can tell what netflix show you're watching based on audio data ala Shazam.

Maybe you could talk to these guys who have done exactly that for figuring out viewership numbers (maybe they'll want to share the tech): [http://www.wired.com/2016/01/meet-symphony-the-company- that-...](http://www.wired.com/2016/01/meet-symphony-the-company-that-tracks- netflixs-elusive-ratings/)

Or maybe see if you can use [http://echoprint.me/](http://echoprint.me/) or build your own [http://royvanrijn.com/blog/2010/06/creating-shazam-in- java/](http://royvanrijn.com/blog/2010/06/creating-shazam-in-java/)

[EDIT]: Or maybe a wearable app, so that you don't have to have your phone out? It could potentially warn you about TV/movies too just by vibrating.

<comment><USER3> Building a Shazam-like thing would actually be really cool to identify what shows people were watching. This way it would bridge the Chrome extension problem and put it on TVs. The only problem is getting the database of shows in the first place. I'm afraid it would put too much on the user to input the show name and episode information since Netflix doesn't have an API anymore.

</comment></comment></comment></comment><comment><USER6> Are the triggers classified, or are they generic?

To be more specific, do users set their triggering scenarios in the extension (eg shark attacks and water but not clowns) and only recieve warnings for that type of trigger, or are all reported triggers displayed to all users?

<comment><USER3> As of now, they are only generic. But I'm aiming to have categories soon, so you can sign up to receive clown warnings but not shark attacks. Users will then be able to classify warnings by category when they report them as well.

(though how would one categorize clowns attacking sharks??)

<comment><USER6> Probably the 'Absurd' subcategory of 'Interspecies Violence'.

Thank you for the clarification, best of luck with your project.</comment></comment></comment>


Ask HN: How do I choose the right set of tools for web app development? - <AUTHOR> I have an idea for a side project that is essentially a web app but I'm struggling to find the right tools for the job.
The number of frameworks/libraries for web app development is quite overwhelming and it's difficult to determine which one I should be using.
Should I go the "pure" route with React and its related libraries (Redux, etc.)? Should I use something that tries to provide everything out of the box like Ember or Vue? Ditch it all and just roll vanilla JS? I could go on but my point is that I honestly don't know which of these is right.
For context the web app I want to build is essentially a chat app at the core. I already know what I'll be building the backend with (Phoenix/Elixir) but the frontend remains a mystery for now.
Any insight on the issue would be appreciated. <comment><USER2> At the beginning of a project building _something_ is far more important than building _the right thing_. If you wait until you've figured out the perfect framework to build with you'll have wasted a lot of time and you'll probably find you're wrong anyway as you discover things along the journey to Version 1.0.

Just build something.

</comment><comment><USER3> Just as a bit of knowledge: The current Phoenix channels implementation should work alright with React, but you'll have to work it into what you're wanting to do.

In a few months, an Ember addon should be available that provides Phoenix support, built by Chris McCord himself!</comment>


Mega API - <AUTHOR> https://mega.co.nz/#developers

<comment><AUTHOR> Some interesting points:

      All cryptographic operations involving symmetric or
      private keys are performed on the client side

      Each general filesystem node (files/folders) has an
      encrypted attributes object attached to it, which
      typically contains just the filename.

      All symmetric cryptographic operations are based on
      AES-128.

      Each file and each folder node uses its own randomly
      generated 128 bit key. File nodes use the same key
      for the attribute block and the file data, plus a
      64 bit random counter start value and a 64 bit meta
      MAC to verify the file's integrity.

      Each user account uses a symmetric master key to
      ECB-encrypt all keys of the nodes it keeps in its own
      trees. This master key is stored on MEGA's servers,
      encrypted with a hash derived from the user's login
      password.

      In addition to the symmetric key, each user account
      has a 2048 bit RSA key pair to securely receive data.
      Its private component is stored encrypted with the
      user's symmetric master key.

      MEGA supports secure cross-account access to folders.

      MEGA supports secure unauthenticated data delivery. Any
      fully registered user can receive files or folders in
      their inbox through their RSA public key.

      (MEGA) is also our first JavaScript project</comment>


Study finds almost half of all cancers linked to preventable factors - <AUTHOR> http://www.cbc.ca/news/canada/edmonton/study-finds-almost-half-of-all-cancers-linked-to-preventable-factors-1.3434002 <comment><USER2> I wonder how long it will take before we'll see more studies on dairy and IGF-1 and how they affect cancer. I seriously doubt that it's a coincidence that the Nordic countries have some of the highest cancer rates in the world, since they also drink the most milk. Or that the people with the Laron syndrome are resistant to cancer, since (if I remember correctly) they have some sort of defect in their IGF-1 receptors.

T. Colin Campbell talks a bit about this in his books (China Study etc.). I think he's correct that there is some sort of taboo against questioning dairy and protein.

Edit: I should probably mention that IGF-1 is a growth hormone. Cow's milk contains a lot of IGF-1. You know, those calves are pretty small when they are born, but are supposed to grow into full-size cows. Both humans and cows have receptors for the very same IGF-1.

<comment><USER3> Also I wonder if type of dairy (fermented/processed/etc) serve as additional confounders.

PS do not forget sunlight/vitamin D levels if speaking about Nordic countries specifically not just dairy. Also a known cancer risk factor.

</comment></comment><comment><USER4> I am very curious how they can come to the conclusion that unhealthy eating (whatever that means) contributes to cancer. There is so much tied up in that statement. Let's put aside the fact that dietary guidelines for a healthy diet are dubious at best. How would they determine that a person that contraced cancer had an unhealthy diet? Did they simply look at the weight or perhaps the perennially maligned BMI? Did they rely on self reporting? Did they account for changes in diet across the entire lifetime? It is just crazy to think about all the ways that the foundation for such a claim could be faulty.

<comment><USER5> Probably having more than 50g sugar per day etc? While the decade-long saturated-acid-bashing is controversial, there are things that are proven to help longevity, like eating fatty fish regularly or not eating more than you spend.

<comment><USER6> 50g sugar is like 2.5 apples.

<comment><USER7> Fruits have been cultivated and bred towards greater sweetness. They are much sweeter than their natural ancestor.

<comment> saiya-jin indeed, not something I like. now apple doesn't feel healthy at all, more like a giant candy (i know it's still probably healthier to eat it rather than not, but I really wish there would be types which would be less sweet)

<comment><USER8> I think "healthy food" is a bit misnomer: only people can be healthy or unhealthy, while food can be nutritious or not. While health of an apple is quite a different thing (apple tree disease?)

</comment></comment></comment></comment></comment></comment><comment><USER9> I always find it ironic when I see people fundraising for cancer research by selling doughnuts.

<comment><USER10> The worst has surely got to be the 'Buckets for the Cure' campaign by KFC.

[http://media.onsugar.com/files/2010/04/16/5/301/3019466/0d0b...](http://media.onsugar.com/files/2010/04/16/5/301/3019466/0d0b89bb6461864e_Aviary_ww5-komen- org_Picture_1.preview.jpg)

</comment></comment><comment><USER11> I wonder how many places will report this with the headline: "Study finds majority of all cancers are not preventable"

I can't tell exactly what this does mean... does it really mean most cancers are just not preventable? If 45% are preventable, then are the rest NOT? The risks [0] are pretty obvious. The "Other Risks" [1] are rather interesting though.

[0] [http://albertapreventscancer.ca/reduce-your- risk/](http://albertapreventscancer.ca/reduce-your-risk/)

[1][http://albertapreventscancer.ca/reduce-your-risk/other- risks...](http://albertapreventscancer.ca/reduce-your-risk/other-risks/)

<comment><USER12> Many cancers really aren't avoidable, as there's a spectrum of causes. The mutations that cause cancer can come from many sources - carcinogen exposure, UV light/radiation, inherited defects, or unavoidable errors that occur when cells divide (on average, around 3 errors per cell division).

Getting cancer is a lot like playing the lottery (or perhaps more accurately, Russian Roulette). It requires an accumulation of mutations in two or more key genes, and these mutations occur more or less randomly throughout the genome, regardless of cause. So maybe your first hit happens from a chest X-ray, and the second hit comes from smoking. Or maybe you just get old and the replication errors pile up in blood stem cells, giving you leukemia.

The point is that it's all probablistic, and that's why some smokers live to be 100 cancer-free, and some health-nut marathoners get cancer. In general, though, these external factors can bend the odds one way or the other.

<comment><USER3> While still (probably) probabilistic to a large extent, specially concerning environmental exposure, there's more acceptance recently into cancer having a metabolic component, many cancer and metabolic related pathways cross (eg fasting/insulin/igf-1). So it's not necessarily just lottery, or rather, we still don't know how large of an factor the lottery part actually is.

</comment></comment></comment><comment><USER13> I made sure to read all the previous comments here and the article kindly submitted to open the thread before posting this comment. I see the article links to a related website[1] with interactive advice on how to reduce risk of cancer, based on the study findings. That website has a page that sums up research has been showing for years, in multiple different studies:

"Research suggests that only 5 to 10% of cancers run in families. Some factors, like age, are outside our control, and some we just don't know about yet.

"The really good news is that up to 45% of cancer in Alberta is caused by factors we can control.

"So while it's not possible to completely prevent getting cancer, there are many proven things we can do to greatly reduce our risk. This is what cancer prevention is all about."

As I look at the site's advice, I see

Eat Healthy (I should still do a bit more to reduce calories while increasing dietary fiber from vegetables and whole grains, but I'm mostly on that already)

Prevent HPV Infections (I've got this covered)

Get Screened (some screening programs are useless, actually, but I participate in the screening programs with proven benefit)

Limit UV Rays (easy to do in Minnesota in the winter)

Live Tobacco-Free (I have always done that)

Be Active (I exercise moderately every day)

Maintain a Healthy Weight (I can improve on this a little)

Drink Less Alcohol (I go weeks at a time without drinking at all, and have never been drunk)

and control other risk factors, which I do.

You could do all of this too.

[1] [http://albertapreventscancer.ca/](http://albertapreventscancer.ca/)

</comment><comment><USER14> Absolutely all cancers are linked to being alive, which is an easily preventable factor.

</comment><comment><USER15> Really? Half of all cancers? Really!?

I would love to see a research organization attempt to come up with a single, comprehensive, complete list of all cancers first.

What I read from this is, somebody was given 3/4 of a million to prove something that's already known. Moderate exercise, not having unprotected hookups with randos, and not eating shit all the time will make your body more healthy.

The only thing novel sbout this study is they added, '...for cancer sufferers'.

</comment><comment><USER16> It's really hard to figure out whether to trust this study, I can't find a link to anything that's been published/peer reviewed on the OP link. These kinds of epidemiological studies are incredibly difficult, and easy to get wrong.

There is a good paper on this topic though:

[http://www.nature.com/nature/journal/v529/n7584/full/nature1...](http://www.nature.com/nature/journal/v529/n7584/full/nature16166.html)

</comment><comment><USER17> Problem is figuring out which behaviors, and which foods not to eat.

<comment><USER12> Here: \- Stop smoking, \- keep active and at a healthy weight range \- reduce red meat consumption (and barbecued/charred food) \- reduce your alcohol intake \- wear sunscreen.

Boom - you've just covered most of the risks that you can control.

<comment><USER18> And don't eat antioxidants... [https://news.ycombinator.com/item?id=10983214](https://news.ycombinator.com/item?id=10983214)

<comment><USER19> People are downvoting you... why? You even provided a citation.

This is one of the more fascinating recent discoveries about diet, that anti- oxidants can actually CAUSE cancer instead of prevent as previously assumed.

Obviously the jury is still out, but we had thought the jury was not out until recently.

<comment><USER3> It's well known that cancer cells die under oxidative metabolic pressures, and also that antioxidants can help prevent free radical caused DNA damage (which might lead to cancer). So antioxidants can both help and cause damage, depending on the context, the problem is finding the balance.</comment></comment></comment></comment></comment>


Why I hate your Single Page App - <AUTHOR> https://medium.freecodecamp.org/why-i-hate-your-single-page-app-f08bb4ff9134 <comment><USER4> Why I hate your classic HTML app:

\- Every click is a full page load, and you still didn't manage to get caching right, so it takes 2 seconds to load.

\- When I have multiple tabs open, your badges and notifications fall out of date, because you never poll for updates.

\- If I mis-enter information into a form, your error handling forgets all my information and I have to re-enter it.

\- You forgot to update the styles on that rarely-used page, and now it's got half the new CSS and half the old CSS and the point is the header runs halfway down the goddamn content in Times New Roman.

I get it, there are problems with SPAs. But this perfect land of one-page-per- link has real usability problems if it's not implemented properly, and there's a lot of maintenance overhead associated with a sprawling mass of transcluded templates. If we're going to criticize an architecture because it's easy to poorly implement, I don't think "ROCA" or whatever we're calling it has any meaningful benefits over SPAs in the general case.

<comment><USER5> Since we're talking about poorly implemented features.

Why I hate your SPA:

\- If I click on a link, I receive no indication that I actually clicked a link, then 2-10 seconds later the page abruptly loads. Sometimes the page doesn't load at all.

\- I cannot tap and hold a link, wait a second for the pop-up menu, and open the link in a new tab because the link isn't actually a link. It's implemented in JavaScript.

\- The back and forward buttons don't work as expected because either history isn't maintained or it's shoddy (scrolling _should not_ be a history event).

\- The refresh page button don't work as expected because it resets you to the beginning.

<comment> aaron-lebo Just to be clear, that _is_ a poorly designed SPA, none of that should be happening and is easy to avoid.

<comment><USER5> That is absolutely true, but I've seen it enough times to be annoyed. Also, the grand parent post was about classic HTML apps which were poorly designed with issues that should be easily avoidable.

</comment></comment></comment></comment><comment><USER6> > Maybe your single page app is different, but the ones that I know break most > of my browser's features, such as the back and forward buttons, page > refresh, bookmarking, sending a link, or opening a link in a new window or > tab.

My SPA is different - [https://www.seasonalfoodguide.org](https://www.seasonalfoodguide.org).

Browser back button works like normal.

Each screen has its own discrete URL, so you can share links, refresh, bookmark or open in a new tab, just like any other website.

I think the criticism here is misguided. The problem is not with SPA as an architecture, it's with SPA devs not implementing features that end users are accustomed to on a website. They can all be added, it just takes effort.

The biggest valid criticism to SPAs IMHO is the initial site load. There are ways to mitigate (CDNs, progressive loading, compression, etc) but pound-for- pound SPAs probably have longer initial load times on average for the first page than a vanilla HTML site does.

Once it's loaded there's no faster way to traverse a website, IMHO.

<comment><USER7> > My SPA is different - > [https://www.seasonalfoodguide.org](https://www.seasonalfoodguide.org).

This app is a good example of one of my pet peeves: ctrl-click doesn't reliably open links in a new tab.

<comment><USER8> Middle clicking works great, so I am happy! Mice need at least 5 buttons anyway.

Right click and open in new tab also works. I always forget about ctrl-click since I never use it, odd that it doesn't work given how well everything else does!

<comment><USER9> Middle-click is not working for me either in Firefox.

<comment><USER8> Works fine in both Edge and Opera (Hah!) on Windows 10. :)

It doesn't work in Internet Explorer though. No FF on this machine to test out unfortunately.

</comment></comment></comment></comment></comment><comment><USER10> +1000

The biggest things for me are probably the excessive amount of resources used, the long load times, how hard it is to get things "right" (like not breaking the back button) and links taking awhile to load because we have to load your stupid SPA (if they work at all).

SPAs did win out big in one area though. On mobile. Except on mobile they're called "apps". As much as many HNers like to chafe against native mobile development as they yearn for the open standards of the Web, native apps have basically "won". Users love em.

I guess that leaves desktop.

I do wish more people asked "does my Web presence need to be an SPA?" or even "will it benefit significantly from being an SPA?" because I feel like the answer more often than not is "no".

<comment><USER11> How hard it is to get things right? It's not hard at all. It's builtin with frameworks like Ember or Angular, and for React you got react-router which does things correctly by default. It's just bad programming. I don't even understand why people would make an SPA without a url-router. Doesn't that just make development harder/more anoying?

Why would links take longer to load in a SPA? CSS, Javascript and the like should already be downloaded, there should be much less networking involved.

Also. My SPA's come in at around 120-130kb minified (no gzip). That's about the same as "pure-html" sites which include jquery.

I do agree with your last point though. Pure content sites, or even "mostly"-content sites, is probably better off with backend generated html.

<comment><USER12> > My SPA's come in at around 120-130kb minified (no gzip).

react-dom is just a touch bigger than that alone, fwiw

<comment><USER11> I know, react is pretty big. Preact is great if using Javascript, otherwise Elm is pretty awesome as well.

</comment></comment></comment></comment><comment><USER13> One big downside of SPAs the author didn't mention is the chain reaction effect I wrote about last year[1], where if you start to implement one browser-native feature in JS, it breaks other browser-native features, and it begins a chain reaction where you basically implement the whole site in JavaScript, and the result ends up being noticeably worse than if you had just stuck with native browser features from the beginning. It's not necessarily specific to SPAs, but it's definitely a very common problem I see with them.

[1]: [https://sdegutis.com/blog/2016-03-21-why-i-dont-use- clojures...](https://sdegutis.com/blog/2016-03-21-why-i-dont-use- clojurescript/)

</comment><comment><USER14> None of the things described here are _inherent_ to single page apps. Ember (with Ember Data and proper routing), for example, solves most of the issues he brings up (back button not working, failure to link to individual items) by convention.

<comment><USER15> > _None of the things described here are inherent to single page apps._

Does it matter though, if they are still all _prevalent_ on single page apps?

<comment><USER14> I think so, if only because the discussion should be surrounding best practices and following standards, as opposed to a sensationalist notion that single page apps should be abandoned in general.

</comment></comment></comment><comment><USER16> Some of this hits home for me. I work on the WAY DEEP backend of one of these 'modern single page apps', so dont really care about the REST apis or UI/UX. I will say our actual website is a nightmare to use and I attribute a lot of it to (A) mgmt demanding bad UI/UX on short timeframes(B) front end folks having the power to write butt loads of JS code to achieve said goals with no thought to system wide architecture / integration. We have so much shit happening each time you click to a different part of webapp, we seem to have hit the messy phase of a codebase where you cant change one part of the site without breaking something else in a totally different section of the codebase.

to be fair though, as with everything there are pros and cons. Once i learned to deal with some of complexities and crazy UI/UX, using our web app is like driving a spaceship and it does work pretty fast considering all the data getting lifted, html getting rendered etc.

<comment><USER17> "you cant change one part of the site without breaking something else in a totally different section of the codebase" Welcome to the feeling I had in 2005 in a Java swing "application". And I guess lots of people felt the same even before..

</comment></comment><comment><USER18> Answer: "Maybe your single page app is different, but the ones that I know break most of my browser's features, such as the back and forward buttons, page refresh, bookmarking, sending a link, or opening a link in a new window or tab."

<comment><USER19> Yeah, these are problems. 2017 and the browser still doesn't know what the javascript is trying to accomplish

</comment></comment><comment><USER20> I really hate articles that have a large fixed header at the top, that causes the next few lines of text to be hidden when I hit page down. Something something glass houses and throwing stones.

</comment><comment><USER21> I half way agree here. Too many things are SPA's that don't need to be. An internal tool used by < 1000 people? Maybe let that stay server side rendered. A cutting edge app that promises a new clean way to bank/farm/hire/cryptowhatever, then please embrace SPA's and PWA's. The reason we have a glut of these SPA's is because we have devs, designers and product not recognizing context. Some things don't need to look or feel cutting edge. The real tragedy here is that I've seen companies burn thousands on SPA's when they could have had one front-end on their API team make it server side rendered.

</comment><comment><USER22> What you hate is just bad design and programming. All these things can be handled in an SPA.

</comment><comment><USER23> Most websites get little benefit from using a SPA architecture, and the negative aspects are significant:

\- deploy headaches

\- the infamous JS fatigue

\- debugging (minified code and nested anonymous functions make it painful)

\- troubles with content blockers

I guess we'll have to wait a few years until the JS/SPA ecosystem will become more mature and find good solutions to these annoyances. Until then I'd gladly stick with rails, django & friends, both as a developer and as a user.

</comment><comment><USER24> This. A thousand times this. And if you do it for a content site, you deserve a special place in hell.

<comment><USER11> That place reserved for child molestors and people who speak at the theatre?

</comment></comment><comment><USER25> Can someone link to popular sites that do things he's criticizing?

</comment><comment><USER26> He makes some good points. There are good reasons and uses of the tech in SPAs, for example, I show previews of documents made with forms by hiding the form and rendering the document, but on a blog app I made where I did the much the same thing I made a button that linked to the article so users could find it easily. The "go back" button didn't work to reopen it though and I suspect search engines wouldn't have known what to do with it.

</comment><comment><USER27> Most of his argument is negated by using routing and route parameters. Generate a unique ID for all data points and any page can be linked to and will be in the history.

</comment><comment><USER28> > _Maybe your single page app is different, but the ones that I know break > most of my browser's features, such as the back and forward buttons, page > refresh, bookmarking, sending a link, or opening a link in a new window or > tab._

That reminds me: if anyone out there has any advice how to make AppCache play nice with JavaScript-based routing solutions (say, react-router), please let me know.

<comment><USER29> Are you using AppCache for compatibility reasons? If yes, my condolences. If no, just use Service Worker. If you don't want to write it yourself, use sw- precache.

<comment><USER28> I _was_ trying to support Safari, yes. But maybe I should just give up on that.

<comment><USER29> Safari has ServiceWorker in active development. It'll take a while, but it's sooner than one would think.

</comment></comment></comment></comment><comment><USER30> Web browsers were designed to deliver stateless documents to users.

Modern users want content delivered to them in a personal, rapid, contextual(stateful) manner

Fight.

<comment><USER31> > Modern users want content delivered to them in a personal, rapid, > contextual(stateful) manner

Is that actually true? Maybe it's that web developers want to deliver content in this way and try to do it with the browser instead of a native application more fit for purpose and they don't actually give a damn about what the user wants.

<comment><USER8> > Is that actually true? Maybe it's that wev developers want to deliver > content in this way and try to do it with the browser instead of a native > application more fit for purpose and they don't actually give a damn about > what the user wants.

Remember old forums that made you load each and every reply in a thread?

Compare that to Reddit which allows for collapsing and expanding of threads, and for async loading of reply chains that go on for too long.

Being able to open-in-place media users link to was a huge reason for the uptake of Reddit Enhancement Suite, now, a feature built into Reddit. Upvoting not taking users to a new page or reloading the page (compare to how Slashdot used to do it!), all these features involve maintaining state.

Same thing for most bug tracking apps. If I am triaging a list of bugs, a SPA is the way to go, I don't want to spend more time on page loads then on marking triage status.

</comment></comment></comment><comment><USER32> >>> Maybe your single page app is different, but the ones that I know break most of my browser's features, such as the back and forward buttons, page refresh, bookmarking, sending a link, or opening a link in a new window or tab

All these concerns assume HTML 5 history api doesn't exist. It does and SPAs can do all that.

</comment><comment><USER33> A very bizarre article I feel.

Stefan identifies common pitfalls or shortcomings of most single page applications such as:

1\. Bad performance because of too many operations

2\. Breaking browser navigation buttons

3\. Not having unique links/anchors to in-page content.

While there are in fact multiple ways of bringing focus and solving these problems the authors suggests that simply ditching SPAs for native toolkits or backend/frontend system is the way to go.

While switching away from SPAs might mitigate the problems listed above - <USER2> will also present new problems that developers have to tackle - or simply spend time on.

The main problem here is how hard the problems he describes are to deal with in current frameworks I believe. He has one thing 100% right - <USER3> attention to those problems is the right way to go.

</comment><comment><USER34> Lot of SPAs I have seen also reinvent the desktop. They have their own tabs and dashboards. And they do it badly - no shortcuts, no integration with the file system..

</comment><comment><USER35> I've always liked JQueryMobile because it breaks so few things. I haven't tried some of the newer alternatives.

<comment><USER36> JQueryMobile was the slowest ugliest thing back in 2011-13 timeframe. Faking the iOS1-6 UI controls even on Android - no words.

</comment></comment><comment><USER37> Come on, this is clickbait as it can be with the title and the first line of the article, that's what I hate.

</comment><comment><USER38> but that's the point: an application isn't a webpage. An app doesn't have a concept of back and forward, it has undo & redo. It doesn't need refreshing because it's syncing with the server by websocket. It doesn't have location it has state.

</comment><comment><USER39> Use a decent router. Single Page App ecosystems have been festered by mediocre routers that make doing stuff like this hard, where there's no need to be.

This is the design our team likes to follow, I haven't seen it documented anywhere (but I doubt it's new), so I'll write it here.

Essentially, we try to replicate traditional server side MVC thinking on the client side. Decent server side rendered apps that don't have the problems mentioned in the OP's post usually follow RESTful principles to some extent. This means that what you see on a page is a pure (ish) function of these things:

        * The parameters in the URL
        * The state of the database

And nothing else. Translated to the client side, it means that you want anything the user sees to be a function of:

        * The URL
        * The state of the model layer (or the flux stores, whatever)
        * Addendum: 100% of the model layer is an
          eventually-consistent subset of the database

We use one exception to this rule: unimportant state is allowed to be right in the view (we use React, so that's component state). Stuff like "is the dropdown menu expanded" or "which of the items in a list are selected" is neither in the URL nor in the model layer (because we won't sync it back to the database). The rule of thumb is "if the user refreshes the page, is it a problem if this data is lost?". If the answer is "no", we can make it component state, as close to the action as possible (so not in the root component usually).

All of this combined gets us a lot of stuff for free. For example, all our modal dialogs, and even "is the menu shown" is addressable from the URL. This might feel like overengineering, but it gets us lots of stuff for free.

For example, users on mobile phones expect to be able to close a modal or a menu by hitting the hardware back button. We get this for free, because when the user does an action that causes a modal to show, we redirect to some URL like example.com/wherever/?someModal=1. (all using the history api). Router picks it up, modal is shown. Model layer is not touched, this is 100% view layer work. Then, when the user hits "back", the browser restores the URL to example.com/wherever, router picks up the change again and the view renders the same page but without the modal.

We get all the usual browser features for free simply by following basic REST ideas. Don't put URL stuff in your stores. Don't put non-backend-synced stuff in your stores (just like you wouldn't put important state in your sessions in server side rendered apps). Put everything that matters in the URL.

Any routing library that encourages you to sync URL stuff into your model layer is, IMO, wrong by design.

</comment><comment><USER40> This looks like it needs a (2016) tag in the title.

</comment><comment><USER41> This post is soooo old...

</comment><comment><USER42> Why I Hate your Strawman Article</comment>


Legit but Quick Way to Earn Money Online While Helping Others? - <AUTHOR>

If this question is not allowed here, please send it to /dev/null and accept my apologies.  But I think others might find the discussion helpful.
I suddenly find myself without a job.  I'm actively searching for new opportunities, but got wondering about ways to generate some income in the meantime.
I'm NOT looking for a "get rich quick" scheme, but rather for ways to legitimately, legally, morally, and ethically turn skills and knowledge I have into money.  And I need to do it quickly since the bills are coming due.
I can design and build web sites, for example, but that's not something with a quick turnaround.  I also need to spend the bulk of my time on a "real" job search, so I only have a few hours a day to work on generating supplemental (well, primary for now) income.
I'm interested in hearing ideas on how to do stuff online that would...
> Generate income for me > Be quick and easy to set up > Involve minimal risk (of failure or money) > Actually be helpful to people > Scale well in case I'm able to get some serious traction > Be repeatable / multipliable so I can grow income fast
If, with the help of contributors here, I can come up with some workable ideas that prove successful, I'd like to write a free ebook so that others who find themselves in my situation can avoid some of the worry and panic I'm feeling.
Thanks! <comment><USER2> You may not be _looking for_ a get-rich-quick scheme, but what want actually is one. Anything that had the properties you describe (generates substantial amounts of income, quick, easy, low-risk, scalable) would be a scheme that quickly makes the practitioner rich.

You are going to have to sacrifice on one or more of those axes in order to get something remotely realistic. For example, you can make somewhat disappointing sums of money with a two-week turnaround by doing crappy freelance jobs on oDesk. (On the other end of things, if you had a strong network, you could probably land a good job quickly, but building a network that can support you that well obviously takes time.)

</comment><comment><USER3> I'm afraid there is not really a reliable, scalable way to make nontrivial amounts of money, with no risk and low setup time. This would essentially be the perpetual motion machine of money, i.e., guaranteed not to exist by the laws of economics.

I would say your best bet would be to either comb the latest freelancer-needed thread and contact people[0], or to post a bit about yourself, your skills, and your portfolio here. There are plenty of people on HN that can pay for solid technical work, but I don't think anyone is going to be able to tell you a magical way to make lots of money immediately with no risk.

0: [https://news.ycombinator.com/item?id=7324231](https://news.ycombinator.com/item?id=7324231)</comment>


You don't need to work on hard problems - <AUTHOR> https://www.benkuhn.net/hard <comment><USER2> I consider the main measure of quality for a problem to be how much it helps people, not the difficulty in solving it. This measure applies for entrepreneurial problems where you want to earn money, but most other fields too. No harm in solving little problems that affect no one, but for big life passions, I find that service inspires and motivates more than cleverness.

As my mentor Frances Hesselbein says, "To serve is to live." [https://www.inc.com/joshua-spodek/6-lessons-lunch-best- leade...](https://www.inc.com/joshua-spodek/6-lessons-lunch-best-leader-in- america.html)

</comment><comment><USER3> The problem with this way of viewing the world is that in reality, this guy is judging technical difficulty from the basis of someone who can complete a college master degree in one year less than planned, then concludes he doesn't generally have problems with the mathematical side of things.

Well of course.

Unfortunately this is no more helpful than stating that Muhammad Ali usually doesn't have a problem with street crime. It does not make a generalizeable approach to the problem.

The actual problem he's describing is a lot like being a great fighter. It is not so much about utterly defeating your opponent in one narrow skill, ignoring everything else. It is about being a little better than them in one area and not fucking up in any other ("easy") area. You can be the best at giving punches on the planet, it will do zero good if you easily loose your balance. Even in already the artificially very limited area of competition fighting, you have to be decent at 10 skills, and good at one. In the real world to solve general problems you have to be decent at 100 skills, from tax accounting to sales, from algorithm analysis to team building. None of these you can be a disaster at.

<comment><USER4> Exactly. If he could already join Jane Street as an intern... Well of course somebody who already has all the privileges can easily say that "I don't want these privileges and I want to explore something else", but first you have to be in a privileged position to have the ability to choose. For many others it is totally worth it to get into this position first, then think about what their next step would be.

</comment></comment><comment><USER5> There are a couple of HN tropes that are very similar, but not identical, to this idea.

1\. "Growth mindset"

2\. "90th percentile expertise in two areas is easier to achieve and more useful than 99th percentile in one"

This post seems to suggest "you should remain open to growing into a solver of problems whose hardness stems from being fairly hard in both technical and non-technical ways while not being extremely hard in either alone, because such solvers are useful".

<comment><USER6> I think I dig your comment -- but I'm curious about your use of the word "tropes" which has a somewhat negative connotation; was that intentional?

<comment><USER7> I'm curious why you think "trope" has a negative connotation. Was that researched?

<comment><USER8> Not GP, but to me it can be 'negative'-ish in the same way as 'cliché' is, i.e. it doesn't have to be, but can be used like 'well it's a bit of a trope (resp. cliché) that [...]'

</comment></comment></comment></comment><comment><USER9> I do not necessarily care about hard problems, but I do care a lot about interesting work. Fighting fraud sounds interesting, learning accounting sounds interesting. I find interesting for me often correlates to things I don't know. It is hard to get hired on things I don't know and even harder to stay at the job once I've figure the things out. Happy with my current role because I'm working on stuff that I have to figure out.

So I think less so hard problems and more so learning opportunities.

<comment><USER10> Fighting fraud is only interesting if the fraudless business is interesting. If the business is stupid, fraud should happen.

<comment><USER11> Fraud detection is comprised of a lot of interesting data science and pattern recognition (example being utilization of graph databases like Neo4j and its advantages over traditional RDBMSs of index free adjacency) not to mention the leveraging of ML. If the business paying me to implement this sort of thing is 'stupid' and 'boring' (whatever your definition of that is in the context of a business), why would that make the act of working and implementing fraud prevention any less of an interesting endeavor?

[http://we-yun.com/book/%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93%...](http://we- yun.com/book/%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BA%94%E5%A4%A7%E5%BA%94%E7%94%A8%E6%A1%88%E4%BE%8B/Fraud%20Detection%20Using%20GraphDB%20-%202014.pdf)

</comment></comment></comment><comment><USER12> related: [http://www.paulgraham.com/lesson.html](http://www.paulgraham.com/lesson.html)

"The most damaging thing you learned in school wasn't something you learned in any specific class. It was learning to get good grades."

<comment><USER13> Total lie by guy who goes after what other want from them: profits.

Getting something others want from you, especially figuring what it truly is, is a huge skill and advantage.

</comment></comment><comment><USER14> The author doesn't have the vocabulary for it, but what they're explaining is the difference between complicated problems and complex problems. The existing education system trains software engineers to solve complicated problems, those are what the author calls "hard problems". What he misses is that the problems he's talking about end up being challenging because they're complex.

[https://www.fastcompany.com/90344944/complex-vs- complicated-...](https://www.fastcompany.com/90344944/complex-vs-complicated- problems)

<comment><USER15> They also seem to be extrapolating onto everyone else from their own experience of feeling some kind of pressure to want to solve hard problems.

</comment></comment><comment><USER8> Good for you, but as someone who felt the same way in university, and hasn't really worked on any 'hard problem' since (a few years), I sorely miss academia/studying/learning/challenge, keep thinking about going back for a PhD, wish I'd done it straight at the time (I did want to even then, just thought a break first would do me good), and would relish working on hard problems.

</comment><comment><USER16> > All I'm doing is building a CRUD app

There's also no such thing as a CRUD app - or rather, there is, but it won't meet anybody's requirements as "just" a CRUD app and will require a lot of (unique, interesting, challenging) customization before it's actually helping anybody do anything.

<comment><USER17> The majority of developers seem to make simple CRUD apps overly complex (in the code I have inherited at least).

<comment><USER18> Generally the customer doesn't want "simple" apps like just using a CLI. Then there is the "evolutionary" aspect of feature creep and requirement specs that add non-optimal constraints.

<comment><USER17> I wasn't talking about the interface, I was thinking about people over engineering code or just having poor design / architecture that makes it a lot more complex than it should be.

</comment></comment></comment></comment><comment><USER19> Deeply insightful. Follow the links.

</comment><comment><USER20> You don't need to work on hard problems but in general, solving hard problems is usually more important than creating another TODO app or a bingo card website. The latter is more likely to make you rich (for certain definitions of "rich"), and yet the former could, if successful, be fundamental for the progress of humanity; but, you know, it's hard.

<comment><USER21> It depends on how you define "important". Fundamental shifts are great, and they advance humanity a lot all at once. But ordinary achievements that help a few people at a time, a little bit, take on a cumulative importance of their own.

Even after the big "hard" problem gets solved, there's a gold rush of a huge amount of more ordinary work to pick the low-hanging fruit. Those aren't usually hard problems, but finding relatively obvious solutions for the first time. That wheel will be invented over and over for each sub-domain and specific set of requirements, and will gradually come to look like yet- another-TODO-app as everybody craves the next big leap. But until it comes, there remains a lot of room for making somebody's life just a little better by re-applying the last one for the 999th time.

</comment></comment><comment><USER13> Hard problems are hard because they involve humans. For some reason, the author is confused between the two. Complicated or advanced is not the same as hard.

Anyway, impact is more important than complexity, and not quite as obvious.

A hard problem is climate change, or managing energy market, or figuring new recycling chemistry. Perhaps providing specific medical care in safe manner, or reducing health problems. Providing food or housingfor 10 billion people, that's a hard problem. Getting everyone free education of good quality is a hard problem. Electronic voting is a hard problem.

Hard problems are generally ignored. They do not have obviously actionable solutions.

Complicated problems tend to have many solutions or partial solutions. Additionally it's easy to create a hard problem with an unnecessary solution to a non-problem, see that Wave thing he mentions. (There are many other workable and cheap loan solutions.)

Or fool yourself that you're actually solving any real problem. That typically happens if you define goal without consulting the subjects. (This Wave thing smells of it.)</comment>


Audience Choice Winner of first Venture Capital Fundraising Club Meetup, Feb 3 - <AUTHOR> http://www.youtube.com/watch?v=wyrFWbGiGOc#

<comment><USER2> I was expecting the video to be some sort of viral joke - they announce "gotcha" at the end, or a really exaggerated figure in a pinstriped suit stands up and hands this girl a $500 million check, but NO - shockingly, it's a real presentation? 2 minutes of my life, lost!</comment>


TensorFlow.js - <AUTHOR> https://js.tensorflow.org/ <comment><AUTHOR> _" What is the difference between TensorFlow.js and deeplearn.js?

TensorFlow.js, an ecosystem of JavaScript tools for machine learning, is the successor to deeplearn.js which is now called TensorFlow.js Core. TensorFlow.js also includes a Layers API, which is a higher level library for building machine learning models that uses Core, as well as tools for automatically porting TensorFlow SavedModels and Keras hdf5 models."_</comment>


Simple ways to improve the security of a web app - <AUTHOR> http://blog.fiesta.cc/post/13896457582/three-simple-ways-to-improve-the-security-of-your-web <comment> mike-cardwell Your Strict-Transport-Security definition is missing the "includeSubDomains" flag. STS is a lot more effective if you use that flag.

You should discuss how X-Frame-Options prevents sites legitimately loading your pages inside frames too. I believe Reddit does this amongst others in order to displays a small control panel at the top of the page. X-Frame- Options is appropriate for many sites, but perhaps not for blogs.

You should talk about how CSP prevents most bookmarklets from working. For example readability and instapaper. I really like CSP, but people should be made aware of this.

<comment><AUTHOR> Yeah, I decided not to get into all of the options of each header. Partially because I was writing from a plane without wifi and partially because the response I was hoping for was "these things exist - I'll go read the docs on them".

That said, your points about X-Frame-Options and CSP are definitely important for usability. Maybe I'll update the post w/ some of those details.

</comment></comment><comment><USER2> I wasn't expecting much from yet another "How to secure your website..." article, but those headers are completely new to me.

</comment><comment><USER3> I came in swinging to tear apart yet another oblivious security article, but you actually taught me something.

Looking up X-Frame-Options and X-Content-Security-Policy now--thanks!

<comment><AUTHOR> Glad you enjoyed it.

<comment><USER4> Learned a lot for my next startup. Thanks a lot for this post. I really appreciate.

</comment></comment></comment><comment><USER5> This is one of the best article I've seen in a long time! Great job Mike and best of luck with your new startup!

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER6> It's articles like this that make me doubt that I've "probably read enough"[1].

[1] <http://news.ycombinator.com/item?id=3326210>

</comment><comment><USER7> Chrome 15+ supports CSP. In 15 it uses an old syntax I believe but if you use 16+ then you should be able to use the same headers as in Firefox.

I didn't realize FF had CSP working as well. Thanks!

<comment><AUTHOR> Good to know - thanks. More support is better, but the thing I really like about CSP is how it is still useful as a canary even with only partial browser support.

</comment></comment><comment><USER8> I may be going over old ground, but don't the CSP violations reports ( see [https://developer.mozilla.org/en/Security/CSP/Using_CSP_viol...](https://developer.mozilla.org/en/Security/CSP/Using_CSP_violation_reports) ) open up another attack vector?

I know people who actually implement this are going to have their heads screwed on around the right way, but having a page where you know you can generate server processing, and that is potentially not going to have much security around it screams out to me to be a good place to start an attack from.

Especially as the spec is a bit vague about exactly what happens when (no head specified for example, doesn't say about including cookies or any other information). Also, fiesta.cc's CSP Report URI returns a response that says to keep the connection open.

And, if you manage to get a script injected to a popular page, the site itself acts as a distribution system to enable distribution to multiple users.

Something about this says it's not been thoroughly thought through to me.

<comment> mike-cardwell On that page you'll notice it mentions "request-headers". That was in FF4 and FF5, but was removed in FF6 because of something I reported.

The headers sent in the report included "Proxy-Authorization", so it was possible to steal web proxy credentials by forcing a policy violation on your site. Chromes implementation didn't include the headers from the start. For more info:

[https://grepular.com/Mozilla_Security_Bug_Reveals_Web_Proxy_...](https://grepular.com/Mozilla_Security_Bug_Reveals_Web_Proxy_Credentials)

And the original report (which was recently "unclassified"):

<https://bugzilla.mozilla.org/show_bug.cgi?id=664983>

</comment></comment><comment><USER9> I had never heard of these HTTP headers before. Thank you for the pointers.

<comment><AUTHOR> No problem - I definitely recommend reading the linked Mozilla docs on them.

</comment></comment><comment><USER10> Now only if we could combine this with improving the reliability of a web app.

From the comments it sounds like a great article, but I've been trying to read this for about 8 hours now with no luck.

<comment><AUTHOR> Sorry about that - we use Tumblr to host the blog and have had some issues before. I just converted to a pastebin for you, unfortunately didn't think to include any of the comments but here you go: <http://pastebin.com/yHw7L0Fy>

<comment><USER10> Thanks!

</comment></comment></comment><comment><USER11> [http://www.theregister.co.uk/2011/06/21/startssl_security_br...](http://www.theregister.co.uk/2011/06/21/startssl_security_breach/)

Yeah, fuck that. Like hell am I going to use a free CA as suggested. They have no incentive to keep things secure or in working order at all.

Great article otherwise though!

<comment><USER12> That doesn't really follow.

"The hackers behind the attack on StartCom failed to obtain any certificates that would allow them to spoof websites in a similar fashion, and they were also unsuccessful in generating an intermediate certificate that would allow them to act as their own certificate authority, Nigg said in an email."

As opposed to the Comodo breach where the attackers successfully managed to get fake certificates for several high-profile sites.</comment></comment>


Plan to dam entire North Sea could protect millions from rising oceans - <AUTHOR> https://www.independent.co.uk/environment/climate-crisis-north-sea-dam-uk-norway-sea-level-rise-flooding-emissions-a9333136.html <comment><USER2> The authors acknowledge the consequences of this dam for North Sea wildlife would be catastrophic.

"The tide would disappear in a large part of the North Sea, and with it the transport of silt and nutrients. The sea would eventually even become a freshwater lake. That will drastically change the ecosystem and therefore have an impact on the fishing industry as well," Dr Groeskamp said.

Wow ecocide in Europe for only 500 Billion. Why not just nuke the ozone and get it over with.</comment>


Ask HN: How common are credit card disputes? - <AUTHOR>

I run a SAAS website, and recognise that we have some workflow related payment blockers. Putting that aside, we've had cases where customers were actively trying to cheat us out of paying for services provided by us.<p>I was wondering how frequently this happens, and if the data differs across industry or types of services. How common are credit card disputes at your company, and are they legitimate or are customers trying to cheat you out of paying? <comment><USER2> Not overly common, but always baffling when we get them.

For both my paid services, I send an email every time somebody's card is charged. The first line explains the charge, and the next _two paragraphs_ tell you how to learn more about what we are, why we charged you, how to cancel, and that _we are happy to refund you for any reason_.

That last bit is an entire line by itself.

And then we still get a handful of chargebacks each year. Usually from the boss, who gave his card to an underling to buy our thing. And often they'll remember this when I remind them and _still not cancel the chargeback_.

It's frustrating.

<comment><USER3> Do you dispute the chargeback, providing the necessary evidence to the processor?

</comment></comment><comment><USER4> > _if the data differs across industry or types of services._

You hit the nail on the head here. In the more "degenerate" spaces, chargebacks are high. The more trustworthy the products/services, the higher ticket the items, and the more gracious the return policies, the lower the rate of disputes.

So for example: If you're running an adult site selling pay-per-download pornography for 99 cents, you're going to see tons of chargebacks and disputes all the time. If you're selling high-touch services (like Notary-Public services or something), where there is a trust-relationship between you and the buyers, your rate will be much much lower.

There are a lot of factors that raise and lower the chargeback rate, but I've found industry and type of services to be the most important. People charge back for all kinds of reasons (regretting the purchase, slow delivery, finding a better deal elsewhere, not wanting to deal with customer service), but generally the better the relationship between your company and the customer the lower the dispute rate will be. The more they respect you and what you're selling, the more they admire your brand, the lower the rate. If your brand comes off as a snake-oil-salesman, there's no trust there, no respect, and here come the chargebacks. Hope that helps.

</comment><comment><USER5> Very common with the company I work for now. People will buy our product and dispute. The credit card companies usually obey it.</comment>


Git to mandate users explain their merges explicitly in 1.7.10  - <AUTHOR> http://git-blame.blogspot.com/2012/02/anticipating-git-1710.html

<comment><USER2> Not sure that I like this. The way we work is to do many merges and work on feature branches merging small merges to master.

This is of course just our way of working but it potentially makes for more administration.

<comment><USER3> You can export MERGE_AUTOEDIT=no from your shell's profile scripts to opt out of this behavior, or alias --no-edit into your runs of merge. (I believe you can even use git config to say, globally or per-project, to mix-in an argument to any normal command, but I'm not 100% certain of that.)</comment></comment>


Bruce Schneier: Why the NSA's Defense of Mass Data Collection Makes No Sense - <AUTHOR> http://www.theatlantic.com/politics/archive/2013/10/why-the-nsas-defense-of-mass-data-collection-makes-no-sense/280715/

<comment><USER2> Some of the clearest articulation on the matter I have ever read. I'm proud to see Bruce in such a high-profile magazine.

"Third, this assertion leads to absurd conclusions. Mandatory cameras in bedrooms could become okay, as long as there were rules governing when the government could look at the recordings."

<comment><USER3> I also thought his explanation for why this stuff is unconstitutional, and more importantly, _immoral_ , was one of the clearest I've read online. I hope he gets called to Congress hearings so they hear him say the same things there, too.</comment></comment>


One-third of mobile phones to have an accelerometer by 2010 - <AUTHOR> http://www.isuppli.com/NewsDetail.aspx?ID=20499

<comment><AUTHOR> interesting implications as accelerometers start to approach the same penetration rate as full keyboards</comment>


Aaron Swartz: Guerilla Open Access Manifesto - <AUTHOR> http://pastebin.com/raw.php?i=cefxMVAy <comment><AUTHOR> Science is one of the greatest achievements of mankind. In fact, it's right up there next to the internet and the concept of the library. or books. I can't help but feel like an alien to this world when I can't access papers. I think we can do better for ourselves.

<comment><USER2> Science is the greatest achievement of mankind.

It's not right up there. It _is_ there.

</comment></comment><comment><USER3> I hate that I can't even access to `open access manifesto` in my country for some stupid reason without manipulating my dns.

<http://imgur.com/gjNR4>

<comment><AUTHOR> Holy crap, what?

\----

Information is power. But like all power, there are those who want to keep it for themselves. The world's entire scientific and cultural heritage, published over centuries in books and journals, is increasingly being digitized and locked up by a handful of private corporations. Want to read the papers featuring the most famous results of the sciences? You'll need to send enormous amounts to publishers like Reed Elsevier.

There are those struggling to change this. The Open Access Movement has fought valiantly to ensure that scientists do not sign their copyrights away but instead ensure their work is published on the Internet, under terms that allow anyone to access it. But even under the best scenarios, their work will only apply to things published in the future. Everything up until now will have been lost.

That is too high a price to pay. Forcing academics to pay money to read the work of their colleagues? Scanning entire libraries but only allowing the folks at Google to read them? Providing scientific articles to those at elite universities in the First World, but not to children in the Global South? It's outrageous and unacceptable.

"I agree," many say, "but what can we do? The companies hold the copyrights, they make enormous amounts of money by charging for access, and it's perfectly legal — there's nothing we can do to stop them." But there is something we can, something that's already being done: we can fight back.

Those with access to these resources — students, librarians, scientists — you have been given a privilege. You get to feed at this banquet of knowledge while the rest of the world is locked out. But you need not — indeed, morally, you cannot — keep this privilege for yourselves. You have a duty to share it with the world. And you have: trading passwords with colleagues, filling download requests for friends.

Meanwhile, those who have been locked out are not standing idly by. You have been sneaking through holes and climbing over fences, liberating the information locked up by the publishers and sharing them with your friends.

But all of this action goes on in the dark, hidden underground. It's called stealing or piracy, as if sharing a wealth of knowledge were the moral equivalent of plundering a ship and murdering its crew. But sharing isn't immoral — it's a moral imperative. Only those blinded by greed would refuse to let a friend make a copy.

Large corporations, of course, are blinded by greed. The laws under which they operate require it — their shareholders would revolt at anything less. And the politicians they have bought off back them, passing laws giving them the exclusive power to decide who can make copies.

There is no justice in following unjust laws. It's time to come into the light and, in the grand tradition of civil disobedience, declare our opposition to this private theft of public culture.

We need to take information, wherever it is stored, make our copies and share them with the world. We need to take stuff that's out of copyright and add it to the archive. We need to buy secret databases and put them on the Web. We need to download scientific journals and upload them to file sharing networks. We need to fight for Guerilla Open Access.

With enough of us, around the world, we'll not just send a strong message opposing the privatization of knowledge — we'll make it a thing of the past. Will you join us?

Aaron Swartz July 2008, Eremo, Italy

<comment><USER3> thanks for the copy/paste. I had the same reaction as you when I first saw pastebin is blocked. (about a year ago)

I still don't know why it's blocked and they don't even care to give a reason or explain what's going on.

we have seen worse things than pastebin. even `youtube` stayed blocked for months.

</comment></comment></comment><comment><USER4> Easier to read: <http://pastebin.com/cefxMVAy>

</comment><comment><USER5> Amen, a thousand times amen.</comment>


Ask HN: Is anyone using GraphQL in production with a small team? - <AUTHOR> I know FB is using GraphQL in production, and I keep seeing it pop up more often; even with some references to it as "the REST killer" (which seems a bit hyperbolic). I'm more specifically interested to see if any smaller teams are using it and their results. I have an application with data relationships where it particularly seems to make sense.<p>From what I can see it's very well explained from the clients side (which makes sense), however, less so on the backend. I'm curious as to where you're finding best practices, performance implications, development time (vs REST), maturity, and do you enjoy using it? Any other benefits (besides the obvious) and any experiences with the Ruby implementation (graphql-ruby and libgraphqlparser gems) or Golang implementation would be appreciated as well. <comment><USER2> The graphql-ruby is a gem. Also the community is super helpful.

We're transitioning our jbuilder powered JSON apis to a GraphQL endpoint. In production some of our JSON endpoints are delegating requests our GraphQL endpoint, this makes our transition easier since we can rely on existing tests and do benchmarking. The most time so far we've spent on security. Because a client can request everything we've to ensure we're not exposing private data and have some default safety mechanisms so other team members feel safe to work on GraphQL.

<comment><AUTHOR> Thanks for the reply. Just noticed this now. Would you say development time is slower? Faster? About the same? How is performance benchmarking against your old JSON apis?

</comment></comment><comment><USER3> In case you haven't seen -- a lot of the companies listed on this page are small teams: [http://graphql.org/users/](http://graphql.org/users/)</comment>


Journalist linked to Anonymous found guilty of 3 federal counts of hacking - <AUTHOR> http://arstechnica.com/tech-policy/2015/10/journalist-linked-to-anonymous-found-guilty-of-5-federal-counts-of-hacking/ <comment><USER2> I made a timeline of Mr Keys: [http://newslines.org/matthew- keys/](http://newslines.org/matthew-keys/)</comment>


California Should Be The Economic Model For America - <AUTHOR> http://www.professorhollybell.com/2012/12/17/california-should-be-the-economic-model-for-america/

<comment><USER2> All of these horrible impediments to business are why California has such a horrible economy and complete lack of entrepreneurialism compared to more conservatively run states like Alabama and Arkansas.

EDIT: Oh, and the cited professor is from Alaska, the only state in the US that actually practices literal redistribution (you get a check from the oil companies just for living there). I'm sure she doesn't see it that way, though.

<comment><USER3> > California has such a horrible economy and complete lack of > entrepreneurialism

Can you elaborate on what kind of policies towards entrepreneurship are better in Alabama and Arkansas? Seems to me that SF Bay Area and Los Angeles are both flourishing entrepreneurial havens [1]. I'd argue that the culture of innovation in California outweighs any economic policies that may be adverse to entrepreneurs.

[1] [http://techcrunch.com/2012/11/20/startup-genome-ranks-the- wo...](http://techcrunch.com/2012/11/20/startup-genome-ranks-the-worlds-top- startup-ecosystems-silicon-valley-tel-aviv-l-a-lead-the-way/)

<comment><USER4> He was being sarcastic, but you are right.

California has always been the place to "make it big". From tech to movies to the gold rush, the recent economic policies (last 30 years or so) have little to do with it.

<comment><USER2> The proof's in the pudding. Look at CA, NY, MA, then look at Alabama. Every state that runs things the way the professor says they should is an economic shitshow with the exception of Texas, where there's oil and big liberal cities.

<comment><USER5> Are you arguing that Alabama would be better off imitating California's policies? Has it occurred to you that California has some natural advantages, none of which are attributable to its governance, that don't generalize to other states?

<comment><USER2> I'm arguing that if those policies were as awful as economic conservatives continually say, the West Coast and Northeast wouldn't be the best economies in the world.

There's clearly something positive to be gotten from investments in infrastructure and education.

<comment><USER6> You do realize that the economies in all of those places pre-date the policies they have now by a large margin, right?

California has, and always will be the gold rush state... taxes aren't going to change that.

<comment><USER2> Those policies have been in place since at least the New Deal, longer depending on how you want to quantify them.

If empiricism can't convince you, nothing can. Why even read my posts?

<comment><USER6> And the gold rush started in the 1840's, the NYSE was founded in the late 1700's.

What was that about empiricism?

<comment><USER2> Empiricism is believing the data.

The west coast and northeast have had a hundred years to fall apart because of their terrible liberal policies. They're doing great. The south and mountain west are much less economically impressive, despite their 'business friendly' policies.

So you've explained away 2 with anecdotes superior to data. 48 to go. Get started.

Also, by crediting the gold rush 150 years ago as being more relevant to California's current-day economy than it's horrible liberal policies, you're essentially saying that the actual policies don't matter.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> "California is making great progress toward income equality by eliminating the ability of the middle and upper classes to build wealth, and thereby eradicating greed."

Besides the dubious idea that it's good to eliminate the ability for the middle class to build wealth, I can't say I've seen much evidence that there's more income equality in California than the US in general. And if she thinks tax policy can "eradicate greed", she doesn't even understand human psychology.

(Oh, hey, I think I've been trolled.)

</comment><comment><USER8> To the commenters preceding me: The piece is sarcastic. Read it again.

</comment><comment><USER3> I agree that California has some great policies that other states should follow - but it's somewhat troubling that this article highlights some of the more negative aspects of CA:

> Implementing these taxes nation-wide would ensure the U.S. has the same air > quality as Los Angeles.

California still has among the worst Air Quality ratings in the US [1]. Isn't it worth calling out that California needs to improve in this area? For instance, better public transit?

> California has the highest paid teachers in the U.S. and by focusing on > teacher pay rather than student achievement (students rank 48th in math and > 49th in reading), they have the best teachers in the country.

This hardly seems like a reason for California to pat itself on the back. If we are ranked so low in math & reading, what is the metric we're using to evaluate our teachers and determine that they're the "best in the country"?

[1] [http://www.stateoftheair.org/2012/states/california/los- ange...](http://www.stateoftheair.org/2012/states/california/los- angeles-06037.html)

<comment><USER9> Because it's satire. She's making an example out of California.

</comment></comment><comment><USER10> What about Calfornia's $300bn+ debt?

[http://www.nytimes.com/2012/09/21/us/california-debt- higher-...](http://www.nytimes.com/2012/09/21/us/california-debt-higher-than- earlier-estimates.html)

</comment><comment><USER11> Holly should be doing something other than economics.

</comment><comment><USER12> And if everyone imitated California's approach to primary education, perhaps CA wouldn't rank almost-last any more!

</comment><comment><USER13> I don't know how anyone missed that this was sarcasm. However, I happen to currently be in California and lived here previously. I am fond of the state, while myself sometimes wondering why I am so fond of it, given the high cost of living and other problems. It fails to meet a lot of criteria I _think_ I value. Yet, I came back and I am glad I did.

What comes to mind with reading the article is a Simcity game I played once. I typically go for super clean environmental measures and lots of other people- friendly characteristics. A consistent problem I run into is that I wind up getting complaints that property values are too high, it is too expensive for new industry. One day, to entertain my son, I let him set some goals and parameters. For shits and giggles, he wanted to see how quickly we could create an acid cloud disaster. I zoned lots of heavy industry and piled in the most polluting business deals, destroying the environment and dropping property values to never before seen lows. We quickly got our acid cloud. We also got the most humongous factories I had ever seen in the game.

I don't know which aspects of California are "features, not bugs". I do know that it has long broken new ground for environmental laws and policies. No doubt it did so in part because of pollution being "the smell of money", so to speak -- in other words existing business success. Some of our federal environmental laws were modeled on California precedents. The pollution here goes back a long way. So does significant progress on getting it under control. So I cannot take the criticisms of the article that seriously. Criticising the environmental policies here and implying they are broken because L.A. is very polluted really is idiotic. L.A. has substantially better air quality now than it had in the 1970's.

Furthermore, the spread out city layout so responsible for making L.A. all about "the cult of the car" preceded automobiles as the standard form of transportation. It was spread out like that when public transit was the norm. The reason: It is a desert and water gets imported from hundreds of miles away. It did not make financial sense to grow "organically". It only made financial sense to develop large tracts of land at once. That was the only means to justify or cover the high cost of necessary infrastructure.

Again, I also find myself baffled by what exactly is so great about California. It can be difficult to see past its many bigassed hairy warts to find the appeal. Yet I love it here and I increasingly wonder which "warts" are really bugs and which are evidence of important features which are just poorly understood.

</comment><comment><USER14> I was willing to play along for a little while until I came across this:

> the small business failure rate is the highest in America at 69%

I then dismissed the entire article as a waste of time. More startups = more failures and that's actually a good thing. If you write something so fundamentally misinformed as if the policies are causing the higher failure rate, then your entire article is most probably bunk and full of similar non- sequitirs.

<comment><AUTHOR> Regarding "more startups = more failures", not on a percentage basis.

<comment><USER15> I think you're looking at it from a volume vs percentage aspect, in which you are correct, whereas what the commenter really meant is that startups are far more volatile and likely to fail.</comment></comment></comment>