skysight-inc/HackerNews huggingface dataset:
Not sure I can really argue against the analogy - because you can take it anywhere. e.g. A lumberjack can rip through a tree, but a good carpenter can cut a piece of wood so that it uses the grain, there isn't waste, etc, etc. In the context you're working in, being quicker is never as good as getting it right.

You could argue that a carpenters output is limited by their use of tools. If they can't nail or saw fast enough then no amount of carpentry imagination is going to help.

What I'm saying is that I don't think this is the case for typing and coding. A coder could type quickly and produce reams and reams of really bad code - this is happening every day. Another coder could type 1 wpm and still produce something of immense value every day.
poll flawed. i need a "no don't ban it, but i'm tired of seeing codinghorror stories on news.yc"

perhaps a better solution overall would be to implement some sort of restriction on submissions. if you submit from a single domain more than X number of times in the last Y submissions, you're disallowed from submitting from that domain for another Z submissions.
Funny, I'm quite often the 'rubber duck' for other members of my team. I was thinking of trying to find a way to get a cardboard cutout of myself that they could pull out when needed.
"No, don't ban it" and "I like seeing Codinghorror stories on News.YC." don't have to go together.

If you're going to ban one source that irritates some people, I'm sure a list can be prepared of other sources to ban. Here's a sample of authors/blogs to ban:

1. Guy Kawasaki

2. Seth Godin

3. TechCrunch

4. 37Signals

5. Joel the Fog Creek Guy

They all can be seen as shameless self-marketing disguised as blogs or worthless regurgitations of tech news and gossip.

EDIT: to note one has been banned already.
You're right that it is good to have every method "do one thing".

The art of programming is dividing up a huge messy process into a series of actions that each are understandable as "one thing".

When you look at code that successfully does this, it seems easy and obvious. Those who are good at it sometimes think of it as easy and obvious in the way that mathematicians call some hard problems "trivial".

But in general, making everything do just one thing is hard and an art-form. But still good to do.
I love being this guy. Great way to learn how different systems work, and it's fun trying to find bugs or holes in other people's code. (Politely!)
The great thing about advice like this is, is that you can give away all the real secrets to your success, but never fear that people will take you on because people either feel satisfied just listening to it rather than doing it, or just don't want to hear it and come up with excuses why the advice-giver clearly doesn't understand the real world.

I've always considered that aspect to be entirely brilliant.
I wish Americans wouldn't call a bill an act until such time as it is enacted. When I read about the Blah Blah Blah Act, it is often not clear whether it's a law or merely a proposal for a law. The British practice of always calling it the Blah Blah Blah Bill until such time as it receives royal assent is better, IMO.
Thoughts on Using a Mac as a Development Platform
Project 'Tomacco': Caffeinated Tomatoes
I've tried piracetam, and didn't really notice any difference greater than eating breakfast and/or getting a good night's sleep would give me.
I don't agree with this.

Jeff's post had some thoughtful things to say about designing rules for communities. He's thinking a lot about what the rules should be for his community at stackoverflow, and comparing your rules to other people's rules is a good way to think about this kind of problem.

There certainly isn't one answer: there's an interaction between the rules and the actual bunch of people you have visiting a site.

Personally I'm losing interest in reddit, for instance, because articles about mainstream programming languages get downvoted immediately -- but articles about farting in Python or computing fibonacci functions recursively in an obscure LISP dialects get hundreds of votes.

As for attracting the "wrong" kind of people, I think you're taking the wrong angle. Atwood is trying to get more people to pay attention to stackoverflow -- if he's got any tactical aspirations towards hacker news, it would be using it as a way to promote his own ventures, as he's done with DZone and other programming sites.
I should preface the comments by saying: I realize this is silly. Thats why it is fun. Also I think I'm going to make the initial experiment more scientific by having several plants with grounds, and several controls, in the same conditions.
It surely can't be that difficult to just not click the link, can it?
To those who have objections to the choices: I did a copy-and-paste of PG's poll when he was deciding whether or not to ban valleywag.
Sounds like you're commenting on the headline without actually reading the article.

