skysight-inc/HackerNews huggingface dataset:
I've been watching my son go through MIT 6.00.1x. He's working on the first midterm this very minute.

One of the things I've noticed is that, yes, code quality is from OK to horrid sometimes. Rather than stand behind him and correct every little detail I've let him navigate the problem sets and quizzes mostly on his own. When he gets stuck I give him a shove in the right direction and see what happens.

I've reflected on this as I've never really looked at student code. By the time I was a college student taking my first programming course I had already built a number of microprocessor boards, learned how to program them in machine language and moved on to Forth and C. I think my code was reasonably clean by that stage. Still, I know it wasn't professional grade by any measure.

It's easy to forget where we all started from and, as a result, criticize student code as naive. Well, in most cases, it is. That's a fact.

What I have now realized from watching my son learn to code as well as interacting with him through the process is that he is not learning to code. He is learning to think. He is learning about dissecting problems into small conceptual units that he can then translate into code. Sure, he is learning python in the process. However, the problem solving, solution structuring and problem representation skills that are very much necessary to be a good software developer are mostly language agnostic.

Realizing this, the fact that he is writing code that isn't the cleanest or the slickest possible solution to a problem stopped bothering me. I want him to learn how to think first.

Not to say that I've completely ignored the issue. I let him finish the assignments on his own and then we sit down and do a code review session where I point out where and how things could be better. We've had cases of a dozen lines of code replaced by just a couple. And that's OK. That's how he is going to learn.
I really like this idea actually. If the performance would be (a lot) better, it could be a very nice alternative to advertising. Everyone who visits your website would 'pay' you with some CPU/GPU cycles, and in trade for that you give them a web page that's completely rid of advertising, third-party tracking cookies, and other stuff that users find annoying.

Personally I think advertising has been dying for years now, especially with all the adblockers that become more and more popular. It's time to come up with an alternative business model for websites (no, not talking about SaaS here..).

What's your share in this? You take a certain percentage of the mined coins?

Too bad mining is becoming more and more difficult, meaning that you will earn less and less.
The aggregation framework is ideal for answering these kinds of issues. Mongo has a bunch of aggregation routines that are useful for producing reports on demand, but not on the fly. The trade-off is possible because we know that the collected data (test answers) won't change after it is finalized, and the output of any individual report can be cached virtually indefinitely. (See http://docs.mongodb.org/manual/core/aggregation/)

Also keep in mind that unlike something like a web analytics package that gives you the option to filter and sort your data on any combination of criteria imaginable (for no good reason), the questions that academics/educators tend to need the answers to are generally the same for every new set of tests.

In other words, it's not necessary to enable every possible combination, filter, and sort of output, but merely (ha!) to optimize for the specific results that we know we will need (with a nod toward those results we might expect people to want in the future), and to codify the formulae that will produce those results.

Working with not a school but a testing research company (think of a company like "College Board" vs a "Smallville School District") leads you to produce reports that are significantly more detailed and statistically more valuable than "average score" questions like this, all of which is possible within MongoDB. Though, obviously this treads a little more into work product than would be comfortable to expound upon here. ;)
> "Yes but you can't read them without getting eyestrain."

Maybe I'm working on borrowed time with young eyes, or maybe I work too close to my screen, but I certainly can.

I am sitting here at work on a company T420 with a 14" screen at 1600x900. Laptop on my lap, back of the laptop at my knees with the screen tilted away from me and my body reclined away from it. Feet kicked up on another chair. ...I find this anything but satisfactory.

I can get two decent vertical panes with tmux over putty, with three being possible for some tasks. At home I frequently do double this, or more.
Messing up with git and apologizing publicly is hardly being a jerk IMHO.
ItBit Launches Bitcoin Exchange with $5.5M in Funding
> CouchDB/Couchbase split confused a lot of people

Yes, that really didn't inspire confidence in the longevity of the project
The important part of this post is here:

