skysight-inc/HackerNews huggingface dataset:
If you turn a txt file with a list of "common surnames -> percentage of population" into a binary tree it will get more or less an order of magnitude bigger in memory compared to the raw txt file.

This is a common pattern: when you add a lot of metadata, for fast access, memory management, "zero-copy" transmission of this information, expires, ..., the size is not going to be the one of concatenating all this data like in a unique string.

If we want we can save more memory per key, with some tradeoff. Example: instead of having an hash table where every hash slot is a pointer (holding the key) -> pointer (holding the value) map, we can take the hash and use it as a unique string with: <len>key<ptr><len>key<ptr>.... for all the colliding strings. Than tune the hash table in order to have on average 5 or 10 collisions per hash slot.

That is: prefixed length as string and pointer (that is of fixed size).

Maybe we'll do this in future, and in Redis master we are doing a lot of this in the "value" side of the business. So if you store a list of 10 elements it will use an amount of memory very similar to storing the same bytes as a comma separated value.

But for now our reasoning is: it's not bad to be able to store 1 million of keys with less than 200 MB of memory (100 MB on 32bit systems) if an entry level box is able to serve this data at the rate of 100k requests/second, including the networking overhead. And with hashes we have a much better memory performance compared to top level keys. So... with a few GB our users can store ten or hundred of millions of stuff in a Redis server.

Better to focus on stability and clustering for now... and when we'll have a system that can scale transparently we'll focus on memory overhead to check if it's still important to reduce it, or since we want to be a very high performance DB , if it's just better to accept the tradeoff.
My latest habit is to think very carefully about code before I write it (maybe over several days), and then just type it out. The typing can take exceedingly little time in those cases.
I agree that you can dive into Rails and end up learning it well. And I also realize that people learn in different ways: some really like the methodical step-by-step approach and some prefer the dive-in-and-refine-later approach. You have to do what works for you.

That said, the point of my post is to accelerate the learning process. If you have a handle on Ruby first then when you are learning Rails you'll spend more time creating and less time debugging.

But your point is well-taken and no one should look at this roadmap as the best or only way to learn Rails.
I have to agree, I think TODO and FIXME comments are just a fact of life. I haven't seen a large codebase that didn't have them.

But, if you write one of those, at least try to be realistic. Too often I find comments saying "XXX THIS MUST BE FIXED IMMEDIATELY!!" in code that hasn't changed for years.
I can't resist. What was management's reasoning for not allowing source code control?
Yeah, Philtro and MailFinch are in the last 2 years. Been doing startup stuff for the past 10 though.

Great feedback, I'll add this to my list!
'No evidence' for vitamin benefit
Yes please! I'm building a social learning tool based on Drupal called Eduglu. See http://eduglu.com for general background/download + http://island.byu.edu for a working version.

I'd love to hear your thoughts (and anyone else's) on the existing UX/UI plus feedback on some planned additions. A friend who's pretty decent at UX designed most of what's there but he's left for a "real" job so I'd love to have someone else helping who can give expert advice on UI/UX questions.

You can email me directly at mathews.kyle@gmail.com or post issues at http://drupal.org/project/eduglu.
There is a movement towards reproducibility and open code/data in academic publications. A friend of mine, Victoria Stodden, has dedicated her career to this. See http://www.stanford.edu/~vcs/Talks.html for her talks on the subject and http://blog.stodden.net for some of her writings.
I code as fast as I need to. I could probably do something in an evening if it was an easy project, but trying to make a one-week project fit into one evening is a bad idea. In short: just let it take as long as it needs to. It's going to be difficult for you to tell if you're putting the right amount of thought and effort into things right now because you're probably not going to be maintaining it very long.

Believe me, once you're out in the real world, you will find out if you took a shortcut you shouldn't have. Experience is a tough but quick teacher. Just make sure you're not "learning" the same lessons over and over again.
I think I was being fairly serious. Do you have any reason to think that the part you quoted was a parody?
Or, are the poor in the US not _really_ absolutely poor (like rural farm-hand in China poor) but relatively poor (as in 36" LCD TV instead on 50")

