skysight-inc/HackerNews huggingface dataset:
I'm against commenting code, with two exceptions:

- You're implementing something complex (like an algorithm)

- You're implementing something stupid (typically a workaround for something that could not be done in a more elegant way, and you want to explain why it can't be refactored)

If the code is well written it is also self explanatory. This can be done by structuring / formatting the code well, into methods, classes, packages - and naming these constructs in a reasonable way. Naming variables is obviously also very important - and be consistent!

In my opinion comments only clutters the code, and in most cases reduces readability. Like mentioned before you cannot always trust that the comments are up-to-date, but the code certainly will - so I believe time should be spent making the code readable instead.
"Look, there is what you intend and what you write" - those should be the same, there should be no in-between.

My primary language is Java by the way (about 10 years of experience).
Thought I would chime in, because I've had a fair amount of experience with this and it's basically a battleground... if you try just once to install a reasonable Linux on your android transformer, you might get the wrong idea and believe that Android Linux is just not usable.

My favorite configuration on my TF-101 is TeamEOS nightly builds with a separate partition for Ubuntu Precise which I run without X11. The partitioning can be accomplished using OLiFE Prime (don't mind that you may not have the TF Prime, that's not what prime means here.)

There are various APKs that will let you install Linux from several (mostly debian-based) distros into a chroot, by mounting a loopback file. I had good luck with "Debian Kit" and my current install of Ubuntu is older than my current install of Android, so I can't tell you exactly how I got it installed, but if you're not familiar with the chroot method of installing Linux, there are several different market apps with the goal of making it easy for you.

I found it's best to forego any X11 stuff. You wanted Linux so you could run a terminal, apt-get, and compile software? You got it. Android Terminal Emulator supports the control key, shift, and "back" for escape, it's perfectly usable.

That all works OK, but you have to take some care to get the armhf (not armel) versions installed, they work great and are much faster. You can also ignore that. I have read that they are much faster but I don't have empirical evidence to support that. "Feels true"

Finally for end of the 2 minute elevator pitch for Android Linux, as soon as you try using something that requires SYSV IPC, you will probably find it doesn't work (that means Apache, MySQL, basically any kind of multi-process server), unless your kernel mastery far outstrips my own, or if you settled on AOKP instead of EOS build of Android. The AOKP builds I tried _do_ support SYSV IPC. But nobody else does.

I did manage to enable X11 once by OLiFE installer, the system I installed was a "natty" at least two generations old, it worked fine out of the box from OLiFE, but it was kludgy at best, I tried upgrading everything to oneiric and precise, and from then on nothing worked. I did not want to lose my Android notifications backbone, so I went back.

I do everything in a chroot now.

Don't get me wrong. It worked. I just don't see the point of having a touch screen on a system that was engineered for a mouse and keyboard first. So, tl;dr, you can most certainly get a full working Linux terminal on Android JellyBean, I have... it's possible to install rvm in the usual way, and if you are a vim user, you'll be wanting that escape key, don't forget to set the options correctly in the Android Terminal Emulator app.
Indeed. It seems all energy "game changers" are perpetually 10 years from mass market. Not that we shouldn't keep trying, but its definitely something that can make a cynic out of you.
Speaking as someone with approximately 4h of Python experience -- great list. I'll be using the sh lib right away.
Interesting emphasis on intelligent DJ mode. I have been using Groove Basin[1] as my music player for about a year now and have loved the crap out of its DJ mode ("Dynamic Mode").

The way we made it work is that every song goes into a list sorted by date last queued, and then we use a parabolic curve which means that any song could theoretically be queued next, but songs that have not been queued the longest have the greatest chance of being queued next.

This is something that is hard to test without trying it out for a long period of time, but I think after one year it is safe to say that it's a pretty damn good algorithm.

The added benefit of using "last queued date" instead of "last played date" is that if Dynamic Mode queues a song, and you skip it because you don't want to hear it, it still moves to the end of the list and becomes less likely to be queued again.

