skysight-inc/HackerNews huggingface dataset:
Like the blog author, I found the traditional explanation incredibly confusing: "A continuation is the remaining work to be done". I, too, found the "copies of the stack" explanation much better.

The first problem I had was understanding that the "work remaining to be done" was not measured from the point of the call/cc statement, but just after, so it was really "the work remaining to be done once you get done with this next bit here, assuming you do." It was much easier for me to think of it as an instruction pointer saved to the stack, which points to the instruction to be executed on return, not the current instruction.

Likewise, I was confused by the idea that you could save a continuation so that you could call it again and again. "Why," I thought, "would you want to execute a continuation more than once if it is just going to return the same thing each time?" It turns out I was thinking in purely functional terms, and Scheme is not a purely functional language; if you allow for side-effects, a continuation can return a different thing each time. The "work remaining to be done" explanation misses the fact that a continuation captures the state of the code and some data, but it doesn't capture all data. The stack explanation explains precisely what data is saved by the continuation and what data is subject to side-effects.
Is the mem function doing a linear search?
This post turned out rather bipolar. Please bear with me.

I might bite on such a deal... It doesn't, however, give full moral absolution as RIAA/MPAA only covers a subset of all the artists hit by file sharing. And at that, they only support the guys I wouldn't give a dime. So on second thought, perhaps I might not bite on such a deal.

It is a good idea, though..if we could somehow push in some organization which fairly distributes the copyright infringement tax (fat chance of that!) artists could be fairly compensated for whatever amount of money we can finally agree they lose to "illegal downloads".

On another note..your idea wouldn't work after all, because it would be voluntary, and hence the MAFIAA wouldn't get the coverage they slaver for.

Even if a copyright tax could be successfully implemented, it would, as the history of such taxes suggests, remain in place indefinitely, even long after it has lost its relevance. Which is incredibly stupid. Why can't we cover this budgetary post with the money from a tax instituted to pay the welfare of coach drivers removed from business by the automobile, or something in that vein?

All things considered, this idea seems just as harebrained as everything the RIAA comes up with...
Arc continuation puzzle
This is very typical of the EU, and a major factor in why Europe often falls behind the US in innovation. The basic difference is that the EU believes that state funding will solve the problem of innovation, while the US relies more on capitalism and market forces.

As we saw in the Soviet era not much good comes from letting the state decide who gets the money. More recently France even tried to to make their own state-run internet, owned by France telecom. It was called Minitel.
the dragon book.
I agree. I'm from Europe, and I watch European companies get whooped by their American competitors on a regular basis. I do think we are better off with subsidized businesses (they prevent monopolies, which are bad), but there aren't many European corporations who both get governmental support and happen to be the world leader in whatever they do. I doubt there's even one.
Can you please elaborate? Link?

I'm really interested in Python, Ruby, JavaScript... Not looking to write a massive, enterprise-scale compiler/interpreter/parser/whatever in C, C++, or Java... possibly Java... but you get the point...

I've been checking out projects like Mozilla Rhino, Pypy, and keeping up to date with ECMAScript 4 progress... just want a solid book or two or more... :)
It's foolish to live your life in fear, checking every meal you eat for poison. There are many things that require a leap of faith. Where's your tinfoil hat?

These incidents mentioned in the article have been very rare. They did a pretty good job of scaring you. When a multinational conspiracy to steal your identity does occur, you'll be covered by your bank's insurance.
Yes; this isn't designed for efficiency.
http://news.ycombinator.com/item?id=132538
Thanks for all the comments.

@edw519: We're certainly big fans of revenue. We even have a non-trivial amount of it (for a 3 person startup). :) The whole point of the post is that we don't believe anybody has reliable predictive power over when that "non-refundable vote" will show up in your bank account. And because of that, submitting to artificial deadlines on when the revenue should arrive can lead to overworking the team. Make sense?
The dragon book is Aho, Sethi, & Ullman. If you look through modern string search algorithm implementation, for example, the number of hits for Aho is up there with Knuth. Not that string searching has an awful lot to do with compilation, more lexing and parsing, but still. Aho and Ullman are pillars and the book is sort of the bible.

