skysight-inc/HackerNews huggingface dataset:
I couldn't disagree with this more strongly--giving somebody a blob of code (no matter how elegant) is a recipe for disaster.

Let's assume good comments--not useless, lying, or broken ones. I won't contest that bad comments are at least as bad as useless, as you doubt would not contest that bad code is at least as bad as useless.

When I read a comment, I parse it directly. When I read code, no matter how neat it is, I often trigger a twitch of "How would I rewrite this?", which itself gets in the way of understanding.

The more code there is, the harder it is going to be to digest at first glance, and if your codebase could be adequately described by a single page of text I would wonder why I need to work on it instead of rewriting it entirely.

Hint: if you only have one page of docs, and especially if you have no test suite, I cannot work on the code in a meaningful way safely.

If you don't value safety, if you don't value engineering, then by all means omit comments. It's just a crutch for people who can't see the code man.

I might also point out that that same philosophy implies that we should just stick with assembly. Especially if you use any language with dynamic types/duck typing (Ruby, Javascript, etc.) seeing "at a glance" what exactly is the proper form of data to pass into and out of function can be hard. Documentation here helps.

EDIT:

Note also that commenting in libraries, or in mathematical or geometric routines, can be really helpful. The code doesn't lie, sure, but if you aren't experienced/schooled/clever enough to recognize what is going on it won't help you.

A great example of this is the fast inverse square root hack:

http://en.wikipedia.org/wiki/Fast_inverse_square_root

This has great examples of both inscrutable (but honest and short!) code, and shitty commenting.
Show HN: My side project, Silk - Interactive Generative Art
It's an interesting purchase from Yahoo, I've used the app a few times on and off since it was released. It's fun, not sure how good it is at what it promises but it can always be tweaked up. Maybe it's a sign of Yahoo's slow realisation that there's money to be made in them thar mobile delivery platforms.
I can prove that tests don't function. They are exactly the opposite of comments in that way. Change the functionality? Tests fail. I know they fail. I fix them.

Yet comments can (and do) go way out of date.
Here's the thing:

If one of the two dudes had just punched her right in the face, and she gathered up a mob of her buddies to beat him rather than reporting it to the police, we'd all be calling her out for doing the wrong thing.

So maybe she was offended, but I don't care about her feels more than I care about her being punched in the face. If the solution to the bigger problem - punching in the face - is to talk directly to authorities to combat the problem rather than drumming up a public mob, why is it different here?

You can say whatever justification for /why/ she was offended or wanted them to stop, but this article just hand-waves at the main complaint that she responded in a drastically unprofessional and inappropriate manner.

So, really, someone give me a compelling argument on why public mob rather than authorities is how we deal with some, but not all problems with rights violations in an organized and regulated environment?
I remember a great discussion my class had in our high school Econ class about why "pay what you want" fails so often:

The basic working theory of an economic exchange between parties is that the exchange happens because both parties feel like they are getting more value post-exchange than pre-exchange. I agree to pay you $5 for a sandwich because I have decided that the sandwich is more valuable to me (in my hungry state) than this $5 bill (even if only marginally so) and you have decided that $5 in the register is better than keeping the bread, cheese and meat in the kitchen. It works. If the sandwich were $20, I might not make the same value judgment. Possibly even if it were $7.

When you throw "pay what you want" into the transaction, in theory, you're actually breaking that structure. I'm no longer getting MORE value from the sandwich than from my money - by definition, I'm getting exactly the same value.

So even though the consumer is deciding on pricing, that subtle feeling of "getting a deal" goes away and consumers on the whole actually feel less intrinsically satisfied with the purchase.
A 200 line HTTP server used in DSL Routers
This seems similar to The Hype Machine. A site that gauges taste in music really needs lots of people using it for the "popularity" of a song to be useful.
I have been trying to play with Scala for the past year, and I have made some strides, but I keep falling back to language with which I am comfortable to just get things done. This is largely in part to my lack of familiarity with Scala, but I have really wanted to tackle a large project with it. I have read the book that Martin Odersky wrote, but this will be an awesome addition that will, hopefully, push me over that final hurdle to becoming productive. Thank you for posting this! I signed up today.
what happened to "I do not agree with what you have to say, but I'll defend to the death your right to say it"?