[1]: https://github.com/superjoe30/groovebasin
I think the real problem is that a lot of people don't understand the value of a billion dollars.

Quora may be a great company, but is it worth that much?
Rackspace is currently not in Australia... if it was we would use them in a heartbeat.
Keeping in mind I'm a younger, single person with no serious debt and I live fairly frugally; I haven't taken a contract in a couple months. I'm currently living off of the money from my last contract and working on a startup idea I formed during my "time off". (note: I don't take time off, I love programming too much. The time off is just from clients so I can explore things like Monads and Macros... Mmmmm M&M's).

I find out about my YC application tomorrow, so I may not need to take client work for awhile, If I don't get an in person interview for YC, I will probably need to pick up a contract before January.

tldr; I do only work between 6-9 months a year or less.
7 Keys to Positioning Your Competitors to Investors
PIN has a really nice API. The minute it goes live we'll be integrating it into everything we do. They are also based in Perth which is awesome :).
Except In my opinion he gets it very wrong. His comment free code doesn't include the the string "Newton-Raphson" anywhere, making it non-trivial for anyone not familiar with the code to work out what is going on.

Secondly, and more importantly, he never explains why he is using Newton-Raphson to approximate the square root. If I was handed this in some code I was to maintain I would really really like to know that.
I've been writing code in some language or another for almost three decades. My headers, comments and READ_MEs usually end up helping me more than anyone else.

When you have multiple projects in muliple languages for tens or hundreds of clients over the years, the last thing you want to do is open a project or repository and see little or no documentation. And you don't want to have to figure out what/why the heck you did in 2007 and explain the project to coworkers.

I guarantee you that clients and coworkers will pick the worst optimal time to want revisions. And if I spend the time upfront to make it simple for a junior member of my team to take ownership of a project in the future, my life becomes better.
A nice example which expresses the bulk of the issue: Comments are largely there to compensate for the lack of information held in the type system. Adding comments which just reiterate what is said in the function signature is redundant and not worth the time.

Of course, this doesn't apply to all comments - but specifically those insane policies where you're required to write a description of every method, argument and return type.

The more powerful the type system, the less necessary comments become. If you take a dependent type system for example, or some code contracts with explicit preconditions, you no longer need to specify the valid range of values for a given function in some silly comments which will fall on deaf ears in the majority of cases anyway. The programmer will be stopped and forced to read it, rather than waiting until runtime to discover the correct behavior, if at all.
I used BeautifulSoup for a project once because of all the accolades it gets here but found it to be less than robust. It might be sufficient in a scenario where you have a single site you need to scrap but I found it was totally unreliable when used across a wide range of sites and esp. sites with foreign language content.
I do work less. I don't think it's unusual for consultants. But my neighbors, family, and other people in my life definitely think it's weird.
You are of course correct, but (a) that's not what the GP was implying since most non iTunes music players and all significant non-iTunes stores support MP3, (b) it doesn't matter to most users, and (c) Ogg Vorbis is only unencumbered to the extent that is too insignificant to represent a useful lawsuit target.
A DOM parser will always be slower than a stream parser ...
I'll second that. I think comments are extremely useful for situations where the code isn't clear enough. Comments are also useful to explain why something was done a particular way when other ways might appear to be more obvious.

i.e. // unrolled this loop because this is a time critical method and the compiler isn't currently doing that for us.

My main argument against tons of comments is that they are likely to not match up to what the code actually does. No matter how vigilant the developers are there is 0% chance that the code will be out of sync with the code and a >0% chance the comments will be out of sync. If you feel the need to write comments for a block of code see if you can find a way to make the code easier to read before you try and solve the problem with a comment.
I don't understand why systemd is suddenly such a hard requirement: it suggests that the Gnome developers are simply punching through the abstraction layer provided by dbus for reasons of convenience. If some part of Gnome needs a system service, it requests it via dbus and parses the response. How that service is delivered ought to be irrelevant.

