skysight-inc/HackerNews huggingface dataset:
Manning was applying his training as an intelligence analyst to the big picture factors involved. He is clearly very skilled at synthesizing large amounts of information.

I think the argument can be made that Manning truly believed in the goal of the US war effort, and could not stand to see the US doing things that he viewed as hypocritical. To someone in his position, living every day fighting a war that most of us are clueless about, the idea that the organization he was a part of had some bad apples, or worse that it had structural rot and corruption, would have been dispiriting and infuriating, and something that he was willing to take personal risk to fix.

So I think that to consider Manning's thoughts and actions unusual you have to make the argument that the military is full of cynics who just roll their eyes when atrocities happen or buffoons who drink the patriotism kool-ade and view the US as being capable of no wrong...

Manning had unique intellect, unique skills, and unique access to data. He was also in the small minority of people familiar with Wikileaks and ballsy enough to risk his own life by leaking information. There are probably many people in the military and in various corporate jobs who view Manning as a hero but who lack the personal courage to do what he did.

What would you assume would happen if a whistleblower stepped forward and revealed lies and corruption... I might have predicted initial outrage followed by reforms and the eventual pardon of the whistleblower. Manning's case shows us that the actual result is years in prison without charge, a massive attempted cover-up, and all kinds of shady behavior by the US Government. There has still to date been no reform undertaken other than to prevent information leaks through the methods Manning used.

