Compiler basics: Lisp to Assembly - <AUTHOR> http://notes.eatonphil.com/compiler-basics-lisp-to-assembly.html <comment><USER2> Years ago I read an article or paper about writing a lisp compiler. The compiler started with regular looking lisp, then through macro expansion lisp primitives were defined in terms of each other. Then the small subset of lisp primitives were expanded to goto's and conditionals. The gotos and conditionals were still expressed in lisp S Expressions. Finally the gotos and conditionals were implemented in terms of assembly looking lisp primitives. Then they removed the parentheses and it left an assembly program.

I can't remember the name of the paper. Any ideas? It was such an elegant way of walking through a compiler implementation.

<comment><USER3> Was it this? [https://github.com/kingcons/cl-6502](https://github.com/kingcons/cl-6502)

</comment></comment><comment><USER4> A similar approach is taken in this Obligatory mention: [https://compilers.iecc.com/crenshaw/](https://compilers.iecc.com/crenshaw/)

<comment><USER5> Thank you. This is such a great resource and very readable on mobile too since it's just txt like a man page.

</comment></comment><comment><USER6> Hi Hacker News PL enthusiasts. This is off topic, but I hope you will have mercy on me.

I'm reaching out for some help from you. I've been working on interpreters this whole year, taking on no more work for pay than needed for rent and food, so that I can realize my programming language dream. I'm writing a couple of interpreters every week, trying out new ideas. But there is one hurdle I've been unable to overcome for a long time.

I'm trying to write a typechecker for a simple lambda calculus with polymorphic functions. My acceptance criteria is being able to typecheck the K combinator. I've been stuck at this point for months. Have read all I can find on the internet, and have read TAPL many times.

Am honestly feeling really stupid for not having been able to complete this.

What I'm struggling with beta reducing expressions that are type lambdas (i.e. the expression related to `Forall`).

Λ means type lambda, i.e. the set of expressions indexed by type

λ means expression lambda, i.e. the set of expressions indexed by expression

E.g. Λa.λx:a.x is the polymorphic "identity" function, which in javascript looks like `x => x`

k = ΛA.ΛB.λx:A.λy:B.x

k_intint = ((k IntTy) IntTy)

What I have yet been unable to do is type_of k_intint, and this because beta reduction should return an expression, but type_of should return a type.

I'll paste the source code of my latest attempt below, the function in question is `typ_of_expression`. I've written this in OCaml, but would be very thankful for a response in any language, or pseudocode, or just explained in English.

Many thanks for taking the time to read this. For any reply or pointer in the right direction I would be greatly thankful. You know what, I'd be happy to pay €100 for any help that lets me solve this (SEPA, Bitcoin).

      (* λ calculus, with Forall and simple types *)
      type 'a binding =
        | SymBind of 'a
        | QuantifierBind

      type 'a context = (string * 'a binding) list

      type typ =
        | UnitTy
        | IntTy
        | Arrow of typ * typ
        | Forall of string * typ
        (* Thought it simpler to separate Closure and Lambda, for w  hen I later add records/unions etc *)
        | ClosureTy of (typ context) * typ
        | SymbolTy of string

      type expr =
        (* again thought it simpler to separate Closure and Lambda,   for when I later add records/unions etc *)
        | Closure of (expr context) * expr
        | Unit
        | Symbol of string
        | Int of int
        | Lam of string * typ * expr  (* turns into Arrow. Takes ex  pr as argument, returns expr *)
        | App of expr * expr
        | TLam of string * expr       (* expr version of Forall. Ta  kes typ as argument, returns expr *)
        | TApp of expr * typ

      let rec lookup context key =
        match context with
        | [] -> Error "No result"
        | (k, QuantifierBind) :: rest -> lookup rest key
        | (k, SymBind v) :: rest -> if key = k
                                    then Ok v
                                    else lookup rest key

      let str = String.concat ""

      let rec string_of_typ t = match t with
        | UnitTy -> "UnitTy"
        | IntTy -> "IntTy"
        | Arrow _ -> "Arrow"
        | Forall (s, t) -> str ["Forall "; s; " "; string_of_typ t]
        | ClosureTy (_ctx, t) -> str ["Closure "; string_of_typ t]
        | SymbolTy s -> str ["SymbolTy "; s]

      let string_of_expr e = match e with
        | Unit -> "Unit"
        | Closure _ -> "Closure"
        | Symbol s -> str ["Symbol "; s]
        | Int i -> str ["Int "; string_of_int i]
        | Lam _ -> "Lam"
        | App _ -> "App"
        | TLam _ -> "TLam"
        | TApp _ -> "TApp"

      (* Convert between context types, such as (expr context) or (  typ context) *)
      let rec convert_context converter_fn original_context exprcon  text acc = (* カリたべたい *)
        let convert_context = convert_context converter_fn original  _context in
        match exprcontext with
        | [] -> acc
        | (x, QuantifierBind) :: rest ->
           convert_context rest ((x, QuantifierBind) :: acc)
        | (x, SymBind e) :: rest ->
           (match converter_fn original_context e with
            | Ok t -> convert_context rest ((x, SymBind t) :: acc)
            | Error e -> failwith (str ["typ_context error: "; e]))

      let rec typ_of_expr context e =
        match e with
        | Unit -> Ok UnitTy
        | Int i -> Ok IntTy
        | Closure (ctx, e) ->
           let new_context = convert_context typ_of_expr context ct  x context in
           typ_of_expr new_context e
        | Symbol s -> lookup context s
        | Lam (x, in_typ, body) ->
           (let new_context = (x, SymBind in_typ) :: context in
            match typ_of_expr new_context body with
            | Ok return_typ -> Ok (Arrow (in_typ, return_typ))
            | Error e -> Error (str [ "Error finding return type of   lambda. Error: "
                                    ; e]))
        | App (e0,
               e1) ->
           (match (typ_of_expr context e0,
                   typ_of_expr context e1) with
            | (Ok (Arrow (t0_0, t0_1)),
               Ok t1) -> if t1 = t0_0
                         then Ok t0_1
                         else Error (str ["Type mismatch"])
            | (Ok (ClosureTy (ctx, Arrow (t0_0, t0_1))),
               Ok t1) -> if t1 = t0_0
                         then Ok t0_1
                         else Error
                                (str
                                   ["Type mismatch. t0_0: "
                                   ;string_of_typ t0_0
                                   ;", t0_1: "
                                   ;string_of_typ t0_1
                                   ;", t1: "
                                   ;string_of_typ t1
                                ])
            | (Ok t, _) -> Error (str ["Not given a lambda as first   thing to App. "
                                      ;string_of_typ t])
            | _ -> Error (str ["Error getting typ of expr App"]))
        | TLam (a, body) ->
           (let new_context = (a, QuantifierBind) :: context in
            match typ_of_expr new_context body with
            | Ok body_type -> Ok (ClosureTy (new_context,
                                             Forall (a,
                                                     body_type)))
            | Error e -> Error (str [ "Failed to get typ of TLam, a  nd thus can not construct Forall. Error: "
                                    ; e]))
        | TApp (TLam (a, body),
                t1) -> let new_context = (a, QuantifierBind) :: con  text in
                       typ_of_expr new_context body
        | TApp (e0, t1) ->
           (match typ_of_expr context e0 with
            | Ok (ClosureTy (ctx,
                             Forall (a, body))) ->
               let new_context = (a, SymBind t1) :: ctx @ context i  n
               Ok (ClosureTy (new_context,
                              body))
            | Ok (ClosureTy(ctx,
                            t)) ->
               Error (str ["TApp given ClosureTy with non-forall on   left-hand-side. IS: "
                          ;string_of_typ t])
            | Ok (Forall (a, body)) -> Error "TApp given naked Fora  ll as first argument"
            | Ok _ -> Error "TApp given non-Forall first argument"
            | Error e -> Error (str ["Error in TApp - error: "
                                    ;e]))

      let rec eval context e =
        let context: (expr context) = context in
        match e with
        | Unit -> Ok Unit
        | Closure (ctx, e) -> eval (List.append ctx context) e
        | Int i -> Ok (Int i)
        | Lam (x, t, body) -> Ok (Closure (context,
                                           Lam (x, t, body)))
        | Symbol s -> lookup context s
        | App (Closure(ctx,
                       Lam (x, t, body)),
               e1) ->
           let new_context = (x, SymBind e1) :: ctx @ context in
           eval new_context body
        | App (e0, e1) ->
           (match eval context e0 with
            | Ok (Closure (ctx,
                           Lam (x, t, body))) ->
               eval (ctx @ context) (App (Lam (x,
                                               t,
                                               body),
                                          e1))
            | Ok _ -> Error "Can't apply non-Lam"
            | Error e -> Error (str ["Apply error: "
                                    ;e]))
        | TLam (a, body) -> Ok (TLam (a, body))
        | TApp (TLam (a, body),
                given_typ) ->
           let new_context = (a, QuantifierBind) :: context in
           eval new_context body
        | TApp (e0, t) ->
           (match eval context e0 with
            | Ok (TLam (a, body)) ->
               let _ = failwith "Not gonna happen" in
               eval context (TApp (TLam (a, body), t))
            | Ok (Closure (ctx,
                           TLam (a,
                                 body))) ->
               eval (ctx @ context) body
            | Ok _ -> Error "Can't type-apply non-Λ"
            | Error e ->
               Error (str [ "Error applying type lambda. Error: "
                          ; e]))

      (* helper functions *)
      let tlam a body = TLam (a, body)
      let lam x t body = Lam (x, t, body)
      let app e0 e1 = App (e0, e1)
      let tapp e0 tyT1 = TApp (e0, tyT1)

      (* eval [] (tlam "a" (lam "x"
       *                      (SymbolTy "a")
       *                      (Symbol "x"))) *)

      let k_combinator = (tlam "a" (tlam "_b"
                                      (lam
                                         "x"
                                         (SymbolTy "a")
                                         (lam
                                            "_y"
                                            (SymbolTy "_b")
                                            (Symbol "x")))))

      let k_intint = (TApp (TApp (k_combinator,
                                  IntTy),
                            IntTy))

      (* DEAR HN READER: This is what is failing me. *)
      let applied_k = typ_of_expr [] (app k_intint (Int 1))

<comment><USER7> Are you aware that the TAPL book comes with an implementation of System F?

[https://www.cis.upenn.edu/~bcpierce/tapl/checkers/fullpoly/](https://www.cis.upenn.edu/~bcpierce/tapl/checkers/fullpoly/)

</comment></comment><comment><USER8> Why not just compile "primitive" functions call to respective assembly code? (+ => "add")

<comment><AUTHOR> > In a better compiler, we would not make plus a built-in function. We'd emit > code for the assembly instruction ADD. However, making plus a function makes > code generation simpler and also allows us to see what function calls look > like.

:)

</comment></comment><comment><USER9> "[Assembly is] 1:1 representation of the binary instructions the CPU can interpret". 99% correct.

<comment><USER9> Assembly is NOT a 1:1 representation of the binary instructions. It is for the 99% of a given assembly. Pseudo-instructions exist in most assemblers and they usually translate to several machine code instructions.

<comment><AUTHOR> Thanks for the correction. Do you have an example?

<comment><USER9> For Intel: [https://www.intel.com/content/www/us/en/programmable/documen...](https://www.intel.com/content/www/us/en/programmable/documentation/iga1420498949526/iga1409764012031/iga1409764164759.html)

</comment></comment></comment></comment><comment><USER10> Compiler without a Grammar...

<comment><USER11> What do you mean?

<comment><USER12> The article is about "compiler basics", but it never mentions PLs are parsed according to context-free grammars, let alone giving one. Just throws a bunch of code and says "yeah this'll parse it".

<comment><USER13> Maybe because compilers nowadays are mostly _not_ about syntax? Parsers are the boring part.

</comment></comment></comment></comment><comment><USER14> Calling this a lisp is a bit of a stretch. S-expressions aren't lisp if they don't have lisp semantics.

<comment><USER15> What part of the code that will compile under this simple compiler (i.e. `(+ 2 (+ 3 4))`) _doesn't_ have lisp semantics?

<comment><USER11> Integer overflow.

<comment><USER16> Not all historic dialects of Lisp have bignum integers. I don't know what the current situation is in Emacs Lisp, but it had only fixnums at one point.

</comment></comment></comment></comment><comment><USER17> Ok, I get this is a DIY post, but wouldn't it make much more sense to use LLVM here? That way, you get low-level optimizations for free, and this allows you to focus on the rest of the language. You can always implement the code- generation part if you want to and have the time for it.

<comment><USER18> I think you answered your own question with the last sentence.

<comment><USER17> You could learn more from targeting an intermediate language than from targeting a specific architecture, imho.

<comment><USER19> Maybe you learn "more". But you learn very different things.</comment></comment></comment></comment>


How I changed the law with a GitHub pull request - <AUTHOR> https://arstechnica.com/tech-policy/2018/11/how-i-changed-the-law-with-a-github-pull-request/ <comment><USER2> From the Why It Matters section:

 _The Council is able to publish the law better and faster than ever before. With the District's previous codification contractor, updates to the DC Code were published three times a year, and there could be a five-to-seven month delay in seeing the latest laws. But the Open Law Library has shortened the publication process to about a week after a law is enacted.

It also means we're all getting to see more of the actual law that governs us—not the law as it was months ago._

<comment><USER3> This is pretty common in government agencies from what I've seen. Many contractors take forever to do even the most basic of changes because of how contracting works in order to milk as much money as possible.

But agencies that move towards open source initiatives, non-profits etc end up being a lot more responsive and overall end up a lot better off. Unfortunately there's a lot of entrenched commercial entities (ex Oracle) that want things to remain the same so it's going to be hard to rout them. Initiatives like this give me a bit of hope though.

</comment></comment><comment><USER4> > My edit wasn't substantive. This sort of "technical correction," as lawyers > would call it, didn't need to be passed by the Council and signed by the > Mayor.

Okay, so they didn't "change the law." It's a cool story but not a fan of clickbait titles either.

<comment><USER5> As with most things in the law, it is complicated. The District legislative process shares many similarities to the federal government's. They pass laws, which are the official representation of the will of the Council. These laws are kinda like hand-crafted change sets. Change sets that can change other change sets.

These change sets are almost impossible to use as they are, so the Council creates an official compilation of all the change sets as applied and organized by subject. This is the Code of the District of Columbia. Usually, when people think about "the law" they are thinking about the code, because that is how people interact with it.

The laws as passed by the Council cannot (and should not) be changed via pull request. Here, the useful representation of those laws, the representation used by everybody who actually interacts with the law, has been updated via PR to more perfectly reflect the underlying laws.

</comment></comment><comment><USER5> Hi all, I'm a co-founder of Open Law Library, the non-profit that built the platform DC uses to codify and publish their laws. We were so excited when we saw a member of the public make a PR. I'm happy to answer any questions.

<comment><USER6> This is really awesome and I hope to see something like this come to my country.

One thing I was wondering is how you would deal with more tricky issues/pull requests. Obviously we probably won't see people writing whole new laws in the pull requests editor but what if it was something like a sentience was written in an unclear way and someone opened an issue asking for it to be clarified or maybe they made a PR rewriting it to make more sense while still keeping the intent the same?

<comment><USER5> We are in talks with several international governments. We would be delighted to help your country!

The system does not in any way change the legislative process, so you cannot use a pull request to make any substantive change to the law. That would include rewording, changing punctuation, fixing numbering, etc. If such a pull request were made, it would be immediately closed. As throughout history, the only way to make a substantive change to the law is to petition your representative to sponsor a bill and then convince the legislature to pass it.

<comment><USER7> So, essentially, the pull request process is useless. In fact, even changing a typo could be seen as a substantive change since it may not always be 100% clear what the correct change is. For example, in the Colored Object Restrictions Act 2018, Section 12.3.7 it might say "It is not permitted to have purple colored caqs within the city limits." could be talking about 'cats', 'cars' or maybe 'caps', and although it's obvious a typo has slipped through, these possible fixes all have very different meanings. And in the cases where the typo is obvious, and there is only one possible interpretation of the text, it doesn't actually matter and the change wouldn't have any impact...

<comment><USER8> Come on, you gotta start somewhere.

</comment></comment></comment></comment></comment><comment><USER9> This is such a great way of making access to the law more open and welcoming, which is a great thing to me!

I haven't been able to check yet, but does anyone know if you are allowed to use this process to propose new laws or clarifications of laws more substantial than simple typo fixes?

Sure, you aren't going to have non-lawyers crafting legislation, but could this be used to bring up clarifications that could impact rulings or increase/decrease scope of current laws or something similar? (I'm not a lawyer, so I don't know what are big and what are small changes here)

Imagine if proposed laws could be commented on, have changes offered, debated, and ultimately decided on in an open fashion like this! With a public "audit trail" of sorts showing the history of changes the law went through.

I know this is optimistic, but I wholeheartedly believe that more openness and more people involved will ultimately lead to better laws.

<comment><USER10> _I haven 't been able to check yet, but does anyone know if you are allowed to use this process to propose new laws or clarifications of laws more substantial than simple typo fixes?_

"You" as in you, a citizen off the street proposing a new law? Unlikely. You could use it to form the basis for a ballot initiative, I would think?

</comment></comment><comment><USER11> In stark contrast to Georgia, which has actively made access to its laws harder through copyright enforcement.

[https://www.eff.org/deeplinks/2018/10/appeals-court-tells- ge...](https://www.eff.org/deeplinks/2018/10/appeals-court-tells-georgia- state-code-cant-be-copyrighted)

</comment><comment><USER12> On one side it makes sense to have a public repository like git used for this, but having a private company being responsible for this it's bit strange.

The fact that a pull request was accepted was now that strange because it could have been done by the council representative.

For this kind of use case it would make more sense to me some sort of block chain, not controlled by a single company.

"This isn't a copy of the DC law. It is an authoritative source. It is where the DC Council stores the digital versions of enacted laws, and this source feeds directly into the Council's DC Code website at [https://code.dccouncil.us/dc/council/code/."](https://code.dccouncil.us/dc/council/code/.")

<comment><USER13> Why would you use a blockchain? There's already a central authority - the DC city government. They should just host their own git instance.

<comment><USER14> There are cases in history where records offices were held in rebellion for political purposes. A blockchain would change means of control of records from violence to compute power.

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

<comment><USER15> Whoever has the ability to do violence will always have ultimate control. They could just force everybody to start accepting a different blockchain.

<comment><USER16> Relevant xkcd. [https://xkcd.com/538/](https://xkcd.com/538/)

</comment></comment></comment></comment></comment><comment><USER17> This is great, I would also love to see laws have applicable test cases created. For a practical example, in NJ they recently changed gun laws, and they forgot to include an exemption for police officers, so they ended up being restricted by the new laws the same way civilians are. (I really bit my tongue on this, not going to get political, here).

The law should have had a test case created, which would have the equivalent of ensuring that police officers are not in violation of the law, when they are serving active duty, or going home. NJ's assembly had to rush in some middle of the night legislation to fix this "bug" in the law, that nobody caught.

I would love to see this applied to all laws. As the article states, software and law have a lot in common. Testing should be one of them.

<comment><USER18> Testing requires laws to be defined in a language understandable to machines and to be unambiguous. That's not gonna happen anytime soon.

</comment></comment><comment><USER19> A few years ago, while the French parliament was discussing the modifications in law to allow gay marriage, many people were scrutinizing amendments and proposed amendment, and a developer presented all the MPs work in a git repository. It really felt like the future of democracy:

[https://github.com/steeve/france.code- civil/commit/dfd5918f9...](https://github.com/steeve/france.code- civil/commit/dfd5918f90025e15eecd72daff912b547433daed?diff=split)

</comment><comment><USER20> It's great that DC is making their latest laws available to everyone, however it's a little scary that the commits aren't signed, meaning that anyone who gained access to the github repo could forge them (and do more than fixing typos).

Hopefully DC (and others) will look at doing GPG signatures[0,1] so that they don't have to trust github's authentication as much. Github has a nice GUI that reflects signatures with the "Verified" tag, which you can see at[2].

0: [https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work](https://git- scm.com/book/en/v2/Git-Tools-Signing-Your-Work)

1: [https://help.github.com/articles/signing- commits/](https://help.github.com/articles/signing-commits/)

2: [https://github.com/QubesOS/qubes- doc/commits/master](https://github.com/QubesOS/qubes-doc/commits/master)

<comment><USER21> > meaning that anyone who gained access to the github repo could forge them > (and do more than fixing typos).

… which would immediately be noticed by everyone using the repo. How many scenarios are there where a compromise wouldn't include GPG keys or the attacker simply uploading their own key?

<comment><USER20> I hope you would be correct, that lots of people would notice a compromise, though I'm not convinced that this would be the case since the attacker could pretend to be the single committer.

> How many scenarios are there where a compromise wouldn't include GPG keys or > the attacker simply uploading their own key?

If the user's github credentials were compromised (lots of ways for that to happen which don't involve their system/keys being compromised, like using the same password across sites), then using GPG signatures would still allow cloners to check/detect problems since they wouldn't have the maliciously- updated github GPG key (or they might be one of the few folks still using the Web of Trust).

Furthermore, it's possible to have a local system compromise that doesn't give access to GPG keys, as keys could either be password protected or kept on a separate system that's primarily used for signatures (not extreme for a system that distributes law).

Also, signatures not only protect the latest commit, they also sign the previous commit hash(es), protecting previous commits and preventing a history rewrite. Without them, a history rewrite that left recent commits unchanged but modified some text could have the chance to go unnoticed.

EDIT: small clarity tweak

<comment><USER21> > If the user's github credentials were compromised (lots of ways for that to > happen which don't involve their system/keys being compromised, like using > the same password across sites), then using GPG signatures would still allow > cloners to check/detect problems since they wouldn't have the maliciously- > updated github GPG key (or they might be one of the few folks still using > the Web of Trust).

This assumes that the attacker wouldn't simply upload their own key to public keyservers with the same email address. I would be shocked if more people would notice the use of an additional key than would notice, say, Git's warning when history changes between different repos.

The big win is having multiple copies with independent access control. I'm not opposed to using GPG but in practice the benefits are fairly minimal and there's a massive usability hit for anything involving GPG. In the case of a legal code that's probably justified but it's probably well into diminishing returns.

<comment><USER20> Considering GPG is the primary protection for the Linux distros that run most of the services we're discussing* , at some point our trust falls down to it anyhow :)

* : Last I checked, the two most popular Linux distros I'm familiar with (CentOS and Ubuntu) only make their iso hashes available via http-only served files that are GPG signed

<comment><USER21> Those distributions use GPG but they also use pre-deployed signing keys rather than, say, trusting any @debian.org key on a public keyserver. When you're centralizing trust like that anyway, the differences between that and a canonical Git repo don't seem to be especially significant from a practical standpoint.

</comment></comment></comment></comment></comment></comment><comment><USER22> This is neat as long as DC sticks to a policy of open source laws and free access. Github has always done this, but I fear that 50 years from now we could be in a situation like access to case law where you have to pay a third party to read.

<comment><USER6> Yeah it makes me slightly uncomfortable to put the law in the hands of a private company. Github is allowed to block me for whatever reason they want, does that now mean I get locked out of this?

Would much rather see this on a self hosted GitLab but this is a good start for sure.

</comment></comment><comment><USER23> Someone make a site that has French laws in GitLab [https://www.lafabriquedelaloi.fr/articles.html?loi=pjl12-689](https://www.lafabriquedelaloi.fr/articles.html?loi=pjl12-689)

<comment><USER24> Hi, the GitLab for the french laws from La Fabrique is here: [https://git.regardscitoyens.org/parlement](https://git.regardscitoyens.org/parlement)

It's a only a small part of the laws published on [https://lafabriquedelaloi.fr](https://lafabriquedelaloi.fr) for now but should be complete soon !

Disclaimer: I work on the project

</comment></comment><comment><USER25> Is this type of thing something people want?

I have been thinking of running for local office (one seat in particular is always uncontested), and my platform would basically be: I'll set up a method for constituents to voice their opinion in a transparent way. I'm thinking something like change.org, but with some way to verify residency.

I think citizens don't get as involved as they want to because the barrier to entry is too high and the results are too opaque (don't know how many called, emailed, etc). I would _love_ to start a movement for more open government, but I'm just not sure the demand is there.

</comment><comment><USER26> I wrote this a while ago: [http://www.kmeme.com/2010/03/healthcare- diff.html](http://www.kmeme.com/2010/03/healthcare-diff.html)

I wonder how well code-style line-oriented diffs work for laws. If you word wrap then your single-line changes can cascade and effect many lines. If you don't word wrap seems like you need a better way to see diffs within long lines. Seems totally solvable, but that what github does for code might not be right.

But this is so awesome, pull requesting a typo. Go DC really forward thinking.

<comment><USER27> Wikipedia seems to handle this just fine, as does most markdowns. Manual word wrapping seems like more of an issue for code than plaintext. I don't manually wrap readme's anymore, that's what window-width-aware editors are for.

</comment></comment><comment><USER28> My side gig, like most sites these days, publishes a privacy policy and terms of service. From the start, I published those documents in a public Git repository - it provides a clear source of what version was in force at the time of any given argument. When you might later be discussing the content of those documents in court, that can be essential.

Of course, it could also work against you, but either way, it's one less thing that's open for discussion.

</comment><comment><USER29> While this is a great development, hosting AUTHORITATIVE text of the law at a private service (GitHub, owned by Microsoft) doesn't sound like a good idea.

Consider what would happen if Microsoft decided to delete the repo. There will still be copies of the law at different places, but there would no authoritative version. Imagine a lawsuit where each party is arguing that their copy of the law is the "correct" one.

<comment><USER30> There's a way to store this in an immutable and trustless manor, but the B word gets a lot of push back around here.

<comment><USER21> That's because Git already provides the same solutions for problems which exist in reality (immutability, trustless, distributed). All that's left out is the opportunity for some grifter to [if we're lucky] match it at substantially greater cost.

</comment></comment></comment><comment><USER31> I always reach that website when I randomly hit my keyboard in the browser's address bar to see if my internet connection is working.

Seems to be a great domain.

(Colemak user here)

</comment><comment><USER32> If the law is on github, does Microsoft then own the law?

</comment><comment><USER33> I've been wanting this for a long time, I wanted to take it further though:

I want draft laws, I want to see all representatives as contributors and be able to see their contributions and changes to draft laws.

the House should have a master branch that submits pull requests to another repository, the other chamber having one too

The Governor/President gets to approve PR's from that jurisdiction

It would become SUPER easy to track origins and changes of laws, let alone browse them, and comment on them.

I'd like to see this done retroactively all the way back to English law

<comment><USER34> They have what you describe, and moreover such a thing has existed in paper form since th this country was formed.

Real time access to laws as they are drafted is a Really Bad Idea. Good ideas need time to incubate. The system you want would lead to the sound byte version of legislating.

<comment><USER35> C-SPAN already exists for "sound byte legislating."

Plus, fine-grained version control doesn't imply real time updates. It's fully possible to only release the version history to the public after the law is approved.

<comment><USER36> Then the first draft can go out when it would have been normally published. Then, the main value add would be commenting and suggesting changes as well as a centralized place to see comments and suggestions as well as their reactions.

</comment></comment></comment></comment><comment><USER37> The only relevant link on the article [https://github.com/DCCouncil/dc-law- xml](https://github.com/DCCouncil/dc-law-xml)

</comment><comment><USER38> So by hacking GitHub, now laws can be changed?

I want sentences to be GitHub as well, so that an inmate can hack github to change his sentence.

</comment><comment><USER39> I'm personally not OK with a system that enables a single individual (the "lawyer" in the article) to declare modification to a law as insubstantial, then modify the law.

Some review process needs to be there, and frankly, even a typo correction IMO needs to be run by the Mayor because she/he signed one thing into law and this process changes what they signed. We cannot ever assume we know the intent of the Chief Executive, even when "obviously" in error.

OTOH, a diff system for law is awesome. California uses a similar system but it is cumbersome to do things like "show me how this section evolved over time".

<comment><USER40> > and this process changes what they signed

The mayor didn't sign a website.

The author clearly indicates the website did not accurately reflect the act as enacted at the very beginning of the article: "Comparing the DC Code to the act that made the change, I noticed that something was amiss..."

<comment><USER39> Perhaps you should read the article.

> This sort of "technical correction," as lawyers would call it, didn't need > to be passed by the Council and signed by the Mayor.</comment></comment></comment>


When you give a tree an email address - <AUTHOR> http://www.citylab.com/tech/2015/07/when-you-give-a-tree-an-email-address/398219/ <comment><USER2> This is beautiful and moving to me in a way that is hard to express easily. Part of it is probably the sheer tweeness (not using that term disparagingly) of writing a love letter to a tree. I'm sure the samples in the article were pretty much the top of the barrel -- and I pray for the poor oaks which inevitably received a bunch of obscenities [^1]. But still, people are taking time out of their day to _email the trees in their city_.

I'm sitting here thinking about how this could be generalized into a mechanism of engaging with the world around us, which is possibly defeating the point; this is great more for the _emergent gameplay_ of it (to steal a metaphor) than anything, and I think some weird startup that let you tweet your river would kind of rob the whole exercise of its innocence.

The Internet (or maybe technology in general, as if the two have a meaningful difference at this point) is so overwhelmingly used as a vehicle to accelerate maturity, to make us more jaded and cynical and disconnected. There's something great about this doing the opposite -- a glorified SMTP server letting us be more childlike, more honest and engaged in the world around us.

[^1]: There's, like, a 30% chance that there now exists someone in this world who has sent a dick pic to a tree.

</comment><comment><USER3> How can it be that no one has referred to this as "treemail"?

<comment><USER4> Must be barking up the wrong tree! But don't worry, I will get to the root of it. Leaving no leaf unturned!

<comment><USER5> Way to pick the low hanging fruit...

</comment></comment></comment><comment><USER6> Easily the best part of this article is that the interviewee is called Councillor Wood.

</comment><comment><USER7> I wish a boy would write me a love letter! It's awesome that trees now get get more love than many women in NYC but if I had the chance I would also write to my favorite tree in Central Park

<comment><USER8> "For how could I fall in love with a Moon, When having set my sight on the Sun first."

Dugg into every manuscript written,

Every prose ever composed,

Yet I cannot find an instance of men describing.

Describing the sentiment in my heart when I think of you, YourLocalCousin.

And every moment, that is.

I am now sadly forced to believe,

"Man" has never felt it.

Ineffable, it is.

Elyvate is the name I give it.

My pen is my witness and will testify

That I am left with only one desire

That is: in your heart to Reside"

 _A boy_

<comment><USER9> This is one of the sweetest things I've ever seen on the Internet.

</comment></comment></comment><comment><USER10> Where would you find these email addresses? Were they on the tree? Or some website that would need to be looked up?

<comment><USER11> Seems you gotta find it through this map: [http://melbourneurbanforestvisual.com.au/](http://melbourneurbanforestvisual.com.au/)

<comment><USER12> Cool, although disappointingly the trees don't actually seem to have their own email addresses. I clicked on one and the address was "firstname.lastname@example.com" and the email subject had the tree id "Information about a London Plane, Tree ID 1024530"

<comment><USER13> yeah man, it's like being a teenager in the last century all over again, when you would call someone's house and have to speak to their parent or whoever picks up first!

It's 2015. Can't I just email a tree!

</comment></comment></comment></comment><comment><USER14> Dear Mr/Mrs Birch.

Please STOP this pollen nonsense immediately.

<comment><USER15> I suppose 'Dear Mr and Mrs Birch' since they have both male and female flowers?

<comment><USER16> Sounds like perfect Tumblr material.

"I'm birch-kin and my pronouns are xe, xir, xir, xirs, xirself"

</comment></comment></comment><comment><USER17> What happens if you give them bitcoin addresses?

</comment><comment><USER18> For some reason this immediately reminded me of Larry Nivens Draco Travern: "The Slow Ones". Were a race of aliens had a much slower metabolism than ours, they looked like rocks that slowly over decades where moving toward the tavern across the field to visit. You could communicate with them through email get replies back after a couple of months, to the aliens it was basically instant messaging.

</comment><comment><USER19> We should do this in Seattle. There are lots of great trees here that I wish I could write to.

<comment><USER20> Then make yourself the Postmaster General! Who knows, the idea might catch on :-)

</comment></comment><comment> guard-of-terra You may also have twitter of a rock lying in some forest:

[https://twitter.com/kamen_v_lesu](https://twitter.com/kamen_v_lesu)

It's "Today nothing happened" if you're curious.

<comment><USER21> Perhaps it is a warrant canary / dead man's switch. If it posts something other than 'today nothing happened' you know the account has been compromised. if it doesn't post 'today nothing happened' you know the silent switch has been flipped and any further signals cannot be trusted.

<comment> guard-of-terra It could be, but it's not. It's an example of twitter art.

<comment><USER22> Maybe that's what they want you to think.

</comment></comment></comment></comment><comment><USER23> I wonder if people would have been this kind and thoughtful if the trees were on Twitter, or Reddit _(topical!)_. How would we interact with trees here on HN?

<comment><USER24> Oxygen considered harmful, remove all leaves from your current projects if you want to avoid the oncoming tidal wave of hyperventilation problems.

</comment></comment><comment><USER25> Washington DC keeps a dataset of all of their trees. I wonder if I should build some sort of application for interacting with the trees, or just learning or posting more information about them.

data set: [http://caseytrees.org/resources/maps/dc-street- trees/](http://caseytrees.org/resources/maps/dc-street-trees/)

</comment><comment><USER26> There's a lot of positive pro-tree stuff happening in the city of Melbourne, this is one of the more whimsical aspects of it.

On the less whimsical side of things, a lot of Melbourne's trees are in decline / are dying, because the city decided to stop watering them during a drought. But, positively, lessons have been learned from that mistake.

Some further reading : [https://news.ycombinator.com/item?id=9411658](https://news.ycombinator.com/item?id=9411658)

</comment><comment><USER27> But, why trees do not respond?

<comment><USER28> _You must understand, young Hobbit, it takes a long time to say anything in Old Entish. And we never say anything unless it is worth taking a long time to say._

</comment></comment><comment><USER29> Opentrees.org ftw

</comment><comment><USER30> From [http://twentythree.fibreculturejournal.org/fcj-168-do- object...](http://twentythree.fibreculturejournal.org/fcj-168-do-objects- dream-of-an-internet-of-things/)

 _".. Something strange happens however when objects acquire connectivity, semantic depth, and the powers of computation and memory – they immediately and drastically transgress the ontological borders assigned to them..

.. spimes actively enfold space and time because they have the capacity to carry around their entire existence as a semantic layer..

.. anthropomorphic metaphors are a way for humans to bridge the chasm between ourselves and objects. They create affective resonance between a human and a thing, thereby bringing us onto the same ontological plane."_

<comment><USER31> I'm starting to think one of the trees was equipped with a Markov chain sentence generator that scanned a lot of philosophy papers and just spit out a lot of pretentious gibberish. To philosophers though, I'm not sure it would matter because nobody could tell the difference anyway.

<comment><USER30> Many modern laws were influenced by philosophers. While the language of computer scientists and philosophers may appear to be gibberish, they often influence laws with side effects on humans who may not understand the source jargon. When the laws for Internet of Things (including but not limited to huggable trees) are written, hopefully there will be diverse philosophies at the table, including classics like liberty, speech and privacy.

<comment><USER32> > diverse philosophies at the table, including classics like liberty, speech > and privacy.

'Speech' is hardly a philosophy, 'liberty' is deeply contested down to its core, and 'privacy' is, again, something you have or you don't, like speech.

<comment><USER33> I recall that Facebook allows a great granularity for my privacy!</comment></comment></comment></comment></comment>


Photography Without a Lens? Future of Images May Lie in Data - <AUTHOR> http://lens.blogs.nytimes.com/2015/12/23/the-future-of-computational-photography/ <comment><USER2> Coded aperture is very interesting, but while it has less mechanical cost without a lens, images will be of lower resolution and more noisy, due to non- uniform power spectral density of the aperture, so the deconvolution (or equalization) will make the more attenuated frequencies noisy. That's why the researchers cite applications that don't require human examination of the photograph.

</comment><comment><USER3> To a lesser extent, even traditional DSLRs are in this era now. I mean, when I take a photo, I look at my histogram to make sure I'm not losing any data. Even if I don't like how the image looks when I take it, I know I can always adjust it in Lightroom; even more so if I take it in RAW.

I've heard some camera manufactures are trying to design sensors were you can lock either the shutter speed or aperture, and the sensor captures the other side (100 different apertures or 100 different shutter speed), allowing you to look through them in post and chose the setting you want.

In any case, the photo you take is never what you really see. You adjust your aperture, iso, speed and other settings to create the image you want. In every case, you're always creating a new work.</comment>


Medieval Technology Pages - <AUTHOR> http://scholar.chem.nyu.edu/tekpages/Technology.html <comment><USER2> I was baffled by this:

[http://scholar.chem.nyu.edu/tekpages/texts/harncont.html](http://scholar.chem.nyu.edu/tekpages/texts/harncont.html)

> The problem, Lefebvre des Noëttes concluded, was the tendency of the harness > both to press on the horses's carotid artery and to hamper its breathing > because of the position of the harness on the neck. Indeed, Jerome > Carcopino, the archaeologist and historian of Rome who wrote the > introduction to Lefebvre des Noëttes's book, used the word "strangulation" > to describe this situation.

<comment><USER3> One does wonder how people could have strangled horses for centuries, without figuring out the breast strap or shoulder yoke.

I mean, try carrying a backpack with a strap around your neck.

<comment><USER4> They used it for light loads, and used oxen for heavier loads. Both weren't used at their maximum pulling capacity. (this is in the article)

<comment><USER3> I did read that.

And they also strangled oxen.

It just doesn't make sense.</comment></comment></comment></comment>


From successful to zero, thanks to Namecheap - <AUTHOR> https://medium.com/@alexandernst/from-successful-to-zero-thanks-to-namecheap-d392c76b2ffd <comment><USER2> Well, they definitely haven't named themselves Namegood. But hey, it was fast and it was cheap!</comment>


Ask HN: What is the best way to promote a KickStart project? - <AUTHOR>

I've got a friend who is just started doing a Kick Starter project ( http://www.kickstarter.com/projects/devilsminstrels/the-devils-minstrels-origin-comic-book-0 ), and I was curious as to the wisdom that HN could share in how to market and promote these type of projects. <comment><USER2> I thought that this was a fantastic Promotion for a Kickstart project - <http://www.youtube.com/watch?v=jgH5mqQLYJU></comment>


Ask HN: and now what? - <AUTHOR> I'm desperate.
I'm almost 38. Start programming at 10. Spent 7 years in video game industry as programmer, project manager, CTO. I tried during 5 years to create a "startup".
I still have a half time job that pay the bill and give me enough time to create something. During these 5 years I created a game, a tool for geeks, a B2B project and lot of more things. I created some projects alone, with CEO partners, CTO partners. Each time, I have no traction, negative feedback, I demotivating and then I stop the project. I read too much about pretotyping, MVP, lean startup, marketing.
Now I don't even know what to do. All ideas I have seems already made by someone else, and often better than I planned to do them. Each partners I meet seems too newbie to work with.
It's horrible because I have time and skills to do lot of things but nothing motivate me anymore. I think all those failures killed me and now I'm lost. What a waste.
If you have any advises, ways to help me, ideas, insult, whatever, shoot.
--- UPDATE: Thank you so much for your advises, I need to think about all this. I'll answer you one by one.
I'm on HN since 1400 days with a total of 42 karma point and never been on HN homepage. My anonymous account have more karam and on homepage in 30mn. What a pitty! but anyway, I'm not looking to be a star or for vanity metrics so it's not a problem.
Lot of people would love to enough money each month and free time to do whatever they want. It's a waste because I don't know what to do with this free time...
Everything is insipid for me. I have no hobby, no programming idea, no desire to meet people, travel whatever. When I try to get a hobby, I m fed up after a few try. When I go to nice tech event, I'm bored. <comment><USER2> Seems like you've been going at 110% for a long time. My recommendation: take a break. A month at least, and just explore passions that you never had the time for during your adventures. Build something fun (I like go-karts and mini bikes), read about something totally new and unrelated to programming (history, evolutionary psychology, fiction), and challenge yourself physically (strength training and endurance).

It's easy to get caught in the echo chamber of the Startup world. The reality is, it is very hard to strike it rich in any industry. That doesn't mean we should stop trying, but just try to enjoy your life along the way by diversifying your time investment portfolio. That means that even if every attempt you make fails, you still enjoy the journey.

So go out there and have some fun. Don't worry, there will be plenty of opportunities for startups when you return.

<comment><USER3> This is beautiful advice - take it. I am experiencing a situation semi- analogous to the OP's. I've killed myself and my health over the last 7 years to get a startup "going". While our traction is decent, scale and growth aren't easy. And since we are a difficult to scale business, we find ourselves not easily raising good, inexpensive money. So we've been bootstrapping it for a long time and my health and my relationship with my family have taken a hit. I thought having strong revenues would alleviate alot of the pressure, but as they say, "more money - more problems". Meaning, more clients = more needs, more support, etc. And we have an anemic team to do this. I had become very moody, grumpy, unwilling to listen - a bit of a nightmare. It wasn't coming from a bad place, but I just wanted to get shit done and didn't have time for any extraneous chatter or "unimportant" details.

After fighting intermittantly with my cofounder and my wife, I decided I didn't want to be that way. I've burnt the candle on both ends long enough and I was out of wax. While I can't take the full month off like FD3SA is recommending, I significantly scaled back (for me) to only working 5.5 days a week and putting a big effort into working out at least 4 days a week. Also, spending quality time with my family, not just being in the same room while I stared at a laptop. Keeping a high priority on work, but also a similar priority on fun and on life in general. I've only been doing this for a couple of months and have seen a significant improvement on my productivity, a more harmonious working and family life, and just a better overall outlook on life.

There are a million great opportunities out there, especially in the tech space - but if you are burnt to a crisp and you are physically/mentally not in a good place, it's easy to not see them or to feel too defeated to want to tackle them. Take care of yourself - you'll appreciate it.

</comment></comment><comment><USER4> Stop feeling sorry for yourself, and get a full time job. You need to accept that you're not good enough to start your own company. It's okay, there are millions of people like you, like me and most people on HN.

Take a break, go on a vacation, and recharge your batteries. You have the skills to have a well-paid job, and a great life. Don't look a gift horse in the mouth just because you had a failed dream of being a millionaire through some startup. You can still have a great life from your skills, if you just step back and realize how lucky you are.

<comment><USER5> Good enough don't enter into it--luck more than anything.

The wrong product at the right time can help you laugh all the way to the bank, while the perfect product when nobody is buying will languish in obscurity.

</comment></comment><comment><USER6> Take a six month break from everything.

Come back and kick ass.

<comment><USER7> This advise should be the top-voted comment. Because this really works, all the time. If only the OP gave this a shot..

</comment></comment><comment><USER8> The worst place to start a startup from is "I have to start a startup." It's hard to do that even if you're awesome. Take a long break and don't do any startups.

Do some side projects, get interested in something. If you've got a lot of interests you'll invariably have a lot of inspiration.

If your inspiration consists of "FUCK I NEED AN IDEA" you'll probably fail miserably.

</comment><comment><USER9> _I'm desperate._

You may think you're desperate, but you're not. Keep reading...

 _I'm almost 38. Start programming at 10. Spent 7 years in video game industry as programmer, project manager, CTO._

None of that matters. Today is Day 0.

 _I tried during 5 years to create a "startup"._

You don't "create a startup". You supply solutions to other people's problems. When you do that properly, a "startup" is often the byproduct. Focus on their needs, not yours, and allow the "startup" to evolve to what it should become instead of pushing some preconceived notion.

 _I still have a half time job that pay the bill and give me enough time to create something._

That's great! Fantastic, in fact. You have the best of all world's: enough income, enough time, and enough connections to other things and people to supply yourself with plenty of demands to supply. You're ahead of 95% of others already. So please stop feeling "desperate" and harness the excellent position you're already in.

 _During these 5 years I created a game, a tool for geeks, a B2B project and lot of more things. I created some projects alone, with CEO partners, CTO partners. Each time, I have no traction, negative feedback, I demotivating and then I stop the project._

a. Focus on what someone else needs. b. Limit the number of others and needs to streamline that focus. c. Work alone as long as you can. You may surprise yourself at how much you can accomplish.

 _I read too much about pretotyping, MVP, lean startup, marketing._

Then stop reading and start doing. When you reach the point where you don't know how to do something that you must do, then reach for help, reading or otherwise, but not before then. Allow yourself to be pulled by your customer's demands, not pushed by what you think you should be doing.

 _Now I don't even know what to do._

Find a customer.

 _All ideas I have seems already made by someone else, and often better than I planned to do them._

That's a good thing! You _want_ other people's great ideas. It's your execution, not their idea, that will be your key to success.

 _Each partners I meet seems too newbie to work with._

Then work alone and learn what you have do when you need to.

 _It's horrible because I have time and skills to do lot of things but nothing motivate me anymore._

That's because you're too focused on yourself, and not enough on others. Concentrate on satisfying someone else's needs by supplying something excellent. That's almost always enough motivation. You'll see.

 _I think all those failures killed me and now I'm lost. What a waste._

They weren't failures, but necessary learning experiences to get where you are now. Thomas Edison, Walt Disney, and Colonel Saunders all "failed" many more times than you have before they succeeded. And each one of them would tell you that those "failures" were necessary but not sufficient for success.

Take a deep breath, get rid of you're stinkin' thinkin', regroup, find a customer, and build something great. We both know you can do it. Best wishes.

<comment><USER10> It should also be noted that startups aren't for everyone. After reading PG's essays in ~2005, I realized there was too much stress and anguish in that path for my personal tastes. It turns out the idea of creating value is also a useful abstraction as an employee, and I've never regretted not going the startup route.

<comment><USER11> I agree, but looking at the way he has been trying hard to build something (doesn't matter whether he was building it for himself or someone else), I think he is pretty much a startup guy. Success is something unrelated altogether.

</comment></comment></comment><comment><USER12> Have you checked out the completely free course on how to build a startup by Steve Blank? It's not as dumb or cheesy as it sounds. The guy knows a bit or two about what he's talking about. <http://www.udacity.com/overview/Course/ep245/> Give it a try. Worst that could happen is that you wasted a couple of hours getting slightly entertained.

</comment><comment><USER13> We have some things in common - I'm 37 and started programming aged 9. I also got very burnt out, without realizing it, and then tried to start a bunch of "startups" without recovering properly.

I took about six months of very minimal contract programming work, at the same time as doing a lot of physical work on a "fixer-upper" house my wife and I bought in a cheap area. Then I settled on a project which I _hope_ will turn into a startup, but which I'd be completely happy just working on anyway even if it never turns into a business - I'm just that interested in it. Consulting is still there to pay the bills.

Good luck!

</comment><comment><USER5> Sounds like you were in industry from 2000-20007, right (just backtracking your timeline)? Those were some grueling years, and then the mobile/freemium avalanche hit.

You likely have a lot of native code experience, and probably dealt with annoying hardware issues, right (PowerPC, whatever)? Try getting a gig with somebody targeting embedded systems, or take some time off.

Live life for a bit, stop programming, and maybe attend the odd hackathon until you learn to love coding again.

Hit me up on email if you want to vent/chat/whatever.

<comment> ryan-allen I think your reply is interesting because you're advising taking specific useful experience and kind of like, just working on selling the experience (which is absolutely worth something) rather than continuing pushing the 'next best thing'.

Reading tech news sites all the time kind of makes me feel like unless you're pouring your heart and soul into your job or startup or whatever you're just a useless asshole. Maybe that's not the case and experience is worth something, enough to coast along and be useful while you find new direction or new inspiration.

I don't know!

<comment><USER5> The reason I advocate that approach (other than it is what I do, to varying degrees of success, to support myself) is that it seems to be more straightforward a value prop than trying to sell an idea.

Read "Masters of Doom", read "Soul of a New Machine", read "The New New Thing", read iWoz: we see that products fail all the time, that pioneers take a bath, that the second mouse gets the cheese--but that engineers are always in demand.

A business can fail, but raw material is always being looked for.

</comment></comment></comment><comment><USER14> As an older guy myself, some thoughts --

1\. Take a break if you feel you are burnt out.

2\. Shift into a new area. I suggest healthcare. You have seen the entire cycle of the PC/Internet era and understand how companies are built. You can parlay this into the healthcare area where technology is just making inroads (it feels like the mainframe era to be honest). So, if you are into games, B2B or mobile there is something you can do. Best thing is you will now understand the problems (unlike 25 year olds :-). There is a revenue stream already in place. It is about 4-5 times bigger than the advertising stream.

3\. The internet model has turned out to be based primarily on advertising. With the general dispersion of internet technologies, the technology risk is very limited. So it is mostly a marketing problem. Most of the power has shifted to Google/Amazon/Facebook and other biggies. So you will compete with young guys with lot of energy following a template (MVP/Lean/Accelerator etc.) but limited perspective on solving problems. Not the best place to be as a 38 year old (esp. if you already don't have a hit). Nothing stopping you, but be realistic that you will be building an advertising based company with minimal technology risk but high emphasis on marketing.

</comment><comment><USER15> It sounds to me that you are burned out/living on thin energy/emotional margins, you don't know enough people, and you are following idea groupthink so you don't really believe in what you come up with.

I think that all of these problems will be solved by working a good full-time job for a couple years while writing an interesting blog and promoting it. You'll recover your energy and confidence. You'll be working through your thoughts, finding your voice and grappling with ideas every time you write. You'll be connected to people who share your interests, and who will give you strong feedback on/insight into your ways of doing things without your having to build a whole company first. And eventually, you'll intersect a great idea with the right person/people and be ready mentally and physically, and things will seem much different than they were in your last go-around. Hope this helps.

</comment><comment><USER16> I suspect that I have a lot more energy and desire than my peers. But even so, I suffered similar burnout to the OP about 6 months ago. I attribute my burnout to trying to continue hard-driving my startup idea while simultaneously trying to juggle additional, optional life changes along with working a regular, full-time job. My optional life changes were: my wife and I decided to have our first kid and we wound up with twins, and started an overly painful re-fi process on the house, and spent 24 months trying to get a new job in town so I wouldn't have to travel as much for work.

The burnout I suffered seemed cataclysmic for my startup idea. I started to question it and myself, why wasn't I making progress? All this stuff I have to manage is too much, I wish I was 25 again with no responsibility. I just turned 39!! I'm getting old, now with kids; I'll never be able to make anything out of this thing, I waited too long... My yard is a mess, my desk is a heap of papers. :( Blah blah, that's all just stinkin' thinkin', as someone else said.

My depression came from my not acknowledging that I was already at a diminished capacity with the twins' arrival, and then I stupidly decided to ratchet up the job search AND re-fi my house! What was I thinking?? There is a limit, and I wasn't being realistic about what I could manage.

The good news (for me at least) is, the tidal wave of burnout-inducing extra responsibilities has receded and my new, local day job is so undemanding and steady. I find myself ending the day with some spare energy and I have gradually started to reconnect with my startup project by taking on some low energy improvements that I could feel proud of. Just last night, on looking at my pages render out just so, I got that feeling of secret pride for the first time in so long. I was back to making a quality product again.

I think the OP is feeling burnt by all the failures and false starts and that's creating a negative spiral. Butch up, OP. You're a systems programmer coming out of the video games biz like me. You can cogitate about systems in ways that many cannot. Take some pride in that. Husband your resources. When you're feeling strong again, make some wise decisions and get back in the game.

</comment><comment><USER17> You may find real inspiration reading this guy's blog, Altucher Confidential. He is so realistic, and he will get you back on your feet, laughing. <http://www.jamesaltucher.com/>

</comment><comment><USER18> You wrote " I think all those failures killed me and now I'm lost". Which sounds like you need a good vacation in another culture to me. Go camping if you are on a tight budget. Leave the screen behind for a while and see the world around you.

After the rest, I would suggest that you work on a problem of personal interest to you. Not a problem that you think someone else might have a need for, but a problem that YOU are the person who has a need for it. There are still an uncountable number of problems in the world to solve.

</comment><comment><USER19> Everything exists already (figuratively) but most of it is garbage. People are fickle when it comes to new experiences so there will always be converts to something better. Make something that sucks better and sell it.

A lot of people think they need to create something new when really what we currently have is just not all that great. Taking a verifiable need and implementing its basic requirements well will always give you a greater chance of success than defining need based on a completely new concept.

</comment><comment><USER20> I'm starting a 501(c)3 nonprofit science research organization. One of the side projects I'd like to do is to teach a computer programmer how to program bacteria and help to develop a 100% open-source git-like software system for biology. Yes, I'm aware that entities like genome compiler exist - but the people running it just _don't get it_ (either from a CS perspective OR a biology perspective) - I've had conversations with them. I could use someone like you, and if you really like what you're making, then it's certainly "spinoff"-able (technically not a spinoff since there's no IP transfer) as a github-like for-profit enterprise.

Our long-term goal is to also produce a platform for building open-source, IP- unrestricted biological products. We're starting with an anticancer compound, I have other ideas that I don't want to talk about until I'm ready to pitch for donations for them.

Anyways, I think you should take a break - we won't be ready to launch until december-ish anyways (depending on how badly the IRS handles itself in the meantime), but if you think you might be interested in this, let me know. I might not be able to pay that much, but you might find some inspiration, and a direction to go in.

<http://indysci.org/>

</comment><comment><USER21> Alright, you're in a slump.

I pulled out of a failing startup that I was bootstrapping. I wrote tons of code, and built a product, that several people in the industry told me was great, and they would love using it. Unfortunately, it failed from a business standpoint. ... then I spent some time thinking about what I did wrong, and I think that we've made the same mistake.

I ignored people in my business. At the end of many days, I would rather sit in a room and write code rather than go out into the world, network with people that could collaborate with me, or even just be friends. Look at other business people - they can't code, but they have a problem to solve, they get organized, they motivate other people, they solve problems. But the world isn't about code. Programming is one profession, and there are many, many other ways to lead a successful and happy life.

Look at the pattern in your work: Money isn't a concern for you. It looks like you're setting out to create meaningful value, or to "be someone", at least in your own eyes .... tbh, there are many, many other ways to do that rather than start your own company. But you're doing it for its own sake, not because you have a problem you want to solve. You can be entrepreneurial within a system, working for a company. You can apply for grants to work on problems that are relevant to people. Given your opportunity costs, it's likely that it's not particularly lucrative for you. For most people, a job is just a way for them to sustain their family and personal life ... nothing wrong with that either. Based on your actions, the most important thing to you doesn't seem to be to create value, but to make a contribution while avoiding other people and institutions. Are you dating, do you have a family, are you in shape? There are many other ways to get value in your life.

You're living in the "hacker news" bubble. As a demographic, we are generally male, often single, highly skilled with computers, slightly introverted, and abhorrent of institutions. Because we're good with computers, we use this as are catch-all answer to life's questions. Pretend you were somebody else - somebody who is a non-nerd. What would you do?

tl;dr; My advice is to get out in the world, become part of communities (itrw), and make sure that you are getting fulfillment in other ways. Code is the solution you're familiar with, but no amount will not solve any of your problems, guaranteed.

</comment><comment><USER22> "Burnout is caused when you repeatedly make large amounts of sacrifice and or effort into high-risk problems that fail. It's the result of a negative prediction error in the nucleus accumbens. You effectively condition your brain to associate work with failure." -Isaac Yonemoto

You need to start having fun again, and quit trying to be successful. The success will follow. Chasing it constantly is a bit like chasing Moby Dick.

</comment><comment><USER23> What lessons and mistakes did you learn in these 5 years? Have you been avoiding them after they happened? Technical skills do not seem to be the problem here. If you can't gain traction, you probably aren't building products for your right audience. Were your attempts those SV types that try to go for it big targeting consumers? You may want to try the micropreneur route championed by Patrick McKenzie, Rob Walling, and Amy Hoy. If you already are, you may want to ask them for advice. If all things fail, what about write a book teaching others what you know and learn? If no one buys your book, can you try to teach more with your blog first?

Maybe you aim too big to begin. Why not set a much smaller goal, achieve that first so you feel good about yourselves. Then use that positive energy to fuel your journey forward.

Don't give up on your dream. If you do, how many more years do you have to wonder what ifs and swallow your pride working at a job you don't like.

You already pull in enough to pay the bills, so there is no worries. Try again. You can always find a contract to pay the bills again.

Whatever your mind can conceive, you can achieve.

</comment><comment><USER24> Hey bud, don't worry. You'll get through it.

Couple of things:

 _All ideas I have seems already made by someone else_

This is a good thing! This is validation of the market! And there's _something_ new about your idea, right?

Even better - competitors can acquire you!

You want competition. Be scared if there isn't competition.

 _Each time, I have no traction, negative feedback_

No traction - this is _the_ problem. The advice I like is "do things that don't scale" (pg I think?).

Example: blog and submit your posts to HN. Repeat until you get one onto the front page. _Don't stop._

Re: negative feedback - you have feedback at all! Someone tried it out! You're ahead of the curve.

Negative feedback is also your customers telling you what to build. This is the good stuff! If the only thing that comes from your idea is advice on what to build next, that's a positive!

Finally, consider the Helsinki Bus Station theory:

[http://www.guardian.co.uk/lifeandstyle/2013/feb/23/change- li...](http://www.guardian.co.uk/lifeandstyle/2013/feb/23/change-life- helsinki-bus-station-theory)

In a nutshell - all routes start out the same. The first 3 or 5 years on an idea are about getting out of town. It gets interesting _after_ that.

 _So pick a route, and stay on the fucking bus._

:)

</comment><comment><USER25> Sounds like some kind of motivation/identity crisis or burnout syndrome.

I have a proposal that might sound strange and maybe you cannot do it for family reasons or whatnot... but it worked wonders for me and I think it's worth sharing.

Have you ever heard of Camino de Santiago? It's a pilgrimage route across Spain and I walked that when I was in some sort of personal crisis and I needed to clear my head and figure out my life.

The point is that you get out of your environment and your 'normal life' routine and you just walk. No plan, no pressure, no distractions (I did not check my email for weeks) and you just walk, enjoy the sun and rain, meet new people, think about what they have to say, enjoy occasional dinner and wine with your co-pilgrims.

It's difficult to explain the experience but the thing is that things start to happen in your brain and you start to see everything differently. I came there with anxiety attacks and one month and 750 km later I felt like a different person, relaxed and full of energy, ready for new adventures.

<comment><USER26> I've considered doing Camino. Would love to chat more about your experience.

<comment><USER25> I would be happy to - my email is my HN nickname at gmail - get in touch, ask anything, I had great times at Camino and I love to talk about it. If you want to see some pictures check out <http://www.honzzz.uphero.com> \- I am afraid the rest of the site will be useless to you unless you speak Czech but a picture is worth a thousand words anyway.

</comment></comment></comment><comment><USER27> Edit: 0) Change your nick. Really. To something you like.

1) Taking a break, as lots of people have said, my help a lot. You get a much better view of yourself, your loved ones, your environment and what you have done than while engaged in 'making a living'. Even just a week off may help a lot.

2) Do not try to be 'the best' at anything. Really. Try just to enjoy what you do, and to do what you enjoy and are good at. Right now nothing feels like it because you are tired. Hence 1)

3) You need to start valueing what you do. Each time you make something which is good for you or for anyone, you need to 'celebrate' it inside and outside. You have done a lot of things but you have probably never enjoyed them and generated what you call 'feedback'. Really: the mere fact of getting up and taking a shower is enought to celebrate. Imagine finishing a project or _starting_ a new one.

4) Let you loved ones make the valuations: this may be even better.

5) It is irrelevant that your ideas are not new. Your job and your contributions are.

But people have already said all this.

</comment><comment><USER28> This is common -- and even founders who exit their company encounter this feeling of being lost after leaving their last startup.

One thing that's been useful for me is to get off the startup founding train for a while, go get a job or consulting gig in a larger company in an industry that you think is worth learning about, and then rebuild your savings and sanity while looking for new problems to solve. You may spot an opportunity to productize a solution for your client that they are willing to pay for and beta, and this will help you avoid wandering around testing abstract MVPs in the market since you will have your first customer on board on day 1.

I don't think a month off is going to help you feel better or accelerate your trajectory in the right direction. You'd rest a lot better knowing that your next 6 months are figured out.

</comment><comment><USER29> It's time to play. <http://www.physics.ohio- state.edu/~kilcup/262/feynman.html>

Stop worrying about doing something useful - just do things that interest you. Release them publicly, as open source, or as products.

</comment><comment><USER30> _I'm bored._

I think we've all been there. Some more than others. The only cure for boredom that I know of, is to go find something new. Maybe it's a cooking class, learning to paint, or making music. Puzzle/game/trivia nights. Auto racing. Wine tasting. Beer making. Book clubs. I can go on just listing random things, but you get the idea.

Once you invest your time in these things for long enough, you may find yourself thinking, "how can I make X better?" You'll probably start with solutions using tech, and branch out from there. Soon you're using your creative brain to solve problems that matter to you.

Passion, creativity, and persistence are things that can give you everything you need to get going. Everything after that is business execution, which I cannot help with.

</comment><comment><USER31> Poetry or a novel "comes out" not from the expert knowledge of a language, but from having a feeling, an urge, an idea to express, a theme. Wording is second.

Similarly, a project (which could become a startup) "comes out" not from having skills or experience "with Java", but from an urge to change (create or build or just do) something.

Where such inspirations comes from? From closely observing what is around, from becoming aware of "what is".

So, do forget your tools and skills for a moment, and try to find something, which you would like to change or improve, not to create a startup, but in a way of "just do it". Startup, like a form, is second to the content.)

I might be wrong, but nginx or redis or Scheme "came out" this way.

</comment><comment><USER32> Being in the same age bracket as OP, I think the youth craze in the IT industry contributes to "older" engineers feeling sidelined and burned out. Basically with 35 you've jumped the shark. It's arguably worse than the fashion industry or showbiz.

</comment><comment><USER33> Take time off and recharge. You'll be able to spot solutions to problems easier if you're not under pressure. Sort of like when couples try very hard to get pregnant and can't. Just take a break for a while, get interested in something, focus inward on yourself (physically and spiritually) and the ideas will come. Also read this: [http://www.jamesaltucher.com/2011/03/10-things- you-need-to-d...](http://www.jamesaltucher.com/2011/03/10-things-you-need-to- do-if-you-were-fired-yesterday/)

And don't forget even startups created by people with lots and lots of money and huge successes in the past screw up trying to make things too. (Airtime)

</comment><comment><USER34> A lot of people here are suggesting dealing with the burnout/fatigue/frustration first. That seems like good advice.

Sounds like you can/are supporting yourself with a half time job leaving you lots of other time. That in itself is an awesome asset, really awesome. Use it. Take some time at a lower work rate. Put that energy into something unrelated for 6-10 weeks.

One option is to spend more time socializing, with family and relaxing. Another is to pour time into something unrelated. Learn a sport, instrument, theatre, etc. Get a little obsessed if you're that kind of person. When/if you get back to putting your mind on startups again, it will be a new round, like boxing.

</comment><comment><USER35> Don't start with an idea. Start with a problem. Call a friend and ask him what problems he face. See if you think you can solve any of them. If not, call another friend. Don't create a product and then try and sell it. Find demand first.

</comment><comment><USER36> 38 is still very young. I am 43 and still working on my start-up. You might want to check out this book:

Noble Obsession: Charles Goodyear, Thomas Hancock, and the Race to Unlock the Greatest Industrial Secret of the 19th Century

[http://www.amazon.com/Goodyear-Story-Inventors-Obsession- Str...](http://www.amazon.com/Goodyear-Story-Inventors-Obsession- Struggle/dp/1893554821/ref=sr_1_1?s=books&ie=UTF8&qid=1369413754&sr=1-1&keywords=charles+goodyear)

If you compare your situation to Mr. Goodyear, you will find out that you have much more than what he had. I hope this can help you recover from your depression. Just don't give up on your dream.

</comment><comment><USER37> > _Everything is insipid for me. I have no hobby, no programming idea, no > desire to meet people, travel whatever. When I try to get a hobby, I m fed > up after a few try. When I go to nice tech event, I'm bored._

Join a local church.

This what I have done recently and it has been amazing. Friendly people who are extremely caring, a welcoming environment, and a call to a higher purpose. I've instantly gained some new friends that I care about. You may find value in doing the same.

Stop worrying about startup ideas, hobbies, etc. Just get to know people and care about them. Find ways to help them. I _guarantee_ everything will work out by following this simple rule.

</comment><comment><USER38> Check out my website. I just gathered 100 tech companies to contribute in June. I have the drive, sales mentality and creative/journalistic ability to publish technology. So, I can get the business, just need someone to help make it more of a technical platform. If this inspires you, let me know. To put this in perspective, Svbtle has 200 contributors and has been around since 2010 (?). I secured half of their contributor base in May alone. Happy to share details. You'll prob like my content, too - all tech experts and startups.

Either way, you know what is best for you.

</comment><comment><USER39> This may be a little off from what others are saying but when I was burned out of tech, I got a job at a Starbucks. An entry level barista. I worked there a year and at the end I was ready to hop back in the saddle with programming.

I learned a lot a Starbucks about people, how people think, how to be adaptable, compromise, etc. These skills directly transfer to to being a geek.

I work on my own things now but those were fond days for a lot of reasons. Most of which gave my brain the rest it needed and then the energy to stat up again.

I hope this helps. I'd love to talk or answer specific questions.

</comment><comment><USER40> Save some money, travel for a few months in Europe, Asia, or South America. Meet as many people as possible. Reconnect with the essence of life. See everything from a new perspective.

</comment><comment><USER41> Firstly it seems like its time to take a break. When you disillusioned you need to stop for a bit. Perhaps do a while of "normal" work.

Secondly I would advise a frank and in depth post mortem. Find out really what when wrong and when. Perhaps it was just bad luck but more likely there are mistakes you can learn from.

"Each partners I meet seems too newbie to work with." This phrase stands out. Perhaps its just because your upset right now but generally when someone blames everyone else it means the problem lies with them.

<comment><AUTHOR> Thanks. I think I should do that, take a break and do depth post mortem. But I have no clue on how to do a good analyze of myself :/

</comment></comment><comment><USER42> You sound burned out, not desperate.

I personally would take a breather and get a full-time job doing something I enjoy and revisit entrepreneurship in a 18-24 months.

I'm only a few years younger than you.

</comment><comment><USER43> Go out and meet people. Talk about your ideas, and for gods sake, listen for theirs. Share your passion. Don't be afraid of someone else stealing your idea. There is more to an idea then just "implementing" it.

Stop reading all the startup blogs. IMO, that's mostly wasted time. Spend this time doing things you love, step out of your comfort zone and try something new (e.g. hobby). Maybe you'll find out that your "startup idea" is an interactive online climbing guide.

Source: I'm 23.

</comment><comment><USER44> Take a break. Code for fun, not profit. Connect with your community, see who's working on what.

The excitement and passion that leads you to create something rarely sticks around when things get tough. You have to press on regardless or quit. It's difficult to press on if you can't see any progress, but its often more refreshing and exciting if you step back and take a totally new angle on things.

</comment><comment><USER45> Don't most startups end up failing? A few make it and I guess that is what we all hear about.

I felt the same way about a project I was working on. It sucks when you think you made something cool, but no one else does.

Maybe that is why most people just stick with the corporate job. I think hope along with greed might be the two most powerful human emotions. You just can't give up that hope.

</comment><comment><USER46> You might benefit from Amy Hoy's 30x500[1] workshop.

[1] <http://unicornfree.com/30x500>

</comment><comment><USER47> Well, it could be worse, right?

At least you have a lot of the skills that are in high-demand, whether on the job market or as a founder.

Why don't you create something just for yourself once? Just something that you think you would like to use or have. Worst case, you only have something nice that you like. Best case, some other people like it, too.

</comment><comment><USER48> Just wanted to let the OP know that Rob and Mike from StartupsForTheRestOfUs (one of my fav podcasts) addressed your post on their podcast today.

[http://www.startupsfortherestofus.com/episodes/episode-135-m...](http://www.startupsfortherestofus.com/episodes/episode-135-may- listener-questions)

</comment><comment><USER49> Is English your second language? Maybe the informal nature of forums brings this out but your grammar is pretty poor and for better or worse, English grammar has quite a bit to do with how people perceive us as individuals.

<comment><AUTHOR> Indeed, I'm French and I'm really bad in English. Sorry for destroying your language so much.

<comment><USER50> Well it was good enough fool the GP into complaining about it, so not bad. ;)

Also, listen to what edw519 has to say.

</comment></comment></comment><comment><USER51> where are you based and what areas of interest do you have or have you covered?

</comment><comment><USER52> Just keep in mind that, regardless of any external factor, what makes you feel depressed and unmotivated are the chemical reactions happening in your brain. And you can train your brain to handle them in better.

</comment><comment><USER53> "All those failures..."

They only are if you decide they are failures. Use those "failures" as a platform.

Chances are you are not alone in this. I know, I am reading into this and I am seeing myself. You are me.

There are lots of us in this boat.

Remember, this is our platform.

</comment><comment><USER54> Join a very good company,work freelance also and get clients,size or budget does not matter.Once you have good funding,a smashing project,happy clients,you can do ANYTHING.

</comment><comment><USER55> I am on the same situation and mental state. It's good to know that we are not alone. I even get bored reading all the comments here. Anyway, good luck.

</comment><comment><USER56> You need a soulmate and a project. Find the right partner to make projects and have fun. The rest of the data: age, situation it doesn't matter at all.

</comment><comment><USER57> And first of all, change that stupid username, 'shameonme'. No, you might think it doesn't, but it really, really affects you in a negative way.

</comment><comment><USER58> Do you have kids? Kids are a good cure against the downs in one's forties.

</comment><comment><USER59> Happy to help. Have tons of expertise w/your topic. email@example.com

</comment><comment><USER60> If you're going through hell, keep going. -Winston Churchill

</comment><comment><USER52> Book a flight to some place you've never been before.

</comment><comment><USER61> "Money wears out those who just did not have it"

</comment><comment><USER62> Find a timesink project «sort of» impossible.

</comment><comment><USER63> No way you're a failure, that's all I'll add.

</comment><comment><USER64>
                Academics.

</comment><comment><USER65> Keep in mind that most of what you're experiencing is common to a lot of other people. You're not at all alone. You're not in a situation where everyone else is succeeding and you're the only one that's struggling.

HN (and similar sites) primarily focus on the success stories, and it is very easy to let that warp your perception of your efforts, your abilities, your projects, yourself.

You may not have what it takes to launch or run a startup. Nothing wrong with that. You'll be in great company. If the stress of trying over and over again is getting to you, if you're feeling defeated, then stop. Step back, regroup. Think about what it is that you really want: do you want to be wealthy? There are other ways to do that. Do you want to make a difference? There are many ways to do that. Do you want to build cool stuff? Inspire others? Live a comfortable life with a family? Those are all OK, focus on them.

What you describe in your last lines sounds like depression to me, and it's a common problem too.

Point-by-point:

> _I tried during 5 years to create a "startup"._

Why? What was your motivation here?

> _I still have a half time job that pay the bill and give me enough time to > create something._

So, you're not yet fully committed to living or dying by your work. That's not necessarily bad, but realize this, because it's important: the less fully committed you are to your projects, the less likely they are to be successful.

> _During these 5 years I created a game, a tool for geeks, a B2B project and > lot of more things._

This sounds unfocused to me. If we step outside of the startup drum circle for a moment, you'll find that a lot of businesses will spend around 5 years just trying to develop, market, and popularize a single project. The startup iteration cycle produces really amazing results when it works, but it also produces a lot of failures. If you've got the sort of personality that is discouraged by too many failures -- and again, you're not alone in that -- then maybe you should look at some of the more traditional business models. There are some very successful, under-appreciated people in our industry who have done just this.

> _Each time, I have no traction, negative feedback, I demotivating and then I > stop the project._

A successful project is one that you do not give up on.

> _Each partners I meet seems too newbie to work with._

Is it possible that you're holding them to the wrong standards -- i.e., they're not "YC material" -- or that they've giving you good advice and you're not following it because it doesn't fit in with your expectations?

I don't know you well enough to give you more specific advice. (Nobody here does.) I deal with some of the same issues. Here's what I do to work around them:

\- Change my mindset. I often remind myself that although things are not where I want them to be, they are still better every year. And, although I'm not running a multi-million-dollar-per-year business, I've still managed to make a real difference in the lives of other people.

\- Make sure finances are comfortable and stay that way. I'm not rich, but I try to keep a little bit of slush in the bank, it keeps me from stressing too much about other stuff.

\- Keep an active side project, something that I enjoy working on, that has no deadlines or associated stress.

\- Take time to decompress, spend some time alone, recharge, whatever -- but find the desire again to keep chipping away.

\- Realize that, even at 35, I'm still fairly young and the game's far from over.

\- Just keep building. Even if it's just 5 lines of code on a day where I really don't want to do it, it's still progress. Everything I do leads in to the next project, the next step towards my goals. I build momentum this way. Slowly, but it's still momentum.

\- Avoid the YC/HN drum circle. YC would be a ton of fun, an amazing experience -- I'm a two-time reject now! -- but realize that it is a very specific approach to a very specific class of business, that there are a lot of failures and people just don't tend to talk about them much, and that it's far from the only road to success.

</comment><comment><USER66> _Each time, I have no traction_

Are you sure? How are you measuring that? How much traction did you need? Need to accomplish what next step? Are you trying to bootstrap from 0 -> profitability without taking funding? Are you looking "just enough traction to get funded", or "other"?

 _"negative feedback"_

What kind of negative feedback, and how did you react to it? There's a difference between "this is a really stupid idea and you suck" and "this could be useful, but not until you add a FR$OZGIBIT interface".

If the feedback helps steer you in the direction of a better product, better product/market fit, etc., then it's actually a good thing.

 _I demotivating and then I stop the project._

Why did you stop? Did you have a concrete idea, going in, of what goals you were trying to accomplish, what metrics you would measure, and what your "success criteria" would be?

 _I read too much about pretotyping, MVP, lean startup, marketing_

Hmmm... all of those things, in isolation, are potentially very valuable. I'm guessing you mean something like "I read all this stuff and saw conflicting advice" or "I read all this stuff and was drowning in information and couldn't find a cohesive narrative to link it all together" or "I spend too much time reading this stuff instead of actually building my $FOO".

In any case, I can only share what I've found valuable. Read Steve Blank's _The Four Steps To The Epiphany_ and/or _The Startup Owner's Manual_. Steve's work gives you something closer to a "paint by numbers" approach than anything else out there. The Customer Development approach gives you a process to follow, so - at least - you won't just be drifting around doing random stuff because you read about it on a blog link from HN. Start with CD and then add in other "stuff" as you work through the process.

Guy Kawasaki's _The Art of the Start_ is also an excellent read.

 _Now I don't even know what to do._

Well, you could give up, feel sorry for yourself, mentally berate yourself for not accomplishing more, maybe drink a lot, or take up a cocaine / heroin / crystal meth habit, or just spend all your time getting stoned and listening to Pink Floyd.

You could watch Glengarry Glen Ross about 100 times, and take the famous "sales speech" scene way to literally, get really fired up and charge full- bore into a new initiative, planning to kick the world's ass.

You could sit back, take stock of where you are, what resources you have, and what your passions are, think about where you want to go, and meticulously put together a plan to get from "point A" to "point B".

It's really up to you. No options are ever _really_ off the table.

 _All ideas I have seems already made by someone else, and often better than I planned to do them_

One: _seems_ is the key word here. It's probably not literally true that you have no novel ideas _at all_. Two, it doesn't matter, as even IF you do have a novel idea, it won't stay novel long. There are too many people in the world... what ever idea you thought of, somebody else _will_ have the same idea if they haven't yet. Who cares? Do it anyway, and out execute them.

Bob Parsons (of GoDaddy fame) once said something roughly like "Don't be afraid to enter a crowded market, just be better than everybody else".

Another way of looking at it... if you are working on an idea that _nobody_ else is working on, it's either something really amazingly new that you've invented (congrats!) or it's a really stupid idea. If other people are working on the same thing, however, that is a measure of validation that the idea may, indeed, be sound. Now go out execute those scumbags... they are trying to take your lunch money!

 _Each partners I meet seems too newbie to work with_

Fine, forget partners for now.

 _I think all those failures killed me and now I'm lost. What a waste._

<http://www.youtube.com/watch?v=KQQcOQsCFnw>

</comment><comment><USER52> Buy a Porsche</comment>


Chat with the 17 year old hacker who hacked my blog - <AUTHOR> http://thenextweb.com/2009/11/28/chat-hacker-hacked-blog/?awesm=tnw.to_8FuB&utm_medium=tnw.to-twitter&utm_source=facebook.com&utm_content=tweetmeme

<comment><USER2> old-ish article but still cool idea. Interview someone who hacks you.</comment>


Github hosting (git-pages) - antonio-R

I've finally built my personal webpage, with my work portfolio, what i do info, skills etc.. Its just html+css+js no server-side. My question is, for credibility, rep, professionalism matter, is it a bad idea do host it at github and leave the default url? (username.github.io)<p>Use case: You as a employer would consider other person with a private domain over me for example? <comment><AUTHOR> *.github.io won't matter. People see it and know it's most likely something legit.

</comment><comment><USER2> no</comment>


Replacing JavaScript: How eBay made a web app 50x faster - <AUTHOR> https://www.techrepublic.com/article/replacing-javascript-with-webassembly-how-ebay-made-a-web-app-50x-faster-by-switching-programming-languages/ <comment><USER2> Benchmarks are way too wrong. They were using a Javascript library called BarcodeReader and switched to their native that was already written in C++ using webassemly. How can you be 100% surr that BarcodeReader library doesn't step down and messing up your results? It's like saying "I'm using Angular for displaying hello messages to users and switched to native C++ using webassemly. Now my app is 100 times faster".</comment>


Google Tulip - <AUTHOR> https://blog.google/products/home/google-tulip/ <comment><USER2> One of the arguments for being vegetarian/vegan is that animals have sentience etc I wonder if this was true (and real research already shows plants can communicate etc) would that impact vegetarians?

Are there 'degrees of sentience'? Is a cow more sentient than a tofu plant?

I mean if you wanted to really not harm any living thing you'd basically starve to death!</comment>


Talkshow - <AUTHOR> http://talkshow.im <comment><USER2> The "example" provided on the learn more page doesn't do a good job selling the product AT ALL [https://d262ilb51hltx0.cloudfront.net/max/2000/1*GY0-4kj3QJu...](https://d262ilb51hltx0.cloudfront.net/max/2000/1*GY0-4kj3QJuRM9cyBw87pA.png)

It's literally two people saying "Oh, now our conversation is public, what should we talk about?"... "I don't know, but at least we can do it publicly".

Yay?

<comment><USER3> BuzzFeed tried out the app and came to the conclusion that they had no idea what the point is either.

[http://www.buzzfeed.com/mathonan/a-new-messaging-app- called-...](http://www.buzzfeed.com/mathonan/a-new-messaging-app-called- talkshow-makes-your-texts-public)

</comment></comment><comment><USER4> Multiple conversations out in the open. If I'm not too un-hip, I believe this is like a new and advanced version to replace Twitter.

*I edited my comment shortly after minimaxir responded and didn't realize. I basically was trying to figure out what the app. is and why it's popular.

<comment><USER3> People are talking about it because the tech elite are talking about it / funding it without adequate disclosure. (once again, you can blame Product Hunt: [http://i.imgur.com/f189Plp.png](http://i.imgur.com/f189Plp.png))

i.e. the same as Peach and everything else before it, and likely will suffer the same longevity. Atleast Peach had a 5 star rating in the App Store before failing miserably, while Talkshow apparently has 2.5 stars now.

</comment></comment><comment><USER5> Hashtags as an App</comment>