Since systemd is supposed to offer all its services via dbus, is the problem really "we don't want to implement all these services that a modern desktop needs". OpenBSD et al could offer a dbus layer that implements the same set of services, but they don't want (or have the manpower) to do so. In which case, I'm not really sure they have a leg to stand on: the things systemd offers really are important for a modern well integrated desktop (or any other system for that matter) and they weren't well served by initscripts. OpenBSD is free to implement a service that offers the same dbus interfaces whenever they want, but complaining about Linuxisms is perhaps a little rich: if you want your system to remain stuck in the early 1990s then that's fine, but you can't really expect the rest of the world to hang around waiting for you to catch up.
LnkHub: Easy access to the best resources on the web. Consistent and free.
There's usually a large amount of comments and metadata relating to code that isn't present in the source files themselves, but in an external database:

git blame path/to/file.txt

I think this is one of the most underused tools in software development! I wish more editors had features like "show me the history of this class/function" etc.
EDIT: Awww.. Rackspace's support chat person tells me they don't do cloud hosting in Australia. The cloud links on rackspace.com.au subtly point to the US site and US pricing. And the only way to get their non-cloud pricing for AU is for a sales rep from the AU office to call me back.
@Keyamoon you know what would be very awesome? a checkbox that automatically add @2x .png version for iOS! so when you download your icons in let say 16x16, it also create a 32x32 version with @2x in the filename. (i.e cog.png 16x16 and cog@2x.png 32x32)
ok, so i wrote some code yesterday. i didn't write it expecting anyone to read it (i mean, not critically on hn), and it's not as good as i would like, but it has no comments (apart from at the top of the file explaining how to use the program).

so, people who are saying "just comment it" - what would make a big difference to this code?

https://github.com/andrewcooke/amcl/blob/master/amcl.py
In my old job I was longing after more time off and more time to do other things. Yet I was spending about 2* 3 weeks abroad every year.

Now however, I do not feel the same need for this. I love my job, I get to do some (not meeting intense) travelling with it and I love the people I work with and what I do. Basically I don't my job is what I do for fun.

That's why I work more now.
Bugged by UFOs
Those aren't comments, that's someone being lazy.

A comment should describe the why or the goal, not the how.
I just when back and checked, it's a png of blurred text so it isn't really cloaking. Google presumably can't see that text but it gets indexed from the question, the first answer and the first words of the other answers though. Either way it's a page that's mostly useless getting indexed. Are the results higher because Google thinks a series of images surrounded by relevant text probably have relevant content? Are the results higher from the days when they didn't blur and got a half decent page rank (all those links still pointing at them)? I think Google recalculates fairly frequently, and I personally haven't seen as much Quora in my searches - but it's hard to escape personalisation see the DuckDuckGo experiment - so maybe they are on the decline. That's another argument against them being a one billion dollar company though.

So it's not cloaking, it's just bad and annoying.
Keynote Speech: "I built myself a nuclear fusion reactor when I was 16"
Show HN: Simon.Says.do – easy way to dispatch tasks to 1 to many
"Encryption in the browser" just screams "boondoggle" to me.
When compiling lists of the best Python libs, one definitely has to check out Pocoo: http://www.pocoo.org/ They are a bunch of dudes who are incredibly skilled at putting together great API:s. All their libraries, from pygments, jinja2 to sphinx are well-documented and extremely simple to use.
Getting about 80-100ms from Perth to Sydney on a EC2 micro instance.
One can argue that visual tools are only useful if you're building with a top-down approach.

Visual tools can help here, because developers take shortcuts and you’re never developing in the perfect case, so you often end up with coupling that shouldn't be there, which creates extra complexity and in general, a "mess".

