skysight-inc/HackerNews huggingface dataset:
I remember reading some advice like this around the time I started programming. It was something along the lines of "every dev has XXXXX lines of bad code in them, so write a lot of code to get them done with!". (I think it was from Joel Spolsky, IIRC.) It helped motivate me to just write a ton of code, even early on when I didn't really know what I was doing. Just writing a bunch of code without worrying too much about if it's "right" or not is really important, at least early on.

I think I write better code now because I spent so much time just writing stuff early on, and learning from my mistakes. That, along with some good mentors helped me so much more than the people that merely criticize you because of your code. I definitely agree with this article.
1000000 lines of bad code is a bit of an exaggeration. Many (most?) programmers never write that much code in their entire careers. I've heard 10000 LOC as a milestone for REALLY learning a language (once you're familiar with programming in general), I'd say it's on that order of magnitude for writing non-terrible code in general.
How to Download a Given Folder in a GitHub Repository via SVN
Check out my Haskell driver (https://github.com/wereHamster/rethinkdb-client-driver). I think think the first paragraph of the readme describes the differences between my driver and atnnn's quite nicely:

> It differs from the other driver (rethinkdb) in that it uses advanced Haskell magic to properly type the terms, queries and responses.

For example the driver knows that this query returns a number, and tries to parse it as such:

call2 (lift (+)) (lift 1) (lift 2)

Here are a few more examples from my application:

-- | The primary key in all our documents is the default "id".
primaryKeyField :: Text
primaryKeyField = "id"

-- | Expression which represents the primary key field.
primaryKeyFieldE :: Exp Text
primaryKeyFieldE = lift primaryKeyField

-- | Expression which represents the value of a field inside of an Object.
objectFieldE :: (IsDatum a) => Text -> Exp Object -> Exp a
objectFieldE field obj = GetField (lift field) obj

-- | True if the object field matches the given value.
objectFieldEqE :: (ToDatum a) => Text -> a -> Exp Object -> Exp Bool
objectFieldEqE field value obj = Eq
(objectFieldE field obj :: Exp Datum)
(lift $ toDatum value)

-- | True if the object's primary key matches the given string.
primaryKeyEqE :: Text -> Exp Object -> Exp Bool
primaryKeyEqE = objectFieldEqE primaryKeyField

My driver doesn't include all commands of the query language, just those which I need in my product. And I haven't tested it with RethinkDB 2.0 yet.
You can't buy an idea until you know what it is.

You can't know what it is until you buy it.

So how do you think a market for ideas would work?
There's an official specification for what and how a program that claims to be a JVM implementation should operate given Java bytecode. So someone writing a language that compiles to Java bytecode would typically either target the specification (and test on as many implementations as they felt necessary), or target a specific implementation like HotSpot and ignore the rest.
> I think the better question for you would be, what's the better way to develop network protocols like this, then? Assuming that purpose, I can't think of anything to criticize here except maybe they should have limited testing to beta and dev users of Chrome. However, that limits your test data and normally that sort of thing is done to make sure web compatibility isn't broken in the future by changing standards, and given that browsers already negotiate protocols, I don't see an imminent danger there.

As I mentioned in my reply to tptacek, I'm not intending to call out QUIC specifically here; the point is simply that open source and open standards are not equivalent. Shipping implementations is fine as long as there are effective safeguards to prevent lock-in.

What we have to make sure we avoid is something like the -webkit CSS prefix situation, where the fact that WebKit was open source did nothing to prevent the mobile Web from very nearly coming to depend on all the quirks of a big pile of C++. (That situation is also an example of standardization leading to better outcomes—remember how bad the WebKit-specific "-webkit-gradient(linear, color-stop(foo), ...)" syntax was?)
No theory (random classifiers) aggregated to optimize on a non representative hold out set form a theory on that set? I think this is expected. If you create classifiers that express some domain theory on the training set in step 1. and use the information in the hold out differently you'll do a lot better (I believe - well I think I saw that result when I did my Ph.D 17 years ago).

Here is a very bad, very bad, very old, very old, AAAI workshop paper that sums up the idea (the journal paper is behind a pay wall.

http://aaaipress.org/Papers/Workshops/1999/WS-99-06/WS99-06-...
> I want to get the author to read this: https://medium.com/@maradydd/when-nerds-collide-31895b01e68c

Please no. That article is genuinely terrible -- it's the worst of hacker exceptionalism coupled with an embedded false equivalence between social rejection and rape. It's a direct symptom of the effect where an echo chamber produces conservative extremism.

I know it's quite popular on HN in part because it provides people with a framework to justify the misbehavior of the social structure they're participating in (somewhat ironic in the face of the "we don't participate in ambient social structures" absurdity the article proposes), but it's fundamentally misguided and that acceptance is itself a problem with this community.
Slava @ Rethink here. There used to be a few Wikipedia articles that kept getting deleted. I don't really understand the Wikipedia guidelines on this, but I don't worry about it too much. As RethinkDB grows the article will get added back, and it will get harder to make an argument that it should be deleted.
How to prepare and do WELL in GMAT
It's nice to see a Fortran code this old factored and presented properly as a subroutine! Other legacy Fotran codes are not very modular (at least this has been my experience).
SHA-1 is being deprecated.

E:
For more reading:
https://community.qualys.com/blogs/securitylabs/2014/09/09/s...
https://ma.ttias.be/chrome-version-42-starts-marking-sha-1-s...
good read, thanks for posting.
The site as a whole is interesting too.

HAKMEM might have focused interest for those involved in computing history and Lisp.
GNU Guix in an HPC en­vi­ron­ment
Got Hef* Outside?

* Nickname of Hugh Hefner
FM enabled could be a good resource in a emergency.
It's just a figure of speech, and catchier than 10K.
Oh great, an analogy. Now we can start debating its subtleties instead of discussing the matter at hand.
The Falcon first stage actually does less aerobraking than a returning capsule. Due to its lack of heat shielding, it's necessary for the first stage to slow its descent with the engines before it hits thicker atmosphere.
There is also a quirky documentary about a Japanese professor who searches for Einstein's brain:

http://www.imdb.com/title/tt0192519/

http://en.wikipedia.org/wiki/Relics:_Einstein%27s_Brain
There isn't a good way to do that yet. We've been playing with some ideas, but offline sync like this is a surprisingly challenging problem -- it's easy to make something that works, but dramatically harder to make something that works at scale.
It's a bit worrisome that there are no official Java drivers and the only unofficial Java project has been abandoned by its only author because he no longer uses Rethink.
first 3 upvotes, then lots of downvotes - what's wrong with my comment? Why is it so bad to advise buying companies that might have the edge over google? I actually value the comments because they pointed out most HFTs probably do not have the it.
Web app with complex, distributed back-end processing.
HN discussion https://news.ycombinator.com/item?id=9368418
http://en.wikipedia.org/wiki/Bayes_factor
Cool idea. For those systems where you don't have the option of adding a 3rd party tool, it's probably worth knowing some of the standard bash shortcuts. The easy to remember ones are:

!^ - the first argument from the previous command
!$ - the last argument from the previous command
!* - all of the arguments from the previous command
!! - the entire previous command

For example:

$ apt-get install foo
# Crap
$ sudo !!
I'm wondering if comparing one crass site to another crass site is the best defense here. The OP's comment could be just as valid for either site.
>Pricing

>During the beta period you will be charged only for the Google Cloud Storage storage and network egress consumed by your Docker images.

Dammit google, this is not how you price things. Especially when people have been burned by price jumps on your service before. I don't know why i'd bother integrating with a service when I have no idea what the cost will be.
This is just the latest of many OSes that will Save The World™.
The satirical intent is clear enough to not warrant quotes, but the existence of quotes is enough to make it misleading?
Believe it or not, Chromium/etc (the ones we are referring to here) are open source project with a lot of Google committers, not a Google project that accepts things or not depending on whims.

In fact, the project has a ton of non-google non-drive-by committers (250+ IIRC, it's been a while since i looked ).
You can define two methods that differ only by return type. That's how covariant returns work. Check the javap output and recoil in horror.
I suggest it because it makes the counterpoint that different does not fundamentally mean broken. That is something the author does not seem to grasp.
> exclusively for OS X
Oh neat, thanks for pointing me to this!
>any space propulsion system that horribly contaminates the atmosphere

Modern nukes are very clean. Even in the 70s, we had nukes that were up to 98% efficient. I can't find the numbers for newer bombs, but they are even cleaner.
Unfortunate that the author chooses to use the phrase "climate change deniers" in his opening paragraph, as it is such a lazy (and emotion-laden) term most often used to lump those who are unconvinced of anthropogenic climate change along with model skeptics, opponents of the subject's politicization and/or socially-focused "fixes", and the inevitable bunch that believe that the whole thing is a Marxist plot.

It's a subtle means of intimidation: toe the popular line on climate change, or be branded a heretic. It has no place in serious discussion of the topic.
When Paypal was still part of X.com (1999 or 2000?) they paid new users to sign up ($10 added to your new account).
That's the real mission for those unmanned boeing test spacecraft - they are the precursors and work-in-progress test craft for the classified military project to reach Mars 10 years before current estimates of civilian efforts (including NASA) in order to retrieve the generator from the rovers.
What kind of programmer are you? Stack Exchange can predict it
I think that's a good point, however some counterexamples I would give are Dragon Age, Deus Ex, and Mass Effect. They are massively curated and plot-driven games which many gamers will replay a great deal to re-experience the plot rather than the gameplay. In some cases they will replay them to re-experience the plot in spite of the gameplay.
Each application and vfx studio has their own conventions for notating a group of images (if they're zero-padded, if they're only even numbers, etc). Most of the File Open dialogs for these apps implemented their own grouping. I've never seen a general gui file browser version of this.

Here's a custom file open menu from one of those apps that wrote their own implementation (you can expand down to see the individual files):
http://www.tweaksoftware.com/static/documentation/rv/current...

Here's a Python library with generic grouping logic:
https://github.com/4degrees/clique
Why do you think emulating our real world so closely would make the perfect game engine? How would you approach (semi-)abstract games in such engine?
Disappointed that this isn't about a gathering of the few grognards who still champion the Gopher protocol.
More important than good code is shipped code.

I'd say about half my bad code is due to inexperience, what the post is referring to. As time goes on it DOES get better, especially since -- like most of you -- I'm constantly reading and trying to improve my skills.

The other half of my bad code is due to time constraint. This is either because a quick hack is needed, or the proper planning time is not allocated to do a proper job.

This leads me back to my initial statement. Sometimes you just need to get the job done. If you're not good enough to do it right, but you hack it and it works, that's good enough for now.

This is how systems get built poorly and bloat up, but there are deadlines and requirements that need to be met, and if you never ship, you'll never get the budget to rebuild that old system you allowed to get unwieldy. It's a constant struggle to balance quality, functionality, and deadlines.
" fully agree, but it has to be counterbalanced with not shipping random single-vendor features to the entire Web. The proven model here, which is a policy shared by both Blink and Gecko, is developer and beta channels and feature flags."
I don't disagree, but I'm also not sure what this has to do with proprietary vs open :)

Is it unrelated, or is your argument that if they do it this way, it's somehow now "open" and not "proprietary"?
Because if so, i struggle to see why that would be the case :)

"Even the standard versions of C++ aren't really badly designed, especially if you limit yourself to C++{11,14}: there were a few notable standardization blunders, like the STL allocator API, but by and large it's hard to find things in C++11 and C++14 that were clearly mistakes at the time."

I'm just going to go with "C++ committee members i have easy access to" (IE sit 10 feet from me) disagree :)

Now, that's not to say it's a complete and utter disaster, but ...
Arbitrary URLs or uploads on the 'contribute' form, apparently.
In case it in case it can help with anything:

http://www.reddit.com/r/india/comments/32wtn5/my_attempt_at_...
What's weird is that even though I know this is a "trick" I still want people to talk to me that way unless I specifically ask them for the hard truth.
What this curated press release reminds me of, is when OpenCyc was released. Defining an ontology it contains detail and rules, which model things from materials and processes, to projectile weapons and of course swords and what not.

In theory, something like this should provide a technical resource of standard things, which designers could then employ and build on. And which programmers, could generate a more immersive world to build gameplay on. In practice OpenCyc is a resource hog, and the details and rules it contains are when examined found to be very limited.
"Error 403 - Forbidden" - anyone else getting that?

Archived:
https://web.archive.org/web/20150327121925/http://www.duckwa...
You'd have to either use :find-file or :e (Ctrl-r +).

You can switch between buffers with :switch-to-buffer, :ido-switch-buffer, :b, :bn, and :bp. It's not the same as tabs though.
That's moving the goalposts. The original challenge was take an arbitrary SQL query stored in a string.
> Verbosity. It seems that it can't infer types in as many places as an ML. I prefer rather succinct code. I understand Scala has a powerful type system and it isn't always possible, but... ugh.

I think the problem is that Hindley-Milner type inference doesn't play with OO type hierarchies, and so Java interop (which is a key motivating purpose of Scala) means worse inference than ML-family langs for Scala. Its not really that its a powerful type system that is the issue (Haskell has a more powerful type system, but better inference.)

> OO. Scala seems to want to really embrace Java's OO model fully, and that's a bit ugly.

I think "embrace" is a bit strong, but it wants to support it fully, because its a key part of the interop story.
This is obviously very cool. My one thought is that it would be very hard for children to use. It's important to consider adoption from a wide audience.
The official narive-code application language for Windows is C++. Microsoft recommends you use that.
Don't you feel patronized when people do that though? Be as rude as you want to me, as long as you're correct.

As for myself, I tend to not call out the positive parts of something, because that's sort of implicit. I would not bother to point out that the file reading code is wrong if the whole thing was broken.

I admit I'm probably incorrect here, but I notice people try this "say something positive" and it really comes off wrong. Or maybe I don't notice when they do it well.
FWIW, I didn't achieve career or entrepreneurial success until my 30's.
Programmers tend to incline towards efficiency. I think that's why we often skip the bread and deliver only the filling. IMO there's a big difference between a criticism sandwich and tactful criticism.
If you want to look at it that way (which I think is unproductive) you should at least be accurate.

Nobody takes home their entire "income". You need to deduct taxes, rent (which you won't be paying on the road), food (which comes out of the $10k, so it should come out here), transport to/from work, entertainment, etc. etc. Essentially, you need to deduct every single cent that is spent.

I traveled for 3 straight years from age 22-25, then did that 2 year drive from 27-29. $10k is not that much money, even for a 21 y/o.

(also, as an aside, I don't make anywhere near 10x $10,000 now)
Yes! this book changed my life. It is amazing how many are not aware of the amount of criticism that they output, willingly or unconsciously.
I am black and would not be offended if someone referred to me as a negro, if they mean no offense, then I take no offense.

I've been referred to as African American, Afro American, colored, person of color, black, negro, etc. It makes no difference to me personally. Unless intended otherwise, it's just a point of reference.
I 100% agree. I can't believe I was so stressed out for p.e.r.f.e.c.t grades. They HAD to be perfect. The extrinsic reward destroyed the very purpose of schools: learning.
To: Amy Pascal
From: GC <batmansenior@me.com> [note: George Clooney]
Subject: "Re: knowing this email is being hacked"
...

And so you know... According to Scotland Yard....
We are being hacked. So I'll give you a secure address...
Now this is gonna be fun.

https://wikileaks.org/sony/emails/emailid/31233
I think he meant that Mac port of the application should look and behave like other Mac apps (following the system conventions and GUI guidelines), not that you should force Mac conventions everywhere.

I guess there's two levels of porting programs:

1. make it compile and run

2. change the UI and behavior to be in line with the system conventions

Most OSS programs which are not developed primarily on Mac only do 1.
Yes a little bit of competition in the container registry space would be good for everybody. I need to have a closer look how good is this Google offering. One problem that we run into was security when started to use Docker. The management did not want to upload the images to any cloud provider, so we were forced to create a registry in our infrastructure. For this use case Registry 2.0 is going to be a better option.

http://blog.docker.com/2015/04/faster-and-better-image-distr...
Wow, that's a great idea - but why not use the opposite side of the thumb - as if you are putting salt on things - imagine if you were having it there.
> swearing

Most actual instances of the actual word "fuck" aren't even swears.
:) think you're the only one that could find the irony out of it!
SHA-1 cert with a expiration date past Dec 31 2015 (SHA-1 certs with expiry date within 2015 will continue to be marked as secure, but will state that they have obsolete crypto if the details are viewed).
There should be zero trouble getting a RethinkDB article written now, because it takes all of 5 seconds with NEWS.GOOGLE.COM to find reliable sources to back a notability claim.

I can't find evidence of a deleted Rethink article in Wikipedia, but didn't look hard.
I added a RethinkDB benchmark when used with the Python Tornado web server:
http://www.peterbe.com/plog/fastestdb
Scroll down for the update.
> "You're reading in files completely wrong, try googling for a better solution" which unfortunately among engineers seems to be the most common reply.

I can empathize with this because I feel like saying this all too often. I guess it's a mentality of "teach a man how to fish". I guess I could use a reading of "How to Win Friends & Influence People".
> Some time ago people complained that Scala had only one compiler ... so now they complain about the opposite?

I suspect the "they" that are complaining now about multiple compilers are mostly not the same people that were complaining about one compiler previously.
I knew the SO answer must have been written by Raf before I even got to the author section. Check out his great library, ByteBuddy, if you want to try mucking with some of this stuff:

http://bytebuddy.net
The main difference in your example is talking about the code instead of talking about the person.
If only my clients and recent bosses would consider refactoring a valid billing line item...

I can only imagine sending an invoice today to my three top clients with "5 Hours Refactoring Bad Code That is Working But Could Be Better Looking....$400".

There is just no way I would get paid.

Unfortunately, I have interests outside of working on code that mostly preclude me from sitting for hours happily breaking-and-then-refixing code that is currently working ok and that I cannot bill on.

Hell, just keeping up to date with the unreal pace of change that is occurring in software right now is almost a full-time job in itself, much less fixing old stuff that is going to go away soon anyway.
We Brits are the masters of allusive and indirect speech, and I would automatically automatically strip of both pieces of bread translate that to "you're reading in files wrong".
I too recently read that book and loved it.

But (yes, I buted), I think a lot of people go overboard. I've seen people get so bent up around coming off as nice and encouraging, that it becomes difficult to even understand what they want from you. Or worse, it comes off passive aggressive.

I'm not sure there's a better fix for that than practice.
What if you are an experienced engineer talking to another experienced engineer ?

Seems to me if someone writes bad code when they SHOULD be writing good code, code-shaming might be in order.

I'm all for being nice and understanding. Everyone programs at a different level and I may not write code that is as good as I think, but some code is just obviously bad...and constructive criticism (if willing to be accepted) might help
In short, "yes and" instead of "no" or "but".
He just said "one of the most popular", and 1 -> 5 -> 6 -> 4 is indeed the ridiculously common progression of "four chord rock".

But if only the changes in chords are being notated, I bet 1, 4, 1, 5 comes from the 12-bar blues, which is even more widespread than four-chord rock. The 12 bars that dominated the 20th century could be notated as:

1, 1, 1, 1, 4, 4, 1, 1, 5, 4, 1, 5

And if you only notate the transitions:

1 -> 4 -> 1 -> 5 -> 4 -> 1 -> 5
Typo correction is useful too.

^foo^bar

git brnch

^r^ra

This works on all Unix machines
This is helpful for sure, but it's also very useful to work on having a thick enough skin to take insulting feedback in a positive fashion. After all, the only way someone can offend you is if you let them.
Except terrestrial TV coverages in the US is laughably bad... so it probably requires major revision of infrastructure to begin with. (It's ironic how in Japan you can do that for "free" but broadcasts for fixed TVs are encumbered by a heavy DRM... but that's a completely different story.)
Partify: Collaborative party/playlist manager for Spotify