skysight-inc/HackerNews huggingface dataset:
Pretty slick. A few questions:

* Can you use Lua scripts with blocking operations like BRPOP? Or is the strategy here to just poll if the queue is empty? (Either is a usable strategy.)

* Sometimes you will have particular queue items that cause the processor to die, because of some weird bug. It can be helpful to stick those into a separate "holding area" after a few failures, and send out warning emails to someone who can fix the problem.

* How do you monitor the number of jobs queued and in progress? You could get all the items in the list with LRANGE and look at their timestamps (if any), but if the items are large and there are a few million of them, this could be irritatingly slow. Monitoring is super-important!

That said, Redis can be really useful for writing queues. At Greplin we're pushing so much data through a Redis-based queue system that we actually managed to max out the operations-per-second on EC2 Large instances, and had to shard across a few servers. The basic idea is that we encode everything as protocol buffers, LPUSH it into a waiting queue, and have the processor do something similar to this:

1. RPOPLPUSH moves the item at the head of the waiting queue into a one-element in-progress queue. The name of the queue includes a counter for how many unsuccessful processing attempts have been made (starting at 0).

2. Process the item.

3. LPUSH the output into zero or more waiting queues for the next processing stage, and delete the in-progress queue. Unless there was an error, in which case things get complicated. :-(

There are a surprising number of complicated little issues that come up when making queueing systems for heavy production use! For example, how do we coordinate the topology, and which servers to connect to? If one of our EC2 instances goes down and takes a Redis master with it, how do we seamlessly switch over to the slave? How do we shunt aside "killer" items for later processing after we've fixed the bugs that they were causing? What happens when there's a load spike and queue length goes through the roof, and the Redis servers start using up all their memory?

These problems all have solutions -- for example, you can build most of the coordination and rate-limiting stuff with Zookeeper -- and for the most part I've been very happy with Redis. It's been very solid and reliable, with convenient operations, easy administration, and great speed! I just think that queueing systems are an area ripe for improvement.
Firefox Metro development heating up, 2nd status update
What advantage does this have over flot?
search results (and open stuff that google crawls from sites) is PUBLIC... Using INSIDE information (e.g. if you work at a company, therefore having access to undisclosed info) is one thing, but using what's freely on the net?

That's what ALL investors do anyway (and it's obviously legal)
By tether, do you mean I could use my kindle as a 3g "modem"? Wouldn't that go against the device's terms of the device? Do you know of anyone that did it?
You're going to have to offer some evidence for this, because (as many threads on HN have discussed) all the evidence I've seen points to precisely the opposite of what you say: the best measure of complexity is simply the overall size of the program. If that's true, defining a class certainly does add complexity, and your argument is plausible but wrong.

Not content with repeating myself in this thread, I will repeat myself from threads of the past as well: it's astonishing that the evidence is so consistent on this, yet almost nobody takes it seriously. But I do! And I have a really interesting question, too: what it would it mean, not just for a programmer to organize their work around this principle, but for an entire company to do so?
My first digital camera had drivers only for Windows 98. I had to dual boot until I got a CF card reader.
Well, not quite. At least on my phone, an app keeps root permissions after allowing it with Superuser once. What I'd like is a "sudo" I have to allow everytime. So I know each time a program wants to have root priveleges and I can grant those priveleges selectively.
Hey, thanks! Kickstarter projects can only be started by US residents so that's not an option for me.

Quoting from http://www.kickstarter.com/help/faq/creating%20a%20project#S...:

"To be eligible to start a Kickstarter project, you need to satisfy the requirements of Amazon Payments:

Be a permanent US resident and at least 18 years of age with a Social Security Number (or EIN), a US bank account, US address, US state-issued ID (driver’s license), and major US credit or debit card."
The part about proofs and axioms is completely non-logical.
for the past several centuries, proofs have relied on axioms. Euclid introduced axioms (postulates) in order to provide proofs (and precise formulations) for informal statements. So the math part is really more an argument in favor of classes as a sort of axiomitization of computing.
The service seems really interesting but the charts/graphs could use a little tufte love.

Why are the bars in the chart in a different order than the lines in the table? Maybe have the different amazon/xyz-provider be different shades of the same color?
It may interest people to know that Alan Kay has said that they got granularity wrong with classes. Functions are a good granularity, and so are systems, but classes don't work. To get true encapsulation as he originally envisioned it, you need to think in terms of interoperating systems. The example he gave of getting it right is the internet (but not the web). This was all from Kay's talk last year in Germany.
99 lines of completely incomprehensible C++. I would have been more impressed by 500 lines of well documented, conceptually clear code.
Single payer would lead to massive efficiency gains in healthcare.

