Optimizing AngularJS - <AUTHOR> http://blog.scalyr.com/2013/10/31/angularjs-1200ms-to-35ms/ <comment><USER2> When it comes to optimising a Javascript app that involves inserting hundreds and potentially thousands of elements into a page, save yourself headaches and use documentFragment to prevent reflow and at the same time, insert a lot of elements into your page/app very quickly. I recently build an app that has reached almost 54,000 mouse click records. Each time you click, it saves that value in a database: [http://coolcoolcoolcoolcool.com/](http://coolcoolcoolcoolcool.com/)

Inspecting the page will yield a click map where I am displaying all 53,000 mouse clicks inside of a map. As you can see I am using canvas now, but before that I was inserting them into the page and believe it or not, using documentFragment it was amazingly fast.

The reason I switched to canvas because performance on mobile was poor. 53,000+ elements rendered by Javascript on desktop didn't cause any fuss though, using documentFragment makes all the difference. Keep in mind, documentFragment really only shines when you are inserting 1000 plus elements into the page at once. One reflow against many reflows is going to cause you a lot of headaches.

<comment><USER3> Sorry dude, I think I just broke your app with a single line of JS.. setInterval(function() {jQuery("#theimage").click()},1);

<comment><USER4> You can break any web app with a single line of javascript.

</comment></comment></comment><comment><USER5> For comparison, I wondered how React would fare. Turns out it can be pretty fast. I did have to use a similar trick of breaking up the line only when the mouse is over it, but the rest is just React's architecture. See the demo here: [http://jsfiddle.net/ianobermiller/tZhSp/1/](http://jsfiddle.net/ianobermiller/tZhSp/1/)

Edit: updated link, forgot to save

Edit: for more info, React takes care of reusing DOM elements, and also uses event delegation by default.

Edit: for comparision, here is a version without the optimization: [http://jsfiddle.net/ianobermiller/QT9Tx/1/](http://jsfiddle.net/ianobermiller/QT9Tx/1/)

<comment><USER6> Cool! Any reason you didn't just add a onMouseLeave handler too? If you do you don't need the componentWillReceiveProps, which I think is a bit nicer:

[http://jsfiddle.net/spicyj/DGLtv/](http://jsfiddle.net/spicyj/DGLtv/)

<comment><USER5> No reason in particular, just put it together quickly. Yours is a good option since it keeps the DOM count low instead of letting it grow as you mouse around :)

</comment></comment></comment><comment><USER7> Great job!

I'm not entirely sold that you needed to go that far outside vanilla AngularJS though. If you follow #3 strictly and throw out #1, I don't think you need #2 and #4, which are the ones that break the spirit of the general style of development in AngularJS. Creating elements dynamically is not a high-latency operation in modern browsers. This means in most cases, elements with a lot of watchers inside should not be hidden, but destroyed and recreated on demand, along with the scopes where the watchers are registered. As you found out, watchers are by far the most expensive part of AngularJS, because they run every digest cycle, and the solution isn't to manually manage them, but rather use the natuarl AngularJS mechanisms (ng-if, transclusion, ng-switch, and if you're on an older version of AngularJS without ng-if, ui-if) to not even render those parts until needed. ng-show in general should not be used to show and hide elements with lots of watchers inside them.

What version of AngularJS are you on? The latest should have "track by" for ng-repeat, which should largely alleviate your concerns about ng-repeat rebuilding the whole DOM when you insert new elements.

<comment><USER8> When we were doing the profiling while developing the optimizations, we were surprised to find that the Javascript thread was spending something like 50% of its time in the method to remove a DOM element. Now, maybe that's because Angular is not removing DOM elements as efficiently as it could, but it was a bottleneck.

You are right though that optimization #3 is a big hammer that helps reduce the need for the other optimizations, but in the end, we found using both gives us the best result. And the other optimizations which much in terms of code.

We are using version 1.1.15 and already had AngularJS re-using the pre- existing DOM elements if it could. When we tested it (without optimization #3 turned on), we found that it still had too much lag so felt it was better to use the DOM caching optimization.

<comment><USER7> Very interesting, thanks for the explanation!

</comment></comment></comment><comment><USER9> _We did our best to follow the Angular philosophy, but we did have to bend the AngularJS abstraction layer to implement some of these optimizations. We overrode the Scope's $watch method to intercept watcher registration, and then had to do some careful manipulation of Scope's instance variables to control which watchers are evaluated during a $digest._

So you wanted to confirm you could use AngularJS to implement a "clean" solution, but that involved modifying/circumventing AngularJS itself. Is something wrong with this picture?

<comment><USER8> We didn't need a perfectly clean solution, just one that showed we could get the performance we desired while still following Angular's main tenets -- separate model from view, leave HTML generation to templates, testability, etc. We were able to show to ourselves that we could leave all the HTML generation and updating to directives similar to ng-repeat, with just a few small optimizations. In the end, the only way we bent the abstraction layer was to rely on a non-public variable to enable us to swap in and out watchers quickly. It's a small dependency and one that could be removed through a small change to Angular's API or some other tricks folks have suggested in other comments here.

<comment><USER10> Now that you had the benefit of hindsight and coupled with your experience in squeezing out performance, do you have any opinion on Backbone vs Angular from a pure performance perspective?

<comment><USER8> As much as we would love to speak to that, we've unfortunately haven't done this same type of benchmarking/analysis on backbone.js. This was our first foray into a Javascript MVC-ish frameworks. After doing the paper research into AngularJS and its peers, we decided to give AngularJS a whirl by coding up this acid test and only going through the alternatives if AngularJS didn't work out.

</comment></comment></comment></comment><comment><USER11> OK so you made some awesome optimized directives.. would you consider publishing them please?

<comment><AUTHOR> We'd have to do a little cleanup work to be able to publish these, but we'll definitely do it if there's enough interest. Feel free to follow up with us at firstname.lastname@example.com.

<comment><USER12> I would argue there is more than sufficient interest :) All you have to do is scan the angularjs google groups for ngRepeat issues.

Infact, one of the solutions proposed for ngRepeat issue (with lot of caveats) has 300+ stars no github

[https://github.com/Pasvaz/bindonce](https://github.com/Pasvaz/bindonce)

Including me, there are lot of folks who would find your solution very useful. You are addressing a fundamental O(n) scaling problem in AngularJS.

<comment><AUTHOR> Yup, the level of interest is becoming clear. :) We'll work on getting this published in some form. Keep an eye on our blog, or e-mail us at firstname.lastname@example.com and ask to be notified when the code is available.

</comment></comment></comment></comment><comment><USER13> This is a pretty good article - a lot of people don't realize that $scope.$watch is the most draining part of Angular performance-wise. It is easy to see the drain that it has by observing Batarang briefly.

I think it is possible to make most of these optimizations without bending the Angular source itself though. $scope.$watch returns an unregister function, so it should be relatively easy to unbind watches after they served their purpose.

<comment><USER8> Yes, we actually didn't modify any of the AngularJS source itself, but just overrode methods and inserted ourselves where we needed to. For example, we override $scope.$watch to intercept watch registration. However, we do rely on some of the non-public AngularJS functions to save us from duplicating a lot of code.. and that's where we push the edge.

It is an interesting idea to unregister the watcher when we do not wish it to be evaluated -- thanks for the suggestion. It would force us to recreate all of the child watchers again later, when we do need them to be evaluated again. We would have to investigate the performance implications.

We are already talking about other ways we could implement these directives by only relying on the public AngularJS calls in case there is enough interest and we want to publish the directives to the community at large. They might not be as performant, but wouldn't be broken by changes in AngularJS implementation.

</comment></comment><comment><USER14> One thing I like about Knockout, is that not every property in a model (or $scope in ng) doesn't necessarily need to be observable. I wonder if using something like Knockout for the data-binding layer could help with some of this, natively. (Not that Knockout doesn't have it's performance issues).

(Note: I'm referring to Optimization #2 & #4, specifically)

</comment><comment><USER15> Great read - I've been doing angular based UI for errormator - check out the demo on [https://errormator.com](https://errormator.com). And I've yet to optimize it, but even now the ui is rather responsive. I will probably have to adopt some of their techniques too at one point :-)

<comment><USER16> One thing I'd suggest is you stop animating the charts - clicking on one and then waiting for it to draw left to right may look pretty but is pretty annoying when I want to actually look at data!

<comment><USER15> I think you are right :-) Thank you for taking your time to check it out.

</comment></comment></comment><comment><USER14> Also, I think some of these optimization concepts (reusing DOM) are probably just generic "good ideas' for almost any JavaScript framework, handling DOM creation. Some good ideas that probably can be used by many devs.

</comment><comment><USER17> I am specially interested at how your overriding scope's $watch method.

<comment><USER8> The implementation of overriding the scope's $watch method is fairly straight forward.

We gave our optimization directive a fairly high priority so that it was guaranteed to be run first (among all the other directives on an element).

When the optimization directive ran, it just modified the scope variable passed to it, saving a reference to the original scope.$watch method and then setting scope.$watch to a new function we created. Inside that function, it does invoke the original scope.$watch.

We also had to override scope.$new to guarantee that any child elements, if they create new scopes, also create scopes with our override $watch method.

<comment><USER18> I am not sure if this will be of any help. But you could actually globally override $watch - without it feeling like a hack. Angular does provide a mechanism to do that. Since $rootScope is a service, you can have a decorator for it where you can override the $watch which will override the $watch for all scopes.

Angular Batarang overrides $watch too for instrumentation.

Consider this one more request for publishing your directives and changes :)

</comment></comment></comment><comment><USER19> The only problem I see is the approach of relying on ng-mouseenter when it comes to mobile sites, as its behavior gets very weird on swipe, scroll and tap events

<comment><USER8> That's a very fair point and we have work to do to optimize our site for mobile viewing (I'm an engineer at Scalyr).