Bingo. The poor of today are what used to be described as "middle class" (in terms of living standards) except with vastly more leisure time.

http://www.heritage.org/research/reports/2004/01/understandi...
Being badly burned by VSS in the past and subsequently viewing all source control to be bad. Also, a massive number of "<project name> - revised <date>" folders was good enough in their eyes.
yep but the main overhead is actually not the size of the key and value, but the metadata: hash table, pointers, redisObject with fields like refcount and so forth.
I posted this only on it's own merits. I'll admit he's abrasive (as the rest of that thread, and the one you linked to, shows), but he does make a few solid points amongst the vitriol.
Fashion industry internships: exploitation or experience?
Very fast. Let me explain.

I work in 2 modes: (A) At the computer and (B) Away from the computer.

When I'm in Mode A at the computer, I'm cranking out lines of code, testing, revising, testing, revising, etc. This process must be very fast. Several hundred lines of code (or whatever) in less than an hour. A complete cycle in less than a couple of hours. My guideline is that if I'm not working that fast, then I must not be prepared to work that fast, so I don't deserve to be at the computer. I should be in mode (B).

Mode B is generally much slower. Reviewing code, specs, or notes. Refactoring code. Laying things out with pen and paper. When I have enough work clearly laid out, I know it's time to get back to the computer and return to Mode A.

The most important thing for me in Mode A is to see results, any results, quickly and often. It doesn't matter how correct anything is, just as long as it's progress (or sometimes, reverse progress). I like to think of programming as making incremental progress in micro jumps, evaluate where I'm at, and go for the next micro jump.

Some of the best advice I ever got was from a prolific artist friend of mine who claimed, "I paint every day." So I started coding every day. But that wasn't enough. Now I make progress every day.

There are many definitions of progress. Sometimes I copy a few hundred lines of code, make a few changes, spit out a new app, and then start applying micro changes. Other times I decide that I need to see <x> today and find a way to get there. Things don't always work out as planned, but that's OK. As long as tomorrow's starting point is beyond today's, I'm satisfied.

That's my definition of fast. Not sure that was what you were asking, but I hope that paints you an accurate picture.
I don't know, I'm working at Treyarch, which is in Los Angeles, but our company (Activision) has studio in New Jersey (or New York).

But I think any big enough game developer studio would be happy to employ someone with such knowledge. From my narrow (have been for 10 years in the same studio) view - we often need people that do know MySQL, SQL in general, and other things that are not generally needed directly in game development - drivers, monitors (file, network, etc.), web servers, etc.

Just imagine if every PRINT() in your game actually dumps all that info in some server, and does not slow down you. You can do a lot of with that info - it can log what level you are playing, when, who is playing, which build, various settings, what you've killed, what textures were used, etc. Later there might be tool pulling that data and analyzing it.
So, the big mention in here is something about "two girls one cup" and how offensive it supposedly is. I keep asking myself, how gross can it be? I decided I didn't care for it but then curiosity got me. I went to wikipedia to read the description of that video and it is BAD. Really bad. Gross indeed. I can understand why parents got so upset about this. I had not idea about this video and yet it is a famous brand promoting this, even if indirectly. I guess the people that came up with this thought that everybody was already familiar with this video. Not everybody is a fan of Howard Stern. (I did watch some of his shows years ago and found them highly disturbing. Mind you, I was still in my early twenties back then so I'm not that old).
Hard to say, depends on many factors:

Am I writing new code, or adding to old code? If I am adding to old code, is it my code which I already understand fully, or someone else's code which I have never seen before? Is it a 10 file project, or a 10 project solution?

Is the task clearly defined? Am I trying to satisfy a previously written set of unit tests or am I incrementally changing my impression of what the final product should be as I am writing the code?

