Lisp evangelists that miss the point about syntax - <AUTHOR> http://confusionist.tumblr.com/post/369255746/lisp-evangelists-that-miss-the-point-about-syntax

<comment><USER2> As much as I like Lisp and even pure functional languages (such as my own Fexl), I still like that old-school loopy, branchy, bracey, break-ish, drop- down to the iron, procedural feel of straight-up C and even Perl.

You won't get a language war from me, but there's a huge difference in "feel" between those two major language classes, and strangely, I kinda like both of them. Sure I can do some impressive reasoning in the functional realm, but even in the procedural realm I can do iron-clad reasoning and correctness- preserving transforms that (I hope) would make Dijkstra proud.

<comment><USER3> It's no coincidence they feel different. The Lisp family of languages was based on theoretical mathematical considerations (Lambda calculus), with implementation as an afterthought.

The Fortran family of languages was based on the hardware's capabilities, with theoretical considerations like expressiveness as an afterthought.

We are fortunate to have reached an age where we have CPU cycles and RAM to spare so that languages that were not designed with performance-related restrictions in mind are becoming practical for a wide variety of applications.

<comment><USER2> I concur. Fexl can whip combinators around so fast it makes my head spin. But I still _like_ writing C, even if it's only to write a Fexl interpreter.

Consequently the whole purpose of Fexl is to be a thin functional "layer" on top of C. That way as a C programmer I can escape to functions to avoid all the gnarly horrors of memory management and such, and as a Fexl programmer I can escape to C to embrace the hard-edged bits and bytes. That way if you asked me whether I was writing the thing in C or in Fexl, I couldn't really give you a straight answer. ;)

<comment><USER4> Off-Topic: Can you do a fexl vs gambit scheme comparison? I am interested in the interleaving of functional programming and C

<comment><USER2> Sure, I'm reviewing the gambit code a bit. I'm really busy so I'll have to follow up later.

Right off the bat I can tell you that Fexl's combinators aim to be written in readable C.

I suppose the simplest combinator to show would be "I" (the identity function). In Fexl I have a file named "type_I.c" which says:

      #include "node.h"
      #include "type_I.h"

      static struct node *reduce(struct node *parent)
          {
          return parent->RIGHT;
          }

      static struct type type = { reduce, clear_pair };

      struct node *make_I(void)
          {
          return make_pair(&type,0,0);
          }

(Quick note: all node values are reference counted. Cycles are impossible, and unnecessary because of the wonderful Y combinator.)

Speaking of Y combinator, here is "type_Y.c":

      #include "node.h"
      #include "type_app.h"
      #include "type_Y.h"

      static struct node *reduce(struct node *parent)
          {
          return make_app(parent->RIGHT,parent);
          }

      static struct type type = { reduce, clear_pair };

      struct node *make_Y(void)
          {
          return make_pair(&type,0,0);
          }

Those are easy. The most gnarly one is the S (fusion) combinator ... which ... oh well I might as well paste it in:

      #include "node.h"
      #include "type_app.h"
      #include "type_S.h"

      static struct node *reduce(struct node *parent)
          {
          if (0 == parent->LEFT->LEFT || 0 == parent->LEFT->LEFT->LEFT)
              {
              parent->type = parent->LEFT->type;
              return parent;
              }

          struct node *x = parent->LEFT->LEFT->RIGHT;
          struct node *y = parent->LEFT->RIGHT;
          struct node *z = parent->RIGHT;

          struct node *fun = make_app(x,z);
          struct node *arg = make_app(y,z);

          hold(fun);
          hold(arg);

          parent->type->clear(parent);
          parent->LEFT = fun;
          parent->RIGHT = arg;

          return fun->type->reduce(parent);
          }

      static struct type type = { reduce, clear_pair };

      struct node *make_S(void)
          {
          return make_pair(&type,0,0);
          }

OK now I'm pushing the limits of long-windedness, but I just wanted to feed you some information right away while I work on some other things.

</comment></comment></comment></comment></comment><comment><USER5> _So why not create syntax that catches 99% of the cases for which you intend the language to be used_

This just indicates the author is clueless about the substantive use of a DSL.

The only way to implement this is to vastly reduce the scope of that "intend." Basically equivalent to, "all you really need is Blub."

80% would be reasonable. But the last 20% is going to encompass some powerful stuff.

<comment><AUTHOR> I'm not really sure why you bring up DSL's, unless you consider something like Python or Perl a DSL as well. In that case: are you saying that, for instance, Perl is only useful for 80% of the cases for which that language is intended to be used?

<comment><USER5> Nope. You can "do it all" in any Turing-complete language. But you can often do it more elegantly with a DSL. Once a language reaches a certain threshold of power, making a DSL is indistinguishable from ordinary coding.

It's obvious the author hasn't a Clue about that.

<comment><AUTHOR> The point of the article was that creating a sufficiently powerful language, that doesn't offer easy ways[1] of extending the syntax, does not warrant the criticism that the language has 'too much syntax'. If anything, it demonstrates the power of being able to create syntax. I don't understand how your comment relates to that point.