The article is about speculation that future versions of IE will no longer use the Internet Explorer rendering engine, and instead use either Webkit or an internally developed rendering engine code named Gazelle. It proceeds to detail the backwards-compatibility challenges Microsoft faces in this endeavor.

The article does all of this without once predicting the demise of Microsoft or its browser product.
Jeff Atwood is only doing his job - promoting his blog and start-up. Doing a better job than most of us at that.

Sure he gets things wrong but so what? If we were afraid of getting things wrong we would never publish anything - and would probably also never learn anything new.
> The advantage is that you end up with more reusable methods. Like "shower" or "Prepare food" that can be used elseware.

But that is exactly the author of this post's point. When you have something that is more reusable, like "Prepare food", you end up using it in multiple situations, increasing the complexity of relationships between components.

So for example, when you want to make sure you eat bacon with breakfast, you can't just add "Prepare bacon" to "Prepare food" b/c now the "Prepare food" task may be executed in "Have lunch", "Have dinner", and "Have midnight snack". And you don't want bacon with your midnight snack! Instead, you have to add a parameter to the task, some conditional, add parameter to each call site, etc... i.e. more complex.
for your purposes, imo, php will probably not only suffice, but will be easiest.
"when he founded Fog Creek, he allowed a developer to write a custom scripting language to implement common-codebase cross-platform, rather than waiting using one of the many totally acceptable cross-platform development environment readily available"

There. Fixed it.
The Big Dig made for a huge improvement. People who lived here in past years should see http://ourdoings.com/brlewis/2008-05-14
I don't drink, smoke, do drugs, and a cup of tea is about the limit of my caffeine intake.

My brain is very precious to me, and if I do anything that might damage it, there's no way to fix it, or get a new one, so I try to stay away from anything that could kill brain cells, rewire things, etc...

But, that's just me. I'm pro legalization, etc... People should be free to get high if they want.
I think your use of the word "basic" is amusing. I would agree that the most important tool is abstract thought, but it is not the most basic.
I had no idea. What kind of stores do you buy it in?
There's more to code than just code. Most of us write a lot of emails every day, and hopefully most of us write a fair bit of documentation also :)

How efficiently you can communicate with the machine is critical in programming because of the above, not because you're somehow faster at typing code - your brain cannot generate code at 60wpm anyway. Typing quickly, though, certainly takes away barriers to trying new things and prototyping really quickly.
People consistently keep falling back on this argument that there are a large number of sites that MS has to continue supporting because of reliance on legacy ActiveX-type systems. I just don't see it.

Firefox is only a few years old, yet there isn't a single site I've visited in recent memory that doesn't work properly. For a browser that "only" has ~25% of the market, every single site out of thousands I've visited not only work properly, they tend to break in IE 6/7 and not standards-based browsers.

There has been a mass of work done on the developer side of things across thousands of public-facing web properties in the last few years to be much more standards compliant.

Microsoft shouldn't worry about "breaking the internet". They've already done that. By just releasing updates to their browsers on a regular basis, orienting around w3c standards, and providing definitive support cut-off dates for old software, they will easily move the mass of their users forward.

Its very simple, really. If they simply just adopt web standards and stop supporting their old crap, suppose it breaks some Fortune 500 internal sites. What are these companies going to do, drop Microsoft and move to other standards-based solutions? In the end, they end up using modern software anyway. Microsoft is creating their own problems.
Great hackers create great works from within, not from their tools or their environment. Their core competencies are things like relentless self-improvement, not the use of a particular editor or a particular OS.

The author's list of core competencies (fast typing, command line, vim, Linux) sounds more like a list of cultural traits.
I like 77aaff. Try it out.
Hackers crack Apple's iTunes gift card algorithm
Correlation versus causation. Cannabis use and psychotoic disorders like schizophrenia are definitely correlated, but last I heard there is no evidence of causation (Hall et al., 2000). If my information is outdated, please let me know.