http://en.wikipedia.org/wiki/Compilers:_Principles,_Techniqu...

It's been updated to cover parallelization and other topics that were considered specialties when it was originally written. I have an older copy and am now wondering whether it mightn't be fun to trade up. We'll see.

Have you played with ANTLR? That's a neat tool. The Ragel state machine compiler is a fun toy, as well.
This is what is commonly refered to as "the dragon book". http://en.wikipedia.org/wiki/Compilers:_Principles,_Techniqu...

But that may be too massive for what you are looking for. I found that Crockfords essay http://javascript.crockford.com/tdop/tdop.html really helps if you know javascript. And reading something like tinypy http://www.philhassey.com/blog/2008/02/28/tinypy-10-mit-lice...
may help.

Also not necessarily a compiler book, but The Little Schemer does have you building a basic scheme interpreter at the end of the book.
They definitely need a more graceful fail for zooming too far in than a gray box in place of the tile that says "No imagery available at this zoom level."

You're scrolling around, looking in on something, and then bang the whole screen is gone, nothing but gray boxes, and you're whole sense of context is lost... This bothered me on maps, doubly so here.
Microsoft to Buy Web Ad Analysis Company Rapt
I think this article applies even for established companies regardless of where the funding comes from or if they're a startup. I have a friend who decided to take a 20% pay cut to work only 4 days a week and now feels more productive and happy, whereas another friend I know prefers working 60-80 hour weeks and then taking a month off. Either way, it seems obvious that even the most productive, passionate people need downtime to recharge.
That article is beyond obvious...

Is there really ANYONE here with the "fuck, I don't want to learn new stuff" attitude?!
where r u located, whats ur idea? and how do i contact u?
Is Startup School only for hackers or can others involved and interested in startups apply too?
Andy Kessler: Running Money - The Missing Chapters: Gold Bites:
Forget gnutar, let's talk about tar which was also missing. Can you show me that tar should be missing from a new os x install and is installed only with xcode tools? The problem is, if you could, that still wouldn't explain things, but I can tell you're dying to be right.

Unlikely stuff happens, just less often. I appreciate that you were trying to be helpful and to you I'm just "random internet guy" but I'm being honest, I already fixed the problem, and it was as I am stating. Telling someone staring at a blue moon that "that's unlikely" is just going to piss them off. You've squandered the goodwill and karma your original helpful comment in the other thread merited. This conversation has nothing to do with xcode anymore, but a lot to do with tool. Can we stop the "it works on my machine" BS now and move on?
Because I read about it on Gruber's page, and thought it was worth sharing. Rather than submit to his page, I thought it would be more helpful to post the original link.

http://daringfireball.net/linked/2008/march#thu-13-opendns

I apologize for using an over inflamatory tone in my link title.
I had tried to temper it with the explanation that they claim to have a good reason, but I see that this wasn't as effective as I intended.
Pretty slick, but I wonder if there's a way to do it without jpegs. I would think that using fonts, vector markup, or css would be lighter and quicker. Any thoughts?
10 years ago, I loved Hanson and Fraser:

http://www.amazon.com/exec/obidos/ASIN/0805316701

This is a good tour of front-end and back-end stuff, a decent intro to code gen, and is built on a hand-written recursive-descent C parser. That it's specific to one C compiler made it better to read straight through, but I rarely refer back to it.

So far this year, I've been liking Muchnick:

http://www.amazon.com/exec/obidos/ASIN/1558603204

This is pretty heavy on the backend and codegen, which is where my head is at these days.

Compilers is a big topic. What part interests you most? Parsing? Optimization? Semantics and error detection? Code generation?
Mark can be fixed; your translation is wrong.
Accessible Tables
today is also steak & bj day..
"Engineering a Compiler" by Cooper and Torczon

The Dragon Book is not the best book these days, it focuses too much on stuff you won't care about and not enough on the stuff you do care about. (e.g. it focuses a lot on parser generators and says almost nothing about analysis and optimization)

