skysight-inc/HackerNews huggingface dataset:
After many years of software development I have briefly used Eclipse which sucked (IMO) and VIM which was slightly better than good old vanilla VI and nothing else on your list. (Note: as a developer.) Granted, I don't do a lot of web development but my point is just because there are some popular tools for your nitch does not mean there has been a fundamental shift in software.
Can America Function More Like a Fiscally Responsible Company?
Until high profile people write public complaints that hit #1 on hacker news.
Bundler Best Practices
I heard a talk about this technology about 4 years ago from MRI/NMR researchers at my university working on it. The big problem is getting the right biomolecules that will bind with the target cancer. This is apparently a common problem in many scenarios, especially targeted therapies. Other than that the technology sounds very interesting, as you can potentially detect a single cancer cell in the sample.
What happens when you stick your head into a particle accelerator?
tldr: "Apple would not release a music streaming service anytime soon"
PyGame is lower level than LOVE; it lacks several of the nice extras like built in sprite animation and a physics engine. On their own, each individual feature of LOVE is not a huge deal. But I've found that they add up in the time it takes to implement them using PyGame.
Briefly:

You have the most important problem solving skill of all (and one of the rarer): recognition of your own limitations.

http://norvig.com/21-days.html

(Hopefully more later if I think of more)

Addendum: I don't feel like it's as important to take classes in computer science. More important is to take classes in math, because math is a lot harder to teach yourself.

Once you learn a little math (say discrete, number theory, and linear algebra), I think you will probably have the mental toolset to think scientifically and learn a lot of the computer science on your own.

A basic class in data structures and algorithms might be nice because it will give you homework and fill in some gaps you might have from teaching yourself, but after that, computer science learning can be largely self directed. Automata is a really nice class to have if you can find it, because it ties in with the math, but it's not necessary for most industry programming.

I never took classes in optimal search algorithms, computer vision, or statistical programming, but I've done work in each of these three things. I taught myself as much game programming, graphics and user interface stuff as I learned in classes. I had classes in compilers, languages, automata, AI, robotics... these were all great, and not things I could easily have taught myself, but they were also specialized, and haven't been so directly relevant afterwards.

Linux is all experience; I haven't been on the job long, and I'm still learning it. Earlier this week I found out that I was running some of our servers to max CPU usage because I left greps running on them (didn't know the difference between suspending a process and putting it in the background)!

Quitting is also totally cool if you can manage it. I used to be a graduate mathematician. It was very hard to figure out that this wasn't what I was supposed to be doing with my life... but figuring it out and leaving was the best thing I ever did. I would have been very unhappy. Now I'm happy! I was also extremely fortunate to have a father who was happy to support me switching fields. Your post reminds me how important that was, and makes me grateful enough that I think I should go call him.

Good luck, and... uh... <small voice> a hug.
Are you sure being GNU matters for such users?
http://www.constitution.org/trials/penn/penn-mead.htm
the header title on the page made me stop watching
Atlantropa - the dam across Gibraltar
To be good at programming, you first have to enjoy it.

Try contributing to an open source project, and make a few friends in the FOSS community. Treat it as an art. You'll be good at it and happy eventually.
What you need is simple. All below are metaphorical, not physical

1) Cojones - Extra large

2) A Bulldog's jaws - Once you grab on to something, you don't quit.

3) Bulletproof vest - There'll always be detractors, hanger oners, I-told-you-so'ers. Let it all bounce off.

4) A Dog neck cone - For focus. You only look back for lessons.

I'd add more, but with those 4, you can accomplish pretty much anything.
This is where the 37 signals folks would politely say no. You can't please every user, and something tells me that a majority of gmail users aren't sporting a 10k contact list.
It's one way to look at it. I'm used to the behavior of the scroll wheel, and also the scroll keys - moving the cursor down will necessarily move the underlying page up to keep it visible, so that equates to 'scrolling down' in my mind. This was completely logical until smartphones came along. Obviously Apple are finding a lot of their users believe (or soon will believe) otherwise.
I get a really mixed picture which is all secondhand. As I said in another comment, my ex (10 years ago) was Brazilian-Japanese and several of my brothers and sisters in-law worked there as guest-workers in the second tier subcontractors. They weren't treated as true "Japanese" because they were born in Brazil. They were looked upon as ruffians.

