skysight-inc/HackerNews huggingface dataset:
> Without readability and comprehensibility, you cannot easily reuse your code.

Without reasonable efficiency, nobody would want to reuse your code. In fact, one of the hallmarks of reusable code is that it is efficient in a wide variety of circumstances; frequently the author of an API cannot predict what it will be used for, and thus must at the very least avoid pathological inefficiency when possible.

> I was not thinking about performance, about the efficiency of what I wrote, at all; I simply did not want to think about it at the time.

Bad software happens when you don't think about the efficiency of what you're writing at all. This perspective is completely detached from reality; in the real world, your code runs on a real machine and does real work. Sure, in some circumstances it's entirely appropriate to write inefficient code, but that's a decision that should be made after an assessment of the problem at hand. To intentionally ignore efficiency as a matter of policy is to ignore the facts of reality.

At the very least, you need to consider the performance impacts of the data structures you use. In most modern languages, it's not terribly difficult to use e.g. a hash in place of an array, and in the right circumstances it can make the difference between usable and unusable software. I can't even count how many tools I've used that, due to a poor choice of data structure, could not scale beyond the small data set that their authors tested them against, and were thus useless beyond a very limited scope.
It uses submission titles AND comments. How would you suggest going about normalization?
"The future is already here, it's just not evenly distributed" is the Gibson quote that often gets applied to technology, but it applies as well to knowledge in general.

Who is arguing against any of this?

Maybe not anyone at a certain level of academic discourse, but US society and law continue to argue against it: the average person would attempt to make an explicit argument, and laws on the whole reflect an implicit discipline-and-punish philosophy more than the rehab hypothesis.

There's a long way to go before this is democratically-actionable knowledge, and I think he does a good job of presenting some easily-digestible food for thought.
Who wants to team up and replace MtGox?

This is absurd. Anyone with a clue about anything knows better than to use unsalted MD5 or better yet, can imagine better ways to partition security for a system to prevent this, and at the very least can implement measures to prevent mass withdrawl without having to revert to transactional rollback after the fact.

Really sad. Was MtGox first? Why did they have so much volume anyway?
I noticed that as well. I was kind of surprised by it. Microsoft was well on its way by 1991 when they finally registered their domain name. The only thing I can figure is that back then, no one was really thinking, "This Internet thing is going to be the center of the computing universe in 10 years." Microsoft released Windows 3.1 in 1992, just a year after their domain was registered.

Windows for Workgroups 3.1 (1992 release) was Microsoft's first operating system where the fact that the computer was intended to connect to a network was front and center. Maybe Microsoft didn't see the internet as a logical imperative at this early stage of computing.
It's good for portuguese, but not enough for business.

For business, you surely do want to make selling legal. And comfortable.

You have to actively kick the thing out of the door in order to bootstrap a psych tourism business.
This isn't a weakness in BTC. This was a weakness with MtGox. They're only related because the attacked tried to get out of BTC into USD. It's not really BTC's fault.
A word of caution... Django should always be installed from Pip. Avoid easy_install, apt and yum.
http://hntrends.jerodsanto.net/?q=ruby%2Cpython

http://hntrends.jerodsanto.net/?q=rails%2Cdjango

Interesting that Ruby stays below Python but Rails stays well above Django.
Mt. Gox is an exchange, not the currency. The currency is secure. This is analogous to a bank getting robbed.
I was surprised to learn that the search API returns hits on usernames when they appear outside of the post/comment content.

I'm looking now to see if there's an easy way to filter around it. I've also been emailing with one of the ThriftDB guys and I'll ask him as well.

If not, it'd be very difficult to filter those out because I'm not currently (nor would I want to) retrieving all the matching items, just the number of hits.
Queued At - Share Smarter Across Your Social Networks (Dallas Startup Weekend)
So much for "There are no chargebacks on BitCoin"

Well this is trading through an intermediary, you can't really expect it to work that way otherwise something like this would have a lot more incentive for wrongdoers.

If you really want to have no chargebacks you have to go the harder route of one on one trading, with everything that comes along with that.
As computing resources continue to grow, efficiency falls further behind another concern when writing code, though.

