skysight-inc/HackerNews huggingface dataset:
> I've met almost no libertarians of the anarchist persuasive in D.C.

Anecdotal I know, but quite a few of my friends are former military of some type and their facebook feeds are jam pack full of libertarian group reposts.

> Everyone has the programs that they like and the ones they don't.

It's too bad that the rhetoric is "shrink government" not "I don't like this specific program". Because the former statement creates hypocrisy when a program they like is shrunk, but of course picking and choosing individual programs to shrink/cut requires actually knowing what's going on above and beyond catchy political slogans and reposting a repost from a Fox news article who's headline ended in a question mark.
I'm glad to know I'm not the only one whose favoured childhood reading was the "compact" OED in tinyprint. That and the '57 and '67 encyclopaedia britannicas - I spent a year (in the 80's) charting the progress of mankind's knowledge in that decade - effectively a manual diff.

Thinking about it, I now zyxt that this was probably strange.
Yeah noticed that as well. First thing I do is (on debian), update packages and the kernel, install ufw (allow only 22), fail2ban, postfix and logwatch. Then setup a non privileged user, sudo, turn of root ssh and password auth and move to key based auth.

Then I can sleep/configure the rest of the system.

Been meaning to package this all up in an ansible playbook but I can't be bothered :(

I'd be using FreeBSD if they offered it. Much like OpenBSD it's a lot more pleasant for sysadmins!
I agree with everything you've said except the line about formal correctness proofs. I'd in fact be willing to replace "unit tests" with correctness proofs at almost every point in your comment and stand behind it myself... given that I get to define "correctness proof" carefully.

In particular, I want to appeal for using "the most formal thing reasonable" whenever possible. If you're writing highly abstract code, you would likely be amazed at how simply you can write down and prove it's behavior. For less abstract code, some formal properties may still be available and provable, some available but difficult to prove and better verified using exhaustivity or probabilistic property checking [0], and finally some are simply unknown.

My point is that unit tests are one of the very weakest forms of verification. They should be traded for more powerful techniques at every availability.

Availability is, today, still an issue, but this is precisely why dependently typed language research is interesting. In Idris you can write your core code alongside a machine-checked proof of its correctness. You can verify your outside interface by nearly autogenerating an interface fuzzer and checking encode/decode roundtrips or system fixed points. Finally, you can compile the whole thing down to Javascript and deploy it atop Meteor if that's your endgame.

Idris is just one interesting point on this spectrum. I think availability of formal correctness proving (in capability, expression, organization, and automatic execution) will be a major force in the future of CS.

[0] http://en.wikipedia.org/wiki/QuickCheck
I can just hear Hermione Granger saying "Its 'legoMEnon'"
I read many tutorials and several books on TDD but never quite got it until I read Kent Beck's Test Driven Development By Example[1]. I also highly recommend his Screencast series on pragprog.com[2] which gives you a good flavour of the workflow he uses with TDD.

Edit: For those that don't know Kent Beck is basically the godfather of TDD.

[1] http://www.amazon.com/Test-Driven-Development-By-Example/dp/...

[2] http://pragprog.com/screencasts/v-kbtdd/test-driven-developm...
Would you intentionally introduce language features that break functionality for people who don't follow style guidelines? I certainly hope not.

The real problem with your argument is that the poorly-styled code of people who haven't learned better yet is in production. This isn't a theoretical exercise. This is a tool used in industry, and "teaching people to style their code better" is not a valid excuse for costing industrial users of the language money.

Further, Python markets itself as a beginner-friendly language. Your attitude is the exact opposite of beginner-friendly.
Looks like the disfigured website and possible content filtering physically blocked or skewed the site before. I see that now, thanks for the correction.

FYI: Counted 37 <iframes>
Stupid site is totally broken with NoScript even though all that matters in it is plain text.

Anyway, there's something to do this sentiment, but people often are actually more productive when collaborating than when reinventing the wheel over and over. And splitting up attention between a bunch of projects isn't healthy in and of itself. It's just that it's also true that competition has many benefits. But it's complicated.
The nitrite thing is hooey. Celery is loaded with nitrites.
Using ALL CAPS on their IRC channel works quite well ;)
It's not journalism when everything hints at the wrong person being doxxed http://www.reddit.com/r/Bitcoin/comments/1zpmo8/the_face_beh...