Do I already know everything I need to know to write the code? Do I have to track people down to get explanations of how other system components work?

How delicate and mission critical is the code, and how careful do I have to be? Is what I am writing going to be interacting with a production environment where failure means hundred thousand dollar losses, or do I want to analyze some data files on my machine?

How easy to debug is the type of program I am writing? Are we talking about an application where I can step through the code locally and see the null pointer errors for myself, or are we talking about something that involves hard to trace floating point math and linear algebra?

And of course, how complex is the actual coding? Are we talking about parsing a few log files and throwing them in a database, or are we talking about a custom file system using never before implemented data compression and retrieval techniques?
Yes, that might be what it means, but in all fairness, those same people decide if you go to jail for killing someone or not. There is nothing technically to prevent the legislature from legalising murder. Or torture as effectively they did during Bush years. So if they are an evil to be endured in such very fundamental matters, why not when it comes to a very serious matter too, the exploitation of people.

These ideas are of course very unconventional, hence why they get downvoted so freely without any counter argument, but does anyone in this website thing seriously that the rich do not have such tight control over the government that they are at liberty to legitimise theft pure and simple.

If not, then does anyone in here possibly think that any person in the rich list is so marvellously superior to any of us to deserve having the wealth of an entire country?

If so, do enlighten me. I will change my opinion entirely that there is a deep flow in our society which is fundamentally unfair and affords much cruelty to many.
This is exactly what I needed! The canvas is too damn slow, and open GL is too confusing and close to the metal.
I have been putting off my game for over 3 months because I knew I would have to write this first, now I don't! Thanks!
What language do you use?
I don't know the scope of your app, but if you're just starting out with Django, try Google App Engine. It's super scalable and it's easy to deploy. Also, take a look at this sample search app that runs on Google App Engine - the source code for it is on github and this link the guy goes into how he did it: http://lethain.com/entry/2009/mar/05/deploying-django-spring...

As about other hosting issues, I usually find django's official site to be pretty thorough:
1) http://docs.djangoproject.com/en/dev/howto/deployment/modwsg...
2) some hosts - http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts
3) Amazon EC2 Django - http://blog.awarelabs.com/2008/amazon-ec2-basics-for-the-cur...
I'd agree with this general sentiment. If I need to finish something quickly, provided it's not ridiculous, I will. Also, keep in mind that when you've been writing code professionally, you have access to either code others have written at your organization, code you've written, or both. At times, this can help dramatically. There are countless times when I think "I know I've done this before" and I rip out 10-15 lines of something I worked on 5 months ago and go ahead and adapt it. There really isn't any reason not to do this, IMO...

Also, in general, I don't get a requirement/feature/enhancement/etc and start slamming away in my editor. My personal preference is to think about it, scratch some ideas down on paper/white board and just stare at my monitor while I run everything through my head. It's always my first reaction to think I need to start typing out some code - and [for me] that's usually not the most efficient approach. Once I have a concept/logical-flow in my head that I have run through several times, I'll write that in my editor as comments. After that, it's really just me writing code that adheres to my comments rather than trying to design the program while coding it.

I'm not at all saying this is the right approach for all, but that's certainly the case for me.

cheers
this. Read "Freedom Evolves" or the shorter precursor "Elbow Room". This confusion of free will with indeterminacy, and the specious connection with Quantum Mechanics (taken to the absurd extreme by Penrose) really muddies the water wrt AI/cogsci and the understanding of consciousness, qualia etc.
I'm a huge FreeBSD fan and run it on all my servers. I've tried many times to use it as my main desktop/laptop system, but it keeps falling short in those few damn nice-but-proprietary things like Skype and Flash.

I found a Linux that feels like FreeBSD, though. Arch Linux: http://www.archlinux.org/ + http://wiki.archlinux.org/index.php/Arch_Compared_to_Other_D...