On the other hand, you can take a "bottom-up" approach to building stuff, in which you're you're building layer upon layer, such that top layers depend on bottom layers, but never the other way around. You do this by designing for each layer a domain specific language for that layer, which layers at the top can use [1] [2].

And visual tools don't really help in such a case, but on the other hand visual tools aren't really needed. In my opinion visual tools for software development (and I'm thinking primarily of UML here) are just fixing a symptom instead of the real disease, giving you a wider window for building a mess.

[1] http://ocw.mit.edu/courses/electrical-engineering-and-comput...

[2] it can be argued that Unix was built like this
aside from Chrome, do ANY other browsers handle tabs separately?
OVA Members on why KVM is strategic for enterprises
Scapple: Get Messy Ideas Down Quickly (on a Mac)
NB If the answer to "why can't you write dbus interfaces" is "we'd love to, but the Gnome developers keep changing the interfaces every minor point release" then that's probably a valid retort...
I also disagree. Commenting is something I do when I'm being lazy - too lazy to make the intent of the code obvious. Sadly, this is also the impression I get when I see comments written by other developers. (That said, method-level documentation is still something I'm on the fence about.)
Out of the names I recognise, I notice Mitch Altman and Nick Farr, both of whom would usually be attending the Chaos Communication Congress in Berlin. The Chaos Communication Congress is this year in Hamburg. I'd be really surprised to not see either of them at the CCC, so I'm going to guess: that's some hardcore train-hopping.

I'm happy there is something planned in Berlin for this time... it'd feel weird if there wasn't some hacker happening in Berlin between Christmas and Sylvester (NYE).
People learn this bureaucratic sort of stuff in school, where they are graded in a bureaucratic fashion.

As with all things, ROI is key. Your commenting effort is a finite resource. Expend it in the way that gets you the most value.
If you are savvy enough to recognize crapware when you see it, you are savvy enough to not buy a PC that has a brand (like HP).
Even Chrome reuses processes for child tabs. As far as I remember it is done to allow JavaScript to access child window from parent.
On the off chance that this technology's cost could be brought down to the same per square meter as a conventional solar panel, it would add $35 to the cost of each 0.5 m^2 window, plus installation, wiring, conduit, and power converters, for a power output around 1/8 of a correctly installed commodity solar panel (and that's assuming they're able to make their 6% number work in the real world for 25 years). The 1/8 number comes from not only lower efficiency but also shading losses and bad angles.

It's a neat research project but even high-rise buildings have more cost-effective options for generating on-site solar electricity and blocking unwanted light.
Because I'm paranoid that either the industry gets hammered (jobs go away or salaries fall) or my own ability to earn somehow goes away. I work a lot and save a lot now because I can. I don't judge other approaches negatively, but I'm hardwired from an early age to work like this.
tl;dr #2

Yes you can, install Linux on your Android

I started with Linux Installer STANDARD (Galoula)
It worked, but only for a short time (random freezes)

Debian Kit (Sven-Ola) worked great

I outgrew it, eventually picked Linux Deploy (Anton Sk.)