One twist on the optimization that we could have used but didn't was trigger the tokenization on mousedown and then the first token selection on mouseup. Testing with modern browsers shows that the newly visible div will receive the the mouseup event. And the average 100ms time between mouse down and mouse up gives us more than enough time for Angular to do the work of creating the tokens for one line.

</comment></comment><comment><USER20> Seems that Angular is slow by default

<comment><AUTHOR> Well, it depends on what you're using it for. In many cases, the issues we wrestled with are fairly minor. It's only when you have a very large number of data nodes that you run into trouble.

<comment><USER20> Thanks. My statement is now confirmed.</comment></comment></comment>


An entrepreneur's perspective on the YC/Yuri Milner deal - <AUTHOR> http://kulveer.co.uk/2011/01/29/an-entrepreneurs-prospective-on-the-ycyuri-milner-deal/

<comment><USER2> I'm too lazy to write up a blog post on it, but here's my take on how it could conceivably affect my startup:

Up until now, I've looked at YC as something that wasn't a doable scenario, because they require the founders to move to the Bay area and live out there for the 3 months, while investing a fairly small amount (I think somewhere around $17,000 is the norm, no?) Anyway, for somebody in my shoes, that is, doing a self-funded, bootstrapped startup while working a day job, the requirement to move would mean needing to quit the day job, but the initial investment would leave - for me anyway - too short of a runway to justify it. At the end of 3 months, I'd come back here (presumably) and need to find another day job, and need to find it pretty quick, in order to pay rent and car payment, etc.

But the $150,000 investment option should be good for at least a year of runway, enabling a founder to work on their project full-time. Given a year, I'd feel pretty good about the chances of getting some traction and making a go of things.

So where, before, I looked at the YC application as something to do just to force myself to think about things, and maybe do a "mock YC interview" with some local people as an exercise, now I'm seriously interested in actually applying for a future cycle (if this offer continues as future cycles come along.)

I see it as changing the whole game for somebody in my position... from YC being something I'd have to turn down even if accepted, into something that is a very real, practical scenario.

Of course getting accepted is a whole different story, but hey... you can't win if you don't play, right?

</comment><comment><USER3> How do you know you're doing YC this summer? Applications, as far as I'm aware, aren't due until March...

Is there some sort of grandfather rule?

<comment><USER4> "Hey YC, I'm interested in coming back this summer. I had a successful exit last time. We cool?"

"We dig. You're in."

<comment><USER3> That's legit; I was just wondering if that's actually the case.

</comment></comment></comment><comment><USER5> Doing YC for the second time? Why? Feels like the incremental value of going back for seconds decreases once you have already gotten access to the YC network.

<comment><AUTHOR> Hmm - it's still well worth it in my opinion. I last did YC 4 years ago (W07), and whilst I now have my own network, it could still be much bigger. But anyway, there are many other benefits. The focus of prototype and demo day really increases productivity. Close proximity to the YC partners does wonders for your product development, and of course the YC alumni network is much bigger than when I first did it.

</comment></comment><comment><USER6> "perspective"

<comment><AUTHOR> edited, thanks</comment></comment>


Joel Spolsky On Why He Is Quitting Blogging - <AUTHOR> http://www.inc.com/magazine/20100301/lets-take-this-offline.html

<comment><USER3> To me, this sounds a lot like cognitive dissonance. It seems like Joel believes that his blog has primarily served to further Fog Creek and that he does his blog because he enjoys it. To cope with these two competing ideas, he comes up with a new one: he likes his blog because it promotes Fog Creek. Therefore, when the blog quits being beneficial to Fog Creek, he quits.

I actually find this sad. In hindsight, some of Joel's writings might not seem terribly radical, mostly because they've since been accepted. But most of them were when he actually wrote them. I think we underestimate the effect that Joel has had on the software industry.

<comment><USER4> What are Joel's contributions, exactly? Write your own programming language and quit your job if you don't have an Aeron chair in your own private office?

<comment><USER5> Oh, much more than that: his Strategy Letters are full of insights. He was one of the first to speak against being too focused on looking for VC. He has always been a proponent of BDUF but rejected any kind of "software engineering certification" as a measure of code quality.

<comment><USER6> I'm sorry but you lost me at 'BDUF', what does it mean? (Google results seems to agree on "Big Design Up Front" but I still do not understand)

<comment><USER7> Yeah, he's referring to Big Design Up Front. It just means doing specs and schedules instead of PG style exploratory programming.

e.g. <http://www.joelonsoftware.com/articles/fog0000000036.html>

</comment></comment></comment></comment></comment><comment><USER8> I've always enjoyed Joel's blog and will miss it. I wonder if the almost- immediate criticisms in places like Hacker News of anything he writes is an unstated part of the reason he's giving up blogging.

Over the years most of what Joel has written has been for me both illuminating and entertaining. I've only disagreed vehemently a couple of times with what he has written (his stance on exceptions, for example).

Back in 2001 I even used his Joel test to dramatically improve the quality of the software produced by the team I was leading at the time.

<comment><USER9> Joel is a sharp cookie. Perhaps he has come to realize that there is a point of diminishing returns in excessive software punditry.

"Better to keep your mouth closed and be thought a fool than to open it and remove all doubt".

</comment></comment><comment><USER10> Maybe I am a minority, but if I discover some new online company, I tend to check their blog to have a glimpse about what they are up to, how their thinking is in general and whether they are able to communicate in an intelligent way. To sum it up, I personally like it when company has a blog, and I see it as a bonus, even if they speak only about themselves.

<comment><USER11> Alas, we are the 5-10% of programmers he talks about :-)

<comment><USER12> Yeah, I don't think Joel is saying you shouldn't blog about yourself. You should, for just that reason. He's just saying it's not an ideal lead generation tool for most people, and I think he's correct.

</comment></comment></comment><comment><USER13> This seems like an oddly backwards take on blogging. Do you really start a blog solely because it's a way to flog your product? Not because you have things you want to say and want an outlet to say them in, without having to deal with finding a way to get yourself published in a magazine column or something?

I can imagine sometimes it's a good choice even if your _only_ goal is the sales/exposure your blog brings in, but it's not surprising to me that it would often not be. There are plenty of people, including quite a few smart ones, blogging just to say things that they want to say, so it's a fairly competitive market in which you're up against people who are willing to work for free, because they categorize blogging as something other than work.

In fact, I'm not sure I _really_ believe even he originally did it for that reason. Did he really start Joel on Software solely to be "a blog that actually generates leads, sales, and business success"? Or was it because in 2000 blogging was still relatively new, it seemed interesting, and he had a lot of things to say about software? I can't believe it wasn't at least a mixture of those.

</comment><comment><USER14> I have to believe that what we're seeing is fallout from his posting on Inc. where he (publicly) lamented about how distressed he was by Atlassian's performance, and started demonstrating doubt that his company would survive. He compared Atlassian to Oracle, and Fog Creek to Informix. Even if he had those thoughts privately, to so openly admit to the competition, (and his customers) that he believed that Atlassian's approach might be more effective, and they would end up being the winning team, was unwise to say the least. (And violated several dictums of Art Of War)

I've used both Jira and FogBugz, so I take a little bit of exception at his statement "we have the undisputed No. 1 product among the 5 percent to 10 percent of programmers who regularly read blogs about programming."

I'd like to see the the numbers behind that claim. Perhaps they No. 1 product among people who read joelonsoftware - but "blogs about programming" in general? I'm willing to bet money that Jira has far surpassed FogBugz in that space, if only because every single company I know ends up using Jira for so much more than bug tracking.

You can be certain Atlassian is aware of every step Joel takes:

<http://jira.atlassian.com/browse/JRA-19746>

</comment><comment><USER15> I think he just tries to rationalize the fact that he's done blogging for 10 years and now he's just bored with it.

<comment><USER16> Yeah, his argument "nobody else really was successful with blogging for their company" seems weird - so what, what matters is that he is successful.

<comment><USER17> "Successful" in what sense?

He says that it is taking away time that he'd rather be spending on his products, and that spending his time elsewhere would better maximize profits.

I think he's thought this through, and I salute his decision (although I'll miss reading JOS.)

</comment></comment></comment><comment><USER12> He's right on just about every account. For most web-based businesses, there are better ways to get users than blogging. (I say this as someone who built a pretty solid one off of a blog in the past as well.)

There's too much competition. It takes too much effort to write high-quality content frequently enough to attract lots of attention. The conversion rate is low, and the price is high.

Sure it works for some people. It worked for Joel and 37 Signals. It worked for me once upon a time. All of us started before the word "blog" had entered the popular lexicon, but it could probably work now with the right niche and enough effort.

But if you're a small startup, you'd be better off programming some viral hooks, maybe doing some basic SEO, testing out Ad Words, a/b testing landing pages and every other point in your sales funnel, etc. Blogs, Facebook Pages, and Twitter just won't give you the ROI those will when developer hours are a big factor.

</comment><comment><USER18> While I realize we typically tend to let titles stand at HN, I really think this one would benefit from "Joel Spolsky On Why He Is Quitting Blogging."

<comment><AUTHOR> Agreed. Changed.

</comment></comment><comment><USER19> He has hardly been writing anything new lately anyhow. For the last year or two, the overwhelming bulk of the new content is links to Inc. columns.

Not that that's bad. Just saying.

<comment> brown9-2 I think the article addresses this directly: his company has grown so much that he barely has time for this sort of thing anymore.

</comment></comment><comment><USER20> For me there's a big area around corporate blogs vs personal blogs. With our startup we've always erred on the side of corporate, keep it very much about releases and other important pieces of information we feel our users need to know about our product.

Recently we've wondered whether our next startup should have a much more personal feel - much the same way that say Peldi over at Balsamiq has developed his product and blog (<http://www.balsamiq.com/blog/>) and in a similar way to what Joel has as well. Peldi in particular has been completely transparent with his numbers and you do feel a genuine personal connection with him when you read his blog - I think this has helped him to connect with his audience (as with Joel) and you can relate to them both much more in a personal capacity.