Doesn't have ZFS, but stays minimalist and constantly updated.
Thanks. I like Mediterranean veggie food too.
Acquire Wisdom Over Wealth
My test, revise cycle averages about 10 seconds, with a long 15 minute cycle thrown in about once every 30 short cycles.
Strand Craft 122 - Amazing Boat
The first thing which comes to mind observing this new mega-yacht from Gray Design is fast attack craft.
That's pretty awesome actually, for several reasons!
Not that fast, but that is mainly because I am a noob, and I take pride in trying to avoid writing shitty code. Insted of just hammering away at the keyboard and using whatever just works I spend some time to make my code more redable and easy to maintain. Also, since we use TDD we end up writing a lot of tests for each pice of code that goes in to our product.
Well you have five points taking a very unconventional stance, thus, I do not think your argument is ridiculous at all.

I would be more interested in the solution however, taking into account the practicalities. I mean, if the government had the billions of Gates, besides using them to pay off their debt, their only option might perhaps be to give it to people on benefit who do nothing with their day whatever, rather than, as Gates has, though a rare occurrence, employ a lot of people for a very worthy cause.

My point I think is that to allow people to make as much as possible, allows the society to benefit from the fundamental ideas of the free market, while, to give it to the government effectively locks this wealth in bureaucracy and grant it to people who might be very stupid and waste it all entirely to no good whatever.
I spend more time thinking about program architecture and design than actual coding.

Unless it's something simple, then I can just open vim or textmate and go to town. If it's something that I know the development scope is fairly small I may even dive in and figure things out along the way. It really depends on the project.

I can crank out a few hundred lines of code per hour but that's totally subjective. 10 lines of code in node.js do a lot more than 10 lines of code in C.

There's also the revision stage if it's a project you know you'll come back to. I generally do spend more time refactoring than the initial prototype. I would hope a lot of developers are like that.

For example, I wrote a Meebo libpurple connector in glib in about 3 hours, but I spent 2 days refining it before I could consider it useful because I had done things that were silly and not the normal way of using glib.
Programming for me consists of time spent thinking and time spent coding. I've found it best to not try to plan out the entirety of the program before coding; code some sort of entry point and begin growing the program from there.

The process of thinking about how to grow the program can take a very long time, depending on how trivial the program isn't. It might involve writing some test programs to convince myself my ideas are sound. It might involve writing some ideas down on paper. It might involve playing a game while my subconscious simmers the problem on a back-burner.

Once the thinking is done, the coding itself usually goes pretty fast.

If I were to say something like "I'll wrap this up in an evening" or "I'll write that during lunch", it probably means I've spent sufficient time thinking about what needs to be done that all I need to do now is press keys on the keyboard to turn my thoughts into code. That's generally the easy part of programming.
I actually setup Textmate to do a completion on # with

# `whoami` | `date +"%Y-%m-%d"` |

I find #1 to be very useful, primarily for the source control granularity issue. The other useful thing about these type of comments is that if you look through the code, and you spot something that looks like a hack job, usually a comment like that indicates it wasn't the original author who did it. If you're lucky, you'll be told why the hack job is in there, if you're not, you can at least begin the process of finding out (or removing if need be).

#2 suffers from a similar invisibility problem in source control. I comment out code when it has the possibility to come back. However, if I'm not the primary author of the file, and a feature has been removed, the HEAD has no indications that the code was ever there. I wouldn't know about restoring it, I'd waste time reimplementing.

I think the author's heart is in the right place, but it seems to me that he either has an encyclopedic knowledge of his team's codebase, or he only works on projects by himself.

Tool support could help here (maybe Xcode 4 with it's timeline feature), where want you want is a button that says "show me all the lines this file used to have" in some sort of ethereal, back from the dead, view. GitHub does this somewhat with Compare View[1], but it would be nice from the editor as well. I'm sure someone will come in and tell me that emacs has had this for 20 years ;)