Yes, I don't object.
Write a test first -> figure out how you want to interact with the code -> then actually start crafting code.

And the test can actually be executed.

I used to do the "sketch it out" a lot more, but I think Test-First is a better approach.
When I write code, the first thing I do is write out the code inside comments - including stuff like "Loop over the collection:". Once I've written the comments, I start filling in the code. I find that whilst this generates "unhelpful" comments, it leads to much cleaner and well designed code. There's another advantage too. If your IDE or text editor changes the colour of comments, as it should, to a colour different to that of the code, then you can ignore all the code and simply read the comments. I find this makes skimming through code much faster.

Granted, this won't work in all situations. If you can't trust your colleagues to keep the comments updated (and if you don't review commits), then this is going to cause problems - however if you're writing for yourself or with a small group of people you trust, I strongly recommend giving it a go.
How to choose a translation agency
http://language-translation-project-management.com/2013/03/19/how-to-find-a-translation-agency-that-suits-your-needs/

If you need to translate a document and cannot manage it yourself, you would need the help of the translation agency. Here are shown some tips how to choose a translation agency for you.
SVG Patterns Gallery
How about they focus on launching in other markets first? I heard they were launching in Canada, months ago. Still nothing. And now they want to take on video?

One thing at a time Spotify.
Such lists are supposed to be short to be memorable ...

Otherwise you can call it "1001 Things Every Programmer Forgets".
This is one of the reasons why I'm a fan of doctests in python. Generally if the tests start to fail the documentation surrounding it needs to be updated as well, which makes it a bit easier to actually keep the documentation up to date.
I think the next level for you is to do the thinking before coding that your doing now, but just skip the commenting part...
There are plenty of trees on windy mountains in cold climates that survive just fine.
Yeah, I agree, it's a question of cost vs benefit.

A bunch of tests that check trivial cases is not helpful at all, a well-maintained suite of tests is very useful.

What I mean is that a bunch of documentation that only states the obvious is not helpful at all. A set of well-maintained (!) code comments can make navigating unfamiliar code much, much easier.
Good Diets To Lose Weight
Climber: From Hackathon to App Store Submission in Two Weeks
https://itunes.apple.com/us/app/facefilm/id600610075?mt=8

Self-made libait was used in this project for computer vision algorithms : a face detector and a facial feature locator

p.s. as far as I know, this is the first app to generate and playback face morphing video in real-time!

check my twitter http://twitter.com/tabamilk for more results.
The difference being where the discussion started.

When a discussion starts with the experience of sexism, then a post that basically says, "well my life as a guy was also hard" derails the discussion.

Your criticism would be valid if this were a discussion that had started with Ed's personal experiences. It didn't.
Test-first is also broken, because you end up crafting code that suits the test coverage.

https://github.com/shtylman/node-int/issues/1#issuecomment-1... is an example of an issue which came from an implementation without 100% test coverage. I claim that unless you know every single way in which a function is used, and even if you did, you can't design tests to cover 100% of use cases.
I use a soft-ish guideline of 100 columns per line, but I mostly code in C# at work, so normally namespace/class/try-catch is already 3 indentations, and 80 chars is simply not enough for everything.

I do my best to keep it between 80 and 100 chars. With a horizontal screen resolution of 1920 pixels, 2 pages of such code fit nicely side by side.
I do the same thing. I set a vertical guideline to 120 characters. Depending on the codebase I'll turn on wordwrap at 120 characters too.
I think the community is too diverse to be able to say that. I have a background in Supply Chain Management, and while I can code well enough to be an engineer, I have never been the same type of hacker that you imply.

My conversations with others in this community confirm that I am not alone. I have read many comments from Marketers/Product Managers, TPMs, SEOs, CEOs, Designers, Stock Traders, Financial Analysts, Ops Researchers, Executive Assistants, etc.
Are those trees the stereotypical tall strong oak type trees used in most examples? I agree its possible but you don't usually see what most people think of as a "majestic" tree standing alone in those sorts of conditions. Normally they seem to be oddly shaped and have grown away from the predominate direction of wind.
I don't believe you.

Ditto @Buzaga
Digg says it’s serious about building a replacement for Google Reader
Tips and Tricks for Internal Use of Your vFabric Postgres VM
Almost anything is offensive to some group or other. Who decides, a benevolent dictator?
A 'bad test' isn't one that is failing, it's one that doesn't test anything useful, or worse tests something useful but incorrectly
Next Big Thing, a HN-like site for music content (/r/music)
Hire HN: Product Manager, help build $1Bn online channel in Fortune 500 co
job desc: http://bit.ly/ZE2emx

Hi HN,

We are building a $1Bn online channel mostly from scratch. The skills and opportunities you'll gain here will serve you well in the long run.

You'll join a fast evolving team and bring your great ideas & execution to bear to make a big impact.

I run the Product Management organization for eBusiness within EMC. Would be great to find fellow HN'er and talented Product Manager to join the team. The position is local to the Boston area, but would consider relo for the right person.

Ideally you know online commerce (B2B, but B2C is fine too), you have a technical background and passion, you know how to envision and ultimately ship great products, and you execute maniacally well.

"The EMC eBusiness Program is seeking a [Technical] Product Manager. In this role you will be responsible for architecting and delivering complex features and extensions to the EMC Store from end-to-end. As a part of the eBusiness Product Management team, your responsibilities include working with Sales, Marketing, Product, Engineering, and IT teams to collect business and systems requirements, write specifications, drive project schedules from design to release, and manage the subsequent production launches. You will lead and coordinate design and implementation efforts between teams, driving to develop optimal solutions."

The role details are here:
http://bit.ly/ZE2emx
(destination: job posting on brassring.com)
I agree. Good luck to any website making me switch away from hypem.
>There are a few voices in the new GOP that are better at civil liberties (Rand-effing-Paul).

Wake me when he gets bills passed. As far as I can tell he and his father are master grandstanders who don't really caucus with anyone or work to get bills through. They make pithy speeches to make young people feel good about voting straight-line GOP and guarantee their reelection. Unfortunately, voters seem more swayed by speeches than results.
I used to plan in my head / on whiteboard, but that doesn't scale well when you want to start handing code off to your employees.
ah, though exactly same as you !
yah, but I think the author is arguing side benefits.

to be fair, so am I.

The author was asserting 80 character line width was easier to read.
I'm not quite sure I understand. Why would you checkout a PR over the pushed remote branch that the PR references?

e.g. I push feature/foo to origin and open a pull request base develop. Why would one not just pull down feature/foo?
TUESDAY in SF, 7pm: The technology movement in Kosovo with Gent Thaçi
I think the basic concept to understand is that of the 'dyno'. Although a term from the Heroku platform, I believe it applies to most of the other platforms too. A dyno is a container (sort of like a VM but without hardware virtualisation, see LXC or OpenVZ) that isolates system resources. You can have multiple dynos on any given server and you can have lots of servers. Each dyno contains the entire environment needed by any given app, so it'll contain the specific binary version of ruby or node for example and it'll also have unique copies of all the dependencies, managed via bundler or npm for example.

Scaling your app simply means having more running dynos that are load balanced by a centralised load balancer used across the entire platform. So yes, interestingly there is a lot of duplication of the code base.

Services, like databases, are managed on their own separate servers/clusters and allow multiple connections and can be scaled/sharded separately from the dyno farms. Therefore they can be monitored, maintained, upgraded, etc, separately as well.

I'm a small-time contributor to http://github.com/openruko, an opensource Heroku clone.
Feminists start up a problem.
This looks good, and I'm excited by the idea of finding music new to me.

NBT itself seems to have died under the traffic, so I have some (perhaps stupid) questions:

1) How do you deal with voting rings and other gaming?

