skysight-inc/HackerNews huggingface dataset:
There's room for improvement in a lot of the packages out there, and I'm still surprised by what feels like obvious omissions.

An example of how even a core package could do with improving: "image" doesn't support all forms of progressive and/or interlaced PNG, any version of animated PNG, or WebP. The lack of progressive PNG means that you can't quite rely on it for user-uploaded images, and image/webp seems to be getting more traction and handling those appears to be growing in importance. Without these things, the other packages that rely on "image" to provide image processing can only be relied upon to work for JPG and GIF.

An example of an omission I found myself filling recently, a HTML sanitizer. I wanted something like the OWASP Java HTML sanitizer https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Pr... , but could only find some very simplistic sanitizers packages (little to no ability to define the policy, simplistic URL checking, etc). I ended up writing my own package to help fill the gap https://github.com/microcosm-cc/bluemonday

You can tell I'm dealing with user generated/supplied content. Each domain still feels almost there (in having a toolbox of packages that do everything you need and are rock solid), but just shy of being there today.
I don't think it's too difficult to find such opportunities if you're willing to be a freelancer/consultant.

I've gone for periods at as little as 5 hours a week. In that case I was mentoring more junior programmers, rather than owning a software project myself. It worked out great and the client was happy.

As you saw, at 16 hours you can easily own a software project and get great results. There's no reason you can't bid for freelance work at that level of commitment.
awesome-go simplifies the contribution!
You will get better results if you build a process that doesn't screen people out because of their resumes. That doesn't mean you don't screen candidates, and it doesn't mean that you don't have a funnel that knocks out a big chunk of them before you get on the phone.

It just means: don't select people for their getting-a-new-job skills. Those skills aren't relevant to software development work.
Enigmatic foundations of maths put to music
We haven't actually been getting the data to make an informed decision on these, either. It took nearly a year to get any sort of numbers out of the government regarding how many people were being targeted[1] and they still haven't given any numbers on incidental collection. Meanwhile, most of the the media has been claiming that the communications of millions or even billions of people are being swept up, and now the Washington Post is actually looking at the data they've had for the last year and saying the number is more likely to be somewhere around 900k worldwide. I'm not saying that's necessarily a great number, but that's orders of magnitude less than what we've been led to believe. Nor does the article go into much detail on what "incidental" really means versus "targeted" - are these people in contact with the actual targets, or completely unrelated? Is there a better way to protect the privacy of these people without compromising actual intelligence operations? If not, which side should we err on, and how far?

These are tough questions to answer - especially without hard facts. It's hard to have an honest debate when we the people are left trying to discern the actual facts somewhere between the secrecy and sensationalism.

[1] http://icontherecord.tumblr.com/transparency/odni_transparen...
In many ways, this article is more important to the inside baseball of the NSA policy debate rather than public understanding of the NSA program.

The Privacy and Civil Liberties Oversight Board has found the section 702 program to be reasonable in its tradeoffs between 4th Amendment guarantees to American citizens, global privacy rights, and national security gains.

The Section 702 program appears to work by either analysts or tech support personnel entering selectors into XkeyScore and similar systems(The Upstream Program) that look at network packet flows. Analysts are expected to justify even thinly that a selector is "foreign".

The data returned from a selector is both returned to the requestor and moved into a long term archive accessible by many NSA personnel.

So we believe from Jacob Applebaum's reporting that visits to https://www.torproject.org/ are tagged as valid selectors in Xkeyscore. It is indicated that these selectors are re-tasked so that once your identity is tagged your selectors are logged across the network.

We have independent corroboration that Tor and Tails are recommended tools among groups that threaten national security. The question is it worth the cost to have the journalists, human rights worker and technologists who also depend on these tools in the NSA long term archive?

The main takeaways of Barton Gellman's article are

1. NSA tech support personnel have unaudited access to XkeyScore selectors and the raw take. Numerous officials have testified to the contrary. This expands the potential for misuse.

2. The minimization process is not terribly robust. There is an enormous amount of constitutionally protected communication in the NSA full content database.
Don't you have to list the base price like price per 100 gram or 1 kilo?
We might give this a shot with alexlamsl in a fork of fibers. Would you be able to help if we get stuck?
At first, I took the title's adjective of "awesome" literally and assumed the author's list would be more opinionated as to why those libraries were awesome based on technical merits in comparison to the not-awesome ones. The go-wiki doesn't look to be opinionated so there could have been an opportunity to differentiate his list with battle-tested advice. (Maybe we've been spoiled by aphyr.com's comprehensive reviews of distributed software.)

Alas, I looked a little closer and it looks like the author used "awesome" because it followed in the footsteps of "awesome-python" which itself followed "awesome-php".

