skysight-inc/HackerNews huggingface dataset:
I think this is another instance of the transition of efficient serial computations opposed to runtime efficient parallel computations, at least the changes look very similar to the adaptions we did to algorithms in our parallel computation lectures.

Just compare this with pushing a computation through an operation-annotated DAG: A good serial program computes a topological order and annotates each node with the result so far. This is efficient, because each node is considered as little as possible (once for the computation, once for each successor), but requires pre-computations and allows only a single thread to compute things.

The program with the least possible parallel runtime just assigns a computation unit to each and every node and during each parallel step, each unit computes the value if it is possible. This requires syncronization and does unnecessary steps, but overall, this scales pretty good with more units.

I think that is a neat coincidence :)
bash -c "`wget -O - babushka.me/up`" # If you're on Ubuntu

Needs a closing tick before the last double quote there.

This project will no doubt save a significant amount of time. Thanks for sharing your work.
Imitating desktop platforms has never been the strong point of web sites and web browsers.

If you think of the web platform in terms of how good it is at building desktop applications, then you will see many valid weaknesses, but you will completely miss many important strengths. Clay Shirky makes this point better than I can: http://www.shirky.com/writings/evolve.html

Browsers have been innovating, just not where you might be looking. One type of innovation that's totally invisible from a "competing with native apps" viewpoint but really useful in terms of the web's strengths is Cross-Origin Resource Sharing (CORS). CORS has been a draft spec for a while and is now implemented by most major browsers. With CORS and other standards it's influenced (like WebSockets), a web page can send and receive data to multiple sites while still remaining in the browser's same-origin sandbox (which means users don't need to trust it any more than a regular web page).

That security sandbox is a unique strength of the web; average desktop users still need to trust every application developer with complete access of their computer. This is an area where native platforms are playing catch-up to the web - iPhone and Android have finally brought this level of sandboxing to mainstream operating systems, a decade after it evolved in web browsers.
The Freelance Life. [Me-conomy]
"Getting a seed round from a VC":

http://khanexercises.appspot.com/video?v=-hJj5NpWUXQ

"Going back to the till: Series B":

http://khanexercises.appspot.com/video?v=m28RAgUySGQ

"An IPO":

http://khanexercises.appspot.com/video?v=ywOr4OYqXOs

"More on IPOs":

http://khanexercises.appspot.com/video?v=opEy6iN9kqc

"Equity vs. Debt":

http://khanexercises.appspot.com/video?v=yQtUyBrRBx4

"Bonds vs. Stocks":

http://khanexercises.appspot.com/video?v=rs1md3e4aYU

"Bankruptcy Liquidation":

http://khanexercises.appspot.com/video?v=-oW4M3vpuRM

"Chapter 11":

http://khanexercises.appspot.com/video?v=mxVWyzzMOXM
How long did it take your dad to build it? What type of expertise is needed?
The email cold-call HOWTO
Why I hate LinkedIn
Time magazine hero's model: 30% of patients subsidize remaining 70%
>Bringing back a Neanderthal is to kill him twice, after granting him a brief purposeless life for our own edutainment.

They wouldn't all have to play in the NFL would they?
Alliance Web Search
I hope it will not ever be done. If we ever get to the point where it can be done it probably will.

On the other hand I am all for resurrecting woolly mammoths and other extinct animals. They would not be aware that they are giant and unintelligent historical relics at the mercy of their superior human masters.
Relax. It's just a difference between British and American English. As for it being "distracting", it's not distracting if you're British. (And I expect it's no more distracting than certain features of American English are for British readers.)
Thanks ben_h. I did two VPS deploys with babushka just yesterday... Saved me a load of time. Keep up the good work!
I'd say the latter is the more difficult. Nice point.
Visual Basic - VB .Net - ListView - Move files to explorer
I'm very impressed that they managed to get such a licensing deal.
They were a warrior race that fed on beasts the likes of which we have never seen.

