An Open Letter to HN from EFF, Demand Progress, and Cory Doctorow - <AUTHOR> Dear HN,
Two years ago you joined in fighting back against dangerous Internet censorship legislation during the SOPA protests. You blacked out your websites, lobbied your employers to do the same, and started creative campaigns to defeat a threat to freedom on the Internet.
As was often the case, Aaron Swartz said it best: "[We defeated SOPA] because everyone made themselves the hero of their own story." [1]
In the last 6 months it's been revealed that government agencies, like the NSA and GCHQ, have twisted laws to create the legal and technical infrastructure for mass surveillance. Surveillance precipitates a dark form of censorship: people become afraid to speak freely. It undermines our security and restricts our ability to communicate privately.
With SOPA we had a clear goal: defeat a specific bill. In this case, we have promising bills (like the USA Freedom Act) and terrible ones (the FISA Improvements Act). But if progress is to be made, we need to send a message to our legislators that we won't let the Internet be turned into a tool for mass surveillance. We need to push them to have the courage to support comprehensive reform.
Today, on the eve of the anniversary of Aaron's death, we'd like to ask you to step up once again in defense of a free, open and secure Internet. In memory of Aaron, we'd ask that you to join us in a month of activism, culminating in a day of action on February 11th.
Our organizations—Demand Progress, EFF, and others—will be doing everything we can. We're creating a banner that sites can add on the day and built a campaign website [2]. But for this to be a real success, each of us must again be the hero of their own story.
Will you join us?
Rainey Reitman, Activism Director, EFF
David Segal, Co-founder, Demand Progress
Cory Doctorow, Co-editor of Boing Boing
[1] http://www.democracynow.org/2013/1/14/freedom_to_connect_aaron_swartz_1986
[2] https://thedaywefightback.org <comment><USER2> As someone who has done a fair amount of activism and advocacy work, I'll say this:

Over the last 6 months, I've seen a number of people make comments on relevant HN posts to the effect of "This sucks, but how do we actually change anything" This is what you've been waiting for - here's a chance to actually do something about it.

Don't be discouraged when things seem to be standing still. Because of the way our minds work, single-point events stand out more than continual progress, and we get discouraged when the former seem to have less effect that we'd like.

My work was related to drug policy specifically[0]. During the years that I was actively involved in this, there was very little visible progress on the issues I worked on. We managed to pass a Good Samaritan law[1] in New York state (which I was involved with), but that was the only major success that I can remember, amid a long stream of what seemed to be failures.

On the other hand, when it rains, it pours. We've see a number of major successes very recently on this front (not just with marijuana policy, thought that's what gets the most attention). Looking back, the state of drug policy in 2014 is in many areas much brighter than it was in 2006, even though it certainly didn't seem like we were making any progress at the time.

It's easy to get cynical about large-scale, long-term efforts. As an individual, you're right, it's tough to do much on your own, since no individual has the same stamina as the forces that we're fighting. But showing support for groups that _are_ fighting these longer battles is the best way to see some real action, even if it takes a while to incubate.

[0] On HN, that's oftentimes synonymous with "marijuana policy" \- while that was certainly a part of it, my work focused more on the effects of drug laws on students (such as the Higher Education Act) and the socioeconomic impact of an incarceration model.

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

<comment><USER3> I feel like the more we talk about it, the more everyone becomes desensitized to the U.S. surveillance problem. Then we get the public at large just rolling their eyes and saying "Oh, another paranoid lunatic wants to take over the government".

I want to do more than just like stuff on facebook... hopefully this will present something more tangible. I signed up for the "Add a banner to your site" list. I can tell ~15k visitors about this over the next month at least.

<comment><USER4> >U.S. surveillance problem

As long as people are willing to pretend that the problem is only the US and not the entire West colluding then the easier it is for these governments to continue.

<comment><USER5> Case in point, the Canadian government is currently building "the most expensive government building ever constructed in Canada" for CSEC (our version of the NSA) and vastly expanding their headcount:

[http://www.cbc.ca/news/politics/inside-canada-s-top- secret-b...](http://www.cbc.ca/news/politics/inside-canada-s-top-secret- billion-dollar-spy-palace-1.1930322)

And GCHQ has less significantly legal restrictions than most other SIGINT agencies.

<comment><USER6> I feel like the cost is always overblown about this building if you consider the fact that they are currently housed in a building originally designed for the CBC in the '60s and not for actual security work. Given the expansion of their operations and personnel, it only makes sense to create a new building (not coincidentally beside CSIS). And generally speaking, it's going to cost what it's going to cost. Yes it's a government building. Yes they've spent money on particular luxury items (identified as being used to increase social interaction). But if you want people working more effectively and efficiently, you're going to spend money to increase morale (just look at all the lavish spending at startups or ones that are even IPOing, they're all expenses that, at the end of the day, may not be good in the eyes of the shareholders. But they help employee morale).

</comment></comment></comment></comment></comment><comment><USER7> We had to cut down Aaron's quote to hit the HN 2k character limit, but the full quote we originally intended to use was:

"[We defeated SOPA] because everyone made themselves the hero of their own story. Everyone took it as their job to save this crucial freedom. They threw themselves into it. They did whatever they could think of to do."

Very much hoping the community will rally around and join us in this. In particular, startups and larger tech companies (Google, Facebook, Microsoft, Twitter, etc.) don't get involved with this kind of activism easily. If you care about this issue and work at a tech company, you're the only ones who can exert pressure from within.

<comment><USER8> Those larger tech companies you mention are on the other side of the fence when it comes to surveillance and privacy.

And I'm not even talking about the accusations of complicity (or have we forgotten that was the opening salvo in the NSA revelations, followed by a boilerplate non-denial and an eery silence?), but the fact that these companies regularly violate privacy laws (at least outside the US) and lobby against privacy protection.

Especially for me as a non-American, the US government and US tech companies like Google and Facebook are two sides of the same coin.

Of course they (or their employees) don't get involved, and they shouldn't. That would be like Elsevier getting involved with supporting Open Access.

<comment><USER9> Put yourself in the shoes of a hypothetical progressive tech company. You receive a letter from the government asking you to copy all your network traffic to the NSA for analysis. Threatening serious jail time if you resist or reveal the existence of the letter.

Your lawyers say all that appears to be legal and legitimate, and informal discussions with other tech executives reveal that everybody in your industry does it and it's no big deal.

It takes a lot of courage to resist.

Now that the scope of the surveillance has been revealed, and it's become clear that most of the technology culture, and a big chunk of the general public, is on your side. And the risk of consequences like jail time is much less if you're no longer talking about the government's specific activities in your case, but things that have been published in major newspapers.

It suddenly becomes a lot easier to make a strong statement.

> Elsevier getting involved with supporting Open Access

That's not a fair comparison at all. Open access to scientific research would totally kill Elsevier's main revenue source. The main revenue source for e.g. Google or Verizon is customers, not the NSA. Surveillance reform wouldn't kill their primary business models.

<comment><USER10> I can not accept a "I had to follow orders" rationalization, especially from the giants like Google. It was routinely used by the Nazi officers at the Nuremberg Trials. They had orders, were "afraid of reprimand", and so they went along.

There's a moral conduct that is above paper orders. Each one of us decides how to act when we face a contradiction. Aaron, Snowden - they did one thing. Google, Facebook - did another.

</comment></comment></comment></comment><comment><USER11> Ever since the NSA business leaked, I've been thinking about this problem. It took me a few months to wrap my head around all the crazy stuff that's been going on but I've started building some systems that I think might have a chance of helping out.

"Call Congress Now"\- using Twilio, you can call Congress folk from your browser (for free). [http://www.callcongressnow.org/](http://www.callcongressnow.org/)

Here are some Congress people who are doing some shady stuff: [http://www.callcongressnow.org/profile/F000062](http://www.callcongressnow.org/profile/F000062) [http://www.callcongressnow.org/profile/L000174](http://www.callcongressnow.org/profile/L000174)

But it's pretty hard to get the word out about websites like that. In a sense, nobody passively cares enough to call Congress. Only when the Congress folks do something that brings about outrage do people care enough to really pick up the phone (or click the twilio button, as it were). So I built the /u/CongressionalHound, a bot on reddit that hunts for mentions of current sitting members of Congress in submitted articles and displays information about them in the comments: [http://www.reddit.com/user/CongressionalHound/comments/](http://www.reddit.com/user/CongressionalHound/comments/)

If you are a mod on reddit and want me to run the bot on your subreddit, PM the bot and I'll have it saunter on over and get to work. Slowly putting the bot on subreddits that give me permission or invite me to. My hope is that when articles about the NSA, or Obamacare, or the shutdown, or or or any big political issue comes up, that the bot will channel people towards getting in touch with their representatives and senators and effectively voicing their opinions.

Both of these are prototypes and there are major known bugs in both, but I think they can serve as examples of systems that could help citizens better impact their government through the power of the internet.

<comment><USER12> Maybe we need to take the shawshank redemption approach "Still, I'd like to try, with your permission. I'll send a letter a week. They can't ignore me forever."

Let's build automated tools allowing people to send out letters, signed petitions, emails, faxes, pre-recorded voicemail etc.

That would would potentially eliminate procrastination.

Just a thought.

<comment><USER11> A friend worked at a congress person's office a while back. When I told her about automating calls, she was not pleased. Very high noise to signal ratio. I think that effort would be better invested in informing the public and giving them better tools than mindlessly spamming their offices.

[https://github.com/zmaril/callcongressnow/issues/1](https://github.com/zmaril/callcongressnow/issues/1)

<comment><USER13> This is an excellent idea, thanks for making this.

Along with calling, it might be helpful to have a wiki that outlined the issues and talking points. People often care, but then feel like they don't have enough depth of knowledge to take action.

At very least it would be nice to point to one.

</comment></comment></comment></comment><comment><USER14> Perhaps I'm missing something, but is there anything _actually being planned_ aside from... a website? It's good that people are trying to do something, but putting up banners on the web and starting yet another website isn't _doing something._

Are you going to organize rallies? Provide logistical support for people who want to do so? Even a snail mail campaign would be an improvement over Yet Another Complaint On The Internet.

Don't get me wrong: The cause is great, and drawing attention and support to it is important. But this might as well be a high-profile version of trolling a forum. It's not going to help anything unless you take action that will reach the people in charge _and_ the people who might not currently be aware of what's going on and how important it is.

I don't see this doing much of either.

</comment><comment><USER15> This forum has long been a repository of outrage, confusion, and dissapointment. It is high time that the anger expressed transform into something coherent and mobilized, and action be taken against corporate government who are actively trying to take control of our global mind (the internet) and quantify our private lives for who-knows-what (NSA revelations). Aaron Schwartz remains an avatar for this movement, and taught many of us that as hackers, we have a responsibility to society when freedom of information is tampered with, just as a doctor is responsible at the scene of a motor accident.

</comment><comment><USER16> For whatever it's worth, I cast my vote in favor of this. It's been wonderful reading Paul Graham's comments voicing opposition to the illegal surveillance, and I would urge the HN community to adopt this stance as official policy. I believe we're either very close or right on the edge of a tipping point in public opinion, and this kind of concerted action may just push it over the edge.

</comment><comment><USER17> I did not know Aaron, but in my mind, I knew Aaron not as an activist, although he was. I knew Aaron as an architect, an engineer, a programmer, a visionary. I'm sure he talked, I'm sure he protested and I'm sure he did many other things, but to me what Aaron did was build the future. He literally built a small part of the future, using computers and algorithms. You can take a thousand activists--tens of thousands--but at the end of the month, if none of them build anything, there will be nothing left after they leave. Not even words.

What would Aaron do? Would Aaron have just passively asked for people to come forward? Would he have asked everyone to post some icon everywhere? Some forgettable meme?

Or would he have created something? Something that maybe wouldn't be obvious to the likes of us, to the likes of the EFF and The New Yorker? Something explosive (figuratively, Ms. Ortiz, figuratively)? Something evolutionary? Would he have banged out some code that would make even die hard Wikipedians feel unwise?

I don't know. I really don't. I don't even know what A/B testing means. But if no one else does, I have a feeling this is going to suck.

Edit: I didn't even know downvoting was possible on HN, but hey, if haters aren't hating then you're doing it wrong

</comment><comment><USER18> As foreigners, should we care?

Next time someone organizes something similar, can they think of a worlwide action? Can they make something which doesn't sound like "Worldwide anti- american day" but rather "Worldwide day of support to the debate that US citizen started"?

US citizens are only 313 millions and the US law protects you against surveillance. We, the rest of the world, are all subject to this surveillance in unlimited way.

<comment><USER19> Frankly, U.S. Congressmen don't care what foreigners think about U.S. surveillance policy. Foreigners aren't going to vote them out of office. I think the EFF, etc. are wise to focus their limited resources in ways that maximize their chances of being heard.

The Snowden revelations make clear that U.S. citizens are not protected against surveillance by their own government. Just because foreigners are less protected doesn't change that.

<comment><USER20> _Frankly, U.S. Congressmen don 't care what foreigners think about U.S. surveillance policy._

Frankly, U.S. Congressmen don't care what _Americans_ think about U.S. surveillance policy.

<comment><USER21> > Frankly, U.S. Congressmen don't care what Americans think about U.S. > surveillance policy.

They clearly do, because they spend quite a bit of effort trying to shape what Americans think about it, which is inconsistent with not caring what Americans think.

<comment><USER20> They're concerned with they _want_ Americans to think about surveillance. That's markedly different from caring what we _actually_ think.

<comment><USER21> > They're concerned with they want Americans to think about surveillance. > That's markedly different from caring what we actually think.

Having a desire for somone to think a particular thing about a subject is _exactly_ caring what they actually think about a subject.

I think the distinction you want to draw is more between _being influenced by_ what Americans actually think, on the one hand, and _attempting to influence_ what Americans actually think, on the other.

But then, again, the only rational reason for members of Congress to try to influence what Americans think is because they think that what Americans actually think impacts the prospects for their political agenda, e.g., by influencing their likelihood of getting elected or influencing the behavior of other members of Congress or the President (perhaps by influencing those actors electoral prospects), so, really, I think that even that distinction is somewhat false. The reason politicians want to shape opinions is _because_ politicians actions _do_ respond to opinions.

<comment><USER22> I believe the hypothesis is stated as "Foreign legs good, American legs better"

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> With all due respect, using Aaron Schwartz's case about copyright as motivator for the case against surveillance seems weird. Why do you even need some personification?

<comment><USER24> I didn't know Aaron Swartz, but my understanding is that surveillance and whistleblowing were important issues for him. For instance, he developed software for anonymous whistleblowing for those like Edward Snowden: [http://motherboard.vice.com/blog/aaron-swartz-inbox-for- whis...](http://motherboard.vice.com/blog/aaron-swartz-inbox-for- whistleblowers-is-back-with-an-nsa-proof-makeover)

<comment><USER25> "surveillance and whistleblowing were important issues for him"

There you've conflated them again, and then provided another point about Swartz being in favor of access to information. You specifically did not address the grandparent's question about why Swartz would be against access to information for some cases and for access to information in other cases.

I'm not suggesting that he wouldn't (I don't know offhand, but it's clear that pro-whistleblowing folks often self-identify as anti-surveillance, too), but it's not clear what information-related principles are being used to justify these positions.

<comment><USER26> I don't think there is a necessary contradiction in "favoring access" to government-promoted or funded arts and sciences, as well as "favoring access" to full disclosure of surveillance programs and desiring effective judicial oversight, and not "favoring access" when the government wants to have a large amount of data about the lives of its citizens.

The current surveillance is being performed without oversight and in secret: so a "favoring access" stance aligns with wanting full disclosure of the surveillance, and a judicial process that allows for oversight of what is being surveilled and when.

Within the surveillance issue is a desire for privacy (which is not "favouring access" to information, as you note), which I think comes from two issues: that the government is a public institution for the public good and so it has less expectation of privacy than an individual. and also that there is a power imbalance between what the ability to act on information between governments and other entities, and an individual.

Publicly-funded research that the public is denied access to is an issue of both government openness and power imbalance.

Government promotion of the arts and sciences (which is the reason for copyright) being used to unduly deny the public access to aspects arts and sciences falls into both as well, IMHO.

</comment></comment></comment></comment><comment><USER27> I'm in. It's long past time that we channel our outrage into political action on this issue

</comment><comment><USER28> I hope you guys won't stop at pushing just for the USA Freedom Act, which sounds pretty decent, but not like it's going far enough. To me Rush Holt's Surveillance State Repeal Act sounded close to ideal, but he's going to need some co-sponsors for it.

Ron Wyden, Mark Udall and Rand Paul's bill also I think sounded better than the USA Freedom Act. I always forget its name because they chose a pretty bad and long one ("intelligence oversight something"). So I hope you keep working on passing those (or others like it), too, and don't stop at the USA Freedom Act (or try getting some amendments to that pushed, too).

</comment><comment><USER28> Relevant news: NSA and GCHQ activities appear illegal, says EU parliamentary inquiry

[http://www.theguardian.com/world/2014/jan/09/nsa-gchq- illega...](http://www.theguardian.com/world/2014/jan/09/nsa-gchq-illegal- european-parliamentary-inquiry)

</comment><comment><USER29> No matter how imperfect this initiative is, it is so much better than nothing. I frankly never grok the negativism. (Is it a form of nihilism?) I give to the EFF. I speak up whenever the subject comes up. You can, too, and you should find your personal path to support freedom. Our freedom. "An injury to one is an injury to all." Aaron's persecution and death was an injury to all. The Clipper chip was crushed under Clinton -- many other interferences with our lives can and must be crushed. It's never over, it's always worth fighting.

If you think it's insufficient action, _you_ be our new Sam Adams or Patrick Henry! I'll join, with determination and passion.

</comment><comment><USER30> I strongly disagree with the way you're using Aaron Swartz / his memory here.

<comment><USER31> At first reading, I too am uncomfortable enlisting someone's memory like this. Not sure why. And not that I am on one side or the other, but at first thought I would have said advocating for reform to the CFAA would be a more fitting to tribute to Aaron's memory. No?

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

I didn't know him but I am not trying to rally around him for a cause either.

</comment></comment><comment><USER32> A general comment on the nature of activism and the political process: one of the goals of activism in the political area is to move both public sentiment (awareness / consciousness raising) and public policy. Now, one of the things to realize here is that this is a never-ending back and forth process, and sometimes the same battles are fought in different forms over time - and this can be incredibly frustrating unless you realize that this is the case. It's easy to believe that it's like fixing a bug; once you've patched policy/changed the mind of society on a topic, that it's fixed forever. Not so. New forms of an idea pick up; your favored policy falls out of favor due to changing events/other beliefs/ideologies/cultures that become popular; a new generation is born that has none of the bad experiences you had, and can have bad policies foisted on them; zombie ideas rise from the grave once more.

This can be disheartening, frustrating, even despondency-inducing. I've been there more than once, and activists across the world have probably been experiencing this since the first protest happened outside the first town hall.

For those stating "it will do nothing" \- it can sometimes be hard to see the distant / second-order effects, but they do matter. Registering dissent matters. Now, I would add that there is a threshold beyond which activism loses its potency (for a variety of possible reasons) and you need to go to the next level (everything from non-violent resistance to revolutions.) In this particular case, we're nowhere near that, and by the looks of it, the tide is firmly against the anti-surveillance bloc, so pile on.

Finally, I'd say that the idea that the arc of the universe bends towards justice is wrong; people bend societies towards it.

<comment><USER33> I would like to add that there is another goal of activism, IMHO: solidarity among activists. Demonstrations don't just demonstrate to the outside world, they also demonstrate to the participants. When things look bleak this is very important. In the 60s, people would do sit-ins and sing together - maybe not because that was the most effective way to bring about change, but simply because it was a good additional thing to do. Every bit helps, nothing is wasted.

</comment></comment><comment><USER34> This might seem like an off the wall idea but as (in my mind ) this issue is part policy and part engineering problem, would co-ordinated themed hackathons focused around the idea of creating disruptive & secure communication techniques and protocols both further this general cause and appeal to the HN crowd at large?

<comment><USER35> This is already being worked on by a few folks. [1][2]

If you have the skills and drive to help, I would suggest looking into those two projects.

[1] [https://crypto.cat/](https://crypto.cat/)

[2] [https://whispersystems.org/](https://whispersystems.org/)

</comment></comment><comment><USER36> As a long time EFF supporter in spirit and dollars I have to say this is a strange way of coalition building. Since ycombinator previously supported a similar effort it seems like they would be thought of as allies. Whenever I have been involved in a project like this allies and previous supporters were contacted privately. This sort of "open letter" is the kind of thing you do to pressure (read shame) someone into doing something that they have expressed reservations about doing.

I still support the cause but this is not how you treat friends or conduct a political activism campaign.

Addendum:

It is possible that the folks at ycombinator were previously contacted. If that is the case this letter should say so, if only to let current allies know that they do not need to worry about being bullied into continued support.

</comment><comment><USER10> Did this letter get a penalty? With 581 points, it's now off the front page.

EDIT: Interestingly enough, "Female Founders" plea to the public by PG is at 360 points, whooping 402 comments, and the 2nd place. Clearly, "sexism" drama is a lot more popular with the tech crowd :)

</comment><comment><USER37> _We begin therefore where they are determined not to end, with the question whether any form of democratic self-government, anywhere, is consistent with the kind of massive, pervasive, surveillance into which the Unites States government has led not only us but the world.

This should not actually be a complicated inquiry._

[http://snowdenandthefuture.info/events.html](http://snowdenandthefuture.info/events.html)

[http://benjamin.sonntag.fr/Moglen-at-Re-Publica-Freedom- of-t...](http://benjamin.sonntag.fr/Moglen-at-Re-Publica-Freedom-of-thought- requires-free-media)

[https://en.wikipedia.org/wiki/File:Ciscosystemsrouteratcern....](https://en.wikipedia.org/wiki/File:Ciscosystemsrouteratcern.jpg)

</comment><comment><USER38> I personally think of this as pg's site and us all as honored guests here. I'm not opposed to the idea of an open letter on principle, but I do have a little bit of an issue with a letter addressed to HN in general.

I also personally take issue with Aaron Swartz as a poster child for SOPA related activism. There are many of us who did what we could to prevent SOPA and who are opposed to illegal aspects of mass surveillance who nonetheless believe in a proper place for intellectual property.

</comment><comment><USER39> Only if we can call ourselves 'Agents of S.H.E.L.L.'.

<comment><USER13> Better than CREEP.

</comment></comment><comment><USER40> I agree with the message and the goal but why is this an open letter rather than just an email to PG? Rather, the subject seems confused. It could be they're trying to reach all the HN users, but when they write "You blacked out your websites, lobbied your employers to do the same, and started creative campaigns to defeat a threat to freedom on the Internet" that seems directed at the people who run HN.

<comment><USER41> I think they're talking about the readers of HN, many of whom are workers in tech and represent many more websites than just HN. HN blacking out would do relatively little to affect public opinion, all of the websites represented by HN users would do much more.

</comment></comment><comment><USER42> Clickable links:

[1] [http://www.democracynow.org/2013/1/14/freedom_to_connect_aar...](http://www.democracynow.org/2013/1/14/freedom_to_connect_aaron_swartz_1986)

[2] [https://thedaywefightback.org](https://thedaywefightback.org)

</comment><comment><USER17> > Will you join us?

"Not wittingly."

</comment><comment><USER43> I'm not willing to demand progress, but I DEMAND MY CORY DOCTOROW! RIGHT NOW! PLEASE?

</comment><comment><USER44> can someone verify user id davidsegal?

<comment><USER27> I can. It's the same David Segal that's a signatory to the letter.

<comment><USER45> can someone verify user id sethbannon?

</comment></comment></comment><comment><USER46> Call me skeptical, but this is yet another sign of the degeneration of Western civilization and the indoctrination of being apathetic. If you really think slamming a website online and calling people to post memes on Facebook will change anything but some link scoops on CNN, you are delusional. About 5 months ago I posted a related comment ([https://news.ycombinator.com/item?id=6147370](https://news.ycombinator.com/item?id=6147370)) and it's as true as any other day.

"B-but this time it will be different! We have logos of relatively big companies on our website!" \- hang in tight, brother, because "The Day We Fight Back" isn't anywhere close.

<comment><USER47> It appears to be nothing but slactivism.

At least everyone involved will fee like they did something.

<comment><USER48> Whereas you get the smug satisfaction of feeling superior to people who are actually doing anything at all.

<comment><USER47> Actually I get the smug satisfaction of not wasting my time.

This is not doing anything, but damn if you don't feel like it.

<comment><USER49> Just like the online action against SOPA/PIPA was a waste of time and didn't do anything?

<comment><USER47> You mean how shutting the a site down for a day actually showed people what would happen if SOPA passed? Wikipedia participated in the SOPA protest, wikipedias users did not, they were impacted by Wikipedia's participation.

That seems EXACTLY like changing your avatar and spamming Facebook. How does spamming Facebook or changing your avatar show the effects of the NSA's spying?

That is how it is useless. It does nothing.

<comment><USER49> Part of the issue with mass surveillance is that a lot of people don't know about it / don't understand how it affects them. Anything that helps more people to start understanding and caring about this issue will push lawmakers toward doing the right thing and curtailing it.

<comment><USER47> > don't understand how it affects them

And this doesn't change that.

> helps more people to start understanding and caring

And this does nothing of the sort.

That's why it's useless. It is the very definition of slacktivism.</comment></comment></comment></comment></comment></comment></comment></comment>


F# end to end - <AUTHOR> http://colinbul.wordpress.com/2013/02/23/f-end-to-end/ <comment><USER2> F# is fantastic, and the team behind it is super solid, having delivered generics for the CLR.

What this post leaves out is some of the tooling you lose when you move to F#. For what I assume are political reasons, F# keeps being marketed as a niche "scientific" product, when in reality, pretty much any C# code is better off being written in F#, even if you aren't writing idiomatic F#. I did one small test where I rewrote a C# program in non-idiomatic F#, and it required 1/20th the type annotations. C#'s just verbose - why use it?

Even WebSharper requires a "C# web site" to actually get Visual Studio to kick up IIS and make things run. There's no real C# code, but so much in the .NET/VS environment assumes C# (or VB).

In fact the worst times I've had with F# were due to other libraries depending on how the C# compiler is implemented, and failing when reflection/expression trees didn't look exactly the same. Fortunately the major use case (LINQ) seems to have been addressed quite solidly with F# 3.0.

<comment><USER3> Doesn't F# still perform worse than C# in various scenarios? IIRC the functional glue adds some overhead and F# uses classes instead of structs in some cases.

<comment><USER2> I have not found that to be the case. Yes, sometimes certain idiomatic things in F# might be slower, but in that case, just write them like you would in C# and you'll get the same performance. So, at worst, you end up with the same code, with more concise syntax.

There are a few exceptions, but in general, F# can emit anything C# can.

In fact, with F#'s "inline" ability, you have more flexibility than you do in C# - the CLR does vastly better when handed a big IL function, versus expecting it to get inlining right. The F# compiler does more advanced optimizations, too.

</comment></comment></comment><comment><USER4> This is really exciting. I do about 50% of my commercial development work in VB .NET (the other 50% in Python), and I hate hate HATE working in VB. Convincing the suits to go with Python would be near impossible -- too many processes rely on .NET -- but this seems like it could a be a great compromise. Sane, fast, modern language but with the full power of .NET libraries.

Can anyone recommend a good resource for learning F# for the .NET developer? I don't need an intro to functional programming (I have a pretty functional style in python and I've messed around with Haskell) but just a well paced intro to the syntax and standard library.

<comment><USER5> What do you hate about VB?

I'm a C# dev that thinks in terms of F#/ML but I've long recognized that VB is actually a more expressive language than C#, especially if you want to write OOP in a functional style. For instance, VB has better IDE support for expressing sum types, doesn't require type annotations for lambada expressions, and has more Linq (query comprehension) operators.

Edit: I'm wrong about the "better support for sum types", I was thinking of Completion List feature but it doesn't quite give you a proper sum type (though it comes close).

<comment><USER6> VB.NET also doesn't allow #region's in method bodies, and can't use unsafe code.

I've found C# to feel more concise, clean, and have less annoying hard to predict syntax. If .. End If, While .. End While, but For .. Next? I'd expect End For. The attempt to make it look more like words just made it more annoying to me. VB.NET's syntax feels too verbose. C#'s feels more like a good spot where it's very similar to C++ and Java, but not alien.

<comment><USER7> In my experience, if you use #region in the body of a function, it is a sign it needs refactoring.

</comment></comment></comment></comment><comment><USER8> F# is a very interesting language and one of the best things to come from Microsoft in a long time.

It could be a very very good thing for MS in the next decade if they invest in it properly (which they seem to be doing).

Interesting times.

</comment><comment><USER9> Does anyone have any experience with F# (and Mono in general) under Linux? How's the library support?

It seems like it should be a good fit for the stuff we normally do (log processing/munging), but I don't know how well it'll work outside of Windows.

<comment><USER10> I've used F# for some little .NET school projects using Mono.

It's quite well supported as everything related to F# developed by Microsoft is open-sourced (compiler, libraries, PowerPack).

Moreover Mono fully supports F#, as the compiler is sometimes bundled in some releases.

Also, F# is really a pretty sweet language (as for an heavy Haskell user with a little C# background). French love inside.

<comment><USER11> I have been hoping to pick up some F# with Mono, but I'm having a hard time getting started - not with the language itself, but with the development environment. For instance, MonoDevelop seems very flakey on the Mac. I'd love to try out FsharpX, but I can't find instructions for how to build or install it on Mono.

Can you make any suggestions as to places to read up on this stuff? The language seems so well put together!

<comment><USER12> well, personally i use monodevelop(xamarinstudio) 4.0 and mono 3.0.3 in archlinux.

you need a fork of the fsharpbindings project <https://github.com/xamarin/fsharpbinding>

have you tried using fsharpx from nuget? monodevelop has nuget support as of now. [https://github.com/squidge/monodevelop-nuget- addin/tree/xs-n...](https://github.com/squidge/monodevelop-nuget- addin/tree/xs-nuget-addin)

I also just built fsharpx.core and fsharpx.http with monodevelop(right now) and it built fine for me.

<comment><USER11> MonoDevelop 4? I'm using 3.0.3, which seems to be what their website advertises as the latest version. Maybe I'm missing it. Should I be building from source?

<comment><USER12> up to you really they released 4.0

<http://monodevelop.com/Download>

it looks a little prettier, but besides that nothing has really caught my attention. it also seems to throw exceptions more frequently(throwing exceptions, not crashing)

</comment></comment></comment></comment></comment></comment><comment><USER13> There's a lot to love about F# (type providers are especially sweet, for example). I'd like use it more, but the challenge seems to be more about getting C# devs to embrace functional development. Which I suppose is the challenge of functional languages everywhere...

</comment><comment><USER12> the way my coworker put it, if ml and python had a baby, and microsoft stole that baby, that would be f#.

i don't like websharper. what is wrong with people wanting to write their clientside in f#? anyway that's why i was looking at how the iis stack works, so i can write my own framework.

there is an - in my opinion - pretty nice f# mvc template (not that i'm a big fan of mvc) available here: [http://visualstudiogallery.msdn.microsoft.com/3d2bf938-fc9e-...](http://visualstudiogallery.msdn.microsoft.com/3d2bf938-fc9e-403c-90b3-8de27dc23095)

it's also ironic that when Donna Malayeri talks about F# the first thing she talks about is how verbose c# is compared to f# [http://channel9.msdn.com/Blogs/Charles/C9-Lectures-Donna- Mal...](http://channel9.msdn.com/Blogs/Charles/C9-Lectures-Donna- Malayeri-F-30-Information-Rich-Programming-1-of-1)

<comment><USER14> So how do you want to write your client-side? Does not using one language for both the server and client make sense to you?

</comment></comment><comment><USER15> My favorite part - they use type providers to work with xaml code. They're moving IDE features closer to the compiler.

</comment><comment><USER16> I have been eying F# for bioinformatics work for a year, but a dearth of bioinformatics library, difficulty linking existing libraries, and flaky tools on Linus have held me back. Right now I am stuck with Python and R, which are good languages with plenty of good libraries, but I want to branch out into functional languages. It also does not help that I don't know C# and am disinclined to learn it.

</comment><comment><USER17> I was thinking of ordering the Expert F# 3.0 book, when i saw this (writer of this review was the Tech Reviewer for the Expert 2.0 version of the book)

[http://www.amazon.com/review/R3VEMJVVPFSUNF/ref=cm_cr_pr_per...](http://www.amazon.com/review/R3VEMJVVPFSUNF/ref=cm_cr_pr_perm?ie=UTF8&ASIN=1430246502&linkCode=&nodeID=&tag=)

<comment><USER18> Hum. That rant goes against F# itself, not against the book, notably the less than stellar support for GUIs. The book itself is fine, albeit a little bit expensive. The criticism of this review, as well as the optimism expressed by the blog post both miss the wood for the trees: F# will _never_ outshine c# or VB.net in areas where tooling matters more than the language itself. It is tremendously useful for developing libraries and services to be glued together by c#.

</comment></comment><comment><USER19> It's like building Python projects with SCons.</comment>


Show HN: Cronbeats – Cronjob as a Service - <AUTHOR> https://cronbeats.com/ <comment><USER2> I've seen several services just like this.

I wouldn't use a cron service because of the security problems. cron running locally means I can protect the scripts from getting executed when I don't want them run. If this service can send requests to run scripts anyone can send the same request.

With cloud hosting at $5/mo with shell access any developer who doesn't have access to their crontabs should fix that problem.

<comment><AUTHOR> I also agree that most developers are easily able to set up a cronjob locally. However, cronjobs may easily fail to start or may not finish on time. In the future I would like to add a way for users to add retries, timeouts, and grace periods for completion, or else they get alerted.

The guy(s) at [https://healthchecks.io/](https://healthchecks.io/) do the job of monitoring the job completion but do not trigger the job itself. I'm looking to see if someone has both the needs (to start the job, and to check its completion)..

> If this service can send requests to run scripts anyone can send the same > request.

I thought of that. A easy fix would be to send a token in the url query, and validate that token in the user's webapp's view..

Thanks for the feedback!

<comment><USER2> I don't experience problems with cron itself failing to start jobs, but it doesn't have any monitoring built-in. Solutions exist for that, including wrapping cron scripts to notify or log when they start and stop.

Implementing retries, timeouts, etc. for jobs you initiate remotely over HTTP GET requests, and using a token for validating access, seems like a lot more integration at the customer side than just using cron.

Enforcing timeouts, or preventing them, means changing the web server (Apache) and runtime system (e.g. mod_php) to allow a process to run for longer than the default time. If I have access to Apache and PHP config I also have access to the crontab.

I use cron with HTTP GET requests locally, run with curl so I can set a timeout and capture the output. Apache restricts those requests to localhost, so they can't get initiated remotely. I have a simple wrapper that logs when jobs start and finish, and a monitoring page that shows last run time and success/fail status. Every job has an associated estimated time it should run so the monitor can show jobs that ran too long.

</comment></comment></comment><comment><AUTHOR> This is a simple application that triggers GET requests periodically. I'm currently using it to trigger the sending of emails of another of my apps ([http://mailaday.com/](http://mailaday.com/) \- checks due emails every 5 minutes).

This is currently very bare-bones but I'm publishing it here just to see if people are interested in something like this.

I guess this kind of services may be useful for developers which do not have access to system crontabs but still want to periodically run some tasks (which they can program to be ran from a URL endpoint which cronbeats will send a GET request to), like doing db backups, sending emails, clean the database, etc.

I have a free version which allows users to create 10 cronbeats, but if it finds interest, I'll find motivation to build the code to the "pro" versions..</comment>


What is something people not in tech should know about Covid? - <AUTHOR> I'm in the medical field and am curious what the tech community views is important that us nontechnical folk know about the challenges, changes, or anything else related to how things are changing because of COVID. <comment><USER2> I would put 'exponential growth' on the list of things people should know.

<comment> Munky-Necan This one hits too close to home. I told a family member about how this virus doubles every ~5 days which means there will be over a million people in a handful of weeks if we do nothing to abate the spread. That's when I got their attention.</comment></comment>


GNU Guile 2.1.4 released - <AUTHOR> https://lists.gnu.org/archive/html/guile-devel/2016-09/msg00009.html <comment><USER2> Guile is my second favorite scheme (after chicken). It's semi-R6RS, but still feels nice, and still feels scheme-y. It's nicely practical, and it's one of the rare Scheme implementations to support pthreads. Also, it has a lot of good libraries (behind Racket and Chicken, but better than many schemes), and an FFI that's actually pretty nice, but encourages writing a wrapper around the library that's more than paper-thin. It also embeds well, with it and Chibi being pretty much the only game in town on Scheme embedding.

I love it, just not as much as I love Chicken.

<comment><USER3> What is the scheme equivent of ANSI C or Common Lisp?

By that I mean what is the default/main/vanilla scheme?

<comment><USER2> Scheme is a standard. The most common standards for Scheme are R5RS, the controversial R6RS, and R7RS, which hews closer to R5RS. While there are reference implementations, there isn't really a vanilla implementation, as even the references add their own tweaks. Here's why:

Until R6RS, having a "vanilla" scheme wasn't practical: the scheme standard is minimalist, and excludes things like binary IO, modules, networking, OO, etc, although it does provide the tools to make your own module/OO system if you want. Writing portable scheme is almost impossible, and frowned upon.

R6RS tried to extend the language and stdlib, so that writing portable scheme was possible. It was criticized for being overly complex, and for forgoing common SRFIs (informal standards that can be implemented across schemes), instead coming up with its own solutions to the same problems. Its acceptance was mixed. Guile implements some of it, but there are few full implmentations of the standard. The lack of acceptance for R6RS is sometimes seen as one of the catalysts to PLT Scheme casting off the anchors of the Scheme standard, and renaming itself Racket, which was already starting to happen, as PLT steadily deviated from the standard.

R7RS was an attempt at a compromise: it provided the "small" language, already published, which is more based upon R5RS, and adds a module system and a few other extensions. The "large" language, still in development, will provide a large stdlib for doing Real Work. It will, however, notably lack a few things, such as an FFI, so while portable scheme will be possible, not all code will be portable (nor, I think, will all code ever be). Thus far, it seems to be going fairly well, with CHICKEN and Guile, some of the most popular scheme implementations, planning to support it.

Probably the closest thing to a vanilla scheme is Chibi Scheme, the reference implementation of R7RS. It's small, lightweight, and designed for static linking and embedding, like Lua. It has its extensions, of course, but they're fairly minimal.

<comment><USER4> > Writing portable scheme is almost impossible, and frowned upon.

Jesus christ.

I'm sure there are great, rational reasons for this. What were they?

It's really interesting to think that the majority of our software platforms are A) Unix-derived and a bit of B) Windows, and both of those have pretty much taken over industry with Algol-derivatives (C, C++, Objective-C, Java...).

I mean, it's news when a company says "We don't use the above!"

With that in mind, it feels like Scheme is the like the Basques/Finns of the software world, a completely separate genealogical line that perdures to this day in small pockets here and there.

<comment><USER5> Portability between implementations is a nightmare, and you end up adopting only one. Its not overly different than the compatibility problems you hit between JPython, CPython, and IronPython.

Most Scheme implementations are cross-platform, and most issues you run into are the "extras" each implementation adds in.

Let me say this: most of my daily work involves programming in Scheme.

We investigated a lot of the top contenders, and ran into some rather random issues.

Gambit-C is damn fast. Its GC is amazing, and as the name implies, it cross- compiles to C. With a little tweaking, we got it running on some of the beefier Arduinos for some embedded work. Gambit includes custom namespaces for modules, which can make it easier to work with. However, documentation for Gambit is atrocious.

Guile doesn't support native compilation. You could compile down to the object code, and then write a C-wrapper for it, but it's painful working that way. (Also: Guile doesn't support the (void) function! They renamed it for no obvious reason.)

Chicken compiles down to native code, though its runtime is slightly slower than Gambit. It also implements a lot more SRFIs than Gambit, making it so you don't need to reinvent the wheel as much. However: the moment you add a package, Chicken can't compile statically anymore, and you need to build a distribution, and that gets rather hairy when you hit optional dependencies per platform.

All that being said, my work, for reasons I'm probably not able to explicitly go into, involves writing code that both Chicken and Gambit-C can run, and it isn't overly difficult, though I did have to reimplement some libraries that only one or the other had. Yet, in Scheme-land, that's half a days work.

<comment><USER2> Neat. Yeah, it's a lot better than it used to be.

Oh, by the way, as somebody who primarily uses Chicken, you forgot about the coolest part: Chicken _is_ slower than Gambit, but it does Cheney on the MTA compilation, which means that call/cc is almost free. Given, there are some other tradeoffs, but it's still pretty cool.

Also, what kind of job are you in where you're writing Scheme code? That's totally awesome!

<comment><USER5> Getting to use Scheme was almost an accident.

We had a dual Python/C stack, where we basically had a prototype in Python, running for small clients, and then a better C one for embedded devices.

We decided that was a bad idea, and went to rewrite the C for both consumer and embedded devices.

However, the lack of progress had the manager investigating all kinds of things, like MicroPython.

I had been playing around with Scheme in my spare time, and pointed out that Scheme was almost as fast as C, and almost as fast as Python for prototyping.

They handed me a test to see if Scheme was suitable -> Rewrite our Python prototype in Scheme, within three weeks.

Because of how consistent Scheme is, and how close Python's syntax is to it, it only took me three days.

With the decent C output of Gambit's compiler, I wrote a script that modified it to work on our embedded devices as well, in another three days.

The manager was sold, and our whole team moved to Scheme.

I was very unpopular for a few months.

As to the actual project? The little I can say, as it isn't launched yet, is that it's a kit designed for schools.

<comment><USER6> >I was very unpopular for a few months.

Cython.

<comment><USER5> Cython simply wouldn't work.

We were trying to streamline two products into one:

* A C application that runs on an Arduino. * A Python application that runs on the desktop.

Cython may make the Python implementation faster, but it hardly solves the distribution issues. There's a reason MicroPython exists (and it was one of the contenders!)

Scheme became the product, because Scheme was easy to run on our hardware, and on consumer hardware. It was easy to develop with, fast to develop with, and runs faster than most high-level languages competing in this sphere.

Cython certainly has its use cases, and is a fantastic bit of software. But it didn't fit ours.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I really admire Andy Wingo for all his great work. Thank you and the guile team for the the outstanding results!

</comment><comment><USER4> I need to check out Guile's suitability for embedability in applications. Traditional suggestions have been TCL, Python, and Lua. For Guile, the conversation always focuses on FSF and Emacs, but that's boring. Has anyone [other than FSF/Emacs] used it as an application extension language? If so, what's your experience? What's the overhead? memory usage?

Ideally, I'd like to use it on _embedded_ systems/firmware (as opposed to embedded in an PC application), but I'm assuming it's either too memory- intensive or requires too much platform support, and certainly the license won't fit :(

<comment><USER5> Guile's lib you have to link against is 2.5mb, and much of the object code for any Scheme you end up compiling is 0.5-3mb. That was enough to get Guile disqualified from our project.

I never managed to get it running on anything with less than 16mb of RAM, but that might have been my own C wrapper, YMMV.

</comment></comment><comment><USER8> This version of Guile makes possible better asynchronous code via [https://github.com/wingo/fibers/wiki/Manual](https://github.com/wingo/fibers/wiki/Manual) (which is the implementation of something similar to Python's async/await)

</comment><comment><USER9> Anyone here know of any "real" programs and projects using Guile? Would be curious to hear of any blazing success-stories.

<comment><USER8> There is no such big-ish projects using Guile outside projects embedding Guile and guix. There is no wordpress or even framework as powerful and easy to use as Django or Rails. There is no support for https, it's kind of a no-go if you want to access REST APIs from Guile. Cookie support is not good enough. That said, the creator of Artanis reported some success using Artanis in a commercial setting. Outside that there is various free projects in the work, look at Guile homepage or ask on #guile. On my side I am working on search engine named Culturia.

<comment><USER10> >There is no support for https, it's kind of a no-go if you want to access REST APIs from Guile.

That is not true. While Guile doesn't support HTTPS out-of-the-box, gnutls ships with Guile bindings. Guix is a notable user of those bindings.

<comment><USER11> It is preposterous to expect people to write their own HTTPS support on top of something as primitive as GnuTLS!

This attitude towards practicality, if you will, that runs rampant in scheme- land is one of the major barriers for adoption. If you look at Common Lisp, these issues do not exist, the end result being a multitude of substantial real-world projects across a variety of domains (commercial, opensource, academia, industry and so on).

<comment><USER10> Not so fast, there is an open bug report to move HTTPS support into Guile proper. The (non-trivial) work just needs to be done to make it happen.

The Guile maintainers very much care about usability.

</comment></comment></comment></comment></comment><comment><USER12> Still waiting for Guile Emacs.

<comment><USER13> As of GSoC 2014, I believe Guile Emacs works with only some performance regressions (I believe due to overuse of dynamic scope?). In any case, you can run it today if you wanted to, just follow the process outlined on the wiki [0]. That said, I don't think the Emacs project has fully committed to porting over for various reasons, probably in part because running Guile on some platforms (Windows) is really difficult, and thus would be a problem for users. I'm sure the people in #guile on FreeNode could give a much more detailed answer though, I don't follow the Guile/Emacs thing so closely as I'm mostly a CHICKEN Scheme / Vim user.

[0] [https://www.emacswiki.org/emacs/GuileEmacs](https://www.emacswiki.org/emacs/GuileEmacs)

<comment><USER4> Also, from a back-of-the-envelope calculation from the ohloh.net numbers, Emacs has ~1.1M LoC of ELisp.

With that kind of number, you're pretty much guaranteed some elisp is going to stick around forever (especially considering Emacs' glacial [but improving!] rate of change).

<comment><USER13> This is probably the main misconception: Guile is only included to change the underlying Elisp implementation, not to completely change everything from Elisp to Scheme. The problem is mostly getting maintainers to switch over (as most are old enough to have dabbled in the current Elisp engine at least a few times, if not helped write the original implementation).

So yeah, it's not so much the Elisp in the Emacs source that's the problem, it's how do the maintainers switch to maintaining Elisp inside of the Guile project (up until now, Elisp was maintained as a language alongside Emacs). At the very least, this is how I understand it.

<comment><USER12> There are large packages like Gnus and TRAMP which are directly developed inside (and distributed with) Emacs, but, in theory, they should "just work" in the Guile version even after XEmacs support was dropped, right?

</comment></comment></comment></comment></comment><comment><USER14> [https://www.youtube.com/watch?v=Iof5pRAIZmw](https://www.youtube.com/watch?v=Iof5pRAIZmw)

( Sorry )

<comment><USER4> Well, you're not wrong: [http://knowyourmeme.com/memes/guiles-theme-goes-with- everyth...](http://knowyourmeme.com/memes/guiles-theme-goes-with-everything)</comment></comment>


I'm a nearly broke developer/entrepreneur and felt like venting - <AUTHOR> http://blog.outernet.io/article/326/i-am-so-fucking-poor

<comment><USER2> I sympathize. You describe 3 problems (depending on whether I'm reading you right).

1\. You quit working on a client project. It's not clear whether you notified anybody, but it sounds like the work was billable until you decided to abandon it - which means your participation had to be replaced or written off, both of which are a bit expensive.

2\. You don't know when you'll reach point X with the SEM project, and all you have been promised when you do reach it is an audition to ask for capital investment.

3\. You have almost run out of cash because you spent it on stuff like an iPhone 4 when it was flowing, and are probably eating nothing but junk food.

It sounds like you're immersing yourself in dealing with the problems of coding in order to avoid dealing with the less tractable problems of money, personal interaction, and working pattern. You say nothing about attempting to sell your product elsewhere: it seems you don't like selling, and/or the product may be in a legal grey area in that the company in Charleston may have a claim on the IP because they paid you to work on it.

This is an unhealthy situation in multiple ways. I suggest you borrow some money from where you can to pay off your landlord and live for the next month or two on a basic but healthy diet. Then, look for a job. If your relationship with your friend is still good, then ask him to evaluate your progress so far, set short-term milestones for incremental improvements, and limit the amount of time you put into it until your financial emergency is over. If you are isolated, indebted and anxious then your non-provable design theories (UI, architecture) are probably not very good. This says nothing about your skill, it's because you refer to 'a horrible string of rewrites, starts from scratch, and UI redesigns.' That's what happens when you lose perspective and confidence at the same time.

At present you are your own employer, and you are mistreating yourself as an employee by failing to provide yourself with a paycheck or other forms of professional support. Quit your abusive job and see to your basic needs first.

<comment><AUTHOR> You couldn't be more right. After reading all the comments here and on the blog post, I've decided that I've been in my own little world with this app for way too long, and I need to go do something else for awhile.

If it's really worth doing, I'm sure I'll pick it back up again once I'm back on my feet.

<comment><USER3> Give us a donate button and we will help you pay the rent at least, the time you find a paying gig.

<comment><USER4> Do people actually do this? I've seen donate buttons before, even clicked them a few times, but I never imagined anyone received a sizable chunk of money this way.

</comment></comment></comment></comment><comment><USER5> Dude, what the heck are you doing?

1) It sounds like you're doing all the work. Your "co-founder" - what is he doing?

2) Oh that's right - he's doing his other business - presumably the one that pays your income. How did that arrangement work out? Are you an employee of that business?

3) This sounds like a way to get royally screwed. Let's say you make the product, it turns out to be a success. Your friend can say that its IP of his company - that you were just an employee - or worse, you were a contractor. When you worked on that project, what agreement did you sign? Is there something there that says "any work derived by contractor as part of this project becomes IP of Company"?

4) This sounds like the classic, "I have a great idea, here, you develop it, and i'll give you no income and 5% when it's all done" scheme.

5) A demo is good, but it should not be an end all be-all for funding. The best ideas are the ones that leap off the paper. If you need more motivation/funding - there a dozen groups like Ycombinator now. Don't quit at just them. A true entrepreneur never quits!

6) Don't be an architecture astronaut. There's no point re-designing everything when you don't have a paying customers. Put stuff together, slap it with duct tape, whatever. You don't get users if it's just sitting in a github repository. If your site experiences growing pains, that's a GOOD thing.

7) I would cut bait and run, but make sure you pay your landlord back. It seems like he's extending a lot of faith in you by letting you be 2 months behind in your rent. Don't screw him.

8) Get a real job, and gain a savings cushion. This market that your targetting is full of consultants/hipsters/experts that are probably making a decent stream of cash. This will also help you generate buzz for your project when it's all said and done.

<comment><AUTHOR> 1, 2) Exactly right. This isn't a knock on him though. He's got a family and has to pay the bills. Plus he doesn't code at all.

3) Absolutely. I'm not worried about getting screwed in this instance, as we're good friends and have built up a lot of trust over the years. Then again, people usually don't expect to be screwed over.

4) More or less. I had a decent salary up until a couple of months ago. It was enough to keep me barely afloat while going out and actually having a social life.

5) Couldn't agree more. Quitting is not on my menu, the YCombinator interview fell into our laps so I ran with it. I would never have sought funding at that stage if it were up to me. I could see doing it now though.

6) This is great advice that's hard to follow. I'm trying to get better at this all the time.

7) My landlord is a super nice lady and I will definitely not be fucking her over.

8) Yep. This is my only option at this point. I am going to get a Web dev job and get my shit back in order.

<comment><USER6> Been there, went so low once it was dog chow just to survive for a few days. Proximity is a bitch when you don't live near a tech hub, even worse when the people around don't understand what you do.

Do yourself a favor, if not just for the peace of mind. Look into the labor laws regarding ip in your state. I found mine by searching for [state law labor code] then read through to find the laws regarding intellectual property and inventions. Find out how fucked you really are in terms of the law and the agreement you have with your friend.

Hopefully you're working with good people, and in my experience everything changes once money is involved.

Once you get back to your project, set a schedule for your milestones. It's one thing to be disciplined, and another to know how long it will take to get your product usable and to market. Especially if you're building alone.

Good luck, I'd be grateful for the community that's behind you.

</comment></comment></comment><comment><USER7> You need to take a break from software development for about 6 months.

Really.

About 1.5 years ago, I was in almost exactly the same state of mind that you're currently in. So I quit my job and lived off of savings for a few months. I played a ton of Left 4 Dead and met a lot of awesome friends (most of whom are still friends to this day). I did almost nothing programming- related.

At a certain point, about 6 months in, I simply lost interest in playing games, and went back to programming. I felt rejuvenated -- actually, I felt like a completely different developer. I was now way, way more productive than I ever had been before.

So, take my story for what it's worth. It may not work for everyone, but the takeaway is, I once had a mindset very similar to "All day I've been tempted to just pop an Advil PM and go to sleep. But if I stop moving, I'm fucked, so on I go coding." It was a terrible time in my life, and I solved it by taking a complete break from software development for about 6 months, and wound up a much better developer (and much, much happier) because of it.

<comment><USER8> I am doing this right now. After 1.5 years of shuttling back and forth between two town every week, I'm now, "running a 1 man mental ward in my apartment as head shrink, head nurse, chief bottle washer, and patient."

</comment></comment><comment><USER9> You're running out of runway and have two choices:

1\. Safely abort take-off: Stay back on the ground, join the rest of the employed world, and find a salaried job.

2\. Crash: Let your emotions get the best of you, and stubbornly try to take flight in spite of the laws of physics working against you.

There's no shame in choosing option #1. People that do so have the option of taxi-ing around for a while and attempting another take-off. People that choose #2... not so much.

Now, I'll stop with the bad airplane analogies :)

<comment><AUTHOR> 100% right. I will be following this advice.

</comment></comment><comment><USER10> Yep. I've been there, and still paying back the loans I borrowed which finish end of next year. Third times a charm though. I now have 16% equity in a performance management biz which is doing well. I believe most successful business men go bankrupt or got themselves into serious debt. Believe me, you're not alone in your desperate situation and I hope your situation improves quickly!

<comment><USER9> I wish I had a link to the report, but the Canadian government did a study where they showed exactly what your intuition told you. Even successful entrepreneurs had notoriously big debt loads in the early years. We're not talking double the average, but sometimes 4-5x that of salaried folks. Of the unsuccessful ones, a significant chunk went bankrupt due to their high levels of debt.

</comment></comment><comment><USER11> Charleston is a beautiful city. I came very close to moving there twice in the past few years.

Get a J-O-B there for a while and stabilize your money situation. Enjoy Isle of Palms and the rest of the city. Go up to Hilton Head, down to River Street in Savannah. Heck, go down to St. Augustine for a longer trip.

Clear your head, get some money. Then, if you're game for the entrepreneur game, go for it once again, being careful to not get into the situation you're in now. You won't be the first who's gone that route.

</comment><comment><USER12> Seems like you have more domain expertise than you know what to do with. Time to fashion yourself into an Adwords expert, or maybe shoot these guys an email, they're a YC company:

<http://adgrok.com/>

<http://news.ycombinator.com/user?id=antongm>

If I was you I would give them a call and don't take "no" for an answer; push for a restraining order.

<comment><USER13> Nice timing to the Techcrunch post on Adgrok: [http://techcrunch.com/2010/08/09/adgrok-simplifies- keyword-b...](http://techcrunch.com/2010/08/09/adgrok-simplifies-keyword- bidding-and-more-on-google-adwords/)

</comment></comment><comment><USER14> Sounds more like your colleagues have lost faith in the project and you want to continue on with it. If that's the case then it may be time to find a J.O.B. and put this on the sideburner. If you have faith in it, have collected plenty of positive feedback, and have interested parties lined up to use it, then there's nothing wrong with going to earn a paycheck to take care of your basic needs first. It may take longer but it may also refocus you on the tasks at hand.

That... or go get some angel funding. There are more incubators/angels than just PG. How about family? Friends?

Though it really sounds like your cohorts have lost interest (since they don't seem to be out hustling for more funding and have told you you need to work without even ramen money).

</comment><comment><USER15> This what I would do in your situation:

1) Calm down - Right now you are more than likely worried about your future, but being emotionally upset is not the best time to make decisions. I would suggest getting an Indian head massage from a professional, take one every day for 3 days. Go with one you find on Gumtree(don't look at me like that, it's just a massage).

2)Exercise - This also is targeted at your emotions, getting endorphins in your system. Doing this will allow you to feel happy and confident. Do 30mins at least 75-80% of your maximum heart rate for as long as you are in this situation. You can take a break once a week. If you are dieting, stop. You should try to keep your calories at maintenance level now. Cutting back on calories can lead you to be more depress or emotional.

3)Get around people who don't care - At this point you should try to put as much distance between you and any other person who would express sorrow at your current situation. Any contact you have with them is simply to inform them of the situation. We are trying to avoid you having a pity party.

4)Get a contract job - At this time you might want to consider finding a 3-4 month contract job to resolve your cash flow situation.

5)Borrow Cash - Before you get your contract job, you might need to get some immediate influx of cash to cover your expenses. At this time, you should be calling a family member to borrow some cash to stay afloat. At this point you should be calm and relax, reassure them that everything is going to be alright and soon you will have a contract job to repay them.

6)Don't Quit - When you are working the contract jobs, use this time to jot down ideas. Have about 1000 ideas over the 3months for your startup. This would keep the passion flowing for the startup. Also, it would be a good time to do customer development; find those 10 customers that the smart bear guy talked about. You might even have to pivot your start-up but that is all good, just don't quit.

</comment><comment><USER16> There is no such thing as a perfect app. That is the first problem I see. Developers often fall victim to this line of thinking, and who couldn't? I mean, after all it is your baby, of course you want it to be perfect.

That's not reality though. You need customers. Not perfection. I think you should set a goal for yourself to release by the end of the week. I'm not kidding. Get it out there and validate the product. Find customers. And read more Jason Cohen.

Good luck.

</comment><comment><USER17> OP, I really hope things turn out for the best for you.

There's another lesson to be had here: save more than two months' worth of living expenses when you're still drawing a salary. You never know when shit hits the fan.

</comment><comment><USER18> It really is time to cut your losses as much as you can. First things first!

Github released a service today for IT job postings, sounds like you might want to check them out, as well as any other short term way to plug the hole so you won't slide (further) in to debt.

Then, when you've stabilized your situation you can start to figure out what to do next.

</comment><comment><USER19> I live in Charleston. If you need a loan, a sympathetic ear or a sympathetic beer, find me on Twitter @warwickp any time.

</comment><comment><USER20> I would suggest taking a brief vacation (1-2 weeks) but go totally unjacked, no laptop, no Internet. Relax, think about life and appreciate life in general, eat healthy. This will recharge you nothing else. Then, come back and find a good job. With your experience this shouldn't be too hard.

</comment><comment><USER21> Go find a gig and keep bootstrapping it. Even if you're close but not there yet, get some income coming in from somewhere so that you have the opportunity to ship it. Be smart, be frugal and keep yourself afloat so you product can see the light of day!

</comment><comment><USER22> It sounds like you have yet to release a usable version. You mention that you worked on it a lot, and wanted the thing to be perfect, but a newly released product is never perfect. Get to a point where you can release what you have, and then incrementally improve it.

Since you'll likely be getting a job to support your own efforts, you probably want to reach an agreement with your current partners to phase them out, unless they have useful effort to contribute. Since they supported your effort for a number of months, though, they do have some sort of legitimate claim on some of the work you've done, so I'm not sure what the agreement would look like.

</comment><comment><USER23> If you know Adwords/SEM at all it should be pretty easy to find a consulting gig for local small businesses. Charge a percent of spend or $100-150 hourly for your time. This is what I did when I invested lots of money into my business and needed some extra cash. Most businesses don't know anything about online advertising and would be extremely eager to let you set up their campaigns. My email is in my profile, feel free to get in touch if you want to know exactly how to pull this off.

</comment><comment><USER24> I sympathize with a fellow geek... I almost ran out of money trying to get a couple of projects off the ground. Had to run back into the arms of "the man" to get my daily bread:) I need someone to do one of those "stand by the side of the road" ads for my site (www.meshipu.com), don't worry you wont have to ware a costume:) If you are interested let me know, we can work something out that might help you to at least stave off homelessness for now. email: questions at meshipu.com

<comment><AUTHOR> I tried to email you but it bounced back to me. I am intrigued by your ad idea though. I'd be happy to get some more details. I could totally goad a super hot chick into doing it.

<comment><USER24> hi k33n, Sorry about the bounce...The problem should be fixed now.

</comment></comment></comment><comment><USER25> Edison took 6000 tries to find the right filament. There is no harm in trying again - now or later.

<comment><USER26> Wow. Just think about how much burnout he suffered before finally succeeding.

<comment><USER27> haha. 2nd best pun of the day (best was "P=NP'ing ain't easy")

</comment></comment></comment><comment><USER28> Sorry to hear you're having such a rough time, it's tough when the money dries up. Good luck in the future.

<http://www.joelonsoftware.com/articles/fog0000000069.html>

[http://37signals.com/svn/archives/sanaz_ahari_just_ship_it.p...](http://37signals.com/svn/archives/sanaz_ahari_just_ship_it.php) (replace big company with (seemingly) unlimited budget).

</comment><comment><USER29> Ahh..the Magento trap. You seem to be suffering from burnout.

My advice to is....leave it all behind. Pay your bills and move to your parents house for awhile if you have to. Have no payments haunting you. I believe that what's causing you all that stress is the rent.

I know it may sound ridiculous but your parents will help you by supporting you on this difficult time. And you can use that time to get your business straight.

Or maybe you need a restart, refresh, start over. If so, give yourself a few weeks or months, and do something unrelated to your job. Learn a new skill, work on something different. That will clear your head up and maybe bring some cool ideas. Then evaluate if you still want to work on this.

</comment><comment><USER30> When you're sitting in your rocking chair and you're yelling at kids to get off your lawn, before you fall back asleep are you going to wish you stuck it out for a few more months to see what happened?

</comment><comment><USER31> Man, that sucks. I grew up and lived in Charleston for years before moving to the Denver area (I'm planning to move back next year...yes it's that nice there :)). Like you I also got screwed (though not as bad) by my potential co- founder. He flaked out after I moved here, but luckily I hadn't quit my job yet.

There are not that many tech companies in Charleston. I'm curious who exactly were you working for. The situation sounds a bit shady and right up the alley of a couple of companies I know of there.

</comment><comment><USER32> Stop working on it for a while, go get a job to sustain yourself, save up some money, working on it weeknights/weekends and once it's it at point where it reaches some sort of critical mass, quit the job and live off of what you saved up. It's like when you're playing starcraft, you don't have an adequate supply of minerals, and you keep unsuccessfully trying to harass the enemy. It's not going to do anything. You have to focus on getting some dough, ramping up your production and then punk the enemy.

</comment><comment><USER33> I'd definitely go back to paid work, first and foremost.

</comment><comment><USER34> It's always darkest before the dawn...or before it somehow gets even darker.

I know there are all kinds of debates here about "Quit and follow your dream!" vs "Do it nights while working a job during the day" Sounds like you tried option 1 and it didn't work out. Maybe it's time to give option 2 a try, assuming you're not so burned out that you'd rather just chuck it all.

</comment><comment><USER35> I know and understand the feeling. Let it out and start managing the next second, minute, hour and day, little by little !!!

</comment><comment><USER36> I've been in a very similar situation for almost 2 years. I keep getting sucked into startups that sink for whatever reason before they get off the ground, and it digs me in deeper every time.

No advice here - I'm still dealing with the problem myself - but I agree, it sucks.

</comment><comment><USER37> I'm curious–is what you guys presented similar to what AdGrok (YC S10) is doing?

I wish you the best of luck, but personally I wouldn't stick around. Regardless of who owns the IP, you have some newfound knowledge/domain expertise. I would pack it up and head west.

</comment><comment><USER38> Oh, this is bad. You should rethink, maybe try something totally different. When you have the killer idea, it is still time to restart. Didn't you think about it, when YC did a review and decided against your project?

Anyway kudos for keeping trying and good luck.

</comment><comment><USER39> I feel your pain, man. I have no prescription for you except to just keep on trying different stuff, but IMHO you have every right to vent.

</comment><comment><USER40> I've also had Magento projects rob me of my dignity, so therefore I'm inclined to be sympathetic.</comment>


Cellauto.js – a library for creating cellular automata simulations in JavaScript - <AUTHOR> http://sanojian.github.io/cellauto/

<comment><USER2> This is similar to: [http://rileyjshaw.com/terra/](http://rileyjshaw.com/terra/)

<comment><USER3> Love the examples on this page!

As the author of Terra, I'm surprised to see how similar the API for cellauto is... and by that I mean it's nearly identical :-P sanojian, were you aware of Terra while writing this?

<comment><USER4> Hi yes, I need to attribute to you in some way. I did look at terra.js before writing cellauto.js and used some of your excellent API ideas. I will put you in the README.md with a link to terra. Is there anywhere else you want to be attributed?

<comment><USER3> Cool, thanks! Happy to have helped out. A little section on the site under About and on the README should be fine :)

<comment><USER4> Done and done. Let me know if you want it anywhere else and thanks for writing terra! :-)

<comment><USER2> Impressive work everyone! At first glance, its hard to tell the libraries apart, but I have noticed some subtle differences. I wonder if, as authors, either of you would be willing to elaborate further?

</comment></comment></comment></comment></comment></comment><comment><USER5> Make me to remember a game from Cactus, Dear Agent! [http://cactusquid.blogspot.com/2010_10_01_archive.html?m=1](http://cactusquid.blogspot.com/2010_10_01_archive.html?m=1) or the PixelJunk game Shooter [http://pixeljunk.jp/library/Shooter](http://pixeljunk.jp/library/Shooter)

Nice work!

</comment><comment><USER6> I always wondered how simple fluid physics worked. I actually brute forced my way through my own ECA implementation back in college, and never made the connection. Upon loading the page and seeing the fluid example, I had one of those zen koan enlightenment moments. Thank you for posting this.

</comment><comment><USER7> This looks really good. The pixelated water simulations gave me flashbacks of a Acorn game called Cataclysm[0].

[0] [https://www.youtube.com/watch?v=VMlZ2MwYvuA](https://www.youtube.com/watch?v=VMlZ2MwYvuA)

</comment><comment><USER8> Very neat, but it doesn't have any idea of water pressure so a common V pattern that appeared in the caves don't equal out. Anyone know the best way to simulate that?

<comment><USER9> I would like to know that, too.

You would have to add the weight of the material and track the pressure of each cell along.

Also, you could introduce a 'firmness' factor, so that the rock would break at some pressure level.

</comment></comment><comment><USER10> The rain example is great. Reminds me of minecraft.

</comment><comment><USER11> Quick, somebody make a game out of it!

</comment><comment><USER12> Look forward to seeing the next version of this Library!

</comment><comment><USER13> Can you build other examples?

<comment><USER4> I am the author of this library. I would love to add more examples. What would you like to see?

<comment><USER14> Fire

<comment><USER4> I added a forest fire example. That is maybe not what you meant. I will work on a campfire in 2D type fire next which is what you probably meant.</comment></comment></comment></comment>