On that note, you might take a glance at the lightweight concurrency paper; it proposes a new concurrency runtime for GHC, basically moving most of the implementation into Haskell, with just a thin layer of primitives in the RTS. Interestingly, those primitives don't include locks, but instead a very minimal transactional memory.
The extra speed would have been nice yesterday, while the emails were going out. I doubt I was the only one who noticed the site slow down as we all refreshed compulsively. :-)
Doing it in Lisp would be exceedingly tricky, since, while most dialects have some sort of laziness construction, it's explicit, so you don't get the automatic evaluation order reduction that happens in Haskell.
(NB: Unless I'm wrong. I've never tried it, it's possible that there's some nice trick for it that just isn't occuring to me.)
It's unlikely that the situation is any different in Arc; Haskell is just fundamentally different from other languages (other than Clean), in that lazy evaluation is the default behavior. In Lisp you can ask to create a thunk and then ask to evaluate it later; in Haskell, everything is a thunk, and the compiler/runtime evaluates it when needed.
I've got a Sieve script running on my IMAP server, set to redirect to my phone any message from an address containing any of the strings "pg@", "tlb@", "rtm@", "x@", or
"ycombinator".
I also have my email here set to a subaddress, which is also included in the above forward. Points to anyone who understands Sieve semantics well enough to predict whether the message will get matched and redirected twice.
Hold up Hold up! The data will travel straight to Seattle first before getting re-routed! So even if you guys are 100ms away ... the data pipes are facing in my direction :-D
I've got you beat. I built a robot last night (runs on Lisp and parts from Radio Shack) that constantly monitors the internet, my phone lines and packets going out of YC's office. As soon as my robot picks up a signal of interest it beams the messages directly to my HUD that I've been wearing ever since I sent my app in.
Hurray for over-engineered solutions! While you're at it, though, you might as well just have your robot slip inside YC and grab a copy of Arc--then it wouldn't just be Lisp, it would be Hundred Year Lisp!
Good luck getting that degree accredited.[0] You've entirely elided the fundamental aspect of education: education. A college degree is not supposed to just be a certification that you are competent over a certain domain of facts, but rather an indication that you have spent 3-4 years thinking, applying yourself, and growing intellectually.
While autodidactism is certainly laudable, there is value in a corporate educational setting, namely the value of intellectual interaction. College is not so much about learning a set of data, but learning how to learn. (For the ultimate example, consider the Ph.D., a degree meant only to teach you to do research, and requiring legitimate research to attain it.)
Now, I'll admit, I was educated in a liberal arts[1] high school, and am currently pursuing a couple of liberal arts degrees. That is both why and because I believe education is about thinking, not committing facts to memory. I eschew academic engineering because it is (at my university, at least) primarily a series of courses that certify your knowledge of yet another parcel of facts. That is useless, educationally. As technical training,[2] great, but it's not education.
Your list of "why"s implies that, substantively, you were no different at the end of college than at the beginning, modulo a group of friends, and four years aging. If that is the case, I'm terribly sorry; you managed to miss most of your education.
[0] Mea culpa: this entire comment is a bit hot-headed. You've hit a pet peeve.
[1] Before you jump to conclusions: the liberal arts include the hard sciences.
[2] In all honesty, that's what engineering school is: a vocational education in an incredibly advanced vocation. (That's not a problem, really: I share my time between my liberal arts degrees and a fine arts program, which is also vocational education, in a (imho) advanced vocation.)
"College is not so much about learning a set of data, but learning how to learn."
I've heard that a lot. My high school was basically founded around that premise, and I completely bought into it then. IMNSHO now, it's complete bullshit.
You don't learn how to learn by having someone teach you. You learn how to learn by butting your head up against a problem, reading everything you can about what other people have already done on the problem, trying different approaches until one works, and moving on to the next problem. After you've repeated this a few hundred times, you start figuring out which approaches are likely to work and which aren't.
The Ph.D is a good example. There are plenty of people that are "ABD" (All But Dissertation) - they've gone through all the coursework, been taught all that their instructors can teach them, but nobody considers them "real" Ph.Ds. Why? Because the meat of a Ph.D program is actually going out and doing original research, and someone who hasn't done the research doesn't really know how to do the research.
The point of a certification program is to decouple the act of learning from the act of judging how much has been learned. Right now, universities perform both functions, which in any other industry would be a ludicrous conflict of interest. And so we get grade inflation and colleges refusing to admit poorer students because it'll drop their U.S. News rankings.
If you look up the words education and training you will see that there are differences in definition but that all college programs contain aspects of both education and training. You are creating a false dichotomy. I can only speak of the effect an ABET engineering program had on me: it changed the way my mind works on a fundamental level. Good education of any variety tends to have that effect.
I'm waxing originalistic, but I'll spare you the argument from Latin (the relevant verb is educare), and just skip to the OED. To educate is "3. To train (any person) so as to develop the intellectual and moral powers generally." The distinction I draw is between "develop[ing] the intellectual and moral powers generally" and training a particular skill, without respect to overall intellect.
(Also note, I'm not saying that there is no such thing as an engineering education, only that many engineering programs suck at developing the mind generally. I'd still maintain that there's a fundamental difference between engineering and liberal art/science education, but that is not a discussion for this thread.)
I'm disinclined to think that this is PR motivated. The tool is pretty general, and FB has a history of open source involvement (notably, memcached, to which they contribute heavily).
Open source involvement is definitely a PR move. When was the last time the open source community took something Google open-sourced, improved upon it, and then Google used those improvements? For the most part, these open-sourcing arrangements from big companies turn out to be one-sided, and so they're essentially buying good will in the hacker community. In Facebook's case, it also suggests that smart people get to work on cool stuff, so it helps for recruitment, too.
I found it relatively inaccurate, but oddly, it was always very precise; i.e. when it got things wrong, it got them profoundly, diametrically wrong.
One thing I wonder is whether there is any logic to deal with confounding variables--for instance, if someone picks every photo that has a bike in it, maybe they just like bikes, and those data points should be excluded.
On the whole, though, the pairwise people have probably as good a shot at anyone at making a not-suck personality analyzer.
That's how I answered most questions. I like chocolate; I like nature; I like neater pictures over complex ones. I have no idea what all that means - may be someone does.
http://research.microsoft.com/~simonpj/papers/lw-conc/index....
(The paper is also notable for giving a complete operational semantics of the system it discusses.)
(But this stuff isn't in GHC mainline, and won't be, for now, because it needs serious performance work first.)