But the most important question about the dynamics of Bitcoin mining, which nobody has yet answered, is whether there is an equilibrium that can actually occur in which the Bitcoin economy can no longer function. This is the question that everyone would like to answer.

Indeed, the Cornell attack on Bitcoin mining claims to demonstrate that Bitcoin is not incentive compatible. This claim is demonstrably wrong. The burden of proof is on the original authors to rebut their (correct) detractors.
the box turning green feels as having selected something, not actually submitted, and the "Subscribed!" line is far from the where you did the action, and disappears after a moment.

I don't know if this is a good design or not, just sharing my opinion as someone else who took a bit to understand I had actually subscribed.

I also was sort of expecting the example to change :/
And it absolutely makes sense.

Amazon isn't just giving out free money. Affiliates are meant to drive traffic to the Amazon website. This service doesn't seem to do that.
Meh...the bundles have been hitting fast and heavy recently. I guess this is the next logical step. Rather just wait for a steam sale to be honest. The reason the bundles were so appealing to me was the ridiculous price you could pay for a ton of games.
HyperLogLog based COUNT DISTINCT APPROXIMATE, that's an interesting development in there (simple algorithm, but complex math).

I wonder what hashes they are using.
Look Inside Apple's Spaceship Headquarters
StaffReduce
When my circle of friends found that site it became an in-joke. I'd never heard of it, and eventually they came up to me and asked "Can you download more RAM?".

I don't think they were expecting my answer:

"Sure you can, just use plan 9."
What I'd like to also know is:

Would you rather get 52 meetings with VC's or 52 meetings with potential customers who are willing to tell you their pains, frustrations and problems?
I'd recommend the dell XPS 13 developer edition (it comes with ubuntu). I'm not sure about the battery, but the form factor is pretty close to the MBA.
People hate joins because at some point they get in the way of scaling...

No, in fact, they don't.

Poor relational modeling gets in the way of scaling, and that can be geometrically exacerbated by JOINs. A JOIN, in and of itself, is neither good nor bad. It's just a tool, and like all tools, how you use it is what makes it "good" or "bad" — just like you can build a house or bash in a skull with a hammer.
I tried your extension but it caused Chrome to get stuck in an infinite redirection loop.

I used the eBook link to amazon.com on this page: http://37signals.com/remote/
System-wide devnull-as-a-service for Linux
GET jaspervdj.be/lorem-markdownum/markdown.txt?allow-headers=true&allow-code=true&allow-quotes=true&allow-lists=true&inline-links=true&hash-headers=true&asterisk-em=true&asterisk-strong=true

Let me know if you run into trouble. :-)
Of course it does, Counterterrorism is one of many missions it must undertake. It's not like the NSA was set up during the Cold War when terrorism was barely a policy making blip on anybody's radar or anything.

In other words, Spy Agency does Spying, news at 11.
you could consider selling your apps individually? http://www.apptopia.com/
It's more like using a very good screw driver instead of a swiss army knife that does an OK job at everything.