I also see stories, mainly not mainstream, about disaffection among young people with the conformity, the bullying in school, the lack of opportunity if you are not a graduate of U of Tokyo.

And then there are the larger issues that you get with an aging population where the replacement rate is less than 1. Who pays the retirement bills? We are facing similar issues, but without the same urgency.

This isnt real criticism, just impressions. I would love to have a Japanese native jump in.
That is the physical reason I referred to.
$10 says that the support guy has no idea why it's not easy (or whether it's easy), which is why he gave a completely generic non-answer. And even if it isn't a top priority, the support guy should definitely put it into the system as a feature request, ideally with a link to the issue so the customer knows it was entered. This might as well have been an automated email:

Dear <customer>,

Unfortunately, we don't allow <feature requested>. If you'd like to see us do <feature requested> in the future, please follow these instructions to request it...
Lone Star State wants to tax the internet
Getting Started with Devise Authentication for Ruby on Rails 3
Equally though - it's far from an unforeseeable problem, this individual is unlikely to be the first affected and they've had the data to see this coming for some time, and it wouldn't be impossible to fall over to a separate, more scalable system, for the larger user databases such as this.

Bad idea, bad response.
See also: How we've been doing this in memcached and membase

http://dustin.github.com/2010/06/29/memcached-vbuckets.html
The one constant in my puppet configs:

file {
"/etc/gemrc":
content => "gem: --no-rdoc --no-ri\n",
mode => 644,
owner => root,
group => root
}