[1]: Check out this huge one: http://github.com/sinatra/sinatra/compare/0.2.0...1.0.a#diff...
You've got the wrong post. Move your comment over here: http://news.ycombinator.com/item?id=1544351
No need to be sorry as you're absolutely correct.
I partially disagree with #4: it's actually a good idea to cite your sources - certainly a better idea than a lot of the other boilerplate commenting I see. If your only source for a business rule is "conversation with Bob in Sales" then say that.
I love Rokon as an open source OpenGL ES engine/library for Android

http://www.rokonandroid.com/

Plus, I like the license better.

It's unbelievably easy to use and to get started with.
It's also inspiring, and scary, to see that he's been broke before the Tesla IPO because he completely believes in the success of the companies he's involved with.
That is unconditional faith in ability.
For a long time I've had a wonderful HyperCard application (not written by me), and I've dreamed for years how I would just love to be able to disassemble it and re-write it in a modern language, like Python. Unfortunately, I have no idea where to find something to even run it with, much less look into the internals. Any ideas?
If you've already done this backwards, there is a book called Ruby for Rails that teaches advanced Ruby from the point of view that you already use Rails but haven't been able to get very far into the source. A bit outdated, but still pretty good stuff. (http://www.manning.com/black/)
While I think the format for criticism is a bit too nit-picky, I wont't totally argue against that. I just wanted to provide some context. He sure has an axe to grind…
Not that again:

http://mohrslaws.blogspot.com/2010/07/this-is-why-nobody-tak...
I agree about type 5 (the TODO comment) but I also think there is a lot of value in type 4. I would not call it "lifestory" but "business reasoning". Far too often one can visit code and think - I know what it does, but why does the business want that to happen? With comments like that the origin of the request is now obvious. And as we are all being Agile-y now and no-one writes down business requirements anymore, type 4 might just save your ass.
If you have to mention requirements in your comments, don’t mention peoples names. Jim from sales probably moved on from the company and most likely the programmers reading this won’t know who he is. Not to mention the fact that it everything else in the comment is irrelevant.

If this is the best knowledge you have of the requirements, then by all means document it. It should be documented in emails to your boss (along with your failed attempts at getting better requirements,) but adding a comment in the code can also be helpful. Maintenance programmers tend to assume that there's some valid, if depressing, reason the code is the way it is, and it's nice to let them know that you didn't have any good reason for doing it the way you did.
KissMobs - Join the mob, get kissed. (an @startupweekend project)
I like his take on wisdom being proper model construction but I don't see the need to bring religion or any other belief system into it.
Your basic pitch seems to be to make administrative work that was previously tedious into something that's relatively fun, easy, and quick. UX improvements might help, but are there instead ways to automate administrative tasks away? I'd second listening to users, since I don't have any sense of what the pain points are (but understanding pain points beats feature requests).

Didn't sign up, but some concrete thoughts on the marketing site: avoid very high contrast, e.g. true black (#000) on true white (#FFF). The orange text on blue vibrates visually and is somewhat hard to read. Overall, really like the simple, benefits-focused presentation. Great idea and good luck on it.
One thing to bear in mind about Japan: they put people in mental institutions rather than jails. All it takes to get a person committed against their will is the opinion of one family member and one psychiatrist. In the US, a court order is needed to hold someone against their will for longer than a few days.

Generally speaking, "troublemakers" will go to a mental hospital before going to jail. That's probably why suicides are so high in Japan as well: the mental health system is so overloaded they can't appropriately deal with real problems.
This is pretty much the system that I use, but (B) is often at the computer, e.g. open to a text file that contains design notes.
http://pastebin.com/PsecNBvB

(To be honest, I think clojure has its purposes, but a one-off calculator page isn't one of them. Use the right tool for the right job and all that.)
TODO's and FIXME's are a fact of life, but if you are using a bug or issue tracker, that is probably a better place to report these. Otherwise you'll have tasks in both your code and your issue tracker instead of a central location.