Microsoft rep: your app just left LA - <AUTHOR> http://imgur.com/gallery/AcsJ59L/new <comment><USER2> I don't have a comeback for that one... The analogy definitely clears the mud.</comment>


Apple lending out Iphone 5S at 8USD a week in INDIA. - <AUTHOR> http://epaper.timesofindia.com/Repository/getimage.dll?path=TOIPU/2014/02/28/28/Img/Ad0280008.png

<comment><AUTHOR> its like you pay the full amount for any iphone use it for two weeks and if you dont like it you can return it. But you got to pay for accessories as they cannot be returned. Apple is trying new gimmicks to lure customers in India after it has suffered a lower volumes in the sale of iphone globally</comment>


How Much You Should Pay Your Engineers - <AUTHOR> http://blog.compass.co/how-much-should-you-pay-your-engineers/ <comment><USER2> From a business perspective, you should pay the smallest amount that will keep them happy and motivated. And actually, not every employee has to be happy and motivated, as long as they return sufficient ROI. Probably best to keep the engineers smiling, though. Creatives need energy.</comment>


FCC report claims the broken broadband market has been fixed by killing NN - <AUTHOR> https://motherboard.vice.com/en_us/article/437dmj/fcc-broadband-deployment-report-ajit-pai-net-neutrality <comment><USER2> My friends in NJ had to use a vpn to bring their 3000ms ping to 200ms for an online game we were playing.

The throttling was only for a few days and no explanation was given, but they only have 1 provider to choose from.

The broadband market is not fixed.</comment>


Stealth Research and Theranos:  Reflections and Update 1 Year Later - <AUTHOR> http://jama.jamanetwork.com/article.aspx?articleid=2524161 <comment><USER2> I would love to hear more of the reasoning as to why Theranos thought Dr. Ionnadis, famous for being hugely skeptical of medical research claims [0], would be someone to reach out to (assuming they weren't intending to just buy him out). There are plenty of other medical experts who would have cooperated with Theranos (given its pedigree) before the WSJ investigation.

[0] [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1182327/?report=...](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1182327/?report=classic)

<comment><USER3> Holmes probably (delusionally) believed she could convince Ioannidis to recant his comments in the February 2015 JAMA article regarding "the rationale for promoting massive diagnostic testing," and maybe even the criticism of stealth research, by demonstrating how ground-breaking their technology was, and that the IP needed to be "protected."

At its time of publication, that article was (I believe) the only one in the scientific literature that said anything about Theranos, and the company seemed to be pretty disconnected from the mainstream biotech research community. Holmes was probably only vaguely aware of Ioannidis' background.

</comment></comment><comment><USER4> Theranos needs to prove that a blood sample oozing from an open wound (a finger prick) is in any way comparable to sterile blood extracted directly from a vein. They also need to show that analyzing a diluted and contaminated blood sample with the Siemens instrument produces an accurate result.

At this point, I think we should assume that because Theranos won't publish any studies about the scientific foundations of their work in peer-reviewed journals or preprint sites, they have nothing of value to show us.

</comment><comment><USER5> Stealth research is a byproduct of the weakening of the patent system. It used to be that, for something like this, you got a patent before talking to VCs. This allowed more review of whether the technology actually works.

Now we have VC money being invested based on how well someone can pitch. This doesn't work for things which are technically hard. Hence Theranos, uBeam, and possibly Cruise.

<comment><USER6> Has the patent system really weakend ? or it's simply that today, the options to build something are so varied, and people have more knowledge of that, so you cannot patent them all ?

<comment><USER5> At least three things made it much more expensive to enforce a patent:

1\. The America Invents Act (2011), with its new post-grant review provisions. Now, if you try to enforce a patent, the infringer can tie you up for a few years with review proceedings, which means the inventor has to spend money to defend the patent.

2\. The _eBay Inc. v. MercExchange, L.L.C._ decision (2006), which made patent infringement injunctions much harder to get. This decision basically means that the worst thing that can happen to an infringer is that someday they have to pay royalties. It's essentially compulsory licensing of patents. So infringers have no incentive to negotiate.

3\. The _In re Seagate Tech_ decision (2007) and some related decisions changed the standard for willful infringement (and triple damages) to include a requirement of "reckless disregard", which is almost impossible to prove. These decisions also reduced the power of juries in patent cases.

It's also harder to get discovery in patent cases now, which means that if infringement can be kept a secret, it's usually possible to get away with it.

</comment></comment></comment><comment><USER7> "The problem that some patients do not have tests performed when they genuinely need them is also real but probably of lesser magnitude." Anecdotally speaking, I have seen many instances when testing was procrastinated only to reveal a chronic condition (hypothyroidism, pre- diabetic sugar levels) needing immediate attention sometimes with medications.

I am genetically disposed to hyperlipidemia and like to watch my cholesterol level as a tangible indicator/reward for my life style changes.

"Better financing and organization of health care and, perhaps, reduction of the profit margin could markedly decrease testing cost, even if very old (but appropriately validated) diagnostic technologies are used."

Reduced pricing was a hype created by Theranos. When we started working in this area, we found that if one is willing to pay out of pocket some labs will offer pricing very close to Theranos.

</comment><comment><USER8> _> Theranos does stand for well thought-out and useful therapy and diagnosis and does not represent the harms suggested by another similar Greek word, thanatos (death)._

This is gold. Yesterday Theranos just voided its two years of testing results by its Edison.

<comment><USER9> I saw another wordplay in that part: they say Theranos comes from "therapy" and "[diag]nos[is]". But if you combine the "ther" and the "agnos" as Greek, you get "beast without knowledge". :-O

</comment></comment><comment><USER10> I maintain that as this story continues to unfold, it will contain a serious criminal element at its core.

<comment><USER11> Are you an expert?

<comment><USER10> Did I claim to be?

<comment><USER12> While you make no explicit claim, I suppose the responder was reacting to your opener of "I maintain".

That implies you have been saying this all along, in a forum that we would expect to have heard it, but yet you have not been heeded.

In my perspective, there is an element to your statement that is claiming authority, thus making you appear as a self-proclaimed expert.

<comment><USER13> This is overinterpretation.

Also, I agree that it seems likely Ms. Holmes will face criminal charges. It would have been one thing if Theranos simply substituted venous blood draws for nanodraws, pivoting to not use Edison. However, they not only did that, they denied this publicly, promised to release data showing the validity of their platform (neither of this are lawsuit-worthy) and then proceeded to provide false test results at a very high rate. The problem here is that Ms. Holmes would have to have known of this- she's the CEO of the company, in very tight contact with the labs, etc, holds nearly all the power, and is the ultimate decider. Because of that, she is the direct target of lawsuits.