Well, maybe that and ntpd.
WordPress add horizontal rule button to editor
Was "not knowing" that algorithm preventing you from doing anything before you actually found it? If your goal is to learn for learning sake, then fine go buy some books and learn. If on the other hand, you are trying to build stuff, then by all means start building stuff and learn what you need along the way.
The SpeakBin App - Twitter for Audio
I really never had a large network of contacts. I just used DICE and the like. My technique is just do as many interviews as possible when it's time. If I wasn't so lazy I would market myself better. I have a bunch of other rules but they are for when you are already on site. I can post those too if you want to know.
The moral of this story is that, when you pick an artificial number as an arbitrary limit, you should always pick a power of two. Or a power of two, minus one. When people hear that you can only have 65535 contacts, they'll probably assume there's a good reason.
Others have put it more eloquently already but I can just suggest the same: start working on a project and pick up what you need as you go. If you want to learn Linux, do something that involves some server side work: get some cheap web hosting account (or one almost for free on nearlyfreespeech as long as you don't have traffic) and start compiling programs from source, set up mod_rewrite, etc. etc. etc. Otherwise get a cheap computer, install Linux and configure everything as you want, hunting for answers on forums. By the time you are done, you will know more about Linux than most self-proclaimed experts.

Don't think about algorithms, data structures and all other topics as some huge roadblock, they really contain a lot of loosely connected topics which are not all that difficult if you look at them one at a time with enough patience. "What One Fool Can Do, Another Can Too". You get more out of reading a textbook when you already know disconnected bits and pieces and you want a more unified view.

Your writing reminds a bit of my friend who is the best guitarist I know, but has a constant inferiority complex, because he says he "doesn't know music theory". I don't know much about music, but if I try to get down to the specifics of what he doesn't know, it turns out that he actually knows a huge amount, but he still keeps repeating "if only I knew some music theory"...
Corrected version:

def mystery(n):
a = list(range(n))
return [[i for a[::i] in [([0]*n)[::i]]][0] for
i in a[2:] if a[i]]
Yes, because they commented on the topic at all, not because of the content of their comments.
That doesn't work for me. If I don't take a day off here or there, I get burned out - my creativity starts to fail me and I end up making mistakes.

Maybe it's just me but I find that I sometimes need a break of a day or two to solve certain problems or put tasks in perspective.
For someone who's tried it, how broken is the new Expose? Grid view in Snow Leopard was bad enough...
Thank you for your reply. I appreciate it.

We're talking about different decades. You're talking about present day, I'm talking about how we got here, i.e., the decline which began in the 1980's.

In terms of what a CEO is "worth," CEO's can certainly have negative value, regardless of the compensation.

Regarding who should take a pay cut, I would say everyone involved. But what I'm objecting to is this notion that "unions are to blame" for the auto industry's problems.

Let's assume the unions are acting like leeches, sucking out more value than they are putting in. Isn't it arguably the case that management is acting -exactly- the same way?

I would further argue that there is a -lot- more than $1600/car that separates GM from Toyota. If the unions are to blame for everything wrong, do they get the credit at companies which are doing well (e.g., Ford)?
> And Google is one step closer to tracking everything everyone does on every website.

As long as you link the right files (make sure you specify the specific version and not use the one to give the lastest), there are very long expires headers and Google will have no idea the vast majority of your users ever visited. A user just needs to visit one site using the same version of Google hosted jQuery and they won't have to download it again when visiting another site.

> Hosting your own 23kb jQuery file does not cost that much. Actually practically nothing. Not in terms of bandwidth and neither in terms of perceived performance. Unless you are hosting your website on a 36.6kbps modem, host your own. Do the web some good.

People aren't using Google CDN for the cost, but for the performance. A high percentage of user will have the file cached already, so the performance gain is quite significant. Doubly so in a mobile environment.
Chrome Developer Tools: Breakpoints
Wordpress 3.1 is finally released
Ask HN: How do you 'finish' your projects?
So here's my issue. It's a long standing issue that I've always had, but has never really been an issue until now. I was given a big project for a big company for a big eCommerce platform. The extension I wrote will soon be released to the masses for consumption and use.

Now here's the problem. I keep looking at the code and trying to find bugs, add more little snippets of validation, etc. I keep finding ways that I can make parts of the extension better in some way. All the code is completely commented and I keep finding ways to make the thing better (or at least I think I am).

Does anyone else ever do this kind of thing? When do you say it's "complete" and move on to the next project? This extension works and works well, and has been tested all kinds of ways. I'm not the type of person to half ass a project and this is for a very large company and I really don't feel like making the company I work for nor my self look bad.
That's extremely funny!
That logo looks REALLY familiar.
"Necessity is the mother of invention."
That site caters to a specific fetish, female domination. There are not thousands of sites competing with it.

Most successful porn sites cater to a specific fetish, instead of a bucket of random porn.

He needs to find his target market. Not sure who it should be, though.
I second SICP. I would definitely look at eh SICP video series filmed at HP a while back: http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma...

I went through these after a rigorous college CS experience and several years of work experience and still found "ah ha!" moments.

It's a good solid foundation in 30 or so hours. The text is also available online for free.
When twitter first came out , I tried to figure out how the novelty would not wear off. How could it have use. I thought about B2B and M2M uses for it - but found them limited.

Recently, though, I have realized something about Twitter; it is like a sense, or an extension of a sense.

While I am not a heavy user of the service, I see that it is invaluable in being able to provide, quickly and easily, an alert to millions about what is happening in places far and wide.

The tweets serve to alert and attract attention - the attention can then driven to deeper dives of information, articles, videos, news etc...

This alone makes it valuable - because it provides the simplest, most accessible method for anyone, anywhere to be able to drive massive amounts of human attention instantaneously.

To be able to have created such a service is quite a feat. I don't think that "indoor plumbing" is the right analogy for what it is to the web, I'd almost more liken Twitter to the seratonin of the web.
I wonder if Apple will make iOS applications compatible with Mac. That would bring more applications to Mac
They systematically cover the problems and have zero transparency. Never a post-mortem. Like back in January.
YouTube lectures on Category Theory
We expand and shrink clusters in membase under heavy load with no issues. The worst thing that happens is that it takes longer some times. There is no inconsistency.

It doesn't look like redis is doing exactly what we're doing, but since it's been doing it well for a long time now with plenty of documentation, I'm hoping the knowledge we've shared about it can help others learn how to do similar things.
Paul Graham says there’s no bubble. Ha
Which is gonna shake google up exactly how?

99,999% of their users will never see the story.
And the rest of us will have forgotten about it before the end of the week.
HSL might work better for that, though I'd cycle it around the spectrum, with the seconds value being the saturation percentage.
your question already artificially narrows down the space of possibilities to "a nation-state must have a new government" and "the simplest is better". Why not try to think outside of centralized hierarchical paradigm? What about distributed approach? For example of peer-to-peer kind?
I'm almost forty. No family help.

What we did was buy progressively cheaper and smaller homes, as opposed to the general trend of buying up. That, combined with a couple of modest (no more than $20k profit) real estate sales of raw land we purchased, we were able to pay everything off a couple of years ago.

I decided a long time ago that working outside the home, and working full-time at all, was detrimental to our quality of life. As such, being financially "secure" meant not owing anything to anybody and having minimal living expenses. It took almost 15 years, but we eventually achieved our very humble goal.
It's technically possible for an alternate DNS root to delegate the standard top-level domains (.com, .org, .net, ccTLDs like .ca and .ly, etc.) to the ICANN-managed DNS roots, while supporting extra TLDs of its own. (Which is what was happening with the .42 TLD a few weeks back.)

Of course, you're trusting the people running the alternate root not to mess with the namespace in ways that you don't expect...
Estimating time with dictionary attacks would be hard because, well, you have to have a dictionary at hand to see how far down the list the word is.

Personally, I would make a list of the top 1k or 10k most common passwords and assign a very low number to them. Say, a few seconds max.

For any password that is not on the list, get the subset of characters used (upper+lower case, lower case+numbers, symbols+numbers, etc); raise it to the power of the password length to get number of possibilities; multiply by a random number (<= 100) and divide it by the FLOPS of a retail computer. Don't forget to display it at the nearest time unit (seconds, weeks, years).

Absolutely naive and a bit too rough around the edges, but good enough to send the message.
That seems to be a complaint about corporations themselves, as in the legal entities granted immunities by their government. I'm not about to defend them in any fashion.
People are already doing that on Airbnb, at least in New York. We'll have to see if the new law will have any impact the basis of it is a huge mess.
I'm going to have to make assumptions on your semantics. I assume that OP(x) means that instruction OP uses data element x. Further, I assume that instructions on the same line are executed in parallel and before instructions on the next line.

OP1(f1)OP1(f2)

OP2(f3)OP2(f4)

Instruction level parallelism because OP1(f1) executes in parallel with OP1(f2) and OP2(f3) executes in parallel with OP2(f4).

OP1(f1)

OP1(f2)OP2(f3)

OP2(f4)

Instruction level parallelism because OP1(f2) executes in parallel with OP2(f3). (But, the schedule isn't as good as the first one.)

OP1(f1, f2)

OP2(f3, f4)

Data level parallelism because OP1 is applied to both f1 and f2. While this has the same result as the first example, a processor would achieve both in different ways. In the first example, the processor would have to fetch two instructions. It just so happens that both of those instructions are OP1. Then it would have to schedule both of those instructions, and it was luckily able to schedule them both at the same time.

The third example is different. In this case, the processor would fetch one instruction, but execute it on both f1 and f2 at the same time. That's why it's called SIMD: single instruction, multiple data. One instruction executes, but it modifies multiple data elements. In the first case, you had to fetch and execute an instruction for each data element.

Why bother distinguishing between them? Because this may also be possible:

OP1(f1, f2)OP2(f3, f4)

That is both data level parallelism and instruction level parallelism.
I'll second the recommendation for Sedgewick's book. The pictures in there are so good that you hardly even need the words, and I successfully learned algorithms from it.

The other algorithms book I would recommend is Steven Skiena's "Algorithm Design Manual", which has less depth than Sedgewick or Cormen et al., but is very well written and has a chapter that's a field guide to most algorithmic problems you commonly run into, and how to solve them. Looking through this algorithmic bestiary is well worth the time. The rest of the book is also good.
Some things that have greatly helped me from my time of pasting together snippets of VBA to where I am now (nearly finished building a Ajax enabled Python web-app that parses English into SQL):

- go onto iTunesU or MIT OpenCourseWare (or just find them on YouTube) and watch the video lectures. The three Stanford CS ones are excellent, and probably give you all the theoretical knowledge you need to proceed. There's a good one on Comoutational Linguistics which helped me get to grips with natural language processing and grammars, but is even more relevant for compilers (though to be honest I don't see why you need to know this unless you plan to actually write a compiler)

- read Code Complete. That's probably all you need to not be a 'douche bag coder' who causes more problems than they solve

- get into web programming. Grok HTML, it's quite simple. Next read Transcending CSS, it might take a month but eventually you'll 'get it'. Then work out how to do events and DOM manipulation with JavaScript (make things happen as the user interacts with the page). You can glue on some cargo cult jQuery here :-). THEN study Ajax - follow some of the tutorials on YouTube or iTunesU. It's not really complex it's just bitty and confusing at first (basically you create an XHR object on the page which acts as a halfway house for data going to and from the server without refreshing the whole browser page). Then finally choose a backend system like Ruby/Rails or Python/Django or ASP.NET or PHP and practice doing stuff with it. You don't need to be a big shot computer scientist for this web app stuff - just leverage the libraries and frameworks and platforms that people talk about on HN, and you can create great stuff. You just need to learn the details, which is ultimately trivial
LOVE2D is a joy to work in. It really is fun, it makes particle effects and physics and sound easy. The community is awesome.