For me I think it's important to have a blog (even just a coporate blog) - <USER2> I do wonder whether you can gain more traction by adding a personal touch to it.

Not sure what other YC'ers think ?

<comment><USER17> I think it's important to remember that Joel did it the other way around-- the blog preceded the business.

Joel built up an audience, and simultaneously built a product that would appeal to this audience. But even that makes it sound too calculated, as Fog Creek's first product wasn't really aimed at Joel's readership at all.

Joel wrote about something he was passionate about, and wrote well. He also made a product that resonated with decent chunk of his readership.

Here's a good test: would people who have no interest whatsoever in your product be interested in your blog? If so, it's a personal blog. Cool. (Just remember that your readers are not necessarily your customers, and vice versa.) If not, it's a marketing tool. Which may also be cool, if that's what you're after.

<comment><USER20> Yep - good point.

I think in a roundabout way what I want to say is that I wonder if you should give your company blog (to market your product) a more personal feel would this generate more custom ?

<comment><USER17> I think that it would probably be pretty transparent to the reader that's what you are trying to do.

If you're trying to do marketing, "a more personal feel" can quickly cross over into a faux-folksy style that comes across as really insincere.

<comment><USER20> What about if what you were providing was great, unique content that wasn't all about making a sale but actually giving something of purpose in a non- corporate, more personal manner ?

<comment><USER17> That gets back to the question I was asking before: would your readers be interested in the content, even if they were not at all interested in your product? If so, it's a personal blog. If not, it's a marketing blog.

</comment></comment></comment></comment></comment></comment><comment><USER21> Is relying on blogging really the reason Fog Creek hasn't crossed over or is it because they write tools that only 5-10% of the programmer audience are interested in?

<comment><USER22> He is saying that blogging has had a significant opportunity cost and that his blogging time could have been spent on something else that would have led to Fog Creek crossing over.

</comment></comment><comment><USER23> _The audience was so precisely defined that products we tried to make that weren't specifically for programmers pretty much flopped._

Any idea what products he is referring to? CityDesk or Aadvark (or something else)?

<comment><USER24> CityDesk, which was originally supposed to be "the" Fog Creek product, but had the misfortune of being most applicable to an audience Joel couldn't reach.

Copilot (née Aardvark) is doing just fine. Indie shops love it for taking a look at problems on their customer's computers. Not really the market we thought we'd nail when we first launched it, but, again, it ends up reinforcing Joel's statement.

<comment><USER23> Thanks. As for Copilot, I believe it reinforces what Joel is talking about using his blog to reach out to target customers. In the case of Copilot, the whole "summer interns at Fog Creek" series and the movie acted as the core message with the actual product in the background.

</comment></comment></comment><comment><USER25> Isn't it a little strange that he announces his "blogging retirement" on a magazine's website inside an article hidden behind an interstitial ad? Shouldn't this have gone front and center on Joel on Software?

<comment><USER26> He mentioned it in the Stackoverflow podcast either last week or the week before as well.

</comment></comment><comment><USER27> I've read JOS since...well, I think the beginning, or dang close. Joel's articles are some of my most-forwarded. The earliest were phenomenal.

Now, though...most of the time I figure he's going to try sell me something. Each post is about a new feature. The Inc articles give me the idea that coders just aren't where he's at anymore. Bigger fish to fry.

</comment><comment><USER28> "What's more, I have trouble pointing to other successful entrepreneurs who have used the same formula and reaped the same dividends I have."

The first bit of advice given by anyone is to start building content, so that SEO can help your webapp be discovered. While this is good advice, in a way Joel is contradicting this. He is effectively saying that SEO will only take you so far. This has further impact when it is coming from probably one of the most linked to blogs.

The question to ask here is whether this building content stuff so very important? I agree with the thought about building an audience, which is priceless, but what about plain old content found through google?

<comment><USER17> I don't think he's contradicting it at all.

"Building content so that SEO can help your webapp be discovered" is a great first step. But it will indeed only take you so far.

Joel's interested in selling his products to people who have no interest in reading JOS. And, starting another blog with alternate content is not the best way to reach these people, either.

<comment><USER28> "great first step" is not necessarily accurate. It normally takes a lot of time before content gets traction in Search Engines.

SEO is more like one of the arrows in the quiver, which is extremely efficient(profitable).

</comment></comment></comment><comment><USER29> The latest in a series of internet retirements and disappearances. Private forums are on the uptick.

</comment><comment><USER30> On the StackOverflow podcast, I believe he mentioned something about not wanting to dominate the blogging world anymore. Someone says "Joel" and everyone else thinks "Spolsky." Yet, he doesn't mention that at all here. I wonder what's up with that?

Also, he says he's going to quit "for the most part" podcasting and public speaking. Is this also the end of the StackOverflow podcast? Seems unlikely that he'd force that onto Jeff, who seems to like it a lot.

<comment><USER31> _> > Is this also the end of the StackOverflow podcast?_

[http://meta.stackoverflow.com/questions/40602/joel-to- quit-t...](http://meta.stackoverflow.com/questions/40602/joel-to-quit-the- podcast/40716#40716)

He might have meant no longer doing other people's podcasts.

</comment></comment><comment><USER32> He'll be back

<comment><USER33> In some form, yes, I agree. There's too much ego in what he does for it to be otherwise.

</comment></comment><comment><USER34> FogBugz has competitors, I think especially Jira, but it's hard to dominate the market if you only target 5-10%.

Isn't pg an entrepreneur who has reaped similar dividends from a similar formula of "blogging"? i.e. a book/essays addressing bigger issues, has indirectly promoted YC.

<comment><USER35> An oversimplification:

pg's "job" is to reach smart geeks living anywhere, convince them he knows what he's talking about and then fund the best among them.

Blogging = high return on effort. He's reaching many geeks and selling them on his qualifications all at once.

Joel's "day job" is managing and encouraging the growth of his (NYC-only) company. Blogging has a lower return on effort because only a small percent would be able/interested in moving to NYC to work for him. Local advertising in NYC would probably provide a better return on his time/money.

</comment></comment><comment><USER36> 1) I bet he could sell the same audience on new products as many times as he could make new useful products. He could scale his company horizontally instead of vertically.

2) Something is off if you have the attention of the hardcore programmers in the world, and can't make your programming tool spread. Why aren't these programmers falling over themselves to use and recommend FogBugz?

<comment><USER37> Just a guess about #2: the programmers might be recommending FogBugz to their bosses with the pursestrings, but the bosses may not like it enough. FogBugz's approach to project planning might be "the only approach that actually works well" (which I believe) but it's definitely non-traditional and takes control of the schedule away from the people who usually like to have that control. So I think there's typically a lot of resistance from outside the development group to adopting FogBugz.

</comment></comment><comment><USER38> Why would he shut down an major marketing/awareness channel so he can concentrate on stuff that he's not good at? I guess maybe because he wants to improve.

But I'd guess Fog Creek would be more successful if Joel focused entirely on being a spokesmodel and internal product leader and hired an operations person who was smart about sales, marketing, and channel distribution.

</comment><comment><USER39> in the meantime, i'm still waiting for stevey's promised last three posts ...

<comment><USER4> Indeed. In addition to writing extremely interesting posts, he was the one "celebrity blogger" that actually proved he had any programming ability (by releasing open-source software). So many bloggers write about programming techniques, but very few of them have ever written any code that the readers can take a look at.

</comment></comment><comment><USER40> Joel slams Twitter's blog as boring, saying it's essentially rewritten press releases but Twitter does have an engineering focused blog that has much more interesting content (for Programmers anyways).

<http://engineering.twitter.com/>

</comment><comment><USER31> First Steve Yegge and now Joel.

</comment><comment><USER41> usually first article in Inc magazine I read was from Joel. His overall comprehensive thinking was a great resource and inspiration to me. I will miss his well written articles and often good topics.

</comment><comment><USER42> In July 2008, I had recently been laid off and it was the midst of the Worst Recession Ever.

I applied to Fog Creek. I didn't get to the in-office interview. Now, I'd totally understand if they chose not to hire me after an interview. I'm pretty particular about what kind of work I want to be doing, and that makes me a poor fit for most jobs. Also, knowing more about the company, I wouldn't have been a great fit (no fan of Microsoft, and they use Wasabi, which I understand to be a VB dialect). So I hold no grudge that I didn't get hired-- just business, and very likely the right decision-- but I was pretty damn _surprised_ not to get an office interview. I'm reasonably smart (top 100 Putnam) and I made it to the final round of DE Shaw's process shortly out of school, and had plenty of opportunities (even then, in 2008) to move back into finance. So it's pretty shocking that they didn't at least bring me into the office. Ok, but that's their decision and within their rights; they haven't done anything wrong, unprofessional, or embarrassing. Not yet, anyway...

Here's where Fog Creek begins to look bad: remember what I said about being laid off in the midst of the worst recession ever? After getting turned down for the interview, I called Fog Creek to ask why I didn't get it, wanting to make future applications, to other companies, more successful. No explanation. No tips or advice. Nothing. "We'll call you if we can release that information." No call. I tried again, 2 weeks later. Nothing. I'm sorry, but if you can't take 5 minutes out of your day to explain to someone who is down on his luck why he didn't get an interview, then you've checked your humanity at the door and crossed the line into sleazy corporate "neither confirm nor deny" territory.

To make it worse, I know that Joel is friends with my ex-boss. So Fog Creek's decision not to explain the rationale to me casts aspersion onto him. Not very professional. (Of course, I have no idea if Joel had anything whatsoever to do with this matter. Still, it makes the company look bad.)