http://www.medicaltranscription.net/cost-of-medical-paperwor...

http://www.modernmedicine.com/modernmedicine/Modern+Medicine...
The deck is visually good. The kiss fan club anecdote is great.

The following conclusions I drew from the deck are probably false, but I convey them because most investors skim through once with a skeptical eye and could reach similar conclusions.

- The first time through the deck I thought you'd already built the product, so I was looking for the adoption ramp.

- When I finally figured out that you haven't built it, I looked at the timeline and cant tell whether the two of you talking is the only event to take place before raising the seed.

- Then I looked at your bios, and thought that you guys must not have jobs right now which is the real reason for needing a seed.

I don't mean to be negative, I'm just telling you what went through my mind as I read it.

One last note: "advertising reach" is the wrong term to use because it couldn't be 23B without some mad hyperspace technology and the existence of alien empires. I spent years working with ad guys and they get bent out of shape when terms get used loosely.

I say, just build it. You didn't starve in the past 6 months so you're unlikely to starve in the next 6 months. You may be able to build it more easily than raise money.
Not entirely true. While Microsoft won't upgrade your Windows for free (creating the demand for support for ancient versions of the OS - things that will run on XP) they will make software dependent on service packs and fixes. It's not a new version with new functionality, but it's an upgrade nonetheless.
OO enterprisey mess is strictly better than global state ridden spaghetti code. The hard part with enterprisey code is that the code performing the action is hidden under layers of abstraction. The bootstrapping cost is much higher here because you have to put more abstractions in your head before you can understand a particular bit of functionality. This is a different sort of complexity than the global state spaghetti.

With the global state code you have to understand the entire codebase to be sure who exactly is modifying a particular bit of state. This is far more fragile because the "interaction space" of a bit of code is much greater. The dangerous part is that while you must understand the whole codebase, the code itself doesn't enforce this. You're free to cowboy-edit a particular function and feel smug that this was much easier than the enterprisey code. But you can't be sure you didn't introduce a subtle bug in doing so.

The enterprisey code is better because it forces you to understand exactly what you need to before you can modify the program. Plus the layered abstractions provide strong type safety to help against introducing bugs. Enterprisey code has its flaws, but I think its a flaw of organization of the code rather than the abstractions themselves. It should be clear how to get to the code that is actually performing the action. The language itself or the IDE should provide a mechanism for this. Barring that you need strong conventions in your project to make implementations clear from the naming scheme.
Interesting from an IO point of view. It would be nice to have a clearer tie-in with CPU and other benchmarks for these providers. Does anyone have any experience with Storm on Demand to share? Their prices for SSD-based servers look enticing.
Help Reddit build a recommender
That's IE6, IE7 is fine. It was the norm, javascript was just a fallback. And if you go further back to Dreamweaver days, javascript was the norm again (remember MM_clusterufck)?
Video shot from the Space Shuttle during launch
Same happened to me while ordering some books from Amazon. When the original order arrived (after the 2nd order), I notified them and they just told me to keep it and try to donate to someone that needed the books or to a library.
Maybe the reason programmers moved from cobol to OO is because they found OO better? Staying with Cobol was an option?
<pedantic>
Down voted for using for using the pejorative 'Obamacare'. The thing actually has a real name (and it doesn't even make some bad acronym), it is the "Patient Protection and Affordable Care Act".
</pedantic>
If you don't already own one of these, you might as well wait for the rumored Google Nexus tablet:

http://androidandme.com/2012/03/opinions/rumor-nexus-tablet-...
Exposed how? Methods can be private.
This sounds like ideology to me. You can never be sure you didn't introduce a subtle bug, you can never force someone to understand what they need to, and interactions between objects can be just as hard to understand as any other interactions.

I agree that a project needs strong conventions, consistently practiced. See Eric Evans on ubiquitous language for the logical extension of that thinking. But this is as true of OO as anywhere else.
Google Guice is not hell.
There is that other sweet spot: UI programming. I don't think I have ever seen a better setup for UI code.
Skydiver Makes Test Jump From 13 Miles Up
Yeah but the debate topic is "don't use classes", not "use Haskell" or "write in a unary lambda style"
State machines! But that is another discussion. Let's have it some time.
Insert plug for pandoc. Among the many benefits pandoc provides is easy code highlighting. By defualt it uses pygments as others have suggested.

http://johnmacfarlane.net/pandoc/README.html#verbatim-code-b...
Well, for my taste, all these tablets are e-Readers and game devices only. There's hardly anything you can do on them that would count as serious, contrasting the cost of these things.
"AI" is algorithms, and it is what a large fraction of Google engineering does all day.
You're partly correct.
(fwiw, I will in an area that gets tornado producing storms and I know just what you mean about the sirens.)

There are multiple problems which I'm trying to address here:

First is that of warning. The sirens are great, and they do mostly work. Meteorologists do a fantastic job of predicting storms and their velocity, but getting that information out is hard.
If I'm asleep and I hear the sirens, that acts as a general warning. I can dive into a basement or tornado shelter, but then getting further information is difficult. Yes, you can buy self powered radios, but you know that many people simply don't. But everyone will cling the to their phones like they're made of gold, so we should make use of that.

Second is getting information back out. An upcoming feature is to report back to places like Facebook, Twitter, and other networks that you're close to a tornado. This lets your friends and family know what is going on, and to many people this is important too.

Third is more information. Laura Myers at Mississippi State University has conducted interviews with several thousand people regarding their behaviour during a tornado watch. The striking thing is that everyone wants confirmation before they act. Sirens alone aren't enough for most people, they want more information. They want to know they're directly in the path of real tornados. This app is here to help bridge that gap. If the sirens go off and people around are reporting that real tornados are touching down, I hope this helps give those people even more motivation to get moving to their safe spot. The sirens SHOULD be enough, but we all know they're not and human behaviour doesn't work like that :-)