I have been working, since September, on my senior project in Pygame. It isn't fun to work in. The documentation is great, but the community seems dead. Things are not easy in Pygame. Distribution is especially painful, with py2exe and py2app and setuptools. I've had a lot of trouble getting certain sounds to play. I would not recommend it.

Really, go with LOVE2D or Flixel or even Flash if you want to make games in a high level language. Not only that, but if you want to have _fun_ making a game, and not get bogged down in low-level details.

I would not recommend Pygame.
This focuses heavily on the wrong side of the 10% rule:
For minute details on ANY creation.... only 10% of people who see it will notice. And only 10% of those who notice will care.

If you've got the time and energy to keep that 1% happy, go for it. (And most readers of HN may be in that 1%.)

But you should do so AFTER the other 99% are satisfied.
Great suggestion, and we've been hearing that from a bunch of folks overseas. We hear you, and we're going to fix this. Unfortunately, the way we process the emails makes this take more work than it should -- but we're going to get this done.

You can still use us! The timings may just be off by one day.
I clicked around a bit and found some "word lists" for Spanish. They seem to be doing a standard description of a visual, with pics to come later I suppose.

Ie. Buen Tiempo (good weather)

The instructions say to imagine eiher:

When the weather is good you can go out and have a "good time".

or

When the weather is good a jazz bad will have "good tempo".

I've seen this stuff for years...hints like imagine an arrow in a bowl of rice to remember that "Arroz" is Spanish for rice.
Do you think forbidding jury nullification would've done anything to stop that?

If jury nullification is outlawed only outlaws will nullify juries.
PHP Scripts - API Reader and Parser Library - CodeCanyon
CA is like the nordic Mexico