Personally, I think it's far more likely that schizophrenics, or pre-schizophrenics, are drawn to cannabis as a form of self-medication.
Holy mother! Dextromethorphan and pot do not even compare, in terms of effects. That said, I am glad you found it to be of use. My several experiences with DXM did not have such positive effects, so I have learned something here.

It's also worth noting that DXM is a dissociative drug, and like all dissociatives (ketamine, PCP, etc.) it causes measurable brain damage each and every time you do it. This effect is compounded if you don't take a break in between usages. This is in no way a condemnation; just be sure you measure your risks and benefits accordingly.
> The analogy with understanding/familiarity with your tools is weak. The only important tool for an engineer is his brain.

But, an engineer with a great brain and no tools, is weaker. One must communicate thoughts and ideas in order to be great.
IPhone app Tweetie 1.3 rejected by Apple
The point about text editors is absurd. One because comparing TextMate to vim or emacs is almost apples and oranges. And secondly because writing something Java without completions is going to be horrendously slow just because of all the arcane function and property names.
There is value in e.g. a commercial reply to a set of problems or a question one tweets. If it doesn't clutter up the interface by e.g. being in a separate area, like on Google, I feel that could be potentially be pretty powerful. It's not spam because spam is both unsolicited and (mostly) untargeted. In this case, while I don't solicit the commercial tweet, I am clearly interested enough in a subject to be talking about it. If it doesn't hamper my user experience, I wouldn't mind Twitter implementing what Gabriel suggests.
The people who I work with whom I regard as great hackers work almost exclusively in the real time embedded space (industrial automation systems) and don't have web notoriety.

Slightly more prominent individuals could include Ted Neward (http://blogs.tedneward.com), Joe Duffy (http://www.bluebytesoftware.com/blog/default.aspx), James Devlin(http://www.codingthewheel.com/archives/how-i-built-a-working...), and Dustin Campbell (http://diditwith.net)
I can understand the "that's not the bottleneck" argument. But the problem with going too far down that road is this: Imagine if you had to wait one second for your keyboard to respond to any key you type (and one second between keystrokes). You could still produce awesome code and be a great hacker, but can you look me in the proverbial eye and tell me that this would not handicap you in some way? Think about the commands you type really quickly on the command line without a second thought. Think of the messages you send off to friends really quickly.

Generalize this to the experience of using the Internet. Since great entrepreneurs are relentlessly resourceful, they can make great things come to pass using a 56k dialup connection, but I'm sure you wouldn't want a connection as slow as that. Why? If you want to think of it in terms of the argument you made above, then it's obvious that the bandwidth is unimportant because your connection is idle for the bulk of the time you spend using the Web.

The important thing is not thinking of this as a comparison between how much time you spend typing versus thinking. It's more about maximizing the responsiveness between you and your computer. The less friction there is during these small bursts of interaction, the better.
He talks about enterprise web software, not so much public sites/blogs/etc.
There's no doubt that being able to produce genuinely interesting content is a solid advantage for any company looking to get users via the web.

I wonder if it's worth considering it an essential capability when starting a new company, so much so that you'd get a cofounder on board purely for his ability to write an interesting blog or create cool viral videos.
Most buildings don't catch on fire. So is requiring fire alarms in buildings evil too?
Real IT Episode 3, The Extended Team - Part 1
It's not the "getting things wrong" that bothers me. I don't mind at all seeing flawed, but honest attempts of writing.

What bothers me a lot is the whole attitude of shoot-first-ask-later. It causes excessive noise. He knows it, but he doesn't care, because it gets people talking about him.

He tries to control the conversation by saturating the channel, and the one filter that we have (the community itself) will go bust if we let the channel be saturated.
The dismissive attitude of "programming doesn't require typing skills" is extremely naive.

Shrug... Well I say that because that's my experience. I've never really been concerned with micro-interruptions. I guess I'm surprised this bothers people so much (It's the macro interruptions that hurt me more). I've been in situations where I've been unable to type (or type quickly). I learnt and grew as a coder more in those times that any other - so a different experience really.

