Facebook Ordered to Pay $500M in Oculus Lawsuit - <AUTHOR> http://variety.com/2017/digital/news/facebook-oculus-zenimax-decision-1201975648/ <comment><USER3> If the original complaint is to be believed(1) - which Juror's found credible -the course of events, tldr was something like this:

\- Zenimax bought ID software for >$100m(1) on June 24, 2009.

\- Carmack signed up with Zenimax for an earn-out / golden-handcuffs agreement that ended in June of 2013.

\- Carmack was enthralled with VR.

\- Carmack found Palmer via an internet forum, reached out to get a rift to try.

\- Carmack tinkered with the Rift, adding sensors, building calibration, etc. while on the clock / using hardware from zenimax.

\- Carmack brought a prototype of the Rift working on Doom 3 to E3 with him providing Oculus with their early press.

\- Zenimax realized the extent to which Carmack was enabling Oculus and worked to negotiate equity with Brendan Iribe.

\- Oculus sent Zenimax a proposal to discuss a partnership Sept 21, 2012 but never followed up / followed through.

\- Carmack quit Zenimax the day his contract was up in June 2013, joined Oculus as CTO a few months later and took his 5 best guys with him.

\- FB bought Oculus March 2014, Zenmix got pissed and sued.

Clearly it's Carmack's genius that made this viable.

It's Carmack's video that lent credibility to the campaign.

And it's Carmack's original IP (Doom) that made the demos compelling.

It may be a weird system that Zenimax is entitled to $500m but since Carmack was an employee, under contract with Zenimax - who had paid >$100m to buy him / his IP - it sounds like this was a fair verdict.