He now likely has ground to sue Newsweek, sadly I'm afraid their pockets ain't too deep these days...
I'm actually in Toronto, Canada (closest I got to the valley was an invite to the YC interview round almost 6 years ago now ...), but I'll reach out via email because I would absolutely love to hear more.
"SI-7296 Case classes with > 22 parameters are now allowed." YES!
The second what?
Awesome, please do!

Don't forget https://github.com/kickstarter/rack-attack as well though.
They do two entirely different things in python. Occasionally you might actually want the functionality of the first statement, but if you write the first statement and expect it to do the same as the second statement, then that is a bug in your code.

You could argue that the python is badly designed in this case and that the two should be equivalent, but that's a different argument.
> Can you describe what "guiding design and describing the behavior of the subject" looks like from the unit test's perspective?

That's the first part of unit testing. You write a test that fails. By doing that, you are describing what the API should look like. The unit test guides the design of the interface, and how that object works. People do this, even if they aren't unit testing. You've done this if you've ever written some code calling a method, knowing that the method isn't there yet. But you stub it in, and then go write the method.
Enable your organization to operate with less information
That just sounds like a terrible functional spec. If it's a core part of the behavior that some mocked object is called 11 times then so be it, and so mock it. You're not introducing brittleness via your tests—you're introducing it because your functional spec is highly complex.
> We live in the age of Facebook

And how is this relevant, does this Satoshi has a facebook profile? Did the journalist send a fried request and article's Satoshi accepted? If none of this happened then I see no connections.

> We live in a place where dollar rules, and folks like Zuck > and Jobs, and other actors of questionable ethics excel.

Agreed. Mandela and Ghandi excelled too, in areas more important than business... Of course being rogue helps you excel in some areas, but it's not the only or main characteristic.

> No, Newsweek is not going to punish Leah, Newsweek has actually just recognized an employee who's able to expertly stir the pot, attract attention, and sell a lot more rags. She's getting a nice raise.

Given the fact that NW is a failed magazine, both financially and morally, I believe they probably give her a raise cut. But I don't think this is going to revamp their sales... Their articles, in all areas, are of very poor quality. If the magazine doesn't upgrade the content quality swiftly, it will face extinction soon enough.
Agreed, as a beginner I found the amount of configuration that is needed to set up an EC2 instance to be overwhelming. After seeing DO's interface and how easy it is to spin up an new droplet I was hooked.

Its been a really great and easy testbed where I can test out new things I am learning. Now I can get a VPS running linux serving up webpages with apache in about 20 min. Add in the great price and I have been hooked for over a year.
Pretty clever.

False cockpit aside, the A-10 is my favorite plane of all time. It has a sound that's really unmistakable.