All of these are a great choice, none of them will get you ARMHF binaries by magic, unless I missed some feature changes. ARMEL is fine though.
Seems they use pngs now but were blurring in the past http://news.ycombinator.com/item?id=4333151
What's the proposed code? BTC?
Not only that, torrents are totally sufficient when done properly.
There are no valid points in this article.
1. The interface is extremely easy to use if you stop trying to use it like Windows 95, which seems to be the world you are stuck in.
2.The lock screen fails to tell you to do next, because anyone who has ever interacted with a computer knows to press a key or click when they encounter a locked interface. Not just phones, thinks screensavers. If this is a confusing concept, you should retire.
3. Touch is not required, so I'm not so sure why this guy is so angry about the addition of a way to interact.
4."OMFG!!!!! cloud connected apps require an account!!!! and I have to use them!!!!" Again, just because a thing exists does not mean you have to use it. If you have a different application, install it.
5.Closing Start menu apps took about 5 seconds to figure out without wasting a page on instructions. EX: "Oh, when i move my mouse to the left a recent apps thing pops up... and to the right I get a control Menu. I wonder what happens when i put my mouse on the top of the screen? Oh a hand, I can move this around and pull it down to close!" Seems like maybe you NEED a beginner interface guy, ever heard of curiosity?
6. "I don't want to memorize key commands!!!! I don't want a touch interface!!!! keyboards are dumb!!!! MOUSE ONLY FOREVER!!!" Apparently the only acceptable interface to this guy is a mouse, he refuses to learn keyboard shortcuts(that are in every version of windows btw, so maybe NOT learning them is the actual waste of energy)
7. The had to rename it because of a lawsuit.
8. The next several pages are just bitching about how the past was different and how there is no start menu, even though you've spent the previous pages talking about how its all that exists now, and how Linux won't work because he watches Fox News or something.
In conclusion, according to a guy who has a website that looks like it was on GeoCities, the Windows 8 interface is both designed for children, but also too complicated for him. He needs to do real work, so much in fact that he only interacts with the user interface and makes no mention of the underlying improvements to the operating system. He laments having to use the start page to access all of the apps that he can now access from just the start page. He is so mad that you can now use touch in addition to mouse and keyboards, but is furious that he should know how to use the keyboard, and that he often has to move the mouse(even to the side OF THE SCREEN SOMETIMES! Can you believe that shit?)

Also, that pain in your leg, may be an embolism or deep vein thrombosis. It is often the result of sitting int he same chair since the 80's letting the world run past you.
Internet Explorer has some degree of tab separation. I'm not sure if it's processes or threads, but it can recover a crashed tab.
I prefer tests over comments.

Comments can't guarantee to represent what the codes does always. "Don't be lazy" is a fine argument, but it takes one time that you are under pressure to ship right away and you don't comment.
Tests, on the other hand will keep failing until they describe the updated version of the code.

We should strive to make code obvious, when it's not obvious, then you should comment, or better: simplify your code.
... is that it's 2012, digg is dead and nobody cares for the tired old memes that somehow outlasted it.
On the other hand the lack of due process is significant, what good will it be for you when your domain/machines are seized for months before you can prove you are legit?
Internet Explorer, since version 8, has one process per tab.
How I fell in love with a robot blender
>This isn't exactly objective feedback (personal anecdote) but I've never been pressured to buy extended warranties,

Well, there are two possible reasons for that. One is that a lot of Apple Store employees just aren't very good at keeping their attachment metrics up, or don't care enough about keeping the job to trade their soul for a paycheck.

The other is that a good salesperson can apply psychological pressure to you without your being able to tell that that's what they're doing. I may have used up my quota for mentioning Robert Cialdini's Influence: Science and Practice in HN comments, but seriously, everybody needs to read that book.
I don't know if they will be able to replicate the sense of danger that was present in Skyrim with another game engine. In Skyrim, when you would open a door to a new place, there was a real fear: is this going to crash my game? My whole computer?
Although I would like to see that happen, I think the argument is a big stretch. The constitutional challenge depends on the assertion that there is a free-standing right to access information, even if it is privately produced. Geist and other scholars are of course in favour of this interpretation, but I don't think it has been adopted by courts anywhere yet.
"Every 3 to 7 lines of code you'll find some amount of editorializing. Maybe every few hundred lines you'll find a good joke too."

I think there's the issue. In applications I write, every 3-7 lines of code is refactored into a method that is named exactly what it does, and every few hundred lines of code (usually much less) is in a separate file and class named on what he does. Broken out like that, there's not many places to put a comment that would be of any use.

But not broken out like that, of course you're going to need comments. But I think you'll find that comments aren't even enough.

"I know what the code says. But tell me the intent."

I think unit tests and expressive code work much better to achieve this goal.