Oddly the US news media has not called for reforms even as a counter-balance to its coverage of Manning (and its coverage of Assange's so-called rape charges). It would seem to require virtually no courage on the part of journalists to address the question of reforms even as a subtext to the sensationalism and propaganda.
We have some customers grandfathered in at our earliest pricing tier: $10 per month. When we signed them up at that price, we told them that at some point in the future that would change. I think the important thing early on is to set expectations. Don't pull the rug out from under people, but if your product is 10 days old, tell people that you want the flexibility to change the price in the future.

We're considering adding features not available on prices below X and also offering them a significant discount to switch to annual billing on one of the newer pricing plans.
That's one thing I found really useful in reading Kimball's books -- the concept of fixed, slowly changing and quickly changing dimensions.

Everything is in flux, and you can choose to model that or not model it.

At the first level, you just model the current state of the system.

Then you begin to model the events that change the current state.

Then you begin to model changes in the shape of the problem domain.

Models all the way down ...
You can. We did. We improved the product and charged new people a higher price while keeping early customers at their old price.

Netflix was way past this point when they changed their pricing model. I believe what they're advocating is to prove people will pay -- doesn't matter how much. Using strategies like grandfathering people into a plan you can avoid making customers upset in the way netflix did.
I like the KISS aspect of this, though for accountability purposes, I prefer each user to have their own account.

One correction for you: the sshd_config lines should have no "=" symbol.
imo, the only way to make this work is going to be to force it, and boy are you going to make a lot of people very unhappy if that happens.
The first five minutes on any of my servers involve giving it a name, installing puppet and adding the server name to my central puppet config.

You seriously do this by hand for every server? That seems error prone and a huge waste of time when tools like puppet and chef exist.
I dunno about this guy but apt-get update/apt-get upgrade takes upwards of 15 minutes on new installs (as does yum upgrade on rhel-compatible systems). Kinda eats up into my first 5 minutes on a server.
The chicken pox vaccine is what comes to mind as a recent one.
It depends on supply and demand, ultimately there is only so much demand for video games, social networks or whatever types of things people might want to work on even if they weren't being paid.

Then the rest of the demand is for jobs that people basically only do for money (think TPS report generators or whatever). So ultimately some people end up being allocated to jobs that they would not choose for themselves unless they were being paid.

So you only get a "choice" in so much as there is unsatisfied demand for the thing that you really want to do.
While I agree these practices seem pretty safe/standard, it's still enough manual work that many people will just skip half of it out of laziness for small projects.

Does anyone have good reusable Puppet (or bash scripts) published that they use on all new servers?
I think the author meant for this to be a simple set of security guidelines for beginners. But yeah, any reasonably large prod stack should probably be deployed and setup with puppet and what not. It's DRY and less error prone than a human low on sleep.
Imagine you are an artist, and you are hired to paint very boring "hotel art" your whole life. Yes, your job would suck and you might as well not learn to paint.

The vast, vast majority of programming jobs suck (if yours does not, you are lucky). Every single one of my jobs has been pretty boring, and many of them were relatively exciting compared to your average programming job.

But I love to program. Just not for other people. I spend all of my spare time programming. To me, programming is a video game with millions of unsolved challenges, each with millions of creative solutions. The more time I invest in programming, the more empowered I feel, as if I have a second augmented brain waiting to be instructed.

I agree with the majority of the author's messages. That said, programming may or may not be for everyone, but there is definitely no harm in just trying it out.
tl;dr The OP is not alone in finding a real problem highly motivational to learn the solution; there is a missing component to computer science education that doesn't address 99% of what application programers do; apprenticeship programs would particularly benefit from certain practical additions to the curriculum.

His learning "disability" is all but universal: teaching style doesn't give students a real problem to solve. That's how science is supposed to be taught. Ask your students: can you build an engine out of a pot of water, a tight-fitting rubber cap that expands, and a small weight that can be attached and detached from a crank at any point in it's motion?

This is how you introduce temperature, heat, pressure, volume, work, etc. And I can't help but think that an apprenticeship basically achieves the same thing: it motivates the learner with real problems that motivate them to find a solution.

This is great in theory, but in practice CS doesn't really answer the problems you have as an application programmer. Much of CS "book learning" is focused on things like compilers, systems programming, or data-structures and algorithms. I don't know about you guys, but I spend very little of my time designing languages, compilers, or systems programming. I don't even spend that much time choosing data-structures. No, I spend most of my time learning the interfaces that other people have built around these things - learning how to parameterize and operate within someone else's higher-level environment (which is also known as a platform).

So what should ordinarily be an exercise in data structures and algorithms becomes a piece of techno-social detective work: nothing less than the determination which library/tool/framework is appropriate for the project, and then to get busy learning that combination to be able to release real software. If there exists, anywhere in the world, a class on how to discover, evaluate, and integrate libraries into an existing project, I don't know of it. In the same way, I doubt there exists a class on comparative application architectures.
10 minute loop of new daft punk song = perfect background music for code
Maybe capital growth is decoupled from job growth, but why is it that Apple and Google and Walmart and Target and Whole Foods and Starbucks and GE and your local busy restaurant and market and machine shop are still hiring like bananas?

Demand causes job growth. No amount of automation is going to prevent an Apple Store from needing a genius or a Gap from needing shirt folders. We still need plumbers and nurses and CNC machinists and spot welders and longshoremen.

Why is Kia still hiring in West Point, Georgia? And, where are those robotic unbuttoned-shirt baseball-cap-cocked-to-the-side douchebag bots that greet my nephew at Abercrombie? Oh, right, they're still human.

A lot of industries and companies are still trying to climb out of the 5 year funk we're arguably still in. A lot more companies realized that they could simply work their remaining people into the ground, create an atmosphere of uncertainty and abject fealty, and pocket the difference rather than increase headcount.

My theory? We're in a whole new ballgame full of the following people:

* Those who are willing to get their hands dirty

* Temporary workers and those who like part-time work for the flexible hours and variety of gigs

* Those smart enough to get degrees and certification past their high school diploma or GED, and get those in-demand technical jobs in manufacturing, healthcare, technology, and services

* A bunch of people who are either unwilling or unable to accept any of the above and/or are still looking for Dilbertesque nothing jobs in cubicles in office parks overlooking other office parks in positions at whatever companies and having longer titles than responsibilities (e.g., Assistant to the Regional Inside Sales Manager, Northeast US [except NY]).
You are stretching the issue a bit far IMO. Also counting and arithmetic is kind of hard NOT to learn even if you do not specifically learn it from somebody or in school because it is too essential to living in society. Programming is hardly the case.

And the whole thing is not about my selfish reasons to satisfy my curiosity, it's about diversity in the thinking process of people in society. Programming changes how some people think and reason, and it may not be the best for everybody in the entire world to learn, regardless of profession. That is my entire point.
It is also really nice to be able to call one TAC and have them devote effort to fixing it. If you have a heterogenous network, they can pass the buck, or even if they are awesome and try to help you out, there is no way Cisco's TAC knows as much about Juniper stuff as they do about Cisco, it is harder for them to put together a duplicate config, etc.

Back around 2000 this was a big deal. Cisco slacked on gigabit routers, and Juniper didn't have a comprehensive product portfolio, so while SP networks could be all J (but maybe with some switches from Extreme, etc,), enterprise networks were a lot more likely to have juniper and Cisco mixed, if they needed juniper performance in the core. Juniper ended up broadening their portfolio and Cisco improved their high performance offerings a few years later.
The Hacker News discussion from a year ago about the original incident: http://news.ycombinator.com/item?id=3663197
>John McCarthy (AI, Lisp) once said something akin to: "I think everyone should learn programming. It's the language we'll use to talk to our servants."

I kind of see coding (or scripting) similar to how I see writing. Not all of us are good enough, motivated enough, or would even enjoy writing for a living. But because the written and spoken language drives much of the world today, it's important to have a strong grasp of language, be able see how it is being used for or against you and be able to use it to your advantage.

The ability to read and write code is similar. Being able to write even simple scripts or simple data filters can multiply your productivity or give you new perspective on how to frame problems and approaches to solutions.

Without a strong grip on the written and spoken language, we are at mercy of others who wield it better than us. Code is in many ways similar to this. I may never be a a master writer or a master programmer (or even a 'good' one for either), but knowing the basics can't hurt.

Of course, we should note that writing and coding will have "diminishing returns" for most everyone. We should exercise discretion in how far we should take our pursuit and have good judgment on what we expect to get from either discipline.
I agree that some programmers seem to get 'stuck' in a certain way of thinking, but I'm immediately reminded of Seymore Papert, in Mindstorms (1980), describing an ideal state beyond that:

"By deliberately learning to imitate mechanical thinking, the learner becomes able to articulate what mechanical thinking is and what it is not. The exercise can lead to greater confidence about the ability to choose a cognitive style that suits the problem. Analysis of "mechanical thinking" and how it is different from other kinds and practice with problem analysis can result in a new degree of intellectual sophistication. By providing a very concrete down-to-earth model of a particular style of thinking, work with the computer can make it easier to understand that there is such a thing as a "style of thinking". And giving children the opportunity to choose one style or another provides an opportunity to develop the skill necessary to choose between styles. Thus instead of inducing mechanical thinking, contact with computers could turn out to be the best conceivable antidote to it. And for me what is the most important in this is that through these experiences these children would be serving their apprenticeships as epistemologists, that is to say learning to think articulately about thinking."
This was a fun day of Github notifications being sent to me constantly because I made a comment pretty early
My First 5 Minutes On A Server; Or, Essential Security for Linux Servers
At AmigoCloud, we are building a platform that can also be used to disseminate/crowdsource geodata. We have delta exports and a dashboard to review edits. Users can use our Android/iOS apps or apis (geojson) to edit the geodata. The system can sync the deltas back as 50+ different formats including ArcGIS Server. Full disclosure: I am the founder of AmigoCloud http://www.amigocloud.com
Have a blog or some kind of "sneak peek"? I must admit I'm very much in love with the combo of ST2 with the free GoSublime plugin, Goding is a breeze with it...
Linus responds...
Nice writeup. Although I prefer to automatically configure using Chef, I didn't know of fail2ban and logwatch -- I will definitely look into those.

Also, since this post is for beginners, you should mention about restarting the sshd over the lish tty and not over the ssh ptty.
Utterly amazing and appreciated!
Thanks for your constructive feedback.

When I was searching for suggestions I didn't see any way for people to submit changes to the released data back to the organization releasing the data. Getting community feedback is what they cared about the most so I suggested GitHub.
Beginner or not, you should probably use visudo [1] instead of

vim /etc/sudoers

for the sanity checks that it provides, if nothing else. A botched edit of /etc/sudoers that locks you (along with every other user) out of administrative access is an unpleasant way to learn this.

[1] http://linux.die.net/man/8/visudo
Your website doesn't work:

Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.
Great post! Reconciliatory, yet pointed
I've never understood the point of fail2ban if you disable ssh password authentication. Yeah, it might eliminate some spam in the logs, but if you only allow key-based authentication that doesn't really matter.
What do you call Arista? Also there is a lot of interesting "virtual appliance" networking going on.

I agree the right choice today is almost certainly a C or J router and probably C or A switches, but e.g. hardware load balancers like F5 seem to be losing out to software in most deployments (increasingly).

I built a decent sized network with Zebra 15y ago, which was pretty obviously the wrong tech, but interesting.
Oh, ok. I guess writing automatic tests is one way to nudge developers into understanding the domain better. And getting a person on the team, even freelance, whose job it is to push for tests, might help.

Going off another tangent, getting not a generic tester, but a domain expert who's also a tester, might help.
I tested it with Go v1.0.3 vs Node v0.8.21 + Express v3.1.0

I used mgo with Go to connect to mongodb.

Then I filled it with 1,024 documents that was composed of 2 fields. One field with a few bytes of text and the other with a paragraph of text.

Then I created a few handlers to return:

1) 1x document as json