(1) [https://www.scribd.com/document/274211118/Judge-denies- Faceb...](https://www.scribd.com/document/274211118/Judge-denies-Facebook- motion)

(2) [http://www.gamespot.com/articles/zenimax- raised-105-million-...](http://www.gamespot.com/articles/zenimax- raised-105-million-to-buy-id/1100-6213068/)

<comment><USER4> What in the world was Carmack doing, working on another company's project, using your current company's time and resources? Don't get me wrong, the guy is a genius, and I love nearly everything he has a hand in, but you would think that with his level of seniority, some alarm bells would have gone off in his head.

<comment><USER5> There's a story in Masters of Doom where Carmack and Romero do just that. If I recall correctly, they would take company (Softdisk I believe) computers at night because they were more powerful than their home computers, and use them to develop their own games. I think they even worked on their own games on company time. I might be getting the details wrong on that one, but sounds like Carmack dgaf (or just doesn't think about how these things could potentially be wrong/misaligned).

<comment><USER6> I believe they settled it by paying some royalties on Commander Keen.

A lot of times Carmack just wants to get shit done. At Oculus he has worked on both the Minecraft code and the Netflix code both for VR clients, both (I believe, I know for sure for Minecraft at least from some talks) with MS and Netflix retaining full ownership of the code.

Maybe they have some "off the record" agreements to avoid anti-trust-- Minecraft still hasn't officially come to Vive.

<comment><USER7> They also made a number of "free" games that were published by SoftDisk. This was all pre-modern software era though. If that happened today, it would end up very similarly to how the Occulus case ended up.

</comment></comment></comment></comment></comment><comment><USER8> This is a very interesting part: [0]

>The liability of Defendants was established by uncontradicted evidence presented by ZeniMax, including (i) the breakthrough in VR technology occurred in March 2012 at id Software through the research efforts of our former employee John Carmack (work that ZeniMax owns) before we ever had contact with the other defendants; (ii) we shared this VR technology with the defendants under a non-disclosure agreement that expressly stated all the technology was owned by ZeniMax; (iii) the four founders of Oculus had no expertise or even backgrounds in VR—other than Palmer Luckey who could not code the software that was the key to solving the issues of VR; (iv) there was a documented stream of computer code and other technical assistance flowing from ZeniMax to Oculus over the next 6 months; (v) Oculus in writing acknowledged getting critical source code from ZeniMax; (vi) Carmack intentionally destroyed data on his computer after he got notice of this litigation and right after he researched on Google how to wipe a hard drive—and data on other Oculus computers and USB storage devices were similarly deleted (as determined by a court-appointed, independent expert in computer forensics); (vii) when he quit id Software, Carmack admitted he secretly downloaded and stole over 10,000 documents from ZeniMax on a USB storage device, as well as the entire source code to RAGE and the id tech® 5 engine —which Carmack uploaded to his Oculus computer; (viii) Carmack filed an affidavit which the court's expert said was false in denying the destruction of evidence; and (ix) Facebook's lawyers made representations to the court about those same Oculus computers which the court's expert said were inaccurate. Oculus' response in this case that it didn't use any code or other assistance it received from ZeniMax was not credible, and is contradicted by the testimony of Oculus programmers (who admitted cutting and pasting ZeniMax code into the Oculus SDK), as well as by expert testimony.

[0] [http://www.polygon.com/2017/2/1/14478258/zenimax-oculus- inju...](http://www.polygon.com/2017/2/1/14478258/zenimax-oculus-injunction)

<comment><USER9> Wow... Very damn compelling and puts the $500m in perspective.

I always wonder when they are able to show someone made a particular Google search months after the fact, where are they pulling that data from? Surely the browser history is long gone...

<comment><USER10> Google cloud data is not exempt from discovery.

</comment></comment></comment><comment><USER11> Large fines like these, even if the facts are clear, do not support competition and seem anti-consumer and anti-innovation. Either the fines should be smaller or the laws changed to better balance what concretely happened: a poaching of a key employee that led to the development of a big product.

That being said, Facebook doesn't really seem to have its R&D figured out. It's poisoned by bad leadership. Palmer Luckey managed to disgrace himself in public opinion in a way that seems hostile to recruiting the kind of progressive, free-thinking talent that makes up most R&D teams. John Carmack, besides his political leanings, speaks derisively of "Hollywood people" (Oculus users) and came out of this lawsuit looking like a real jerk chasing a huge check at any cost. At the end of the day, he betrayed a video game company.

Mark Zuckerberg has a lot of leadership faults disguised behind an amateurish ownership structure that puts him outside of public accountability. Despite its huge head start, Oculus is seriously threatened by HTC, Sony, Google and Samsung. Paper and Facebook payments didn't really go anywhere. Though Instagram and WhatsApp seem to be good acquisitions, even at their extraordinary prices, a broken clock can still be right twice a day. And it doesn't really take leadership to spend huge amounts of money on acquisitions—that's the easy way out. Outside of Facebook, his New Jersey schools efforts were not well regarded. Will his $3 billion commitment to a SF Biohub be marred by similar issues? I'm just nervous is all.

I think market sentiment will catch up with this ruling. Eventually someone's going to ask if he's the right guy to be in charge of Facebook. The public investor may never actually have the power to do something about it.

<comment><USER12> Being hired to work on projects, using your companies time and money, and then taking that project to another company yourself, is stealing. Stealing is very anti-competative, and massively increases risk in investment. If anything, this case shows that you can steal a companies resources to make your own products, and if its a good idea then lawsuits are just a cost of doing business.

<comment><USER13> I don't know why you are being downvoted. When you are on company time or working on company resources, your output generally belongs to the company unless you have a special exemption. The cavalier attitude by many people in SV towards IP is somewhat tragic

</comment></comment></comment><comment><USER14> Very interesting result and shows the value of contracts. A lot of times people want to say, "Oh, that's just paperwork" and after years and years of Alphabet Soup Regulatory Agencies hovering over my RFP and business proposal work for clients, I have the utmost respect for signed documents and what they are there to enforce.

This isn't just finger-pointing accusations any more, this is a multi-hundred- million dollar verdict about a significant future market. Anybody who might consider pulling a similar stunt - and didn't learn from the public shitshow that was Cruise Automation's dirty laundry hung out in public - should be wise to study this case.

Disruption is fine and dandy overall, it's just that the Ends will also be measured by the Means in time.

</comment><comment><USER15> This whole situation leaves me with a bad taste in my mouth regarding Zenimax.

So their biggest claim, surrounding Oculus being built on trade secrets, is found false but they get a half-billion dollar payout anyway?

Considering the purported fines could be traced back all the way to practically the original Kickstarter...I wonder if Zenimax would have gotten such a sum had Oculus not been bought by FB for $3B[1]...

...or am I misunderstanding something?

[1] [http://www.businessinsider.com/facebook-actually- paid-3-bill...](http://www.businessinsider.com/facebook-actually- paid-3-billion-for-oculus-vr-2017-1?r=UK&IR=T)

<comment><USER16> It's the NDA that killed them.

<comment><USER15> Yeah...but that breach was originally made during the original Kickstarter in 2012.

Aren't most statute of limitations for NDA breaches 3-4 years from original breach?

But even if it's still within the statute of limitations I can't help but get the feeling Zenimax is just trying to cash in on the unlikely success of Oculus.

<comment><USER17> They sued in 2014 so the clock stops there.

<comment><USER18> It looks like they sued in May 2014, and the acquisition closed in July 2014, so it looks like facebook just didn't do adequate due diligence.

<comment><USER19> Or entirely possible they knew about it, dismissed it as "frivolous case" or factored it in the price paid.

<comment><USER18> Well, clearly it wasn't frivolous, so if they did think that then it would be evidence of them not doing proper due diligence.

I guess it's possible they just didn't care. What's another half billion dollars to facebook?

<comment><USER20> "It's a speeding ticket. Just pay it." \-- paraphrasing Zuckerberg's lawyer in _The Social Network_

The interesting question is whether FB will indemnify Carmack. $150M is a hell of a speeding ticket.

<comment><USER21> It's not clear whether Carmack was actually the one to get that fine, sounds like it was Iribe.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> _Facebook 's Sheryl Sandberg told CNBC's Julia Boorstin that she was "disappointed in certain elements of the decision." Sandberg added she was "considering our options to appeal," and the verdict was "not material to our financials."_

Sure, FB has a lot of money. But still -- $500M is "not material" to their finances?

<comment><USER23> Related: I believe you can take offset such a settlement from profits to reduce taxes. Never really understood the rationale for this. Seems pretty arbitrary and another example of how corporations are often favored over humans.

<comment><USER24> Imagine if you earned $1000 from activity X, paying $200 tax on it. Later X is found to be illegitimate and you have to pay $1000 damages and $500 punitive damages. Except because of the tax you have net lost $700 rather than the $500 punitive damages.

Put in another term, it would be like paying tax on money you never had.

</comment></comment></comment><comment><USER25> > However, the jury also found Wednesday that Oculus didn't violate any trade > secrets. Instead, it ruled that Luckey, who was working as a contractor for > Zenimax before starting the Kickstarter for the Oculus Rift headset, > violated his non-disclosure agreement, according to a Polygon report.

I don't understand how this works. Why does Facebook have to pay $500M over an NDA violation between an individual and his previous company? It seems like ZeniMax should only have a case against Palmer Luckey.

<comment><USER26> If Alice hires Bob, and Bob sells Alice's information to Charlie, and Charlie makes $2bn out of it, then it seems fair to hold Charlie responsible as well. Otherwise all you're doing is creating a market for sacrificial goats to take the fall while the company making the money gets away clean.

<comment><USER27> If Charlie doesn't know Bob's information is tainted, all you're doing is punishing the innocent for a crime they didn't commit.

<comment><USER21> It's called due diligence. The fact that Facebook didn't do it was a factor in the trial.

</comment></comment></comment></comment><comment><USER28> Facebook bought Oculus for $3B [1] 16% of the purchase price for infringing on an NDA is pretty damaging.

I believe that'll be a good deterrent in the future.

[1] [http://uk.businessinsider.com/facebook-actually- paid-3-billi...](http://uk.businessinsider.com/facebook-actually- paid-3-billion-for-oculus-vr-2017-1) (thanks for the correction, Cozumuel)

<comment><USER29> A deterrent for what? What's the lesson here? If you're a student don't sign an NDA on the off chance you'll later found a company and get acquired by Facebook for $2B?

The real takeaway here is, if you have world-class tech guys working for you then don't support them, just tie them up in contracts, and when they leave and become successful you can sue them to get 25% of whatever they made, at zero risk to you.

<comment><USER30> World-class tech guys should also respect contracts they sign. I respect his works and achievements, but I think his actions in this case were unfair. I only hope I don't know all details and my opinion is based on not all facts. I'd like to know my opinion is wrong.

</comment></comment></comment><comment><USER31> >John Carmack, Oculus chief technology officer and founder of a company owned by ZeniMax, improved on the device using his knowledge from his previous work as a ZeniMax employee.

That's a scary precedent...

<comment><USER32> It's also an outrageous insinuation that John Carmack, the father of the FPS, needed "knowledge gained from Zenimax" in order to make Oculus happen.

<comment><USER33> I think you are undervaluing the codebase, if he used a codebase that was touched by 10 engineers with an average pay of 100k, the codebase cost 1 million to make in just one year, it would be hard for any engineer no matter how good to match the man hours of 10 engineers, Zenimax owned that knowledge and paid a high price for the value

<comment><USER32> Zenimax does not own anybody's knowledge. They own source code.

</comment></comment></comment></comment><comment><USER34> For those interested, the official court document can be accessed here: [https://www.scribd.com/document/274211118/Judge-denies- Faceb...](https://www.scribd.com/document/274211118/Judge-denies-Facebook- motion)

It describes in details what happened.

<comment><USER35> It describes in detail the ZeniMax allegations.

> Though the Court uses definite language, the information is based on > allegations only

I highly recommend it. It provides much more perspective and appears to be a strong case. The decisions - both in their favor and against - <USER2> reasonable based on publicly available information.

</comment></comment><comment><USER36> The TechCrunch article describes ZeniMax's allegations at more length: [https://techcrunch.com/2017/02/01/jury-awards- zenimax-500-mi...](https://techcrunch.com/2017/02/01/jury-awards- zenimax-500-million-in-oculus-vr-lawsuit/)

</comment><comment><USER37> The accusation that Palmer was incapable of creating the Rift without Carmack's help and that he had a barely functional prototype, if true, is pretty insulting to Carmack. Carmack is a smart guy and I every much doubt he'd have joined on at CTO if the prototype was as awful as ZeniMax says it was.

<comment><USER38> I don't think it was the prototype itself that was barely functioning, it was the software side that wasn't great. I remember when Palmer first showed off the device, it seemed to track just fine. When they introduced actual content, though, it became disorienting really quickly.

I backed them on Kickstarter so I got to see the DevKit1, DK2, and the CV1. The difference between the early versions and the end versions really came down to the software that handled the tracking. Compensating for movement lag and predicting frames to ease the jerkiness are really what converted it from a prototype to a viable commercial product.

That being said, it makes me laugh a little to see that Valve and the HTC Vive managed to outpace Oculus. Oculus had so much momentum and marketing buzz and they really dropped the ball on that one. Who knows how much of that was due to the FB purchase, but it definitely is weird seeing them lose their huge advantage.

<comment><USER39> "That being said, it makes me laugh a little to see that Valve and the HTC Vive managed to outpace Oculus."

It was the other way around. Valve had been working in VR for years before the first oculus prototype. Oculus contacted Steam and copied the tech they had. The Steam guys actually helped Luckey because it was the small guy doing the open source thing.

They did not take into account the selloff to facebook of all this information.

<comment><USER38> I don't know how much stock I put into this. If you're going based off of what Yates said in that Reddit interview, I'd take that with a grain of salt. Palmer was working on a 3D head mounted display back in 2010/2011 and Valve has only admitted to VR research since 2012/2013\. That's not to say that they couldn't have worked on it before then, but Palmer wasn't involved at that point. He also was only working on a 3D headset and wasn't initially planning on a VR headset from what I understand.

On top of that, Oculus definitely had more marketing/media buzz so they were ahead of Valve in the consumer mind. The end product might be closer to Valve's than to his original prototype, but he definitely had a small head start on them for the prototype and a huge head start from a marketing perspective. Valve all but shattered that.

Here's Palmer's first announcement in like 2012: [http://www.mtbs3d.com/phpBB/viewtopic.php?f=140&t=14777](http://www.mtbs3d.com/phpBB/viewtopic.php?f=140&t=14777)

</comment></comment></comment></comment><comment><USER40> > with Carmack having to pay another $150 million

His net worth seems to be only $40 million. What happens to him now?

<comment><USER41> Serve time at Zenimax. Or maybe it's not final decision.

</comment></comment><comment><USER42> This wasn't something I knew, but it appears that Carmack used to indirectly work for Zenimax, who became the parent company of id.

<comment><USER38> It wasn't indirect, by any means. Carmack was working on a VR version of Doom 3 (the BFG Edition) while working at id/ZeniMax before he jumped ship to go work at Facebook. There's still tons of remnant news stories about the Doom 3 BFG VR Edition that was supposed to launch with the CV1 Rift.

</comment></comment><comment><USER43> > A Dallas, Texas jury today awarded half a billion dollars to ZeniMax after > finding that Oculus co-founder Palmer Luckey, and by extension Oculus, > failed to comply with a non-disclosure agreement he signed.

> In awarding ZeniMax $500 million, the jury also said that Oculus did not > misappropriate trade secrets as contended by ZeniMax.

> Of the $500 million, Oculus is paying out $200 million for breaking the NDA > and $50 million for copyright infringement. Oculus and Luckey each have to > pay $50 million for false designation. And Iribe has to pay $150 million for > the same, final count.

[http://www.polygon.com/2017/2/1/14474198/oculus-lawsuit- verd...](http://www.polygon.com/2017/2/1/14474198/oculus-lawsuit-verdict)

</comment><comment><USER44> I wonder if this decision will be final, or if either party will appeal. Facebook has stated they will appeal, but Zenimax has threatened an injunction. While an injunction seems unlikely to achieve fruition, just the chance that it might (which would completely halt VR for Facebook) seems enough of a risk to just move on.

[http://uploadvr.com/verdict-zenimax-oculus/](http://uploadvr.com/verdict- zenimax-oculus/)

Then again, what do I know about giant corporations suing each other. I've always found it comical how much money Samsung and Apple spent suing each other, but they seem to make money just fine.

</comment><comment><USER29> Good to hear that the jury made the right decision on the ridiculous charges against Carmack. Sad to hear that they think a bunch of litigious assholes deserve $500 million for getting a signature on an NDA.

<comment><USER32> Zenimax, an investment vehicle for Providence Equity Partners, is literally run by actual lawyers. In the early days of Oculus, Carmack tried to get them interested in VR, and they wanted nothing to do with it. Now all of a sudden Oculus is a result of _their_ tech.

They wouldn't even have the slimy case that they have, if not for the fact that Carmack and others used to work there. People can debate the legal technicalities all they want, but the plain, everyday explanation of what happened is that some lawyers figured out how to retroactively create and profit massively from a virtual non-compete that never existed.

<comment><USER45> Hmm.. they still paid 100m to get carmack's previous company partly for his and others talent .. they had explicit NDA signed with oculus. carmack was working on their resources and IP(doom) on company time. Carmack was critical to success of occulus. The suit also predates Fb acquisition It is not their problem that Fb didn't do due diligence.

</comment></comment></comment><comment><USER46> So fb will pay 300 mil and luckey and crew 200 mil.

I think its good for fb and bad for the others.

If fb had to pay all then that would've been bad for them.

How many units is occulus selling now?

</comment><comment><USER35> Can anyone find a copy of the NDA that was violated?

<comment><USER47> its under NDA

<comment><USER35> I honestly don't know if you are joking. I would appreciate seeing a source for that.

<comment><USER48> I think he probably meant that as a joke, and I would imagine that the contents of the NDA were part of the trial's discovery, however most NDA's I've been signing recently have included a clause that the NDA itself is confidential.

</comment></comment></comment></comment><comment><USER49> 300m + 150m + 150m (Payout structure stated in the article) = 600m, not $500m.

</comment><comment><USER50> > Luckey having to pay $150 million

What's the reasoning behind that?

</comment><comment><USER51> John Carmack has to pay $150M. I know he's a very successful person but that has to be a lot of money for him. Is facebook going to pay that cash?

</comment><comment><USER52> So when's the movie coming out?

</comment><comment><USER53> Good to see that unethical behaviour has costs.

</comment><comment><USER54> > ZeniMax isn't a household name with most consumers, but the company's > subsidiaries have produced video games like "Quake," "Fallout," and > "Wolfenstein.

So read the complaint in full, and it's a fair bit different to how it's reported in the OP. Article frames the situation in a pretty odd manner, almost implying ZeniMax by association had a hand in those titles. Also completely misses out the depth of prior association between Carmack and ZeniMax.</comment>


Anyone know of a repository for current/upcoming DOE related RFQ's? - <AUTHOR>

I work for a small robotics/general R&D company, and we're trying to get a piece of all the DOE related work.  I know these contract RFQ's are scattered about various departments and states, does anyone have a central places to look? <comment><USER2> Are you looking for something like <https://www.fbo.gov/>

e.g. DOE search: [https://www.fbo.gov/index?s=agency&mode=form&tab=not...](https://www.fbo.gov/index?s=agency&mode=form&tab=notices&id=f9b483c381bd2a656b43cec368f9438f)</comment>


The Secret Lives of Homeless Students - <AUTHOR> https://medium.com/bright/the-secret-lives-of-homeless-students-a4b506ded525 <comment><USER2> I think it is a shame that this has been upvoted so much and not commented upon yet. I happen to be homeless and I know there are other people here who are struggling in the present -- pleas for help sometimes show up here by people in real trouble -- and I know there are people here who have been homeless in the past.

As a nation, we need to work on putting together a better social safety net and we need to work on making a whole lot more affordable housing available. I don't recall the exact figures off the top of my head, but the number of available affordable housing units is some relatively small percentage of demand. This is in part because of the way taxes and financing and things like that are structured. It is in part because we have done away with a lot of affordable options in a lot of places, like SROs and boarding houses. The types of places young single people used to live largely no longer exist.

As a nation, our track record for caring for our children really sucks. This is a very poor policy that hurts the future of our country. We are churning out relatively large numbers of people with terrible childhoods and then wondering why so much fails to go smoothly. We are grinding up a very high percentage of future citizens and then expecting them to somehow solve it themselves. Aside from any moral concerns, this is just a terrible thing to do to ourselves as a nation. We are flushing a great deal of human capital down the toilet by caring so little about the welfare of our children.

Edit:

From the end of the article: _This also means that we need to de-stigmatize homelessness, so students in need will self-identify and get the help they need._

This is part of why I am open about being homeless, although I know that in the short term it hurts me. I would probably be taken more seriously here and other places if I weren't open about being homeless currently. I was one of the top three students of my graduating high school class. I have about six years of college, including an AA and 2 certificates and I am a few classes short of a bachelor's. But I realize that my lack of housing is something that convinces many people I am simply incompetent and I get dismissed and they move on. And that needs to change if things are ever going to improve in this country. As long as people figure homeless folks are merely inept, they aren't going to try to get at the real roots of the problem, like sky high housing costs.

<comment><USER3> Homelessness in America is our biggest problem. It's just going to get worse. I don't know why politicians/people are in such denial?

I don't have any sure fire answers, but right now every county should have a piece of land reserved for homeless individuals. Just a place you can pitch a tent, access to out house, and portable washing facilities.

Right now most counties/town will ticket you for living in you car, and campgrounds are not available, nor cost effective.(Where are they suspose to go?)

Every county that does not comply will forfeit all funds from the federal government--period. That is if we can get a president/congress really interested in solving the problem?

As to the fear of crime and drug use in these designated areas--if there's a problem police can always be called. I'm sure they can be dragged away from revenue collection?

To the person I am replying to--apply to section 8 housing. It will be awhile, but get on the list if it's even open? Hang in there. We do care! I think most of us are in a state of denial? I do know this--I know too many homeless former Programmers? This community should be discussing the problem?

<comment><USER2> _but right now every county should have a piece of land reserved for homeless individuals. Just a place you can pitch a tent, access to out house, and portable washing facilities_

There is no way in hell I would camp there.

FWIW, I was working on becoming an urban planner when life got in the way. My incomplete bachelor's is in Environmental Resource Management with a concentration in Housing and I took a class on Homelessness and Public Policy as part of that. I was a subforum moderator and active participant for a time on the world's foremost planning forum.

I will reiterate that changing a lot of government policies will have to happen so that housing costs can come down. Right now, we have a lot of really crappy policies that actively inflate housing sizes and prices and create a growing divide between the haves and have nots.

 _To the person I am replying to--apply to section 8 housing._

Yeah, that's not going to happen. I will suggest that people like you are part of the problem. The only thing you know about me is that I am homeless, so you think a one off suggestion from you can solve significant and complicated problems. You are doing exactly what I described above: Assuming I am inept. That will not help me. It will not help anyone. It only deepens the problem.

 _We do care!_

There are people who genuinely do care. You aren't exactly coming across as one of them.

<comment><USER4> Why are you both saying "we need to work on putting together a better social safety net and we need to work on making a whole lot more affordable housing available" and dismissing Section 8 Housing, which, as far as I can tell from a reading on Wikipedia, is a social safety net that provides affordable housing? Is there something specifically wrong with Section 8?

<comment><USER2> Section 8 housing is rental housing. Like a high percentage of homeless people, part of why I am on the street is that I have a serious medical condition. I don't want to ever rent again. Having a high degree of control over my home is necessary for me to stay healthy and off drugs. I would rather remain homeless than give up my agency by entering a shelter or a government program that sets a low bar for quality of life because they figure that "beggars can't be choosers."

I am talking about a social safety net for _citizens_ that first and foremost respects them as people with a right to choose and a right to expect a high standard of living. Most American welfare programs are designed in a way that is enormously disrespectful and expects people to accept some pretty crappy things because in order to get help, you first need to be defined as _poor._ That's a terrible way to create a social safety net. Other countries have a better track record of providing a safety net for their citizens that allows them to access benefits while still middle class or regardless of their social class. America is pretty bad about not doing anything for you until after you are poor and then doing things that help keep your poor and actively discourage upward mobility.

Edit: I have no idea why this has been downvoted, but my medical condition is deadly and torturous. It is also incredibly expensive to treat with conventional medicine, like $100k/year and up. Compared to that, sleeping in a tent is a minor inconvenience. I have done much better since walking away from a crappy, mold-infested apartment. So I have no plans to go back to renting. Ever.

<comment><USER5> What do you propose to do instead of providing affordable rental housing? I can't imagine it'd be practical to provide free housing after all.

I guess I'm just a little confused because you definitely sound like you have a strong opinion on the matter and disagree with what other people think should be done but don't really get into specifics about what you think should be done.

It sounds like right now we have a safety social net for poor people, but you don't think that's a good idea. Does this mean that you think we need a safety social net for people who aren't poor as well? But if they aren't poor why would they need one? Perhaps I'm "part of the problem" so do enlighten me.

Also, at least based off your situation, it seems like what we really need isn't just affordable housing but treatment for those with mental illness. Despite the fact that I actually have health insurance I'm still hesitant to get treatment because it's so expensive.

<comment><USER6> > Does this mean that you think we need a safety social net for people who > aren't poor as well? But if they aren't poor why would they need one?

From what I've understood from threads like this, I think the idea is that social services designed for people in need should not try to prove that the person requesting actually needs it. It creates friction, and it's a waste of resources (money, people, time), and some people that need the service might not get it because the system fucks up every now and then.

If you'd open it up to whoever asked for it, people in need would naturally request it and get it, and people that don't wouldn't. If someone abused the system (and this is the big assumption IMO), the amount lost would probably be lower than what would have been spent trying to enforce requirements. So you'd solve the false negatives and would also spend less, and the system would be simpler.

Of course, I don't know much about this, this is what I've gathered from reading around.

<comment><USER2> From years of study and first-hand experience, defining "need" based on something _other than_ income is far more effective in helping people attain and keep a middle class lifestyle. Requiring people to first be able to meet a definition of poverty helps encourage people to fail and actively creates barriers to escaping poverty.

So, for example:

Affordable, good quality health care for all.

Price breaks on public transit passes for people who are handicapped (this actually exists and I think is a good example of something helpful).

Functioning public transit systems that give people options other than owning a car for how to get around.

An abundance of affordable, decent housing -- where "affordable" is not a code word for _slum housing_ but honestly just means the price is not out of reach of average folks with ordinary jobs. Lack of affordable housing is such a problem in some places that police, teachers and so on often cannot afford to live in the communities they serve. These are not people who are incompetent and looking for a handout, yet some communities have to set up special programs to help them buy a house or live reasonably close to work because our housing policies are so horribly broken.

Maternity leave and other policies that help women get and keep jobs and pursue real careers. I read a lot about this in my twenties. In America, women pursued the American historical position of "Don't tread on me!" and took the position that "I can too do the job if you just get the fuck out of my way." The result is that women who are without a man and without children make about 98% of what men make who have similar education and experience. But the minute you introduce a man or a child into the picture, American women make more like 2/3s what men make -- the same figure cited in the bible as what women were worth compared to men 2000-ish years ago. In contrast, European women have pushed for help in carrying the burden of bearing and raising kids and the result has been substantially more gains in terms of closing the wage gap and overall lower divorce rates.

The things you are suggesting are problematic because it actively disincentivizes working. I am not for just free handouts for poor people. I am for fixing the system so it stops actively creating problems and pushing folks off a cliff and then blaming them when their life falls apart and they can't figure out how to get it back together.

<comment><USER6> What are your thoughts on basic income?

<comment><USER2> I strongly suspect it is a recipe for disaster and have written about that here: [http://micheleincalifornia.blogspot.com/2014/09/nightmare- fu...](http://micheleincalifornia.blogspot.com/2014/09/nightmare-fuel-world- of-nothing-but.html)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Serious question: am I right when I think the first thing homeless people need is a place[1] to call their private home?

[1] tent, cabin, whatever provides enough shelter.

Edit: note the 'private'. Some people think shelter is enough. But I think you might need to have a private space to get your head straight.

<comment><USER8> On the surface, sure. Homelessness is the lack of a home, so giving someone who is homeless a home 'fixes' it.

But, as you seem to suspect, it's not that simple. There's an underlying reason for why that particular individual does not have a home in the first place, and that needs to be addressed to truly fix the problem. See Mz's comments in the rest of the thread for one example. Another is that there is a _high_ amount of correlation between homelessness and mental illness (in the States, anyway), and is a result of a lack of care in that area.

</comment></comment><comment><USER9> >is homeless, complains about the adversity, wants to go to college to make a better life

>studies fine arts

yep. sure is modern society

</comment><comment><USER10> Did Cleveland State make improvements to justify a tripling of tuition or did something else happen?

<comment><USER8> I can't tell you about that college specifically, but my tuition doubled over the course of my education, from 2004 -> 2009\. No major changes, really, and in fact, the CS department was basically dying.

Personal theory: it became easier to get loans, and schools know that students aren't exactly price sensitive. What's the difference between $2k and $4k a semester when you're paying it off years later anyway?

(Turns out, a lot, but not when every single influence in the world is _screaming_ that if you don't go to college, you're a failure.)

</comment></comment><comment><USER11> Hells yeah for chutzpah and grit.</comment>


Is there any good open source or free realtime aggregation engine? - <AUTHOR>

Is there any good open source or free realtime aggregation engine available today with possible java APIs.  Looking something close to OLAP like system. <comment><USER2> What specific kind of aggregation do you think of?

<comment><AUTHOR> Oops I should have been more specific with my question. Am looking to analyze the product sales data with respect to vendor, location, type etc. (although for now data volume is not that much but expect it to grow in a year or so) and need to generate reports. After googling found Pentaho Mondrian Analysis Services and Apache Hive. Need to find out which one will be better. If you know of any other product, please post it here.</comment></comment>


The mystery of the three hares (2009) - <AUTHOR> http://news.bbc.co.uk/local/devon/hi/people_and_places/history/newsid_8280000/8280645.stm <comment><USER2> Photos of the 3 hares motif in Devon Churches:

[http://www.chrischapmanphotography.co.uk/hares/haresmen.htm](http://www.chrischapmanphotography.co.uk/hares/haresmen.htm)

</comment><comment><AUTHOR> As per usual this has also been YouTubed:

An hour long lecture on the Three Hares by a Dr Sue Andrew: [https://www.youtube.com/watch?v=Z212jG- OtDQ](https://www.youtube.com/watch?v=Z212jG-OtDQ)

The Three Hares Project. Photographing a medieval roof boss, South Tawton, Devon 2001: [https://www.youtube.com/watch?v=qnTIZX_adZ0](https://www.youtube.com/watch?v=qnTIZX_adZ0)

</comment><comment><AUTHOR> Further articles on this:

New Scientist:

[https://www.newscientist.com/article/2082809-the-three- hares...](https://www.newscientist.com/article/2082809-the-three-hares-motif- is-an-ancient-mystery-for-our-times/)

and someone's passion project book:

[http://www.chrischapmanphotography.co.uk/hares/page7.htm](http://www.chrischapmanphotography.co.uk/hares/page7.htm)

</comment><comment><USER3> Wikipedia has some more information about the three hares: [https://en.wikipedia.org/wiki/Three_hares](https://en.wikipedia.org/wiki/Three_hares)

<comment><USER4> One of the Wikipedia sources quotes the Chinese expert as saying he thinks the motif came from Central Asia, East to China, and represent peace and tranquility.

> Guan Youhui, a retired researcher from the Dunhuang Academy, spent fifty > years studying the decorative patterns in the Mogao Caves. He believes the > three-hares image came to Dunhuang indirectly from the West (Central Asia) > by way of central China...

Since those instances were created at around 300-500 and later, seems like the very earliest instances of the motif came from the center of the known instances, which would be the eastern Mediterranean area. That also predates Islam and Buddhism.</comment></comment>


40% of Android apps expose sensitive back end information - <AUTHOR> https://codifiedsecurity.com/2017/03/13/40-percent-android-apps-expose-sensitive-information/ <comment><USER2> Interesting stuff, what was the methodology behind this?

<comment><AUTHOR> We grabbed a selection of 2,000 top apps from the UK Play Store that were built in Java.

We looked for strings that matched certain entropy patterns common to the services listed on the site.

For staging environments we looked at likely candidates from string variable names and patterns that looked likely to be staging environments.

It's really dreadful the amount of debug/useless code that gets left in production Android apps, and it tends to grow over time.

</comment></comment><comment><USER3> Finance apps?

<comment><AUTHOR> Some finance apps included development/staging details, yes. We didn't find any secrets from traditional finance firms (I expect this is more a function of them not using cloud services as much as other industries at this point in time).

One of the worst offenders in our sample was fintech companies, with obviously no real pentesting being done on the client side at least.</comment></comment>


Ask HN: What are the most beautifully written tutorials for beginners? - <AUTHOR>

5 years ago I spun up my first EC2 instance after reading the tutorial called "EC2 for Poets". I have never forgotten how well it was written for an absolute beginner. What are the most beautifully written tutorials for absolute beginners across a variety of technical subjects (besides codeacademy - which is amazing)? <comment><USER2> As an absolute beginner, I actually feel qualified to contribute to a Hacker News thread. Pardon my excitement! As to the question at hand, I have found Zed A. Shaw's "Learn Python the Hard Way" e-book to be extremely helpful. As far as I remember, it assumes no prior knowledge of programming and gets you started right away on tutorials, opting to explain everything after you have the given code up and running. It certainly helps to burn the syntax of a given language into your brain through repetition and has ample amounts of humor peppered throughout.

You'll find this book, as well as a number of other books in the series, all freely available at the site: [http://learnpythonthehardway.org/book/](http://learnpythonthehardway.org/book/)

</comment><comment><USER3> I'm really enjoying Canva's Design School tutorials that simply and elegantly take complete beginners through the basics of good design with a series of hands-on exercises.

[http://designschool.canva.com/tutorials/](http://designschool.canva.com/tutorials/)

</comment><comment><USER4> Why's (Poignant) Guide to Ruby

[http://mislav.uniqpath.com/poignant- guide/](http://mislav.uniqpath.com/poignant-guide/)

</comment><comment><USER5> Not sure about consolidated collections, but I found the Arc language tutorial to be exactly what I want in a tutorial: concise yet providing good coverage of the topic.

[http://www.arclanguage.org/tut.txt](http://www.arclanguage.org/tut.txt)

</comment><comment><USER6> Probably because the tutorials for beginners reach the most number of people (because advanced users are more likely to self-learn or use documentation, and because advanced topics are often specialized). Therefore there is the most value in making a good beginners tutorial.

Also, a tutorial for beginners can be written by someone who isn't an expert, but is a full or part-time professional writer or communicator. A tutorial for experts must be written by other experts, who don't have the time to learn and practice communications skills as much.

</comment><comment><USER7> Learn You a Haskell for Great Good is a fantastic introduction to Haskell in particular and functional programming in general. Definitely a great place to start:

[http://learnyouahaskell.com](http://learnyouahaskell.com)

</comment><comment><USER8> [Ruby on Rails] [https://www.railstutorial.org/](https://www.railstutorial.org/)

Without question this is the single best beginner resource for learning Ruby on Rails I have ever come across. I tried CodeAcademy and a few other similar websites, but just couldn't connect the dots. Michael Hartl does an unbelievable job explaining web concepts in a simple, concise manner.

I can't recommend this resource enough.

</comment><comment><AUTHOR> OP here. Thanks for all the great comments. This is becoming a good resource. Here is a list of tutorials that I had my undergrad students do. Some are from MSDNA... [https://docs.google.com/document/d/1hNliZd6kp1YBfDKQucnK8cV0...](https://docs.google.com/document/d/1hNliZd6kp1YBfDKQucnK8cV0lf- Qj3zU9esN3gf3UxY/edit?usp=sharing)

</comment><comment><USER9> I thought the Knockout tutorials were great: [http://learn.knockoutjs.com/](http://learn.knockoutjs.com/)

</comment><comment><USER10> The "Aviation Formulary" isn't really a tutorial, but it covers a ton of groovy GIS stuff in a way I haven't seen collected anywhere else, with worked examples.

[http://williams.best.vwh.net/avform.htm](http://williams.best.vwh.net/avform.htm)

A bit domain-specific, but fantastic.

</comment><comment><USER11> Arch's Beginner Guide will introduce you to the Arch way step by step, regardless of how familiar you are with Linux.

[https://wiki.archlinux.org/index.php/Beginners%27_guide](https://wiki.archlinux.org/index.php/Beginners%27_guide)

</comment><comment><USER12> Shameless plug, wrote this interactive tutorial for regular expressions for a friend who was new to them. Seems to have helped a few other people along the way too.

[http://regexone.com/](http://regexone.com/)

</comment><comment><AUTHOR> For complete beginners this is great! [https://blockly- games.appspot.com/](https://blockly-games.appspot.com/)

</comment><comment><USER13> Hands down my favorite on this front is probably the Clojurescript Koans site: [http://clojurescriptkoans.com/](http://clojurescriptkoans.com/)

</comment><comment><USER14> O'Reilly

Learning Perl

[http://shop.oreilly.com/product/0636920018452.do](http://shop.oreilly.com/product/0636920018452.do)

</comment><comment><USER15> K&R and the comp.lang.c FAQ.</comment>


The 4-Hour Hackathon - <AUTHOR> https://onscreenexpert.com/feast

<comment><AUTHOR> Full disclosure - it's not actually a 4-hour hackathon, but we're looking for mentors/programming experts to help out remotely, which can just be a few hours at a time.

All thoughts on the general idea would be awesome as well.</comment>


Why I design for my mom - <AUTHOR> http://startupsforupstarts.com/why-i-design-for-my-mom

<comment><AUTHOR> Would love to know what others think about this. While I think I'm on the right track with my mindset, I'm curious whether others have similarly put themselves in their moms shoes. I'd also love to hear whether people are seeing a shift in their user demographics to more older women, or if only the big boys are seeing such growth.

<comment><USER2> You know, I was all riled up at the title, because usually this crops up as "even my mum understand this" which is used to mean "even some computer illiterate dinosaur" can understand it. Which, you know, is stereotyping and fails to describe a lot of mums.

However on actually reading the post :-) I realised I was unfair, since in this case your mum stands in for an active middle-aged internet user who is not a geek, but reasonably sophisticated. So, uh, carry on.

To make amends, I'll throw in some advice:

People who think middle-aged women somehow can't handle complexity are generally mistaken - look up some coupon sites, these women are explaining strategies that make your head hurt. So don't think it is necessarily a question of avoiding _complexity_ when dealing with that population. In my opinion the big driver in that demographic is _utility_. You have to get to the point where it is obvious what your product can do for them as quickly as possible. They will take the complexity, if they believe it is necessary, but they don't want to waste their time.

[Edit: Forgot to say, obviously never base all your feedback on one person, no matter how typical you think they are.]

<comment><AUTHOR> Absolutely true. If the utility isn't immediately obvious, your product will flounder. What I think this means is that utility can sometimes be rendered less obvious by complexity, if both aren't considered holistically. Goals is most certainly complex: dreams are superordinate to goals, goals are superordinate to tasks. But for her the presentation all flows and makes sense. The complexity is not overwhelming, because it accords with her mental models.

I also like to try to guide wherever possible. Even the most advanced users will appreciate extra guidance, be it tooltips, choice of words, or just the overall layout.

And yes, of course feedback shouldn't be based on a single person. That's my fault for implying it should. My point was simply that most developers design for themselves, and releasing yourself from that mindset is a good thing to do. That said, agile and metrics-based development is really the way to go. Get your MVP out there fast and iterate quickly.

</comment></comment></comment><comment><USER3> Actually, I _have_ to design for my mom -- I built my latest niche product for notary publics. :)

The funny thing is that I knew she was doing notary stuff on the side for a long time now. I simply didn't realize she was using spreadsheets to manage it all.

The UI is _really_ clunky still but most of that is a casualty of releasing something "ghetto, but useful" ASAP. I'm in the process of rebuilding it right now and it'll have a much prettier/useful interface rolled out in the next 3 weeks or so (though, mom's account is running the latest version of the UI). :)</comment>


Docear – The Academic Literature Suite - <AUTHOR> http://www.docear.org/

<comment><USER2> So I see you can categorize papers, but can I tag them? Organizing my papers isn't a partitioning problem, its a tagging problem - a paper might be on several topics, and I want to get views of "e.g., all the papers on block- based languages".

<comment><USER3> I was wondering the same. It knows the concept of attributes, maybe you can define an attribute "tag"?

I like they compared it to Zotero, I love Zotero and it is perfect for keeping a personal, curated library for anything.</comment></comment>


Mountain unicyclists put an extreme twist on the most whimsical of devices. - <AUTHOR> http://www.nytimes.com/2008/07/27/sports/othersports/27unicycle.html?partner=rssuserland&emc=rss&pagewanted=all

<comment><USER2> Trevor does this. In fact, you can see his mountain-uni hanging on the wall in the background of a couple of the pictures in the slideshow on the YC frontpage.

(Hmm. A naturally occurring 6-deep prepositional phrase.)

<comment><AUTHOR> Does he do it with the Segway-type version he built!?</comment></comment>


CNN live tweets while driving the same route as Broder (NYT) - <AUTHOR> https://twitter.com/PeterDrives <comment><USER2> They made it!</comment>


Son of ACTA: meet the next secret copyright treaty - <AUTHOR> http://arstechnica.com/tech-policy/news/2011/03/son-of-acta-meet-the-next-secret-copyright-treaty.ars <comment><USER2> "The US government, still trying to secure final passage for the drafted-in- secret Anti-Counterfeiting Trade Agreement (ACTA)" and "Once again, the chapter was drafted in secret and has been classified for at least four years after negotiations end."

Like a secret law? I thought supposedly classically liberal and democratic countries weren't supposed to have those.

The whole DMCA thing disgusts me. Once I buy something, then I should be held in good faith not to infringe on copyright rights. If I do, then I could see issues, but not before. I suppose the problem is that we've redefined 'infringe' to mean making possible for anyone to infringe, no matter what my intentions were.

This is as if we were to hold gun manufacturers responsible for all gun injury, or auto manufacturers responsible for all car accidents, or construction workers responsible for earthquake damage, or office suppliers responsible for eyes poked out by thrown pencils, or &c., &c., &c., the inane list goes on and on...

Not a lawyer, but required to say so by lawyers.

<comment><USER3> >Like a secret law? I thought supposedly classically liberal and democratic countries weren't supposed to have those.

This is the US we're talking about though, so I don't get your point.

<comment><USER2> Correct me if I'm wrong, but I was under the impression that both ACTA and TPP were primarily written by the US. In any case, the US is involved, and supporting secret laws is pretty bad for a country that keeps going on about how they support democracy everywhere.

Edit:

      This *is* the US we're talking about though, so I don't get your point.

Did this say 'is' when I first replied? I replied as if it said 'isn't.' It is possible I managed to misread, but I'm fairly sure...

<comment><USER4> I believe he's being sarcastic.

</comment></comment></comment></comment><comment><USER5> As I said on Slashdot: I bet the MBAs who were trained to control didn't help. Nor does "shareholder value". Any idea on how to finally fix all this?

<comment><USER6> "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Use them in that order."</comment></comment>


Ask HN: Review my startup (vivapixel.com) part 2 - <AUTHOR>

Hey folks, after reading this http://news.ycombinator.com/item?id=890382 I thought that I would ask you to review my site again. Last time i asked was quite a while ago and since then there have been several improvements and enhancements to the site.
Key changes:
-Better UI design/color/layout
-Added photo bookmarking
-Many other changes (low level stuff to make the site faster and safer)
I look forward to your feedback. thanks <comment><AUTHOR> Here's a clickable link <http://www.vivapixel.com></comment>


From JavaScript to ClojureScript [video] - <AUTHOR> https://www.youtube.com/watch?v=8UYa8PV3CXQ

<comment><AUTHOR> Hey, I've started a new screencast series at the beginning of this month. It focuses on showing concepts in Clojure through live-coding.

Like all software, this series is a work-in-progress -- tasteful feedback on the content and presentation is appreciated!

See the video's comments on youtube for corrections to mistakes I made while recording.

<comment> atom-morgan A few things: I just subscribed to your channel, watching you code is very relaxing, and you just introduced me to some new music. I've already purchased one song - the one in the video.

One of my goals this year is to work through a few Clojure books. Watching you write code in JS and then Clojure is great since I spend nearly all of my coding hours at work in JS. So to see the two side by side is really nice.

I'll try and watch some of your other videos this weekend and provide some additional feedback as well as possible content for future videos - <USER2> you're looking for feedback that specific. Thanks for the video!

<comment><AUTHOR> Thanks, I'm really happy that you like it :D

Regarding feedback: I read every comment on youtube and patreon message. If anything is confusing, doesn't have enough context to stand on its own, or goes by too quickly, please let me know! Or any other thoughts you might have.

I'm hoping to refine this format of screencasts over the coming year, and sincere feedback is surprisingly hard to come by! Any thoughts you have are appreciated.

</comment></comment></comment><comment><USER3> It's really great! I like such "comparative language studies" very much. I'm working on something similar for JavaScript and LiveScript with focus on functional programming techniques: [https://klibert.pl/warsawjs- talk/code.html](https://klibert.pl/warsawjs-talk/code.html) but it's static text. On the other hand it's Org Babel document (just replace .html with .org to see the source) which makes it easy to play with for Emacs users. Screencast would be much better format in terms of getting people to focus, but I was too scared of typos, pauses and outright errors I'd make... In short: good job!

<comment><AUTHOR> Thanks! I'm really glad that you enjoyed the format.

At the beginning of this month I create a standard speaking/coding screencast and I didn't love it. I opted to cut out speaking and focus it entirely on live-coding.

I think it's worth developing further, I'm trying to continue making this series full-time this year.

Next month I'll be launching an app where full-resolution copies of previous screencasts can be purchased, but if you're interested, donors on patreon are emailed copies early on release days. [http://patreon.com/doingcomputers](http://patreon.com/doingcomputers)

Thanks again!</comment></comment>


Hyperapp – A tiny framework for building web interfaces - <AUTHOR> https://hyperapp.dev/ <comment><USER3> I have tried Hyperapp some time ago. It's usable for small apps, but the lack of ecosystem makes it unfit for anything larger -- as is usual for all niché JS frameworks.

Funnily, the "ecosystem" page contains just Lorem Ipsum ([https://hyperapp.dev/ecosystem](https://hyperapp.dev/ecosystem)) and the Awesome Hyperapp section for V2 is almost empty ([https://github.com/jorgebucaran/awesome- hyperapp](https://github.com/jorgebucaran/awesome-hyperapp))

<comment><USER4> Is niché a portmanteau of niche and cliché?

<comment><USER5> No, it's niche with a French accent

<comment><USER6> Fun fact: niche is a French word that doesn't have an accent. So niché is the heavy metal ümlaut version.

</comment></comment></comment></comment><comment><USER7> So I have extensively used hyperapp (1 and 2) for hybrid mobile applications that run the cab of big rigs. We actually won best in show this year at Freight Waves for our two apps.

These are medium/larger apps, with lots of functionality, need to hook into native device features (done with ionic capacitor, and custom plugins), and need to be fast, robust, and flexible. Hyperapp has allowed all of those things.

Hyperapp can and will work, with larger applications, but hyperapp does not have super strict "guide rails" like other more popular frameworks do, so its up to you to design, and implement a clean code base. It ships with minimum overhead, and you can either roll features you need, or see if someone in the community has created them.

I have worked with angular (1,2,4,6) and react for quite a few projects, and I actually work faster, and end up with a better end product using hyperapp. Its an amazing little framework. Sure, not having stricter guide rails you can write very poor apps in hyperapp, it will let you do stuff poorly, but if you play to its strengths, and get comfortable with it, it really shines.

<comment><USER8> Hey there, really happy to hear of the success you've had with Hyperapp. I've played with Hyperapp v1 in the past for small toy projects, and it was relatively easy to become productive with. I'm wondering if you have any open toy projects or boilerplate you could share for v2, as I'm looking to jump back on it when I get the chance, and would love to see what a scalable project skeleton looks like.

<comment><USER7> I do not have anything that is open as of now (but about to start a new project soon)

I would check out [https://medium.com/hyperapp/a-walk-through- hyperapp-2-b1f642...](https://medium.com/hyperapp/a-walk-through- hyperapp-2-b1f642fca172)

to get your toes wet though, good resource, also feel fee to join the hyperapp slack [https://hyperappjs.herokuapp.com/](https://hyperappjs.herokuapp.com/) nice community and super helpful.

</comment></comment></comment><comment><USER9> Bit of a Hyperapp fanboy here, so bare with me.

First, I think Hyperapp can make both small and big applications, opposed to u/PufPufPuf's opinion. A lot of people have this opinion because they are more familiar with v1's wired-in actions, which can become quite unruly. In the latest version, actions are decoupled, and can be organized/extracted however you see fit.

I've made a handful of applications in both v1 and the current released Hyperapp, and they work very well. If you want to see the latest Hyperapp in action, you can check these out:

\- A timer for mob programming: [https://github.com/mrozbarry/mobtime](https://github.com/mrozbarry/mobtime)

\- A canvas game, using Hyperapp for dom/state: [https://github.com/mrozbarry/smash](https://github.com/mrozbarry/smash)

\- A router for Hyperapp: [https://github.com/mrozbarry/hyperapp- router](https://github.com/mrozbarry/hyperapp-router)

I have a handful of older youtube videos regarding v1, you can check them out here:

\- Intro to Hyperapp (v1): [https://youtu.be/uWIyjI8nkz0](https://youtu.be/uWIyjI8nkz0)

\- Hyperapp (v1) forms and localstorage: [https://youtu.be/qpt6aaMxm1E](https://youtu.be/qpt6aaMxm1E)

\- Unit testing hyperapps (v1): [https://youtu.be/5wvPUj-- HaA](https://youtu.be/5wvPUj--HaA)

Note, they are outdated, but there isn't much on youtube about Hyperapp in general.

One thing to keep in mind is the naming. A lot of people talk about "Hyperapp" as the first version, and "v2" as the current version, but this is wrong. It's more like "v1" (legacy) and "Hyperapp" (current). It gets confusing, because not everyone is on the same page with that, but this the the naming Jorge (primary author/creator of Hyperapp) has mentioned several times.

<comment><USER10> > "A lot of people have this opinion because they are more familiar with v1's > wired-in actions, which can become quite unruly."

u/PufPufPuf only mentions the lack of ecosystem, nothing about the wired-in actions/etc, so it's odd that you defend v1 vs v2 instead of the lack of ecosystem here. This should probably have been a reply to that thread as well because otherwise it's two very unrelated comments in the list.

<comment><USER9> Yeah, I should have split things into a reply and a separate thread for the other stuff. That said, I didn't have any comment on the ecosystem - there's definitely a lack of userland things for Hyperapp, and that's for a number of reasons, the biggest being the latest is still in a bit of a transition period from v1, and as a community we didn't think someone would be posting about Hyperapp and make it to the top of hacker news. That really put us on the spot to try and get on here and explain the state of Hyperapp since we're probably more in a release candidate/late-beta situation rather than a full blown release.

</comment></comment></comment><comment><USER11> Someone got inspired by re-frame, I see :) I like the approach. Wondering if there's a way to get ever closer to hiccup (without having to resort to JSX)

Also, letting the framework decide if a function inside the markup should be called or not gives opportunity for more optimizations that go beyond VDOM diffing. That would require an even more declarative approach.

i.e. [h1, {}, [MyComponent, {}]]

vs.

h("h1", {}, MyComponent({}))

If the framework figures out that MyComponent wasn't changed, it can re-use the VDOM nodes.

<comment><USER12> Yep, there's a feature called Lazy (will be renamed to memo for the official release) that allows you to do just that! :)

</comment></comment><comment><USER13> Been using this for a while and loving it - it feels like functional programming for GUIs ("describe what you want the end result to look like, and the framework makes it happen" as opposed to "describe what steps to execute").

I'm pretty sure a lot of frameworks have similar mindsets, but Hyperapp is the one that I found works with the fewest headaches :P (as opposed to eg React, where I spent hours simply trying to untangle the knot of thousands of dependencies before I could get step 1 of the quickstart tutorial to compile...)

As an example of how trivial problems require trivial code:

[https://github.com/shish/divetools2/blob/master/src/screens/...](https://github.com/shish/divetools2/blob/master/src/screens/mod.tsx)

[https://scuba.shish.io/#screen=MaxOperatingDepth](https://scuba.shish.io/#screen=MaxOperatingDepth)

</comment><comment><USER14> I'm a big re-frame fan from the Clojurescript world so this all looks rather familiar. For me it's a great framework and worth learning Clojurescript for.

Seeing the h() function makes me realise how much I miss Hiccup syntax for HTML and your component tree, especially with editor support for parens it's a joy. But it looks nicer than JSX.

I'm going to give Hyperapp a try, I like the small size aspect especially, and familiarity of the overall architecture, my fear is that if you're going off- piste enough to avoid the React/Angular well trodden track on an app, you might as well go the whole way and use Re-frame which is very pragmatic, with JS interop it's possible to do pretty much anything you want. And whilst the type system and compiler of Elm is nice, the slightly more 'infamous' parts of restrictions to JS extensions make it more limited in the real world.

</comment><comment><USER15> Haven't been using react because of the JSX, but is this really where we are heading? [https://hyperapp.dev/tutorial#rendering-to-the- dom](https://hyperapp.dev/tutorial#rendering-to-the-dom)

Looks like som obfuscated JS-code..

<comment><USER16> Mithril was doing this exact thing before React became big - it's what we're moving away from (with JSX), not where we're heading.

<comment><USER17> Going back to PHP and ASP you mean.

<comment><USER18> Text templates are the technology for web development. They are so much better than anything else that there's no comparison.

There are some bad templates implementation, and some good ones. The original PHP and ASP are bad. But that doesn't mean templates are bad.

<comment><USER17> Text templates are a good idea, placing them into the middle of JavaScript code, not really.

<comment><USER19> I absolutely disagree, but I also feel it's unfortunate that HTML, CSS, and SQL aren't first-class citizens in most languages. It's strange to treat things backed by entire standards bodies and with fully developed ASTs as plain-text.

It seems unnecessarily limiting, and I'm not sure why; For the sake of history? "Division of Concerns"? How is it that using libraries meant for string manipulation upon a standardized format not a concern in and of itself?

The reason JSX, Mithril, PHP's template tags, ASP, Mustache, Twig, etc, exist is because we want to generate HTML - a language that has been standardized for decades - so why are we still playing around with string manipulation tools?

<comment><USER18> It's an evolutionary constraint. Text templates are initially much more useful than HTML and CSS ones, so people adopt the first, despite a bigger potential usefulness of the later.

The tendency for SQL is even weirder, it's for replacing it with languages that are much less useful for querying data.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> If curious see also

2018 [https://news.ycombinator.com/item?id=17126670](https://news.ycombinator.com/item?id=17126670)

2017 [https://news.ycombinator.com/item?id=15467819](https://news.ycombinator.com/item?id=15467819)

2017 [https://news.ycombinator.com/item?id=15264053](https://news.ycombinator.com/item?id=15264053)

2017 [https://news.ycombinator.com/item?id=15178535](https://news.ycombinator.com/item?id=15178535)

2017 [https://news.ycombinator.com/item?id=14629414](https://news.ycombinator.com/item?id=14629414)

</comment><comment><USER21> In the tutorial it says: "In this tutorial we'll stick with `h` to keep it simple and close to the metal." I'm pretty sure they put that in there just to aggravate the HN crowd.

<comment><USER12> There's a a JSX-like ttl for Hyperapp too, check it out:

[https://github.com/zaceno/hyperlit](https://github.com/zaceno/hyperlit)

</comment></comment><comment><USER22> Just use [https://preactjs.com/](https://preactjs.com/) and call it a day

<comment><USER23> What are the caveats? Why doesn't everybody use preact instead of react?

<comment><USER22> There's not many. I used it for several years on theoutline.com and it was great

</comment></comment></comment><comment><USER24> I love it, but I actually stuck with version 1, which was way more intuitive for me.

Just a side note, I'm not fulltime front-end, so keeping up with modern frameworks is out of my capacity.

It's great for smart components to my standard multi-paged systems, but I used it even for small PWA applications.

<comment><USER25> I resisted the change to v2 for a long time. In the end I found that v2's state management is much better, so it might be worth a look for that alone.

<comment><USER24> I read about it but it just did not click as V1 did. Also I will not rewrite old code just for sake of change and I want all system to be on same framework if possible. I may actually do my own fork where only difference will be passing root state and root actions in addition to partial ones, which will fix great amount of issues I have.

<comment><USER25> Agreed.

The lack of lifecycle events in v2 complicates things a great deal for seemingly no reason. Subscriptions and Events are similar enough that they could have become a single thing, instead of having two highly similar but not-quite-the-same things to grok. The tuple syntax it uses is very strange coming from v1.

I wish I could call it a strict upgrade instead of saying "some things are worse, but other things are better."

<comment><USER12> It's my fault for not fully understanding the functional universe I was getting into when I first started working on Hyperapp. The latest Hyperapp is more strict, but it's all in good measure. Lifecycle events are impure, that's why they're no-good.

I can tell you that Hyperapp is not for everyone. If you want to write pure, immutable, functional JavaScript and think hard about client side app architecture (unidirectional state management, controlled side effects, toggleable subscriptions), then you'll love it. I also suggest looking at Elm while you're at it.

If you are looking for a more accommodating, meet-in-the-middle kind of approach where you can mix programming styles, you might be better served by, say, P/React.

<comment><USER26> If we talk about functional API, did you consider providing a push method, like with a Promise, to express the updating of an effect or a subscription ?

(the function 'update' in the code below)

      app({
        init: 0,
        view: state =>
          h("div", {}, [
            h("h1", {}, state),
            h("button", { onclick: (state, event, update) => {
              window.setTimeout(() => update(state => state - 1), 1000);
            } }, "subtract"),
            h("button", { onclick: state => state + 1 }, "add")
          ]),
        node: document.getElementById("app")
      })

<comment><USER12> We built it into the framework, if you happen to be familiar with Elm, this should make sense right away, but here's how you'd write something like that using Hyperapp:

        import { h, app } from "hyperapp"
        import { delay } from "@hyperapp/time"

        const Decrement = (state) => state - <USER2>

        app({
          init: 0,
          view: (state) =>
            h("div", {}, [
              h("h1", {}, state),
              h("button", {
                  onclick: (state/*, event*/) => [state, delay(100, Decrement)],
                }, "subtract"
              ),
              h("button", { onclick: (state) => state + 1 }, "add"),
            ]),
          node: document.getElementById("app"),
        })

See how you never actually called setTimeout as that would be a side effect.

Instead, we have "controlled effects" in Hyperapp. This `delay` function doesn't even call setTimeout itself, but return an object that tells Hyperapp how. Just like how `h("button")` or `<button>` with JSX doesn't actually create a button, but an object representation of it.

Finally this part: [state, delay(100, Decrement)], only placed here for convenience (as you'll usually want that in its own action) is how you tell Hyperapp to do the effect when the button is clicked. This is the same (model Cmd) continuation pattern used in Elm.

<comment><USER26> I'm familiar with Elm but i think the model of Hyperapp is better than the [state command] pattern. This is how i see Hyperapp, the event part of Hyperapp is not about commands, it's about transition functions, functions that takes a before state and returns an after state. Hyperapp doesn't let the user to control the state by itself.

But there is worst, the problem with the pattern [state command] is that it doesn't work well with async method, because at the time the command is called, the state which is passed alongside the command and the state maintained by Hyperapp may be different.

With your example, the issue is that Decrement may be called on a previous state and not on the actual state.

The idea of the updater is to provide the function that takes the transition function as parameter, so delay will be written that way

      function delay(updater, timeout, fun) {
        window.setTimeout(() => updater(fun), timeout);
      }

If you want to decrement the state after a delay using the state at that time

      h("button", {
        onclick: (state, _, updater) => delay(updater, 100, Decrement),
        }, "subtract")

(from the Hyperapp perspective, the event listener return undefined so you don't have to update the state at the time the event listener is called)

and if you want to decrement the state using the state at the time the user click

      h("button", {
        onclick: (state, _, updater) => delay(updater, 100, _ => Decrement(state)),
        }, "subtract")

The other benefit is that because delay() takes an updater as first argument, it's clear that the function delay does a side effect. Conceptually, the idea is that instead of trying to hide the side effect, you make it clear to the developer (more like Haskell does).

<comment><USER12> My example actually has no issues, but [here is an example][1] so you can confirm that. I included the implementation of `delay` there as well so you can also see what happens behind the scenes.

\---

So, in Hyperapp there are no async/await functions. Or Promises. Can't use functions that create side effects. Can't use setTimeout, setInterval, new Promise, fetch, add/removeEventListener, etc.

delay(100, Action) looks familiar to setTimeout, but it's just a function that returns an object that tells Hyperapp what to do. It doesn't do anything by itself. You can write your own delay function too if you want as long as you give Hyperapp what it wants.

The state becoming stale is never an issue in Hyperapp, because you get a fresh copy of it inside actions, which is the only place where you can "update" the state.

[1]: [https://codesandbox.io/s/hyperapp-minimal-counter-with- effec...](https://codesandbox.io/s/hyperapp-minimal-counter-with-effect-for- hn-old-dude-evvm4?file=/src/index.js)

<comment><USER26> Thanks for taking the time to explain me how it works. So you're right that you can not use a previous state.

And if i want to get the dispatcher directly, i can write a helper function

      function effect(fun) {
        return state => [state, [dispatcher => fun(dispatcher)]]
      }

and use it to access to the dispatcher/updater

      h(
        "button",
        { onclick: effect(updater => setTimeout(() => updater(Decrement), 1000)) },
        "subtract"
      )

Thanks a lot !

<comment><USER12> Basically, yes!

In practice, we don't advocate users to reach out for dispatch, as Hyperapp intends to provide all the fx/subscriptions building blocks you need to create the right abstractions and stay within the safe, declarative side of things.

The reality is, though, that crafting these building blocks takes time and thought, so we don't have them all yet. But people in the community have created fx/sub libraries that are already available, see e.g. this one: [https://github.com/okwolf/hyperapp-fx](https://github.com/okwolf/hyperapp-fx) that

Cheers!

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> I've used this for building the browser extensions for my app [1].

It is simple, easy to understand and easy to reason with. However, I would recommend this only for small apps. As soon as your app's features/complexity increases, you end up writing a lot of biolerplate code that libraries like Vue or Preact already handle you for.

[1] [https://www.emailthis.me](https://www.emailthis.me)

<comment><USER28> Your open source browser extension framework was really helpful to me a few years ago!

<comment><USER27> Glad you found it useful.

I had sort of neglected it for a while, but during the course of the lockdown, I have started working on a major rewrite - replacing Gulp with Webpack, adding support for Edge, etc. Will release it soon :)

</comment></comment></comment><comment><USER29> To me every JavaScript framework feels to me like it wants to reason about components as data, ala Hiccup: [https://reagent- project.github.io/](https://reagent-project.github.io/)

<comment><USER12> Reagent is amazing, thank you for sharing it.

</comment></comment><comment><USER30> Does modern web development just completely abandon the idea of "separation of concerns"? Looks like content is freely mixed with markup and logic and results in a horrible, difficult-to-read mess of code.

<comment><USER31> There has never been any separation of concern in web development. Just because you put your scripts, HTML and CSS in different files doesn't mean they are separated.

<comment><USER30> Isn't that the definition of separated? If you want to edit content or markup, you open the HTML file. If you want to edit business logic, open PHP or JS. And so on.

<comment><USER32> Yeah but then your JavaScript spews out unholy tendrils that mutate the DOM and dynamically add/remove CSS classes and style attributes. Separating HTML/CSS/JS made a lot of sense for web sites but separating by component makes more sense for web applications.

</comment></comment></comment></comment><comment><USER33> It seems that scrolling is somewhat broken. Scroll position under one route affects position in others.

<comment><USER34> That was enough to make me not consider using Hyperapp.

<comment><USER12> Yeah, the site is a WIP, but that should be fixed soon when V2 is officially out.

</comment></comment></comment><comment><USER35> How is it 2x faster than react? Where does this claim come from?

<comment><USER36> A lot of other frameworks/libraries are faster than React. I know React used to be touted as the fastest option, but the reality is that it isn't.

</comment></comment><comment><USER37> Just shows a blank page without JavaScript. Does Hyperapp have any way to render out an HTML fallback if JS doesn't load?

<comment><USER12> That's an issue with the site that'll be fixed when Hyperapp is officially released.

</comment></comment><comment><USER38> Dang, I registered hyperapp domain because I thought it was a good name and wanted to build something cool there. Like all side projects it's not about the idea but the execution. I'll put this in my bin together with slackday (Should have registered slack:)

On topic: This looks interesting and I Will be giving it a try. Well done!

<comment><USER12> Do you happen to own hyper.app?

</comment></comment><comment><USER39> React was made in 2013 and is pretty old at this point. How does Hyperapp compare to current tech like Svelte?

<comment><USER12> This deserves a much better answer, but I'll just say this for now. Svelte is declarative/imperative (but mostly imperative) and also not based on functional principles. React is definitely more on the declarative side. And Hyperapp is essentially Elm in JavaScript, so it's as declarative/functional/immutable as the definition allows for.

Maybe the person that said Svelte was more declarative was only familiar with an older incarnation of Hyperapp that wasn't completely based on functional principles, or maybe they're using a more loose but inaccurate definition of declarative (kind of like how people often say "theory" when they actually mean "hypothesis").

<comment><USER40> What do you think the advantages and disadvantages are? I remember briefly looking into Hyperapp and mostly liking it, but still wasn't sure which JS framework is the best choice (the other one I liked was Vue).

Some time after that I learned about Svelte and very quickly concluded that this would be my choice, everything just feels right about it. For the record, I've only done a small project in Svelte.

<comment><USER12> That's fine. If you're already happy with Svelte, I encourage you to explore more with it. Try building a couple of non-trivial projects and keep learning about your craft. If you're also into computer science, I recommend you look into functional programming if you haven't done so yet. Then look at Svelte again. Try React too. Check out Elm.

I can tell you that Hyperapp is not for everyone. If you want to write pure, immutable, functional JavaScript and think hard about client side app architecture (unidirectional state management, controlled side effects, toggleable subscriptions), then you'll love it.

If you are looking for a more accommodating, meet-in-the-middle kind of approach where you can mix programming styles, and don't want to think much about those things I mentioned above, then React, Vue, Svelte are all great choices.

V2 will be released in a few months, so do circle back to Hyperapp then to see how you like it again.

<comment><USER41> what else is missing other than docs? in hope you won't remove the current state, just because you don't consider it released yet :)

<comment><USER12> Finish the site and docs, merge the minimizations branch (has memory performance improvements, and brings it down to 1690 bytes gzipped / 1528 bytes brotlified total), add tests, then we can officially proclaim V2.

Definitely not planning to remove the current state or anything haha.

</comment></comment></comment></comment></comment></comment><comment><USER42> When last I checked, Hyperapp was basically the elm architecture implemented in JS, a gateway drug.

<comment><USER43> I had the impression it was the other way around.

People starting with Elm, love the idea, but not the ecosystem, and come back to JS in the end.

That's how Redux was created.

</comment></comment><comment><USER44> I wish people would stop demonstrating new languages or frameworks using fonts with ligatures.

"Surely, you couldn't use an actual arrow here... right?"

I find myself having to copy and paste the text to find out for sure.

</comment><comment><USER45> Love the website aesthetic!

</comment><comment><USER46> This page does not inspire confidence in the framework.

I don't need a non-ui piece of software to have the slickest site... but no lorem ipsum please.

<comment><USER12> I put it there, so I apologize for it. We were in the middle of a rewrite while working towards the official V2 release and weren't expecting to be on HN right now haha. Thanks for chipping in!

<comment><USER46> Ouch. that's rough.

I've seen some incidents before where backend frameworks were posted before they had things like authentication ready.

</comment></comment></comment><comment><USER47> What are the difference with Mithril.js? Both seems to embrace the same philosophy in almost the same way. Or am I missing something?

<comment><USER12> They're similar, but Hyperapp is purely functional and more comparable to Elm.

</comment></comment><comment><USER48> I love hyperapp! It has very few concepts to learn, and the source code is less than 500 lines. Sadly its ecosystem is non-existant.

</comment><comment><USER49> Just another transient DOM API abstraction library

<comment><USER50> Almost like the DOM Web API isn't useful for its intended purpose anymore and should be replaced or built upon to avoid all this abstraction churn. Why is simplicity the enemy of the Web APIs? Why is everything useful left to user- defined dependencies? Are the spec creators even checking to see what their code looks like when people have to cobble it together to create something useful? I suspect they are NOT.

<comment><USER12> Hyperapp only makes sense if you want to write immutable, purely functional SPAs in JavaScript. There's no Web API or native abstraction for that. And if your site was only content, then I'd say why even bother with JavaScript.

<comment><USER50> Okay, so there's no Web API or native abstraction for what? Immutability? There is, but it's somewhat semantically obtuse to express natively with Object freezing, not even to mention some other variably-efficient jiggery- pokery with proxies or something (or maybe there's a new language feature for this that I've forgotten about, so many after all, or was it a proposal?). Purely functional single-page application: oof, such a mouth-full. Can mean so many things too. So this entire new abstraction is for a front-loaded SPA?

Maybe the Web should be reinvented, slightly at least. Maybe it would be a good thing if Web Assembly in conjunction with HTTP3 or something akin to it ate the whole beast, ecmascript and all.

<comment><USER12> Just saying "purely functional SPAs" was lazy, but it's usually enough to convey what makes Hyperapp different from other frameworks like React, etc. Let me try harder.

There's no native API for representing apps as finite-state-machines (Moore style) [1]. Admittedly, we could do a better job at explaining why you should care.

Hyperapp actions (Elm messages) correspond directly to FSM "events". Hyperapp effects (Elm commands) correspond directly to FSM "actions". The "single- global-state" corresponds to the fact that an FSM is always in just one of a number of "states".

Hyperapp is FSM architecture for JavaScript apps.

It is also bundled with a VDOM implementation optimized for immutability, e.g., you must derive your UI from the state, can't produce uncontrolled side effects, and can't use traditional DOM events, instead you think of every UI interaction as a state transition.

One more cool thing about Hyperapp is subscriptions. An abstraction to toggeable event streams: think bidirectional effects, e.g., global mouse/keyboard events, time, animation frames, geolocation.

[1]: [https://en.wikipedia.org/wiki/Moore_machine](https://en.wikipedia.org/wiki/Moore_machine)

<comment><USER49> > can't use traditional DOM events

Wtf are you doing man?

<comment><USER12> Can't use DOM events to create side effects. What we do is define UI interactions as state transitions. Transitions allow you to say [nextState, myEffect] to update the state and create a "controlled" effect (just an object representation of a side effect, very much like how VDOM uses objects to represent DOM nodes). Effects in Hyperapp are the same as Elm commands.

</comment></comment></comment></comment></comment></comment></comment><comment><USER51> Blank page when JS is disabled. :/

</comment><comment><USER52> How does this compare to Stimulus?

<comment><USER12> Stimulus is not so much concerned with rendering HTML. Hyperapp is almost exclusively focused on rendering HTML and client side application architecture (state management, controlled side effects, subscriptions).

It's more comparable to Elm than React, Vue, Angular, Svelte, etc., since it's based on functional principles and you can only write pure, immutable code.

</comment></comment><comment><USER53> Now it looks like Elm

<comment><USER12> Exactly! And the latest version (which is not officially out yet) is even closer to Elm that the first version ever was.

</comment></comment><comment><USER54> Looks like mithril

</comment><comment><USER55> so.. a lighter react?

<comment><USER12> Preact would be the lighter React. Hyperapp is more comparable to Elm.</comment></comment>