EDIT: A good followup text is "Advanced Compiler Design and Implementation" by Muchnick
Why you probably do not want Java on the iPhone
If I were in an arguing mood, I'd say that in terms of verbosity, scala is closer to jython than it is to java... the only major number-of-characters difference is that you need type annotations for method arguments (and return value if it's recursive).

Still from a 'conciseness' point of view and ignoring all the benefits of closures, first-class-functions, and other goodies, scala still has some serious awesomeness to serve up, especially when navigating the world of Enterprisey Java Libraries: implicit conversions. A good explanation is here: http://www.artima.com/weblogs/viewpost.jsp?thread=179766

There are also some downsides, of course ... I'd say they can all be summed up by the facts that scala is a young language, still evolving, and it is a large language with lots of features (some rather hard to grok at first).

Cheers!
This and other FAQs are answered at http://startupschool.org/faq.html
Sorry to say that I use emacs, so I can't help you too much. It occasionally screws up indentation but otherwise stays out of my way.

(I'm far from an emacs power user -- also I don't use the interactive toplevel much, and never from inside emacs; instead I throw that sort of thing in run-once junit code in case it becomes a test suite.)
What makes the most valuable tech companies so valuable?
For me, its 'Why not?' The way I look at it, big companies will always be there, and if you realize that a startup isn't for you, there will be a ton of companies waiting to hire you. But the experience of building something you are truly passionate about, filling a need that exists, without the politics of a big company is something that I don't want to pass up.
Hardy Earth bacteria can grow in lunar soil - Might ruin the cheese
What Scheme are you running this with? I tried your code in DrScheme, and it prints "Hello, World!" exactly once, with no error, no infinite loop. I'm not sure why, but I expect it has something to do with the semantics of "begin" (maybe a bug in DrScheme?); you can make the code work in DrScheme as you describe if you use "let" instead of "begin":