(well, technically I guess it's the GAU-8 making the sound...)
The Techno-Oppression of Ukraine Is Exactly Why Snowden Blew the Whistle
I use linode and was drawing comparisons between two:
1. 8 cores on linode is what binds me to it. Linode rules here
2. Digital ocean is cheaper than linode
3. More Network transfer in linode (minimum 2TB)
4. Digital ocean offers more RAM
5. Private network - Does not exist on Linode. Shame. DO Rules..

What else...
Pragmatic unit test coverage is the way to go. Most of the summary advice isn't too bad but this statement is beyond absurd:

> • Throw away tests that haven’t failed in a year.

Apparently the author has never worked on a large software project with many versions supported over 5+ years. The value of unit tests increases over time as the software and libraries it depends upon change.
Alternatively, if you're partial to pg's theory that Bitcoin was produced by a government, you might find enough support in the article to keep that idea alive, seeing Nakamoto as an agent of influence for people still inside the US government. Some things that seem to suggest otherwise could be explained away (so he wrote the implementation all himself? All the better to hide external influences on the high-level design. He disappears at the mention of a CIA connection? Just what you'd expect of someone trying to obscure his connection with the US "intelligence community"). That said, I don't really feel it's likely. (Partly because my hunch is that if US agencies really did want to run such an agent of influence they'd be more likely to choose someone who was a bit more subtly "mobbed up" (spooked up?) than Nakamoto.) I haven't studied the Bitcoin timeline or this latest article really closely, though.
Story time: I knew a guy who was in to network security and was smart and experienced enough that the only employers who could fully take advantage of his talents were government departments or banks. He worked in different roles for both for a while, but it ate him up the whole time.

The cognitive dissonance became too much, he took some time off and last I heard he was working for a small start-up, probably taking a huge pay cut in the process.

I guess the other path is to develop an internal logic that somehow justifies you working for what you despise so that you can get through the day. "I'm surrounded by idiots, sheeple and corporate whores! I'm not one of them! I'm smarter than that!"
You seem too anxious. I don't know about you, but once an idea occurs to me about what might be causing a problem, there's zero chance of forgetting it. You should have just enjoyed the party. After all, the ROI on the relaxation had just gone up significantly.
Batteries May Vie With U.S. Oil Boom as Energy Changer
Yes, and it is quite annoying when they don't.
They wrote a blog post recently about how they are moving to more established companies.
Nope, I'm not on that level yet. Just voicing my love that's all.
The A-10 is one on of the aircraft that is on the list for retirement from the US Air Force. http://en.wikipedia.org/wiki/Fairchild_Republic_A-10_Thunder...

The A-10 is a cold war designed attack jet to be used to take out Soviet tanks. Its really good at slow (relatively) , guided, precise air-to-ground strikes. I think it would make a good candidate for a new class of a drones fleet.
We run our infrastructure on both AWS and DigitalOcean.
1) DO consistently beats the price performance.
2) DO has simple pricing model --> No ondemand / reserved instances
3) AWS is more feature rich but DO continues to add new functionalities like private networking and new data centers
My dad has always said that the A-10 is an infantryman's best friend. an F-16 or F-18 will straff over the battle field and is gone. an A-10 will just hang around.

When I was younger we went to a nature preserve that is adjacent to the gunnery range at Moody Air Force base. We went up in an observation tower overlooking the preserve and watched A-10s do strafing practice. The sound of the GAU-8 main gun is something you have to hear to believe. If bad intentions have a sound it's that gun.
I've heard many good things about this book, definitely on the reading list!
But then don't bitch about it.
Nationalist and libertarian are not orthogonal in practice. Try talking to any self professed libertarian about free movement of labor.

On the theoretical side it goes back to the whole Trotskyism/Stalinism debate.
I guess everything is outrageous then so nothing is?
can you help us understand why you need more cores on a single box and cannot scale horizontally?
My guess was a variation: as a warning to ground personnel not to touch that area of the fuselage, as after any recent firing of the GAU-8 that area would be "HOT PLATE".
Not really. I'd be impressed with a robot that could do bipedal gate (for example) as well as humans do, but the problem is lack of computing power. A human doing mental arithmetic is not at all representative of what and how much the brain actually does during the act.
In the mainstream media, Bitcoin = Silk Road = Drugs. It's not too surprising a random cop would know about that.
Yes, exactly. And how to use it efficiently to maximize iBeacons per iOS/Android Application.
My dad always said that he'd take one A-10 covering him over an entire squadron of F-16s.
Not in python.

if var:
...

is better in some situations, but is objectively worse in many others. If you really do want anything that's "falsey" to fall into that conditional, then by all means, use it! Just be aware that `0`, `[]`, `None`, `0.0`, etc will all be treated the same.