I've spent enough time diagonalizing 10,000 by 10,000 matrices to get frustrated with anyone who claims that efficiency in time and memory ain't important any more. Maybe not for your code...
Oh yes, I forgot you were using the HNSearch API. By the way, I hope you win the API Contest (don't they decide tomorrow?). You for sure get my vote!
Hm, if it is using the same hash all over the world (on your computer it has the same salt as on the MtGox server?), what is the point? I don't understand how this salting scheme is supposed to work?

Edit: Ah OK, the salt is encoded in the String.
MtGox != Bitcoin. Transactions on bitcoin network cannot be undone, that is true; however, MtGox will undo the transactions inside their system (buys and sells within MtGox). The only thing that cannot be undone is the withdrawal of 80 stolen BTC from a MtGox account into Bitcoin network.
Ok it's done. Thank you very much for your help.
I can confirm that the alleged dump is the real deal.

Some passwords are md5 hashes, some are salted md5 hashes (utilizing the crypt[0] function). I did not log in for a long time and my password was still unsalted, so I assume that converting to salted passwords was done either automatically on login or on password changes.

0: http://www.kernel.org/doc/man-pages/online/pages/man3/crypt....
About 1600 passwords in this database are hashed with plain md5 without salt. I found quite a lot hits (34% success rate) using a rainbow table cracker.
The salt is one of the other fields in the row? I'm pretty sure I used unimportant password, but I can't remember for sure!
Sure I believe in hard drive failures. I'm not saying that hard drives don't fail, I'm just providing my experience with hard drive failure. Where did you get the idea that I don't believe in hard drive failure?

I realize that I'm just one data point. What I don't get is why people downvote me for providing this data point, whereas people don't seem to have a problem with blanket statements like "HDDs do fail, too. A lot." that provide zero data points.

Moreover we are talking about SSDs vs HDDs here. "HDDs do fail, too. A lot." may be true, but if according to Jeff Atwood, a SSD proponent, on the order of half of SSDs fail in the first year then HDDs may fail a lot, but SSDs fail a whole lot more.
Why Craigslist Is the Worst Site on the Planet
This is why Gtk+ implements icons as a set of vector / raster images to be displayed at various sizes. It makes resolution independence really easy. This has been important to Gtk and GNOME for a long time since it's a big issue for accessibility which is not only important socially and morally, but actually a key legal issue for adoption in large companies and governments.
Awesome, thanks! The voting starts tomorrow. Do come back and participate ;)
They look like salted hashes to me.
There are similar metrics for job openings. It seems plausible that Python is becoming an all-purpose language while the focus for Rails / Ruby is on web apps. If true, this would be reminiscent of Perl v. PHP.
I remember discussing this with a friend over 20 years ago when we were just starting college. Our thought then was that "social studies" and "history" classes we'd had were, for the most part, garbage. Didn't matter what year/class it was, you'd inevitably end up at the end of the semester with about 3 days left and everything from the US Civil War to modern times to skip over.

Every year a different teacher would ask us about something from early 20th century, and we'd say we never learned that. Cause we hadn't. I had three different classes between middle and high school that kept covering the same historical periods (poorly) and the teachers mostly weren't really interested in it anyway.

I certainly can't imagine that institutionally things have gotten better. What I do envy now is kids who have the whole world at their fingertips, but I suspect the majority of them aren't being exposed to the learning and information potential available. They're just playing xbox and posting on myspace/facebook, like everyone else.
I hate to look down my nose at other programmers, because I understand that we all start somewhere, but if you are building a financial exchange and you encrypted passwords using unsalted MD5 at any point in the history of your product, you have proven to me that you are learning as you go, and there is no way in hell I'd trust you with any significant sum of money.
No, it's not. It's BETA release.
Ads on mobile is going to be a marginal business compared to the web. Screen real estate is at an absolute premium, alternative revenue models exist (such as charging your users directly), and there's a high barrier to any call to action (such as signing up to your service on a mobile keyboard).