Yes there is no rule that one tool has to work for everything, but there is a rule in Agile that you should push off making assumptions about the future as far as possible, because you will never know less than right now
I completely understand - this was one of our major concerns when we were deciding whether or not we should count redirects. If you look at the function incrementCounter() in the code (https://github.com/Jdhaimson/smilealways/blob/master/chromep...) you can see that all we are doing is pinging the server without passing any information along to increment a counter each time someone is redirected.

That being said, I think I will take it off of the site because it can be scary if you don't look at the code. Thanks for the suggestion!
How My Son Made Me a Better Teacher
Full disclosure: I am an upper year UWaterloo Student so my opinion is likely biased.

If you are looking to work in tech in Canada, Kitchener/Waterloo is the place to be in my opinion. It has:

1. A fast growing Startup community that has a lot of support from both the city and various tech organizations in the region.

2. An excellent pool of talent with UWaterloo(excellent Engineering/CS programs with a focus on entrepreneurship), Laurier(Well respected business program), and Conestoga College (Well respected Graphic Design Program)

3. Getting more recognition for the companies it has been producing in recent years with a couple high profile companies taking off (Thalmic Labs, BufferBox, Kik) and PG saying the region has produced some great companies (http://www.techvibes.com/blog/paul-graham-y-combinator-water...).

The cost of living in the city seems on par with a lot of the medium sized cities in Canada and as a student I know you can definitely live off of a pretty small budget. I think the benefits of working in region make it the place to be and can definitely be done for pretty cheap.
An Evening with Twitter Bots
If you only need concurrency for I/O, and in particular networking then OCaml is pretty good here:

- you can use system threads. Yes you'll only be able to run one OCaml thread at once, but when one OCaml thread gets blocked on I/O it switches to another.

- you can do co-operative threading if you write your code in a monadic style (there are a few libraries providing this: Lwt, Async, and in some sense Equeue). Then you don't need to worry about the thread/context-switching overhead, and the event-driven architecture should allow you to scale to thousands of concurrent events. While this may sound scary at first, the syntax is quite easy to understand, and it really is a lot easier than trying to write non-blocking code in C with lots of callbacks.

In particular have a look at Ocsigen, and Eliom that provide a web-server and framework: http://ocsigen.org/tutorial/

Regarding the book have a look at the 'Concurrent Programming with Async' chapter that shows how you can write a TCP server/client that doesn't block.
http://www.youtube.com/watch?v=-8oH8JHaE00
Wow! That is an impressive setup!
Yes, unless others have pushed local commits based on outdated clones in the mean time; then someone will have to rebase and rework (or just blindly merge and repush)
Car-Free City: China Builds Dense Metropolis from Scratch
Dance Dance Intoxication - 500SW BarBot
For what time duration?
For all we know the back end of this thing is Steam. Gaben has been talking about changing Steam so anyone can make a storefront, and Humble makes a lot of sense as a test lab: they're already competent at sales and running a website, plenty of traffic (vs. jacobquickscaveofturn-basedstrateg.ie), and because they have ongoing business with Valve anyway they probably share a lot of data.
Is it really necessary for this extension to "access your data on all websites" and "access your tabs and browsing activity"? That's asking a lot.

Shouldn't it only need to access amazon.com? E.g. once it detects my browser is on amazon.com, just redirect to smile.amazon.com. What else does it need to do?
Reminded me of the Unoceros team, and their SDK (currently in Alpha):
http://unoceros.com/

The idea is "make money with your phone, in the background."
More systems need to implement undo (and scalable undo). Hiding behind "are you sure? (Y/N)" type of prompts and saying "Well, you really should've checked that thrice before hitting Enter" is not good enough.
We have often inexperienced students, who do get push permission to our central repos. So far they all behaved reasonable, however we had one accident.

The student used Eclipse with its git integration. He tried to push, but it failed (non-fast-forward). Apparently, Eclipse tries to be helpful and says something like "If you want to push anyways, use the 'force' checkbox". Not knowing what a "force push" is, the student followed Eclipse's advice.

Thankfully, the distributed nature of git is very helpful. You can just force push again from another repo to undo the force push.
How many more years until Go gets named parameters?
Because fighting commies isn't as sexy as it used to be.
I think that documentation is desired to limit legal exposure.
1) Do you think there would be less illegal labor practices if there weren't labor laws in place and an enforcement mechanism?

2) I'm not arguing for allowing underage sex workers. However, age of consent is very much a cultural issue, and I'm not comfortable insisting on a certain age, that should be up to each country.

I'm arguing that legalizing sex work would provide those who consent to do it with a modicum of safety, and instead of being a coercive act it can be a route to empowerment. Furthermore, I'm arguing that legalizing sex work would reduce the demand for illegally trafficked sex workers. Lastly, I'm arguing that providing a strong social safety net would reduce the number of people who engage in sex work out of necessity. The sad fact is that a lot of child sex workers are brought into the sex trade by their families because it is sometimes the only means of survival.