However, it's harmful in one of its most common use cases: default values.

For example, let's say you're working with a function that takes an optional argument similar to:

def foo(x, values=None):
if values is None:
values = []

You shouldn't use a mutable default argument for several reasons, so instead you make the default "None" and set it to an empty sequence. The snippet above is the standard idiom.

Let's say a user mistakenly passes "values=0" instead of "values=[0]".

If you had done:

if not values:
values = []

Then the code will happily proceed with "values" being an empty list and _silently give incorrect output_ instead of raising an error a couple of lines later.

You can make the (very reasonable) argument that this is all the fault of dynamic typing, and if python was just a staticly typed language, the compiler would catch all of this, but that's beside the point.

Be aware of what you're testing if you choose "if var:" instead of "if var is not None:"
I would love to see DO or Linode do a S3 type service as well. I prefer the persistent virtualization of DO and Linode to EC2 but also want to use a nice quick persistent file store that isn't on my own slice.

I could just use S3 from Linode but that would result more paid bandwidth and increased latency.
I really have to wonder if there is actually any code out there that relies on it. Even given Python's great popularity, I would not be surprised if fixing this broke nothing at all.
That may have been the case at one point, but Spotify has used their own recommendation system for a while.

http://www.quora.com/Spotify/Pandora-radio-is-built-on-their...
I love the idea that bitcoin is the beta test for a global cryptocurrency to replace all money in the future and it is created by the government to test this form of currency. They will regulate all transactions/exchanges and will be able to trace the life of every coin.
I completely expected the OP to have had a typo in the headline and for it to actually be about "Spring", which is an amazing an essential gem (and part of 4.1beta)...but this is pretty cool too :).

I'm biased because the OP shows off a custom-parser for Google Spreadsheets, which is neat to me because Google Spreadsheets is my goto-interface for new prototyped apps...a much better, live-collaborative admin than anything I could easily build myself or with Rails tools.

But I wonder if this gem is more work than its worth? I mean, seeds don't seem like the best place to persist intricate production-ready data in the repo. And if you continue to use Google Spreadsheets, or whatever, as your main admin input interface, then it seems worth it to build a more elaborate abstraction to handle that usecase.

Also, I wonder if some of the self-referencing could be done via YAML's standard syntax? That would mean no JSON as a format, but YAML seems like it was built for this kind of lightweight relational data storage?
There is a long tradition of reporting the details of wealthy people. [1]

[1] http://www.forbes.com/billionaires/list/#tab:overall
Reminds me of eye mimicry in animal camouflage:

http://en.wikipedia.org/wiki/Eyespot_%28mimicry%29
Mhmm, does the competitive model really make the gathering and executing of ideas better?

If that was true we would have thousands of ISPs, Office suites, etc. With way better technology and what not.

But they are all looking for ways to lock out their competition instead of making a better product.
So I'm not sure the competition is what pushes us towards.
Some of my my comment here may be a difference in how we view unit tests vs functional or integration tests, and it may also have a lot to do with my use of ruby rather than a language that needs to be compiled. But I hate having less than 100% test coverage, I find it unsettling.

One thing I've often said to sell people on the concept of testing: you're already testing. Guaranteed. If you're writing a complicated method, you're almost certainly calling it on the command line and checking output, right? Well, those things that you're writing to check it? save them in a folder called unit tests. You've probably written some code to ensure that different bits of code work properly together? Save those in a folder called integration tests. You may be opening a browser to make sure that the app is behaving the way you expect. Save those tests in a folder called integration. All of this would make testing natural, rather than something you impose onto your project that feels contrived and vaguely forced.

I will admit that there is some overhead on all of this. Rather than just typing into a browser and checking the results, you'll need to figure out how to automate that process. Rails makes this quite easy in my opinion, and rails does blur the lines between a few of those categories I mentioned above. I wouldn't worry too much about that - if you're writing tests that cover these scenarios, I wouldn't bother getting too deep into the semantics of testing. You're good.