Anyway, I rebounded, I've moved on and I'm doing well. In 10 years when I have a bit of success to my name and I'm hiring, I won't hold it against someone to have worked there. Even if that person worked in their HR department in the summer of 2008. But this is why I think Fog Creek is overrated. I'm sure they're a great company, and they have some impressive people, but they still have a touch of the old regime in them... or at least in one subsection of the HR department as of two years ago.

(TL;DR version: The "cool company" image of Fog Creek is overstated, as my experience attests. Still, their programmers are impressive.)

<comment><USER43> No, just because they didn't tell you why they rejected your application does not mean they are uncool.

It just means you have rather unreasonable expectations of what other people should do for you.

<comment><USER42> _No, just because they didn't tell you why they rejected your application does not mean they are uncool._

It's different from how Joel presents his philosophy of business. For a person, it would be hypocrisy. For a company, it's more accurately described as inconsistency (because there's no evidence whatsoever that Joel had anything to do with HR's decision not to inform me). Which is probably inevitable when a large number of people are involved (moving parts -> inconsistency). I wouldn't hold this against any specific individual. I'm sure most of the individual people at FC are great.

<comment><USER44> How does your experience "differ" from how Joel presents his "philosophy of business"? Please be specific. Joel has touched on this specific topic in podcasts before (i.e. why he wouldn't provide feedback to a job applicant), so I don't see how this differs from what he has preached before. If anything, your experience fits in rather perfectly with how he claims to run his business.

<comment><USER42> He presents himself as some sort of enlightened manager. Yet when he's on the spot with a chance to prove it, he slinks back into the traditional "neither confirm nor deny" stance of old-style corporations.

He was within his rights not to give a reason. Not saying otherwise. I'm just saying I'll never work with him or his company in the future. Although he'll probably never have any use of this "bridge", he gained nothing by burning it.

<comment><USER44> Who says that an "enlightened manager" is one who opens his company up to potential litigation by providing honest feedback to any rejected job applicant that wants it?

There's not a whole lot of people who are going to like what a potential employer has to say about them if they have been rejected. They have no way of gauging how someone will react and there is virtually zero benefit to providing any feedback whatsoever. This has nothing to do with management style; it's just common sense.

<comment><USER42> _Who says that an "enlightened manager" is one who opens his company up to potential litigation by providing honest feedback to any rejected job applicant that wants it?_

Potential litigation? Given that (1) I would have absolutely no legal leg to stand on, and (2) I'd rather get another job and advance my career than spend a year suing someone, blackballing myself in the process: why would I possibly do that? If that thought even went through anyone's mind, I'm insulted, because I'd have to be an idiot to try to pull that off.

If your legal strategy, regarding someone who has absolutely no incentive (and plenty of counterincentives) to sue you, comes before your humanity, there's something wrong.

 _They have no way of gauging how someone will react and there is virtually zero benefit to providing any feedback whatsoever._

There's no benefit to helping out someone who applied to work at your company and might be doing something of interest to you in the future? Really?

<comment><USER44> _Potential litigation? Given that (1) I would have absolutely no legal leg to stand on, and (2) I'd rather get another job and advance my career than spend a year suing someone, blackballing myself in the process: why would I possibly do that? If that thought even went through anyone's mind, I'm insulted, because I'd have to be an idiot to try to pull that off._

All of your suppositions assume that the potential employer knows and understands all of your motivations! They don't. Maybe you're a wonderful, stand-up guy. But maybe you're not. They have no way of knowing for sure. So it's only natural for them to assume that some applicants may give them grief if they provide an "honest answer" as to why that particular applicant was not hired. Whether or not _you_ , specifically would cause them grief is totally and completely irrelevant unless, perhaps, they have an explicit reason to believe that _you_ , specifically wouldn't cause them grief. Can you provide any reason that _you_ , specifically should be treated differently than all other applicants who they interview, including the ones who would cause them grief if they were told exactly why they were not hired?

On the topic of litigation, even if you didn't have a leg to stand on legally (which may or may not be true), even launching a frivolous legal claim against them can be annoying and costly to them. They _still_ have to grab a lawyer to advise them on the matter and they _still_ have to defend themselves against anything you may or may not bring forward, frivolous or not.

 _There's no benefit to helping out someone who applied to work at your company and might be doing something of interest to you in the future? Really?_

Really! Fog Creek undoubtedly receives a veritable plethora of job applications. The chances that you specifically will be of great interest to them in the future outside the scope of being employed with their company is slim as a matter of probability, assuming that you don't already have some kind of working relationship with their company. If you do already have a working relationship with Fog Creek, you should take this issue up with them directly instead of on Hacker News.</comment></comment></comment></comment></comment></comment></comment></comment>


New Linux version will reduce suspend and resume times - <AUTHOR> http://arstechnica.com/information-technology/2014/03/new-linux-version-will-reduce-suspend-and-resume-times/ <comment><USER2> Some of us have the impression that "Linux doesn't work well on laptops", specifically when it comes to suspend/resume and power consumption.

Under that impression, you have to find on eBay one particular ThinkPad manufactured in 2005, and spend a day tweaking things. Then it will work. Usually.

That impression was accurate, not too many years ago. It looks like it's not anymore?

It seems to me that this update is a great way to change that old impression. If only because "X works faster" is a way to reinforce that "X works at all".

p.s. To clarify, I'm talking about perception/impression not reality. Changing how people think.

<comment><USER3> I currently use a very cheap read ~250 dollar lenovo laptop. Running Ubuntu. Its default power settings are great, at light usage I can easily go a day or two without a charge.

Close lid + suspend works perfectly. I think I've booked about 2-3 months of it being continuously on. On open I get a black screen that states system resuming, then a login prompt not 1-2 seconds later (and I hear my hard drive begin to spin again).

Perfectly fluid, I'm honestly afraid to move away from unity, lest I lose this feature.

The only issue I have is since upgrading to FireFox 28.0.1 it sometimes crashes when it resumes. I've sent several reports to mozilla. I think the issue is flash.

<comment><USER4> What exact model of Lenovo do you have? I got a Thinkpad x140e in the configuration certified by Ubuntu: [http://www.ubuntu.com/certification/hardware/201309-14195/](http://www.ubuntu.com/certification/hardware/201309-14195/)

It has been a nightmare.

Bluetooth doesn't work. Changing screen brightness doesn't work. X crashes on startup. Even Ubuntu's GUI installer crashes on startup. Suspend works, but I can only resume by opening the lid, not by typing or clicking. Also, once I resume, focus is often on the last app, not the password input. The first time this happened, I typed my password. No effect. Confused, I clicked on the password input and tried again. Success, but my terminal said, "*K&GD#TYIBO(" command not found. That means anyone can run a command as my user simply by typing it at the password prompt. For some reason this only happens when resuming from suspend, not after locking the screen.

I have a mostly-working system today. Brightness is still stuck at maximum, limiting the battery to 6 hours. (Windows 8 gets 9 hours.) The latest beta Catalyst drivers fix X crashing, but I still get screen tearing so watching video is extremely annoying. Bluetooth no longer crashes, but it can't see any discoverable devices or pair with them. Wifi transfers at 802.11n speeds once I compile the latest drivers.

I thought I'd picked a good laptop to run Linux on, but it turns out that Ubuntu's hardware certification is worthless. It's so frustrating, because once you max-out the RAM and install an SSD, the x140e just needs working drivers.

<comment><USER5> I'm sorry if this is obvious to you, but your post makes it sound like you may have bought a laptop in the configuration listed and then tried to install Ubuntu. Quoting from the Ubuntu website you linked,

        Standard images of Ubuntu may not work at all on the
        system or may not work well, though Canonical and
        computer manufacturers will try to certify the system
        with future standard releases of Ubuntu.

Did you use a standard Ubuntu image, or get one pre-installed?

<comment><USER4> I used the standard Ubuntu image. I tried 12.04LTS, 13.10, and 14.04LTS alpha/beta/whatever.

I'm not sure it's possible to buy an x140e with Ubuntu preinstalled. When purchasing from Lenovo's website, the OS choices are all versions of Windows 7 and 8. It would be nice if this potentially modified version of Ubuntu was released somewhere.

</comment></comment></comment></comment></comment><comment><USER6> I'm interested what caused the slowdown in the first place. It must be architecture dependent, since my laptop (thinkpad) suspends fast enough that I never thought of measuring it. (2-3 seconds, I guess)

</comment><comment><USER7> They should ditch ACPI anyway. It seems it's too unsafe:

[http://www.markshuttleworth.com/archives/1332](http://www.markshuttleworth.com/archives/1332)

<comment><USER8> ACPI isn't going away on PCs, ditching it means ditching PCs as a target.

<comment><USER9> They said that for 16-bit CPUs and BIOS as well.

<comment><USER10> Why would anyone ever claim that 16 bit support would never go away? Not that it did go away: all the x86_64 chips still have 16 bit support.

<comment><USER11> And modern PC motherboards still ship with traditional BIOS support.</comment></comment></comment></comment></comment>


The legacy of Srinivasa Ramanujan - <AUTHOR> http://www.thehindu.com/sci-tech/science/article2746988.ece <comment><AUTHOR> "Ramanujan cultivated his love for mathematics singlehandedly and in total isolation" ...

"At the age of 12, he borrowed from a friend a copy of Loney's book on Plane Trigonometry, published by Cambridge University Press in 1894"...

"It is not a remarkable book, and Ramanujan's use of it to propel himself to the centre stage of 20th century mathematics, has made the book remarkable. It was largely used by students of Carr who were preparing for the entrance examination in mathematics at Cambridge University. Ramanujan used the book to master all of 18th and 19th century mathematics. He set about to demonstrate each of the assertions of the book, using only his slate to do the calculations. He would jot down the formula to be proved, and then erase it with his elbow, and then continue to jot down some more formulas. In this way, he worked through the entire book. People used to speak of his "bruised elbow." Sadly, he took Carr's book as a model for mathematical writing and left behind his famous notebooks containing many formulas but practically no proofs."

<comment><USER6> _I remember once going to see him [Ramanujan] when he was ill at Putney. I had ridden in taxi cab number 1729 and remarked that the number seemed to me rather a dull one, and that I hoped it was not an unfavorable omen. "No," he replied, "it is a very interesting number; it is the smallest number expressible as the sum of two cubes in two different ways._

Courtesy of G.H.Hardy

<comment><AUTHOR> Indeed.

<http://en.wikipedia.org/wiki/1729_(number)>

<comment><USER7> Did he just figured that out on the spot when his ill or knew it from before?

<comment><USER8> I think Kanigel's book talks about this. It seems he had worked through first few thousand numbers and knew all of them quite well. Thus instead of a spark of genius, this seems to be a fruit of years worth of hard work and an excellent memory.

<comment><USER9> Few thousand? There are only 12 third powers below 1729: 1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 1331, 1728.

Spotting that 729 + 1000 almost is equal to 1728 is not hard, either. Everybody who has computed that list will have noticed it. Translating that observation into a concise, interesting description is not hard, either, but it does require creativity. That, he had way more than most. I wonder what he would have said about the pair 3^5 and 7^3 (243 and 343)

<comment><USER10> The first few thousand integers, and knew their properties quite well; that seems to be what is meant.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> robert-kanigel's book, "the man who knew infinity" is an excellent chronicle into his life, and cambridge's culture during 20th century. it was hardy who created a rising scale of mathematical abilities as follows:

      g.h.hardy - <USER2>
      littlewood - <USER3>
      hilbert - <USER4>
      ramanujan - <USER5>

hardy once described the formulas in ramanujan's first letters as "these must be true, if they are not, nobody would have the audacity to invent it."

<comment><AUTHOR> You might also like to read this interview of Kanigel on his book and how he researched on Ramanujan.

<http://www.thehindu.com/opinion/interview/article2747541.ece>

PS: I was half inclined to share this interview (instead of the article, this is also quite interesting)

<comment><USER11> wow ! it definitely is pretty interesting. thanks for sharing.

</comment></comment></comment><comment><USER12> Whenever I think about Ramanujan, I cannot help but wonder how many Ramanujans are out there that are just not visible and struggling with poverty.

</comment><comment><USER13> Ramanujan's second letter to Hardy [1]:

"Dear Sir, I am very much gratified on perusing your letter of the 8th February 1913. I was expecting a reply from you similar to the one which a Mathematics Professor at London wrote asking me to study carefully Bromwich's Infinite Series and not fall into the pitfalls of divergent series. … I told him that the sum of an infinite number of terms of the series: 1 + 2 + 3 + 4 + ... = −1/12 under my theory. If I tell you this you will at once point out to me the lunatic asylum as my goal. I dilate on this simply to convince you that you will not be able to follow my methods of proof if I indicate the lines on which I proceed in a single letter. ..."

[1] <http://en.wikipedia.org/wiki/1_%2B_2_%2B_3_%2B_4>

</comment><comment><USER14> Maybe it is just me, but overstating anyone's impact to this extent is disrespectful to that person.

"....wealth of ideas that have transformed and reshaped 20th century mathematics"

"His work has had a fundamental role in the development of 20th century mathematics"

Maybe someone who has delved deeper into math can shine some light here.

<comment><USER15> Not a mathematician, but some references I found after goolging a bit:

[1] "The meaning of Ramanujam now and for the future", George E. Andrews. <http://www.math.psu.edu/andrews/pdf/274.pdf>

[2] "The Ramanujam Journal", <http://www.springer.com/mathematics/numbers/journal/11139>

Quote from the conclusion of [1]:

 _In his Presidential address to the London Mathematical Society in 1936, G. N. Watson spoke movingly of his emotional response to Ramanujan's achievements. I close by quoting his last few paragraphs [54; p. 80]:_

 _"The study of Ramanujan's work and of the problems to which it gives rise inevitably recalls to mind Lame's remark that, when reading Hermite's papers on modular functions, \on a la chair de poule." I would express my own attitude with more prolixity by saying that such a formula as:_

<snipped formula>

 _gives me a thrill which is indistinguishable from the thrill which I feel when I enter the Sagrestia Nuova of the Capelle Medicee and see before me the austere beauty of the four statues representing Day, Night, Evening, and Dawn which Michelangelo has set over the tombs of Guiliano de Medici and Lorenzo de Medici. Ramanujan's discovery of the mock theta functions makes it obvious that his skill and ingenuity did not desert him at the oncoming of his untimely end. As much as any of his earlier work, the mock theta functions are an achievement sucient to cause his name to be held in lasting remembrance"_

To me, it's interesting that a community where fairly easy to build web- applications are called transformative and disruptive also has two out of thirteen comments critical of Ramanujam's impact.

<comment><USER14> Being critical of the article is not the same as being critical of Ramanujan's impact. So, there isn't a need to down vote.

I am genuinely interested in knowing what Ramanujan did to "transform and reshape" 20th century mathematics.

<comment><USER15> I was upset by this statement which assumes a priori that the article must be overstating his impact.

 _Maybe it is just me, but overstating anyone's impact to this extent is disrespectful to that person._

I don't claim that the article is not overstating Ramanujam's impact, but you seemed to be arguing that there's no way this could be true, so the article _must be_ overstating his impact. Given that even you don't claim to have the background required to objectively evaluate Ramanujam's impact, this seemed to be a prejudiced comment.

In retrospect, I might have been a bit trigger-happy with the downvote. Sorry about that.

</comment></comment></comment></comment><comment><USER16> I believe there are at least several previouslies for this guy.</comment>


Y Combinator Will Now Accept Late Applications - <AUTHOR> http://ycombinator.posterous.com/y-combinator-will-now-accept-late-application <comment><USER3> Does this also mean that applications that do not get accepted under the initial deadline can re-apply with a new idea? If so, will the submission process be able to recognize this as "new" so it is given a fresh review by YC rather than viewing it as an "update" to an existing application?

<comment><AUTHOR> Hrm, I should have known you lot would think of unanticipated ways to use this option. That wasn't the original intention, and if everyone did that we'd be so swamped with repeat applications that we probably wouldn't be able to read them all. How about if I add a feature for people to update an application that was submitted by the deadline, and we'll make a pass through those too?

<comment><USER3> Sounds like another time consuming commitment on top of your ever growing list of commitments. How far do you scale?

<comment><AUTHOR> Actually all I have to do is change the software. Harj is going to monitor the late applications.

<http://ycombinator.posterous.com/welcome-harj>

<comment><USER4> To better get the "seriously, apply on time if at all possible" idea across, I'd emphasize that harj is monitoring late apps.

"If you apply on time, all 4 YC partners will definitely read your application. If you apply late, our employee will skim through it to see if it looks promising, and only if he thinks it does will any of us even see it."

<comment><USER5> For some that might actually be an advantage.

Think: you _know_ who will initially vet your application (as opposed to the normal process) so you can think how to hook him in. And if you successfully do so your now "recommended" to one of the partners.

Could be an advantage for a smart thinking founder :)

<comment><USER6> pg could correct me on this if i'm wrong, but i get the impression that harj is already vetting all the applications.

<comment><USER7> no, everyone on the team reviews the apps. i'm just contacting groups that seem interesting but i want to have some more information about. if you applied early you had a higher chance of being contacted, which is an advantage since you have an extra opportunity to impress.

<comment><USER8> I'm just wondering, if we don't get contacted and we applied early, is that a bad sign?

<comment><USER7> no don't read anything into it, there are only so many applicants I can reach out to. there's almost certainly far more that I haven't looked at yet than ones I've looked at and decided not to contact.

<comment><USER9> Whew. I got really upset when I heard another group that has my same idea was contacted by you and I wasnt. Thanks for clarifying.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I think what you've really done here is change the deadline from March 3rd to "right before the program starts". Sure, applying earlier is better than later, but that was already the case.

<comment><AUTHOR> I wouldn't want people to think that. Actually it is going to be much harder to get a late application accepted. We'll dutifully process all the regular applications in batch as usual, whereas we probably won't look that closely at late applications unless we see something exceptional.

</comment></comment><comment><USER11> Does this mean that by pushing the deadline earlier they: \- Didn't get enough applications? \- Didn't get enough quality applications?

Or am I reading too much into this?

<comment><AUTHOR> No, the number of applications doesn't seem to have decreased. We decided to do this back in Jan when we moved the application deadline earlier, because there's now a 3 month gap between the application deadline and when the cycle starts, and we know from experience that when people start startups, they don't always know they're going to 3 months beforehand.

<comment><USER12> Why not just have more than two cycles per year? Is it because there's a lot of work that has to be done during off-seasons, or is it arbitrary?

<comment><AUTHOR> We've thought about it. We may one day. But there is some stuff that usually happens between cycles, like organizing Startup School. Plus we need some time off. During the YC cycle we are very busy, like the startups themselves are, because time is so compressed.

</comment></comment></comment></comment><comment><USER13> I assume that the bar will be (much?) higher for late applicants. I think this is a way to make sure that YC doesn't miss out on the next Facebook. When the bulk of returns are made on the outliers, this makes sense.

</comment><comment><USER14> It's also curious that the iPad application RFS was released 3 days ago and presented an extremely tight deadline on applying with that in mind. Now there is plenty of time to apply if you've got the iPad in mind for YComb.

</comment><comment><USER15> Someone take this idea and apply: iPad Software that mums can use to do some elementary diagnoses on the various illnesses that their children can get, get to talk to other people about it and recommend doctors/medicines.

Or how about this: iPad software that contains the instruction manuals for like every electronic device ever (TVs etc).

Or the simplest, yet best of all: iPad software that, after you weigh yourself, you tap once on it to say how much you weigh. Over the course of the day, it tells you when to stop eating to reduce weight. After a meal, you tap what you just ate (chicken wings) and it adds to your calories.

If I were applying for YC I'd go for that 3rd one. Feel free to use these ideas, I'm not going to make them myself.

<comment><USER16> Why can't these be webapps? Are there any advantages in making these as native iPad apps?

<comment><USER17> Not everyone lives at their computer. It's more convienent to tap in what you eat at the kitchen table with the iPad rather than walk to a computer.

<comment><USER18> HTML 5 is supported on the iPad, you can install an application that looks pretty native (including local storage) that doesn't have to go through the crazy Apple approval process. Neven Mrgan made a game in HTML5 that illustrates how well this works: <http://mrgan.tumblr.com/post/257187093/pie- guy>

</comment></comment></comment></comment><comment><USER19> Very interesting, Paul. Hope the experiment works.

Staging all the funding opps is a great idea, but as you point out, it sucks to have to wait six months. I hope this makes for a good compromise for everybody concerned.

</comment><comment><USER20> This is a pretty interesting development. I'm wondering how YC will handle rejections now - when you know you want to interview someone, that's pretty straightforward. There are probably plenty of definite "no"s, too. Not having the hard deadline will surely tempt you into watching the progress of startups that you're undecided on for a while before making a decision, a bit like the "big" VC courting ritual. (though considering PG's past comments on the VC funding process, I'm assuming it won't be as frustrating for the applicants)

<comment><AUTHOR> We're not organized enough to watch the progress of so many applicants. If we're slow to respond it will probably just be old fashioned slackness.

</comment></comment><comment><USER21> I want a smart alarm clock that knows that where I've got to be in the morning and wakes me up earlier if the roads are blocked or there are major delays on the train.

<comment><USER22> <http://getzazu.com> :-)

<comment><USER23> That sounds like a great app. I'd definitely use it!

</comment></comment></comment><comment><USER24> I wish I would've seen that the application window was opened sooner, so I wouldn't be one of those last-minute applications. That's what I get for thinking the HN front page would keep me up to date on YC activities ;). I'll be subscribing to the YC blog RSS feed now...

</comment><comment><USER25> Is there a correlation between number of follow-up questions and on-site interviews? Is there a time window (just before/just after the deadline) where more follow-up questions are typically asked?

edit - <USER2>

</comment><comment><USER26> Does the 13th of March still stand for all those who made the deadline?

<comment><AUTHOR> Yes.

<comment><USER26> Cool, thanks PG... roll on next Saturday :)

