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.
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!
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.
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.)
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.)
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).
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.
There are two distinct classes of work that are called "busy work". The first is heinous, the second is often loathed, but great.
There's real busywork: work assigned just to take your time, create something to grade. That's crap, it should go away. (And in my collegiate experience, largely has.)
Then there's "impractical stuff": people often malign work they do that doesn't directly apply to the real world, but I think that it is often worthwhile. Consider MIT's famed 6.001: few of its students ever use Scheme, or any functional language, professionally, but the work in Scheme is never the less worthwhile. (Disclosure, I love functional languages.)
The question is whether that is a problem. I for one don't really think that traditional secondary ed is the right place for teaching tech. Tech moves too fast.
We need to fix the school systems to more effectively cover their domain: sciences and humanities. Technology, however, is best learned as we learn it: free-form, self-directed, online. There is no need to merge that into curricula.
(Note, there's a difference between technology and CS: CS is algorithmics, theory; it's a branch of math, really. Technology is applied: websites, programming languages, things of this sort. Any curricular approach to technology is doomed to constantly lag the tech education available extracurricularly.)
"public schools teach in a certain way and change very slowly."
I can certainly agree with you about that. IB has been around for 30 years, and just got any foothold in American 10 years ago. I was lucky enough to go to one of the early public IB schools.
I think we're considering fundamentally different paradigms. In my education, there were effectively no assignments, and certainly none that could be completed online. Consider my senior English or Latin classes: the only "assignments" were to read, and occasionally to write, generally on a self-generated topic.
In class, similarly, there was very little pre-planned content. In Latin, we simply went through the previous night's translation, line by line, with discussion breaking out whenever someone was perplexed or intrigued by something.
In English, there was perhaps a bit more planned content, but not much: the teacher would have something to talk about, and start out talking about it, but within 5-10 minutes we would have moved out of the prepared material into our own discussion.
Now, in the sciences, yes, there is definite content, and there, surely, there would be value in a central content store, but it would need to be developed outside the institutional structure, or your 2) would rapidly become 1). (Yes, I'm a bit jaded: I went to an amazing program, but it was housed at a horribly administered school.)
I have to disagree with you, and vehemently. Centralization is exactly the problem.
I was lucky enough to be educated in an International Baccalaureate program that stressed interaction between students and teachers, convivial debate rather than lecture, and analytic essays instead of rote recall. The strength of the program came from its decentralization, relying on good teachers rather than central planning. The teachers and students worked together, as collaborators.
Technology is a wonderful thing, but in education, it generally gets in the way of the greatest teacher: intellectual discourse. A teacher and 10-20 students talking with each other[1] is an optimal model for learning. Educational technology generally takes the personal interaction out of things, and certainly makes the process less engaging.[2]
[1] Very different from a teacher talking to, or at, students.
[2] I'm talking about secondary education. For primary ed, technology can be very useful. But that is a very different environment.
I don't find it entirely impossible. After Startup School I talked to Adam D'Angelo about spam on facebook (largely because I'd never seen any); he said that there is a lot of spam activity, but that internal safeguards prevent most of it from ever being visible. If the researchers were using internal, pre-filter datasets, their claim is reasonable.
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.)