Therefore, the author's usage of "awesome" is simply a homage and not an adjective of significant semantics. (Unless the word "awesome" is constrained to mean "the libraries exist" which is amazing because Golang is only 4 years old. Imo, this is too low of a bar to signify as "awesome.")
Top 10 Most Read Data Science Articles This Quarter
Good point, I'll find that out. Thanks!
Definitely.

Typically, the types of projects I'd outsource to a consultant are non mission critical and the pacing is such that a 1/2 time consultant is totally fine.
It's a bit like an elephant whistle.
These sites are hiding in the deep web on purpose. Google doesn't index sites that don't want to be indexed. It respects a site's robots.txt, for example.
How so? All I'm seeing is that some speedups aren't possible. It still seems like a useful concept, particularly since "faster" was never one of its promises (maybe "easier to parallellize", though.).
For what periods of time have you been able to sustain your needed income? I did this for a few years, but found that it often took a significant portion of time to line up the gigs, and some customers would hold payment for extra work.

Do you ever end up with only 5h of work when you want / need more?

The economy was diff a few years ago, though..
Well, in practice, HTML in emails almost never is worth it, and that's not because richer markup is necessarily a bad idea, but because people don't grasp the concepts, and because what plain text provides almost always is actually powerful enough, while being a lot easier to use - which is important, given that emails tend to be read once, in contrast to websites, which tend to be read lots of times, so more effort in composing them is justified.

In order to compose an HTML email that actually takes advantage of the power of HTML, you have to grasp the abstraction between what you see on the screen and the underlying document structure, and how that underlying structure might be rendered by different receiving MUAs - something that most users don't grasp at all, and also a problem that's not particular to HTML email, but one that is well-known to affect all WYSIWYG authoring tools, and one that is known to be particularly problematic with document types that can be rendered very differently depending on the "medium".

By contrast, the typewriter style interface of plain text email composition is something that's completely intuitive to most people, and people easily succeed at composing an email that reliably will be rendered at the receiving end exactly as they expect - and most of the structure that you need for most email correspondence can actually easily be constructed manually from individual characters (headings, paragraphs, lists, numbered lists, ...).

Also, it can be observed that almost everyone reads books and journals typeset with TeX or DTP software. That's not exactly a good reason against creating your shopping list with a pencil.
Stone Soup is a good community, and sounds like the right idea. The TOME suggestion is also good.

If you just want to write something to share with friends, go with rot.js. It's a nice approach, and it takes away all the complications of delivery. I did a 7drl entry a few years ago. The task of making it deliver in a clean package for multiple platforms took longer than everything else about writing the game put together.

Smart Kobald is an interesting read, C++. http://www.zincland.com/7drl/kobold/

So is Gruesome, Pascal. http://gamesofgrey.com/
I don't know if you've ever used Django, but the entire thing is based on inheritance. When they introduced Class Based Views it got so complex that someone had to make this site just for exploring the inheritance tree: http://ccbv.co.uk
Why you just do not use different email client?
I cannot find it on Microsoft.com or bing.com, but apparently, their position is: "We’re currently working on a special process for residents of the European Union to request blocks of specific privacy-related search results on Bing in response to searches on their names. Given the many questions that have been raised about how the recent ruling from the Court of Justice of the European Union should be implemented, developing an appropriate system is taking us some time. We’ll be providing additional information about making requests soon."

(http://microsoft-news.com/microsoft-is-still-working-on-righ...)
The point of typing a message in a webmail UI and sending it is to deliver the exact message you entered to the recipient. Adding hard line breaks, effectively altering the original message, is not useful.

Making text fit on a 80-character fixed-width screen is not something the email sender should do; the recipient’s email client should do it based on their preferences.
Show HN: P4K Prowler - A Pitchfork Reviews Scraper built in Meteor.js
This is is one of those "Required Reading" posts for *nix users.. Thank you for this!
So if this list is published, won't this have kind of a Streisand effect for people who request to be removed from Google search results?
And my understanding is that we got punched cards of that size because they fit into the boxes and drawers for large-format US banknotes:

http://en.wikipedia.org/wiki/Large-sized_note

Which in turn apparently goes back to taking a common paper size and cutting it into reasonably-sized pieces:

http://ask.metafilter.com/262846/What-is-the-origin-of-the-d...

So apparently one person lost to history said, "How big should it be? I don't know. Maybe about this big?" Centuries later, somebody at IBM said, "It looks like we could fit 80 columns on that. Good enough?"
Not to mention Ruby on Rails, that codebase is a huge mess of inheritance.
I negotiated a 4/5 work week with an ex-employer of mine at 80% of that previous salary.

I'd say work somewhere, prove your worth, then negotiate a better arrangement.
Not entirely clear why you're conflating the IWF list with the EU Right to be Forgotten. They're different systems run in different ways by different groups.
Line length around 80 columns come from letter paper in a typewriter (via teleprinters) which in turn comes from book printing, where around 60–65 printed characters (plus blanks) were established as most readable centuries ago.
Sounds good. Comment wasn't intended to be harsh (nor bash on River North because I've spent my fair share of time there).
So, if they're using a standard regex parser, and not cleaning the input, maybe some regex wizard can come up with some interesting Bobby Tables type fun.
Hey namidark,