I doubt that any ad network will gain the traction to dominate the space.
In that case I would do it by number of submissions (posts) + number of comments for each period (3 months I think, looking at your graphs?). I would normalised all quarters to the last complete quarter.

So if say in q1 2011 there were 1m posts + comments, and in q1 2007 10k, multiply the count for q1 2007 by 100.

It would be truly great to have this normalisation optional, e.g option to normalise by comment+post count and maybe also normalise by number of users (could be an interesting comparison). And perhaps have them super-imposed on each other!
Hm, aren't they using Linux after all?
Doesn't the internet then violate this patent?
XML vs Json http://hntrends.jerodsanto.net/?q=xml%2C+json that's close
david eppstein, prof at uc irvine, has a great collection of fundamental data structures and algorithms coded in python available at http://www.ics.uci.edu/~eppstein/PADS/
Add Global High Scores to Your iOS Game w/o a server
Perfect, will do. Thanks!
You can't unsubscribe yourself and your property from the government services, but you can from mtgox. That's the difference.
yeah it's ridiculous.

i.e. you just used the term "software" on the internet, if we applied the patent law for software to that, you'd be found guilty of infringing.

what I'd like to see is a community effort by programmers to create an arbitration process that bypasses the court system. Software disputes should be judged by those who actually know the topic, instead of some judge who has to rely on "expert" testimony that get paid by the patent trolls
Then start your own business because that is true for 100% of the business. But they do spend a lot of money to make employees feel that they are very valuable and their work is worth a lot and they are adding a lot of value etc. Watch the move Matrix to understand the philosophy.
It's a possibility. States do work to undermine things that threaten them. The Liberty Dollar project, for example, was recently shut down by the US government: http://en.wikipedia.org/wiki/Liberty_Dollar
. Bitcoin is a potential threat to the state because it provides an ideal instrument for tax avoidance and competition in the drug/force trade.
well, looks like there is a service which would deserver that domain...
The difficulty I see here, if you're not incorporating officially, is that you are assigning equity on future actions that neither of you know what the value will be. What I mean by that is that say for instance he is given 60% equity with the idea in mind that he will do x amount of work. If three months down the road you think he's not doing x amount will you feel satisfied in giving this type of equity. I understand you do not want to be taken advantage of in this scenario as much of the benefit from a start up is gained in the equity but attempting to decide the equity decision so early on especially if neither of you is bringing something particularly unique and/or valuable to the equation is difficult. For that reason I agree with your partner in that you are probably better of waiting until later on to decide the equity split. As long as you have the general agreement that you are both in a partnership and are going to execute on whatever idea I believe the equity question will more or less work itself out as the work is completed.
There's still Trade Hill[0] I guess... Although it would be fun.

Edit: And perhaps a good chance to use bcrypt over say MD5 or SHA256. I'm surprised bcrypt wasn't the go-to implementation.

[0] https://tradehill.com/
IANAL, and (especially) IANA[Patent]Lawyer, but, BitTorrent is such a precise design, I imagine all they would have to do is file a patent for the more specific nature of their work, much like how the mp3 format is patented.

That said, .... wow @ that patent.
Seems that "mining" the MD5 passwords is now more profitable than directly mining Bitcoins - at least there's some GPU power out there ;)
Pick your Archtype (CEO, Professor/CTO, Humanitarian)
I hope you're a woman.
I, for one, do not welcome our new intergalactic overlords.
1) You can use ERB in Rails apps without including it in your Gemfile
2) Rails generators spit out ERB. The Haml gem doesn't include any generators, to my knowledge
3) The documentation is ERB-focused
Yea, Coffeescript incurs no penalty because it's so close to Javascript, but therefore it doesn't fix Javascript's flaws either. Coffeescript still doesn't have proper lexical scoping and it doesn't have a good standard library.
You don't understand. There is a difference between the currency and the exchange. The exchange stores the trades internally without actually doing any bitcoin transactions until the time of withdrawal.
You can talk to people who've been there, but each country is pretty different and there are major differences within countries, as well.