So, at the end of the day, if this helps save even a single life, I think it's worth it. It won't be able to save everyone, but every bit helps, and this lets us all help our neighbours, and our community.
It would have been if pre-existing software (libraries) were the dominant factor.
They can sell these for free and they'd still be profitable because Android is nothing but a market where they're selling Ads and Software to large number of potential eyeballs and pockets willing to shell out few bucks here and there.
6 Venture Capital Blogs Everyone Should Read
I believe the reason that we see so little of the semantic web is that advertisement is such a dominant business model on the internet. Since it is hard to embed ads in semantic web content, and the will to pay for it isn't there, the sad result is that it is not worth producing.
I'd say thanks for introducing me to hypem.com (odd that with a name like that I'd never heard of it before), but that would be like thanking someone for introducing me to tvtropes.org. I, and the unfortunate folks who follow me on twitter and just got a sampling of South By musicians, will have to find a way to "thank" you :-)
You're probably referring to the study that showed lines of code correlated with error rate. I completely believe it. But I think there's more to it than that.

We all know that lines of code is a poor measure of code complexity, but it does correlate with it. It is far more reasonable that error rate is proportional to code complexity, which is weakly measured by LOC.

Unfortunately I don't have any studies to back up my intuition here. But I would bet that my definition of complexity, aka "interaction space", would correlate much stronger to error rate than LOC does. Also, that decently good usage of classes would in fact reduce the complexity, and thus error rate.
Meaning Google makes no effort to score your whole page against each word in the dictionary, it only attempts to score 1- to 6-game from the page and inbound links? That's unfortunate.
Windows has even solved virtually all of "dll hell" via SxS.

Linux distros would do well to implement something similar. Disk space and RAM are cheap, having a few different versions of the same DLLs is no big deal. I don't remember the last time I had a .dll problem in Windows post Vista, whereas I still run into .so issues nearly constantly in Linux distros.
Ask HN: do founders get a salary after raising angel round?
When you raise angel funding, do founders usually take a salary? If so, what's acceptable?
Objects are collections of closures that share state. As soon as your interface has more than one closure, you've more or less reinvented objects to solve that problem.
It's LCD, 265 PPI.
"This story is not over."

Which is to say, the Semantic Web didn't happen as promised, and it didn't happen in exactly the way you would guess based on my message, which is that where you had something that could create a local context it could happen in pieces, but no global whole has emerged, nor is there any particular evidence one is emerging.

http://reprog.wordpress.com/2010/09/02/bibliographic-data-pa... - read parts 2 and 3 as well. It may not seem directly related at first, but you should soon figure out why I consider this three-part blog series to be the thing that proves global semantic contexts are a hopeless pipe dream. (And remember that entire bit is about librarians; if they are that hopeless nobody else has a chance.)
OpenBSD 5.1 pre-orders announced. (plus three new songs and artwork)
Imagine loading that on a mobile device, where something like that could easily take a few seconds. That's another reason why you really don't want to use jQuery on mobile.
Ask HN: How do I get off the HN Blacklist?
In a stupid attempt to come up with an interesting title to a blog I wrote about 6 months ago on Legacy Modernization, I used a title that the HN moderators correctly determined was deceiving and they banned my domain. I learned from that experience and I have published quite a few blogs since then that are legit and stuff that I think the HN community would like. Unfortunately every time I post to HN no one can see it except for me. I don't argue against the original blacklisting, but I do think that people should be able to find a way off the blacklist if it was a mistake and they work to correct it.
Ask HN: go for master's or certificate in CS?
Hiya Hacker News. So I have a bachelor's in English, but I graduated with a 2.91 GPA. I contacted the university I'd like to go to (which would allow me to live with my parents rent free for the program), but they said a certificate program (about 30 credit hours worth of schooling) would be a better way to get into a master's program if I wanted to go that way after the CS certificate.