That makes for good movie trailer voiceover, but Neanderthals were "our" contemporaries.
Termination is an observable side-effect of a program. It is not a correct compiler optimization to turn a non-terminating program into a terminating one. Turing completeness is the black box beyond which a compiler's optimizer cannot see past, and it must, for correctness' sake, must give up when it cannot prove termination.
I'd love to see someone try to sell cars this way in both, a high income as well as a low income context. Honesty may not be the absolute value we/i'd like to think it is.
I'll also toss in the back button as one of the greatest platform features out there.
Joomla, Microsoft cite joint agreement as a new stage in open-source relations
How to Create an Essay on Poverty
Poverty has always been a fact of life, in every country, every society and every century. In order to write an essay on poverty, there are many things to consider.
iPad 3G teardown by iFixit
Orlando Real Estate - MLS - Gitta's Team - Homes for sale in Orlando
I can't say I've tried it, but shouldn't this be enough to avoid the optimization?

volatile int i=1;
while (i) { }
The closure section needs work. My closures never look like that. I have functions that return functions to create my closures, usually via a library via dojo.hitch, $.hitch, or goog.bind.
That is correct. However, in reality, a program whose only side effect is to terminate (or not terminate) is boring enough to be considered an edge case and changed.
Being volatile, i can change in ways which cannot be deduced from the program code.

Thus, the loop loops until something which cannot be deduced from the program code happens.

Thus, yes.
Conditional Jump: Another Control Flow Construct to Rule Them All
8bit killer is a first person shooter styled to resemble a NES game
Awesome to see my city represented by others on HN. Just out of curiosity, what sort of gig do you guys do? Custom tailored solutions for clients etc?
Termination is an observable side-effect of a program

Not per the C99 spec, at least (5.1.2.3: "Accessing a volatile object, modifying an object, modifying a file, or calling a function that does any of those operations are all side effects, which are changes in the state of the execution environment.")

Termination is "observable", but so is runtime, memory consumption, code size, and myriad other properties that a compiler is at liberty to manipulate.

Turing completeness is the black box beyond which a compiler's optimizer cannot see past, and it must, for correctness' sake, must give up when it cannot prove termination.

Correctness according to what standard?
I don't think "boring" is the right technical term; are you suggesting that the halting problem itself is boring, since it explicitly only relates to whether programs terminate or not?

The compiler is not privileged enough to state what is boring and what isn't. The example program calculates something meaningful - if it terminated, it would mean that there was a solution found, contrary to Fermat's theorem.
I should have copied and pasted instead of typing it out :) Thanks for the correction, fixed.
The risk will only get worse the more he delays.