As an avid honeypot person I like this project a lot, I'll be doing a talk at a conference about them soon. Do you provide a master repository for the username/password combinations that have been guessed? I understand I could do this with constant JSON fetching but I admit, I don't have an incredible talent when it comes to web technologies (but it is something I am working on improving).
http://webcache.googleusercontent.com/search?q=cache:GuOdGlv...
Ha, that's one of the few things I remember from that book. (Not knocking the book, just my poor memory.) I remember it being a big "a ha!" for a project I was working on.
Hollerith cards originally had 45 columns.
Go needs a Cucumber (BDD) library.
Single Responsibility

This. There aren't enough dead single reponsability horses :P. This should be drilled in new and experienced programmers over, and over, and over again. And then some more. Because while it sounds so simple it's actually all to easy too violate and because it applies to each and every layer of a project. I'd even say most design patterns are actually proper implementations of SRP in one way or another. Most of the time I have a feeling something if off with my code, it boils down to some pieces just doing too much, hereby dragging others down with it.

Anecdote applied to this particular topic: the intern, proud of having used composition as much as possible, creating mostly classes composed of 10+ other classes and functions that might as well be called NowDoItAll().
Effective Java is the textbook of junior professional programming. All your new hires shoyld read it.
Frying Pan Tower
Mathematical understanding quite often contradicts intuition. Part of becoming a mathematician is learning when to trust your intuition, and when you start your mathematical career your intuition is pretty unreliable. The thing about AoC and measure theory is that it's notorious for challenging your intuition after you think you've built up a lot of good intuition.

Also, from my experience the vast majority of mathematicians don't care whether their theorems are ZF-compliant or need ZFC, unless it's marketed to logicians or specifically deals with AoC in a certain field.
The keyword matching thing is one of my pet peeves. I was discussing a position once where they wanted firmware AND machine control AND computer vision AND WPF AND C++ AND SQL for their machine. Now this a machine I could produce myself from scratch I think. But the client wanted his keywords met I didn't have them all.

The recruiter had a laugh when I wrote this:

I’m not sure Michelangelo had painted a ceiling before he painted the Sistine Chapel. “Hmm, Mike I don’t see any ceiling painting experience on your resume’...”
Ok, which are the baby steps to implement pattern matching in a language?, and if is more similar to python/swift than lisp?
Netcraft Risk Rating is 10/10 http://toolbar.netcraft.com/site_report?url=http://hiddenfro...
What do people recommend for learning about SOA / microservices? I liked Patterns of Enterprise Application Architecture and Enterprise integration patterns, but didn't have a great experience with the SOA design with Rails book - it felt much to focused on very basic details (e.g., here is how you consume JSON).
Jewel, A ruby interpreter created in 30 minutes, 20x MRI speed, Shenanigans
http://www.amb.org/audio/alpha10/

Here's another arduino-based pre-amp. This one includes relay-based stepped attenuators and input selectors. The pcbs are all available as well as the schematics in case you just want to use it as a base for your own project.
This is literally the exact same argument as "security trumps privacy".

NSA et al. argue that they need to know about everyone's dirty laundry in order to protect civil society from terrorists (or whatever).

You argue that the public needs at-your-fingertips access to everyone's dirty laundry in order to protect civil society from (idk? dictatorship that will inevitably ensue if sleazy reporters don't get their ad revenue?)

How about this alternative: whenever something actually important is de-listed, concerned citizens can mirror en masse. But when some trivial bit of gossipy sleaze reporting that no on cares about is de-listed, we let it die its rightful death.

I see no reason to Streisand-effect private citizens trying to rebuild their life after some reporter decided to make a quick buck profiting off of a single stupid mistake. The fact that you're so gung-ho about contributing to these people's continued misfortune in the name of your political agenda is deeply troubling.
That's my blog post! So i'll try justify myself.

"True, but they'll be a damn sight quicker at picking it up than anyone else. And they'll write far better code when they're there."

Tried that with a few developers. Because it was such a change in thinking for them, the same standards didn't apply to javascript as it does for C, they would approach things the way C does instead of the way recommended by javascript etc. They were constantly fighting against their habits which they have had for 10 years. Soon as you add less, bootstrap, require, and so forth. Their learning curve starts becoming much higher and with the hindrance of their old habits. They end up worse and others have to refactor their code! This isn't opinion, it's happened a few times already at work.

"In my CV (highly rated by everyone i've given it to) you won't find a single one of these. Instead, you'll find real descriptions of what i've accomplished, who I worked with (mentoring etc), my methodology (agile, test driven development) and so on."