Prostitution being illegal only punishes the victim. Trafficking sex slaves, using sex workers who don't/can't consent, and any other practices that harm sex workers should be illegal and heavily enforced.
Thanks for letting me know! Was it this link that caused the issue for you? http://www.amazon.com/gp/product/B00C0ALZ0W?ie=UTF8&tag=rand...

For some reason, it seems to be working fine for me.
Any Stack ranking using a Bell curve would be dumb. Nobody I'm aware of does that. Most curves look more like a Chi Square Curve, which is far more top heavy.
Yes! And git already gives all the pieces to make this work. (Specifically the reflog.)
Maybe a high-profile incident like this will finally convince GitHub to let you disallow force pushing to specific branches in repos – like your project's master branch. I asked about this years ago and iirc was told there were no plans to implement such controls.
It probably waits until you hit a site it that's in in their store catalog and redirects with the proper CJ/LS/Amazon link. I wrote something similar for Firefox a few years ago.
Ah true it appears from some SO responses you can contact support and they can restore it. But there appears no way to access the server's reflog through github or is there?
I'm with YesGraph and hired Luke. We're really excited! A good chunk of the team is remote, so feel free to AMA. He's lurking here too :-D
The easiest (in terms of solution, but it took me a while to think of it) - we had maybe 30 modems on that had to terminate on a single server - we stuffed it with RS232 cards, the problem was that Windows Server came with only 5 incoming licenses on terminal services, and we had to connect everything on the other side to the inside network. And it was expensive (this was 2004), so I had to find a way to do it on XP. The solution - just install vmware player with linux, pass the com ports to the linux virtual machine and use the nat that it provides. We could connect as much as needed for the price of single XP licence. (we could not use straight linux box due to "REASONS")
> by the time you hit the point where you need a NoSQL solution to handle scaling issues

See, people keep saying that NoSQL databases give you a performance boost over traditional relational solutions (MySQL and Postgres), but exactly where does this performance boost come from? I can understand the appeal of in-memory databases or using caching (Memcached) to supplement the relational solution, but it seems like the vast majority of Mongo's performance benefits come from eschewing ACID guarantees rather than document databases being inherently faster.
No YOU'RE a towel!
So does this imply Adobe gave Facebook a list of user passwords?
I think managers are inherently in a bad place to review the performance of individuals in the team below them. They're primarily affected by the mean performance of the team, so if one guy is slacking off and the rest of the team needs to pick up the slack, the manager might not notice. I think peer reviews will be more honest. If a peer is doing next to nothing, or providing little to the team while everyone else is working like crazy, you're in a much better position to see that.
Go does have a much better concurrency story, OCaml's is rather weak (as others have observed).

For the work I do (data analysis and scientific research, particularly on recommender systems, with system-building to support that), if I need concurrency, it's suitable to run the program on the JVM. So I would use Scala in that case, and OCaml would be fine for the other systems-y stuff.

I personally have taken to writing such code in Haskell these days, but that's largely to practice my FP skills in a manner that's easier to transfer back to Scala.
That was really fucking stupid and sexist.
I think it is a truism that systems which allow users to do interesting and clever things must also allow users to do remarkably stupid and wrong things.

Rather than focusing on how to prevent a user from doing a silly thing like this, I think a well-designed tool would easily allow the user to undo the silly thing he just did.

Isn't that exactly what a revision control system is for?
MongoDB doesn't forbid you from having entities and relations. It just doesn't support them in the same way that SQL databases do. Ditto for CouchDB, etc.

You end up having to do some joins yourself still, but this is often appropriate. Imagine that the "actor" entity contains a complete bio, including family history with relationship to other actors, links to wikipedia & fan sites, etc. When you're displaying the page for episode #202 of "Everyone Loves MongoDB", you don't want to retrieve all that data for all the actors. You're not going to display it all on the episode page anyway. Instead, you just need an ID (to href an a and src an img) and probably a small amount of denormalized stuff (name, for the img alt ...). Since that's what you need, that's what you store.