</comment></comment></comment><comment><USER27> I really wanted to apply for this, but the project I'm working on doesn't really require any funding at this point. Also, I'm based in NYC.

<comment><USER28> If you have an Internet-based business and don't have any particular emphasis on your location ("helps you navigate the local subway"), then "based in NYC" means very little; you could always relocate for at least a summer.

As for "doesn't really require any funding", the money represents the least important reason to work with Y Combinator. We didn't apply because we thought $17k would make the difference between our business succeeding or failing. We applied because we want the business guidance, connections, meetings, resources, investor days, and the opportunity to work on our project full-time distraction-free.

So, really, apply. :)</comment></comment>


A.I. is a big fat lie - <AUTHOR> https://bigthink.com/technology-innovation/why-a-i-is-a-big-fat-lie?rebelltitem=8#rebelltitem8 <comment><USER2> Incredibly, this was an even dumber post than I expected. For its length it's hard to pinpoint any wrong argument made, because AFAICT it's mostly just a semicoherent stream of unjustified assertions and associations, but it does sometimes try, as per

> Oh yeah, and the second problem with the AI doomsday theory is that it's > ludicrous. AI is so smart it's gonna kill everyone by accident? Really > really stupid superintelligence? That sounds like a contradiction.

Bill Gates must be feeling like a right idiot now, huh?