2) 7x documents as json

3) 15x documents as json

At 15x I decided this was likely going to generate a response large enough that there's no point going higher. It was about 25kb worth of json.

Then I used a lib called "routes":
https://github.com/drone/routes

It's not really close to what express does but it's better than nothing. Then I added in my own etag generator using the same method that express does (it gens it off the body length) for responses > 1kb.

Then I benchmarked each route 3 times with ab using:
-n 7500 -c {50, 250, 750, 1500}

I ignored the first and averaged the last 2 results.

I did this on a local VM locked down to 1 CPU with 512mb of ram with a c2d 2.13ghz CPU and a 7200 rpm sata HD.

Then I did the same with express using just bodyParser since neither setup had session support. Go didn't have a Redis store that was capable of working with the Gorilla session lib so I didn't use sessions on both setups.

I used the native mongodb driver for node.

Express was for the most part 10-15% faster where faster is more requests per second served. The latency was back and forth. I feel like the latency @ 99% was tighter with Go once the concurrency got really high but the amount was not enough to matter.

For example once I got to the higher concurrencies both were taking a ridiculous amount of time (over 7 seconds) on my old crappy desktop. Loading in 5.5 seconds instead of 7 seconds is not really "better" since it's abysmal on both.

Go is much better at responding with large amounts of data when the database call is eliminated. I can only assume its ability to deal with large strings is leaps and bounds superior to v8 which makes sense to me.

