Invert, always, invert - <AUTHOR> https://www.anup.io/2020/07/20/invert-always-invert/ <comment><USER3> This is also a great way to surprise people.

Surprise seems to be one of the most important ingredients to getting things to spread (I won't quote the academic or anecdotal research of that here.) So I use this inversion analysis often in thinking about coming up with ways of surprising people. My most successful example of this:

I was originally thinking, "How can I get more customers?"

Inverting it I came up with, "How can I lose more customers?" (A different inversion from the OP's but an inversion nonetheless).

Using that as my base I came up with this funny campaign where I tried to figure out how to fire more of my customers. What if I could fire the worst of my customers. So I invented a honey pot website called trickajournalist.com where I described some software you could signup for to spam journalists. And then I used the list of people who signed up for that and banned them from using my product that had an email newsletter component. We didn't want spammers.

It was a nice media/traffic win for what we were doing. And it all came from inverting what we originally struggled to answer.

P.S. If you're interested more in the whole trickajournalist.com thing, the original site is dead now, but some articles about it:

[https://www.forbes.com/sites/nathankontny/2018/02/27/trick-a...](https://www.forbes.com/sites/nathankontny/2018/02/27/trick- a-journalist%E2%80%8A-%E2%80%8Athe-next-innovation-in-email- marketing/#42d395f91d25)

[https://www.forbes.com/sites/nathankontny/2018/03/08/reddit-...](https://www.forbes.com/sites/nathankontny/2018/03/08/reddit- banned-me-so-why-didnt-google-and-facebook/#1702cd5f15a2)

<comment><USER4> So you lied to a bunch of people? While enticing them to participate in bad behaviour? I don't get the joke

<comment><USER5> I doesn't seem like a joke to me. It seems like a sincere way to filter out bad actors.

<comment><USER6> ...by being a bad actor yourself? I'm with the parent poster, I don't get it.

<comment><USER7> Context matters.

A bad actor towards spammers and a bad actor towards your legitimate customers are not the same thing.

A bad actor towards spammers, is being a good actor towards their legitimate customers.

<comment><USER6> Thank you for taking the time to respond instead of just downvoting. However, this is an Ends Justifies the Means argument, which I have always disagreed with and also disagree with here.

</comment></comment></comment></comment></comment></comment><comment><USER8> As a software developer I have been doing this exact thing for the past twelve years: think of all the possible reasons why something can fail.

The downside is that I have trained my mind in such a way that it is difficult to turn it off outside of work and it is influencing my personal live negatively.

(or maybe I'm just wired to be a doom thinker and that is what makes me a good software engineer)

<comment><USER9> I wanted to contribute the same to this discussing.

At work, I'm really good at thinking things through and avoiding unnecessary work. Outside of work, I worry that when we restructure our roof, we will negatively impact the neighbors solar panel output. I constantly grind about how I'm going to discuss this with them. Even though we may not even restructure the roof.

Or I wonder how I'm going to handle it the next time my neighbor turns on an outdoor speaker. Even though he may not, for months to come, and when he does, I might just be on my way out.

Now the wife and kids want chickens, and I'm sitting here discussing (in my head) how our neighbor is wrong about all the downsides she may bring up. Even though she may even like that we have chickens.

It's tiring and impacts my life negatively.

At work I do manage to keep a "do-ers" attitude, I mean I will start many things, take in criticism, change my approach. I think I'm generally pretty good at my job and radiate a positive attitude. I wish I was the same at home.

<comment><USER10> Yes, I am exactly the same. While at work I feel very productive eliminating future risk by being very conspicuous towards all design decisions, but the same attitude in "real life" is very troublesome.

For example, a very small random sample of thoughts that routinely pop up:

\- Lent somebody your bike? Oh my god he/she may die, because it's badly maintained (and thinking about the details about different kinds of breakage vs. harm caused).

\- Opening plastic containers or cans for food: oh my god, sharp edges may fall into the food (how to keep parts of packaging from falling into food while opening is surprisingly complex topic, think about knifes vs. scissors vs. tearing it open, all have very different hehaviour wrt. creating debris :)

\- doing mistakes when filing taxes vs. the risk and penalties that may ensue

\- furniture / cupboards being insufficiently bolted to the wall and coming down (and thinking about how it would move, where it would hit and the likelhood of bad injuries)

\- risk of injuries due to electricity after fixing electric installation at home (am I sure I didn't damage some insulator, is the ground wire really properly attached, is the strain-relief properly done etc.)

For me this is pretty much modulated by stress level. Doing a lot of sports, less coffee, and sleeping enough usually leaves me much less inclined of doing these not so helpful analysis for stuff outside work. And I'm always amazed how other people can just "wipe away" such thoughts as unnecessary without any analysis at all. Maybe that's the difference between employing proper intuition vs. striving for "mathematical proof" kind of certainty in all areas of life.

[edit] adding another perspective that is sometimes helpful in stopping overthinking: trying to analyse the full tree of possibilities is the chess computer kind of reasoning (alpha-beta search). It is pretty limited in what domains it can be applied to (e.g. it does not work for Poker or the Game of Go). On the other hand try to learn some Go and feel the difference: after gaining some experience you will give up on exhaustive analysis in many situations and just start relying on intuition, because it's the only thing that actually works for complex, unclear situations. Now sometimes I try to remember how playing Go feels when faced with real-world problems where I'm tempted to do an exhaustive analysis. See also [1].

[1] [https://xkcd.com/761/](https://xkcd.com/761/)

<comment><USER11> I can relate to this. Let me ask you a thing: when you ship things (release a product), do you feel lifted/happy like ppl here tell you, or does your worries increase (like it happens for me, I hate shipping)

<comment><USER12> Personally when I _finish_ a project I feel great. When I release a project to the world, that's when the worry kicks in.

<comment><USER11> Can you elaborate what exactly you mean by 'finish'

<comment><USER12> When the code works the way I want it to for the version I'm about to release.

Like if I've finished the code for v1.6 and am ready to ship it to customers, I feel great. When I actually send it to customers my anxiety kicks in thinking of all the support requests and criticism I'm about to get.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> A cool example of this principle in action is to read the WWII-era "Simple Sabotage Field Manual" ([https://www.cia.gov/news-information/featured-story- archive/...](https://www.cia.gov/news-information/featured-story- archive/2012-featured-story-archive/CleanedUOSSSimpleSabotage_sm.pdf)), which reads like an inverted guide to productivity. Some fun bits:

> Managers and Supervisors: To lower morale and production, think of the worst > boss you've had and act like that. Be pleasant to inefficient workers; give > them undeserved promotions. Discriminate against efficient workers; complain > unjustly about their work. When possible, refer all matters to committees > for "further study and consideration." Attempt to make the committees as > large and bureaucratic as possible.

> Employees: Be forgetful. Clumsy. Work slowly. Think of ways to increase the > number of movements needed to do your job: use a light hammer instead of a > heavy one; try to make a small wrench do instead of a big one.

> When possible, refer all matters to committees, for "further study and > consideration." Attempt to make the committees as large as possible - <USER2> > less than five.

> Apply all regulations to the last letter.

Admittedly, some of the techniques—like releasing a bag full of moths in a movie theater to disrupt enemy propaganda—are oddly specific and not easily inverted.

<comment><USER14> Amazing....

<comment><USER15> BRB. Going make a cinema-focussed remake of Hitchcock's "The Birds" that _relies_ on a few bags full of moths being released during each screening...

</comment></comment></comment><comment><USER16> I work on the algorithm for a widely used search engine and can confirm that this line of thinking has been very effective in improving our product over the years.

Rather than trying to generate hypothetical ideas for "how can we make our search better", we spend a lot of time analyzing our data to find where we are failing. Many of our biggest relevance improvements have come from tracking and understanding the types of queries where we consistently fail to generate results or user engagement.

I think it is a very effective approach, but can require some discipline and perspective. When you spend so much time focusing on the failures of your product, it can create this internal perception that the product is constantly failing and broken. So you do need to actively remember what you're doing well and how far you've come as a team/product.

<comment><USER17> > _Rather than trying to generate hypothetical ideas for "how can we make our > search better", we spend a lot of time analyzing our data to find where we > are failing. Many of our biggest relevance improvements have come from > tracking and understanding the types of queries where we consistently fail > to generate results or user engagement._

This sounds a lot like the 6-sigma approach of driving improvement by focusing obsessively on eliminating "defects".

There are certainly huge wins that can be obtained by identifying and eliminating bugs or corner-cases with undesired behavior. But it's scary to imagine a world where this is used as a replacement for innovative thinking - ie, "how can we make our search better". If Steve Jobs had focused all his proverbial efforts on minimizing flip-phone defects, the world would have missed out on the smartphone revolution.

<comment><USER18> The iPhone's competition was not the flip-phone. It was the PDA and the Blackberry and the pocket PC. The iPhone was an evolution of previous similar devices.

I still do not understand why people consider smartphones revolutionary. It is revolutionary that everyone has one on them at all times, but the gadgets themselves aren't all that.

</comment></comment></comment><comment><USER19> One of the ways to apply this inverted thinking is to conduct a "pre-mortem" at the start of a project. By deliberately imagining that something has failed, and speculating about the reasons, you can sometimes uncover useful steps that prevent those imagined failures from actually happening.

I've found this can be quite useful, both for minimizing risk, and also (interestingly) as a source for new product/feature ideas.

<comment><USER20> I think it depends on the scenario selected. I've found pre-mortems annoying, and given any number of risks that could materialise how do you choose the right one for the pre-mortem for maximum value discussion?

Plus I generally dislike the idea and feel like its a trend that should go away.

<comment><USER21> > how do you choose the right one for the pre-mortem for maximum value > discussion?

Isn't that where domain expertise comes in? It sounds pretty sensible and important to me to try to imagine various realistic failure modes and preemptively try to prevent them. To not let the website go down, pre-empting hard drive failure or DDoS makes a lot more sense than worrying about network cables spontaneously disintegrating, or the outbreak of nuclear war.

<comment><USER22> Then in reality the website is down due to the simplest things that's so common we don't reconsider it, such as user input some special characters that makes the server error.

Edit: I'm not downplaying the importance of prevention

<comment><USER23> > server error

Seems to me that bugs is then a high risk in that project. And to prevent or reduce the number of failures, the project needs an auto test suite

</comment></comment></comment></comment></comment><comment><USER24> I use an old inversion technique. Not sure where I read this, and I think Tim Ferris said it:

        The last thing you want to do is the first thing you should do

There is always something mega pertinent on my TODO lists that I really don't want to do, and it calls out my name when I sleep saying: 'You really need to do this' and the feeling of procrastination makes you feel ashamed of having not completed the task. But it gets done thanks to inversion, and I proudly check it off as being done, until the next task I don't want to do comes along (and yes it will come along).

<comment><USER25> Damn. I should finally add GDPR-compliant privacy policy to my niche side project.

</comment></comment><comment><USER26> Is the example correct?

 _> Instead of asking how do we increase the adoption of a product or feature? You could instead consider - what are some of things preventing adoption?_

Surely to invert the question you'd want to consider how do I deliberately decrease adoption of the product? It might lead to some of the same answers, like make it slower. But also to different ones, like constantly bad-mouth my own product on social media. (Which would indicate a path to adoption is to rigorously rebut criticism using Google Alerts.)

Edit: I think the difference is if I'm only looking for what about my current product prevents adoption, then I've narrowed my scope to looking at aspects of my current product. Whereas if I blue-sky think about ways to make the product bad, that allows a broader range of solutions for making it good.

<comment><USER27> Yeah a direct inversion doesn't seem to work. I think you invert the idea but with the premise that you don't want to do it.

So instead of: How do I decrease adoption?

You think: How do I avoid decreasing adoption?

I think this works anyway. Another example:

Goal: Fly to Spain

Question: How do I fly to Spain?

The inverted question should not be "How do I not fly to Spain?" (answer: get put on a flying ban or don't buy a ticket) but "How do I avoid not flying to Spain?" (answer: pick a date and book tickets)

<comment><USER28> But that isn't really an inversion, more a double negative.

The example given is "how do I keep my pilots alive?" with the inversion "what could kill my pilots?". Your result would be "how do I avoid not keeping my pilots alive?", which is just the original question.

<comment><USER29> I imagine a single negation would increase the solution space so much that it wouldn't be useful anymore. A double negation will change the question format, so our (irrational) minds treat it differently, yet keep the solution space the same.

<comment><USER30> It might be irrational in some cases, but it also might have to do with the double negation of a statement not being practically equivalent to the statement, as in constructive mathematics.

</comment></comment></comment></comment></comment><comment><USER31> The inversion principle is a great mental model in my opinion. The best way I can sum it up in the most basic way is instead of thinking "What can I do to [achieve goal]?", think "What is preventing me from [achieving goal]?".

If some of you like this, I suggest delving into the 'mental model' rabbit hole. There's some pretty inspiring stuff on it.

<comment><USER27> Is the link in the blog post a good place to start? ([https://fs.blog/mental- models/#what_are_mental_models](https://fs.blog/mental- models/#what_are_mental_models)) or do you have an alternative suggestion?

</comment></comment><comment><USER32> Reminds one of PG's "just don't die and you become rich" advice for startup founders.

FWIW, the best founders I've met within YC or outside of it have this paradoxical quality that takes high optimism about the future of their company and combines it with extreme gritty paranoia about the short-term things that could derail or kill you.

<comment><USER33> That reminds me of the foreword in the High Output Management, written by Ben Horowitz and Andy Grover's words "only the paranoid survive":

"CEOs always act on leading indicators of good news, but only act on lagging indicators of bad news."

"Why?" I asked him. He answered in the style resonant of his entire book: "In order to build anything great, you have to be an optimist, because by definition you are trying to do something that most people would consider impossible. Optimists most certainly do not listen to leading indicators of bad news."

But this insight won't be in any book. When I suggested he write something on the topic, his response was: "Why would I do that? It would be a waste of time to write about how to not follow human nature. It would be like trying to stop the Peter Principle.* CEOs must be optimists and all in all that's a good thing."

</comment></comment><comment><USER34> A similar principle from the ancient boardgame of Go is, "Your opponents best move is your best move." i.e. sometimes it can be hard to see what the most advantageous move is for you. but if you can see your opponent's most advantageous move, then just steal that one.

</comment><comment><USER35> This is how I summarize my time in photography classes.

\- What's in focus? (What's out of focus?)

\- What's in light? (What's in shadow?)

\- Where is the light coming from? (Where is the light _not_ coming from?)

\- What's in the foreground? (What's in the background?)

\- Positive space / negative space

Similar things end up happening in audio. You want to set up a microphone to record something, it's usually better to point the microphone _away_ from the noise that you don't want, instead of _towards_ the sound that you do want. When you're EQing, you usually want to remove unwanted frequencies rather than boost wanted frequencies. Etc.

</comment><comment><USER36> That's fun. My personal version of this is when I'm stuck on a problem at home or work I'll lay down on the ground and look up at the ceiling or lay on a couch with my head hanging off to see the room upside down.

Surveying an area I'm familiar with from a weird perspective always sparks new ideas for me because I almost always also see something new in that familiar place because of the positioning.

In doing so, it helps me unblock other thought processes.

</comment><comment><USER37> Interesting way of describing/thinking about hazard or risk analysis which is applied in many industries through ISO standard frameworks such as ISO 14971 for medical devices (but is also used elsewhere). Risk analysis complements requirements analysis in that risk mitigation plans become requirements of the system (if the risks meet some threshold).

<comment><USER38> I came here to note the same thing, from an aerospace perspective.

In a formal development following something like ARP4754A even before one works on the requirements that a system has to meet, the high level system functions are considered and a Functional Hazard Assessment is done to look at the criticality of those functions failing. Then one can add requirements and architectural mitigations as the system and Safety Assessment is developed.

</comment></comment><comment><USER39> The article gets it right, but "man muss immer umkehren," is better translated as "man must always turn upside down", "inside out," "turn back" or "reverse" depending on the context.

In Afrikaans, "omkeer" is derived from the Germanic umkehren and would be used as changing direction (in a military sense) or upside down as in 'leave no stone unturned.'

Strangely, nowadays I would refer to inverting your trousers as "binneste- buite" (inside-out) or "uitkeer" in Afrikaans: roughly 'about face'.

<comment><USER40> Native german speaker here: In this context, I would read "umkehren" as "turn back / turn into the direction where you came from"

<comment><USER41> I agree. I would have never thought about translating it as invert.

</comment></comment></comment><comment><USER42> What is the difference between a bug report and a feature request? Is it simply that a bug report is something the system should already be doing, either because it's an advertised feature or it's something which is universally expected from that kind of software, while a feature request is about something which the system does not do, does not advertise that it does, and is _not_ expected to be there by default? If so, we should be able to "invert" any bug report into a feature request (and vice versa), which could gain some insight by looking at it in a different way.

Another thing we could do is write a feature request — which often over- specifies what should be done in a classic up-front design way — like a bug report, which usually only specifies a _goal_ which we can't yet achieve, rather than how it should be achieved.

Yet another thing which would be interesting is TDD-style tickets. Rather than simply explaining the happy path to a goal they could explain the various things which could _prevent_ someone from reaching that goal: invalid inputs, missing permissions, inaccessible dependencies, missing UI, etc.

</comment><comment><USER43> The technique is also pretty good for acknowledging one's own personal decisions and being ok with them. For example:

What's preventing me from being richer, more powerful, more famous?

Perhaps you'd give up privacy, autonomy, free time. That might be all it takes to realize that happiness and performance are not always, or even often, the same.

</comment><comment><USER44> Funny a few years ago I thought that Failure Oriented Design could be a nice starting point. Think about all the failures/errors, the remaining space will then be a safe playground.

<comment><USER45> Thinking about all possible failures seems daunting though. It reminds me of the Anna Karenina principle:

"All happy families are alike; each unhappy family is unhappy in its own way."

What does this say about the tractability of enumerating possible failures? :P

</comment></comment><comment><USER46> It's Staparfi, it's always STA-PAR-FI!

That is:

Standard: Start with standard, commonly applicable piece of advice. Lists of these can be found many places (for example, "to achieve success, avoid failure").

Paradoxical: Reformulate in terminology that's opaque, paradoxical, jargony and truncated (OPJART!)

Fixation: Claim that's always true, that it's best thing since sliced bread. etc. Your audience will recoil but some of them will work and realize there's some good advice in your stream of jargon. And having _worked_ at getting this understanding, they will value it more and be happy to endorse the exaggerated value you're assigning to your jargon and your point, which is, indeed, something that is true moderately often.

STA-PAR-FI! This phrase can launch a thousand consultancies.

</comment><comment><USER47> It seems to me that a better English equivalent to _umkehren_ would be _turn around_. That also fits the text of the article better. That is to say look at the problem from the other side, form another angle. Invert is simultaneously too specific (leading to formulaic methods) and too ambiguous (leading to pointless discussions of whether it means considering putting the steering wheel at the back or on the other side when in fact it means do both).

See [https://en.wiktionary.org/wiki/umkehren](https://en.wiktionary.org/wiki/umkehren)

Edit: fixed typo.

<comment><USER48> Jacobi was a mathematician and his "Umkehrfunktion" is in english "Inverse function".

It also seems the common english translation: [https://www.google.com/search?q=invert+always+invert](https://www.google.com/search?q=invert+always+invert)

To be fair though:

While his Wikipedia entry has the sentence:

> He is said to have told his students that when looking for a research topic, > one should 'Invert, always invert' ('man muss immer umkehren'), reflecting > his belief that inverting known results can open up new fields for research, > for example inverting elliptical integrals and focusing on the nature of > elliptic and theta functions.[8]

[https://en.wikipedia.org/wiki/Carl_Gustav_Jacob_Jacobi#Scien...](https://en.wikipedia.org/wiki/Carl_Gustav_Jacob_Jacobi#Scientific_contributions)

The attributed source for that, a paper from 1916, differs in the translation:

[https://www.ams.org/journals/bull/1916-23-01/S0002-9904-1916...](https://www.ams.org/journals/bull/1916-23-01/S0002-9904-1916-02863-1/S0002-9904-1916-02863-1.pdf)

> The great mathematician Jacobi is said to have inculcated upon his students > the dictum: Man muss immer umkehren. One must always seek a converse, turn a > thought the other end to.

</comment></comment><comment><USER49> Murphy's law is a more humorous way of saying the same thing.

"If something can go wrong it will go wrong."

There are earlier references - but Murphy's Law is associated with high g-force testing just after WWII. The team used Murphy's law to anticipate every possible failure and prevent it before the experiment ended in death. There is nothing like death to sharpen your focus.

[https://en.wikipedia.org/wiki/Murphy%27s_law](https://en.wikipedia.org/wiki/Murphy%27s_law)

</comment><comment> mark-r Has anybody else ever noticed that mazes are easier to solve if you start at the end and work backwards?

<comment><USER50> I usually solved them that way when I was a kid, but that's only because maze designers set up forks in one direction but they don't bother doing it in the other direction.

</comment></comment><comment><USER51> Why only invert? For example when designing a car, don't just consider putting the steering wheel in the front or in the back. But also consider left and right.

</comment><comment><USER52> Great advice! I have to say though, I love the irony of the author mentioning reducing investment losses by asking the question "Am I diversifying enough to prevent long term loss?" when Munger+Buffett have the opposite view of diversification for the savvy investor - [https://www.youtube.com/watch?v=ZJzu_xItNkY](https://www.youtube.com/watch?v=ZJzu_xItNkY)

</comment><comment><USER53> This reminds me of the Dual in Linear Programming.

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

[https://web.stanford.edu/~ashishg/msande111/notes/chapter4.p...](https://web.stanford.edu/~ashishg/msande111/notes/chapter4.pdf)

</comment><comment><USER54> I have actually saw quite a few examples of Inversion

* Herta Herzog laid the foundation for the basis of modern media psychology, but simply inverting.

What do media do to people --> What people do with media.

This shifts focus from strong media influences to human being an active consumer of media.

* In statistical testing is fundamentally based on the principle of inversion, if the resulting statistic can be used as an evidence to reject the null or favour the alternative.

</comment><comment><USER55> Related passage from Bell's "Men of Mathematics":

        It (inversion) is one of the most powerful methods of mathematical discovery (or invention) ever devised, and Abel was the first human being to use it consciously as an engine of research. "You must always invert," as Jacobi said when asked the secret of his mathematical discoveries.

</comment><comment><USER56> Perhaps always invert but after approaching the problem from the front.

I would apply the 80/20 rule from both directions (so in theory perhaps spending up to 40% effort) to get the best chance of success. And really, you can't invert without first knowing enough about the problem you're trying to solve.

<comment><USER57> This follows the way my brain works too. Dog into the problem -> invert -> learn more about problem -> uninvert -> map problem in much greater detail -> reinvert -> discover truth -> solution

</comment></comment><comment><USER58> This feels too similar to my default mode of thinking, which is risk aversion, and constantly thinking about what can go wrong, and then steering away from that. Is that because this concept isn't really for me, like it's more helpful for go-getter optimists?

</comment><comment><USER59> Reminds me of how an AI agent that tries to minimize the worst case scenario is almost always better than one that tries to maximize the best case scenario.

(admittedly that's a bit anecdotal, maybe someone with more knowledge can give better details on that statement)

<comment><USER60> > an AI agent

And probably life itself.

Good article from Nassim Taleb [0] relating to rationality/irrationality and survival...

"survival comes first, truth, understanding and science later"

which would seem to relate to a the simpler model for AI centered around preventing disaster being more robust than trying to solve some form of maximization while risking ruin.

In some ways it is arguably better to be paranoid/"irrational" about risk than try to be perfectly sufficiently rational

"I have shown that, unless one has an overblown and a very unrealistic representation of some tail risks, one cannot survive –all it takes is a single event for the irreversible exit from among us. Is selective paranoia "irrational" if those individuals and populations who don't have it end up dying or extinct, respectively?"

[0] [https://medium.com/incerto/how-to-be-rational-about- rational...](https://medium.com/incerto/how-to-be-rational-about- rationality-432e96dd4d1a)

</comment></comment><comment><USER61> Well, obviously you don't always want to invert, since inverting twice will just get you back to where you started. In fact, you have to be doing worse than random guessing initially if inverting the problem in general makes it easier to solve.

</comment><comment><USER62> I have an "Invert"-related question for the HN hive mind — see below for the question, and why it's not off-topic: I'm a pretty-senior lawyer and part-time law professor; I'm working on turning some of my accumulated contract clauses and course materials into a "fair and balanced," annotated, contract _framework_ , in the form of a plain HTML document w/ some CSS styling, to support using shorter contracts in business.

EXAMPLE: Instead of doing a full-blown NDA, parties could agree, in an email exchange, that Party A will keep Party B's confidential information secret in accordance with the [name] Confidential Information Clause — presto, an enforceable NDA (in most jurisdictions).

I'll be posting the whole thing online for free under some kind of Creative Commons license, in part for my students, and in part in the hope that if people start to use it, _eventually_ I won't have to spend so much time reviewing random contract language for clients.

The current corpus includes clauses for confidentiality; consulting services; software warranties and disclaimers; limitations of liability; terms of service; payment terms; referral payments; channel partnerships; consulting services; indemnity ground rules; and other things.

I'm trying to follow (part of) the Unix philosophy: Each clause should do basically one thing, and do it well, with as few dependencies as possible (maximize orthogonality).

The materials also have numerous planning checklists for spotting issues that can come up.

The clauses incorporate typical wish-list items that work for both sides. In a prior life, I was the general counsel for a software company, and customers' lawyers liked that balanced approach very much because it reduced their workload; our sales people likewise liked the fact that the balanced approach helped get us to signature sooner, without screwing around with anatomy- measuring, "art of the deal" game playing.

The clauses are extensively annotated with citations to real-world cases where problems arose — sometimes, big problems — explaining how the clause language seeks to avoid the problems, again in ways that work for both parties.

For improved readability, I'm using Python-like indentation to avoid long, wall-of-words paragraphs of dense legalese. (That's proving very popular with my clients' business people.)

HERE'S THE QUESTION: Apropos of the "Invert" subject of the posted article, should this contract framework be positioned as:

1\. a vitamin — "balanced, readable terms to help you get workable contracts to signature sooner,"

or

2\. aspirin - "learn from others' failures by adopting the [name] framework in your contracts."

All input gratefully received.

<comment><USER63> Huge props for this effort, I'm very excited to use this system. I'd advise you to think about the audience for this work. To my eye, that audience is the small and medium sized business leader, especially those with a technology focus. The problem this solves for them is getting the legal stuff done as quickly and cheaply as possible without sacrificing any important legal protections. They don't really care that the contract is balanced and readable except in as much as that speeds up the negotiation and let's them verify that they are not getting screwed.

Your basic one liner might be something like "Create real, legally valid contracts over email"

Expanding on that you could say "Use our standard library of legal clauses to build your own contracts in a safe and legally defensible way. Each clause is designed to serve a single purpose and offer each party fair, battle-tested legal protections. The library itself is free, open source and licensed under the Creative Commons. It can be used by simply referencing the clause by name in any document, even email. Every clause is annotated with plain English explanations, so it is easy for all parties to understand what your contract says. Go _here_ for a quick tutorial on how to use library, including a primer on the top N most important clauses for business deals"

Later you might want to explain why you made this "I/we made this because we spent thousands of hours reviewing the same boilerplate contract language, fixing the same mistakes and watching the same disagreements play out between the parties. Taking a good idea from software engineering, we set out to create a trusted standard library for building legal contracts that would solve these problems once and for all. The library was created by professional contract lawyers and academics with decades of experience, so every word is backed by mountains of case law and legal precedent. We're confident that the library can be the legal backbone of your next deal."

<comment><USER62> > _To my eye, that audience is the small and medium sized business leader, > especially those with a technology focus. The problem this solves for them > is getting the legal stuff done as quickly and cheaply as possible without > sacrificing any important legal protections. They don 't really care that > the contract is balanced and readable except in as much as that speeds up > the negotiation and let's them verify that they are not getting screwed._

Exactly — thanks!

<comment><USER63> Also, down the road you might consider making a non-profit to manage improvements and updates to the clauses. You could even apply to YC with said non-profit. I'm sure they'd be interested.

</comment></comment></comment></comment><comment><USER64> I wonder if this is better described as "solution-oriented" problem solving versus "failure-oriented" problem solving.

Inversion seems like a misnomer and is easily conflated with the logical/mathematical meaning.

</comment><comment><USER65> This seems to line up really nicely with "Jobs-to-be-Done Theory" proposed by Clayton Christensen and Co [1]. This inversion approach seems like a great technique to help move from thinking about products and think about the jobs that need doing.

[1] - Competing Against Luck - [https://www.amazon.com/Competing-Against-Luck- Innovation-Cus...](https://www.amazon.com/Competing-Against-Luck-Innovation- Customer/dp/0062435612)

</comment><comment><USER66> This is only one of the principles featured in TRIZ.

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

</comment><comment><USER67> I'd follow up inverting with decomposing.

Solving smaller problems in the service of the bigger one is as powerful as flipping the problem upside down.

</comment><comment><USER68> This is instinctually how those of us with anxiety disorders and cognitive challenges think. WAVINGEMOJI hi please feel free to ask us how to help when you see us around.

Edit: sorry, didn't mean to volunteer anyone else! Just ask those of us who make ourselves available for it, you know us as the people who are constantly warning doom.

</comment><comment><USER69> "Instead of asking how do we increase the adoption of a product or feature? You could instead consider - what are some of things preventing adoption?"

      What if I started with " what are some of things preventing adoption?" Would I be incorrectly inverting? But you did say always invert.

<comment><USER29> If you started with "what is preventing adoption?" you would explore the answers to that question first, and then would still gain additional insight from asking "how do I increase adoption?".

</comment></comment><comment><USER70> It seems like a good model, but probably because it helps you see things from a new angle.

That is, the benefit is not focusing on (not (not A)) instead of A -- with the right choice of A you can flip those, but rather when everyone is thinking about A, see if a double inversion offers new solutions. My 2c

</comment><comment><USER71> According to positive psychology it's better to do something good rather then avoiding something bad. But it's good to ask yourself _why_ you want to do something, as there might be easier ways to achieve the same thing once you understand what you really want.

</comment><comment><USER72> In combinatorial optimization, the basic principle is is always: every primal, has a dual. That is, minimazing some expressions, means maximizing the other. Primal-dual would also - I feel - fit better to the principle, as described in this article.

</comment><comment><USER73> Something tells me OP hasn't read Polya "How to solve it" and is attempting a bad rediscovery of a tiny aspect of the overall body of problem-solving tactics.

</comment><comment><USER74> My uncle has a similar saying: "The most important consideration in any situation is the alternative". He's a very smart man and an excellent engineer.

</comment><comment><USER75> This is also how some problems are solved more efficiently in Operations Research: solving the dual of the problem instead of the actual problem.

</comment><comment><USER4> I think this is useful in zero sum/life and death situation. Otherwise you might go on a path which leads away from your core values and intentions.

</comment><comment><USER76> Dialectic is now called "invert" ?

</comment><comment><USER77> I think hackers are pretty natural at this type of thinking. A la "what this application is not supposed to do?"

</comment><comment><USER78> In business, I believe this translates to always protecting against the downside.

</comment><comment><USER79> "Imagine the worst possible outcome. Now . . . avoid that." -Baptiste

</comment><comment><USER80> I'd never thought of Charlie Munger as a pomo, but here we are? Next thing you know the POTUS will be engaging in a supplementary play of meaning which defies semantic reduction?

<comment><USER80> Pedantry for those who have implicitly asked for it:

Munger spots binary hierarchical oppositions, such as between forwards and backwards, seeking and avoiding, or intelligence and stupidity, and displaces the privileged term, what we take implicitly to be primary, by inviting us to consider the secondary term in its own right, as another endpoint of the same relationship.

(Is this process somewhat like Category Theory's displacement of objects by consideration of the arrows between them? Attacking problems by inverting to generate coproblems?)

</comment></comment><comment><USER81> simple and actionable. A quick way to snap out of what is currently constraining my thinkign

</comment><comment><USER82> In other words, minimize regret.

</comment><comment><USER22> Me: how can I finish this project smoothly

Inversion: what can makes this project not finished smoothly

My answer: if my boss died

Me: ...

<comment><USER83> So you'll look out for the health and well-being of your boss/colleagues and look for ways to improve the resilience of the organization?

<comment><USER22> For me it means not everything can be prevented, and sometimes whatever bad can happen, happen. It's out of our control. We just need to handle those in our control and predict the probability of uncontrollable one, and whether we can accept those risks (probability * severity).

Edit: and that's why coronavirus is so devastating to businesses. Primarily because it's probability is so small with high severity and it's out of our control.

* On a side note, I really have thought about it once, that my ex boss's diet is so horrible I'm afraid he will caught a disease. Thankfully it didn't happened in my 4 years of working there.

<comment><USER84> Think of it like alpha-beta pruning. You look through all the alternatives, and some will yield useful results, others will be useless so you can prune those and concentrate on the useful.

</comment></comment></comment></comment><comment><USER85> short and helpful reading. thanks for sharing

</comment><comment><USER86> Great short post! Big fan of Farnam Street and Charlie Munger myself as well</comment>


The Saltiest Users on HN - <AUTHOR> https://www.hackersalt.com/ <comment><USER2> It is my feeling that sentiment analysis has a ways to go. Here are a few of the comments I've made that the system has described as among my saltiest:

 _Oh, sorry, "nm" means "nanometer" to me, but of course nautical miles._ (Score: -0.5. Comment is entirely taking responsibility for misinterpreting someone)

 _Well, if he was trying 1M combinations every 40 seconds, for $7 per hour, and he didn 't need to use hundreds of dollars per hour of commute time, let's say 10 hours = $70. That's 900M combinations per hour, so 9B combinations in 10 hours. If he was trying combinations using upper-case characters, lower- case characters, numbers, and let's say 20 symbols, that's 82 possible combinations for each one. We'd expect him to find the password after exhausting half of the search set, so we want log base 82 of 18B. That suggests 5 characters. If he let's say just used lower-case characters and numbers, that's log base 36 of 18B, which suggests 7 characters._ (Score: -0.32. Comment is 100% technical, with no meaningful sentiment.)

 _Sorry, I submitted this article earlier with the wrong link._ (Score: -0.27. System appears to regard legitimate, largely bloodless apologies as salty.)

 _Note that the article is from approximately 20 years ago._ (Score: -0.24. This is to some degree a critical comment, but it's a short, straightforward statement of fact.)

 _Probably too late to reply, but I mean things like :ets.method or :queue.whatever._ (Score: -0.20. Probably it's cueing off the first phrase?)

<comment><USER3> Thanks for trying my app! And thank you for taking the time to respond!

It does have a LONG way to go. These are valid criticisms. And all areas we are working to improve on with our next ML model. (Sad vs Negative, rating numbers as "salty",

This model is pretty simple. It's using TextBlob and looking for a combination of negative sentiment (not necessarily condescending) and subjectivity. Essentially hand built heuristics derived by weighting each word in the sentence. Not a great way to make predictions.

The model is FAR from great. But great from afar. For high level (overall user saltiness) it performs better.

The unlabeled dataset of this size presents some unique challenges but in our testing of our new model (based on SOTA BERT fine-tuining & a large labeled training dataset) the results look promising. I'm really looking forward to getting it deployed.

I am encouraged by the words of @pg who said "you can and should give users an insanely great experience with an early, incomplete, buggy product, if you make up the difference with attentiveness.

Can, perhaps, but should? Yes. Over-engaging with early users is not just a permissible technique for getting growth rolling. For most successful startups it's a necessary part of the feedback loop that makes the product good. Making a better mousetrap is not an atomic operation. Even if you start the way most successful startups have, by building something you yourself need, the first thing you build is never quite right. And except in domains with big penalties for making mistakes, it's often better not to aim for perfection initially."

<comment><USER2> No problem. By the way, another thing that seems like it maybe departs from the intuition of human-understanding of negative sentiment versus the machine scoring: I notice that almost all of the highly negatively rated comments that it's flagged -- both mine and others -- are relatively short.

I _know_ that there are multi-paragraph laments about how dumb other people are or whatever on HN. In general, those strike me as seeming more salty than even deeply negative one-sentence putdowns. Like, sure, "Javascript is awful" is clearly negative sentiment. But spilling a few hundred words on the topic of "Javascript is awful" is surely more so?

<comment><USER3> That is interesting. I"ll have to explore that correlation and make sure that we have a good baseline comparison for the v2.0 model.

Thanks!

</comment></comment></comment></comment><comment><USER4> The scoring heuristic could use some work; I've already encountered multiple "salty" comments along the lines of "That sounds awful", with a sympathetic tone, probably tagged because of the word "awful".

<comment><USER5> Agreed. It looks like they went through a dictionary and scored the words on a negativity/positivity axis, and then just took the mean of all the scoring words in a post.

I have written posts very much saltier than the ones scored as saltiest by this ranking algorithm, possibly because I didn't use inherently negative vocabulary to express a highly negative sentiment.

It's a fun party trick, but its usefulness is limited without semantic analysis or live-human scoring.

20.23% of my posts are rated as "salty". I wonder what percentage of scoring words are rated as negative.

<comment><USER3> You're spot on. This model is based off a dictionary with scored words!

For the curious you can see the dictionary here: [https://github.com/sloria/TextBlob/blob/eb08c120d364e9086467...](https://github.com/sloria/TextBlob/blob/eb08c120d364e908646731d60b4e4c6c1712ff63/textblob/en/en- sentiment.xml)

The package used is a pretty popular one called TextBlob. It is nifty for working with unlabeled data like we have with the HackerNews dataset.

We really focused our definition of saltiness around being a combination of (subjective + negative) comments.

We reduced the impact of (objective + negative) as we feel that criticism, while at times painful, if presented objectively isn't necessarily salty.

We built this model fast (1 week) and have since iterated this week into developing a Fine Tuned BERT model that we are training over a much broader set of toxicity, demographic, and polarity features. The training set is much larger and higher quality so we are expecting a large jump in precision upon deployment.

I hope the app gave you some good chuckles as you went around though. It's hard to explain how excited I felt when I saw pg_is_a_butt at the top of my pandas data frame the first time I processed the data.

It's doing a little bit right. :)

<comment><USER6> My saltiest comment was reportedly "If taxing price gougers seems stupid you're going to hate the pitchfork-toting mobs." I'm not sure how to work some kind of contextual analysis into it but I'm pretty sure it's something on your to-do list. Good on you for the creative idea and implementation and putting it out here for us to sprinkle salt on.

<comment><USER3> TYVM.

This kind of feedback gets me pumped about continuing to work on it.

</comment></comment></comment></comment></comment><comment><USER7> (testing the tool with this comment, do not take this seriously - I think it's a neat experiment)

This is the worst thing I've ever seen.

I am appalled at how terrible the UI design is. My eyes are literally bleeding because it does not have enough contrast. I can't even see my "sweet" comments so I can inflate my massive ego.

I take personal offense that the site evaluated 9 of my comments as being salty. Maybe the site is just salty!

The developer should take personal responsibility for this tool by manually counting the distribution of colors in 400 bags of skittles!

Also, ordbajsare is right. Javascript _is_ disgusting!

Here's some more words I think the algorithm dislikes: horrible, screwing, dreadful, idiot, stupid, retard

</comment><comment><USER8> This webpage is very inaccessible. The links aren't proper links, so can't be easily opened in a new tab.

<comment><USER9> Yeah, I noticed that trying to use the back button sets you back to the front page, not the actual last user you looked at. Similarly, modifying the URL to hackersalt.com/usernametolookfor doesn't actually work, despite being what appears when you get a search result.

<comment><USER3> Oh that's strange! Yep. Need to fix that! Good catch, thanks!

</comment></comment></comment><comment><USER9> The first list is mostly people who I don't recognize, and assume are uncommon posters, where one or two bad comments put them on the "saltiest" list.

The other two top lists are more interesting, because while there is a _lot_ of salty people in there I recognize, a bunch of people make the list solely based on total prolific amount of comments. tptacek, of course, as well as literally all of the HN moderators.

Apparently in terms of the raw number of salty comments, I rank 217.

<comment><USER10> I would worry about my methodology if I saw dang, who basically only ever weighs in to politely tell people to be less salty, in the #2 spot on my "Total Salt Score" list.

<comment><USER11> What's your definition of 'salty'? I think you can definitely be politely salty, and dang's comments are all saying (at least) 'don't do that' which seems to fit.

<comment><USER10> My understanding of the word lines up pretty well with the Merriam-Webster definition ([https://www.merriam- webster.com/dictionary/salty](https://www.merriam- webster.com/dictionary/salty)): _feeling or showing resentment towards a person or situation; bitter._

By that standard, just telling someone not to do something wouldn't be salty. Salty is telling someone not to do something because only an idiot would do that.

<comment><USER8> This seems to me to be detecting how "snarky" a comment is, rather than how salty, as it seems to include snappy, sarcastic, and impertinent comments.

</comment></comment></comment></comment></comment><comment><USER12> I love this!

I'm sort of proud to note that my salt score is -0.08, with my saltiest comment being:

 _The iPad and iPhone are especially dangerous when it comes to accidental downvoting. Separating or enlarging the arrows would help those of us with fat fingers._

However, (and this will apparently add to my salt score ;)), I'm curious how a comments like these get rated as expressing a negative sentiment?:

 _Out of curiosity, how does Metro look to color blind people?_

 _I used to get terribly sleepy in the afternoons; sometimes I 'd go out to my car and take a 15 minute nap, even in the brutal Texas summer. Then I started taking vitamin D and went on a paleo diet, and now I almost never get tired in the afternoons. Nada. It's a great relief to not always be fighting to stay awake._

<comment><USER13> I like the idea, but I'm very skeptical of the implementation. My saltiest comments per the tool are not remotely salty, and I'm sure I have many saltier comments. Turns out NLP is hard.

FWIW, my salt score is -0.09 ;)

<comment><USER14> > _I like the idea, but I 'm very skeptical of the implementation. My saltiest > comments per the tool are not remotely salty, and I'm sure I have many > saltier comments. Turns out NLP is hard._

> _FWIW, my salt score is -0.09 ;)_

Same salt score, same opinion on the results. My top salty comment has a score of -1.00

> > > _Unfortunately it 's not a bottle. It's just a plastic cup with a lid > and a straw. A really big plastic cup that tapers at the bottom so you can > fit it in your vehicle's cupholder._

> > _In USA even the cups have muffin-tops!?_

> _Yep. Horrific, isn 't it?_

It's a joke, it's not terribly on topic, and it's a bit glib. But salty? Nah.

Fourth most "salty" comment, at a score of -0.50:

> _I like having a library that I can flip to when I 'm bored and want to do > something productive._

Seventh most salty, at -0.45, is literally just an explanation of the second argument in Javascript's parseInt function. Ninth is just an earnest recap of a conversation about earworms.

Meanwhile the saltiest comment I saw in a quick skim is in 12th place, with a score of -0.30. I was discussing House of Cards and the then recent scandal around Kevin Spacey, and someone was putting words in my mouth and claiming I said things that I didn't actually say or believe. I was quite salty in my response(s), but here the tool marked it as 70% less salty than joking about muffin topped cups.

<comment><USER3> Yeah, it really thinks code is salty for some reason....

The Muffin Tops part is making me lol.

</comment></comment></comment></comment><comment><USER15> Defining saltiest by counting salty words has some serious limitations. #2 on the "Total Overall Score" list, merricksb, only points out reposts, and politely points users to the original post. merricksb's only sin is using the words "discuss" and "discussed". Maybe those are considered salty because "discussed" sounds like "disgust"?

</comment><comment><USER16> In the comments, it would be nice to have a link to the original comment for context.

Some comments like the second in the main page:

> Discussed 7 months ago: (435 points/163 comments)

are helpful, not salty. The old discussion usually have some interesting comments.

</comment><comment><USER17> How is saltiness trained? Are there readily available sentiment analysis tools or did the author train it himself? Anyway, cool and entertaining idea :) PS: not just seeing the saltiest but also the sweetest comments of a person would be nice.

<comment><USER3> For this version we used TextBlob out of the box with some custom weighting to avoid false positives.

We'll relaunch in about two weeks with an improved model that we're currently training on a much larger labeled dataset and SOTA BERT model. :)

</comment></comment><comment><USER13> I'm disappointed at how unsalty my saltiest comments are ([https://www.hackersalt.com/weberc2](https://www.hackersalt.com/weberc2)). I'll have to try harder. :/

<comment><USER18> Direct links just go to the home page, even though that's the URL produced by putting your username into the search box.

Rather than say something salty about that, I'll just say what we see here is an excellent example of something that should be based on traditional pages rather than a single-page application. In fact, it seems to be an SPA emulating pages poorly, and I can't imagine why anyone would want to do that.

<comment><USER19> Thank you very much for your feedback Zak. Those are totally valid points. We will definitely continue to work on the app and fix the search function and share-ability of urls.

</comment></comment></comment><comment><USER20> what turns me off about HN is how most of the conversations are argumentative and not productive discussion. I don't understand why the urge to correct or invalidate other peoples' ideas is so pervasive. Is it an appeal to control? Is it a subconscious ploy to be liked and accepted by finding a "weak idea" and attempting to destroy it, so that others will fear and revere you? Is it a yearning to be noticed and appreciated for how smart you are? I sense this layer of hostility lying about 1mm below the figurative skin of most of the commenters here. The moderation is strong here, so the hostility is usually cloaked under innocent sounding barbs like "what an odd thing to say" or "I'm _baffled_ at <what you said>". No, you're not "baffled", you're shooting a barb at that person by trying to alienate them and making it sound like their comment was so bizarre and nonsensical that it left you "baffled" when really you just disagree with it so much you're signalling that you won't even attempt to consider it.

Another great one is "you're _getting confused_ about ___". Nice casual drive- by insult on their intelligence.

I really wish the mods had just capped total users on HN, years ago. Maybe open it up (silently) once or twice a year to keep a minimum number of engaged commentary. But it's essentially the same thing as reddit was 5 years ago.

</comment><comment><USER21> Amusingly, this seems to think I'm pretty unsalty, assuming I'm not misunderstanding something.

This is amusing from two perspectives:

1\. Posting as openly female has been enough drama that the low score doesn't really jibe with how other people seem to perceive me.

2\. I have a condition that causes unusually salty sweat. There are other people here with a more severe form of it who presumably are saltier than I am, but most of you people can't compete with my brine.

</comment><comment><USER22> My guess is pg_is_a_butt gets enough salt from his username.

But this got me curious. Who are the sweetest users?

And what kind of topics generate most salt? This will be interesting because there has been a general trend on HN where people bemoan "HN hates X" with X being cryptocurrency, Tesla, new starts on Show HN.

<comment><USER3> Actually, username & story titles aren't included in the model. We may experiment with including them in the future but for now we left them out to avoid any undo bias.

Sweetest users is a good question. I'll have to build out that view some time.

</comment></comment><comment><USER14> I hope it's not based on the contents of the quoted posts alone.

> _This was explored (all the way to its grim dystopian conclusion) in tv > series Dollhouse. Might want to check it out._

That doesn't seem very salty to me, and I could see myself writing that same comment.

<comment><USER23> It seems to be based on the individual words, not the meaning. "Grim" and "dystopian" are probably considered "salty" words. My lowest scoring comment was about dissonance in music, and presumably "dissonance" is a "salty" word too.

<comment><USER14> > _My lowest scoring comment was about dissonance in music, and presumably > "dissonance" is a "salty" word too._

Alright, I'll avoid posting the lyrics to Tool's Schism...

I figured it was something along those lines, it's just very jarring to see harmless comments rank as my saltiest when I know I've posted worse.

</comment></comment></comment><comment><USER24> I'm seeing this "Firefox detected a potential security threat and did not continue to www.hackersalt.com. If you visit this site, attackers could try to steal information like your passwords, emails, or credit card details."

<comment><USER25> Cisco umberlla firewall blocks any domains that are newly registered. For new domains you have to wait a few days or not use your work's network.

</comment></comment><comment><USER26> Fun to see "Things fall apart; the centre cannot hold; Mere anarchy is loosed upon the world" is ranked above "Robert Scobel is an ass". The algorithm seems to know about tech c-list celebs AND able to recognize great literature.

</comment><comment><USER27> A lot of my salty comments are me complaining about myself or my own stuff.

</comment><comment><USER28> I'd love to see a category like "productively salty" which would do something like an h index ranking. Your score is the highest number n such that you have n salty comments with at least n net score.

<comment><USER3> This sounds interesting. I like it.

</comment></comment><comment><USER29> May I suggest removing Cantarell from the list of fonts used? The font weight used on this site makes it extremely hard to read.

<comment><USER19> We will definitely work on improving readability of the app. Thank you very for your feedback. Very appreciated!

</comment></comment><comment><USER30> "Looks like I'm going to be laid off soon :'("

Ouch, Score: -1.0. I guess this is going to be counted as salty too :D.

</comment><comment><USER31> This is really cool!

My saltiest comment is… a quote of someone else's comment that includes the word "stupid" D:

<comment><USER3> Thanks for the feedback Jake!

</comment></comment><comment><USER32> Well, I guess I'm not very salty at all: rank 1236. Only 360/1698 comments were considered salty.

</comment><comment><USER33> This is cool, but my comment history contains some comments far saltier than the one that makes the list.

</comment><comment><USER34> I guess I'm not nearly as salty as I thought. Or at least, other people on here are saltier.

</comment><comment><USER13> I would be interested to know what words/phrases are the best predictors of saltiness.

<comment><USER3> [https://github.com/sloria/TextBlob/blob/eb08c120d364e9086467...](https://github.com/sloria/TextBlob/blob/eb08c120d364e908646731d60b4e4c6c1712ff63/textblob/en/en- sentiment.xml)

Have at it. :)

</comment></comment><comment><USER35> Judging by my score... this can't see flagged comments at all.

</comment><comment><USER36> Great work! Would love to learn how the sentiment is scored!

</comment><comment><USER37> This website has no contrast. I can't read it at all.

<comment><USER3> Sorry about that, and thank you for the feedback. I'll try to make sure it is more readable in the next version. Thanks for taking the time to check it out!

</comment></comment><comment><USER38> The opposite of this would also be interesting.

<comment><USER19> I agree! Great idea.

</comment></comment><comment> grayed-down Why the hell am I not on that list?

<comment><USER3> Your account is pretty new. We intentionally remove any accounts with less then ? number of comments to discourage people from attempting to set a record. Lol

</comment></comment><comment><USER39> this is hilarious

<comment><USER20> a _computer_ converted a human's action into a number and graphed it using _sophisticated_ numerical algorithms and analysis methods. ergo it must be true.

</comment></comment><comment><USER40> "salty" is a great euphemism for "nihilistic asshat"

<comment><USER41> This comment I'm writing, as well as the comment I'm replying to, are both "salty"

[https://www.urbandictionary.com/define.php?term=salty](https://www.urbandictionary.com/define.php?term=salty)

<comment><USER42> It's funny because this one sounds much more charitable:

[https://www.dictionary.com/browse/salty](https://www.dictionary.com/browse/salty)

<comment><USER3> Broadly applied definition, weakly defined.</comment></comment></comment></comment>


Ask HN: How do you recruit a few hundred closed beta testers? - <AUTHOR>

I have a prototype that I want to test out with some users to decide whether to go any further with it.  Are there web sites to recruit a few hundred beta testers? <comment><USER2> This isn't quite answering your question, but I think it's relevant.

I recently needed some alpha testers, so I picked a community I thought would benefit from the final product and announced that I had an unattractive, bug- ridden experimental version of a product I thought they'd find useful. It was pretty much guaranteed to lose data, but if they tried it, they had a chance to craft it into what they wanted.

The 5 who responded were absolutely invaluable. It was hard, because they told me I was wrong in so many ways, but the second version is infinitely better. More, I'm _still_ getting advice from that first flux of feedback. I keep going back and re-reading it, and it's repaying me many times over.

Have you had any alpha testers from the wild? Your product stability may be at the beta stage, but is the product service?

<comment><USER3> Id agree with the above. Possibly if you can pick a community you hang out in - if you make it a personal favour/request then your likely to get a fuller response.

Also 100 testers is a HUGE number for a prototype - your just going to be swamped in constant bug reports, ideas and so forth. Getting meaningful data will be tough.

You need less than 10 serious testers for a prototype.

It's a much later stage you need those hundred; when you need to test how your code/system/hardware/site/data _scales_

</comment></comment><comment><USER4> Craigslist is a fairly common place to try to find people. You don't mention what your target audience is therefore it is difficult for us to offer more targeted advice.</comment>


How Tea Party Organizes Without Leaders - <AUTHOR> http://www.nationaljournal.com/njmagazine/cs_20100911_8855.php

<comment><AUTHOR> _Perplexed journalists keep looking for the movement's leaders, which is like asking to meet the boss of the Internet. Baffled politicians and lobbyists can't find anyone to negotiate with._

 _radical decentralization embodies and expresses tea partiers' mistrust of overcentralized authority, which is the very problem they set out to solve. They worry that external co-option, internal corruption, and gradual calcification -- the viruses they believe ruined Washington -- might in time infect them. Decentralization, they say, is inherently resistant to all three diseases._

It will be interesting to see how much impact they have.

 _Headless organizations have other problems. They are much better at mobilizing to stop a proposal or person they dislike than at agreeing on an alternative._</comment>


Ask YC Poll: Which is your favorite YC startup? - <AUTHOR>

The range of YC startups has become quite broad. I thought it would be interesting to see how their popularity varies within the hacker community. So lets try and design a poll.
Rules: Vote for only one launched YC startup and don't vote for the company you work for.
Mechanism: If your choice is present, vote it up. Otherwise submit it in a new single line comment. If two people end up submitting the same name at the same time, the lower one should delete their comment.
Karma issues: If people feel that the person to submit a new choice first shouldn't be getting all that karma, then the mods could just remove karma for the top choices once the post is no longer active.
Finally, the list of launched startups is at the top here: http://ycombinator.com/faq.html
Edit: Please use the poll choices for voting only. The place for discussion is at the bottom where a special -1 karma post has been created.
Edit: I don't think you need to be bound by any particular criteria for voting. Design, success potential, personal appeal are all valid. For example, I haven't even used the site I voted for. I was just very very impressed when I visited it recently. <comment><USER2> <http://www.reddit.com> is the only one I use everyday

<comment><USER3> I thought this was the new Reddit. I have come from there.

<comment><USER4> I think they each have their own place, the culture here is still very startup-centric (for obvious reasons) even though pg tried to change it. The programming reddit is still a better place for hacker/coding links (and comments) IMO, just avoid the other reddits. =)

</comment></comment></comment><comment><USER5> <http://www.rescuetime.com/>

Looks pretty cool and original, and seems to fit the "create value" rule more than most of the others. That said, I am under Linux and haven't tried the product.

</comment><comment><USER6> I haven't seen Weebly mentioned so my vote goes to them!

<http://www.weebly.com/>

Don't know the guys (like their blog though), don't know their business model, but their app is awesome. Intuitive, looks great and anyone can use it.

<comment><USER7> How many create-a-webpage apps is that now?

<comment><USER6> It's like email, it's been around for a very long time and is hard to get right. Same with web page creation. These guys made it dead simple... hence, they did something right.

</comment></comment></comment><comment><USER8> Xobni is pretty cool, although I'd love to have their services in my gmail instead of Outlook. I am pretty sure they have it in the works.

<comment><USER9> My vote goes to Xobni.

The founders are both great guys and they're solving an ugly problem that millions of people care about. I'm a GMail user myself now, but it's unlikely Outlook is going anywhere anytime soon.

I'm kicking myself for not pushing Adam to let me invest when I met him in Boston.

</comment></comment><comment><USER10> <http://disqus.com/> is the best IMHO

</comment><comment><USER11> <http://scribd.com/>

</comment><comment><USER12> Does <http://news.ycombinator.com/> count?

The only one I use every day.

</comment><comment><USER13> TipJoy is very cool. It's one of those "far out" ideas that might not work, but it's New Thinking and we don't have enough of that. I wish them success.

<comment><USER14> I love the idea of Tipjoy. If YC had it, I'd tip it.

</comment></comment><comment><USER15> <http://smallbusiness.yahoo.com/ecommerce/>

paid for all the others. it did pretty well.

</comment><comment><USER16> Heroku is awesome. Great idea, great vision. Scalable hosting makes so much sense for web applications. If they get it developed and working properly I'd definitely pay to use their service.

</comment><comment><USER17> <http://octopart.com>

</comment><comment><USER18> Justin.tv

They pretty much introduced me to YC and got me seriously interested in the startup world.

</comment><comment><USER19> Probably <http://8aweek.com> given how much time it's already saved me. They probably deserve some equity in my company at this point. ;)

<comment><USER20> I agree from my side, I think 8aweek.com is really a great product which everyone can use.

</comment></comment><comment><USER21> <http://snipshot.com/>

Integrating with them just rose to number 2 on my to-do list, and #1 is a prereq for #2.

</comment><comment><USER22> <http://loopt.com/>

</comment><comment><USER23> FuzzWich. They've got style.

</comment><comment><USER24> I gotta say Splashup! ( don't see it in that list )

Thats the only one i've used.

( i did vote for news.y, but that doesn't count )

</comment><comment><USER25> I'm not sure if they've publicly launched yet but I'd have to say Qtoro.com!

Besides the fact that Altay is a great guy, you can't help but love a startup that's all about trivia!

</comment><comment><AUTHOR> <http://iminlikewithyou.com/>

</comment><comment><USER26> <http://rescuetime.com/>

</comment><comment><USER27> RescueTime...see discussion below.

</comment><comment><USER28> Adpinion.

</comment><comment><USER29> reddit, xobnia, rescuetime, kiko (when it lived)

</comment><comment><USER30> news.ycombinator.com

</comment><comment><AUTHOR> Discussion begins here: (Mods please downmod this comment to -1)

people you can carry out discussion threads as children of this comment (just don't upmod it).

This way there is a clean separation between the poll and its discussion.

<comment><USER31> Really Xobni and Loopt are probably the most ballsy companies YC has ever funded. They share a lot of characteristics:

1) Seeing something powerful in contextual data surrounding phones and mail (perhaps the two most basic forms of communication ever). 2) Both are part of the Microsoft Accelerator Program- The two of them also use Microsoft technology- .NET and Outlook (C#, I think). For some this may go against them. 3) Both have founders that are very nice guys (but you definitely wouldn't want to compete against them). 4) Both are VC-backed and they never sold out earlier like other YC companies, which just shows their relative tolerance of risk.

<comment><USER32> If Xobni gets acquired by Microsoft, I think it would impact the problem of how to manage thousands of emails for potentially millions of frustrated but complacent Outlook users. Well worth the upgrade to Office 2009</comment></comment></comment>


Ask YC: Critique my Facebook app - <AUTHOR>

Check it out, let me know what you think: http://apps.facebook.com/spreadarumor/
Every Facebook app I've used so far does 1-2 redirects when you first access it and lands you on a generic add application page with a bunch of checkboxes, expecting you to grant it access to all sorts of information without any hint of what the app is or why in the world you would want it- I find this incredibly annoying as a user.
I tried to make the user experience in my application as pleasant as possible. The app does not redirect you, instead it shows screenshots and explains what the app is and why you might be interested in using it.
There's a link to login that pops up a login dialog (again instead of redirecting to the login/add page) so that the transition from reading about the app to using the app requires a minimal number of clicks and page loads.
Also, URLs are very descriptive so when you send them to others they know exactly what is being linked, for example: http://apps.facebook.com/spreadarumor/about/Sumeet_Malakar-5...
 <comment><USER2> Seems like the sort of thing that could take off on Facebook. My Wildfire app is 'similar' in that it uses the social graph to spread news

<http://www.facebook.com/apps/application.php?id=2399397752>

John.

</comment><comment><USER3> looks pretty solid, clean, and well put together

Personally I'm pretty much burned out on typical facebook apps like this ( vampires, zombies, egg hatching, and so forth ), but I could see a lot of my friends using your app

what did you write it in out of curiousity?

<comment><AUTHOR> Written in ruby, with the help of the following great technologies (most are ruby gems):

     - ramaze, the simple, modular web-framework (ramaze.net)
     - sequel as the database ORM layer (http://code.google.com/p/ruby-sequel/wiki/CheatSheet)
     - mongrel as the webserver (monkey patched with swiftiply to use eventmachine: http://swiftiply.swiftcore.org/mongrel.html)
     - facebooker for facebook api calls (http://chadfowler.com/2007/9/5/writing-apis-to-wrap-apis)
     - haml for html templating (http://haml.hamptoncatlin.com/)
     - sass for css templating (http://haml.hamptoncatlin.com/docs/sass)
     - analogger for logging (http://analogger.swiftcore.org/)
     - postgres for db backend (and sqlite for dev)

</comment></comment><comment><USER4> Do we really need an app that helps spread gossip? I admit I haven't installed it and only took a tertiary glance at it...but if it does what it looks like, I think you should use your talents for Good and not for Evil :-)

<comment><AUTHOR> Perhaps not, but I don't really expect the app to take off anyway. Just needed a simple idea to implement and get familiar with the facebook api and fbml.

That said, it seems the only apps that do take off on facebook are uninspired concepts such as Vampires, Zombies and KissMe.

<comment><USER5> Does anything not mediocre ever take off on large social sites?

<comment><AUTHOR> The better question is why?

<comment><USER6> That's a good question. I think we'll eventually see useful apps take off on social sites. The viral features of the Facebook API, namely integrating with the News Feed, have only been available since around March.

I think the ratio of useful to frivolous users of the Facebook API was much better before the new features came out. Before, the only useful thing you could do was pull down people's friend relationships from Facebook. This alone was extremely useful if you were already building something that had some substance to it.

Now, most of the apps you see are from people who are trying to capitalize on the viral featues of the API to sell ads. Instead of apps being valued for their utility, they're valued for their ability to convince users to invite all of their friends.

Eventually, the hype will die down, and some of the useful applications of the Facebook API will begin to become more prominent. Even now, I only get invitations to sill apps like Vampires and Zombies from one or two of my friends. As Facebook users begin to show more ability to discriminate based on quality, we'll see more people take advantage of the freely accessible social graph to actually do cool things.

</comment></comment></comment></comment></comment><comment><USER7> yey secrets.

looking good ;)

paul, socialmoth</comment>


Minecraftly: Inspire kids to learn computing via Minecraft - <AUTHOR> https://m.ly <comment><USER2> Got two kids and their mum been playing MCPE all day on mobile devices. I can hear her yelling instructions to her army of builders/warriors as I write. I put together a VPS instance with PocketMine (followed by ImagicalMine, a fork) for them but with no mob ai and lots of other problems it didn't hold their interest compared with playing on the local network.

It is a pity that the mobile version isn't more open so third party servers can support it. The family might enjoy something like this but I would never get them lugging a laptop around and driving minecraft with a mouse and keyboard.

<comment><AUTHOR> Yes, it's a shame that Minecraft's mobile version isn't aligned with Minecraft PC version, while Minecraft PC is better and more popular for online gaming.

If you are to setup an online platform for your family, it's best to setup a PC version. It's just more enjoyable for now.

P/S: I do hope that MCPE is one day aligned and compatible with PC. For sure it won't be the other way around.

</comment></comment><comment><USER3> The "learning" element seems very loosely connected to the product. Call it what it is - a scalable minecraft server.

<comment><AUTHOR> I know. I haven't opened source it for long, it's just been 2 weeks now. For the past few years, I hired developers to help me make the prototype. As of right now, I feel that it's better to donate the work to the public, and write content, create videos showing people why it's designed like that via Minecraft.

The purpose is via this platform, kids can learn conciously or subconciously, so that in the future they can remember that a game with this kind of architecture exists, and build something more scalable, better in the future.

</comment></comment><comment><USER4> My nephew was quite into minecraft for a while. I ended up setting up an EC2 based server for him.

To avoid crazy costs I setup a bit of infrastructure: I managed to pipe the active / logged in user count of the minecraft server to cloudwatch: 30 mins of server in-activity and I had the server shutdown (to avoid paying for it to run 24x7). Additionally I setup a webpage that he could login to (only used basic auth to be honest) and click a "start server" button. This sent the ec2 start instance command to AWS. Granted he didn't have instant play capabilities (had to wait for server boot up) but the costs were quite low.

I personally installed any mods or plugins he wanted.

I'd highly recommend rolling your own setup like this to anyone interested :)

<comment><USER5> My son is just starting down this road - and I have no idea what plugins for minecraft are. If you could put up a blogpost or pointers on this Inwoukd be very grateful

<comment><AUTHOR> Sure, I will do that!

The reason I created this is to:

1\. Tackle my challenge of scalability.

2\. I love Minecraft and have seen it being non-scalable for a long time, without people doing anything about it.

3\. I want to remove the hassle of you having to setup your own server, with all the installation, and plugins, etc.. Maybe you and your family can just hop in and play, and things will be kept for as long as Minecraft is alive.

4\. The already setup version of Minecraftly has a disadvantage that it is limited in terms of plugins. I only choose cosmetics, fun plugins to install in this project, so actually you can't choose plugins, unless you use the open source code and host it by yourself. It's a little like Wordpress.com's add- ons vs wordpress.org self hosted version

That is how I view it. :)

<comment><USER5> Please shout when you have got a draft :-)

</comment></comment></comment></comment><comment><USER6> [https://s.m.ly/](https://s.m.ly/)

Garbage p2w microtransactions. Seems like they even sell access to the nether/end, core parts of the game.

So nothing to see here, move along, another minecraft server host looking to exploit kids with access to their parents' credit cards.

<comment><AUTHOR> Minecraftly is open source and going to be transformed to a non-profit organization soon, but I still have operational costs to run the service.

In fact, I am further from a p2w model, as there are only cosmetic items and boosters in the store.

It took me years to build the first scalable architecture, after many mistakes, but at least I got a working version, and want to donate all the software and ongoing work to the public.

<comment><USER6> Either you're misadvertising what you're selling in the store, or you're flat out lying. Allow me to list some things you're selling (all from [https://s.m.ly/](https://s.m.ly/)):

\- Access to Nether and The End worlds.

\- Higher jobs xp and income!

\- Buy Lifetime VIP rank and get an extra Treasure Trove, and Dreaded Warrior crates for free! (Dreaded Warrior gives you 300 crates that drop enchanted diamond armors, weapons and tools. Gain a chance to win God armors, weapons and tools with full maximum enchantments.)

\- Get 850 crates that drop enchanted diamond armors, weapons and tools.

\- Get $36,000 in game money.

All seem pay 2 win to me. On top of that you're selling stupidly basic functionality that shouldn't be for sale:

\- Mute, kick, and ban other players from your server (and many other admin commands) at (username).m.ly

The fact that you're open source is irrelevant. I don't care how your service is implemented, I have issue with your business model and target demographic.

Your intentions are also irrelevant, the road to hell is paved with good intentions. Actions speak louder than words.

<comment><AUTHOR> There is no winning in Minecraftly.

I have every intention to make the value added service non pay2win, and if users are not happy about it, I have every intention to change it to fit what users want, paid or not. So far, people are happy with what I provide.

There is nothing like god mode, PVP boost, etc.. in here.

If you are truly unhappy with a certain part, I will take it into consideration. If you are really just here to hate, I can't help, because companies like Miniclips provide games with the same store system for almost 2 decades.

<comment><USER6> > There is no winning in Minecraftly.

Let's not try to define away issues. You are selling items for in-game advantages that aren't just cosmetic (e.g. you take less damage and die less often with diamond armour, which is something you sell and is rare otherwise). That is called pay2win.

> I have every intention to make the value added service non pay2win, and if > users are not happy about it, I have every intention to change it to fit > what users want, paid or not. So far, people are happy with what I provide.

I mentioned in my last post that I consider intentions are irrelevant.

> There is nothing like god mode, PVP boost, etc.. in here.

That is not necessary to be classified pay2win, at least in my book.

> If you are really just here to hate, I can't help, because companies like > Miniclips provide games with the same store system for almost 2 decades.

And I also take issue with them. And I'm not just here to hate, I'm just voicing my criticism on what I believe to be a morally bankrupt business model targeting vulnerable children.

<comment><AUTHOR> I understand now. Your definition of pay2win is different from the nature of Minecraft.

It's okay. I'm new here and I won't argue with you.

But you can't disregard my intention, because of it I constantly improve what I do.

If it is action you want. My actions were that I built something that I thought was cool for myself, donated it to the public, and continued to contribute with the vision that the right people will benefit from it. Simple as that.

While I hustle everyday to share the vision with people, provide children with a gaming platform, and parents with something they don't need to setup for their kids, get feedback and improve upon it, YOU are using children to attack me and the value of what I created passionately for people. That's a disgrace.

I heard your opinion but that's it. You can continue to protest all you like. I will continue doing what I think is best for the Minecraft community.

<comment><USER7> >Your definition of pay2win is different from the nature of Minecraft.

This is a weak argument because there is no winning condition in pretty much every pay2win MMORPG. Pay2Win is not about winning. It's about getting an advantage versus nonpaying players.

You're selling ingame currencies and crates with a random chance of getting items in exchange for real money.

By the way what pay2win actually means is a redherring. The point is that this is an unethical business model that I don't want to support.

<comment><USER8> > The point is that this is an unethical business model that I don't want to > support.

How the heck is it unethical to sell in-game items to make real-world profit? It's simply _not_.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Haven't Mojang added restrictions on people being able to charge real money for in-game items? Would be interesting to know how Minecraftly gets around it.

<comment><AUTHOR> I don't get around it, I respect Mojang and abide by their terms, the subscription is only for cosmetic items.

Think of Minecraftly open source as wordpress.org, and Minecraftly demo server as wordpress.com, so at least there is donor engagement from people who are interested.

The only thing I don't like about Mojang is how they design Minecraft Realms architecture. It's proprietary and too complicated. I want to build something simplier, more scalable, with better player's freedom in cross-server interaction, and is supported for years to come.

<comment><USER10> How is "a chance to win God armors, weapons and tools with full maximum enchantments" only cosmetic? That's found at [https://s.m.ly/category/305898](https://s.m.ly/category/305898) along with other stuff that seems to be pay2win.

</comment></comment></comment><comment><USER11> This might make a good "Show HN" (guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html))

</comment><comment><USER12> That domain must be worth a fortune.

</comment><comment><USER8> What a fascinating idea. Looks pretty cool — if I ever get back into vanilla Minecraft I'll give it a shot (I've been 100% modpacks for a few years now). Any plans to support some of the more popular modpacks? I can imagine that the server costs for that could get brutal though.

These days I'm thinking of getting into minetest ([http://www.minetest.net/](http://www.minetest.net/)), but the mod scene is pretty primitive there.

<comment><USER13> The Minetest API is itself a bit more primitive, as it's server-side-only Lua scripting as opposed to essentially hacking the whole game engine inside out with zero security involved.

As for modpacks, they add a lot of RAM usage especially to the whole thing. Minecraft 1.9 also made it possible (theoretically, that is it's possible in the code and probably used by Realms) to run multiple servers in the same Minecraft server instance, saving a lot of overhead on the block definitions, classes, JVMs, etc.

<comment><USER10> Where did you learn that Minecraft 1.9 allows for multiple servers in one instance?

</comment></comment></comment><comment><USER14> Who is paying for this???

<comment><USER15> I wondered the same thing since TANSTAAFL. Looks like there's a "store" selling various in-game perks: [https://s.m.ly/](https://s.m.ly/)

</comment></comment><comment><USER16> Great idea, would be nice to explain how pricing and teleportation between servers works on the landing page.

<comment><AUTHOR> Sure. I will draw that and explain on the landing page this week.

</comment></comment><comment><USER17> Odd feature matrix. The free version has all the benefits; the paid version has all the limitations.

edit: Oops, that's the second time I've glossed over a site and mistaken a company's competitive analysis for a multi-tier pricing plan.

<comment><USER18> I think the "paid version" you saw is actually a competitor.</comment></comment>


Ask HN: How many lines of code do you deliver every day? - <AUTHOR> This might be a useless question, but I'm curious.  I was reading the comments on another post and someone referred to the fact that they used to produce about 10x as many lines of code when they were at a startup as they do now that they have a corporate job.<p>I know every programmer and every language is different, but roughly how many lines of code do you deliver every working day, and do you work at a startup or a corporate gig?  Feel free to throw your language in there too :-) <comment><USER2> It's really hard to use a daily LOC measure. Some days I'll just be cranking out boring stuff, in which case it could easily be 300 lines a day (my record was about 1200 lines in the 24 hours before my OS design final project was due). Other times, I'll _remove_ 90% of those 300 lines because I found a more efficient way to write it. Still other times will be pure design or research.

That said, here're some long-term averages for projects I've worked on, with total code size divided by project duration. Except for FictionAlley and my OS design course, I've adjusted for working days when figuring out lines/day (so GameClay uses a 7 day/week schedule while projects for my employer figure on only 5 days/week).

First professional job, startup, Java Swing, 1200 lines in 2 months. ~30 lines/day.

FictionAlley.org, part-time nonprofit volunteer work during college, PHP, 8000 lines in 3 years. ~10 lines/day, but that includes many days when I didn't work on it at all.

OS Design final project, college course, C++, 8000 lines in 4 months. ~67 lines/day, ostensibly part-time but this course ate my brain so much it might as well have been full-time. The result didn't really work, though.

Scrutiny, college volunteer project done over vacation, PHP, 761 lines in 2.5 weeks. ~40 lines/day.

Write Yourself a Scheme in 48 hours, part-time hobby project, Haskell, 400 lines in a month (not counting time to write up the tutorial). ~10 lines/day

Second job, startup, Java Netbeans plugin. 20,000 lines in 5 months. ~200 lines/day.

Same employer, JSF trade-verification webapp. 40,000 lines in 12 months, but I had a partner. ~70 lines/day.

Gameclay, my own startup, Python + JavaScript. 18,000 lines in 5 months, not counting false starts we threw away (that'd be another 3 months, +8 months part-time). ~120 lines/day.

ArcLite, hobby project (but given my full attention), JavaScript. 1200 lines in 8 days. ~150 lines/day.

Tetris, hobby project, JavaScript. 321 lines in 5 hours. ~500 lines/day.

YC startup, 657 lines of JavaScript in 6 days, plus there was some Django and server setup that I didn't count. ~100 lines/day.

Eve, hobby project, Haskell. 1773 lines in 2 months. ~60 lines/day.

WhatShallIDoNow.net, hobby project/startup, Python & Django. 400 lines in 4 days. ~100 lines/day.

</comment><comment><USER3> Please don't ever ask about "lines of code". This measurement means _absolutely nothing_ , and I've been programming for over 20 years. Any responses would be misleading at best.

There are huge programs that should be tiny. And there are small programs that are so clever that they're unmaintainable, and should be bigger. There are many ways to show that lines of code won't tell you what's really important about a program or programmer.

<comment><USER4> Program A has 20 lines of code. Program B has 20.000.000 lines of code. Is this absolutely meaningless information?

<comment><USER5> Bearing in mind that you haven't said anything else at all about either program, I'd have to say yes, absolutely meaningless.

<comment><USER4> Ok, let's say someone proposes you to maintain either A or B, giving you 10.000$ per year. You have the right to choose one of the two. He tells you that the only info he can give you is the lines of code of each program.(think of it as a thought experiment.) If you say, I don't care to know - it's meaningless. you lose the chance to make 10.000$ per year by maintaining a toy application of 20 lines. Even worse if you say, I just need the 10.000$ and choose B randomly.

I mean, at least one info you get is that A is a toy application and B is a big program. Might be big because it's full of useless sh*t, but still it's big and this IS some information.

<comment><USER6> Thought experiment eh?

Consider A == B without line breaks.

<comment><USER4> That was a good one. But somehow it supports my argument, showing that any additional information (like how many of the lines are blank) brings some new value.

</comment></comment></comment></comment></comment></comment><comment><USER7> The best and most productive days are when you _remove_ hundreds of lines of code.

<comment><USER8> Subject to simple disproof. Here follows the greatest possible program in the universe:

<comment><USER7> Best program = most functionality, in least lines of code. Yours fails on the first measure.

<comment><USER9> I would disagree. Few lines of code means reduced readability - not good for future development. There has to be balance.

<comment><USER7> Of course. You don't take things to extremes. Add in "readable" into my statement :)

</comment></comment></comment></comment></comment><comment><AUTHOR> Just want to respectfully request everyone to calm just a tad...I'm well aware of how bad a metric "lines of code" is, but I was still curious :-)

</comment><comment><USER10> I heard somewhere the industry average was around 10 to 15 lines a day...

</comment><comment><USER11> Optimize for lines of code not written! Good programmers can optimize this metric by quite a lot -- hence LOC count means absolutely nothing.

It _is_ better to think for a long time about a problem and then only write the 20 lines that solves it rather than throwing 300 lines at the problem and still sit with a flaky solution. _insert rant about test-driven-design- fanatism here_.

At the moment I am cranking negative lines of code count in the project I am working on. The code is not that good and can be abstracted quite much, so I am overall removing lines from the code via the rewrite.

Interestingly, there is also the quality of said cranked lines. It isn't good when the lint tool finds problems or when the code produced just looks damn ugly.

</comment><comment><USER12> It varies from day to day. Most days it is somewhere between -500 and 500.

The shortest time interval over which I produce remotely consistent results is a month: Most months I produce -- that is, design, write, and debug -- between 1000 and 1500 lines of code.

</comment><comment><USER13> This question makes me giggle.

Who the fuck would care about how many LOC they write a day? I've never even considered this.

Things I care about in my code (thanks Kent): Runs all the Tests? Reveals all the intention? No duplication? Fewest number of classes or methods?

Although, I kinda of like this question. I'm going to add this my list of questions to ask someone in an interview. Only cause I want to see how many try to answer this with a straight face and how many people giggle.

</comment><comment><USER14> i think IDE has a big role in this,

with Visual Studio i feel so much more productive, but it also puts so much information at my finger tips, and programing in C# or VB.net were really pattern based.

programing raw javascript and dealing with DHTML with support for IE6/7, Safari, Opera, and FF can really cut your productivity. Not only are you looking up everything on the web when something breaks, but there are just so many pieces to the puzzle that make good JavaScript hard. Thank you Douglas Crockford for part one of making JS better, and thank you John Resig for making the second part easier. Hopefully mozilla will be able to make a 3rd part easier with their new tools R&D lab.

In PHP I generally felt really unproductive until I had zend and a debugable server set up.

Closing that loop is hard, and I wish there was a better measure of productivity than LOC.

</comment><comment><USER15> LOC are not always accurate. I once rewrote 2,650 lines of C code as a seven line shell script. The previous programming team had written a data transfer program using their own implementation of ftp. I just used the one that was already on the computer.

</comment><comment><USER16> Somewhere between 100 and 150. 10 fricking lines? Who produces just 10 lines? Are you just looking at your monitor and day dreaming or what? I just wrote 5 lines of text right now in like 2 minutes.

<comment><USER17> Yesterday I probably wrote 8 or 9 lines of code. That was all the problem at hand required. However, getting to that 8 or 9 lines of code took hours of conversation with various people as well as a few more hours of research, fact-checking and bench-marking.

Last week I had a day where I probably generated 25,000 lines of code. The generator probably took up 400 or so lines itself. Because I wrote the generator, do I get to say that _I_ created the 25k lines?

The small amount of code I wrote yesterday was vastly more important that the generated code I wrote last week. Which day was more valuable?

Lines of code is a worthless measure.

[Edited for tone]

</comment></comment><comment><USER18> A lump of bash(ish) scripts for doing auto deployment is after 9 weeks average around 130 lines added a day and around 4 removed.

Interesting the peak is 1201 lines, and the lowest is 1.

</comment><comment><USER19> Any good implementation of asoftware feature is inversely proportional to the number of lines of code.

</comment><comment><USER20> Anywhere from -5000 to +5000, duh.

</comment><comment><USER21> If you where about to meassure out your... Size. You'd do it in inches. Though it will tell you nothing about performance, it'll still be a form of meassurment. Let the man be proud of his size!</comment>