2) How do you deal with 'bubbles' - Some services keep me pretty tightly locked in to a certain bubble, when what I want is some leakage to explore and find new content.
5 Options for Distributing Your iOS App to a Limited Audience (Legally)
Not all code is readable. Some of it always ends up being an ugly hack. If that ugly hack is not documented, I want to start punching previous developers.

I wish people would stop taking these purist approaches. There is an obvious middle ground to this - document the non-obvious and your public facing APIs.
Started this course late a few months ago. Very enjoyable, unfortunately I missed the "passing" grade by two tenths of a point :)

Check it out, they have a very nice setup for grading homework and the videos are very informative.
The problem domain of the source code dictates the value of the comments. If the code is highly algorithmic or data structure driven its more useful to include a pointer to a book / paper rather than littering the code with comments which will never do as good a job at exposition as a book / paper.

On the other hand arcane business logic needs to be documented because there is no way to recreate that from a mental model.
I do value safety and engineering - in my mind, an ideal deliverable would be the source code, an automated test suite, and a 1-page document explaining the overall design of the code.

Comments don't provide safety - tests do. Comments are not good engineering - well designed code that is easy to reason about and follow is.
He actually said HTML2, but I think, given that we are at revision 5 going on 6 of HTML with the addition of CSS and Ecmascript, while we have held pretty steadfast at HTTP 1.1, when talking about the web, HTTP got more right out of the chute than HTML did.