The thing is though, that's pretty much irrelevant. If I was going to serve static content I would be using S3 or nginx. If I'm serving dynamic content then I'm likely pulling this in from a database.
I'd imagine that most of what you'd automate on Earth is done manually and double-checked, just in case. Add that to a half-hour(?) latency and it makes sense that something you'd run a bash script to do here winds up taking a week on Mars.
There is a fancy indicator for when it is too late to start something and advance towards being proficient. It is called death (maybe not that fancy).
1. Fair point. I think I had in mind a future where these devices were in such common use that any bystander could be assumed to be wearing one. That might lead to greater targeting of all bystanders, but at some point I suspect criminals (or other privacy seekers) would just adapt and factor "avoid bystanders" into their plans in order to settle at about the same level of violence they do today (rather than routinely attacking every bystander they see). This may be over-optimistic.

2. I find it to be an intriguing idea, but one that does admittedly scare the bejesus out of me. Unfortunately, I consider it all too probable that near-ubiquitous camera surveillance is in our future whether we like it or not, and in that scenario I'd vastly prefer for individuals to have their own recordings as well rather than blindly trust that the governments and/or corporations running the other cameras will always act with my best interests at heart.
Video Compressor for iPhone iPad iPod
Look into apt-cacher-ng. I have a slow internet connection at home and it made updates go a lot faster for multiple machines. Newer versions (in wheezy, not squeeze) even work with yum.
I actually wondered about testing with extreme ranges in another comment, but this testing is done "offline" (Not on live routers and not in response to current circumstances).

However, at least how I read it, your comment was about testing rules in consistently in dev -> staging -> prod when you create one which I think is not viable in this situation since you are on a very tight deadline with immediate impact on your customers.
did you go to UTA?
Stop Misleading Email Unsubscriptions
Ask HN: Why aren't usernames encrypted?
It seems to me that password cracking strategies should actually happen the other way. I.e., the attacker should in most cases be trying to crack a username, not a password.

Assuming for a moment that an attacker simply wants to compromise as many accounts as possible -- without caring to compromise a particular account -- that it would be easier to:

-start with a list of common passwords, and

-try them in succession on a list of usernames

It seems that this should be a more attractive strategy than trying to take a username and then guess at a password, because most of the security around passwords is not applied to usernames.

If this is possible, then it seems to me that usernames should be encrypted as well. Why aren't they?
Puppet and Chef are yet another thing to learn and maintain, if the guy is a part-time admin with a lot of other responsibilities and a small number of servers it may not be worth it.
And here are all of Homakov's achievements this year: http://homakov.blogspot.pt/2013/03/contributions-2012.html

Pretty impressive!
Producing an indie film is like running a bootstrapped startup
A chapter from Henry Ford's playbook
The eternal dilemma. It will be interesting to see where the community goes on this. Peer pressure can go a long way!
No. Especially if you already have some programming skills. It means you're starting with a knowledge (or at least familiarity) of programming concepts.

Not sure where this ageism comes from (someone please explain). To me it seems like either you get it or you don't. As long as you get it, have a mind for problem solving, and have the willingness/ability to adapt to new tech and best practices, the age you start doesn't make a difference.
don't vim sudoers.
the days of the password are not over.
fail2ban is next to useless with key auth.
I don't think "pro-science" means what you think it means.
One of my neighbors makes a living painting. It is unlikely you've heard of her unless you're in this regional art market. It's a job. She works every morning. She makes money painting pieces which sell, and she has a good idea about what will and won't.

But she loves because she loves making art and she loves making art so much that she uses her non-working time to make art that she knows won't sell.

Her "hotel art" or rather big house art is both a means to an end and a creative outlet. The choice is not one or the other.
The support overhead of users not seeing 'who' they are may not be worth the extra security.
My only thought is even with password auth. turned off hostile persons can still connect to the ssh daemon and might discover and unknown vulnerability or some type of dos. If you know someone is trouble why let them in even if you are wearing armor?
Why Lambdas Suck
Here's something I wrote very quickly (bash script): https://github.com/vahek/vSetup
It does most of the stuff mentioned in the post, however doesn't setup automatic updates or Logwatch.