(let ((cont #f))
(set! cont (call/cc (lambda (k) k)))
(print "Hello, world!")
(cont #f))

You can get an infinite loop by changing where the variable is set:

(let ((cont #f))
(call/cc (lambda (k) (set! cont k)))
(print "Hello, world!")
(cont #f))
If you're comfortable with Lisp, Lisp in Small Pieces is good.
A hardcore Windows guy gets a Mac
Your iPod May Come With Something Extra: A Virus
How To Make Money Online
A little joke to making money online.
[Sunspots] The scarcity edition
Best Internet Games
10 Internet games you can't live without.
Ask HN: documentation format?
You need to write a manual that's more than a few pages. Maybe you'd like to be able to provide the client/customer/community with html as well as pdf. What format do you use, and why?
A Machine for Testing of Static RAM
Clever trick with uninitialized memory
You mistake an easy risk management technique for paranoia. I leave it to you test the "bank insurance protects you from identity theft" plan. I invite you to try that out--these experiments usually go well:

http://news.bbc.co.uk/2/hi/entertainment/7174760.stm
This isn't the first time.

If you want to learn a little about this world, read Liar's Poker. It is enormously entertaining and somewhat enlightening.
We need searching capability on here ASAP!
This site reminds me of old-school Digg. Can we please get some searching though?
Yes, it makes perfect sense.

"we don't believe anybody has reliable predictive power over when that "non-refundable vote" will show up in your bank account"

Neither do I. But if you do things right, you can make a pretty good guess. There's a big difference between building something cool and hoping it sticks, and being directed by those who would buy. A lead, of course, is NOT a check. Obviously, you must know this already.
FriendFeed Is This Year's Twitter, But Why?
$306 to get a head start? Its like they say, If one woman tells you it will take 9 months to make a baby, maybe we'd better hire 9 of 'em so we'll be done in a month.

I think we're gonna need a new category of fail to describe this one.
The nice thing about Appel's book is that you put together a compiler as you go along - it's easier to self-study. The Dragon Book's compiler project is an appendix.
Unfortunately something as simple as input validation often does not occur. It baffles me when I look over at code from contract work or I come into a new job and see GET requests modifying the database, and POST's going completely unchecked. Madness!
1. Programming Language Processors in Java: Compilers and Interpreters
http://www.dcs.gla.ac.uk/~daw/books/PLPJ/

2. The definitive ANTLR reference
http://www.pragprog.com/titles/tpantlr

1. gives you a good introduction in how to write parsers from scratch (without lex/yacc'ish parsing frameworks), and is probably a good warm-up before the book you mention.

2. gives you an introduction to state-of-the parsing with a framework (antlr) + a some about compilation. Note: antlr also has a nice IDE for rapid developing/prototyping of parsers - antlrworks. See http://antlr.org for more info.

A very nice parsing framework for Python is dparser. It allows you to write grammars as docstrings to methods, which makes it very easy to try out things
http://www.ibm.com/developerworks/linux/library/l-cpdpars.ht...
http://dparser.sourceforge.net/

Definite Clause Grammars for Prolog is also worth a look (at least for reference)
A lot of determining the worth of 'web 2.0' companies to be bought out (such as digg and bebo) is the the people you'd acquire along with the technology itself. Acquiring Digg you'd get web engineers who designed the backend and prepared for the influx of traffic, which one could put to use in other areas of the company.
I couldn't disagree more.

He worked for a company that was / is clearly floundering. He told them clearly that they needed to change things. And they ignored him. They labelled him a troublemaker.

He tried to help the company, and they declined that help. He tried to push the company, and they ignored that as well. The way I see it, this is the demise of AOL in a nutshell.

4 years old or not, this is a good story.
Continuations don't save "state", so his explanation is entirely right. Also, the mark() and return() operations (which are like goto) do save the environment, unlike gotos. That's why you can return() back into a procedure. You can't goto back into a procedure (well, in assembly you can but your variables will be gone).
Google did something better than Yahoo at the time. So again, I'm very much still unsure about to how this is better.
this kinda annoys. couldn't remember old account passwd, not that my old account had many (any) karma points but whatever.

i feel like startupschool factors heavily on school background anyways more so than pts. just some critique with your morning coffee.
It's true that you could do it without jpegs, but using jpegs produce the most compatibility, as it'll work within the older IE and Netscape Browsers. Using fonts is an iffy affair, as across systems/browsers there'll be differences in formatting and available fonts to choose.
another (more interactive) option might be to pickup a standard compilers text-book e.g aho-ullman / aho-ullman-sethi and follow the intro-compilers course-work available at any of the universities (e.g. stanford). work through the exercises i.e. hack, hack, hack !

at least at stanford, you will end up writing a small compiler for a toy java like language. kind of nice. from there you can go onto more mature stuff e.g. llvm.

edit: it would be even more fun, if you could take the tests too (within stipulated times ofcourse).
If Windows Live Search and Yahoo Search can't provide as good of results as Google (assuming they can't based off of Google's increasing market share), does Quaero even stand a chance?
"Blog posts get comments on FriendFeed as well, but how rich an experience is a comment thread based on a headline with a link?"

Indeed. That could never work.
I could hardly read the article because of the font size and face choice.
Modern Compiler Implementation by Andrew-Appel is a very good introduction book for people to get started on doing a compiler.

And if you want to be more pragmatic, here is a shorter one:
http://www.cl.cam.ac.uk/teaching/2004/CompConstr/NEJ/report....

The dragon book is a MUST for compiler researcher and people who are serious on compiler, but it is hard to follow, and I do not recommend it as your first compiler book.

For ruby, you can take a look of the xruby compiler I did: http://xruby.googlecode.com (google code's server has some problem now, you may have to wait for a while)
Something formatted for 8.5" x 11" paper for printing out as a pdf and easy to navigate/search html.

How long are we really talking about?
The writers at my company use Framemaker - it's pretty industry standard and expensive. They have started writing the documents using DITA. It's pretty powerful.

DITA is an emerging documentation standard. It uses XML to describe the content and structure of a document. If you write your documentation in DITA XML, you can render it to PDF or online help easily. Yes, DITA is a little verbose.

http://dita.xml.org/getting-started
Going off hug a movie, the site seems a little slow in loading, which goes against the purpose of the page, which looks to be rating items at a fast interval.
The fundamental book to read would be "Introduction to Automata Theory, Languages, and Computation" (
http://www.amazon.com/Introduction-Automata-Theory-Languages...)

Then proceed to Dragonbook.

After finishing Dragonbook, you might like this Linkers and loaders (http://www.amazon.com/Linkers-Kaufmann-Software-Engineering-...)

In general follow this guy Jeff Ullman and you would be good(http://infolab.stanford.edu/~ullman/)
Since I haven't got an invitation and plane ticket yet - I look forward to the podcasts. Any more info on them?

Edit: I apologize for making a joke that caused confusion. Invitations have not gone out, they don't pay for your flight. I was just implying since I won't be attending I would like to peruse the podcasts at my leisure and the FAQ says more details will follow. I was looking for those details.
google "searchterms site:news.ycombinator.com"
Speaking of that. Do we have to buy our own plane ticket or will transportation be refunded to a certain amount like with YC startups? I highly doubt it's the latter but that'd be cool.
What would you consider most about joining a startup?
Many things intrigue me about working at a startup. Mostly, passion. Second, skilled people. Third, passion. Fourth, environment. i'm considering a change, what are some signs between a moderately good and great startup. i can easily spot a fail boat, but i'm curious what's the general consensus and experience here. Thoughts?
what if i don't want to search for "searchterms"??

*please note sarcasm above
Neelie, go get 'm!

http://en.wikipedia.org/wiki/European_Commissioner_for_Compe...
Haven't read it yet, so I can't comment on how good of a book it is, but "Basics of Compiler Design" is free to download.

http://www.diku.dk/~torbenm/Basics/
Why isn't it rational to fight wrongs that don't affect you personally?
Sorry to everyone who has posted here that I have been unable to respond to. This thread grew quickly; which is FREAKING awesome - there is a list (on paper) growing on my desk every couple hours from the nuggets that you all are providing. I am a bit under the weather at the moment and have not been able to compose very intelligent responses (its difficult when your head is in the fog of theraflu and tussin).
I have been really nervous about moving to the next phase (aka education to employment), but this thread has really shown me what I need to focus on more (a good deal of which I suspected, but now 'know' because of all of your help) and what I already know that I need to carry with me. Thankfully, much of what you all have said has let me know that I am aware of more of the basics than I previously thought. What I do not know, I now know that I need to know :)

Thank you again, to all of you! This thread is more valuable to me then I could ever express with a simple 'up' rating :) Your time and words mean a lot, so again, THANK YOU ALL!

-Matt
The RSS feeds are pretty primitive -- they have only the title! This makes them almost useless. It would also be nice to have a lower volume feed of only the highly ranked posts.
Entropy of Search Logs: How Hard is Search? With Personalization? With Backoff? [FlV]
Agreed on all fronts. Of course, doing ad-supported projects in the consumer market make the lead-to-sale connection much more tenuous/indirect.Whether that's a logical path is of course an entirely different debate. ;)
They already have something like this in place in Denmark. Whenever you buy blank CD's, DVD's or other storage media you pay a fee to copydan. This money then goes to the artists. Of course this doesn't make it legal to use the media you bought to actually store music you haven't bought.

It's insane - you pay and get nothing in return...
There is also http://searchyc.com/ (and a few others)
From the ACM paper abstract:

How many pages are there on the Web? 5B? 20B? More? Less? Big bets on clusters in the clouds could be wiped out if a small cache of a few million urls could capture much of the value. Language modeling techniques are applied to MSN's search logs to estimate entropy. The perplexity is surprisingly small: millions, not billions.

Entropy is a powerful tool for sizing challenges and opportunities. How hard is search? How hard are query suggestion mechanisms like auto-complete? How much does personalization help? All these difficult questions can be answered by estimation of entropy from search logs.

What is the potential opportunity for personalization? In this paper, we propose a new way to personalize search, personalization with backoff. If we have relevant data for a particular user, we should use it. But if we don't, back off to larger and larger classes of similar users. As a proof of concept, we use the first few bytes of the IP address to define classes. The coefficients of each backoff class are estimated with an EM algorithm. Ideally, classes would be defined by market segments, demographics and surrogate variables such as time and geography