If attempting coitus would pose a health risk at 68, then he certainly shouldn't make an attempt at 69.
Did anyone else here read this and immediately install VigLink on a site?
Re C99 - the existence of an execution environment is certainly observable (it'll disappear with respect to the program when the program terminates), unless you try to argue that exit(0) has no observable side-effects according to the C standard, and thus we should expect code following exit(0) to also be executed, where I think we would be entering absurdity.

Re correctness: That the compiler optimizer cannot see past the halting problem is a general fact about compiler analysis, which you should be familiar with from most introductions to compiler theory. That an optimizer assumes without proof a solution to the halting problem for some sub-program would mean that it's an unreliable translator, because it is making unsound assumptions.

Of course, if your define your language such that it's OK to make unsound assumptions, that's another matter.
and they may be delicious
Compare to the reddit-thread and the other comments. I define boring as "without side effects", that is, without io-access, without access to volatile variables and such according to the C-Spec. Boring also is language dependant, of course, as different languages have different side effects.

And yes, as such, I define the theoretically interesting halting problem as practically boring, because I only care about the result my program computes and outputs. If there is no output, there is no output -- not even the possibility of output, no matter if my program runs in less than a second, an hour, a year or infinitely long.

Yes, technically they are differnt programs. Practically, I run the program, notice "What the... how is it so fast?", notice the missing printf in there, add it (while being happy about the change in semantics which saved me several minutes), see the result and do something useful.
Innovation for baby delivery.
You're optimistic!
No, i think he's suggesting knowledge understanding and science as a whole depend on observable side effects. For example, i have a program that does in fact provide a counter example to fermat's last theorem. Unfortunately it does not print the result.

If you deny observable side effects as a requirement, you must accept that i do have a program that does that.

Most cs curriculums cover propositional logic. if you recall the truth table for implication, the false case always evaluates to true. my instructor used to call it the "who cares" case.

If you don't demand a witness for the proposition, the compiler is under no obligation to provide one.
Thanks, that's helpful. I didn't know wordpress does affiliate links too.
The alternate behavior, while initially non-intuitive, seems more useful to me, in usual scenarios. And the grandparent post's taxonomy including the idea of "partial correctness" also seems useful. So you'll have to justify your "must" a bit more.

In particular: a programmer who wants an infinite loop can get one easily enough. Code that is complex, and has no side-effects other than affecting termination, and never terminates is likely to be a bug. As long as users of an optimizer know that it makes this choice -- that this particular pedantic kind of 'correctness' is waived in the face of otherwise side-effect-less code -- it seems an implementor's choice. And lots of competent implementors seem to have chosen the path you say they "must" not do.
Not sure why this comment was downvoted so much, it does a good job of summarizing an ancient world view which goes against our current scientific one. The ancient idea being that one's virtue is connected to one's vitality.

Topics like virtue, nobility, the body/soul have been misunderstood by modern science; these problems can't be solved with empirical evidence + deductive logic. The ancients thought about these things in a radically different way from us because they accepted that higher-level values are a matter of interpretation to be distinguished from lower-level factual (scientific) things.
The Halting problem is primarily practically useful in automated program analysis, of which the most common instance is compiler optimizers.

I'm loathe to reference Wikipedia as an authority, but it's even quoted there as part of a proof as to why compilers cannot optimize programs as much as might be possible:

http://en.wikipedia.org/wiki/Compiler_optimization

However, optimizing compilers are by no means perfect. There is no way that a compiler can guarantee that, for all program source code, the fastest (or smallest) possible equivalent compiled program is output; such a compiler is fundamentally impossible because it would solve the halting problem.

This may be proven by considering a call to a function, foo(). This function returns nothing and does not have side effects (no I/O, does not modify global variables and "live" data structures, etc.). The fastest possible equivalent program would be simply to eliminate the function call. However, if the function foo() in fact does not return, then the program with the call to foo() would be different from the program without the call; the optimizing compiler will then have to determine this by solving the halting problem.
Makes me proud(er) for having dropped out of RIT years ago ;)
cdnXite - http://www.cdnxitehosting.com - offer VPS Hosting with datacentre in UK/USA/SWEDEN. Just add Microsoft free CDN - http://www.microsoft.com/windowsazure/windowsazure/
I find it somewhat difficult to believe we're having this conversation in any seriousness.

Consider this program fragment:

for (;;)
/* do nothing */;
destroy_the_world(); /* has side-effects */

Would you say that a compiler that removed the loop changed the side-effects of the program?
If you accept the grandparent's argument on face value, you should accept that a compiler should be able to remove other do-nothing infinite loops, like in the example I mentioned elsewhere:

for (;;)
/* do nothing */;
destroy_the_world(); /* has side-effects */

Why should a compiler remove the loop in the OP's case, but not remove the loop above? Do you accept that removing the loop changes the side-effects of the program?
and if you go to export as html/css you'll get something like this:

.primary-1 { background-color: #FFDDC2 }
.primary-2 { background-color: #E5C9B4 }
.primary-3 { background-color: #DAAA84 }
.primary-4 { background-color: #FFEBDB }
.primary-5 { background-color: #FFF6EE }

.secondary-a-1 { background-color: #FFE6C2 }
.secondary-a-2 { background-color: #E5D1B4 }
.secondary-a-3 { background-color: #DAB784 }
.secondary-a-4 { background-color: #FFF0DB }
.secondary-a-5 { background-color: #FFF8EE }

.secondary-b-1 { background-color: #FFCFC2 }
.secondary-b-2 { background-color: #E5BEB4 }
.secondary-b-3 { background-color: #DA9684 }
.secondary-b-4 { background-color: #FFE2DB }
.secondary-b-5 { background-color: #FFF2EE }

.complement-1 { background-color: #C2FFFD }
.complement-2 { background-color: #B4E5E3 }
.complement-3 { background-color: #84DAD7 }
.complement-4 { background-color: #DBFFFE }
.complement-5 { background-color: #EEFFFE }
if you use it for something unrelated, then set the unrelated thing equal to background_color, but keep them semantically separate.
Me too. RIT is a fantastic school, arguably one of the best if you're going into technical domains like engineering or software.

Rock on!
The curious case of equidistant boxes, a CSS fail
Apple is Shuting Down Lala.com Music Service In May
That an optimizer assumes without proof a solution to the halting problem for some sub-program would mean that it's an unreliable translator

The optimizer doesn't need to solve the halting problem for this example. It merely needs to prove that any iteration of the loop has no side effects; hence, an unbounded number of loop iterations also has no side effects, and the loop can be removed.

The real issue is whether termination is considered a side effect. The canon is the C spec; if you can point to some language in the spec that would prevent the optimization, I'd love to see it.

Update: on reflection, I think you're right. The point isn't that the loop has side-effects (it obviously doesn't); but by changing the termination behavior of the loop, the compiler is likely to induce additional side effects (when it runs the subsequent code).
installing node on your mac takes all of 5 minutes if you already have ports installed. speed in development turnaround is important to me.
Yes, but in what vaguely reasonable circumstances would you write dead code whose deadness depends on the fact that an infinite loop precedes it? The fact that the C standard doesn't consider changing termination properties from nonterminating to terminating to be an impermissible optimization seems reasonably practical.

The only thing I can guess at would be something in embedded-land that's using nonterminating loops as some sort of control-flow construct.
I was simply referring to OS X's automated crash reporting tool. Which does work after a kernel panic, regardless of what messed up badly enough to cause such an event.
I did a spit-take because for some reason in my head I'd gotten jeresig mixed up with this kid who did a Google Tech Talk on jQuery when he was twelve: http://www.youtube.com/watch?v=8mwKq7_JlS8
I don't think using JavaScript to fix something CSS can't do is the proper solution. I think to draw a static width box around the variable width items or just not worrying about the flush on both sides (something you can accomplish with CSS if you're willing to use an extra container to wrap all items except the last.)

But styling via JavaScript because you couldn't do it in CSS? Yech. Especially if it's not some kind of UI component that needs JavaScript interaction like an accordion or drag handle or something.
Reasonable has nothing much to do with it, IMO; and I'm not really talking about C (it is only an example), but about compiler optimizers.
But a loop that never exits will never continue on to the rest of the program, which will never have its side-effects.

This loop has no side-effects:

for (;;)
/* do nothing */;

So the compiler, according to the spec, can remove it, right?

for (;;)
/* do nothing */;
destroy_the_world(); /* has side-effects */

So will the world be destroyed? Or is the following code dead? In which case, it's not OK for the compiler to remove loops that have no side-effects.
the mechanic in chains has a lot of potential. the implementation feels solid too!
I know absolutely nothing about baby delivery, but I don't see how this could go wrong.
for the real story on why non-flash web games matter, you have to look at ease of porting to mobile/smartphone/social network platforms. If you could write a game that had 50% of the richness of a flash game, but worked quite nicely on (highly monetizable) facebook and could be easily ported to the (highly monetizable) iphone, is that worth more to you than the richness and playability on IE?
Perhaps; but as a juror you are one of the most important people in our modern world. You have to help make a representative, moral and right choice about someones guilt.

I think it's fair to assess who is able to perform that task with minimum bias etc.

Then again does that make it truly representative? Should we test people for racist bias in the trial of a black person?

It's an interesting dilema.
It's not about imitating a desktop application, but about having a usable interface with one. For example:

Let's say I'm one of those wackos who keeps a zillion files on my desktop. I want to upload a picture to imageshack or whatever. The way we've been forced to do this for years now is to click the browse button on the webpage, navigate to the desktop folder,and finally scroll down through a zillion files to find the one image I want to upload.

Or, you could just drag the image file from the desktop to the imageshack page and it would Just Work.

I realize there are apps that let you do this kind of drag and drop uploading, but that's exactly the point -- apps did this easily, so there really was absolutely no reason for it to take years for drag and drop to finally make it into HTML.

Thinking in terms of desktop vs mobile is narrow-sighted. What's at stake here is pushing forward the browser (aka: web) interaction experience, regardless of platform.
Hey, no hard feelings. I think we're all guilty of that from time to time. I'm sorry I hit back so hard (I'd erase it now you've appologized but unfortunately the edit window has lapsed).
13% of international calls now go via Skype
Definition of the Definition of Man
We have a blog on Posterous and we have no issues with these guys doing this--totally support them making money while giving us a great place to post content.

I don't honestly see what the big deal is. You can barely tell anything is happening.
Safari has done this for as long as it has existed, since the ability is baked right into Mac OS X. Open any file dialog (or the terminal) and dropping files on it works the same as navigating (or typing) the hierarchy to that file.

Sounds to me like the popular Windows desktops are the ones innovating at a snail's pace. Perhaps not coincidentally, I'd blame the same party for holding back the web.
I think the confusion comes from Bram Cohen apparently having worked at Valve on their CDN for a bit; http://www.nytimes.com/2004/02/12/technology/circuits/12shar...
I just want a holodeck. I don't particularly care if I am put in an alien zoo.
Causality always gets overlooked in free markets.
> Without their culture, community, and absolute freedom to roam the planet and carve a corner for themselves, they would be another zoo/museum curiosity, a biological anomaly paraded before us for pennies.

By this argument, we should destroy all zoos and let the species in them die off. It's counter to all biological knowledge.

> Even if a sizable population of them were granted full human rights and a habitat, they would forever owe us their existence, and their debt to humans would hang over anything they achieve for themselves in terms of growth and survival.

So? How is that different from the debt you owe your parents?

> Our future generations will also treat them as an experiment gone awry, should they ever threaten the slightest human interest.

This happens to minority ethnic groups all the time. Look at the new Arizona immigration law.

> It's hard enough watching dying racial and linguistic minority groups; their last remaining few members made into coursework for "our" undergraduates.

So... trying to understand ourselves is morally wrong? It's horrible to preserve our dying ways as best we know how?

> Bringing back a Neanderthal is to kill him twice, after granting him a brief purposeless life for our own edutainment. Let them rest in peace.

This applies equally to the California condor and the panda. We should just let all endangered species rest in peace, I suppose.
I'm amused at the thought of the common practice of linking to Amazon and explicitly disclaiming in the text that you aren't getting kickbacks you just really like the book and then the readership finding some semi-obscured javascript that adds affiliate links.
It is evident you know nothing about baby delivery from the latter part of your sentence.
Not another, pretty much the same. If you add to "goto" the required stuff to play nice with closures, you get a continuation.
If you had spelled it "Babooshka" like Kate Bush, there's no way I could have refused to use this tool.

I would have been "all yours".

(For those too young to know who Kate Bush is, imagine if Lady Gaga took the effort she puts into weird & eclectic outfits and made weird & eclectic twists on pop music instead)
Is there any point learning SBCL or CMUCL today for actually writing applications using Lisp, or is Clojure a better choice?

Basically, I want to learn lisp, but also write some apps in it. I keep hearing that people use lisp for prototyping and then rewrite in some other language.
Actually, it is based on a draft h.263, not the final h.263.

One of the older flash specification did document it. The svq3 specification was removed from swf specs around time it was made available under more liberal license (Sorenson probably didn't agree with wider specs availability).