If Kay really was talking about the presentation layer of the web, this seems like a reasonable argument for it.
How To Turn Your Website's Google Analytics Report Into An Infographic
Riding a motorcycle with no other vehicles on the road feels like that as well. The vibrations of the engine through the frame, the wind blowing, the engine roaring, and only one focus, just draw the perfect trajectory...
I had the same question, but then I realized where this tip is useful: for open-source projects where the PR came from someone else's fork. With this tip, you don't have to add the forked remote in order to pull it.
Yeah, but code readability has little to do with line width. I could show you perfectly unreadable code that fits in 80 characters because it's legitimately pre-indented by 40 and has to go to one word per line or shorten variable names to fit in 80, and wonderfully easy to read code that goes out to 160 (often because of some literal data that would otherwise just increase the vertical length).

Also, it's funny to me that people talk about horizontal line length impacting readability, but never seem to talk about vertical length impacting readability as well. To me it's critical to keep related code clustered vertically as closely as possible without too much brevity: having to scroll/split view to see related pieces of code incurs a cognitive overhead. Arbitrary line breakage imposed by the 80-character limit gets in the way of that. (And don't get me started about teams that treat this as a limit instead of a guideline.)

It's critical to give programmers the tools to make their code readable (good languages with good grammar and idioms), not arbitrary restrictions that try and fail to accomplish that indirectly.
At Google, our Python style guide dictates 80 characters with 2 character indenting [1]. Java is the only exception at 100.

Even 100 can be awkward to fit into. Lord knows I've renamed variables to avoid splitting a line on several occasions.

But what a lot of posters here seem to miss is that it isn't about the width of screens for editing, it's about the width of screens for reviewing so you need twice the real estate.

Add in doing interactive merges and you need three times the width.

This really comes down to the principle of enforcing a common style (for an organization or project). A lot of people rail against "arbitrary limits" and "arbitrary style guidelines" as it's something extra they need to learn and adds no value (according to them). I've seen people here for 6+ months again still fighting this.

Such things (IMHO) have value as it adds a reasonable level of consistency across teams, it avoids commits on files due to stylistic changes (which may or may not be automatic from IDEs, etc) and, most importantly, defuses a lot of the aesthetic-driven boneheadedness that we engineers are prone to.

The last point is really important. Otherwise you'd have engineers and groups fighting over where to put curly braces, 2 space indents vs 4, whether tabs are OK, etc--none of which actually matters.

So if you feel your creativity somehow stifled over 80 characters, I'd strongly suggest you just abosrb it, get over it and move on to things that actually matter.

[1]: http://google-styleguide.googlecode.com/svn/trunk/pyguide.ht...
Would you have accepted this as a valid argument back when anti-miscegenation laws were in effect?

"There's no issue, black and white people can get married. Just not to each other."

I also wonder how OSC would argue against changing the law so that ONLY homosexual marriage was legal. By his argument, he should have no problem, since he would still have marriage rights, only to another man.

> your feeling that this is an infuriating thing to say.

It's infuriating in light of the subtext of the linked story, which is that ultimately you can't deny your true self. When he makes an argument that gays have rights if only they would deny their true selves... Arg!
Guys, I understand wanting to maximize your load-carrying efficiency, but decommissioned naval vessels and military aircraft are not the way to do it.

For my commute, I chose rail instead – Budd Pioneer III-series rolling stock go for surprisingly little on eBay these days, and at least where I live, it's not terribly expensive to file the paperwork for a zoning easement to add a 700v third rail to a local stretch of freight rail (you can usually find qualified installers on Craigslist).

These rolling stock are single-operator capable, so the staffing costs can be quite low, and generally buying electric for a home rapid transit system is far cheaper than buying fuel for a home naval vessel or home fighter jet, especially if you can power down the transformers while you're at work.
That is a great side project and one that has helped me already. Kudos for linking to the first-hand info. Now, I just found some info that you currently don't have on the site. I'll contact you via email with the link, but maybe you want to have a form for that?
The article's claims are not very substantiated. The idea that weather is so extreme at 500 feet that trees would not survive seems silly.
I like a 80 column soft limit which I usually stick to and a 120 column hard limit which I use when I feel splitting the line and indenting would harm readability.
It's as if they intentionally tried to write the worst possible article on the issue.
What would be the economic implications of "float stone", that is a solid material which is lighter than air or at least neutrally buoyant? Say a molecular structure that creates pockets of vacuum at the micro scale.
It’s Time PayPal Was Sorted Out
or some of the more obscure subreddits, like (http://www.reddit.com/r/listentothis/) where you're supposed to upvote things new to you.

I've found some great music there.
'doh! Thanks!
Inspired by HN: https://bitbucket.org/thuijzer/linkdump (PHP)
The problem with 80 chars/line and Python, in particular, is list/dict comprehension. Naturally, as they replace a whole loop, comprehensions pack much information into one line. Consequently, there are many times when a list/dict-comprehension line that are clean and meaningful but had to be broken into 2 lines.

And that isn't nice.
Hub is wonderful. Everyone reading this, use it! :)
How does this compare to CloudFoundry or OpenShift? I guess they all try to solve the same problem, but I'm really interested..
>At least the GOP occasionally cares about spending discipline

Now pull the other one:

http://fairandunbalancedblog.blogspot.com/2011/08/three-char...

Bush spent like a drunken sailor. War isn't cheap and the decision to go to Iraq was rightfully criticized by the left at the time and we were proven right that, no, there aren't any WMDs in Iraq. Certainly Saddam was no threat to the US.

I hate how HN has become such a GOP/libertarian hangout. Now you guys just make up your own reality.
> use smaller font size

Makes the code harder to read

> enable word-wrap

Makes the code harder to read

> buy a higher-resolution display

Increases cost and I can't take an external on the subway/train.

> use your IDE to auto-format code according to your preferences

So, make it 80 to 120 chars per line myself

> I don't really see anybody using eeeePC for serious coding in 2013.

Because the year means sooooo much. Who are you to choose when and how I code.
Who are you to choose when and how I code. eeePCs work well in commuting situations.