I run a code coverage tool because I like to see what I haven't tested. Often, it turns out I left some code to rot and forgot about it. My gut feeling is that code rot is probably the most confusing thing to a new developer, and one of the hardest things to deal with (can I remove this? should I?) Leaving around obsolete code is kind of a burn on anyone who comes after you.

I have mixed feelings about TDD. I will say that when things are going swimmingly for me, I am often doing TDD. But it requires a clarity that I sometimes just don't have. More often, I'm writing tests and code essentially in parallel with each other (like, write a line of code, write a test, write a line of code, write a test). I suppose I could reverse them.

One last thing - I think that tests, especially the integration tests, should give you a very good sense of what an application does. In short, if you wanted to give someone a demo of your system, a walk through every case in your integration tests would probably be a very good way to illustrate what it does.
The below assumes the worst case, some of these will be mutually exclusive (hit by different potential implementations).

Your post advocates a

(0) technical

approach to fighting spam. Your idea will not work. Here is why it
won't work. (One or more of the following may apply to your particular
idea, and it may have other flaws which used to vary from state to
state before a bad federal law was passed.)

(1) Mailing lists and other legitimate email uses would be affected
(2) No one will be able to find the guy or collect the money
(3) Users of email will not put up with it
(4) Microsoft will not put up with it
(5) Requires immediate total cooperation from everybody at once
(6) Many email users cannot afford to lose business or alienate
potential employers

Specifically, your plan fails to account for

(7) Public reluctance to accept weird new forms of money
(8) Willingness of users to install OS patches received by email
(9) Armies of worm riddled broadband-connected Windows boxes
(10) Extreme profitability of spam
(11) Outlook

and the following philosophical objections may also apply:

(12) Ideas similar to yours are easy to come up with, yet none have ever
been shown practical

(13) Whitelists suck
(14) Countermeasures should not involve wire fraud or credit card fraud
(15) Countermeasures must work if phased in gradually
(16) Sending email should be free

That said, a lot of these can clearly be designed around. I think 12 is the most significant point, though everything fails to work until it works. Everyone should feel free to dig into particular points below. It may well be intractable, but snarky posts from before bitcoin don't demonstrate that.
I used to be a diehard test fanatic, but then I grew up and realized that, just like SQL ins't suitable for every task every double-plus-good, neither is TDD. Some things I don't unit test:

That clicking a particular button fires a particular event. Syntax-wise, setting up the event handler was essentially an assignment, and testing the physical clicking of the button was the job of whomever wrote the operating system's GUI system.

Similarly, that setting a field actually persists the value. Assignments are easy to get right. They get wrong when I'm naming my variables poorly. Unless that field is actually a property that is really syntactic-sugar for a method call, in which case it is necessary, so test away.

That values adhere to certain type properties. If I have to write a test to check type information at runtime, then I'm not using the type system in my programming language (be it static or dynamic) correctly.

I do not use mocks to be able to test stateful subsystems. The whole mock system creates a maintenance nightmare and makes changing APIs extremely brittle. It's far better to have scripting in place to build a base, test system from scratch and walk the program through a set of steps, checking state transitions after each step. In other words, it all becomes on, big, stateless test.

The added benefit: such scripts tend to help figure out deployment issues before they happen.

I try to use stateless designs for everything. Method calls do not mutate in place, the create a new object and return the results. This is not only safer, it's infinitely easier to test, as you automatically have both halves of your state transition, rather than having to clone the initial state before calling the mutating function.
I think it's legitimate to talk about cognitive dissonance here because it explains the behavior patterns.

When I was a kid I hung around a farm; on the inside of the wooden fence was a wire that regularly got an electric pulse. After the first time it bit me, I spend a couple of weeks being very careful not to touch it again.

Hypocrisy can happen in a variety of ways. But there's a particular sort of doublethink and denial that comes from avoiding cognitive dissonance.
Interesting info on the recent "high-protein is as bad as smoking" study