There's a limit to how far you can denormalize schemas before it is no longer helpful. The author explores this limit, and finds that MongoDB doesn't make the limit go away.
>On my laptop, PostgreSQL takes about a minute to get denormalized data for 12,000 episodes

I have seen numerous relational databases where people complained they were slow and they had zero indexes. 12k records to any rdbms is nothing. Which touches on another pet peeve of mine when people talk about how much data they have so they have to go nosql, yet they only have thousands or millions of records.
Nokia Purity PRO Wireless Stereo Headset By Monster
> In reality of course, most of us don't have that problem, never had and never will

Maybe you never had any problems, but I don't believe "most of us" can say the same. At least me, I'd encountered problems derived from join-abuse in almost every job I've had.
I built an iPhone app that shows you all of the trending repositories that use the languages you like. It's called Repo; if you're interested in checking it out, you can download it (for free) by going to:

http://appstore.com/repo
Err, what?

So languages are plagued with implementation-specific schematics and in truth, all languages grow up at the same time with their reference implementation and it's the reference implementation that defines that language.

Basically, I don't care what the ideal implementation for a language X might look like in 10 years from now, what I care about is (1) what am I able to do with it right now and (2) what's the community's culture like?

Lately I've been learning some Clojure. I'm fascinated by how Clojure developers work with the source-code. Emacs is an extremely capable editor, but for Clojure it's a full-fledged IDE and a shell for the REPL and it can do anything you'd expect from an IDE. And the whole workflow is basically typing code, sending that piece of code for evaluation in the REPL, typing in the REPL some quick invocations to see how it works, rinse and repeat. The learning experience is also completely awesome, as for some reason you end up reading a lot of the standard library's implementation - coupled with the REPL on the other side in which to quickly type what you read - the workflow is amazing (though Smalltalk developers are probably laughing at me right now).
Be VERY careful with this - it may end up hurting the charities you want to help. If Amazon dislikes this they may not be able to do anything to you (or to get you to stop it) but they may be able to shut down charities that are receiving money because of you. I wouldn't be at all surprised to find language in the affiliate agreements that bars this kind of thing and kills accounts of charities that use it.
Completely agree with the "let's see what they'll do with our data" philosophy!

The three stated objectives of France's open data policy are:
1. to make government more transparent and accountable,
2. to improve public policies and public service delivery, and
3. to enable entrepreneurs and civic innovators to develop create new services based on this data.

That's why we've brought together more than 30 key players in the French innovation ecosystem (VCs, angels, research institutions but also media, larger French corporations, Google, Microsoft etc.) and organized a series data-driven startup contests called DataConnexions.

You can check the best projects from the first 3 editions (from early 2012 onwards): http://www.etalab.gouv.fr/recherche/?query=dataconnexions

My personal favorite is an app developed jointly with the Greater Paris transport authority that uses context-based modeling to predict train occupancy levels at each time of the day, in real-time, taking into account any perturbation on the network and live feedback from users: http://tranquilien.com
Looking at the source, higher scores are better. There are a bunch of tests, and each one produces a score from 0 (bad) to w (good) for some w. The total score is the total of all these.

Given that all the other numbers on the page are ones for which smaller is better, I think the main score itself should be accompanied by a note saying explicitly that higher scores are better.
There can be a lot of value in refactoring code, but you should always refactor to _reduce_ bugs, rather than introduce them, and increase maintainability, rather than obfuscate it.

When I see terrible code and set out to fix it, I try to change it into what the author probably meant, rather than how I would have done it. And usually that's a lot faster, because I don't have to rethink and rewrite everything.

And sometimes the ugly approach really is better. I've introduced tight coupling where loose coupling was causing problems. The components were never going to be used separate from each other anyway, and this removed a whole pile of complexity that we didn't need. The simplest way is often best.