[1] Of course you can "do it all" in any Turing-complete language, but theoretical possibilities are often much less interesting than practical impossibilities. In Python or Java, creating new syntax is so hard it might as well not be possible.

<comment><USER5> Exercise for the student -- find the contradiction here:

 _The point of the article was that creating a sufficiently powerful language, that doesn't offer easy ways[1] of extending the syntax, does not warrant the criticism that the language has 'too much syntax'._

Evidently, you are as inexperienced with DSLs as the author.

 _Of course you can "do it all" in any Turing-complete language, but theoretical possibilities are often much less interesting than practical impossibilities. In Python or Java, creating new syntax is so hard it might as well not be possible._

Insufficient knowledge is probably why you mistook the sense of the statement you are replying to by 180 degrees.

<comment><AUTHOR>
      Exercise for the student -- find the contradiction here:

You consider 'sufficiently powerful' and "doesn't offer easy ways of extending the syntax" to be contradictory. Does that mean you consider only Lisps 'sufficiently powerful'?

      Insufficient knowledge is probably why you mistook the
      sense of the statement you are replying to by 180 degrees.

Do you mean extending the syntax of Python or Java is easy? Otherwise I'm not sure what the knowledge is you think I'm lacking.

</comment></comment></comment></comment></comment></comment><comment><USER6> "So why not create syntax that catches 99% of the cases for which you intend the language to be used and abolish the ability to create further syntax?"

Because then I've got a syntax that works for 99% of the use cases you've already thought of, and that doesn't overlap very well with the use cases I have or that either of us will come up with in the future.

</comment><comment><USER7> You can't expect people to be reasonable when it comes to language flamewar. Personally, I think weak advocacy is worse than no advocacy at all.

 _So why not create syntax that catches 99% of the cases for which you intend the language to be used and abolish the ability to create further syntax?_

Although it's possible to create new syntax in Common Lisp via reader macros -- I don't think lispers recommend to extend the syntax. But when you miss a language feature, instead of fighting against the language, you could implement it. I don't remember exactly who said it in one the SICP video lecture, Harold Abelson or Gerald Sussman, but he said something like

 _Lisp is not good at solving a particular problem. What Lisp is good at is extending the language to solve a class of problems._

The problem with syntax is that it's difficult to use correctly with macros. It's no wonder that most introduction books to C warns against the pitfalls of using macros. Even the simple ones could bite you if you're not careful. Consider:

      #define DOUBLE(x)	(2*x)	/* should be (2*(x)) */
      #define MAX(a, b)	((a) < (b) ? (b): (a))

Even the last one is not immune against multiple evaluation problems if you try to evaluate MAX(a++, b). In Lisp you could avoid this by using gensym and local bindings. That being said, C macros and Lisp macros are completely different beasts. And I recommend reading ``On Lisp'' for advanced use of Lisp macros.

</comment><comment><USER8> > _The ability to create syntax comes at a cost and the existence of so many > other programming languages shows one thing very clearly: not everyone is > willing to pay that cost._

The cost of Lisp is that the syntax is all the same. So a conditional looks the same as an assignment statement, looks the same as a function call, looks the same as a plus operator.