As far as the violence goes, it tends to be cyclical. Certainly in parts of Columbia FARC activity is still a major issue, and Venezuela is bad for petty crime and assaults. You get the occasional Shining Path incident in Peru, but it's very low-level. Bolivia has regular strikes that bring the riot police out in La Paz, but the rest of the country seemed perfectly safe. Never had a problem in Argentina, or heard of anyone having problems in Chile, Uruguay, or Paraguay. Brazil is mostly kosher, but I heard of a few people getting robbed, or more likely picking up a girl from a club and getting mugged after.

But seriously, do go down if you get a chance. I had a blast there.
These trends don't account for traffic increasing to the site (and therefore posts/comments) as time progresses. That makes this less useful.
Like P3 being the only actively developed branch. The P2 line will only get bug fixes. Anyway, the Django core is looking at the effort for moving to P3 so it will happen. The move was slated to take at least 5 years and we are only at the half-way point.
Yeah, I agree.

I was working out a prototype recently and we're turning it into production: it's falling down hard in the 'efficient' category, although it's really easy to read.

If I had thought about efficiency more when prototyping, I wouldn't have had to do the rework that is now looming.

Efficiency matters. Speed matters. Let's not delude ourselves that they don't.
Interesting! Have you looked at also generating "privacy nutrition labels"[1] automatically?