So I'm curious, should I try applying to a few other schools to see if I can get in with a strong enough application packet to make up for a low GPA, or should I go for the certificate program because English is just so much of a different course than CS?

Another note, i don't like student loans, and only have ~$900 in loans now. I'd have to take out loans to do all of the schooling from henceforth. Worth the debt?

Thanks for any advice, you wonderful hackers!
Here is a CPU performance comparison for the same set of servers. This metric is an approximation of EC2's ECU for other providers (the algorithm uses 16 CPU benchmarks and EC2 instance performance as a baseline): http://cloudharmony.com/benchmarks?benchmarkId=ccu&selec...
The sockets API would be much more future proof if C better supported polymorphism. That's usually the reason for using structs instead of arguments; in Windows, most API structs start with the size of the struct, effectively indicating the version. Makes binary compatibility easier when you add arguments in version n+1.

sockaddr_in is the way it is because of sockaddr, sockaddr_in6 etc. Judicious polymorphism could have led to fewer headaches converting IPv4 apps to IPv6.
Does anyone else find that announcement weird? "over -SEO", is just a kind of low quality content, so been a Google target for years. This announcement seems like it's just trying to scare off SEO fanatics, or an admission that Google has been using ridiculously naive linear scoring models for keywords.
Accurate Search Engine Advertising Centr
Laser 'unprinter' wipes photocopied ink from paper
Let me begin by saying that I don't think books aren't the right approach for every programmer - simply true beginners.

In my experience beginner programmers get stuck very quickly on very small and frustrating bugs, such as not understanding how to put together the syntax. If they can't overcome this quickly, you may completely lose them. This is where the book completely fails as it can provide no further assistance. Even if the answer is provided in the printed text, the individual may not "see" the difference between what they've typed and what the book has printed (it may take a while to get used to the computer-level of exactness you need when comparing code, and to overcome some punctuation blindness they may have developed from normal reading, etc.).

Similarly, I believe it is bad to read too much before doing anything, because as you read you believe you are following along: "uh huh, that makes sense, sure, got it...", then a whole chapter in you may actually start coding and notice you don't really know what's going on (or again, simply think you don't due to some simple syntax mistake). Now the individual will feel overwhelmed as they have an entire chapter's worth of material that they may or may not understand. Even if there are exercises in the middle, people often say "oh thats easy and makes sense" and skip it since its a "waste of time" (which is bad, because its very easy to think you understand something when they don't).

Having seen a few people use codeacademy, I now believe that it may need to be taken a step further: I think for the first few exercises the code should actually be ghosted so that the user is literally "tracing" over it (as opposed to the current technique of saying "now type this in the console"). For example, as I described in a previous comment, one person got completely stuck because it said "Now type variable.length.". The user didn't notice that the last period wasn't part of the code and unfortunately the error isn't very beginner-friendly: "Expected an identifier but found '}' instead" -- "what, I didn't type a }? And what's an identifier?". I believe ghosting the text and beeping when you type a character that doesn't match can give you a feel for the code -- its kind of how rewriting notes really helps it sink in vs. just reading them. Then, slowly take the training wheels off.
That looks like a full fledged game running in a canvas. It looks great to me. Is it somehow inferior to native Angry Birds? (I've never looked any other version).
If you're writing the logic from scratch and want a function object, make a function whose arguments are the variables you need to close over and then use boost::bind. That's the most convenient way.
AFRICA: High cost of child trafficking
I also took 6.001 in the '80s and loved it, although the hardware was totally inadequate for Scheme. Code ran painfully slow. I adopted C and programmed in it for 12 years before coming back around to Scheme.

I just pushed some new Scheme code to my photoblog service, OurDoings, before I came here and saw this post.
Your comment should be sitting higher. Dalvik is unlikely to be more expensive than a similarly complex JS VM.
If you are running additional queries and need a web service token (the site currently only allows you to generate 5 reports/day for free), ping me and I'll send you one for free.
I don't understand what justification there is for calling this "SICP for Python." I'm sure it's a fine Python textbook, but the table of contents bares little resemblance to SICP.