So, yeah, typing is great. It's a very handy skill to have. It probably helps a coder a lot, and it's a good thing to know. However, I don't think it makes you a better coder.
Education is an industry. Ideas are not, there is no marketplace for ideas, etc.

Old vs. new is just a matter of taste. The overriding value is whether something works or not. In general, the technical people I've met have very little patience for things that don't work, regardless of when they were built.
Clever stuff. If you're interested in such things, best book I've seen is "Hackers Delight" http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201...

Author covers really clever techniques to count bits, count non zero bytes like this etc etc. Bit manipulation at its best.
Of course the TV show has to depict physically dirty jobs. Most TV programs seem to have a requirement to capture and keep hold of the viewer's eyes and ears. A TV show where a bunch of people sit in cubicles in a mostly silent office and you only hear typing, mouse clicking, and the occasional phone ringing does not make for desirable TV programming (even if it accurately depicts reality).

Just because most people feel that they are under-appreciated in their professions doesn't mean that that feeling is less legitimate. Everyone has the right to complain about their job, regardless of how cushy it seems to others.

In a way, complaining about your job is proof to yourself that you aren't where you want to be yet. That's the essence of a lot of startups.
Could we have a 3rd option: "Quit whining"
I mean, really.
Although, you make a good point that it will drive unwanted people here...but there's nothing we can do about that unfortunately.
Seems to work, good job.
But this falls flat once you remove the assumption that a user only accesses the internet from a single ISP. So what happens when I decide to make that purchase on my lunch break at work? Or from the free wifi at the coffee shop?

There was a time that this would have worked, but I think there are too many people that aren't tied to a single physical location for their internet services. And we haven't all switched to something provided by a cell company.
Wow! I am really interesting in learning more about your international startup experience.. especially in setting up an office in Bangladesh to take advantage of cost efficiencies. Perhaps that'd make for a good story to submit to HN =)
Real IT Video Blog - Jason Talks Acceleration
Ew, cocaine.
No backtracking necessary: In this post he quotes some windbag:

"Let's assume that some or even most of it will not be new. Let's assume that we'll positively detest some of it. But let's also look at it in terms of our own profit: we win if we can find just one thing in there that makes us better programmers."

Yesterday he said HN is becoming overwhelmed with dreck. Today he is saying it's a win to read HN if you can find just one thing that makes you better.

The two statements are entirely consistent with each other, and I suggest they are the entire point of the post he quotes.
That's quite striking. I agree that is has been pretty awesome, from what I can tell. I only moved to Boston right as it finished.