[1] http://cups.cs.cmu.edu/
Coincidentally, I was also working on an HN Trends app a couple weeks ago (though I got distracted and haven't finished), and mine is normalized (by number of comments). For example: http://hn-trends.heroku.com/trends?q=scala%2Cclojure

Your app looks a lot better, though! (And my dataset ends around Sept. of last year.)
I should say it again: This monetary system have no authority behind it and as such is going to nowhere. Disclaimer: I work as financial analytic and at least have some knowledge of how money work.
Had the same idea myself as well, bought hnstats.com (although I admit, I looked for hntrend and hntrends.com)...not enough time in the world to do all of these things. Great job with this.
The title of an article I read recently comes to mind, "You don't know the problem." That is, creating an un-hackable system isn't the problem.

It's probably unrealistic to expect that anyone will ever create a completely un-hackable system. Rather, one should design their systems to fail gracefully under attack.

If someone breaks in to my Citibank account, it doesn't much matter to me, because the banks have the authority to roll back transactions with the push of a button. Their power to do so is the greatest layer of security in the whole system; just as we have seen with Mt Gox.

Unfortunately, Mt Gox is not bitcoin, it's simply an exchange, so it's once removed from bitcoin itself. The owner of that account still lost $1000, and no one can reverse it. Contrast that with bitcoin, and you can begin to see the problem.

This is a fundamental issue with all currencies, not just bitcoin. It's a trade-off. When you hold currency, you hold responsibility for securing it. If I kept $500k in USD (paper currency, bonds, whatever) under my mattress, I'd have no recourse if someone broke in to my house and stole it. That is why I'm ok with keeping my money in a bank. I give up a lot for it, but I gain a lot of security.
arpa is still published. I got a resume a few years ago from a guy who's email address was something@arpa. That's just bad ass.
I think the biggest advantage of skip lists is that if a man held a gun to my head and forced me to implement a logarithmic time algorithm I could implement skip lists in an hour or so from memory. Any of the others...maybe given a week and a couple of good books.
Stargate.com is a peculiar one to be on the list.

Apparently this refers to Stargate Information Systems:
http://www.decuslib.com/decus/vax88b3/vmsnet/suppinfo/servic...

You've got to wonder whether the term somehow inspired the movie.
Careful with the "smart enough not to be poor" claims, especially among the lower socioeconomic classes.
Maybe I'm missing something, but what would be the benefit to using this service to handle leaderboards for your iOS game instead of just baking in Game Center support and letting Apple take care of keeping your persistent score data?
Smooth CoffeeScript is a book about programming, problem solving, looking into how algorithms work, and learning from it. Those things really appealed to me in Eloquent JavaScript.

Smooth CoffeeScript uses CoffeeScript because it can express the code much more clearly than JavaScript, but the book could have been written in another language; Python for example.

I created it because it was a book I would like to read. It is great that there is now a handful of resources so you can pick what suits you best when you decide to learn CoffeeScript.
I suspect the downvotes come from around the world, not just California.

http://www.hackrtrackr.com/

http://news.ycombinator.com/item?id=752262 (shame can't see the vote counts on this one any more)
You would be surprised how few developers know about bcrypt. I didn't learn about it till the Gawker attacks and all of the amazing threads by the tptacek and the other crypto guys that wouldn't stop saying "use bcrypt!*.
A line of credit? Never heard of that. Golden handcuffs are generally in the form of deferred bonuses, vesting periods, etc.
Answer to Q3 is incorrect. It should be d:

- the function does not handle overflow (say x=1024, n=1024 in most if not all current C compilers)

- worse, the function does not handle the case n<0.

The "n<0 => function returns 1" case led me to rule out answers a, b, and c.
Absolutely. I wish I had enough time and security knowledge to do it.

A BTC bank will have to have some no-kidding competent security around it.
I'd check out Apple's Game Kit stuff, they allow you to do this with their servers:
http://developer.apple.com/library/ios/#documentation/Networ...
Another example is the EICAR Standard AV Test Program

http://mirror.href.com/thestarman/asm/eicar/eicarcom.html

It makes a few selfmodifications to run "unprintable" opcodes. (See Steps 12-14.)
For reference, I just receied this email from MtGox. I'm fortunate in that my MtGox password is not used for anything else.

Edit: the email was longer than I expected and formatting messed up a bit on HN so here's a pastebin link: http://pastebin.com/H5bgDYhC
This hasn't been a problem for me. Their datastore is very fast if you take the time read about it. The documentation is great: http://code.google.com/appengine

The project you are working on should determine the technology stack, for most things I prefer GAE instead of EC2 (I have projects on both). Feel free to use my template/example from github.

https://github.com/mcotton/GAE-template
https://github.com/mcotton/GAE-blog
To add to your comment: laziness also enables much of this flexibility.
Flask looks exactly like JAX-RS that ships with Java EE 6:

http://download.oracle.com/javaee/6/tutorial/doc/gilik.html

Unfortunately JAX-RS has not been integrated with JSP or any templating languages yet.
Very cool.

Amazingly, C# is talked about precisely as often as C++!

http://hntrends.jerodsanto.net/?q=c%2B%2B%2C+c%23

;-)
There are duplicate hashes. Taking out the dups, there are 1610 md5 hashes. And 34% of these are crackable with a rainbow table. This means they are unsalted.
you can recognize salted hashes from unsalted ones just by looking at them? open the file and search for 5f4dcc3b5aa765d61d8327deb882cf99, at least 1,600 passwords in that list are unsalted. (those without $1$)
I will draw an angry dad sketch for $8
For the people who says that HN discuss less about startups, the trends actually shows something else: http://hntrends.jerodsanto.net/?q=startups
It's probably a bad idea to use durable sockets for reliable pubsub (I know I documented this in the Guide but that was before it became clear that this functionality is kind of bogus).

Explicit identities are dangerous for servers since they create entropy (state accumulation) unless (and even) if you set strict high-water marks.

They're also a real pain internally and as part of simplifying 0MQ's construction we eventually want to get rid of them.

There are better ways to keep and synchronize state among a set of subscribers. See the detailed Clone pattern in Ch5 of the Guide, for example.

http://zguide.zeromq.org/page:all#A-Shared-Key-Value-Cache-C...
What else is in that bookmark folder of your favorite HN tools?
According to: http://php.net/manual/en/function.crypt.php

CRYPT_MD5 - MD5 hashing with a twelve character salt starting with $1$

So the hashes you see beginning with $1$ are probably salted.
Referring back to the article, setting your own goals and having a gameplan for your career and finances that transcends your current gig and workplace.
In theory, it just slows it down so rainbow tables are ineffective (not that people need them anymore), and it requires you to brute force each password than brute forcing one password and then checking it against everything.

In reality, it's all MD5 and the passwords were leaked to a community who are running tons of GPUs to brute force hashes. So it's kind of irrelevant.
Clients From Hell stories
https://bitbucket.org/joedicastro/ted-talks-download/wiki/Ho...