I expect both government action (which is already ongoing; it's likely she will be sanctioned) and class action lawsuit.

Obviously, the above is speculation, based on my intuition of watching biotechs for 20+ years.

</comment></comment></comment></comment></comment><comment><USER14> Funny thing about JAMA is that almost all (?) the articles they publish don't include code nor data. The research they publish is stealth!</comment>


GM Closes Acquisition of Cruise Automation - <AUTHOR> http://www.wsj.com/articles/gm-closes-acquisition-of-cruise-automation-1463154595?mod=yahoo_hs <comment><USER2> Whew.

I was curious to see how GM was going to react to the noise surrounding the last minute, questionable equity claims by former Cruise personnel. I was wrong, but I expected the 'stodgy, conservative, old-world, industrial enterprise' to drop it like a rag top.

Glad they went through with it.

<comment><USER3> GM not only badly needs Cruise but the team which I'd imagine are locked into multi-year contracts. It would seem by seeing the deal go through that the former co-founder lost whatever leverage he had.

<comment><USER4> >the former co-founder lost whatever leverage he had.

Doubtful. They probably have an escrow set up for any funds that are being disputed by the lawsuit.

</comment></comment></comment><comment><USER5> So did we come to the conclusion that Jeremy wasn't being screwed?</comment>


Show HN: DiscoverDev – An engineering article curation engine, powered by AI - <AUTHOR> https://www.discoverdev.io/?ref=_hn <comment><AUTHOR> Hey HN, one of the makers of DiscoverDev here. The idea behind this project is to track and tag high quality technical articles published by the engineering teams of various companies. Kind of like a "Product Hunt" for engineering blogs. We've limited ourselves to company published articles (for now). The whole process is pretty much automated, but all shortlisted articles do go through human eyes for a final quality check.

We also run a mailing list and have a twitter account ([https://twitter.com/discoverdev_io](https://twitter.com/discoverdev_io)) for those interested.

Read our about page for more info : [https://www.discoverdev.io/about](https://www.discoverdev.io/about)</comment>


Stencil – A reusable web component generator - <AUTHOR> https://stenciljs.com/ <comment><USER2> Hey all, founder of Ionic (team behind Stencil) here. Didn't expect to see this up on HN so soon (released this morning), thanks for understanding there's still rough edges with docs, etc

We built Stencil for a selfish reason: we needed more mobile web performance for Ionic apps being deployed as PWAs (in addition to App Store apps) and we were struggling getting that with traditional framework component/bundle approaches.

We realized web components were a way forward and would let us reach more of the web dev community that wasn't just using Angular. However, we felt like there were some big framework features missing from vanilla custom elements (vdom, react fiber style rendering queue, etc), so we built stencil to make it easy to generate web components with these features baked in.

Along the way we figured other teams would benefit and pulled it out into its own project.

Stencil will be used in the next version of Ionic so we are dog fooding this hard, and web components it generated will be in use by thousands of Ionic devs soon.

We just announced this at the Polymer Summit in Copenhagen this morning and the talk is up if you're interested: [https://youtu.be/UfD-k7aHkQE](https://youtu.be/UfD-k7aHkQE)

Happy to answer any questions!

<comment><USER3> The main selling point of web components is that they are built using platform features and so they should be compatible with each other.

So in theory I should be able to mix and match web-components that are built using stencil, skatejs, polymer, or any other future opinionated web component library.

So is this also possible in practice and specifically can I mix stencil generated components with polymer ones (say use a paper-button inside a stencil compoenent) ?

<comment><USER4> Yeah, as long as you have the polymer as dependency - it should work, you can mix it with vuejs, preact or angular 2+ already.

</comment></comment></comment><comment><USER5> This could be amazing, whatever it is. But that's the problem.

I have to squint to see the font, there's two headers with two different slogans and a paragraph consisting of 12 words that tell me to go to the docs without providing a link.

The rest of the landing page is white-space.

Come on. Woo the visitor. First impressions are everything, and this fails.

At the very least move 'What is Stencil?' to the landing page.

<comment><USER2> Should be fixed soon thanks.

</comment></comment><comment><USER6> I'm not sure I'm understanding the point behind this. If the main point is to allow people to reuse components (i.e. a calendar widget) across frameworks, then good, but it's going to be quite messy when things start to get complicated and we start hitting integration problems, because some guy on the Internet writing a widget is not going to test & maintain it on all frameworks.

It also bothers me the whole Typescript deal. I might be wrong, but I don't want to have Typescript installed & integrated into my build process so I can use a widget. The only way I can see this working out is that I suck it and follow the Typescript paradigm or widget creators can distribute their widgets on some sort of "built" pure JS file, something like JAR files... and we know how well that goes.

<comment><USER7> Here an engineer at Ionic. You don't need to integrate typescript to use a "widget" generated with Stencil. Stencil is a compiler that generates vanilla web components in javascript. You can just import the generated .js and use the component just like a "button" or native "input".

<comment><USER6> Great, that makes so much sense. But then, how about other dependencies that might come into play? For example, underscore, is that "packaged" with this generated JS file or some other way around?

Thanks for the prompt response BTW.

<comment><USER7> No, Stencil.js is like a "real stencil", it is used to produce something, but it is not in the final product.

There is nothing like "window.stencil" or any stencil related API in the output of the stencil compiler. It generates vanilla JS web components without dependencies.

The documentation of stencil linked in this HN post was in fact created with stencil itself. Just open the Dev Tools!

<comment><USER6> OK, so if I want to use a calendar Stencil (there will be lots of this for sure), which depends on Moment I would have to include Moment into my dependencies and manage all the dependency clashing (the stencil used 2.x but I'm using 1.x)

</comment></comment></comment></comment></comment><comment><USER8> Gosh, the content is illegible on Chrome and Windows 8.

14px and a lightweight font does not make for happy reading.

<comment><USER9> It's more the OS than the font choice, different OSes render text better or worse. The site looks great on a 15 inch macbook pro.

<comment><USER10> Designers only looking at their sites on their MacBook Pros is exactly what produces these pretty but unreadable websites.

<comment><USER11> Adding a "Yes, but..."

Microsoft's refusal, or inability, to release a version of Edge (or even a port of an earlier IE) for macOS exacerbates this situation.

I virtualize Windows on my MacBook for IE/Edge testing of my designs and code, but it requires a workflow and context shifting that I'd perfer I didn't have to do.

Edit: s/I.E./IE

<comment><USER12> Ironically we have the exact same problem, except worse with Safari, since it has (relatively) poor support for some cutting edge APIs, and unlike Edge/IE we can't even legally test it in a VM because Apple doesn't even allow their OS to be put in a virtual machine.

At least Microsoft has the good grace to put up free VMs for browser testing - [https://developer.microsoft.com/en-us/microsoft- edge/tools/v...](https://developer.microsoft.com/en-us/microsoft- edge/tools/vms/)

<comment> sampath-lokuge You can rent a MAC server here: [http://www.macincloud.com/](http://www.macincloud.com/)

</comment></comment></comment></comment></comment></comment><comment><USER13> How is this licensed? Perhaps I'm missing it, but I can't seem to find mention of it on the site or in the repo: [https://github.com/ionic- team/stencil](https://github.com/ionic-team/stencil)

<comment><USER2> Ah good catch. It's MIT (will get that up soon)

<comment><USER14> Have you considered a BSD + PATENTS license? :P

<comment><USER4> Nothing wrong with that. In fact google releases quite a few projects like that - the important thing is what is inside the patents clause. Apache 2.0 also has one and no one argues against it.

</comment></comment></comment></comment><comment><USER7> Fact: The website linked in this HN (stenciljs.com) was itself created with stencil. I encourage you guys to open the Dev Tools and dig into it!

<comment><USER15> nice diamond emoji

</comment></comment><comment><USER16> Huh, that's a rather interesting approach to building Web Components. I'll have to see if it gets anywhere, but the idea has potential, and feels like it avoids many of the pain points of Polymer (although I'm not quite sure yet which you'll get in return).

<comment><USER4> Yeah, indeed it does look really nice, the API feels a bit weird though, not sure why lifecycle events are named after react.

<comment><USER2> We are fans of react and think the events fit the component model well, it's not a perfect 1-1 though

</comment></comment></comment><comment><USER17> I'm curious, why build this instead of using [skatejs]([https://github.com/skatejs/skatejs](https://github.com/skatejs/skatejs))?

</comment><comment><USER18> If we use third party library code in multiple stencils. Will they be included separately in each one of them. Let's say d3 for graphics?

<comment><USER2> Yes right this second, but next on our list is providing a seamless solution to dependency dedupe. Not yet ready but it's promising.

<comment><USER18> Okay, that is definitely needed if we want to build serious components. Else it's gonna go crazy heavy!

<comment><USER19> A simple solution today would be to put the shared, heavy code in it's own component and call methods directly on that component. That's how we're share code across components in Ionic.

<comment><USER20> Could you please add an example of this in the documentation? It looks great BTW.

</comment></comment></comment></comment></comment><comment><USER21> " _Stencil is a new approach to a popular idea: building fast and feature-rich apps in the browser. Taking advantage of new capabilities in the browser, such as Custom Elements V1, Stencil enables developers to write faster and lighter components without the weight of frameworks.

The tooling also a solution to teams and library authors building components that support many frameworks. Stencil components work in Angular, React, Ember, and Vue as well as they work with jQuery or with no framework at all, because they're just standards-based components.

Compared to using Custom Elements directly, Stencil provides extra APIs that makes writing fast components simpler. APIs like Virtual DOM, JSX, and async rendering make Stencil Components easy to approach, while maintaining compatibility with Web Components_"

So which browsers would this work in?

<comment><USER22> Custom elements v1: [http://caniuse.com/#feat=custom- elementsv1](http://caniuse.com/#feat=custom-elementsv1)

<comment><USER6> basically Chrome (I just saved you a click)

<comment><USER22> Although, their demo works perfectly fine in Firefox: [https://corehacker-10883.firebaseapp.com/](https://corehacker-10883.firebaseapp.com/)

<comment><USER23> It's probably using a polyfill for the functionality.[1]

[1] - [https://www.webcomponents.org/polyfills#custom-elements- poly...](https://www.webcomponents.org/polyfills#custom-elements-polyfill)

</comment></comment></comment></comment></comment><comment><USER24> I see two problems with stenciljs at the moment, but perhaps they can be fixed? 1, going back and forth in browser history, there is a flash of the footer being displayed before the actual content is loaded - it's just 1-2 frames, but very noticeable and disturbing. 2, scroll position is lost when visiting another page and going back.

Those are typical single page app problems, but they will probably not matter when using the framework for a hybrid app (no back button). If I'm to use this for a web app though, those would be nice to have addressed.

<comment><USER25> > scroll position is lost when visiting another page and going back

Who ever thought that keeping scroll position was a good idea anyway?

Use #s if the position is relevant.

</comment></comment><comment><USER26> Am I getting this right?

Stenciljs is: * Another way to create web components - using Typescript/JSX. * Provides SSR support

Other than that: * Is there anything else that we get from stenciljs? * How is it different from Polymer? * What Polymer problems does it solve?

</comment><comment> tech-no-logical content won't show for me (latest firefox beta, 56b05) :

       Failed to register/update a ServiceWorker for scope 'https://stenciljs.com/docs/': Bad Content-Type of 'text/html' received for script 'https://stenciljs.com/docs/sw.js'.  Must be 'text/javascript', 'application/x-javascript', or 'application/javascript'.
       Error DOMException [SecurityError: "The operation is insecure."
       code: 18
       nsresult: 0x80530012]  intro:19:41

<comment><USER27> Refresh on the home page and it should be fixed (:

</comment></comment><comment><USER28> What is the browser support for web components? I worry that tools like this are only targeting the last two versions of the major vendors.

<comment><USER4> IE11+ will work and everything modern. If you don't have native support things get polyfilled. Youtube nowdays runs on Polymer, web components and they support older browsers.

</comment></comment><comment><USER29> This sounds awesome! The Github link on the website should probably link to the main repo instead of stencil-site?

<comment><USER2> Gah! Thanks, fixing now

</comment></comment><comment><USER14> Does this mean we will be able to use Ionic components with React or Vue in the not too distant future?

<comment><USER4> You will be able with Vue and preact, react has some issues (that hopefully will be adressed soon). [https://custom-elements- everywhere.com/](https://custom-elements-everywhere.com/) check this site for more info.

</comment></comment><comment><USER30> Does not work in firefox developer addition. Navbars work fine but nothing else.

</comment><comment><USER31> Thank you for this, was looking for something like this!

</comment><comment> sampath-lokuge Why did it name as stenciljs? Hope it is TS no? Then it should be setncil no?

</comment><comment><USER32> Here's a new library to solve a problem you don't have yet.

<comment><USER33> WebComponents in general are a solution in search of a problem.

Despite being 6 years in development:

\- they basically delivered none of the original promises

\- they are extremely cumbersome to use without a library/framework on top (Polymer is the jQuery of WebComponents)

\- they are plagued by multiple problems and shifts in the ecosystem (browsers don't want to support `is=`, HTML imports are being dropped in favour of ES6 imports)

\- they have multiple problems integrating with existing frameworks: [https://custom-elements-everywhere.com](https://custom-elements- everywhere.com) (basically any framework that bastardises HTML syntax is ok, anything relying on Javascript only is in trouble)

Don't hold your breath for the next couple of years as everyone tries to figure out how to work with them.

<comment><USER4> > WebComponents in general are a solution in search of a problem

Maybe they don't solve your problem, but they certainly seem to solve Ionic's or Netflix's problems (or mine for that matter).

<comment><USER33> "React seems to solve Facebook's problems (or mine for that matter)"

"Vue.js seems to solve Gitlab's problems (or mine for that matter)"

etc.

Throwing big names around amounts to pretty much nothing.

<comment><USER4> But thats exactly true, companies build solutions that solve their problems. No secret knowledge here.

</comment></comment></comment></comment></comment><comment><USER34> > Stencil components are rendered using JSX...

What's the point? Why not just use React?

Like many others - I dropped Cordova and Ionic in favor of React-Native. So, what is Ionic trying to do here? Are they throwing in the towel and adopting React? Will they end up making a kit that renders native components using JSX just like React-Native?

<comment><USER35> > Like many others - I dropped Cordova and Ionic in favor of React-Native.

Few years ago PhoneGap apps were really slow and ugly. So I built native Android app. This year I started building hybrid Ionic 3 app because it has to work on Android and iOS. It works good enough on Nexus 5 (Snapdragon 800). The biggest problem is 4-5 seconds startup time. Stencil and component lazy loading should greatly reduce that startup time (to 1-2 seconds I hope).

<comment><USER22> Quick tip, did you remove the hardcoded 3000ms splash screen delay? [https://github.com/ionic-team/ionic-conference- app/blob/mast...](https://github.com/ionic-team/ionic-conference- app/blob/master/config.xml#L80)

</comment></comment></comment><comment><USER36> As kind of an old dog, I can't help but think of Active X controls from back in the day. That's what this reminds me of. Kinda.

Are there some guidelines and standardization of the kinds of events components emit, and what data is passed with the event? So that I don't have to look up all the variants of event names and data.

<comment><USER37> A custom element is just an HTML element, so it is a part of the HTML standard. If you log the object you can see it has all of the same properties as an HTML element, plus whatever you've extended it with. So all emitting events and event callbacks will behave the same as a standard element (except for any custom event listeners and emitters that you add).</comment></comment>


React-basic: Description of the conceptual model of React - <AUTHOR> https://github.com/reactjs/react-basic <comment><USER2> I think by now many HNers will have grasped the idea behind "The core premise for React is that UIs are simply a projection of data into a different form of data", but here's a related good read from around the time this was written: Pure UI [https://rauchg.com/2015/pure-ui](https://rauchg.com/2015/pure-ui)

Also of interest, the classic 'Rethinking best practices' presentation: [https://www.youtube.com/watch?v=x7cQ3mrcKaY](https://www.youtube.com/watch?v=x7cQ3mrcKaY)

<comment><USER3> The problem with retained mode UIs is that they lose the ability to continuously translate data with functions. Immediate mode UIs don't have that problem (since you are just drawing to the screen on each frame), but suffer from efficiency problems (not to mention you have to do your own layout). Databinding (e.g. as in WPF) allowed some of these transformation to occur declaratively, but were too inexpressive in general.

React is a nice new point in the space, and is much more pragmatic than FRP or Rx.

<comment><USER4> Yes, React is an interesting middle ground that hits a sweet spot for many classes of web apps. Try and make (real time) games with it and you soon realize that despite it being a good conceptual model, you really need to be in an immediate mode rendering mode.

Does anyone know of any immediate mode game engines using concepts from React?

<comment><USER5> I'd be curious to know too -- I've been working on a custom React renderer for the Phaser webgame engine after dealing with a lot of frustration around state management in Phaser. ([https://github.com/nervestaple/react-phaser- kit](https://github.com/nervestaple/react-phaser-kit)) I know there are similar parallel approaches like [https://github.com/FormidableLabs/react- game-kit](https://github.com/FormidableLabs/react-game-kit) and [https://github.com/michalochman/react-pixi- fiber](https://github.com/michalochman/react-pixi-fiber). You can sort of use them in immediate mode by calling setState inside the update loop, but the abstraction leaves a bit to be desired...

</comment></comment></comment></comment><comment><USER6> The first time I read this I was pretty confused so here's some annotations.

[https://github.com/reactjs/react- basic/pull/7](https://github.com/reactjs/react-basic/pull/7)

<comment><USER7> Thank you, that was really helpful.

</comment></comment><comment><AUTHOR> oh wow i thought this was interesting but surprised this is front-page of HN interesting.

So this is written by Sebastian who is part of the React core team. A lot of the earlier stuff might seem obvious to most but I think it gets increasingly non obvious as you go down the list. I would direct your attention to the bit at the bottom on Algebraic Effects ([https://github.com/reactjs/react- basic#algebraic-effects](https://github.com/reactjs/react-basic#algebraic- effects)) - that came up on twitter today in relation to what the mental model behind React Suspense is (even though technically JS doesnt have Algebraic Effects itself, thats kind of what they are trying to do with async rendering.) I'll let gaearon and co explain better if they see this, I don't want to butcher it.

</comment><comment><USER8> Dan Abramov of the CRA and React team posted a "diagram of modern React lifecycle methods. " here - [https://twitter.com/dan_abramov/status/981712092611989509](https://twitter.com/dan_abramov/status/981712092611989509)

<comment><USER9> As a (very) beginner in the world of React, where is the componentWillMount() in that diagram / cycle?

<comment><AUTHOR> dead and gone my friend. deprecated.

</comment></comment></comment><comment><USER10> It's funny that memoization is some conceptual model for react but that's what compilers have been doing for ever and ever.

<comment><USER11> Memoization is a good thing, but not many people understand compliers. So we should celebrate that React is helping to push it into the consciousness of front end developers.

React isn't really inventing anything fundamentally new in terms of computer science but I think they are introducing a lot of people to good concepts that already existed.

Douglas Crockford was writing about it for JS [0] back in 2008 which is still a long way behind compilers and, say, Haskell but it has been used in JavaScript at least a decade.

[0]: [https://stackoverflow.com/questions/3798858/explanation- on-j...](https://stackoverflow.com/questions/3798858/explanation-on- javascript-the-good-parts-example-section-4-15)

</comment></comment><comment><USER11>
      function FancyUserBox(user) {
        return {
          borderStyle: '1px solid blue'
          ...

Perhaps it's just me being pedantic and these are just examples. But when I see React examples that set style properties directly it makes me cringe, like it's ok to go back to a time before CSS just because everything's in JSX.

<comment><USER12> CSS doesn't work, it's a failed model.

It's based off the premise that content and styling are independent. It works very well when that is true. Often they are not.

If I'm designing a "date-picker" component, it will be completely broken without the corresponding styling. There can be no separation of content and style, the content does not make sense without the styling to produce the actual final output.

Such components require style definitions to function.

<comment><USER11> That doesn't make much sense to me. React still just outputs HTML so there's no difference in terms of styling.

You're the first person I've heard wanting to scrap CSS and go back to style tags. Sure people prefer LESS/SASS but having styling in a different file and not mixed into JSX code makes style changes simpler for the way I work.

<comment><USER13> React doesn't force you to use any style method, you can output html and use css as usual.

The problem is that css scales poorly for large projects, especially when you build many components and mix them together. It is almost impossible to know which css rules are in effect for a specific part when you don't know where that part will end up and it is also hard to create css rules that continue to work since more parts and html may be added later which changes the css rule matching.

<comment><USER14> To be fair there are other ways of solving that problem.

If you're worried about class overlap, you can define unique/hash-based classnames on build with css-loader.

If you're still worried about aggressive stylesheets destroying your components, you can wrap them in however many classes you see fit (some people might use `.n.e.a.t.l.i.b .cool-class` instead of polluting component code with CSS).

As far as CSS scaling poorly, that's really up to you. I find that it's an afterthought to most people, and full of weird hacks and `!important`s a few months into a project. That's fine if that's how you want to do it, but it's not an inevitability.

(I say this as someone working on a component library that's used on over half a million sites)

</comment></comment></comment></comment></comment><comment><USER15> >Most UIs are some form of lists that then produce multiple different values for each item in the list. This creates a natural hierarchy.

I find this idea a little controversial - it is certainly true for websites, but I don't think it's necessarily the case for single page applications that have a purpose beyond showing data.

I think in those cases the 'natural hierarchy' approach tends to break and the idea of passing arguments in a hierarchical manner can become cumbersome. At least that is my experience so far,

<comment><AUTHOR> Prop drilling was a React pain point for sure but they have solved it with the concept of "context", which was formally released with 16.3. You can also regard this as "implicit props", or "implicitly passing arguments by nature of the hierarchy"

</comment></comment><comment><USER16> There's already a gazillion React templates out there, all of varying quality. Nonetheless, in case anyone is interested, here's a modern (Babel 7, Webpack 4) React SSR template we developed for internal use, but have subsequently open sourced:

[https://github.com/glassechidna/practical-react- ssr](https://github.com/glassechidna/practical-react-ssr)

I don't think there's anything particularly revolutionary in there, it's just a reasonable starting point to hit the ground running.

<comment><USER16> Out of curiosity, would people mind elaborating on the reason for the down votes?

If you've looked at the template and there was something you thought to be sub-standard, then I'd love to know what people would do differently.

If the down votes were because I made _another_ React template, then, ah, that's somewhat understandable. Although, as I've stated, it was created for our own internal use, and was simply open sourced because we love open source and giving back to the community. Additionally, at the time of creation there absolutely weren't any full-scale open source projects (templates or otherwise) available using Babel 7 and Webpack 4. Actually, Babel 7 is _still_ not officially released yet, so there really aren't many even now.

If the down-votes were because you think the comment is unrelated to the source article, well... I don't know precisely how to respond to that critique. However, the article (and this discussion) is regarding the underlying principles of React and the linked project is a practical implementation of React (and the underlying principles). I've specifically added a new root level comment rather than piggy-backing off other unrelated comments, which is unfortunately commonly seen on HN.

Is the sharing of related (non-competing) open source projects seen as poor etiquette?

<comment><USER17> I didn't downvote, but... your comment does feel a bit spammy. If you had something to say about why you feel some part of the original post is unclear, and how your link helps to make it clearer, then it would feel more constructive.

As it is, it just feels like "This post is about React, so here's my project that is also about React." So I can see why it's getting downvoted.

<comment><USER16> > If you had something to say about why you feel some part of the original > post is unclear, and how your link helps to make it clearer, then it would > feel more constructive.

I guess that's fair, however my intention is still very much to be constructive. Instead of critiquing the article, I'm _attempting_ to provide value to the target audience of this article (likely those new to React), in the form of a code-base to get those interested up and running with React.

> As it is, it just feels like "This post is about React, so here's my project > that is also about React." So I can see why it's getting downvoted.

I feel as though saying "Hey, seems as you like X, you may well be interested in some related Y" is actually pretty normal human conversation.

I would have thought that it's only spammy if there's some hidden agenda. There's no "premium version" or any such nonsense, the only thing I gain by sharing this is the satisfaction of knowing others may benefit from something I built - which honestly is pretty great! However, I don't think a supportive and constructive community should take offense to that.

Additionally, it's pretty normal to see links to related projects on HN. I guess the down-fall here is that templates, whilst incredibly useful to some, are _dead boring_ to those who do not require them. If the linked project were more _interesting_ I'm sure the response would be more favourable.

</comment></comment></comment></comment><comment><USER18> This was insightful to read, I have often wondered what the underlying thinking was with React. I also disagree with it, but... important to know the thinking for sure. Also helps explain why it's been such a struggle and has been less than obvious to me.

I look at react, and I see... shit. As an aside, I'm taking a deep dive reading u on the nuances of JS, so I'm reading along here and I get whats going on at a technical level with the JS; but the actual react code... does not jive with me.

Remember when we though SOAP was cool? React kinda feels like that to me. I don't think it really represents a way forward in programming.

But you know - I respect that there might be people who totally jive with react, who's brains work differently from mine and see nothing but awesome.

This also makes me so, so thankful that I am a Rails developer. React is surely good for certain things, but developer happiness and productivity i think are not among them.

<comment><USER19> Why do you "disagree with" the idea of functional projection of application state into views? Because that's all React...is.

And, as a Ruby developer going to React, I _overwhelmingly_ disagree with regards to both developer happiness and productivity; I write better, more testable code, faster, when building out a React frontend than I have in any other system I've ever used, bar none.

<comment><USER18> why did you put 'disagree with' in quotes? I don't think its an idea that accurately encapsulates what a UI is. I'm not saying thats not what drives reacts philosophy... I just think there's more to it. If we're talking about first principles, I think that would a little blunt of a perspective.

<comment><USER20> I think the quotes were because they... Quoted you.

Anyway, your comments don't really add anything unless you share what you think is an accurate representation of UI - otherwise, there's nothing we can learn from it, other than that you disagree with the design of React.</comment></comment></comment></comment>


Uber has a tough time with surge pricing in India - <AUTHOR> http://www.business-standard.com/article/companies/uber-ola-face-the-heat-in-maharashtra-too-116040700306_1.html <comment><USER2> Indian is relatively new market for Taxi aggregates like Uber who is trying to push US model, which certainly won't work as it is in India. The market demographics are totally different.

<comment><USER3> Any reason why it won't work in India? I've had worse problems with cabs trying to rip me off in India than in most other places and would be delighted to have a way to avoid that.

</comment></comment><comment><USER3> Hopefully Uber will be able to keep dodging stupid regulations. It's remarkable how well they've done so far.</comment>


Daily Stormer being dumped by GoDaddy, apparently seized by Anonymous - <AUTHOR> http://www.cbsnews.com/news/daily-stormer-being-dumped-by-godaddy-apparently-seized-by-anonymous/ <comment><USER2> I wounder if this is the start of a significantly less free internet. In the past if one site started censoring ideas, one could open up a new site to express those ideas. Now that a hosting site is removing a site for hateful ideas, I wounder what would come next. Maybe in the not so distant future, sites that publish mainstream Republican news will be removed from GoDaddy, or maybe sites that disagree with SOPA [1] or that shooting wild elephants is wrong[1].

While I think that posting an article titled "Heather Heyer: Woman Killed in Road Rage Incident was a Fat, Childless 32-Year-Old Slut" shows that you are a terrible person, there has to be a media for them to express their ideas. If the government wont "sell" domains directly to people then there should be a rule similar to net neutrality that will require private companies to treat all sites equal no matter how much they disagree with the idea. The alternative to that is to make sure that you don't post anything on your own website that will anger the domain name registras.

Who knows if in the future your idea will become an idea that many others disagree with.

[1] GoDaddy supported SOPA and their CEO hunted a wild elephant.

<comment><USER3> > there has to be a media for them to express their ideas.

No, there doesn't. Nazism had its chance. We fought a world war over it. I think popular opinion came down on the side of "hang Nazis and prevent this ever happening again."

> there should be a rule similar to net neutrality

Unfortunately, Trump and his cabinet are against net neutrality.

<comment><USER4> Popular opinion had the same attitude towards witches. Times change.

We had the same attitude towards communists and communist sympathizers, yet its making a comeback in 'popular culture'.

America came down on the side of 'I don't agree with what you have to say, but I will defend your right to say it.'

That being said, this whole debacle is a slippery slope and that should be the key takeaway here, regardless of which way your political spectrum leans.

<comment><USER3> > America came down on the side of 'I don't agree with what you have to say, > but I will defend your right to say it.'

That's a nice aphorism but isn't even slightly true given the number of wars they've been involved in (even just _this_ century!) and regimes they've plotted to overthrow and organisations the government has infiltrated and ... etc.

For a recent example, compare and contrast the police responses to white supremacist marches vs BLM marches. If your hokey aphorism was true, both would be treated equally.

<comment><USER4> We're talking about Americans. Not other nations that cry about American imperialism out one side of their face, then demand protection, food and money out the other. If America ceased all humanitarian services and closed all military bases in other nations you would see unprecedented loss of life as we would be labeled an uncaring nation that let women and children starve.

You're right about the different police responses, though, as BLM was allowed to burn an entire city while the white people were kicked out of a park. Labeling all gatherings of white people as 'white supremacists' is disingenuous and racist in and of itself.

</comment></comment></comment></comment></comment><comment><USER5> Freedom means freedom for anyone, including nazi, antifa, 4chan, voat.co and 8chan. We have to educated ourself to engage in discussion, i think when you look in internet bubbles/hugboxes. You don't talk to those people, you ignore or ban them like google did with 8chan or you can ridicule them calling them nazi or virgins/neckbeards. People won't allow any discussion and that will fuel rage, i mean real rage and can get real serious, because they felt like other people (normies) are enemy, that they can't even talk and they are censored by blant corporations using "hate speech"

I know another newly created account commenting.

<comment><USER6> _Freedom means freedom for anyone, including nazi, antifa, 4chan, voat.co and 8chan_

well sure, but doesn't freedom also mean you're allowed to select whether or not you want to host their websites?

<comment><USER7> The entire internet infrastructure is controlled by private companies. Many of which are incorporated in the US.

If you hold to the belief that internet infrastructure companies should be free to censor anything and everything they want to, there is no such thing as free speech on the internet.

That future is not one I personally subscribe to; I believe in the basic human right to express one self, and as ubiquitous as the internet is as a means of communication, that means people must be free to express themselves on the internet.

<comment><USER6> _that means people must be free to express themselves on the internet_

If that expression of freedom happens to be not wanting to let certain others express their freedom via your infrastructure then there's a problem. Because there's 2 parties, each having the freedom to express themselves. By your saying A should let B express themselves, but that takes away freedom from A. Likewise I'm advocating that A should have the freedom to not let B express themselves even though, yes, that takes away freedom from B. So this is a tough one, because none of both solutions lets each party have full freedom. In such cases you need to look further. What I see here, is that B spreads hatred and as such, in my opinion, does way more damage to certain groups and humankind in general if you will than the damage done by A. So, since there must be a choice, I'd rather have some freedom taken away from B here.

</comment></comment></comment></comment><comment><USER8> Two things are swirling in my head: 1) Libraries and librarians are rabidly anti-censorship 2) The Supreme Court's ruling about pornography "I know it when I see it"

Libraries aren't cesspools of things titled "...a Fat, Childless 32-Year-Old- Slut" and yet subversive books have always been available.

Libraries/librarians seem to have figured out how to toe the line between freedom of speech and the kinds of hate-speech that caused GoDaddy to dump the Daily Stormer.

These are raw thoughts, but I'm wondering what we might be able to learn from the librarian ethos.

<comment><USER9> "Libraries aren't cesspools of things"

They are, actually. There's plenty of hate filled speech in my local library. It carries Mein Kampf, for example, as well as plenty of other objectionable material.

The difference is probably that you don't fixate on these things when you visit the library. You don't consider the entire library to be a cesspool simply because it contains some objectionable material.

Libraries have a strong, approachable position which supports disseminating all speech, including vile speech. It's an academic position, independent of good PR. Folks are strongly discouraged from engaging in book-burning campaigns against libraries. This culture is largely lacking on the internet, which is primarily run by profit seeking companies who worry about their public image.

So maybe the internet isn't a cesspool either? Perhaps the issue is that the curators of the internet are happy to censor, in exchange for better public relations?

</comment></comment><comment> django-boy I read that article about the woman that was killed, what the actual fuck.

<comment><USER10> Honestly, it's not surprising. /r/the_donald, 4chan's /pol/ etc all had far worse responses to this situation.

The article from the daily stormer, as horrible as it is, is ithe least offensive right-wing response to this that I've read yet. Everything else went even further.

Now the big question is, why does reddit, a SV company, still support these groups on their site, and why did these groups form in first place.

<comment><USER3> > Now the big question is, why does reddit, a SV company, still support these > groups on their site

I'm assuming you want a more nuanced answer than "because SV is libertarian white dude central"?

> why did these groups form in first place.

Oh, that's easy - because the US has been a racist country for decades and no- one has had the balls to stamp it out.

<comment><USER10> > Oh, that's easy - because the US has been a racist country for decades and > no-one has had the balls to stamp it out.

That explains why they exist, but not why new groups form today still.

<comment><USER3> Well, they're not really new groups - militia and the klan have been around for decades. They just like giving themselves new names because, like all angry idiots, they start infighting and splintering from each other.

Although, yes, the GOP have been enabling and emboldening them for the last (at least 5 but really many more) years - now they have a whole bunch of people who support them in the WH that are dismantling anti-WS task forces etc.

<comment><USER11> Most of the ones that participated in the march in Charlottesville were genuine new groups: Identity Evropa, Vanguard America, Traditionalist Worker Party etc.

And most of their membership is not a split from KKK etc. It's new people, often with very different backgrounds age- and education-wise. And one distinguishing thing about them is that they put a lot more emphasis on politics and outreach compared to KKK, and they openly reference fascist and Nazi ideas - which is to say, they don't just talk about white supremacy, but they talk about fascist ideals for governance etc.

Make no mistake, this is a new wave of political right-wing authoritarianism in US, not the same old.

</comment></comment></comment></comment></comment></comment><comment><USER12> What's next? 4chan? Wikileaks? Once a company starts down this path and shows it can be pushed to censor, where will it end?

<comment><USER13> Why "pushed" to censor? They have a TOS, they enforced it.

And I'd much rather have my social opprobrium doled out in the marketplace. Ideologies should absolutely have costs.

<comment><USER12> Did this TOS magically appear overnight? GoDaddy has been hosting this website a very long time. This wasn't an ideological decision by them, it was a business decision. If it was a TOS violation that would've happened a long time ago.

<comment><USER14> GoDaddy is infamous for suspending service without notice and not standing up for their customers at all.

</comment></comment></comment></comment><comment><USER15> And now this: Google cancels domain registration for Daily Stormer [http://uk.businessinsider.com/google-cancels-domain- registra...](http://uk.businessinsider.com/google-cancels-domain-registration- for-daily-stormer-2017-8?r=US&IR=T)

</comment><comment><USER11> This appears to be an attempt by the site admins to troll.

<comment><USER16> That's the general consensus in their own community. The takeover post says something about "defending the Jewish people", which is a particularly unusual way for Anonymous to describe their actions, and is more in line with alt- right vocabulary.

</comment></comment><comment><USER17> All this is going to do is drive the Reichtards into their own tech ecosystem.</comment>


Jeremy Corbyn wins Labour leadership contest - <AUTHOR> http://www.bbc.co.uk/news/uk-politics-34223157 <comment><USER2> This is a brilliant opportunity for true political evolution in the UK that is clearly already working and flourishing within the bounds of the established systems.

I really hope the next "Director of Digital" for the party ([http://www.labour.org.uk/pages/current- vacancies](http://www.labour.org.uk/pages/current-vacancies)) embraces open participation and open source so that we can all muck in :)

</comment><comment><USER3> Raises a bit of an interesting question on how representative democracy is supposed to work. All the Labour MPs kind of won their mandate on the old manifesto. If Corbyn U-Turns on that doesn't that mean the labour party members are having undemocratic control on parliament?

Concerns about democracy aside I think this is pretty great politically. Also Tom Watson who won the deputy position has some good positions on technology.

<comment><USER4> Certainly the present UK Conservative Government think it's great.</comment></comment>


Show HN: File System Performance Testing Tool for Windows - <AUTHOR> https://ccsiobench.com <comment><AUTHOR> Just a very pedantic IO test that goes through a long list of permutations of IO buffer sizes, counts and IO modes and finds the one that delivers the highest read/write rate. Basically, it estimates maximum IO rates _realistically_ achievable by a userspace process, as opposed to a physical read/write rate at a disk level, which can be (misleadingly) higher.

The theory is over at [https://ccsiobench.com/fast-bulk- io](https://ccsiobench.com/fast-bulk-io)

        ---

NVMe drive from my test box - [https://ccsiobench.com/s/UAr3f](https://ccsiobench.com/s/UAr3f)

SSD in USB3 enclosure - [https://ccsiobench.com/s/UAtNj](https://ccsiobench.com/s/UAtNj)

TrueCrypt volume on the same - [https://ccsiobench.com/s/UAxmh](https://ccsiobench.com/s/UAxmh)

<comment><USER2> Will this work with something like Ext2Fsd or other usermode file system drivers not from microsoft which work on windows?

<comment><AUTHOR> Yep, it works with anything that is addressable as a file system location, i.e. as X:\Path or \\\Server\Share\Path format.

</comment></comment></comment><comment><USER3> Having measured file system performance on Windows, what _action_ can you take based on the results?

<comment><AUTHOR> For one, you can get an idea if you are getting proper performance out of your devices. For example, NVMe drives plugged directly into certain revisions of ASYS motherboards will not get to their spec speeds, you will need to use a M2/PCIe raiser card. Similarly, not all USB3 ports on motherboards are created equal. I have about 20% difference in performance of external drive between two ports on my work machine.

For two, you can estimate the overhead you get by enabling NTFS compression and/or Bitlocker for a drive.

Ditto for the antivirus overhead. For example, BitDefender is known to absolutely _kill_ multi-stream SMB3 performance, dragging 10GbE speeds down to 1Gbps or less.

<comment><USER4> I think the parent meant, what can you tune in Windows itself to get the "best" performance shown in the tool? Or are those buffer sizes and counts program dependent and not something the user can change?

<comment><AUTHOR> Short of enabling jumbo frames on network adapters I don't think there's much in terms of system-wide tuning. Every program that cares about IO performance would implement it on top of raw File API (CreateFile, ReadFile, etc), so the IO strategy will indeed be concealed in the guts of the program.</comment></comment></comment></comment>


Boy, Did Google Blow It In China - <AUTHOR> http://www.businessinsider.com/boy-did-google-blow-it-in-china-2010-7 <comment><USER2> it is not how principled the google stand was, but when it realized it stands alone and going to lose its pie in lucrative chinese mindshare, it backed down, there is no face saver for Google. this is badder than it was, but it cant be undone now at least for google.

Let us see how long can chinese arm twisting and technology driven restrictions can keep chinese people from free access of information, ideas, thoughts.</comment>


Elixir School - <AUTHOR> https://elixirschool.com <comment><USER2> I've been toying on and off with Elixir for a while now, and generally found it to be a fun language. You hear good things about Erlang's design, but the lack of familiarity lowers its approachability. On the other hand, Elixir is a much easier sell, since it's like a functional-Ruby.

One of the many nice thing about Elixir is Mix, the default build tool. Since everyone is using the same tools for config, dependency management, tasks, etc. you can find your way around new projects very quickly.

It's a great time to pick up Elixir if you're looking to build a web app. Phoenix released 1.3.0 [0] a few days back. The project structure changes along with Ecto 2.0 seem like a good step in the right direction, helping you separate the domain model from the persistence layer, and group related features together.

My biggest complaint with Phoenix is that they don't treat JavaScript as a first-class citizen. But as long as you're just writing small scripts to glue stuff together, it's probably fine to avoid writing tests. They've also gone with Brunch as their build tool, while I'd prefer Webpack for most cases. Although I recognize both have their use-cases.

Umbrella project support was also added to Phoenix in the latest release, so you can embrace the monolith while still breaking stuff up when it makes sense. I'd be interested in reading other's experiences with umbrella projects, as I haven't had any good use-cases, so I've only been able to speculate on the matter.

[0] [http://phoenixframework.org/blog/phoenix-1-3-0-released](http://phoenixframework.org/blog/phoenix-1-3-0-released)

<comment><USER3> I really really don't understand why people replace Brunch with Webpack while I keep seeing complaining about Webpack problem. Except the React mobs make that happen. I wonder how many people need what Brunch can't do which are specified in [http://brunch.io/docs/why-brunch](http://brunch.io/docs/why- brunch). Not sure if including Webpack by default would "treat JavaScript as a first-class citizen".

Also, Elixir is not Ruby, not even "it's like". Don't talk about what's going behind the scene yet. Even on the surface - syntax, can you list what similar syntax except def(do)end? I can't think of any, maybe i miss something but I'm sure there aren't many or maybe it's just that def(do)end.

> Since everyone is using the same tools for config

I don't think so in terms of releases. There are controversial ways of configuring `sys.config` and environment variables. No consensus here.

<comment><USER4> I've come around to Brunch, and I think it's the right choice for Phoenix.

I used Webpack for a while, but every time I needed to setup a new project I had to go back to the docs to figure out what I wanted. I tried using a generator, and it was awful... maintaining all the generated Webpack configurations was like trying to maintain a whole project within my project.

I wish Brunch had some more in-depth documentation, but I like not wasting so much time on getting that stuff setup.

<comment><USER3> > maintaining all the generated Webpack configurations was like trying to > maintain a whole project within my project

That's true to me too. I'm not happy leaving a bunch of generated configuration I hesitate to touch in my project folder. It includes too many of what aren't supposed to be changed, and freedom is not an excuse for this case.

</comment></comment></comment></comment><comment><USER5> Wow! Awesome to see Elixir School here. I'm the creator, happy to answer any questions or listen to feedback!

We've got a lot of big things coming this year. A whole new site, new lessons, and a few exciting new additions.

<comment><USER6> Very functional site. It's easy to read and I already was several pages into learning Elixir!

<comment><USER5> Thank you! Any and all feedback is welcomed too! If you see anything that needs improvement please feel free to submit a PR.

<comment><USER6> Does elixir only have 'int'? In that intro section I'd like to see mention of 8, 16, 24, 32, 64, and 128 bit ints/complex (if they exist). Nothing big, just mention that they exist and I won't have to abandon the language for higher maths.

<comment><USER5> Hi Xeoncross! Elixir does have floats, we should make mention of them. If you'd like to submit a PR we'd happily accept :)

<comment><USER6> No, not 32, 64, 128 bit floats/doubles (though I'm glad it has those as well). I meant plain ints. Do I have to do binary math or can I make use of large numbers natively?

</comment></comment></comment></comment></comment></comment><comment><USER7> It is a while I don't code in elixir however when I was learning the complex part definitely wasn't the one in this course.

The complex part is to start to think about decompose a big problem into smaller problems solvable by different Erlang modules. When to spawn another process or when to re architecture the code.

Really great work but I would go a little bit ahead and add some more specific Elixir/Erlang part.

Also what really really helped me was to understand how a GenServer was written, it may be worthed to make the student write its own limited version of a GenServer...

<comment><USER5> Howdy @siscia! When I wrote Elixir School the intention was never to be a full fledged tutorial or to "hand hold". The purpose of the site is to get you familiar with the topics, wet your appetite, and enable you to go out and learn more on your own.

<comment><USER7> It works perfectly for that :)

It is a good work, really! I was just trying to provide some useful feedback :)

<comment><USER5> No worries, much appreciated :)

We're working hard on some big changes this year including additional lessons and a blog. The blog will allow us to cover topics and material that don't fit well without our current lessons. Check back!

</comment></comment></comment></comment><comment><USER8> Contributor here. Happy to answer any specific questions or address feedback.

<comment><USER5> Thanks for all of your help @rhgraysonii! Elixir School wouldn't be what it is without all of the contributors and translators :)

</comment></comment><comment><USER9> I've been really enjoying the pragmatic studio series as well. I highly recommend it if you're looking into getting into Elixir.

</comment><comment><USER10> I read through this a little while ago when trying to decide if I should try out Elixir for a side project. The language is really intriguing, but I don't want to start a project without grokking how a more complicated project is laid out. Can anyone provide an open source example of a relatively complex project?

<comment><USER5> The biggest open source project I know of is: [https://github.com/bigardone/phoenix- trello](https://github.com/bigardone/phoenix-trello)

I'm working with a couple other contributors to Elixir School on new material that will go into more detail with regards to designing more involved applications.

I agree that resource is sorely missing from the Elixir community.

</comment></comment><comment><USER11> Excellent resource. Both this and the amazingly thorough official guide/documentation got me over the initial hump of learning Elixir.

<comment><USER5> Thank you Dirlewanger! Let us know if there's any improvements you'd like to see.

</comment></comment><comment><USER12> I wonder what is the added value on Elixir School, when it clearly looks like the same content is rehashed from the elixir-lang website..

</comment><comment><USER13> Elixir School is great, as well as elixir's hexdocs.

<comment><USER5> Thank you for the kind words jmcgough!

<comment><USER13> Of course, and thank you for all of the work you've done. I'd love more than anything for Elixir to take off so there's more Elixir jobs out there, and educating developers is a key part of making the language more popular. I used ElixirSchool a lot (and still do now) while I was ramping up on the language, great job with it!</comment></comment></comment>


Best 15 inch Linux Laptop? - <AUTHOR> Looking for a 15 inch laptop with integrated graphics, good battery, portable and runs linux smoothly. <comment><USER2> Dell XPS: [http://arstechnica.com/gadgets/2016/06/the-xps-13-de-dell- co...](http://arstechnica.com/gadgets/2016/06/the-xps-13-de-dell-continues-to- build-a-reliable-linux-lineage/). Link goes to a review of the 13" model, but the 15" model gets generally good reviews too.

Purism Librem 15": [https://puri.sm/librem-15/;](https://puri.sm/librem-15/;) higher res display is coming: [https://puri.sm/posts/4k-at-last-purism- librem-15-rev2-4k/](https://puri.sm/posts/4k-at-last-purism- librem-15-rev2-4k/).

</comment><comment><USER3> The frequency of "Best developer X" hardware questions make me wonder if it would be helpful to sorta sticky some of the most-upvoted posts somewhere. Like a "Hardware" tab on the top banner for logged-in users.

</comment><comment><USER4> I like my now dated System 76 Galago [https://system76.com/laptops](https://system76.com/laptops)

In general though, I've found power management to be poor compared to Macs

</comment><comment><AUTHOR> I am thinking of going with an ASUS k501UX although its not integrated graphics, its decently priced around my budget.

</comment><comment><USER5> ThinkPads tend to do pretty well with Linux, generally speaking (sent from an X1 Carbon running Fedora 23, but this is 14")

</comment><comment><USER6> Thinkpad P50. Stay away from HiDPI screens for now. Its a pain to scale.

</comment><comment><USER7> MacBook, running VirtualBox, running Linux as a VM. That's my setup.

<comment><USER8> Why run Linux in a VM instead of on bare metal? I installed Debian by following _some_ of the instructions here: [https://gist.github.com/andrewlkho/23b5b5bcf853b3473421](https://gist.github.com/andrewlkho/23b5b5bcf853b3473421)

The initial install process is a bit (OK, more than a bit) convoluted, but after that you're just booting grub and doing upgrades just like on a regular PC.

Basically, you run OSX from an external drive, install linux on a VM to which your internal hard disk is attached, then chroot into that environment (via another VM running linux) and install grub on the internal hard disk.</comment></comment>


Browsarity (YC W10) Allows You To Donate Affiliate Fees To Charity - <AUTHOR> http://techcrunch.com/2010/03/05/browsarity-affiliate-fees-charity/ <comment><USER2> While I did make and launch <http://browseforacause.com> a few months ago (which this may or may not have been inspired from), I welcome this launching - any innovation to donate more money to charity can really only be a good thing.

<comment><USER3> Thanks for the kind words. I can tell you they didn't find out about browseforacause till after they'd started working on browsarity. They started out doing something else with affiliate links and it morphed into this.

</comment></comment><comment><USER4> The problem with all these programs is that its arguable if this generates any value for the company's paying the affiliate fees. Usually a company is not happy with the idea of paying for a customer they already (would have) had.

However, sites like skimlinks seem to be growing (and staying in business) which I think surprised alot of people.

Lets all not forget that these programs mainly survive around 2 affiliate programs- eBay and Amazon. Getting canned from either would be disaster.

<comment><USER5> I think you're dead on about eBay and Amazon being the main sources of income, but we should give them a chance to address this. You have to figure they thought of this on day 1.

Specifically, I think this is not moot: " _arguable if this generates any value"_

Making the association that buying from Amazon == donating to charity is worth money to them.

Also, at least with eBay, the big money in affiliate revenue is signing up new users. You get paid about ~1.5% of the transaction price vs. $25 every time a new user places a bid (they don't even have to win). So at worst these companies are paying the big bonus once, and they're still making a profit on every sale.

tl;dr: there is a value add here, unlike than cookie dropping.

</comment></comment><comment><USER6> How is this different than Eric Kerr's Browse for a Cause?

<http://browseforacause.com/>

(Unless Eric is involved, of course.)

<comment><USER7> for starters its viral.. it tracks not only how much you brought in, but how much everyone you've invited brought in, and how much everyone they've invited brought in etc.

<comment><USER6> I mean, ok, but that's not going to make or break the product.

You said that was for starters -- what else?

Also, what type of corporate entity is Browsarity? Is it actually a 501(c)(3)?

<comment><USER3> Actually true virality does tend to make or break the things that have it.

<comment><USER6> I meant this, specifically: "it tracks not only how much you brought in, but how much everyone you've invited brought in, and how much everyone they've invited brought in etc."

Obviously if their viral loop works that will make the product. I'm saying the above will have no impact on whether their product is viral or not (speaking from experience). I'd even be willing to bet on an A/B test against their viral coefficient.

I read the original comment to say, "We are different because we show you the number of dollars your whole social network brings in." That's cool. I like numbers. But that feature isn't rocket fuel.

Instead I should have taken it to mean, "We're not that different in principle, but we're focused on making charitable giving viral, like Causes for the web at large."

So mea culpa.

</comment></comment></comment></comment></comment><comment><USER8> The countdown to their affiliate accounts being shutdown starts now.

<comment><USER3> Not necessarily. I don't know if you noticed this detail, but they graphically distinguish their affiliate links (with a red underline). This means their affiliate links do exactly what merchants hope affiliate links will do: draw customers to them. The red link says "click on this and if you buy something we'll donate money to your favorite charity."

Imagine how pleased merchants would be if an existing affiliate site decided to promote their affiliate links with red underlines and to donate 90% of the money to charity. The visitor's _choice_ of charity no less.

<comment><USER9> 14\. You will not offer any person or entity any consideration or incentive (including any money, rebate, discount, points, donation to charity or other organization, or other benefit) for using Special Links (e.g., by implementing any "rewards" or loyalty program that incentivizes persons or entities to visit the Amazon Site via your Special Links).

<comment><USER10> the line about charities was added four days ago! here's what it looked like before: <http://grab.by/2Ai5>

</comment></comment></comment></comment><comment><USER11> While I think this is a really cool idea; I wonder what the investment strategy could possibly be for funding a company like this. I have a really hard time envisioning how you go from this to any kind of exit short of acquhire.

(I'm genuinely curious, for anyone who feels like speculating.)

</comment><comment><USER12> This is very similar to what a local startup here in Ottawa is doing. <http://dogoodhq.com/> , they replace your normal advertisements with calls to actions, green initiatives and campaigns from charitable organizations. They also have been nominated for a web award at SXSW for technical achievement I believe.

</comment><comment><USER13> I'm quite surprised that this idea got YC funding. They must have a great team.

</comment><comment><USER14> Hey I started something like this in high school: shopwisely.org. Glad to know I wasn't crazy (people said I was crazy for doing it).

Some things I learned: nonprofits don't like to raise money for no reason, and don't like to raise money to receive 2 months later.

The service will have to be super passive because people are lazy and will often forgo an extra step in before purchasing.

<comment><USER15> It's a browser plugin, right? Click install, money trickles into the charity. I would probably use this if the plugin runs on my OS of choice. Why _not_ give a bit of free money to charity?

<comment><USER14> By the way, shopwisely.org gives 100% of commissions, and is a bookmarklet which works in ie, firefox, chrome, and safari.

But once you get the users on your side you'll have to get the merchants on your side by convincing them it will help business. Also the affiliate communities frown on "stealing" tracking cookies. They hate what UPromise does, even though I've argued it's not wrong at all.

I stopped doing it because I stopped believing in the "world changingness" of the whole idea. a) nonprofits don't like to raise money for the sake of raising money, and it usually took months before the money could be sent out. So they couldn't plan how to use the money raised. b)the idea isn't really better than direct donation except we're introducing a new middleman, and making it less transparent because the merchant now pays charities with money they get from the end consumer.

> Why not give a bit of free money to charity?

I want to mention that it's not really free money. In the end the consumer pays because the merchant pays.

</comment></comment></comment><comment><USER16> Allows _you_ to donate affiliate fees to charity?! Bullshit. Should read: Forces businesses to donate part of their profit margin to charity and browsarity.

<comment><USER17> "Forces businesses to donate part of their profit margin to charity and browsarity."

No one is being forced to do anything. If Amazon or Ebay doesn't like the service they can disable the account, change TOS etc.

<comment><USER18> They're being forced to do it, until they notice and decide to stamp it out (If they do notice).

<comment><USER15> By similar logic, I'm forcing you to read this comment.

<comment><USER18> Apples vs Kettles.

What about this:

You have an agreement with a shop owner, that you can buy stuff from him wholesale at a discount.

You then hang around in the shop (Maybe in disguise) waiting for customers who are about to buy stuff.

Instead of letting them get on and buy stuff, you accost them, and suggest they let you act as a middle man, and you'll buy it wholesale from the shop keeper, and donate the difference to charity, after you take your cut.

Sounds shady doesn't it. And the shopkeeper is being forced to do it until he finds out about the scam.

</comment></comment></comment></comment></comment><comment><USER19> Nice!</comment>


Piqabrick: Visual Recognition of Lego Bricks - <AUTHOR> https://www.kickstarter.com/projects/piqabrick/piqabrick <comment><AUTHOR> Everything about this is awesome... except that the recognition is done over the net on their side, and they're selling you a lifetime service for a one- time payment, and we all know how this inevitably finishes.

I would be a lot less hesitant if they promised to make the software available for self-hosting if the business faces any sort of difficulty.</comment>


The Singular Voice, and Pungent Humor, of Charles Portis - <AUTHOR> https://www.nytimes.com/2020/06/09/books/charles-portis-true-grit-dog-of-the-south-gringos-masters-of-atlantis.html <comment><USER2> I can't recommend Donna Tartt's books enough, especially The Secret History and The Goldfinch. I've read both 3 times now.

</comment><comment><USER3> I love the tone of this essay. I was not a major Portis fan except for "True Grit" but probably will go back and re-read him now, and now I want to read Donna Tartt's books.

<comment><USER2> Stephen King's review of The Goldfinch: [https://www.nytimes.com/2013/10/13/books/review/donna- tartts...](https://www.nytimes.com/2013/10/13/books/review/donna-tartts- goldfinch.html)</comment></comment>


Apply HN: lumiverse – the best place to discover educational videos - <AUTHOR> http://lumiverse.io
I want lumiverse to become the perfect place for people to publish, discover and discuss great educational videos. I want to build a friendly and intelligent community, make it easy for video creators to find an audience, and make it easy for viewers to discover awesome videos.
In the future, I want to expand into other types of content(starting with tutorials, art, short films, and comedy), and create the most awesome platform for hosting and selling high quality video series.
lumiverse will become to youtube what hacker news is to reddit. <comment><USER2> This is a practical idea. With capital I think you might even be able to recruit existing talent (video series on YouTube or specific person/team who makes them) to help consolidate the utility. I've seen first hand how educators of different levels strive to find good, usable content online in a variety of subjects. The hard sciences is of particular interest.

Related idea(s) for revenue: Purchase of 'supplemental' course materials (PowerPoints?) and/or "asset packages" that bundle relevant, high-quality graphics for educators to use in their own classrooms.

The layout is straightforward and I appreciate the tags for the type (Tutorial, Math, Chemistry). Feels just slightly busy but it's easy on the eyes. Hope it goes great for you and the team!

<comment><AUTHOR> Thank you very much for your feedback!

I'll think about supplemental materials, it's an interesting idea....

And I am definitely planning to create original content. I have just started working on my own video series about rationality - [http://lumiverse.io/series/orangemind](http://lumiverse.io/series/orangemind). Right now I'm working on them alone, but in the future I would love to assemble a team. And it's possible that I'll recruit other video creators as well.

I am also very interested in producing series about hard sciences, it's one of my major goals. I will start CS and programming, and then possibly do math and physics. But that's a more of a long-term thing.

</comment></comment><comment><USER3> I make educational content for a living, so am fundamentally quite interested in this. A couple of questions from me...

Why would I use a platform like this when I've already got my own site which attracts lots of users/customers?

Would the site be free to use? Would you pay the content providers? How would you make money?

How will you maintain the quality of the videos on the site? If I'm a creator of videos, I want to make sure they only appear alongside similarly high- quality videos. But the higher the bar, the fewer videos you'll have on the site. Where do you see the balance between quality and quantity?

There are /surely/ other people out there who make platforms of this kind (right?). If so, how do you think this will be different from any of the others already on the market?

[Note: I'm sorry if these come across as a bit blunt. Just some questions that came to my head as I read about the site, and I typed them out quickly. If I were a potential customer, I probably wouldn't beat around the bush with niceties...!]

</comment><comment><USER4> To be contrarian...

"hosting and selling high quality video series"

As a creator coming from a business perspective I see these platforms as mostly a liability to be avoided.

I write videos and have decided to create my own subscription site that is coupled with other services/features. I look at Youtube as nothing more than a free promotional tool to release sample content. Why include a middle man when it is unnecessary ?

<comment><AUTHOR> 1\. lumiverse has reddit-like discovery system, so it will be a great way for creators to be discovered, being on the front page brings you a lot of traffic and subscribers.

2\. Building your audience on a platform is _much_ easier than building traffic to your own website. Basically I want video creators to be able to focus on making great videos, and not have to worry about self promotion, monetization, and other business aspects.

3\. We will have a convenient system for selling video series, which makes it much easier and more convenient than doing it on your own website. Users connect their card/paypal once, and then can buy videos in one click.

4\. I want lumiverse to be generally a much better place for hosting videos than youtube. Better interface, no nonsense ads, intelligent and friendly community, high quality content, etc. I focus on building the perfect platform instead of trying to manipulate people's attention. Youtube has a lot of flaws, and it's time to make a better alternative.

6\. Not all video creators want to develop and host their own video subscription website. It may make sense to you, but I think that most people will prefer to use a platform, if it's really awesome and convenient.

7\. You can have both. You can sell your videos on lumiverse and on your own website. Or you can build your audience and subscribers on lumiverse, and put a link in the header to drive traffic to your site if you prefer.

8\. Perhaps we will have pro accounts, allowing people to buy their own domains and create their own easily customizable websites. So if you want your own design with some extra features/services, it might be an option. Though I am not sure that we will go in that direction.

<comment><USER4> If I'm not your target audience then ignore these words as they might sound a bit harsh. My primary concern in using any service like this would be how easily I could port all content over to my own servers when ready. This includes not just videos but user accounts, email lists , video comments, payment system, authentication, etc. I want the freedom associated with independence and not to feel like a tool of another business designed to make me reliant on their platform.

</comment></comment></comment><comment><AUTHOR> Clickable link - [http://lumiverse.io](http://lumiverse.io)

After I've deployed the beta(couple of weeks ago), lumiverse gained 239 users, and 105 subscribers to the mailing list of our best videos.

We already have some amazing video creators, 98k views, and people keep joining. Feedback is great.

I am planning to monetize by allowing people to sell video series, and by producing original content(starting with awesome educational videos about rationality).

</comment><comment><USER5> This looks cool. I think hyper-niching is important in anything related to educational videos online.

TED talks is presentations. Udemy is lectures/courses.

Etc...

The video format is well defined for each site.</comment>


Building Clojure Services at Scale - <AUTHOR> http://blog.josephwilk.net/clojure/building-clojure-services-at-scale.html?utm_source=dlvr.it&utm_medium=twitter

<comment><USER2> One thing I've noticed with my own Clojure service at scale, is that eventually, I want to significantly reduce my use of futures entirely.

When you're getting started with Clojure, it's easy to do everything that needs to happen "later" or "in the background" as a future. Once you go to production, you realize that about half of those futures should have been jobs going into a queue somewhere, with logging and guaranteed delivery, retrying on another machine, if necessary.

I haven't gotten to the point of writing that library, but I probably will, soon.

<comment><USER3> I've had great success using Lamina for in-process message queues in lieu of futures, although this does nothing towards making your system distributed.

<comment><USER4> In process queues are a good abstraction, but that doesn't really protect you in case of your app crashing, which I think is the concern more than being distributed. I may be misunderstanding though.

Edit: I was already a big fan of SoundCloud, very pleased to find out they use Clojure.

<comment><USER5> I think the point was that it's hard to make something failure-tolerant without being distributed. A locally persisted queue would avoid certain failure modes, though.

</comment></comment></comment></comment><comment><USER6> With Ghostery on, there's no content on this page unless you unblock the SoundCloud widget.

In this case, it's definitely worth unblocking. :-)

<comment><USER7> Thanks for the note, I've ensured Ghostery only blocks the SoundCloud widget and not the entire post now.

</comment></comment><comment><USER8> This is the first I've heard of the "Scala runtime". Isn't it compiled to bytecode and usable as a jar dropped in anywhere on the JVM possibly with some name mangling if you don't design your public interface to be pretty for java based projects?

<comment><USER9> That's right, its really just a library. Also, Finagle already has an idiomatic Java API so using it from Clojure would not require use of any mangled names.

<comment><USER7> Thanks for those replies. I've updated that section to better reflect Scala just being a library dependency.

I'm looking forward to playing with Finagles Java API as at some point I'm going to need to connect our Finagle projects with our Clojure services.

</comment></comment></comment><comment><USER10> I've used Hystrix to great effect before, but am now really curious about mixing it with LMX Disruptor aka Reactor and it's clj bindings ( [https://github.com/clojurewerkz/meltdown](https://github.com/clojurewerkz/meltdown) ). Anyone have any experience doing so?

<comment><USER11> I was recently looking for clojure bindings. Meltdown is the only one I could find that is currently maintained but it doesn't appear to expose consumer barriers anywhere. Without them the disruptor is just a lockless ring-buffer. The barriers are what allow building multi-threaded pipelines on top of it.</comment></comment>