What's Inside This House On Wade Avenue? - <AUTHOR> http://wunc.org/post/video-whats-inside-house-wade-avenue <comment><USER2> In the earliest days of the London Underground, trains used steam engines, which would collect steam and release it only at specified openings above tunnels, so as to not suffocate everyone. In posh areas, fake housefronts like this one: [http://www.urban75.org/london/leinster.html](http://www.urban75.org/london/leinster.html) were built with a hole behind them, and trains would release steam as they passed under the hole.

More such cases in Brooklyn and Paris: [http://www.dailymail.co.uk/news/article-2388179/When- house-h...](http://www.dailymail.co.uk/news/article-2388179/When-house-home- The-fake-townhouses-just-hidden-portals-underground-world.html)

<comment><USER2> Also, a military bunker in Moscow, masked as a house: [http://englishrussia.com/2011/11/18/declassified-bunker- of-t...](http://englishrussia.com/2011/11/18/declassified-bunker-of-the-ussr/)

</comment></comment><comment><USER3> Damn, I've driven by there hundreds of times and had no clue anything was unusual about that house. Never even noticed that there was no driveway.

When I first started reading this article, I had a feeling it was going to be something to do with AT&T, possibly related to The Big Hole[1][[2].

Nothing quite so exciting though... Still, pretty neat.

[1]: [http://www.indyweek.com/indyweek/big-hole-deep- secret/Conten...](http://www.indyweek.com/indyweek/big-hole-deep- secret/Content?oid=1182760)

[2]: [http://www.abovetopsecret.com/forum/thread188702/pg1](http://www.abovetopsecret.com/forum/thread188702/pg1)

<comment><USER4> I have, too, and for some reason always assumed it was either some sort of abandoned funeral home or a sort of religious organization artifice, a meeting or banquet hall or something. It was always just a bit to clean, dark, and empty to be a regular house.

<comment><USER5> Me, too. I kinda assumed it had been annexed by the church next door. One of the churches in "downtown" Cary had done something similar (bought a number of the surrounding homes for extra meeting/education/banquet space).

</comment></comment></comment><comment><USER6> Ha, pretty neat. I used to do work on cellular towers and you'd be really surprised at how they manage to hide towers. I'm talking fake trees, church steeples, etc. When you do tower surveys you're given GPS coordinates and every so often I'd wind up having to comb an area up and down to figure out where the tower was.

</comment><comment><USER7> This is entirely common, all over the world. Maintenance, accesses, and vents to the New York subway system are hidden behind non-existent town and row- houses and you can discover them if you pan around Google Maps for awhile.

[http://www.messynessychic.com/2013/01/29/the-fake- townhouses...](http://www.messynessychic.com/2013/01/29/the-fake-townhouses- hiding-mystery-underground-portals/)

</comment><comment><USER8> There are telco central offices disguised as houses, too. This one, in Anaheim, CA, US is a good example (CLLI code ANHMCA17RS3):

[http://www.co-buildings.com/ca/714/](http://www.co-buildings.com/ca/714/)

[https://maps.google.com/maps?q=33.8449,+-117.741&ie=UTF8&ll=...](https://maps.google.com/maps?q=33.8449,+-117.741&ie=UTF8&ll=33.842493,-117.741637&spn=0.011424,0.01929&t=m&z=16&vpsrc=0&layer=c&cbll=33.842569,-117.741567&panoid=vQ-5BsS7PnbrdxkgcSX4sw&cbp=12,312.91,,0,-1.94)

</comment><comment><USER9> _> Why Keep It Hidden?_

Because yuppies. It's all of two blocks from the biggest Whole Foods Market in the Triangle.

<comment><USER10> I'm not sure why you were downvoted. Having spent some time there this seems like an eminently reasonable answer.

<comment><USER11> _I 'm not sure why you were downvoted._

Because smugness?

</comment></comment></comment><comment><USER12> There's a "house" a couple of miles from mine which is actually a power sub- station. It's located in a heavily wooded, up-scale neighborhood, and would have looked really out of place if it wasn't concealed.

But, the fake house still looks a little strange, as it doesn't have quite the level of finishing of a real home.

<comment><USER7> Which is kind of bizarre, because how much extra effort would it have taken them to pave a walkway to the door and have some lights on a randomized timer during the night, to give the impression that someone uses the home? Although, I guess that would be creepy if you lived in the neighborhood and never saw the people, too.

<comment><USER13> I wonder what the threshold of detail is to remain effectively invisible or beyond notice. That's all that's needed. I'm sure that's been deeply studied by the military.

</comment></comment></comment><comment><USER14> How much more expensive would it have been to build this underground (with an access door somewhere) and make the above area a park or open land?

Are underground structures partially avoided because of the potential for them to collapse if not properly maintained or if a large truck drives over them for whatever reason?

I've always had the desire to build a basement that I can slowly expand overtime and have a huge underground facility. I wonder if this is possible? Didn't they do it at the White House and Vice President's house?

<comment><USER15> The cost of underground construction varies significantly depending on local geological, soil, and water table conditions. In some areas with deep well drained soil underground construction is relatively cheap, as it's basically just earth moving. In others you hit granite bedrock after a few feet and you have to excavate the bed rock to go deeper. It's certainly possible to expand out from a basement, and every so often the news shows footage of elaborate underground tunnels for drug manufacturing etc beneath a normal house.

If you're interested in underground structures, you should check out limestone mines converted to office space or storage like subtropolis. They mine the limestone of a solid horizontal layer leaving pillars to support the "roof", creating an entire underground building millions of sqft and acres in size. Subtropolis is over one thousand acres.

<comment><USER16> For subtropolis, see [http://en.wikipedia.org/wiki/SubTropolis](http://en.wikipedia.org/wiki/SubTropolis). From there, [http://www.huntmidwest.com/subtropolis/index.html](http://www.huntmidwest.com/subtropolis/index.html) gives you the site of the business. I find their brochure gives a good idea about what it looks like: [http://huntmidwest.com/pdfs/subtropolis_brochure_2012.pdf](http://huntmidwest.com/pdfs/subtropolis_brochure_2012.pdf)

Impressive, but way more industrial than, for example, the centuries old limestone caves in the Belgian-Dutch-German border area ([http://maastricht- students.com/2012/07/millions-of-years-of-...](http://maastricht- students.com/2012/07/millions-of-years-of-history-in-caves/), [http://www.tripadvisor.com/Attraction_Review-g188575-d318667...](http://www.tripadvisor.com/Attraction_Review-g188575-d318667-Reviews- St_Pietersberg_Caves-Maastricht_Limburg_Province.html))

</comment></comment></comment><comment><USER17> Here is an odd "house" I noticed years ago in Falls Church, VA. Being right outside Washington and one town over from the CIA headquarters I thought it must have something to do with the them:

[https://www.google.com/maps/preview#!q=320+N+West+St&data=!1...](https://www.google.com/maps/preview#!q=320+N+West+St&data=!1m8!1m3!1d3!2d-77.18168!3d38.891952!2m2!1f147.18!2f81.73!4f75!2m9!1e1!2m4!1sgfQH0jSQ6c-fJTlDJs9MXw!2e0!9m1!6sNorth+West+Street!5m2!1sgfQH0jSQ6c-fJTlDJs9MXw!2e0!4m15!2m14!1m13!1s0x89b7b4db2115a83f%3A0x387b2552761cc7a5!3m8!1m3!1d3!2d-77.179864!3d38.892837!3m2!1i1440!2i802!4f90!4m2!3d38.892595!4d-77.179891&fid=5)

<comment><USER5> My wife grew up practically across the street from that house and the way it was discussed in the neighborhood was that it is/was a CIA safe house. A utility station seems much more plausible.

</comment></comment><comment><USER18> We had this in the town I grew up in, only it was a house with the "mechanical room" for our water tower. People broke in all the time.

</comment><comment><USER19> Kind of reminds you of house in "Resident Evil". O_o

</comment><comment><USER20> this is sort of Cyberpunk inverted</comment>


Step Chickens and the Rise of TikTok 'Cults' - <AUTHOR> https://www.nytimes.com/2020/05/26/style/step-chickens-tiktok-cult-wars.html <comment><USER2> It's the high school popularity game, with the entire world playing. I can imagine the Mean Girl behaviors being played out. Yea technology.

</comment><comment><USER3> This sounds like the asian female version of Piewdiepie fanbase.... just in a different medium.

</comment><comment><USER4> This almost seems a bit like this decade's 4Chan/Something Awful/Anonymous etc

</comment><comment><USER5> People who think democracy is a good idea for China really have no idea what they are lining themselves up for.

<comment><USER6> Meaning?</comment></comment>


CoffeeScript: less typing, bad readability - <AUTHOR> http://ceronman.com/2012/09/17/coffeescript-less-typing-bad-readability/ <comment><USER3> Most of the bad code examples in this post are taken from the CoffeeScript compiler itself. For that I have to say "mea culpa". There's a lot of overly clever and dense bits that have accrued in the compiler over time -- sometimes due to the tangly nature of the codebase, but also sometimes because we tend to use the self-hosted compiler as a test bed for edge cases of combining different language features together.

If you're looking for more regular style, this style guide is a better place to start:

<https://github.com/polarmobile/coffeescript-style-guide>

<comment><USER4> Perhaps a style guide should be put up at coffeescript.org, or at least linked to.

<comment><USER5> I was literally coming here to post this response. It seems like a revolution in (usage of) coffeescript is needed in much the same way Crockford's Good Parts paved the way for writing good javascript.

Note: I'm not saying Crockford was singularly responsible for this, but The Good Parts was certainly well-received and very much popularised for it's opinionated views on the language.

Edit: I mean in terms of coding style, CS itself has already cut out a lot of The Bad Parts of JS

</comment></comment></comment><comment><USER6> This is a fantastic post -- I feel like I've run into all these crazy "gotchas" over the past year, and more.

And the worst part of it is, nearly all the confusing/ambiguous/different compilation examples given rely on the _undocumented_ rules CoffeeScript uses for parsing. It's amazing that, still, CoffeeScript's entire documentation is basically a "getting started" guide, and there is simply _no_ reference documentation.

<comment><USER7> Magic overdose.

Compare with Go, where you can easily read the whole spec and keep the whole language in your head: <http://golang.org/ref/spec>

<comment><USER8> Go is an excellent contrast. Not only is the syntax spartan, but--especially if you include the built-in formatter gofmt--it has a fascist insistence on a uniform coding style. I don't agree with all its stylistic decisions, but I'd rather live with them and have consistency than run into corner cases and gotchas.

</comment></comment></comment><comment><USER9> I don't have a strong opinion on the article itself (it seems well-reasoned to me, but I don't use CoffeeScript personally so who knows)... but the comments attached to it are hilarious.

 _I think CoffeeScript has great readability, because I've taken the time to learn how it works._

If you have to take the time to learn how to read something, it's not easily readable.

 _CoffeeScript is only hard to read if you try to read it with a JavaScript mindset._

Yes, why would anyone approach a tool pitched explicitly at JavaScript developers, whose "golden rule" is "it's just JavaScript" (see the top of <http://coffeescript.org/>), with a "JavaScript mindset"? Truly, it is a mystery.

<comment><USER10> i'll stick to javascript. coffeescript doesn't add a whole lot to the table, javascript is the standard and that's a good thing, re-writing the language is not the answer in my opinion. i'd have to imagine that saving a few keystroke might sound sexy to lesser experienced developers, but that really is all it adds to the table. being able to code on any project immediately off the bat with a standardized language is a huge plus, in terms of flexibility and scalability. you don't want to limit your company to exotic language, only to later find out few months later another new language called "frapscript" is now the new cool thing to do.

i recall the days when i was thrown into a project where the requirement was to use mootools, rather than jquery. even though they are both "javascript" in nature, it severely limited my productivity. i can see the same thing happening to companies trying out coffeescript, it may seem like you are doing the better thing long-term wise, but in reality, it is not so much. it's better to just stick to standards and you'll be more productive down the line, i can almost guarantee it.

<comment><USER11> Your last paragraph confuses me.

So you had jQuery experience and were inhibited by working on a MooTools project. I get that, makes total sense.

But then you say that switching to CoffeeScript may seem like a better _long term_ choice but "in reality it is not so much."

Surely MooTools would've been fine for you _as a long term choice_.

Yes, there is a penalty to switching. Whether it's jQuery to MooTools, JS to CS, whatever. But that doesn't make it a bad _long term_ choice.

Also, CoffeeScript is more than just saving keystrokes. That makes it seem like it's all about initial up-front cost savings. Instead, it's about having shorter, more expressive code. That pays dividends for the life of a project.

<comment><USER10> "Instead, it's about having shorter, more expressive code."

yes, but at the expense of a lot of other negative baggages that comes along with it. by having it's own compiler rather than leaving that to the browser seems like it's opening a can of worms.

and just reading from the comments, i can see how we could soon see a birth of "another language", that's supposed to be solve all problems coffeescript'ers face.

for one, i guess readability seems to be the common problem, which isn't good for productivity.

<comment><USER11> It sounds like you haven't ever used CoffeeScript?

Don't you find it a little odd that you have such strong opinions on something you've never even tried?

</comment></comment></comment></comment></comment><comment><USER12> Though most examples are not something you'd write normally, this line is what kind of flopped the article for me:

        Given that CoffeeScript doesn't fix any of the
        fundamental problems of JavaScript

same for a comment here:

        coffeescript doesn't bring much to table

There is _so much_ coffeescript adds that I find these laughable:

        string interpolation
        multi-line strings
        comprehensions
        guarded loops (hasOwn...)
        easy constructor/prototype definition (class)
        avoiding global leaks/shadowing
        function binding
        splats, defaults
        safe usage of reserved names
        existential operator
        chained comparisons
        READABLE regular expressions

This just off the top of my head. These make a _huge_ difference to writing code everyday. I've been writing CoffeeScript for 90% of my projects in the past 2.5 years and it pretty clearly affected my productivity for the better. I can only conclude that whoever says "coffeescript doesn't add anything" hasn't really used it for work.

Case in point, if you look at the linked article at the end you'll see an update by the author: _I actually love CoffeeScript now that I've been writing it for a year_.

<comment><USER13> I totally agree that CoffeeScript brings a lot to the table compared to old feature-less JavaScript. But the author is talking about readability of the language, and not about the features that it has.

The problem that he points out about "Implicit is better than explicit" and "There is more than one way to do it" are quite serious problems that modern languages shouldn't have.

<comment><USER12> See quote at the top, last paragraph from the post. His conclusion is that these readability problems swamp everything that coffeescript has to offer, which I think is really not the case - especially considering these are mostly style issues.

</comment></comment></comment><comment><USER14> I don't consider this article bad at all, because it really makes some good points.

However a lot of criticism seems to come from the fact that the author is a Python programmer and therefor wants CoffeeScript to be more like Python. No, I am not saying something like the author not understanding it isn't meant to be Python, but for example the implicit vs explicit debate is certainly a more philosophical view. Ask people who prefer other programming languages and they will have a different view. Hey, after all that's why there are so many, even if Ruby, Perl, Python, Falcon, etc. have very similar use cases.

My opinion for example is that dynamic languages are very implicit in first place so saying you don't want that (at all) doesn't make too much sense. I also don't have problems reading CoffeeScript, but occasionally had problems with very explicit languages being too verbose which can make it harder to follow. So looks like my mind works slightly different here.

But back to the article. There are lots of valid points. I think coding guidelines, which one should have working in a team, no matter what language could solve some of them. Some points look a bit like mixing different styles on purpose and at least can't see how you could find something like that in the wild. Just because you can code ugly, it doesn't mean you have to, but again that is more of an opinion. Some people like usually verbose languages, because they say they are easier to read, others like ones with shortcuts or where you have multiple options to express things, making it easier to read (for some people). I for example always enjoyed the fact that Perl has unless and until in place of negated if/while.

But that's more what you prefer. But hey, CoffeeScript is all Javascript, so if your team doesn't like it it's (comparatively) easy to step by step switch back.

<comment><USER15> It's funny, because as a big fan of Python who has had to do a lot of CoffeeScript lately, I find CoffeeScript very similar to Python, and very readable. It's certainly more readable than JavaScript, when you don't get fancy. It's called "Unfancy JavaScript" for a reason.

Many of the issues raised in this article can be solved by "simply" not doing it (admittedly not always a real solution). Just because the language _allows_ something to be done, doesn't mean it _should_ be done that way. Our team has a styleguide that clearly explains good and bad practice, for CoffeeScript AND Python. (It's possible to do bonkers stuff in Python, too, just harder.) It includes things like: use explicit returns, especially when intending to return nothing; include parenthesis unless it's more clear without them (callback as arguments).

Yes, it'd be great if the language were more explicit and made it harder to do confusing thing. But, its core goal is being "just javascript", which prevents some of that explicitness. Also, the flexibility lets the real goal be clarity.

I find

        my_object =
            key: 'value'
            fn: (response) ->
                console.log(response)

to be more clear than

        my_object = {
            key: 'value',
            fn: function() {
                console.log(response)
            }
        }

because it doesn't have all the crap. CoffeeScript's whitespace syntax is even more helpful when those objects start getting nested. Plus, not having to deal with trailing commas is amazing. At the same time,

        someFn arg1, arg2, ->
            doStuffInACallback()
        , arg3

can be confusing, so parens help:

        someFn(arg1, arg2, ->
            doStuffInACallback()
        , arg3)

I try to not be "that guy" when it comes to CoffeeScript, but it's easily one of my favorite languages now. All the crap that JavaScript requires is just gone.

<comment><USER16> both of those look really bad, try reading that sort of indentation when it's already 4+ indentations in, it's terrible

<comment><USER15> I do every day, both in CoffeeScript and in Python. I find things like braces frustrating, because I already keep it indented, and have to then manage the openings and closings. With proper 'aesthetics', indentation is perfectly readable. Plus, if something starts getting too indented than is readable, it's a sign that it needs to be refactored. (Whereas JavaScript looks messy even with otherwise sensible nesting.)

<comment><USER17> Sorry, CS and Python treat whitespace as a significantly different beasts. It's a disservice to everyone to say, "I read <insert significant-whitespace- block language> everyday, therefore <insert language that substitutes anything from call points, to auto-insert this or that, infer types, etc> is just fine!"

I think a majority can grok and parse Python, but the same can certainly not be said for CS. It's unfortunate too, because it has some Good Parts.

<comment><USER15> I didn't mean to say "Python does it, so CoffeeScript is not a problem", but rather that _both_ can suffer from too much indentation. CoffeeScript is a little more prone, given the callback-heavy nature of JavaScript, but similar treatment of surrounding whitespace is helpful in maintaining clarity. (Basic example: I find Python's standard of four-space indentation helps CoffeeScript readability, and prefer it over the popular two-space indentation.) And in both cases, excessive indentation is a useful signal.

Readability is very subjective and depends on the user's knowledge of the language, as well as personal style, or 'accent', if you will. Code written with, for example, leading commas in dictionaries instead of trailing commas just looks bizarre to me and is a little harder to read, _to me_ , even though I like to do something similar and stack colons.

</comment></comment></comment></comment></comment></comment><comment><USER6> Question: am I the only one who's driven nuts by "if"s that come _after_ the "then" part? E.g.:

        do_something(with, these, args) if im_supposed_to

I mean, the processor/interpreter always needs to evaluate the "if" first, so what purpose does it ever serve to put it _after_ the "then"? To me, it just confuses things because it feels like code is getting executed backwards -- like crossing an intersection, and then checking to see if the light is green.

I know it works "in English" ("do this if that"), but when I scan other people's code I'll sometimes completely miss the "if" (sometimes it's just off the screen).

Are there any examples where this reverse-if actually helps, instead of harming, code intelligibility?

<comment><USER18> I personally find that I end up reading more lines of code than I need to.

When scanning and I see

        If (condition) { perform_some_action(foo, bar, baz); }

And I know condition is false I can ignore what follows but

        perform_some_action foo, bar, baz if condition

I now have to stop and parse the entire line. But not only that, because it can appear at the end I need to parse every line to make sure I don't get caught by some if or unless. Short lines are easy sure but it's still annoying to me.

<comment><USER12> That would make sense if you were executing code in your head, but if you're reading you want to read all of it anyway...

<comment><USER19> But @OriginalSyn has a pont. If you are reading code because something is misbehaving on a given configuration and you read

      if (some condition that doesn't hold on that configuration) ...

You can avoid everything inside that if statement if you know that's not important for the case you're considering.

<comment><USER20> But if we want to avoid it, we would be required to already know what's inside the parenthesis. If we already knew what's inside it, putting condition before helps more as in that case (1) Either it's true and you have to parse the block or (2) It's false and you just jump to the end of it.

</comment></comment></comment></comment></comment><comment><USER21> Personally, i write my CoffeeScript with as much syntax as possible, to keep it as readable as possible: as a rule, I always use parenthesis and commas while leveraging CoffeeScript's "good parts".

But that said, the last couple of projects I've written in pure JavaScript and it's actually made things much easier to go back and read. Like the author of this post, I too have had difficulty reading back over my old code and, at a glance, understanding precisely what's going on.

Over the past couple of months I've gone from being absolutely devoted to CoffeeScript to on the fence, mostly due to readability.

(I'd love to see a fork of CoffeeScript that forces syntax.)

<comment><USER22> >I'd love to see a fork of CoffeeScript that forces syntax.

A compiler option that enforces syntax would be nice.

<comment><USER21> for what it's worth, [https://github.com/michaelficarra/CoffeeScriptRedux/issues/4...](https://github.com/michaelficarra/CoffeeScriptRedux/issues/47)

</comment></comment></comment><comment><USER23> I have recently implemented to quite large project with CoffeeScript, the most recent one for a full export to HTML for <http://flairbuilder.com>, and I have to say that CoffeeScript is a superb language. It's a pleasure to work with.

The kind of problems that the article points out are easy to spot. If small syntax changes yield significant output code, that will be immediately reflect in the program execution.

Plus, a decent code base will have unit testing in place, which should catch more intricate, harder to catch, unwanted code flavors.

<comment><USER24> > The kind of problems that the article points out are easy to spot. If small > syntax changes yield significant output code, that will be immediately > reflect in the program execution.

> Plus, a decent code base will have unit testing in place, which should catch > more intricate, harder to catch, unwanted code flavors.

That's rather optimistic.

</comment></comment><comment><USER25> I've been using coffeescript for about two years - I thought it was the best way to keep the pleasant aesthetic of python, which was my favorite language, and have been happy working with it ever since.

I just want to throw out a positive experience with it and to say that I don't support the author's premise of "here's some misleading things you can do with CS, therefore CS is unreadable". This applies to all languages, and 'fanciful' features and syntax should be avoided almost always in every language for the sake of readability.

There are MANY reasons not to use coffeescript, but JS is all functions all the time, and -> is my best friend.

<comment><USER26> I haven't used CS as much as yourself, but I don't find anything pretty in "element = =>".

<comment><USER25> That is a good example, and something that is eased by syntax highlighting (although I rarely implement double-bar function literals, keeping a pythonic 'self = this' reference is preferrable in most cases)

Although it is all subjective aesthetics, CS shines when paired with underscore.js, and really all "callback-as-last-argument" paradigms, ie:

      _.each items, (item) ->
         # do stuff with item
         # ...

(edited formatting, also what alec said below :)

</comment></comment></comment><comment><USER27> I find this review very even-handed. It doesn't really make any bold claims, but it does provide a slew of evidence.

<comment><USER28> Eh. I think it's pretty silly. It basically boils down to "If you write terrible Coffeescript, it's hard to read". Duh?

Any time you are writing code that is ambiguous, use what you need to in order to clarify it. Don't omit punctuation just because you can if it makes the code less readable.

       action(true,
         option1: 1
         option2: 2
       )

Using empty parameters in a function declaration is even funnier; you're adding punctuation that makes the code more vague. Just omit it!

       doSomething -> 'hello'
       doSomething(-> 'hello')

The third example is totally valid, and one I completely agree with - <USER2> parentheses on inner nested function calls makes for unreadable code. Don't do it.

The fourth example - complaining that inconsistent indentation produces inconsistent results - is just incomprehensible to me. When you're using a whitespace-delimited language, you'd best pay attention to your whitespace.

Ambiguities with optional curly braces are certainly nothing new to Ruby developers. Convention is that only the last hash in an argument list may have its braces omitted (or more stringently, a hash may only have its braces omitted if it is the last parameter in the list). Makes for finely readable code. Don't write unreadable code.

One of the fundamental rules you should follow when working in _any_ language is "don't be clever". Optional parentheses can make for very clean code, but if you try to get "clever" with them, you end up with ambiguous code. List comprehensions are _awesome_ but if you use them when there's a simpler construct you can use, you're doing it wrong.

You can write bad, unreadable code in any language. Part of maturation as a developer is learning to write _readable_ code, not just working code. A bad workman blames his tools.

<comment><USER29> > "If you write terrible Coffeescript, it's hard to read"

No, it's "If a language that provides for many ways to write terrible code (incl many ways to write the same code), people will write hard to read code." For example if parens are required, it is impossible to "get clever" with not using them.

> A bad workman blames his tools

Great workmen evaluate and avoid bad tools.

<comment><USER30> > No, it's "If a language that provides for many ways to write terrible code > (incl many ways to write the same code), people will write hard to read > code."

A prime historical example being Perl. A second one being PHP.

<comment><USER27> Perl is a great example because it is an amazing language with a horrible reputation that it mostly deserves.

</comment></comment></comment></comment></comment><comment><USER31> A few years ago I made an email campaign editor using JavaScript, I re- implemented it in CoffeeScript a few months ago. What I now want to do is re- implement it in the good JavaScript I've learned from reading the code that CoffeeScript generates.

There are some annoying parts of CoffeeScript. If your function takes callbacks as the first parameters, and another value as the second (such as setTimeout), you end up with some really awkward syntax. I've seen a lot of people define a delay method that swaps the parameters of setTimeout just so it's easier to use with CoffeeScript.

Like the author of the article, I have a Python background, but I've also written a lot of JavaScript, I _love_ the syntactic sugar that CoffeeScript brings, but I hate reading CoffeeScript code. The project that my re- implemented email editor is used in has a hybrid of JavaScript and CoffeeScript code, and I'm not kidding when I say that everyone (myself included) groans when they have to work on the CoffeeScript parts.

<comment><USER3>
        > If your function takes callbacks as the first parameters,
        > and another value as the second (such as setTimeout),
        > you end up with some really awkward syntax.

Hopefully no more awkward than the equivalent call in JavaScript.

        setTimeout (-> alert "later"), 300

Versus:

        setTimeout(function(){ alert("later"); }, 300);

Or, on multiple lines:

        setTimeout(->
          alert "later"
        , 300)

        setTimeout(function(){
          alert("later");
        }, 300);

<comment><USER31> But here we're introducing brackets just to avoid the syntax ambiguity. The Pythonista in me is crying out for a single way of doing things, either require brackets or don't. It makes me want to go down the road of always using parenthesis in CoffeeScript, but then it'll feel like I'm not using the language in an idiomatic way (which is something I hate doing).

<comment><USER32> In my mind, this usage of parenthesis is less ambiguous. Parenthesis are used in C-like languages for both function calls and order of operations. That is to say, they are used in these two ways:

        foo(a, b, c)  // functions
        (a + b) * c   // order of operations

Making parenthesis optional for function calls means parenthesis are used instead for just controlling order of operations.

In practice, CoffeeScript can't always guess when something is a function call (such as a function call without arguments), so you end up mixing in some function call usage no matter what.

<comment><USER33> I really hope it isn't guessing anything...

</comment></comment></comment></comment></comment><comment><USER34> whenever I see something like this that tries to rag on coffeescript it seems like they all reference ryan florence's post from a while ago: <http://ryanflorence.com/2011/case-against-coffeescript/>

for the sake of clarification, ryan is sitting right next to me, writing coffeescript (as with all new code we write here at instructure, see: [https://github.com/instructure/canvas- lms/tree/stable/app/co...](https://github.com/instructure/canvas- lms/tree/stable/app/coffeescripts) )--and loving it. whatever "crazy gotchas" he found back then are obviously trivial to how much easier coffeescript makes life. it seems like every third tweet he makes is about how much he loves CS now: <https://twitter.com/ryanflorence>

Other than that, everything in this post just comes down to "just because you can doesn't mean you have to or should." disambiguate if helps make things readable

<comment><USER3> Perhaps it's time for Ryan to write that follow-up post ;)

</comment></comment><comment><USER35> I guess I'm lonely in this world, but I really want a statically typed JavaScript alternative. Dart is nice, but no JS interop (yet), GWT is just Java, which is not the most fun thing in the world, ClojureScript is nice, but not static typed and Lisp is a bit too extreme for me, but the new Scala JS DSL seems worth waiting for.

<comment><USER36> <http://haxe.org/>

I would say ActionScript, but FalconJS hasn't been released yet. There are other projects (such as roy) that are more functional in nature as well.

<comment><USER35> I have to try Haxe, but I can't help but wonder, it's been around for a while, how come it didn't get more traction? I assume I'll have to try and find out.

I was a flash developer way back (2003), I hear you.

</comment></comment></comment><comment><USER37> Using CS for about 1.5 years now. Yes, there're ways to hurt yourself with bad CS code. This is also true for Python.

When developer writes some fancy one-liner in CS or Python and I'm reviewing his commit, I just ask him to come over and explain what this thing is doing. Sometimes it takes more than 20 second to read and explain even by author. Then I say: "You wrote this line an hour ago and it's already hard for you to understand what it does. Imagine you'll need to change it in a month. You'll hate yourself. Go and rewrite this code explicitly to help yourself in the future."

If you force yourself and teammates to write explicit code, you get all the pluses of CoffeeScript avoiding bad readability.

</comment><comment><USER38> I concur with the author. When I write CoffeeScript I often use a more explicit or more c-like style for things I find ridiculously ambiguous or hard to parse when reading quickly.

Particularly, if one line has lots of commas, I put parens all over the place because no matter what I do, having to manually parse the comma arrangements and figure out what's nested and what's a function does not go quickly. I also find myself writing explicit returns somewhat frequently just so it's much more clear what's being returned.

The overarching issue is that the syntax blurs rather than pops -- there are too many instances where things that are significantly different in function look nearly the same.

</comment><comment><USER39> Just because you CAN do something in CoffeeScript doesn't mean you SHOULD, or should ALL of the time. Just like in JavaScript where, if you want, you can write all of your code on one line, but you shouldn't.

        action true
          option1: 1
          option2: 2

If you really use CoffeeScript regularly, that isn't confusing. I don't usually write it that way though. I would do this:

      options =
        a: 1
        b: 2
      action true, options

doSomething () -> 'hello' just isn't valid code.

Usually I would write

        doSomething ->
          return 'hello'

or maybe

        doSomething -> 'hello'

If you write it the way he did, the parenthesis are confusing.

For this one:

        action = (token, i) ->
            @tokens.splice i, 0, @generate 'CALL_END', ')', token[2]

\-- first of all, you always want to indent two spaces. But the main problem with that is in CoffeeScript you do need to use parenthesis after the first call because your code will be unreadable otherwise. You just can't write it the way he did.

        moveTo 10,
          20
          10

        doSomething 1,
        2
        3
        4

        doSomething 1,
          2
            3
           4

Those are ridiculous examples. No one does that. You just write moveTo 10, 20, 10

        doSomething (->
        'hello'), 1

Indentation is significant in CoffeeScript, just like it is in Python. Just having a parenthesis shouldn't change that. Anyway, what I do is this:

        somethingDo = (ms, func) ->
          doSomething func, ms

and then I can just write

        somethingDo 1, ->
          'hello'

        action(key: value, option: value, otherValue)

You don't write it like that if the function takes two objects. You would probably just write

        action {key: value}, {option: value}, otherValue

        x = {
          key1
          key2
          key3: value3
        }

This is called destructuring assignment, and its part of the new ECMAScript. Its useful to not have to repeat key1, key2 everywhere when the variable with the value has the same name as the object property. The extra curly braces are just necessary to differentiate from the normal syntax.

Sometimes yes/no or on/off are more readable than true/false. That's an advantage.

        x = 1 if y != 0;

Don't use semicolons in CoffeeScript. I also don't put if statements at the end of a line because I don't believe that is very readable for most people including me. Also, in CoffeeScript its probably better to use isnt instead of !=, although rather than !=, you would want !==.

        if y isnt 0
          x = 1

I'm not that sure about the use of unless, although it probably is a little bit more readable overall.

      break for [tag], i in @tokens when tag isnt 'TERMINATOR'
      @tokens.splice 0, i if i

He says that is supposed to delete TERMINATOR from tokens. I tested it, it doesn't do anything, and the second example of the correct way doesn't work either. I think he meant this:

        filtered = []
        for token, i in tokens
          if not (i is 0 and token is 'TERMINATOR')
            filtered.push token

        i += block.call this, token, i, tokens while token = tokens[i]

Another example of something you CAN do in CoffeeScript but shouldn't. Actually it is a bad idea in general. I think a CoffeeScript programmer would actually write something like this:

        class Parser
          block: (token) =>
            @currentNode.push new Token(token)
          parse: =>
            for token in tokens
              @block token

I would never write something like 'mainModule.moduleCache and= {}'

Instead of

        js = (parser.parse lexer.tokenize code).compile options

I would write

        tokens = lexer.tokenize code
        parsed = parser.parse tokens
        js = parsed.compile options

<comment><USER40> > Just because you CAN do something in CoffeeScript doesn't mean you SHOULD, > or should ALL of the time. Just like in JavaScript where, if you want, you > can write all of your code on one line, but you shouldn't.

Isn't this precisely the problem? Why make a better Javascript then make the same mistakes as the original? One of the main goals is for Coffeescript to be more readable that Javascript. Having ambiguous syntax and so many different ways of doing things means that people will write code in all of these different ways.

Your rebuttal is a long list of what you SHOULD and SHOULDN'T do, but there are two problems:

1\. Not everyone will agree with you.

2\. People will write it the "bad" way anyway.

Ultimately this means less readable code, especially when you have to read someone else's code.

<comment><USER41> > 2\. People will write it the "bad" way anyway.

People will write bad code in every programming language you give them. I don't see that as a justification for limiting the expressiveness of a language. If you take that line of reasoning too far you end up with Java.

<comment><USER42> Or python, which is where the author is coming from. In python there are fewer syntactic ways to write the same thing (semicolons aren't optional, they're just not permitted. The only ways to write and and or are 'and' and 'or', '&&' and '||' simply don't exist. Map literals always look like {key1: value1, key2: value2}, the braces are non-optional ).

Even python's critics would admit it's a very readable language, and it would be unusual to claim it's not expressive.

<comment><USER43> A nitpick: you can use semicolons in Python.

        x = 3;

</comment></comment></comment></comment></comment><comment><USER44> I haven't programmed in Coffeescript, but does it bother anyone else that new variables are introduced without "var"?

When reading js, seeing the "var" really helps me to know the programmer's intent that this is a new variable being introduced, not an attempt to reassign one that should already exist. Does CS have features that make this point mute?

<comment><USER45> This doesn't bother me at all. Mostly because this feature comes from Ruby and so I'm already used to it, but also because it takes away the nasty surprise that JavaScript gives you if you leave 'var' out. I find this invaluable. As for knowing whether or not a new variable is being declared, well, that's why you keep your functions (and therefore your scopes) short.

<comment><USER30> > This doesn't bother me at all. Mostly because this feature comes from Ruby > and so I'm already used to it

This and that are completely orthogonal though, I've been using Python for 8 years and Ruby for 6 so I'm used to implicit scoping. Doesn't mean I like it, or find it a good idea to use it in new languages (I don't).

And the issue is actually bigger in coffeescript than in ruby and python both, interestingly because (through javascript) coffeescript's scoping is much more regular than Python's or Ruby's.

The only language in which I don't know implicit scoping to be an issue is Erlang, because it uses bind-once and immutable structure semantics.

> also because it takes away the nasty surprise that JavaScript gives you if > you leave 'var' out.

That can trivially be fixed by linting, or using strict mode. That's really no argument.

</comment></comment></comment><comment><USER46> The big point here: less characters for the same logic is not always better. Saying that you need less characters to write function x in coffeescript compared to javascript doesnt mean it is better.

Its all about syntax and semantics. Code from languages with a small and consistent syntax, one-way-to-do-it, and a easy semantics are easier to understand than languages with a lot of semantics.

For example, Scala is cool. But also overly complex. The same holds for C++. But languages like clojure are very simple to grasp and the semantics of these languages are very small.

</comment><comment><USER47>
        Coming from Python [...]

        For example, in C-like languages, you can omit curly brackets
        after a conditional expression if you only have one statement:

          if (condition)
              action();

        But what happens if we add a new statement:

          if (condition)
              action();
              action2();

Of course, that doesn't seem to be an issue in Python, the language he's coming from.

Most of his points are similarly contrived and could be equally applied to Ruby, a language which doesn't require parentheses and quite a lot of developers seem to like, or Python which is similarly whitespace-dependent and quite a lot of developers also seem to like. But inflammatory headlines do drive traffic from HN...

        Given that CoffeeScript doesn't fix any of the fundamental problems of JavaScript

I think most developers who are well-versed with both JavaScript and CoffeeScript would disagree that CoffeeScript doesn't fix any of the problems with JavaScript. It certainly makes it easier to loop through object properties. It makes code more readable in a number of ways; post conditions, list comprehension-like syntax, simpler loops, the existential operator (`foo?`), and the maybe object-like syntax (`foo.bar?.baz?.quux`) are definitely improvements.

You can of course write bad code in any language, no matter how structured it is. I myself am about to embark on refactoring a massive, _terribly_ -constructed Python system that processes millions of requests each day. The author didn't follow the strictures of the Python community at all. How is that any different from someone who exercises poor judgment when writing CoffeeScript? It's not.

<comment><USER48> The issue with the optional curly brackets is that for new users, or even experienced users reading through code quickly is that at first glance:

        if(something)
          doSomething();

And:

        if(something)
            doOneThing();
            doAnotherThing();

Both look like they should execute the same way - running the indented code if the condition is true. The reason this is a problem in C and not in python is that in python, this code operates as it intuitively looks, while in C, it does not.

(It can trip up experienced users if they're not paying enough attention and their mind just assumes the curly brackets are there.)

<comment><USER49> The issue is that:

      * Humans use indentation

      * The Compiler ignores indentation

      * The indentation and the the compilers interpretation are different

</comment></comment></comment><comment><USER50> This is exactly why I stopped using CoffeeScript. I hate Javascript so I was excited when I saw CS for the first time but after a while I realized I was doing two calculations in my head:

1: What is the JS that CS was generating?

2: What is the JS doing?

Maybe I just didn't give it enough time, but it seemed quicker and more reliable for me to just suffer through the JS syntax.

</comment><comment><USER51> _Both statements do completely different different things, although they look very similar._

This is true for both CoffeeScript examples he gave and their resulting JavaScript.

</comment><comment><USER52> I agree, it is too bad that CS has so many optional ways of doing things. That said, it is possible to write unreadable code in pretty much any language. If you have a good style guide and stick to it, it is easy to avoid all of these issues.

</comment><comment><USER16> Great article, totally nails it. No "good" language design should be so ambiguous

</comment><comment><USER53> After reading this, I felt the urge to classify key aspects of write and readability of the programming languages I've dealt with over the years.

How easy or fast it is...

      - to write what I want to achieve
      - to write something that makes me feel creative
      - to write something that makes me feel tidy, organized
      - to write a syntax error
      - to write a logical error
      - to step into a "gotcha"
      - to find that bug
      - to grasp a short snipped
      - to grasp a 20K loc app
      - to read my own code 1 week later
      - to read my own code 3 years later
      - to read somebody else's code

Now trying to rate languages by these parameters is a tough job that I can't even imagine how to tackle. In many instances it doesn't even has to do with the language itself, but rather with my experience and relationship with it. But any exercise in this direction gives some food for thought while trying to find the right tool for the next job. Or something to think about when looking back at some of the choices I've made through my programming lifetime.

<comment><USER54> _\- to grasp a 20K loc app_

Although, 20k lines of Python is probably doing much more than 20k lines of Java.

</comment></comment><comment><USER55> Yeah, well that's just, like, your opinion, man. -- The Dude.

Personally, CoffeeScript has been my favorite thing to come about in the past few years.

</comment><comment><USER56> CoffeeScript readability > Javascript readability

and that's all that matters to me

<comment><USER42> But the whole point of the article was that that isn't true, because CoffeeScript makes more things optional (e.g. in Javascript if you don't see brackets then you know it's not a function)

<comment><USER56> Yeah that's obvious, but I disagree with "the whole point of the article" hence my previous statement.

</comment></comment></comment><comment><USER57> Thanks for this post. This is actually how I feel about CS but could never actually explain it correctly. I find it very hard to read other people code because of all these implicit rules that are more often than not ambiguous. Yes, sometime it's _shorter_ but not necessarily _faster_ or _easier_ to read.

</comment><comment><USER58> Some of the complaints in the OP aren't mistakes that I make often, so I guess I don't see them. Perhaps for someone that makes those types of mistakes often, it'd be a detriment, but so far, I've been happy with my coffeescript experience.

</comment><comment><USER26> The moment you try to do simple things like concatenating a string you realise that javascript is a bit more tedious than it needs to be.

While nowadays I prefer coffeescript to js, I would rather have some syntactic sugar like scss is for css. I've looked into it but nothing has enough momentum to make me sure it will still be around in two years or so.

As a sidenote, while I mentioned I prefer CS, have you ever tried using a ternary operator? or pass a callback function in jquery (ex. the hover out event)? or just return "this". There are so many things that feel so wrong.

<comment><USER59> Feel so wrong in... CoffeeScript? Or JavaScript? I think ternaries and callbacks are both much cleaner in CS (with the exception of "callback, something-else" which does end up a little funky unless you add parens). Just naming a variable to return it seems a little wrong to me but you can always leave the "return" in. "Optional" is very different than "never use".

<comment><USER26> Those last things feel wrong in coffeescript. Honestly, what's more readable:

      x = a ? b : c

or

      x = if a then b else c

And for the last one:

      function() {
        // doing something
        return this;
      }

      ->
        # doing something
        @

Don't get me wrong, I love the fact that I can do nice stuff such as callback?() and some other nifty tricks, but while I'm still having fun using coffeescript, in my experience it's not that great as most people make it up to be.

<comment><USER3> Just FYI, using standalone `@` isn't considered to be good CoffeeScript style. It's discouraged for this very reason -- just use `this` instead.

The reason why it works in the first place is for consistency ... in every other context, you can use an `@` to replace a `this` or `this.`.

<comment><USER26> FYI, I usually use this instead of @ myself, but in this case I used @ to empathize a grander issue.

And it's not like there's a warning about it being removed on coffeescript.org where it's being mentioned as an alias for this in the first place.

</comment></comment></comment></comment></comment><comment><USER60> I myself enjoy using CoffeeScript, but I understand it might not be for everyone.

It's always good to look at the pro/cons before choosing a language, so I think discussions like this is good.

That being said, some of the problems this article points out can be addressed by going back to more JS style.

e.g. Not relying on implicit parentheses/commas/braces

I like the "Fancy" for loop because it's closer to what I do in Python (yes I know they are not exactly the same). Same thing with the "Tricky" if statements.

Also the redefinition shortcuts provided in CoffeeScript is pretty much what I do in plain JS anyway.

e.g.

JS: foo = foo || 'bar';

CS:

      foo or= 'bar'

<comment><USER61> CS 1.3.1:

"Conditional assignment of previously undefined variables a or= b is now considered a syntax error."

<comment><USER60> Yeah I know. It was just a quick example.

It's useful for something like:

      f = (options) ->
        options.foo or= 'bar'
        # ...

</comment></comment></comment><comment><USER62> Here's my own anecdotal example of CoffeeScript's readability.

Once, before banging out a bit of complex code, I thought I'd write out some psuedocode to help wrap my mind around what I wanted to do. I type out my psuedocode algorithm, realize I've written valid CoffeeScript, then uncomment it.

That's the experience that made me think CoffeeScript is MORE readable than JavaScript.

</comment><comment><USER63> I'm meh on significant indentation, but significant space characters is just a terrible idea. I blame Haskell.

</comment><comment><USER64> ParenthesEs is the plural, parenthesIs is the singular.

Normally I don't do the spelling/grammar thing, but it was consistently wrong in the article, and at least a half dozen comments here were getting it wrong, too, so I figured a public service announcement was in order.

</comment><comment><USER65> wow readability is about API design like requests vs urllib2: <https://gist.github.com/973705>

except when APIs get 100x bigger, API design becomes 100x more important. and using a language ecosystem that encourages good API design, over a language that is cobbled together and has no particular opinions about what good API design looks like[1] (or, even, bad opinions[2]), so that less experienced developers end up with decent output, is that much more important than concerns like parens, commas and braces. curly braces never made a project fail. shitty API design does.

[1] javascript! [2] java!

sheesh. there are bad things about coffeescript, but this stuff hardly matters.

</comment><comment><USER66> Oh dude, just learned something new from this article. options = { a b c } generates options = { a:a, b:b, c:c, } I have a lot of maps in my app that look just like that. It'll save me a lot of repetition.

<comment> j-kidd May I ask what are the use cases for maps like that? I don't think I have ever needed one myself.

<comment><USER4> I have situations like this quite frequently where I need to turn vars into members of an object:

        title = getTheTitle()
        img = (shouldWeGetImg) ? getImg() : "placeholder.jpg"
        body = ...
            # 8 lines of code to define body, some that reference title and img

        # this:
        obj = { title, img, body }

        # instead of:
        obj = {title: title, body: body, img: img}

</comment></comment></comment><comment><USER67> while the points in the article make sense and I agree, if you keep your Coffeescript code consistent I really don't suffer a readability problem, especially relative to JS where there's like 5x more code to go through

<comment><USER68> That's an unfair hyperbole. CS saves you at most ~30% characters, and that's when omitting every parenthesis possible.

I personally don't get excited by that prospect. Generators would get me excited, though!

<comment><USER67> well, personally when i converted over i never had to stare at these blocks anymore: } } } });

made code a lot easier to debug. and yes, consistency wasn't the only thing. i would say that converting over has a learning curve sure reading other people's code. but sacrificing readability long term compared to vanilla js? i wouldn't say that. i'm not saying there isn't ambiguity in the beginning but eventually you learn how to not do things in ambiguous ways.

</comment></comment></comment><comment><USER69> I had this same feeling programming in ruby few years ago when no formal language grammar was defined (with really weird problems with : vs [space]: AFAIR). Is it the same for CS ?

</comment><comment><USER70> on one of the slide in this presentation i found this interesting ( [https://speakerdeck.com/u/clkao/p/livescript-tax-free- javasc...](https://speakerdeck.com/u/clkao/p/livescript-tax-free-javascript) )

       Javascritp + ruby  = coffeescript
       coffescript + perl = coco
       coco + haskell     = livescript

So i think coffeescript is not the end of the line, and i think this mean, there is a serious need for a better javascript

</comment><comment><USER71> Badly written code is badly written code in ANY language.

</comment><comment><USER72> I wrote Dashku entirely in CoffeeScript. It was a productivity boost, and for that I owe it my firstborn child.

</comment><comment><USER73> Seems like there are two types of developers: those who don't want even to hear about CoffeeScript and trying hard to find deficiencies in it and those who embraced it and feel unhappy every time they are forced to work with vanilla javascript again.

<comment><USER74> Or, there are different opinions on how things work, each finding their language superior in writability and readability.

There are no absolutes. This is all subjective.

</comment></comment><comment><USER75> "readability is more important than writability for a programming language"

Couldn't agree with you more. Readability is measurable and considering that a lot of programmers come from C-type languages, I really don't see why people try to modify an existing formula (as badly implemented as that formula is in JS).

tl;dr: Let's face it, if you're using Coffeescript or similar because there are too many braces or parenthesis, perhaps you should quit development right now and take a class on basic algebra, quit that and save the world your horrific code. Seriously.

<comment><USER76> Readability is measurable, that's true, but the second part of your sentence makes me wonder if you really understand what readability is.

Do not confuse readability with familiarity. Also, don't forget that readability is a function of __both __syntax and semantics.

Also, I really don't know what connection there could be between aesthetic preference and quality of code produced. Are you aware of some study that show that kind of connection? With conclusion which says that if I like line noise then I am a great programmer, and if I like whitespace I am bad? If not then your 'tl;dr' is just stupid, sorry.

<comment><USER75> This isn't about aesthetics, it's about grammar. Just as in written human languages, computer languages have grammar that make things easier to read and understand. How well that grammar is done depends on the language. My point is that if aesthetics is one of the reasons you choose a language, you really don't understand software development or the simple idea of "use the right tool for the right job."

<comment><USER54> _My point is that if aesthetics is one of the reasons you choose a language, you really don't understand software development_

Some would disagree: <http://paulgraham.com/pypar.html></comment></comment></comment></comment>


The "Soft Maximum" function - <AUTHOR> http://www.johndcook.com/blog/2010/01/13/soft-maximum/

<comment><USER2> This is my problem with mathematics. The concept of a "soft maximum," the principles behind calculating it, and its startling similarity to a hard maximum, are all fascinating and exciting to me. Look at that! Two completely separate functions, and such magical results. According to this post, it's useful for "convex optimization." I clicked through to the "related post," which was merely a comment about someone else's opinions on "convex optimization," so I looked it up on Wikipedia:

<http://en.wikipedia.org/wiki/Convex_optimization>

Ah! A technique used to "minimize convex functions." Maybe some of this notation will make sense to me if I understand the underlying concept of whatever a "convex function" is.

<http://en.wikipedia.org/wiki/Convex_functions>

Great. An entire article that is completely and utterly meaningless to me. I mean, absolutely nothing in that article--oh! "Convex sets?" That looks promising.

<http://en.wikipedia.org/wiki/Convex_set>

Jackpot! The pretty pictures make the idea of a convex set clear to me. Unfortunately, by now I'm 4 clicks away, and my actual understanding of the subject is clearly just scratching the surface. Connecting my newfound--and obviously still naive--understanding of convexity* to "soft maximums," which initially inspired this search, feels dumbfoundingly impossible.

Am I approaching this all wrong? Am I expecting too much? Thinking too little? I would love to understand more about this subject, and I have tried to learn it the same way I learned how to program: by Googling and working on my own problems. However, the resources simply don't seem to be there in the same way. What's the deal, here?

* Would it be more accurate to say "Euclidian convexity?" What would that mean, exactly?

<comment><USER3> Trying to learn math from Wikipedia is like trying to learn English from the dictionary.

As far as the subject matter goes, a convex function can just be thought of as a function with a global maximum/minimum and no other local maximum/minimum. I.E. The derivative is zero in only one place which is the global max/min. These functions can then be easily optimized by taking their derivatives and finding the zero. It is a really nice way to optimize a problem.

<comment><USER4> No, in this case, a convex function is one where you can draw a straight line between any two points on its graph and not have the line intersect the graph at a third point.

<comment><USER5> You are not contradicting what fgimenez said, its the same condition stated differently.

edit: if two statements are not essentially same (and I am wrong), could you please explain it.

<comment><USER6> The logarithm function is convex by this definition but has no maximum/minimum point and never has 0 derivative.

</comment></comment></comment></comment></comment><comment><USER7> The soft maximum often comes up when dealing with probabilistic models and in neural networks. I'm surprised that a blog that has been highlighting numerical issues hasn't pointed out how the soft maximum should be _computed_.

If x is vector of values then the naive code is:

      log(sum(exp(x)))

where exp operates elementwise. However, if even a single item of x is large (1000 say) this will return Inf. If x are log probabilities, where you want the log of the sum of the probabilities (common), the elements of x might all be less than -1000 (also common) and then the function will return -Inf.

Many people have a function called logsumexp() kicking about to compute the softmax robustly. It will do something like:

        y = max(x);
        return y + log(sum(exp(x-y)));

One example, slightly more elaborate, Matlab implementation is in: [http://research.microsoft.com/en- us/um/people/minka/software...](http://research.microsoft.com/en- us/um/people/minka/software/lightspeed/)

<comment><USER8> See the followup posting

</comment></comment><comment><USER9> The huge flaw with this article: explaining WHY I would ever want to use a soft maximum.

Yes, it "sands off the corners".

Why do I want that?

<comment><USER10> The article was possibly aimed at engineers or mathematicians so the author thought the benefits didn't need explaining.

A soft maximum might be useful if you want a differentiable function that closely approximates the max() function. By differentiable I mean you can work out the rate of change of the function at any point. With the hard maximum, the rate of change at the hard edge is not defined. Nicer to have one function to represent the RoC and not have to worry about special cases.

<comment><USER9> Yep, I do have a CS degree, and I realized that the crisp corners are not differentiable ... but a short paragraph about that and giving a few real world examples would have strongly improved the post.

</comment></comment></comment><comment><USER11> This is useful analytically, but one tradeoff here is that if this is in an inner loop, the exp/sum/log process will be a lot more expensive than a simple max.

For proofs and stuff it can be invaluable to have a differentiable objective function, but in actual computation it's not always necessary.

<comment><USER12> Depending on your application, a good compromise might be to use soft max if the numbers are nearby and a hard max if they are very distant (though you'd need to find a suitable definition of distant and nearby).

</comment></comment><comment><USER13> Also known as "smoothed" max/min which in my opinion is better name as it is mathematically more meaningful as the max function [NOT smooth] is approximated with a smooth function.

There is no such thing as soft function in mathematics! Please be consistent when naming...

</comment><comment><USER14> Is there a accepted modification to the function to make it scale invariant? I'm kind of weirded out by something that would spit out a different result if did a unit change.

<comment><USER15> Here's an idea. Take the scaled function: g(x, y; k) = log( exp(kx) + exp(ky) ) / k

Let k be 1/max(x,y) so that you have:

g(x,y) = log(exp(1)+exp(min(x,y)/max(x,y))*max(x,y)

There are some issues if the maximum value can be negative or zero, though.</comment></comment>


Ask HN: Rejected from YC? Who are you? - <AUTHOR> I applied as a solo founder with my project http://www.quipvideo.com, but alas I didn't get an offer for an interview. I think a big part of that is the fact that I don't have a team behind me. I don't know too many other awesome hacker types, but maybe you - failed YC applicant - are such a person, or suffer from the same problem. Perhaps we should get to know each other better?<p>Let's turn this unfortunate news into an opportunity to share ideas, brainstorm and meet like-minded folk. Share your thoughts in the comments. <comment><USER2> I'm not sure this is the right question. pg repeats time and time again that the product doesn't matter, the team does. So really, the title ought to be:

Ask HN: Rejected from YC? Who are you?

<comment><USER3> 2 PhD's of quantitative fields (lots of coding experience)

2 MS's in CS that were already in a startup (<20 ppl) that sold for several $M's (as early engineers)

we are all 30-32 yo. (no family/kids yet) but maybe the age? seems like a good team (and a good idea), but oh well...

<comment><USER4> I recall pg mentioning that he would consider four founders to be too many (although, I am not sure it's a "hard" rule).

<comment><USER3> pg says in the application page: "The ideal company would have two or three founders. We'll consider those with four or five. We're reluctant to accept one-person companies, though we have funded a couple." so I hope that wasn't the reason why we got discarded. But if it really is a hard rule it'd be a strange rule, any 4 person team would pretend to be a 3 person team and include the "extra person" immediately after getting in...

</comment></comment></comment></comment><comment><USER5> My partner and I are Ph.D. psychologists who have developed a unique roadmap to permanent behavior change based on our personal experiences (we each lost 40+ lbs. 5 years ago and have kept it off) and professional knowledge. We are longtime friends and business partners so other than being non-hackers we fit the preferred criteria for teams pretty well.

We were rejected as well (www.readysteadychange.com) and as I read these comments several things that have been stated seem abundantly clear:

1\. The YC team is telling the truth when they say the number of high quality applications keeps increasing while the limited spots for interviews/funded teams remains more or less constant;

2\. The process of thoughtfully completing the application is an incredibly valuable idea stage experience in and for itself;

3\. Getting to market and crossing the chasm are the real objectives for all of us, not getting into YC;

4\. There really is no guarantee that getting into YC is the best thing for many of us. As someone wrote they seem to favor particular types of teams and ideas which they know a lot about and are able to mentor well. The rest of us should take rejection as a sign to keep moving forward on our own terms and capture any and all "data" from this experience as valuable learning.

As a colleague once said, "the only way out is through," to which I would add, "the only real direction is forward."

</comment><comment><USER6> Applied in 2010 as solo founder of <http://www.breezy.com>.

Didn't get in, didn't sweat it, tried other things. We haven't yet built a mammoth company or had a successful exit so I have yet to be able to take pg up on his offer to go to lunch sometime to discuss what they missed when evaluating my application, but I think it's fair to say we're doing reasonably well so far, all things considered.

YC is overrated as a gate. (I don't know whether it's overrated in general and I kind of doubt it, but too many people think "I didn't get into YC, oh no, maybe I'm not cut out for this".)

Frankly, as others have said in this thread, if a YC rejection stops you then something else would have stopped you anyway. YC is a very good first step in the right direction, but it is only a step - and there are many other good steps you can take in the same direction anyway, so failing to get into YC means very little in itself, imho, about whether you have what it takes to succeed more generally.

</comment><comment><USER7> <http://viewlo.com/> Crowdfunded internet television and movies. We were super stoked when we came up with the idea a few months back, and even more overjoyed when we learned Ycombinator's focus this round of funding as we fit the criteria exactly. We are comprised of 3 college level engineers and still have a future ahead of us so no big deal. Really thought they we would seal the deal with our alternate ideas like Instagram for video(that doesn't suck) <http://i.imgur.com/QbS7o.jpg>

<comment><AUTHOR> This looks great. I'm also surprised you didn't make it through the first round. Where are you located? Who is your team?

<comment><USER7> Wow thank you! We are located around the Sacramento area and were looking forward to calling sf our home this summer. We are a team of 3 best friends, two of which are coders, and myself, the designer and somewhat of an inventor. Here's two of our portfolio pages. <http://kennygibbs.com/>

<http://seenazandipour.com/#/about>

Thanks for the kind words. Its always nice to hear positive feedback on a project after receiving a letter like ycomb's today.

</comment></comment></comment><comment><USER8> Don't know I applied as a team and still got rejected, ummm passed over. Should I take that more personally :-). Actually they have quite a tough job to do in reviewing so many applications. I the e-mail was actually almost too nice. It would have been helpful if it had some quantitative data as in what each person thought of it as in. As in a score or something even such as, we liked you but your idea really stunk, or no technical co-founder, or don't give up your day job.

Actually open call here. I am very interested in hearing any ideas that didn't get accepted. I hope to modify my site in the next day to allow a discussion on this and to talk to others. Y-combinator is a great way it seems to develop concepts, but not the only way. If other rejected ones are like us then we should really talk to each other. Feel free to e-mail me at firstname.lastname@example.com. Better yet here post on this page <http://www.i4edge.com/ycombinator-apply-list/>

<comment><USER9> While it would be great for founders to get quantitative and qualitative feedback from PG & team, it would be a pretty daunting task for YC partners to give a well thought out answer to the 1000+ groups.

While 1-2 sentence answer from YC could help out your company, it could open up a whole new can of worms that causes some groups to say, "but wait.." or "good idea, we can pivot...".

Their nice rejection letter is probably the best result the non-interviewees can get.

<comment><USER8> I thought the same thing, except when they are reviewing it they must be taking brief notes like, hey my pet peeve no co-founder, or what ever. All I am saying is if they structured it to say a scale of 1-10 (as in 5 of the reviewer thought you needed a co-founder) or 5 out of 10 think the idea isn't good enough, or 7 of 10 thought the you didn't stand out, etc.

</comment></comment></comment><comment><USER10> Didn't apply but here's my thoughts. I know a number of YC founders and YC rejections. Don't quit, I see too many people not continuing without YC which essentially tells YC that you wouldn't have been a fit as YC is the first hurdle, not the destination. There are many alternatives and funding isn't in short supply.

Saying that, it's very positive to listen to any feedback. If you continue then you have to decide do you apply for an alternative accelerator (Many great ones), bootstrap or try to raise some seed money to get you off the grond. YC is incredible but in some circles overhyped.

It's supposedly as good as people say but many of the alternatives (not referring to accelerators) are as good or proven further.

</comment><comment><USER11> Be positive. Stay determined. Keep Hustling.

It sucks to be rejected with anything in life, but you only truly fail if you give up. You all seem smart and there are some great ideas here; don't give up and I am sure I'll be hearing about you all in the future. :)

</comment><comment><USER12> We received our rejection letter as well.

We are building a centralized platform as a service which allows vacation rental home owners and property agents to launch and create their own marketing website which they can manage from a single location. Property owners can also receive marketing and exposure on any number of sites. (We're placing more emphasis on enterprise rather than the social side that AirBnB went down). ie Agents can launch their own marketing website, manage their own property portfolio and run their own branding. Kind of like how you can launch your own Desk.com website and create your own knowledge base... on our platform you can do the same by managing your own catalogue of properties and revenue share with other advertisers who might make a booking on your behalf.

The enquiry management, booking tools and payment facilities are all built in. We haven't launched yet. Which was why this cycle would of been the best fit for YC.

<http://rentivo.com/how-it-works>

We will be launching soon (so no demo is available), but in case anyone knows a designer send them to the post on Baby Unicorns and Rockstar Designers I wrote this morning.

<http://rentivo.com/blog/baby-unicorns-and-rockstar-designers>

<comment><USER13> I'd consider shortening that description a bit.

</comment></comment><comment><USER14> I applied as a solo founder with no idea, so I knew a rejection letter was inevitable. In all fairness I am not quite ready to build a company, I just hope my application was read once or twice.

So who am I? Just a guy who started as the online banking help desk at $1B bank. I took the position just to get my foot in the door, and promptly proved my awesomeness with jack-of-all-trades problem solving that revamped their IT department from the ground up. My accomplishments drew c-level attention (walking into the CEO's office and telling him how much money I save him helped) so I'm now the lead sysadmin and further promotions are in sight.

But like many here on HN, developing software is my passion and what I really want to do is start my own tech company.

I'm taking small steps. I've completed 2 bonus projects to build custom web- apps for the bank intranet. Semi-formal contracts between myself and the CIO for the bank to purchase software I built on my own time and maintain my own IP. Yes it is awesome that they let me do this.

From that point of view, I'm already developing and selling software to a small business, I just need to expand. If I had explained myself this way in the application I may have generated some more interest.

Instead I mentioned that the timing wasn't very good and I want to learn some things from gauntlet of challenges ahead in my current job.

Applying to YC was another small step to help push myself in the startup direction. My main goal was just to get my name in front of someone at YC. If my video was watched then I consider it a smashing success.

</comment><comment><USER15> We are building <http://listypedia.com>

Listypedia is like Wikipedia for lists. It is a place for the users to find precise and concise information about the things they are looking for. It allows users to create and share lists with their social network. Few examples of the lists could be most scenic places on earth, things to carry for a camping trip, must have productivity apps for iphone, etc. The items added to the lists will be character limited precise answers. The users will be able to create protected lists that will be visible only to authorized users. Users will be able to create new lists or use existing lists and share it with their network to keep track of what they want or things that should be done as a group by using the list as a checklist.

There will also be curating features where in the list creators and also the curators will be able to control what goes in to only allow relevant content. It will also allow users to vote and comment on individual items.

Listypedia will bring in all the good features of yahoo answers, wikianswers and stackoverflow. It aims at organizing the unorganized content on the web in the form of social comments, blog posts, etc.

We are planning to launch soon in a month.

<comment><USER16> This looks great -- I applied with my co-founder with a social list site as well and didn't get an interview either.

Are you all in the Bay area? We'd love to grab coffee if you're interested -- it sounds like we have a slightly different twist on lists than you do and would love to meet if you're up for it. My email is trippp at gmail.

<comment><USER15> Sure. Check your email :)

</comment></comment></comment><comment><USER17> Rejected. We build mobile mall app with indoor positioning based on wifi fingerprinting. App allows user to find what he wants inside of mall, and retailers get ability to analyze user's routes and push location aware ads. Think of point inside with better accuracy. Yc is awesome opportunity but not the only one so rejection is not painful at all.

<comment><USER18> This one actually sounds pretty awesome.

</comment></comment><comment><USER9> We built <http://embark.at> \- the easiest way to buy and sell cruises online. We're a marketplace that connects people that like to cruise with travel agents who have awesome unadvertised deals. We have a demo video at <http://embark.at>

<comment><USER2> BTW, there is already a YCombinator company called Embark: [http://ycombinator.posterous.com/embark-s11-is-now- plotting-...](http://ycombinator.posterous.com/embark-s11-is-now-plotting-two- million-transi)

<comment><USER9> Yeah. We noticed that a few weeks ago.

</comment></comment></comment><comment><USER19> We are PayGuard and we're building a payments platform that would specialize in long-distance/cross-border transactions. <http://stark- river-6968.herokuapp.com/> We do this by combining your normal payments gateway with the global network of an international money transfer company (Western Union) with the twist of "escrow". We got our rejection letter too but we are forging ahead with launching our beta late this May. We believe eCommerce will globalize and payments will be at the forefront to make this happen. We want to create a world where anyone can buy or sell anything anywhere. We would appreciate any candid feedback on our idea....intellectual honesty is the best weapon against self delusion.

<comment><USER20> I always thought the main barrier with international money transfers was the cost. If your backbone is something like WU, how do you reduce costs?...and can't Western Union roll out of bed one day and decide to make it even easier to send money?

<comment><USER19> No we're not planning to link with WU directly, no need for that. You can actually build that network yourself by designing your system to be accessible to those involved in the distribution. Xoom.com built their own network from the ground up, and they only charge $5.99 per transfer. I had dealt with these distributors before when I launched moneytran back in 2005, too bad the state of CA didn't approve my license to transfer money because I didn't have the 500K minimum asset to qualify so I had to shut down. I tried to bootstrap it and I was just a one man team. Now I'm working with a brilliant team and we're trying to raise funding. Last time it was just all my savings. Because of regulations it is virtually impossible to bootstrap a payments or money transfer service.

</comment></comment></comment><comment><USER21> We got rejected also. We're a designer & developer in Ireland, both early 30s (one American, one Irish). We've built a platform for designing/building magazines & newspapers once and publishing them everywhere (epub, .mobi, html, ipad, pdf, etc.)

It's called Woop.ie (Write Only Once, Publish It Everywhere), and we have a small number of customers at the moment. We just have a holding page here: <http://woop.ie> but our demo page was live and allowed magazine creation, issue building, previewing, etc. It got some visitors from yc. Unfortunately guess it wasn't enough this time around.

We'll keep working on it obviously. Considering applying to Brooklyn Beta summer camp, actually, anyone else?

<comment><USER22> Hey guys have you considered applying to the Knight News Challenge? <http://newschallenge.tumblr.com/>

<comment><USER21> No, but that sounds like a great fit, thanks! Have signed up so I know when the next round opens up for applications. Thanks, great pointer.

</comment></comment></comment><comment><USER23> Well, rejection letter is just a part of the game. Now we will have to learn things on our own instead of having guidance from YC, which is kind of more work on our part. But hey, we love to work and learn, don't we? After creating drawmics.com & findero.us, I started working on a new idea, however, I applied to YC with no idea in particular as I was not sure whether to pursue it or not. In the last few weeks, my gut feeling on the success of this idea has become stronger by the day and I am actively pursuing it with my co-founder (yeah, now I have a co-founder). I hope, by the next demo day at YC, we would have already gone live.

</comment><comment><USER24> We got rejected too. We are building <http://www.pajap.com> . A DIY service that allows you to build 100% native mobile applications with a drag n drop designer without a single line of code. Apps made with pajap don't have to bee installed on the phone or updated.

Videos <http://goo.gl/WkVZ8> (sample app) <http://goo.gl/Fhmbl> (making of)

Enough with the promotion...

The rejection means we don't get to lean back and watch the magic show. We have to try , run , try again and create magic ourselves. We'll do that.

Best of luck to all YC2012ors accepted_or_not.

</comment><comment><USER25> Didn't apply to YC but interesting idea. I thought of the same idea but there was one fundamental problem I couldn't solve. That is, the text on the side is too distracting. I hope you can think of some ways to solve that problem!

<comment><AUTHOR> That is one of the top problems! And I have many ideas. One of which is limit the number of comments by building a social networking feature where you only see the comments of people in your network. This could be Facebook, or it could be "Hacker News people" or IBM employees.

There's also user interface ways to make things less jarring.

<comment><USER25> Even if you limit the comment, it is still there on the side, which means you are still distracted. I would attack the problem from an UI and UX standpoint. I know there is a website or app (can't remember the name of the website) that shows the comment ON the video as the video plays, kinda like subtitles (you can turn it off). Nonetheless, it's still too distracting for me.

Here is an idea you can play with: wikipedia for videos. So sometimes after you watched a video, you want to know EVERYTHING about it, and usually the comment are crap for factual information about the video. What you can do with that technology is allow users to learn more about the video when he or she pauses or when the video ends. Lots of possibilities here =).

</comment></comment></comment><comment><AUTHOR> I'm the author of this post, and I'm building a way for people to annotate online video. Hopefully in a way that isn't annoying! The grand ambition is to be able to search inside video based on annotations. Check it out: <http://www.quipvideo.com>

Who am I: I'm getting my PhD in 2 months in applied math at UCSB. I'm always looking to meet interesting people. I think I'm interesting myself. As proof, I can show you some of my fire sculptures :-)

Check out my blog: <http://www.davidvaldman.com>

</comment><comment><USER26> We're building <http://HuntersDB.com> \- a big-game hunting database with search, data and maps.

This process forced me to ask myself the tough questions and for that we are better.

<comment><USER27> And also forced us to make videos that make us cringe :)

</comment></comment><comment><USER22> Rejected 2 years ago for what some other guys in Cali launched as Gigwalk last May. I had a PhD and a CS guy on my team (albeit none of us were in the same city). I'm an information professional with a background in media production and ed tech. So since GW launched I've been watching closely and thinking about pivoting only slightly to something aimed at professional journalists, photographers and videographers, worldwide, who want to be able to charge their regular rates and have the option of being completely anonymous.

</comment><comment><USER28> I'm building <http://moodstir.com> and <http://kothpoker.com>. If the idea's shortcomings weren't the reason I was rejected, it was likely because I'm currently a solo founder. It seems like there are a lot of awesome teams applying and that alone is hard to compete with.

I would be happy to meet up in SF with fellow failed YC S12'ers.

</comment><comment><USER29> I applied as a single founder and was rejected as well. The project I am working on is <https://codetique.com>

The goal being to make code reviewing easier. Think pastebin but with inline commenting and comment karma. Click any line in a code review to leave a comment for that line. You don't need an account to create a review or comment on one.

</comment><comment><USER30> Hey-o. My co-founder and I got rejected.

We're making an iOS universal app (we call it Cook) that uses grocery lists and recipes to keep a current record of all the food in your kitchen. With said current record, you can do cool things like reccommend recipes you have all the ingredients for, or tell them to use an ingredient before it spoils :)

<comment><USER31> You might want to checkout ziplist. Most of the apps in the recipe/grocery space are pretty horrible but that site does a reasonable job, has a solid team as well as Martha Stuart as an investor. Not an immediate competitor to what you're doing but worth being aware of. I applied to YC with something close to what they've built although I wasn't aware of them when I applied.

<comment><USER30> Thanks for the heads up!

Downloaded the app. You're right, I should know about them, even if they don't relate groceries and recipes in a meaningful way :)

One thing I will so though is that the syncing devices is something we entirely aim for, as well as adding family members. Their iPhone app could use some serious help though...

</comment></comment></comment><comment><USER32> We applied with our app Spotter last fall. We wanted to be the app to find mobile video of places. Sad to be rejected, but we loved what we had so we kept going. We recently added twitter integration and were excited about our upcoming version (much better UI).

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

</comment><comment><USER33> I coded Streamenizer.com to learn Flash. Its a video chat with 4 people and a queue of waiting to stream, but never got around chicken-and-egg problem. Planning or redesigning it to one streamer plus users willing to ask questions. If anyone is interested in participating anyhow, drop me a line via HN profile email.

</comment><comment><USER34> We applied with <http://www.musicfilmcomedy.com> :).

<comment><AUTHOR> This is very well done. I've gone to Coachella the last three years (before this one) and I wish I had this. Your interface is already better than theirs.

Clearly YC applicants are getting much better for them not to even give you an interview.

Where are you located, and who is your team?

<comment><USER34> Thanks for the kind feedback! Unfortunately the time that (I think) they looked at the web site we didn't have the scheduler implemented!

We're located in Melbourne, Australia. I was a senior software engineer before and so was my co-founder. We are in our late 20s and have both quit our jobs few months ago and could relocate. I think the applicants this time round were very strong!

</comment></comment></comment><comment><USER35> I'm building <http://www.iwaat.com>, a search engine for web applications that I'm working to turn into a Yelp for apps. Also a solo founder looking for others to join me on this project.

If you're building a web app feel free to add it to the site.

<comment><AUTHOR> Also sounds similar to Chomp (<http://chomp.com>) which focuses on mobil. Apple recently bought them (<http://techcrunch.com/2012/02/23/apple-chomp/>)

Very nice interface. Where are you located?

<comment><USER35> Thanks. There's a number of app discovery services focused on mobile(chomp and crosswa.lk), which is why I chose to focus on webapps first.

Located in San Mateo, CA.

</comment></comment></comment><comment><USER36> Any mobile app developers get rejected? I'm involved with a new VC co standing up a soon-to-launch fund called WeHeartApps Fund that is focusing on early- stage mobile app/game developers. Feel free to email me at firstname.lastname@example.com (still getting our @glidecapital email set up).

</comment><comment><USER37> Also a solo founder building <http://comics-headquarters.com/>, a place to publish your comics online. :)

I am currently looking for artists who can help either write stories or/and draw. You can contact me using the web form in the site.

<comment><USER23> Cool, nice project. I am also a solo founder who founded drawmics.com (a social one page comics platform). However, I didn't apply for this project, but the similarity of our projects prompted me to comment.

<comment><USER37> Thanks! You have an interesting project yourself.

</comment></comment></comment><comment><USER38> What: Built a social network for shoppers; Who: A solo founder outside US; Rant: I think I've done a job at least on par with another YC11 company <http://jerryji.posterous.com/on-yc-demo-day-40956>

<comment><USER39> I don't know what exactly you are doing but it seems like you don't understand what pricenomics are doing. They tell you how much your stuff is worth if you are trying to sell it. It is not a social shopping site.

<comment><USER38> I think I understand what pricenomics does, which you can find similar information (actually more transparent and detailed) on Bizspeaking -- <http://bizspeaking.com/item/c2145006f10a4b06ba71856e49e06e02> , then on top of that, Bizspeaking does a whole lot more. (The site is a bit slow now, there seems to be some Redis issue that I'm trying to resolve).

<comment><USER40> The whole lot more is sometimes the problem. Pricenomics does one thing well.

On your site, the main call to action is to post something I've bought. Why would I want to do that? I also couldn't actually figure out how to search for an item (I entered "Macbook Pro" into the filter but didn't find what I was looking for.)

<comment><USER38> Thank you for your valuable feedback, the search is actually at the top right corner, which I thought is the web convention, but will make it more prominent now. And you are right that the full-text search requires more tweaking.

</comment></comment></comment></comment></comment><comment><USER41> Got my rejection letter as well. Beta not quite ready, but if you are interested, my landing page <http://www.cardzeum.com> will give an idea of what I am developing.

Feedback welcome

</comment><comment><USER42> 3 founders 1 idea. The idea to aggregate notes, textbooks, internships, housing, course/professor ratings, online tutoring, and take a fat dump on them so you don't have to. Check us out at www.coursegain.com

</comment><comment><USER43> A realtime collaboration application, check it out at tutor.nodester.com

<comment><AUTHOR> I don't know why you're on the bottom. I think this is neat!

One big problem is that drawing anything details is hard without a tablet.

I'm also using Node.JS on Quip. Configuring it on EC2 wasn't that difficult if you've considered it.

<comment><USER43> Yeah, I've tried EC2, but I had a bad experience with their free tier(they started charging me for an elatic IP even when my instance was off) and their customer support was awful. If we ever need to scale, I think we will host on rackspace. However, currently nodester is an awesome free host. I highly recommend them.

</comment></comment></comment><comment><USER44> Yup, we were rejected. We tell you which model of anything to buy by crunching owner ratings. Would much appreciate any comments on the beta:

<http://daring.is>

Congrats to YC S12.

</comment><comment><USER45> Agreed. And there's no time to start like the present: <http://news.ycombinator.com/item?id=3850511>

</comment><comment><USER46> I have not got anything yet be it rejection or acceptance for interview. Checked all my mailboxs (spam & inbox).

Is it all over and out? Any one who haven't got anything yet?

<comment><USER47> We also did not get the reply yet. Don't know what it means, but since we're not rejected yet, it could be good ;)

Patience is a virtue.

<comment><USER47> I just figured out that we got an e-mail, but to a different e-mail account. I have one e-mail address in my HN profile, and I gave a different e-mail in the application.

However, the rejection e-mail was sent to e-mail from HN profile. So, make sure you check that one. It looks like the e-mail address in your application is not used.

<comment><USER46> yes I have checked the one that's shared in the HN profile. But still no email to me.

</comment></comment></comment></comment><comment><USER48> Boom. Roasted. Co-founder of TechTalks.tv. Congrats to those who didn't get in either, sometimes a little rejection is all you need.

</comment><comment><USER49> Hi guys,

Keep building!

I'm a founder located in Seattle looking for co-founders. If you're around here and interested please ping me on: firstname.lastname@example.com

</comment><comment><USER50> We are building a realtime digital signage solution mainly powered by nodejs. Maybe we got rejected because we are from germany?

<comment><USER9> That shouldn't be a problem being from out of the US.

<comment><USER51> I'm not so sure - historically only people from the US , UK, Canada & Australia seem to have made it in. I don't blame them - being from one of these places significantly simplifies the whole visa stuff.

<comment><USER9> Depending on how your company is formed could make a big difference. Keep in mind that YC is investing $10-20K in your company, so it may not be appealing if there are $40K in legal costs to create an entity that they could invest in.

</comment></comment></comment></comment><comment><USER52> Qbix, Inc. <http://qbix.com>

Who we are is answered by a giant link there :)

<comment><AUTHOR> Hi Greg, it's Dave from NYU. I wrote this post. Funny to see you comment on it :-) Let's catch up, my email is in my profile.

</comment></comment><comment><USER53> Does YC gives you any kind of explanation for the rejection? Or is it just a no?

<comment><USER54> They give you the best reason for the rejection, which is quite frankly that there were a tremendous amount of outstanding applications.

While YC represents the cream of the crop, it's probably most attractive to aspiring founders who want to carve the path of least resistance to success.

The hard truth is that YC's format makes it the most useful for teams that have the best ability to leverage the strengths of its networks and advice. Technically savvy, with obsessive work ethic and the ability to iterate quickly and constantly.

The response was apt, others were a better fit. None of their reasoning should be interpreted as your team, demo, or product won't be successful.

Best of luck to all of you!

</comment></comment><comment><USER55> Applied as no-idea, single founder => no cigar.

</comment><comment><USER56> Social augmented reality to let anyone add video, images, or models to any item they want then share it with others.</comment>


Ask HN: Where is Firechat? (if they cut off the internet?) - <AUTHOR> Do you guys remember the mesh network based Chat App Firechat? It's gone!!<p>What if the government switchs of Social Media or the Internet? <comment><USER2> I suggest you look at Berkanan, something of a successor as it also uses Bluetooth mesh networking. [https://berkanan.chat](https://berkanan.chat)</comment>