There was inexcusable corruption and incompetence in the construction though. That puts of a taint on large municipal projects generally.
See my comment above. I spend a lot of time typing, even though I reuse a lot of code. (I write a lot of code: http://github.com/jrockway)

It's nice to think that code types itself, but it doesn't. If you have no ideas, then it doesn't matter how fast you can express them as code. If you have a lot of ideas, though, you don't want to wait for your fingers to slowly tell them to the computer. You want the computer to know quickly, so you can move on to the next task. That's why typing is important. There is no brain/computer interface yet, so you have to do it with your hands and the keyboard. Suboptimal, but them's the breaks.
Univ. of Chicago Uses Wit to Counter Westboro Baptist Protest
What's wrong with Ayn Rand? Besides her inductivist epistemology.
A lot of people who read such sites say they ought to read them less. And Jeff's point is that if you don't read such sites, you ought to.

It could be that there is a happy median and those of us over it ought to read less while those of us under it ought to read more.
I was also struck by seeing actual studies cited, in the usually fashionable, religious and cliquey schoolyard of software development.

I wonder why there aren't any studies more recent than 1991. That's 18 years ago! Before Java, before C#, before Ruby, before JavaScript, before PHP (C++, Perl and Python had already started).

Perhaps because everyone involved has a barrow to push (including academia), no one has an interest in undertaking impartial and objective research - after all, it might give the wrong answers.
Fortunately, we've got McCabe's Cyclometric Complexity to guide us here.
Interesting, I assumed it was legal for them to force you (unintentional Canadian ignorance on the issue).

Thanks for the clarification!
I agree, But after you have written 1000 posts, you start to lose content. He still needs the advertising so he needs to post something.
Rogers says proposed Hulu-like video site will keep Canadian content on web
It's a wiki, so I could add my own company to the list and let it become a self-fulfilling prophecy...
What was the name of this book? Sounds interesting.
I haven't encountered copy and paste code.

You made me realize that there are so many different levels of expertise, that what is right for someone's situation might not be right for mine. It might not even make sense to me (if I don't happen to know their specific situation), even though it is right for them.
And this is how communities start to disintegrate.
Not going to SxSW? Here's how to make Twitter not annoying
Methods should do ONLY ONE thing.

Example: A program to withdraw money from a Bank Account.

getBalance() // Does One Thing

if(getBalance > withdrawAmount) {

subMoney() // Does One Thing

} else

{

Print ("Insufficient Funds");

}

Other thing, I would like to point is that if you are making the code of your function visible, then it should be properly documented and readable. The compilers do a really great job of Optimizing the code, so there is no need to make the code look smart and have no one understand it. The only place I would put real smart code is when I am coding in assembly. In that situation, there should be really good documentation explaining the reason of your smartness.

Example:

A = 4

B = A X 2

[Smart Code: Right Shift A, but it's not always obvious that you are trying to multiply by 2 here, unless you have an explicit comment]
Chief Wiggum: Go ahead, Ralpie; the stranger is offering you a treat!

Ralph: Oh, Daddy! It tastes like Grandma!

Chief Wiggum: Holy Moses! It DOES taste like Grandma!

Ralph: I want more!

Chief Wiggum: Yeah, me too!
I think the repetition is a bigger deal than the unsolicited nature..

unrelated: congrats on the birth of your son!
I was railing and whaling against Web 2.0 bullshit in 2006, no one paid much attention, though.
Depends on your definition of basic - can use it to mean "simple", but it's also used to describe something fundamental, irreducible or essential.
I heard a similar story. Back in the day, when computers were big and slow, there was a debugging room in the Bell Labs. When a programmer had difficulties debugging his piece of code, he went to that room and talk to a teddy bear about his code and the error he's getting. This should have made him realize what he's doing wrong. I don't know how successful the method was for them, however it works often for me.
Probably not really on topic here, but:

INTC and GOOG. Bought INTC years ago, it's trended slowly downward ever since. Bought GOOG just a couple of months ago at close to its current trading price.

Mostly, though I sold all my holdings and lived off of it while starting up my current company. That's proven a much better investment, more than doubling in value ever year.
Are HTML Form Tags Redundant Since Ajax?
Uff da. TippingPoint needs to read just a little E. Tufte. The graphs were goofy--A full color bar graph for two data points is just a little silly.

But, the willitblend is still a genius idea.
Agreed, the park system and the walkability of Boston is great. The problems come when you want to drive somewhere or find an affordable place near the subway with all modern kitchen and laundry stuff. We could do so much better, just tear down all the old 2 and 3 story buildings and build bigger, better ones....
"Things need to be moved around, but when dealing with people often the most important action is to stand still -- to find a position and refuse to be knocked over or pushed around. This might be part of the reason it is so hard to find a proper antonym. It might also be why it is so hard to do."

This idea sounds really interesting. Would you be willing to expand on it? A couple of examples might help me understand what you mean.