If you have a CV with the reputation like Jon Skeet, Rasmus Lerdorf or Douglas Crockford. Fair enough. But most people don't :)

"And UML... holy shit, yeah, no."

It's the best way to communicate how code design will be put together when talking to other devs. Instantly things like inheritance being used instead of aggregation, or composition being used when aggregation should be, or methods in the wrong classes. Even our IDE will produce UML which instantly lets devs see when they have placed something in the wrong place, set a method to public instead of private, and so forth.

If you can read the basics of UML it helps tremendously.

"The only way to do it is to use common sense and actually read the CV's you're being sent, then talk to the people you think could do the job to see if they can."

Interviewing someone is expensive. I have my usual job to do as a programmer, interviewing takes me out of action for hours. I have to work out who has the higher chance of being worthwhile interviewing. Which is why I wrote that blog post. Explaining what things I personally, and i'm sure other employers will look for especially when comparing to another developers CV.
All sound waves are directional, but the point made by acousticians is that in any enclosed space with dimensions smaller than the wavelength in question (56 feet for 20Hz), low frequencies are effectively non-directional because they fill the entire space (with nulls at various points). The wavelength of high frequencies means you can orient their direction in the room.

Of course you won't hear this outdoors because the sounds are not in an enclosed space.
The Summer's Most Unread Book Is…
Larry Lessig raised $5 million to reform campaign finance
Java Performance Auditing  - Caudit
No troll. The typos etc are explained here: http://www.reddit.com/r/programming/comments/29yq47/how_to_r...

Mainly to do with the fact I am from the UK and we spell things differently to people in the US.
Composition always takes more boilerplate, because inheritance is noting more than composition with a bunch of default choices for a privileged component (single inheritance) or arbitrary sorting of components (multiple inheritance) made so the programmer doesn't have to write them (but also loses control).
The author mentions a lack of a sensation of speed. The main reason for this is relatively obvious if you spend a few moments examining the gameplay footage: The sprites all have a simple traditional 2D drop shadow, where the size of the shadow is the same as the size of the sprite and it's offset by a few pixels. This visually implies that the sprites are very low to the ground, and as a result the slow scrolling speed of the background means that the sprites are not moving very quickly.

Under normal circumstances the cloud layer (moving at a higher scrolling rate - parallax) is a good way to create a sense of motion, but it's really just making it look like the cloud layer is moving fast :) What you really want is to fix the way you're shadowing the objects.

Removing the shadows entirely would probably eliminate the false cue but then you lose a sense of the sprites floating over the terrain.

There's also a related problem in that the player and enemy sprites are effectively floating on their own layer that doesn't scroll. When the enemy sprites are flying along at their own pace this is easier to ignore, but when an enemy appears that isn't moving horizontally at all (or is aligned with a fixed point) it makes it more obvious that the depth and motion cues are wrong.

To be fair, these are all problems that you will see in other games of this type. It's worse when you're using a straight-on top-down perspective like the game in this post.

EDIT: Some relevant examples:

Raptor: Call of the Shadows is an old 2D shooter with a similar perspective (top down), though scrolling vertically. This game does shadowing relatively correctly, where the sprites cast shadows directly on the background layer at a position that scrolls with the layer - so as the sprite advances down the screen, the relative position of the shadow changes. This creates a sense of the sprites and the background scrolling at different speeds, so you feel some depth. (The shadows are nearly as large as the sprites, though, so it still doesn't feel like they're very far off the ground.)

https://www.youtube.com/watch?v=grXkzisSEM4#t=7m30s

Ikaruga takes an alternative route here: While the enemies are basically 2D objects on a flat plane, they don't cast shadows at all and the backgrounds are effectively just FMVs containing various motion. They use the background to convey a sense of camera motion without tying objects to them at all. This lets you avoid having to precisely align the sizes and positions of your entities with the background (though of course, they end up kind of disassociated)
Think i've already replied to this (sort of) here: https://news.ycombinator.com/item?id=7994877
It's a common "meme" from the past, perhaps you're too young to get it.
Thanks for this up to date list!
I was totally unfamiliar with any linking between functional programming and Abstract Data Types before reading your post. They are certainly present outside of that world.

Back in my university data structures class, an Abstract Data Type was just the collection of "a data structure and its operations". For example, a tree ADT could be a struct of two pointers and some value, along with operations like addNode, removeNode, findNode, copy, create, destroy, etc... We wrote lists, stacks, trees, hashes, and graphs in C as self-contained ADT libraries. This wikipedia page [1] explains the differences in approach.

The concept of data+operations was a lead in to objects for us, and seems very simple. Is the ADT idea in functional programming inherently more complex? I see from that page that it is intended to be immutable, which is certainly a difference.

1. http://en.wikipedia.org/wiki/Abstract_data_type#Imperative_v...