Anyway, there was one line I did find entertaining in its inanity (the rest, AFAICT, has zero value),

> Intelligence isn't a Platonic ideal that exists separately from humans, > waiting to be discovered.

<comment><USER3> >mostly just a semicoherent stream of unjustified assertions and associations

Sounds a lot like AI

</comment></comment><comment><USER4> Please don't hijack my browser's back-button to inflate your viewing stats.

</comment><comment><USER5> Alert: Crazy page hijacks your back button with page loads. Getting back here was a pain. Why do websites do this?

<comment><USER6> Browsers shouldn't allow it - they're the ones in the position to fix this.

</comment></comment><comment><USER7> I am actually quite surprised to see this kind of article on hn. Well, I am even more surprised because it's getting upvotes.

 __Please get a copy of Russel-Norvig 's A.I. text and read at least some part of it before clicking that link.

</comment><comment><USER8> Very good article. AI is a branding exercise, and most people saying that we have general purpose intelligence are not experts in it. Call it for what it is, machine learning.

</comment><comment><USER9> I now think of AI as basically deep learning based ML and nothing else. But it's not entirely right to say it's not "intelligent". What is "intelligent"? Is a mouse intelligent? It can't reason, speak, read, or write, yet I'd say it is intelligent because it can respond to the environment in a way which on average maximizes its survival. This is not that different to e.g. a RL system responding to its environment in a way that will maximize reward. Then why would a mouse be "intelligent", and RL system not "intelligent"?

<comment><USER10> _I now think of AI as basically deep learning based ML and nothing else._

That strikes me as stunningly bizarre position to take. Why do you think that way?

<comment><USER11> Could you elaborate why you find it so bizarre so the gp and other readers can find value in this thread? Or is this rhetorical?

<comment><USER10> I find it bizarre because deep learning is only one (arguably fairly small) subset of the entire field of AI. AI is a HUGE field, spanning an incredible myriad of techniques and approaches.

Deep Learning may be the one receiving the most "hype" at the moment, but there is - so far as I can tell - no sense in which anyone connected to AI considers "AI" and "deep learning" synonymous.

<comment><USER9> Which "other", non DL areas of AI are in use at the moment? Which haven't yet been completely blown out of the water by DL counterparts? NLU, translation, sentiment analysis, image classification/segmentation, object detection, instance segmentation, speech recognition, speech synthesis, sentence generation, NER, the list goes on and on. In all of these ANNs completely destroy previous approaches, it's not even close.

<comment><USER10> I am not saying that DL isn't very successful and very popular. I'm just saying that it isn't, all by itself, the entirety of the field of AI. I'm not arguing anything about popularity and I definitely don't have usage stats, since approximately nobody is going to publish exactly what stack they're using if they get a competitive advantage from it.

But from a research perspective, it's not hard to find papers on arXiv showing people continuing to research other aspects of AI.

It's also not hard to find papers from people suggesting that the DL train may be running out of steam in the near future. See, for example,