Lisp syntax is bad, because many humans find it easier to scan source code if different constructs use different syntax (whether that is just because it is what they are used to, I don't know). But Lisp syntax is also good, because it allows macros.

You could get round this problem by having two levels of a language, one with C-like syntax which compiles to Lisp-like syntax (which may itself be compiled). So this:

      if (a>b) c := foo(d);

Might compile to this:

      (if (> a b) (:= c (foo d)))

<comment><USER9> Sexps are better than strings because they are more structured. It would be even better to represent code with separate data types for every construct instead of the relatively unstructured sexps.

<comment><USER10> s-expressions are an external syntax. You can create any data structure you want from them, given the right reader.

S-expressions are not INTERNAL to Lisp, only external. Thus s-expressions are defined on characters. Comparing s-expressions to strings makes no sense.

The representation of code is a different issue. You could read an s-expression and represent it internally as a string.

</comment></comment></comment><comment><USER11> As I commented, get back to me when you've got a non-lisp syntax that doesn't result in bugs from precedence/associativity errors.

If infix was actually "natural", there'd be only one set of precedence/associativity rules and there wouldn't be bugs due to folks getting it wrong.

With very few exceptions, folks use parentheses to try to protect themselves from their ignorance of their language's precedence rules. (C++ has over 10 levels of precedence.) Even then,they occasionally get it wrong.

And, it's worse than that on teams because different folks have different knowledge (and illusions) of the precedence rules.

</comment><comment><USER12> Barring the complaints about syntax and the assumptions made in the article, I would still say the one reason someone should learn LISP is that most likely one will have an entire career of writing logic the "other way", I am not disparaging the "other way", just stating that it is far more prevalent and if you are learning something for personal growth LISP will give you a more diverse perspective than using a language that is an evolution of the "other way".

</comment><comment><USER3> Common sense? In _my_ language flamewar?

<comment><USER13> I concede that Lisp's notation probably isn't common sensical; and that learning it is a significant investment for many programmers, who are hardwired to quickly understand the conventional notation.

However, many important developments in math and science ran counter to common sense. In math, people with common-sense arguments resisted numbers which seemed "irrational", "imaginary" and "negative." (Supposedly, there were times when you could die over them.) Euclidean geometry seemed so obvious that people were scared to discuss non-euclidean ones. In science, even Newton had some self-ridicule about spooky action at a distance, like gravity:

"That one body may act upon another at a distance through a vacuum without the mediation of anything else, by and through which their action and force may be conveyed from one another, is to me so great an Absurdity that, I believe, no Man who has in philosophic matters a competent Faculty of thinking could ever fall into it."

[http://en.wikipedia.org/wiki/Newton%27s_law_of_universal_gra...](http://en.wikipedia.org/wiki/Newton%27s_law_of_universal_gravitation#Newton.27s_reservations)

<comment><USER3> I did not mean to imply that Lisp's notation itself was _against_ common sense - just that the article made a very good common-sense point about its expressiveness coming at a price that's often not worth paying, relative to the advantages it gives you over languages with less expressive but more goal- oriented syntax.</comment></comment></comment>


The Anaemic Domain Model Is No Anti-Pattern, It's a SOLID Design - <AUTHOR> https://blog.inf.ed.ac.uk/sapm/2014/02/04/the-anaemic-domain-model-is-no-anti-pattern-its-a-solid-design/ <comment><AUTHOR> I find it interesting that the SOLID principles can, at least according to the author, lead us away from object-oriented programming and take us back to something akin to the old C programs we used to have.

"If adherence to the SOLID principles is a property of well engineered Object- Oriented programs, and an ADM adheres better to these principles than an RDM ..." \-- but surely ADMs can't be said to be OOD?</comment>


Expecting Data from Theranos, Lab Experts Get New Product - <AUTHOR> http://www.bloomberg.com/news/articles/2016-08-01/theranos-presents-new-product-instead-of-data-backing-old-device <comment><USER2> Classic redirection. Nice move.

While no one should be OK with Theranos' historic missteps, I applaud a startup taking both business AND massive scientific/technical risk. They have everything to prove at this point.</comment>


Low-Cost Multi-touch Whiteboard using the Wii Remote - <AUTHOR> http://www.youtube.com/watch?v=5s5EvhHy7eQ

<comment><USER2> I posted this here on Monday (<http://news.ycombinator.com/item?id=87885>)... I guess you have to have youtube next to your link for it to get voted on.

<comment><USER3> The more stories that are submitted here, the more often this kind of thing starts happening, unfortunately.

</comment></comment><comment><USER4> This is brilliant. I'm working with a client who wants to get involved with Microsoft Surface. I think I've just found a much better solution, and one that's more versatile!

<comment><USER5> There are many alternatives to do this with webcams and related stuff... however as I was saying above, this is probably the best option, and the more versatile tech I've seen for this effect.

</comment></comment><comment><USER6> absolutely amazing. hopefully this will get commercialized very soon.

<comment><USER7> I'm not much of a hardware hacker but this looks like a pretty small DIY project. A tighter, nicer package might be nice but I think the point is that the ``commercialized" version (cf. Microsoft Surface) is really expensive.

<comment><USER3> Even commercialized, this could be a cheaper and more versatile version of electronic whiteboards. Just bundle a portable LCD projector and an infrared sensor together and include software so it just works. Get a good team together and apply to Y Combinator.

<comment><USER5> I agree. I've done some research on how to develop all kind of Microsoft Surface related stuff, and no doubt there are a lot of alternatives to create a similar effect in a much cheaper way. However, I haven't seen anything this versatile... this idea and implementation is absolutely fantastic.

</comment></comment></comment></comment><comment><USER8> This kind of stuff isn't new. These guys use optical feedback to achieve similar effects:

<http://www.mine-control.com>

</comment><comment><USER9> Wonder who owns the patents to this kinda technology

<comment><USER10> I think most patents on this technology have expired with the possible exception of multi-touch.

<comment><USER11> this technically isn't "touch" though, so you should be OK. :)

<comment><USER10> True, but it all depends on the way the individual claims are written in the patents governing multi-touch systems. If they have separated the claims for determining touch points and for the using different touch points to control zoom for example it might still be a problem, need to read the patent claims carefully to be sure.

<comment><USER12> Still amazes me you can get patents on such things. If you touch a screen with 2 fingers, and draw them outwards or inwards, what other thing could they conceivably control other than zoom? Amazing :)

<comment><USER13> How about deforming?

</comment></comment></comment></comment></comment></comment><comment><USER14> They're onto my ass. Go to get moving.</comment>


Online JavaScript Editor (product) - <AUTHOR> https://playcode.io/js-editor <comment> chad-autry Looks cook tech wise, snappy. But there is an utter lack of information. Is it running locally, or submitting code to some remote server with no privacy policy? Submitter seems to be the dev? This is the 3rd time submitted in the last 26 days. Found a github account with nothing except a terse readme.

<comment><AUTHOR> 1\. Code synchronized with server 2\. "privacy policy" \- forget about this, I'll add this.

</comment></comment><comment><AUTHOR> __Every project always published. __

Example project:

Editor: [https://playcode.io/5025?tabs=app.html&style.css&output](https://playcode.io/5025?tabs=app.html&style.css&output)

Normal web page: [http://5025.playcode.io](http://5025.playcode.io)

</comment><comment><USER2> It appears to run locally in the browser, not online.

<comment><AUTHOR> Why? Open link with your project in another browser and you will see that project saved on the server.</comment></comment>


What Linux or Unix/*BSD/macOS command you wish you learned earlier? - <AUTHOR> https://twitter.com/nixcraft/status/1301043285893345281 <comment><USER2> Not a command, but an argument _to_ a command. I wish I'd known about the -execdir argument to "find" earlier. It's very handy for any kind of "find every file named X and run such-and-such command in the directory containing X" scenarios.</comment>


Coder: "An ever-expanding universe of languages is becoming a drain on productivity" - <AUTHOR> http://www.thestandard.com/news/2008/07/31/so-many-languages-so-little-time

<comment><USER2> 640K of RAM and a Blub compiler ought to be good enough for everybody.

<comment><USER3> I wish I could upvote you a thousand times for this.

Also: Please start blogging again, even if it's about climbing mountains and laughing at those wacky comp.lang bloggers.

</comment></comment><comment><USER4> I have no idea what this guy is trying to say by comparing Ruby to COBOL.

Is he trying to say that Ruby is just another flash in the pan, like COBOL?

Or is he suggesting that some of today's Ruby code might still be running in vital systems fifty years from now?

Neither of those arguments would seem to have much to do with his main point. Could it be that he's trying to imply that language innovation has been a chimera for fifty years and we should all have been satisfied with COBOL? Surely nobody could be _that_ much of a Blub fundamentalist!

Or, you know, maybe this whole essay makes no sense.

<comment><USER2> "Could it be that he's trying to imply that language innovation has been a chimera for fifty years and we should all have been satisfied with COBOL?"

What's interesting about that sentence is what happens if you replace COBOL with L---, aw shucks, let's not go there...</comment></comment>


Picking Investments: Only Two Things Matter - <AUTHOR> http://blog.futureadvisor.com/picking-investments-only-two-things-matter

<comment><USER2> 2b) Tax consequences matter. Take advantage of options to reduce them, for example by fully funding your IRA. Particularly for the young kids here, you should be maxing your IRA every year if you're debt free. (And you should not, not, not tap it when you change jobs, want to fund a startup or wedding, etc.)

<comment><USER3> Respectfully disagree about not dipping into your IRA to fund a startup if you're driven to succeed and raising capital otherwise falls through. Just make sure it's for the right idea and it'll pay multiples over the crappy returns the S&P has over the past 10 years (which is almost nothing).

<comment><USER4> Everyone thinks they have "the right idea and it'll pay multiples over the crappy returns the S&P has over the past 10 years."

<comment><USER5> on the other hand, most people are idiots.

<comment><USER6> Which is why they should listen to patio11 (and won't).

<comment><USER5> sure, that's valid. it's also valid to acknowledge that their exists within that group a sub-group of people (albeit small) who DO actually have "the right idea" that WILL actually "pay multiples over the crappy returns the S&P has over the past 10 years", but DOES require going "all in" to achieve.

</comment></comment></comment></comment></comment></comment><comment><USER7> Asset allocation matters. Investors who took the time to develop a plan, figure out an asset allocation that matches their risk tolerance, and actually rebalanced periodically to adjust their portfolio back to their allocation target, probably did just fine during the so-called lost decade.

Tax efficiency matters. A badly designed portfolio may lose 1% a year to taxes. Tax-inefficient investments should be held in tax-advantaged accounts (e.g. tax-free or tax-deferred accounts).

And it matters that you have the discipline to stick to your plan through all market conditions.

<comment><USER8> Harry Browne demonstrates the effectiveness of asset allocation and periodic balancing in his book "Why the Best-Laid Investment Plans Usually Go Wrong". It's an old book from 1987, but the principle is timeless.

For example, I'm looking at a chart of his "Permanent Portfolio" from 1970 through 1987, which weights four asset classes equally at 25% each: gold, stocks, bonds, and cash. The portfolio has far lower volatility and far lower draw-downs than gold, stocks, or bonds alone. The portfolio also outperforms stocks or bonds alone. It does not outperform gold over this 17 year period, but by 1987 it comes close. It probably overtakes gold alone in subsequent years, since gold vastly underperformed the stock market from 1987 to 2001.

One good aspect of asset allocation is that it keeps on the opposite side of manic up or down trends. This strategy would have you selling gold at $800 in 1980, and buying gold at $250 in 2001. Gold has vastly outperformed the stock market since then.

Similarly, this strategy would have you buying stocks in 1974, when many people thought equities were "dead" and only fools were in the stock market.

You might think these references are a little dated, but again the principle is timeless. Anyone who says "it's different this time" is probably wrong.

<comment><USER9> One obvious asset class that's missing from that allocation is real estate, which (if you bought in a sensible area) has probably easily outperformed all of those since 1974 with the possible exception of gold.

<comment><USER8> He discusses real estate in a separate chapter, but what he says is interesting:

"Real estate isn't an essential investment for a Permanent Portfolio. Real estate offers no profit or protection to a portfolio that can't be achieved more easily with stocks and gold."

He then accepts the reality that many readers have invested or wish to invest in real estate, and goes on to talk about it at length.

Clearly real estate can produce high income and gains for those who have the capital to buy property and the time and money to manage it, but I do see his point.

</comment></comment></comment></comment><comment><USER10> Here is a recent thread about index funds

<http://news.ycombinator.com/item?id=1949158>

tl;dr Before IPO Google made several seminars so it's employees can get investment advice on how to invest their future millions. The advice was to invest in index funds.

</comment><comment><USER11> Who creates the indices, though? And if everybody would act like that, the system would fail, because nobody would trade stock anymore.

<comment><USER12> Tichy is exactly right, and this point on its own makes passive investing extremely dangerous (though I tend to agree that on average, putting your money with an active money manager is even more dangerous). The indices are rather arbitrary and set by institutions whose incentives have nothing to do with investor returns. The securities included in the indices are in no way selected for expected performance, and it's been well-documented that simply being included in the index artificially inflates a company's stock price (just as getting booted out artificially depresses a company's stock price), mostly because so many people have shifted to blind passive investing that there's just a bunch of forced selling and buying instead of thoughtful analysis of business values.

Though Warren Buffett has indeed recommended index funds to individual investors, he has repeatedly argued that the fundamental premise of index investing (that is, EMH, the efficient market hypothesis) is fatally flawed and that index investing is basically a stupid thing to do: "Naturally, the disservice done to students and gullible investment professionals who have swallowed EMT [efficient market theory] has been an extraordinary service to us and other followers of Graham. In any sort of a contest -- financial, mental, or physical -- it's an enormous advantage to have opponents who have been taught that it's useless to even try. From a selfish point of view, Grahamites should probably endow chairs to ensure the perpetual teaching of EMT." Buffett basically says that if you don't have time to dig into stocks, then index funds are the way to go - though they're still a terrible way to go. I disagree. When you look at the academic literature as well as Buffett's own philosophy (which draws heavily on the work of Benjamin Graham and David Dodd), investing based on value works over time and handily beats the broad indices. That is, if an investor buys what is undervalued, they will outperform the market. Now, to truly understand if a security is undervalued requires an enormous amount of knowledge and analysis, but it's been shown that even rough proxies for undervaluation (i.e. simplistic statistical screens such as price/earnings or price/book) work, and work well.

Joel Greenblatt, another very successful and highly respected investor (who subscribes to the same investment philosophy known as "Value Investing" that Buffett follows and Graham birthed), also disagreed with Buffett and he proposed a system that does in fact recommend buying undervalued securities as determined by statistical screens. Here's his site below: <http://www.magicformulainvesting.com/welcome.html>

If you buy the index when the market is overvalued, you'll end up doing very, very poorly. This is not about market timing; this is about valuation. You could use a simple P/E or a Schiller P/E (<http://www.multpl.com/>) to understand where the market stands on a valuation basis. This is the sort of analysis that Jeremy Grantham, another very successful value investor, does when he determines asset allocation and security selection (<http://www.gmo.com/America/>). If a certain asset class is overvalued, then why would you put the same amount of money into it? You want to put more money into the asset classes that are undervalued. Asset allocation should not be a static allocation; it should vary based one very important factor - value.

<comment><USER13> I think you're taking quite an extreme interpretation of Graham's/Buffet's thoughts on index investing. It's a given that, with index investing, your returns will match the market. Index investing isn't aimed at getting higher returns. Rather, Graham actually spends more time discussing and differentiating between different classes of investors.

For the "enterprising investor", s/he can afford to spend more time to find undervalued stocks and possibly outperform the market. For the "passive investor", to paraphrase Graham, it is good enough to simply invest in a representative set of securities, such as an index.

In fact, if I remember my Intelligent Investor correctly, there are various passages where Graham actually admits to the EMH being somewhat inevitable. Note that there are different variants/degrees of the EMH, and Graham probably subscribes to the weak or semi-strong versions.

Nonetheless, the point is that a belief in the EMH is not mutually exclusive with value investing. It depends a little on the extent to which you believe the market is efficient, and a lot on how much work you're willing to put into it.

<comment><USER12> I did not intend to portray extreme views, and I believe that I've represented their views fairly. Buffett recommends index investing, but also believes that it provides great opportunity for the enterprising investor because of its passivity and ignorance of security values. Graham did indeed differentiate between the "enterprising" and "defensive" investor, but did not recommend an index approach to investing, even for the defensive investor, as he specifically recommends that no security should be bought at a price over 20x its earnings (Ch. 5). Graham recognized that the "defensive" or passive investor does not have the time, energy, or expertise necessary to engage in rigorous security selection, but ignorance does not protect an investor from risk - risk here being defined as risk of permanent capital impairment, which is the risk of overpaying for a security.

My basic point is that every investor, passive or active, must protect him or herself against the risk of overpaying. Passive index investing does not protect you from this risk, and is therefore very dangerous.

Fully agreed that good investing is pretty much totally dependent on how much work and emotional discipline you're willing to put into it.

<comment><USER14> I'm not sure that "risk" is the right word. "Risk" should account for both the probablility of loss, and the magnitude of the consequences. You might overpay a bit, but not too much, so the risk is small.=

</comment></comment></comment></comment></comment><comment><USER15> very well written, and very clear. thanks for the good insight, jon and bo.

</comment><comment><USER16> Two words: Berkshire Hathaway.

<comment><USER9> Those are, indeed, two words.

They'd be more useful if placed into a full sentence, for instance "I think you should put all your net wealth into shares of Berkshire Hathaway" or "I think you should try to replicate Berkshire Hathwaway's investment strategy" or "Hey, you should think about buying a little bit of Berkshire Hathaway as part of a diversified portfolio which also includes other asset classes".

<comment><USER16> "Berkshire Hathaway is something you can defensibly buy that isn't an index fund."</comment></comment></comment>


Yahoo fires HR head. To focus on GPA for hiring. - <AUTHOR> http://allthingsd.com/20120810/exclusivr-yahoos-longtime-hr-head-david-windley-out/

<comment><USER2> Another story from the HN front page mentioned the value of a college degree in today's workplace. With all this pressure on tuition fee rises and the (wrongly) perceived lack of value in a university-level education it would make sense for a high GPA to mean even less than before.

Regardless of what the silicon valley types believe Yahoo is still a fairly attractive company to work for, and with Mayer at the helm I can see it becoming a great place to work.

For once I'd like to see a tech company openly come out and say "grades mean nothing" and to persuade those gifted few that cared more about real-world projects than writing a route planner for the London underground in Prolog. Don't get me wrong, grades do mean something, but when you're looking to work in the big leagues you'd hope that their recruitment process could discover the difference between a great programmer and a great academic.

</comment><comment><USER3> HN's headline is incredibly misleading, and no doubt a feeble attempt to corral the anti-education crowd. FTA:

"That has included the requirement of the addition of solid college grade- point averages and a preference for higher-level educational institutions for incoming resumes."

Not a focus on GPA, an addition of it.

A lot of people will argue that GPA/educational background is meaningless, but I'm hard-pressed (knowing, as I do, people within my major who have 2.0 GPAs and 4.0 GPAs) to believe that if you must choose between two entry-level candidates -- both of whom have great open-source contributions and interview well -- that you shouldn't take the more academically qualified one above the other.

</comment><comment><USER4> Meta: I clicked on the link to the story, got an "intro page" which was really just a giant advertisement, and was ultimately shown their main story index (rather than the article itself). What a complete and utter failure.

<comment><USER5> Makes back-navigation, especially on mobile, painful as well.

</comment></comment><comment><USER6> So, in short, big companies still don't get there doesn't have to be a correlation between GPA, educational background and actual skill to work?

Today with the internet, blogs, Github and other such things, I just don't get it!

<comment><USER7> Some big companies do, just not the ones you'd probably care to work at. If they make this choice they simply lose out on a certain set of individuals. Their loss, not yours.

</comment></comment><comment><USER8> I think it's best from the show west wing which said grades in college are best to assess how you do in college. That being said it's an assessment of grading which very class to class not on knowledge.

</comment><comment><USER9> Serious question.. what's better/worse, someone with no college at all, or a college degree and a bad GPA, assuming everything else about these hypothetical candidates is equivalent?

What's the safer bet? "The devil you know" (the sub-average college grad) or "the devil you don't know" (the person with no college)?

</comment><comment><USER10> This is starting to smell a bit cargo cult.</comment>


Why PG was not right on co-founders or two points of view. - <AUTHOR>

<comment><USER2> Depends on your definition of successful. If you want to build a website which accrues large amounts of advertising revenue - sure what marcus frind has done can be considered amazing.

Even making a 100th of what he does (maybe even a 1000th) would be enough for one person. Guess what - this happens everyday on the internet.

If you want to build a google, a microsoft, a paypal or something bigger its going to be hard for one person. From the investors perspective they want companies to generate a lasting difference to people's lives. Doing that as a one man band is hard. Generating monetary value for yourself is the flipside to this. But then who needs investors.

Ivan i disagree with you.

<comment><AUTHOR> No problem I give a point to you and Who really needs investors could be next question here to discuss.

<comment><USER2> I have no qualms about people creating cash generative websites either. Especially when young - the limiting factor to how ambitious your idea is is always capital.

Creating a cash-generative site and then selling it - or keeping it on the side to supplement building other ventures in the future is a great option. I'm very much thining about this right now.

<comment><AUTHOR> In connection with demomyapp?

<comment><USER2> not exclusively :)

</comment></comment></comment></comment></comment><comment><AUTHOR> You can run your business alone and you can be successful. There is no reason why this can't happen. Just from VC's point of view it's disadvantage.

Why? Say you created successful online web service. Alone. Than, accidentally (ex. caterpillar behind the next corner) something fatal happen to you. Who will care about running business. Do you think that by ex. PG has appetite to search for new business owner and maintainer? It's not possible to simply jump in the running train if you know nothing about business internals and by Murphy's law one day after your death application stops working due some old, forgotten bugs. Take any Y sponsored site and ask PG what he knows about its source code. This is IMHO the only reason why VC's encourage you to find a co- founder. I'm running my sites alone and still have not a feeling of burn-out :) If you don't have enough skills to implement your idea, employ someone, if you don't have enough time to work on business, employ someone.

Now think about it. If your online business idea is something what cure your customers' pain, you don't need VC's capital to be sucessful. We are living in age of blogs and other wonderful viral marketing tools. Cheap hardware and hosting. Everything what you need is courage, kind community and forget arrogance.

I don't want to say that have a co-founder is bad thing. I just want to say that this must have reason and that reason should not be the VC's opinion.

BTW: find a dependable co-founder is like find a needle in hay stack :)

<comment><USER3> I don't know... I think the statistics are pretty favorable to having a co- founder. This isn't just something PG invented. People have been saying this for years.

BTW, I'm saying this as someone who is going it alone, even though it makes things riskier.

<comment><USER4> "I think the statistics are pretty favorable to having a co-founder"

It's all in the details. Let's say we have the same success rate for single founder and multiple founders ventures. There are many more multiple founders startups for at least two reasons: (1) it takes some guts to go alone and (2) VC/angels won't fund solo undertakings. Since the multiple founders pool is bigger, there are more successfull startups of this kind. Here you've got your misleading statistics.

<comment><USER3> Well, I would submit that it takes "guts" to go it alone, because you know that it's harder that way and that you're more likely to fail. How's that for a circular argument?:-)

Like the silly age debate, I guess it all comes down to this: do what you can with what you have. I certainly think that there is some 'cargo cult co- founder searching' going on around here, meaning that you shouldn't just grab a warm body because PG said so, but you should already know that person by the time you're ready to go. And if there isn't a someone, well, tough, do your best in any case... that's where I'm at.

</comment></comment></comment></comment><comment><USER5> I've built a business solo, and I'm now building one with a co-founder. I can say, without hesitation, that the latter is better. I'm a lifetime loner, stupidly independent, and I don't play well with others, but having a co- founder is still a major net win for me. I'm lucky in that I've been working with my co-founder for years (I used to hire him for UI development work when I ran my previous company), so I know that our various skills and our personalities mesh well.

If you can't find a founder that fits well with you, and that you can trust not to screw you at the first opportunity, then going it alone is the only option. But, I'd recommend trying to find a co-founder. Sure, you can build a successful business solo...but it gives you much worse odds.</comment>


Total Literary Awareness: How the FBI Pre-Read African American Writing - <AUTHOR> http://theamericanreader.com/total-literary-awareness-how-the-fbi-pre-read-african-american-writing/ <comment><USER2> The title is pretty sly in mixing both past and present tense interpretations. Hard to guess whether it was going to be Hoover's infatuation with the civil rights movement or some current day addition to domestic spying shenanigans.

<comment><USER3> I'm not 100% sure, but I believe formal American English is meant to be rigorous in treating organisations as singular rather than plural. Hence if the title was meant to refer to the present, it should have read "How the FBI Pre- _reads_ African American Writing".

This is in distinction to British English, where it's often a matter of house style, or even dependent on context.</comment></comment>


Show HN: MTR.CSS – Hong Kong MTR Station Colors as CSS Variables - <AUTHOR> https://metrocolor.live?bug_fixed <comment><USER2> Here's a little background on the color choices for those who aren't from Hong Kong

[https://yp.scmp.com/news/features/article/104875/why-are- hon...](https://yp.scmp.com/news/features/article/104875/why-are-hong- kong's-mtr-stations-different-colours-central-red-reason)</comment>


Ask HN: Review my startup - <AUTHOR> Hey guys! we are a startup currently working in developing a All-in-one hardware solution for photovoltaic panel energy generation, we already managed to increase it's generation in up to 40% compared to fixed-tild PVs without the need of any light or movement sensors.<p>https://sunflowerpowersyst.wixsite.com/sunflowerpowersystem <comment><USER2> 1\. I would make sure to get your main domain setup before showing to any potential buyers the wixsite domain makes it look like a smaller or brand new company vs. appearing much larger than you are. 2\. Same goes for the @gmail.com contact email. 3\. The Logo seems a bit weak, I would think about using a tool such as Snappa to create a solid / polished one or 99Designs. 4\. The main CTA "Call-To-Action" should be focused on the customer and not the "Sunflower Power System" tagline... A more benefit focused statement for the prospect. 5\. I would consider blurring the image too, it detracts from the prospect reading the CTA first. 6\. As gus_massa said, the photos are a must as well as making sure it does not say "Out-Of-Stock", I would consider saying something along the lines of "Pre-Order" if no stock exists yet or get on "Get on Waiting List". 7\. The link under "Contact Us" is very misleading. What do you want accomplish with the prospect? Requesting a quote, a phone call, a pre-order, etc? Make sure your CTA is clear with the one at the top of the page. It keeps the sales message clear. 8\. I would change this to a more clear CTA of what you want to accomplish: "And if you feel like it, just fill our 5-min survey!". 9\. Having the TypeForm link not attached to a HTML button seems sloppy, I would add a CTA button such as "Request a Quote". 10\. The color of the contact button blends in too much, I would make a brand color accent that really pops against your base brand color. 11\. Make it clear what a prospect can expect for the subscribe button, right now what is it in for them? I would say something like "To get updates about Sunflower System and news about product developments please subscribe below". 12\. The site counter seems very 1990/2000\. You want to position yourself to look like a huge company even as a start-up. Especially with this vertical in the market. 13\. For the learn more I would develop a whitepaper proving the technology. 14\. I would also add testimonials and pictures of the units installed at various sites you have them to build additional trust with the prospects.

<comment><USER3> This seems like a tremendous value you've provided. Unfortunately a new line on HN requies two new lines (one blank), or you can indent two spaces to switch to <pre>-ish mode.

<comment><USER2> Thank you for letting me know, I am new to HN.

</comment></comment></comment><comment><USER4> Do you have any photos/videos of the panels while moving?

All the items are "out od stock", why?

Any benchmark to show the 40% improvement?

I'm worried that moving parts break. How long are these expected to last without maintenance?

</comment><comment><USER3> I'm sorry but do you not have any photos of your actual product on your site? It's possible this is just my browsing setup which is a bit unusual.</comment>


Dependency-Free Google Places Autocomplete - <AUTHOR> http://gplaces.goodybag.com

<comment><USER2> AFAICT if you use this for business it's now very expensive / separate from Google Maps for Work

</comment><comment><USER3> would be better as a webcomponent

<comment><AUTHOR> Agreed! And creating a web component would be a trivial amount of code. We could definitely provide a distribution for that.

We would love to use the Polymer project at Goodybag, however, this has deterred us:

> IE8 is incompatible due to its insufficient DOM support.

[https://www.polymer-project.org/0.5/resources/faq.html](https://www.polymer- project.org/0.5/resources/faq.html)

<comment><USER3> Coding for IE8 compatibility is sadface</comment></comment></comment>


Submitted for obscure reason - <AUTHOR> http://www.ambysoft.com/essays/brokenTriangle.html

<comment><AUTHOR> while rapidly scrolling and skim reading i noticed this: >Interestingly, a study of 1,027 IT projects cited...

and my first thought was 'how could you trust an IT study conducted by someone who could possibly bear, nay sleep at night, by ending a study at 1027 data points - obviously a HR weenie report... there's no hope for me - <USER2> yourselves, i'll hold them off as long as i can.</comment>


Ask HN: How should we approach our client for an investment? - <AUTHOR>

I'm a co-founder/developer at a bootstrapping Web development company. We're going on two years now and have a steady client base. We think we have a great idea, but we believe the project deserves our complete attention.
We're considering the idea of asking our largest client for a small (~6k) investment in exchange for equity. The investment will cover our living and business expenses while we execute the idea. The client loves us, and we've got a great history working together. It helps a lot that they have connections in the industry we're targeting. But we would rather not "drop a bomb" on them.
We have a meeting this Wednesday to catch up and to discuss future work. What do you think? How should we ask them for an investment? <comment><USER2> Ask for more than 6k for equity (a round number for a simple valuation) or ask a 6k loan; or ask for a 6k loan that you will pay back in service if your idea does not work out or turn it into equity if the idea turns out well.</comment>


The best GNU/Linux distros of the year 2000 - <AUTHOR> http://www.tuxradar.com/content/archives-best-distros-2000

<comment><USER2> 2000 was about the time I discovered Linux. Looking back, it's jarring how much the desktop distros tried to emulate the latest version of Windows. I think the current distros are guilty of the same mistake. Rather than trying to advance the desktop environment, they (Gnome + KDE) simply reproduce the familiar behaviors of Windows and OS X. I can understand the strategy. But after 9 years, are converts actually being made, or would it be more effective to innovate?

<comment><USER3> I don't get that feeling of copycatting from something like Ubuntu with a few Compiz bells-and-whistles turned on. Instead I get Windows and Mac users drooling at the eye candy. Granted, that's just eye candy.

Netbook remix looks awesome, for what it is, also.

<comment><USER4> Netbook remix _is_ awesome. Makes the 7" screen on my eee much more useable.

</comment></comment></comment><comment><USER5> What a major flashback. It's been only 9 years, and it feels like an eternity.

</comment><comment><USER6> I think it's interesting that it is difficult to tell the distros apart from the screenshots. Regardless of whether they are running KDE or Gnome, they all have similar panels and window themes.

</comment><comment><USER7> No Slackware? I declare the list incomplete!

<comment><USER3> I think Slack went through a pretty dry spell in 2000.

</comment></comment><comment><USER8> I love the fact that all distros were on a 2.2 kernel and debian was on 2.0. Some things never change.

<comment><USER9> Well you could always have just used testing like the rest of us. :)</comment></comment>