[https://www.technologyreview.com/s/612768/we- analyzed-16625-...](https://www.technologyreview.com/s/612768/we- analyzed-16625-papers-to-figure-out-where-ai-is-headed-next/)

</comment></comment></comment></comment></comment></comment><comment><USER12> bigthink.com's back button is a big fat lie

</comment><comment><USER13> > _The concept of "intelligence" is entirely subjective and intrinsically > human._

...and the concept of "flying" is intrinsically avian.</comment>


My students wrote haikus about compilers - <AUTHOR> https://twitter.com/lorisdanto/status/993929000237060101 <comment><USER2> Fun little trivia: aside from the 5-7-5 syllable structure, there are two other qualities that typically make a haiku a haiku: kireji (a word that marks a separation between two "verses, which works somewhat like punctuation), and kigo (a word that makes a seasonal reference)

As such, not all 5-7-5 poems are haikus. One of the more well-known instance of this are senryus, which are generally about humans as opposed to nature.

A lot of the poems in that thread actually look more like senryu than haiku (which I feel greatly adds to the entertainment value!)</comment>


Show HN: HTML5 online game for mobile + desktop - Free Rider HD - <AUTHOR> http://www.freeriderhd.com/

<comment><AUTHOR> The site was built using backbone.js and the game is mainly javascript with Createjs for sound and the odd sprite. We targeted both mobile devices and desktop with this release. Works really well on modern browsers on all devices.

Let me know if you have any questions or feedback!</comment>


Why Tim Cook Is Steve Ballmer and Why He Still Has His Job at Apple (2016) - <AUTHOR> https://steveblank.com/2016/10/24/why-tim-cook-is-steve-ballmer-and-why-he-still-has-his-job-at-apple/ <comment><USER2> >The problem is that a supply chain CEO who lacks a passion for products and has yet to articulate a personal vision of where to Apple will go is ill equipped to make the right organizational, business model and product bets to bring those to market.

The author makes the argument that because Tim Cook does not demo new products, Apple is incapable of innovating, and is just cruising on the goodwill of the brand.

What a crock. Tim Cook is no Steve Jobs, and Apple is most definitely different without Steve. But, under Cook the following has happened: Apple Watch, AirPods, HomePod, iPhone X, ARKit, Siri Shortcuts, FaceID, iMac Pro. Everything in that list might not perfectly suit every user, but the argument "Without Steve Apple can't innovate!" totally falls over.

Steve gets a lot of attention for his innate sixth sense for product, his masterful presentations, and more. But, I think this era of Apple proves that he was _also_ great at creating a culture and ecosystem that can perpetuate without his presence.

<comment><USER3> Depends on your definition of innovate I suppose. I can't quite articulate why but I have stopped feeling excited about apple events or product launches. It never feels like there's some new capability, only improvements on previous capabilities. There's not really been a new exciting product line in a bit, I don't think?

<comment><USER4> I agree with you, but most Apple launch events even under Steve Jobs were boring incremental affairs.

Seems to me that the entire legacy of Jobs at Apple is colored by one launch event: the iPhone, which was probably one of the top 5 best demos in the history of technology. It was a really great presentation in the moment, and of course now we can recognize it as an enormous pivot point in the industry, and arguably in human society. But most Steve Jobs Apple events weren't like that.

The iPod, iPad, and Macbook Air are good examples or products that have had a big impact (and done big sales), but were underwhelming when they launched. I would put the Apple Watch in that category. I think its long-term impact is underappreciated right now.

<comment><USER3> Oh I know, I'm the person that chose a helio ocean over the original iPhone because it came with Yahoo instant messenger out of the box and had a physical keyboard. Maybe there's something more there - it's it just doesn't make me want to run off and get a thing.

</comment></comment></comment></comment><comment><USER5> This is old and nonsense. It highlights correctly the upcoming AI revolution but it misses entirely the point that Apple is innovating in this space - processing on the phone rather than within Google or Amazon verse.

In other words Apple is simultaneously building an on phone AI while at the same time retaining it's mission of privacy for the user.

I'll take the little hit on functionality in exchange for a massive upgrade in privacy.

So in the end Tim Cook is carrying on the customer and privacy centric DNA that Jobs imbued into Apple using innovation that other companies just dream about.

<comment><USER6> It's not just about privacy. Having to go over the Net to process simple voice commands makes Siri almost useless. After a few times of giving a command to Siri, only to be confronted with a long delay or an outright error because you're driving, or in an elevator, or under a bridge, or whatever, it stops being a tool you reach for instinctively.

<comment><USER7> I think the big companies got the edge processing memo, however Apple certainly has a good lead. It will be interesting to see how it plays out.

</comment></comment></comment><comment><USER8> I remember reading this in 2016 during 'peak skepticism' on whether or not Tim Cook could ever fill the shoes of Steve Jobs and the author, Steve Blank, makes a lot of really good points (mostly how you can see Ballmer as an excellent CEO if you set the metrics to do so).

It reminded me once again of how what you believe gives color to the narrative you're trying to communicate. More importantly, what the _reader_ believes also colors the narrative and sometimes it wasn't exactly what the author intended.

I resonate strongly with the notion that there are good times and 'late' times to innovate. I also agree strongly that it takes someone who is taking a wider and longer view of the situation to be good a calling the shots on that. But it is also quite important to be able to turn those opportunities into products and learn from that effort to really ride the 'change' (what ever it is) into a leadership and profitable position.

When I read this in 2016 I was not convinced that "AI" was the big innovation it was being hyped to be, however since that time I've come to a different conclusion. While I still think "AI" is hype, I see the ability to use machine learning algorithms to take the digital exhaust of a system and post process it into an algorithm for anticipating the outputs of that process to be quite powerful, and is having an impact on a lot of systems today.

I see the work that Apple has done to improve the efficiency of the A12X SoC, which was announced today, for executing algorithms based on machine learning to be pretty innovative.

In 2016 machine learning was still 'party trick' status as far as I was concerned but here in 2018 it is looking more and more like 'core thing all computer systems will do'.

As a result I'm willing to give Tim Cook more innovator points than Steve Blank was willing to do back in 2016.

(misc: I love how the user handle 'IBM' posted this)

<comment><USER9> I see the ability to use machine learning algorithms to take the digital exhaust of a system and post process it into an algorithm for anticipating the outputs of that process to be quite powerful, and is having an impact on a lot of systems today.

Could you elaborate on that ? What does that mean ?

<comment><USER8> Sure, here is a trivial example of the concept. Let's say you have a system of comments like you do here on HN with upvotes and users and topics. Let's pretend that system just runs "open loop" as it were and things are posted and up voted and down voted and commented on.

The operation of the system leaves behind a trail of its activity (some explicit like new comments, some implicit like karma changes). Collectively this data set is the "exhaust" or "wake" (in the sense of a boat wake that shows up when a boat passes by) of the system running.

A machine learning system can process that data set and make predictions about future behavior of the system. People do this all the time to predict things like "when is the best time to post" "what happens when something makes the front page" etc. Internally predictions can be made about vote fraud or spam or what have you.

You can use machine learning in an active feedback mode where its predictive outputs can then be tied to administrative controls to achieve a desired improvement.

Let's say you wanted to remove the 'front page bias' of articles posted at a particular time. If you have a tool for boosting or demoting stories in a fairly fine grained way, and you can deduce the natural tendency of stories based on submission time to reach the front page, you can have your code 'boost' stories that are submitted during "weak" times and 'attenuate' stories that are submitted during "strong" times. The effect on the system is surfacing a wider variety of stories and a better user experience (for readers at least).

At the meta level, this is no different than control system theory with an error amplifier and a summation amplifier tied into a feedback loop. But Machine Learning brings with it the ability to characterize, and base feedback on, variables that aren't really visible to people nor completely independent.

Coding the variables, their interrelationships and their impact on the output is a time consuming and non-economic thing to do, so it isn't done. But with machine learning, the ability to do that analysis algorithmically and just train for the outputs of interest, is quite inexpensive.

Makes it a very powerful hammer in everything from language translation to truck load planning to autonomous driving.

</comment></comment></comment><comment><USER10> This is BS.

Ballmer was a worst thing that could happen to any company of a Microsoft scale.

Under his guidance Microsoft stock stalled in a trading range for more than a decade, he was always late to any big game and had that "me too!" laggard strategy for the biggest innovations (cloud, search, mobile) thinking he can buy his way ahead to compensate for the lack of vision and boneheadedness.

It was funny watching MSFT stock to suddenly pop up 8-10% at a slightest rumor of Bill Gates returning.

Tim Cook is nothing like that. He may not be Steve Jobs, but he is not screwing AAPL either.

<comment><USER11> Looking at stock price is a poor indicator of performance, it's too tied to market sentiment. Remember when Elon Musk smoked that joint and Tesla stock took a 10% hit? It's all nonsense.

Look at revenue, look at earnings per share. Steady growth for Ballmer across his tenure. He did a good job.

<comment><USER10> As a shareholder (disclaimer: i am not) I'd rather have stock rising with bad numbers than stock stalled with good numbers.

Having said that, my hands are itching to (disclaimer: i am not financial adviser) buy leap puts on TSLA.

<comment><USER11> That's because you'd rather reap the benefits of market irrationality than solid business fundamentals. Admittedly, that attitude has worked well in the past _ahem_ fifteen years.

The thing with irrationality is that it's hard to predict. The people that make the right bet get hailed as genius visionaries, the losers are simply forgotten. A good CEO is not a gambler, they're consistent and they can execute, but alas that's not good material to dramatize in the media.

</comment></comment></comment></comment><comment><USER11> _" In 2014, Microsoft finally announced that Ballmer would retire, and in early 2014, Satya Nadella took charge. Nadella got Microsoft organized around mobile and the cloud (Azure), freed the Office and Azure teams from Windows, killed the phone business and got a major release of Windows out without the usual trauma. And is moving the company into augmented reality and conversational AI."_

Okay, but:

\- Microsoft is still irrelevant on mobile

\- Azure already was four years old when Nadella took charge

\- Windows 10 was not actually well-received

\- Microsoft is irrelevant in Augmented Reality and conversational AI, which are already by themselves not that relevant

Microsoft can't be Apple because Microsoft is uncool. It _always_ will be uncool. It can't do the transformation to a fashion brand like Apple.

I'll make another prediction: The days of "revolutionary" consumer products are over. People won't be living in VR/AR, they'll keep watching stuff on their phone/tablets/TVs. There will be more innovation in B2B and Microsoft is actually in a better position here in the long run.

<comment><USER12> Prediction noted.

Per AR, I suppose hololens doesn't count? It sure felt like a step in the right direction when I used it.

Honestly, the least cool thing MSFT makes is Sharepoint. They need to just abandon that line of thinking, and think of something else. Compared to the rest of new MSFT, that whole product needs a drastic upgrade, not just the Teams UI. They missed an opportunity in workplace tech when they bought Yammer and Skype and just sat on them. Maybe they'll get another shot.

<comment><USER11> Hololens, Magic Leap, Google Glass, all of these will not become "must have" consumer devices.

Reality is already augmented. Need more information than what your bare eyes can see? Pull out your phone. You don't need it overlaid unto your vision. That's a gimmick.

<comment><USER12> Funny - I once gave a presentation where I made the claim that the most common Augmented Reality app used was spoken car navigation. Augmented Reality certainly doesn't augment only your eyes. I also think the Apple Watch haptic system is underutilized as a augmentation device. Total agreement.

</comment></comment></comment></comment><comment><USER13> > _" But Google and Amazon are betting that the next of wave of computing > products will be AI-directed services"_

That seems like a stretch of a conclusion. Amazon has been excelling at cutting out the middleman and reducing costs that are unnecessary in an internet-centric age. Alexa feels like an experiment to see if they can make that even simpler, while cashing in on the IoT fad.

Slight nit pick, using underline for emphasis doesn't work well on the web, it just makes it look like a link.

</comment><comment><USER14> Discussed at the time: [https://news.ycombinator.com/item?id=12778470](https://news.ycombinator.com/item?id=12778470)

</comment><comment><USER15> Steve Blank is amazing at short form business writing. Very insightful.

Of course the iPhone will continue to sell well in the short term, but the trillion dollar market cap is a consequence of what Steve jobs was doing ten years ago. If Steve Jobs were alive now, he'd be working on something totally different. We'all never know!

<comment><USER16> It's understood that, to paraphrase Steve, life must goes and make way for the new, but it really bums me out that we'll never know what new thing he might have done.

<comment><USER15> We can speculate. In the device space, the trend seems to be special purpose devices - vs a single device that's only OK at everything. How exactly that would have been carried out by Steve, we'll never know.

</comment></comment></comment><comment><AUTHOR> Counterpoint: "We're thrilled Apple Watch has become an essential part of people's lives," said Jeff Williams, Apple's chief operating officer. "The completely redesigned Apple Watch Series 4 continues to be an indispensable communication and fitness companion, and now with the addition of groundbreaking features, like fall detection and the first-ever ECG app offered directly to consumers, it also becomes an intelligent guardian for your health."

[https://www.apple.com/newsroom/2018/09/redesigned-apple- watc...](https://www.apple.com/newsroom/2018/09/redesigned-apple-watch- series-4-revolutionizes-communication-fitness-and-health/)

<comment><USER17> Only if you stretch the word "indispensable" to mean "kinda cool but completely unnecessary."

<comment><AUTHOR> In a few years doctors will be prescribing Apple Watches to patients and it will be reimbursed by health insurers. #TimeStamp

<comment><USER17> Yeah. And that's kinda cool. But I don't think it renders it "absolutely necessary; all-important; imperative; invaluable."

Antibiotics are indispensable. An EKG on your wrist is a nice-to-have.

</comment></comment></comment></comment><comment><USER18> The way I see it is that in the Tim Cook era, Apple releases good, solid products. And I buy them religiously. But they don't really make great, exciting, ground breaking products anymore (perhaps Face Id is the exception). I wasn't really waiting in anticipation for today's iPhone launch as I knew it will be a solid, well built phone, with a few incremental improvements.

</comment><comment><USER19> I don't get why Ballmer is viewed as a failure. He steadily increased revenues and income under his watch. Maybe he didn't have the "vision" thing but he was a damn good CEO if you accept that a CEO's job is to grow the company.

<comment><USER20> He was great at maximizing revenue and profit on the current thing but absolutely terrible at positioning them for the next thing. The problem in tech is that the next thing is often your cash cow 5-10 years out.

Name pretty much any major tech trend that took off during Ballmer's tenure and look at how well Microsoft was able to capitalize on it. (think MP3 players, phones, tablets, search, social, web apps, cloud services, browsers, etc). His stated strategy was 'fast follower' and we saw how well that worked out. Microsoft has become IBM in that they are mostly legacy tech now and virtually no startups use their stuff in a significant way which doesn't bode well for where they'll be when the windows/office gravy train stops rolling.

Their new CEO has been working hard to fix things (they're no longer a complete embarassment with browsers and cloud services, for example) but Ballmer left them in a pretty inexcusable position given the resources he had at his disposal.

I actually think the Cook/Ballmer comparison is apropos as I see a lot of similarities going on. It's not about where the company is today, it's where the company is likely to be 10 years from now.

<comment><USER19> I think that's the destiny of any large corporation. I don't feel very inspired by Google or Apple either these days. Amazon is starting to suck too.

</comment></comment></comment><comment><USER21> The stock is up around 100% since he posted this fwiw.

<comment><USER22> If you ignore the dot com bubble around 2000, Microsoft's stock rose quite a bit under Ballmer, didn't it?

<comment><USER23> Eh? It had a peak in 2008 but stayed at $25 the whole time.

<comment><USER22> He left in 2014 right? I guess only the last few years it started going up</comment></comment></comment></comment>


Joe Armstrong Interviews Alan Kay [video] - <AUTHOR> https://www.youtube.com/watch?v=fhOHn9TClXY <comment><USER2> Great stuff as usual: inverse vandalism, confusing means to an end with an end, system programmers are high priests of a low cult, if you're not failing 90% of the time then you're not trying hard enough, science is a set of heuristics to get around buggy brains, etc.

<comment><USER3> Agreed. Just finished watching this. It's definitely worth spending an hour of your morning on listening to what these two giants (mostly Kay) have to say.

<comment><USER4> I love his work, and the ones that worked with him.

After learning Smalltalk, Oberon and Modula-3, I started a journey into the world of Xerox PARC and their influences into ETHZ and DEC research labs and became amazed how computing could have looked like already by the mid-90's.

To the point using UNIX stopped being fun, I wanted one of those environments, not a PDP-11 replica.

<comment><USER5> Have You used Pharo Smalltalk?

<comment><USER4> Not really, just installed it a few times to play around with it.

I actually used Smalltalk before Java was announced to the world.

We were using Smalltalk/V and VisualWorks for some university classes.

Luckily our university library had all the Smalltalk canonical books available and I spent quite a few long nights reading them.

</comment></comment></comment></comment></comment><comment><USER6> "Hello Joe" \- Awesome interview opening joke [0] :)

[0] - [https://youtu.be/xrIjfIjssLE](https://youtu.be/xrIjfIjssLE)

<comment><USER7> I've just seen the movie after your comments, it was interesting to see that they use emacs (without syntax highlighting, it appears..). OT, but how's vim for coding in erlang, anyone?

<comment><USER8> > it was interesting to see that they use emacs

How so? It's a solid piece of software which has been around since forever (since before Ctrl-C and Ctrl-V conventions ever existed). We're all programmers, and Emacs is all about being a programmer's editor.

If you want to see an Emacs-user out-hipster every single web-developer who thought he was cool when he used HTML for his presentations instead of Powerpoint/Keynote... Then watch this: [https://www.youtube.com/watch?v=TMoPuv- xXMM](https://www.youtube.com/watch?v=TMoPuv-xXMM)

It's incredibly contrived, and incredibly nerdy, yet this, to me, encapsulates so much about what Emacs is. And I love it :)

<comment><USER9> Wasting time in such contrived approaches that ultimately gain you nothing is part of what Alan Kay talks about.

Programmers have the devious hobby of tackling complexity of their own doing. It isn't praiseworthy, or something to be proud about.

</comment></comment></comment></comment><comment><USER10> Can someone explain to me Alan Kay's problem with monads in functional programming? He attacks the monad concept several times in this talk rather cryptically.

<comment><USER11> Monads are the way to hide the fact that state change. Basically they allow you to abstract away the concept of time.

Alan Kay seems to push more in the direction of data as CRDTs or fully vector clocked, so that time is just an additional way to referenced some data.

It is close to the idea of separating time from space or to combine them in two.

In CS, we tend to consider a static vision of the world, and a function applied to it. When the truth is that the world exist at different time and is wildly different at each of this time. So a piece of data would be defined by its place in memory and the clock time (vector clock) it was in that memory. Closer to what CRDTs does in a way.

<comment><USER12> What did he mean when mentioning McCarthy having solved that "change of state" problem?

<comment><USER13> Don't know his or your context, but McCarthy is the creator of Lisp, so in a way he's one of the pioneers of functional programming (there were of course other mathematicians inventing the foundations). Which is a way to combine programs from small building blocks that are just functions knowing no global state - they always return the same answer given the same arguments.

Contrast this to procedural or object oriented programming where usually the parts know a lot more about the context (state) than they really need to know. This can lead to implicit (and hard to discover) assumptions about the state of the world that are broken later on when some parts are changed, leading to bugs.

The way this works is by combining functions with (higher order) functions. For example, chain a function that gets A and returns B with a function that gets B and returns C. This is done without ever speaking of concrete inputs - reducing unnecessary knowledge should lead to fewer bugs. (Whether that's a more practical approach is another question).

<comment><USER14> Lisp is built on OOP: all sorts of objects that have state and functions operating on it. For instance, an I/O stream, needed to do the "read" and "print" parts of REPL, is a stateful object.

Lisp is not only where functional programming originated, but also object- based programming leading to OOP. Lisp was the first language which had first- class objects: encapsulated identities operated upon by functions, and having a type.

For instance, an object of CONS type could only be accessed by the "getter" functions CAR and CDR which take a reference to the object, and by the "setters" RPLACA an RPLACD.

Meanwhile, the other higher level programming language in existence, Fortran, had just procedures acting on global variables.

<comment><USER15> I was interested to notice that Steele and Sussman describe Lisp as "an object-oriented language" on page 2 of this 1979 paper: [https://dspace.mit.edu/bitstream/handle/1721.1/5731/AIM-514....](https://dspace.mit.edu/bitstream/handle/1721.1/5731/AIM-514.pdf).

There are other places in the Lambda papers and whatnot where they talk about objects, but I don't recall seeing that exact phrase. Of course, just what they meant by it is another question.

</comment></comment></comment></comment></comment></comment><comment><USER16> I sense a great disturbance in the network... as if a thousand programmers squeed out in joy and then fell silent.

<comment><USER17> MIT's PDF of the Minsky book was given the HN hug of death for a while.

<comment><USER18> I can't find that book anywhere in India. Is it available on public domain?

</comment></comment></comment><comment> sea-shore What happens at 38:25? Joe: "This algebra you've made it's a Prolog program you just move a few brackets". And I went "oh my god". From that moment on I was not interested in Smalltalk anymore. Alan: Yeah, nether was I! But...

</comment><comment><USER19> It's so fun and humanising to see Joe Armstrong geek out in the interview

<comment><USER20> I had the privilege to hang out with him at Abstractions this fall, where he gave the keynote. He was just holding court in the commons, shooting the breeze about halfwit management, project estimation, Jira tickets, and everything that hasn't changed since Brooks.

Then he asked which session we were going to next, so we all hit one about concurrency issues. It was jammed and came in late to stand in the back. The presenter bemoaned locking and inconsistency and got to solutions. He started with a slide on immutability and lightweight functional actors in Erlang, having solved it 30 years ago, and pointed out Joe, who got a roomful of cheers and laughs and validation for his work, in person.

It was all very human.

History Bonus - Armstrong chatting with Stallman: [http://imgur.com/a/ETkhZ](http://imgur.com/a/ETkhZ)

</comment></comment><comment><USER21> I've never seen an interview with Alan Kay that I did not find fascinating.

I like Joe Armstrong, and he's brilliant of course, but he interrupted too much in places. But it seemed to be out of enthusiasm, so I can't really be bothered.

</comment><comment><USER22> Their message is essentially: you are all in cults, learn old stuff and start using actors and message passing. And not CSP, as Alan Kay puts it - it's too rigid and gear like.

<comment><USER23> What I got from it: \- model time explicitly \- build computer systems to work at a galactic scale \- know that reality is distinct from your mental models ("the map is not the territory") and you will see the present more clearly. The essence of comedy, science, and art involves changing the models through which we view the world.</comment></comment>