The AR-15: It’s a Gadget

In cleaning up and updating this site this afternoon, I realized that I’ve never linked my big piece for Wired on the AR-15. I had a ton of fun writing that, and since then I’ve gotten into the AR platform myself.

In the wake of the massacre at Sandy Hook Elementary School in Newtown, Connecticut, the AR-15 has gone from the most popular rifle in America to the most scrutinized and, in some quarters, vilified. Also known in its fully automatic, military incarnation as the M16, the rifle was racking up record sales in the years before Sandy Hook, but now, in the midst of a renewed effort to ban this weapon and others like it from civilian hands, the AR-15 market has gone nuclear, with some gun outlets rumored to have done three years’ worth of sales in the three weeks after Newtown.

Now that the post-Newtown nation has suddenly woken up to the breakout popularity of the AR-15, a host of questions are being asked, especially about who is buying these rifles, and why. Why would normal, law-abiding Americans want to own a deadly weapon that was clearly designed for military use? Why are existing AR-15 owners buying as many of these rifles as they can get their hands on? Are these people Doomsday preppers? Militia types, arming for a second American Civil War? Or are they young military fantasists whose minds have been warped by way too much Call of Duty?

Preppers, militia types, and SEAL Team 6 wannabes are certainly represented in the AR-15′s customer base. But fringe groups don’t adequately explain the roughly 5 million “black rifles” (as fans of the gun tend to call it) that are now in the hands of the public. No, the real secret to the AR-15′s incredible success is that this rifle is the “personal computer” of the gun world.

You can keep up with more of my AR-related work on

The BLM as the new BATF

I don’t think it’s a coincidence that recent clashes between militia groups and the feds all involve the BLM, and not the ATF. I think a lot of people are probably scratching their heads and thinking, “back in the 90’s and earlier, it was all about anti-ATF outrage, so why the miltia hatred for the BLM?” But the only reason there’s confusion is because the vast majority of the country is so well insulated from the serious water issues facing us. Of course, we’re all starting to read the headlines now about Vegas and CA and TX, but it’s still abstract — even here in Austin, all it really means for me is that I can’t water my lawn very often. But rural people in drought-afflicted areas are, right now, living through a catastrophe that is as dramatic as Katrina. They’re losing everything — whole communities and farms that have been in families for generations are being wiped out.

One year ago this month, when I drove from San Francisco to Austin by way of LA (or a little north of that, actually), I recall seeing the homemade road signs everywhere in California’s central valley and being shocked. I wasn’t really aware of the water crisis, but driving through these areas it was clear there was this entire swath of the state that was absolutely enraged about water, and their only way of venting was making these homemade signs about the drought — how it was a political creation and the government’s fault and so on.

So yeah, my theory is that this anti-BLM stuff is the new anti-ATF stuff. And as the drought drags on and continues wiping out entire rural communities, look for it to get a lot worse. Sure, Obama’s ascension has no doubt helped militia recruiting, but I’d bet that the drought, which again none of us really see and the real human impact of because it’s just not a story that the media is interested in telling every single night on the news, is a larger factor.

Monkey patching poltergeist for web scraping with jruby

For some time now I’ve been crawling the web and doing scraping at scale for a stealth project of mine, but I’ve not really been using a headless browser solution because it’s overkill for about 70% of the sites I scrape. However, I do need to scrape the other 30%, so I recently added the capability to scrape AJAX pages using phantomjs and poltergeist.

The big problem I’ve run into is that poltergeist leaks file descriptors, and if you just let it go, you’ll get a “Too many open files” error after a few hours. I won’t get into the details (mainly because I don’t recall them… I fixed this problem a few weeks ago), but this is a jruby-specific problem.

At any rate, I monkey patched poltergeist so that it doesn’t try redirect phantomjs’s console output to either STDOUT or a user-provided IO object. That STDOUT redirection was the root of a lot of pain on jruby, and since I don’t need the console output I just ripped out the offending code.

I’ve posted a gist with the very simple monkey patch, which you can include in /config/initializers/poltergeist.rb. This has been working in production without a problem for a few weeks under jruby 1.7.11 + rails 4.02. I crawl about 230 sites simultaneously right now with this setup, though only about 30 of them are using phantomjs.

On a related note, a general word of caution to anyone who wants to do what I’m doing, i.e. web crawling at scale with jruby + sidekiq + rails on ec2: you absolutely must call driver.quit on your Capybara::Session object every time you’re completely finished with it, or else you will end up with zombie processes and you’ll run out of memory.

What I do is initialize a new session object at the start of every scraper worker, and then when that worker is done as part of its shutdown I make sure to close all http connections (including quitting the session object) as part of the cleanup. Put this cleanup code in an ensure block in your sidekiq worker’s perform method, to make sure that it will get called even when the worker crashes.

Fallkniven’s Northern Lights Idun

I used to write about microprocessors, but now I write about knives (and sometimes guns). I actually like knives better than CPUs. Here’s a recent one of mine on a really nice Fallkniven offering. Look for a writeup soon on a much larger knife from the same line.

I recently got a big shipment of Fallkniven knives in for testing, but before I get into the cutting and chopping, I’d like to post some pictures and first impressions of the blades. In this post, I’ll be taking a look at Fallkniven’s Idun (NL5) model and comparing it to the venerable and widely loved Fallkniven F1.

Why compare the NL5 to the F1? A lot of people either have the F1, know someone who has the F1, or are considering the F1. It’s an extremely popular, premium bushcraft and survival blade, up there with the Bark River Bravo 1, Spyderco Bushcrafter, and ESEE-5 in terms of popularity in the $130 to $200 price range. I’ll be comparing my two F1s with the NL5, which is in their same size and weight category.

While the F1 is itself a bit of a premium production fixed blade, at $130 street price in its standard configuration, the Northern Lights series is Fallkniven’s attempt to elevate the fit and finish of their line to near-custom levels. Most of the knives in the NL series have a counterpart in Fallkniven’s regular blade lineup that function as a bit of an upgrade, if that’s what you’re looking for.

The Idun reviewed here lists for $460 and change, but you can find it around $300 if you look hard enough online. This price puts it into custom territory, so let’s see if the fit and finish warrant the premium.

Next up is the Falkniven Thor, which is so large it’s basically a short sword. Stay tuned.

I’ve been doing some coding on AWS for a side project, and I ended up developing something that’s more generally useful so I’ve released it as open-source. Behold, SuperQueue!

SuperQueue is a thread-safe, SQS- and S3-backed queue structure for ruby that works just like a normal queue, except it’s essentially infinite because it uses SQS (and S3 optionally) on the back end.

To install, just “gem install super_queue”.

To create a new SuperQueue, pass it an options hash. Some options are required, and some are optional. When you’re done with it, you should ideally call “shutdown” on it to shut it down gracefully and preserve any data. Or, if you want to delete the SQS queue and any lingering data, call “destroy.”

I’m using this code in production, and it actually works. I’m actually about to increase my reliance on it by putting it in an even more sensitive role in my app, so we’ll see what happens.

It could happen to you

This post has been updated. See below.

Digby’s blog has published my insane tale of tax-related woe. Read it and weep (for me, and maybe for yourself if you’ve ever lived in a state that charges income tax.)

My pregnant wife just called me a few hours ago from SFO as she was boarding an airplane to Austin, TX. “I got an email from Chase saying that our checking account is overdrawn, and all our assets are frozen. None of our cards work. They gave me some number to call.”

Of course, I flipped out. But I also knew immediately what had happened. I’m currently disputing a laughably bogus 2007 income tax bill with the MA Department of Revenue, a state in which I have not lived or earned income in since 2003. I live in CA, and the Chase account in question was opened in Chicago. But I had a sinking feeling that, in the world of the multinational megabank, niceties like state borders don’t matter anymore. My guess was that MA had called Chase (they have not sued me or sent me any sort of court order) and Chase just handed over all our assets there to MA.

A call to the number provided, a visit to my local branch, and ultimately an on-the-record discussion with someone from Chase’s executive office confirmed that I was mostly right. The MA Department of Revenue had filed a levy against me in MA, and when the state notified Chase of the levy, Chase dutifully froze everything but (lucky me!) has not yet transfered any money out. The perky Chase lady on the phone told me that on March 4, unless MA has lifted the levy, Chase will clean out my accounts and hand everything over to MA. Again, I have not lived in MA or earned income in that state since 2003, and I worked with a CPA to pay all of my state and federal 2007 taxes in full and on time. I did everything 100% by the book, and yet here I am in 2013, with a negative bank balance and frozen assets.

Welcome to America, 2013, where bankrupt states aggressively pursue long-gone former residents with insane tax bills and levies, and where the banks, as a matter of official policy, will hand over every last dime in your account without even knowing or caring whether the request is valid and enforceable.

Here’s a bit more background, so you can understand how crazy this all is.

I moved from Massachusetts to Illinois in 2003, and I opened my Chase account there in 2005. I also hired a CPA and dutifully paid all of my state and local tax, in full, every year including 2007. I moved further west to California in 2008, so imagine my shock when in January of last year, I got a letter from the MA Department of Revenue claiming that I owed them a jaw-dropping sum for 2007. Again, I hadn’t lived there or worked there since 2003, but I did own part of a business that was headquartered in MA, and the state was using this fact to harass me for income tax money. How much money? At least 10X what I’d actually owe them if I really did owe them income tax for 2007; or, to put it another way, roughly 10X what I paid Illinois in 2007 on the advice of my Illinois CPA.

I didn’t just let this nasty MA tax claim ride, thinking it would go away. I put my California CPA to work on it, I hired a tax attorney in MA, and I even hired a CPA malpractice attorney to go after my Illinois CPA on the slim chance that Massachusetts is actually right and I do owe them something. I filed appeals, submitted papers, and generally stayed on top of it. So I wasn’t overly alarmed when a few weeks ago, the MA Dept. of Revenue sent me a notice that they were filing a tax lien against me with the MA Secretary of State’s office. But I didn’t freak out, because hey, this is part of an ongoing dispute where they’re clearly way out of line, and I have some very good people working with me on this… and besides, I don’t own any property in MA, so what are they going to do?

And then, without even sending me a copy of any kind of court order or document, they’ve suddenly frozen and are on the verge of confiscating all of the funds in my out-of-state bank account.

After talking to Chase, my next call was to the MA tax attorney that I’d hired to fight with MA over their insane tax bill.

“I’ve dealt with this once before, with Bank of America. And the guy was in California, just like you. Chase Manhattan is not supposed to freeze an out-of-state account like this, and MA knows it. But MA does this because they know they can get away with it.”

I then headed down to my local Chase branch, and where I talked to their legal department and got them to confirm that this is their policy. I also played the journalist card and got them to put me in touch with someone from their executive office who could speak on the record.

“The management stands behind the decision to freeze your account,” she said. She argued that because Chase has a minor presence in MA (a few non-branch offices), they’re subject to MA jurisdiction and have to comply with the order to freeze my account, regardless of where the account was opened or is currently located. She also said that I had agreed to all of this madness when signing up for the account, as part of Chase’s terms of service.

Apparently, my contract with Chase stipulates that Chase will turn over any of my assets to anyone who comes knocking with any kind of official-looking levy or lien, and Chase “does not have to determine whether the legal process [behind the request] is valid or enforceable.” They just hand over all your money, and if the request was bogus then that’s not their problem, it’s yours.

There is nothing I can do at this point but file an appeal with MA, and hope the freeze gets lifted before Chase turns over our frozen assets on March 4th.

And I’m one of the lucky ones. We use a foreign bank for the vast majority of our assets, and keep only a small amount in Chase for bills and such. Even if Chase hands over all of the money in our accounts to MA, the worst thing that wil happen is that my wife will be stuck in Austin for three days with only an American Express card (which hopefully still works) and/or that I’ll have to send her some of the cash we keep on-hand for emergencies via Western Union. Oh, and I’ll have to pay a ton of legal fees to recover the money, which would probably end up costing me more than MA took. So I may just have to let MA rob my bank account, with the bank’s help, of course.

Signs of the times, I guess. I’ve already talked to one other person who’s had this same problem.

Update: This got linked at Hacker News, so I posted an update in the comments. Here it is:

This is resolved, so here are the bullet points of what happened and what I learned:

– All of our assets were not frozen. 99% of our assets are with Barclays, and we just use Chase so that we can have a local checking account. (Barclays doesn’t do that in the US.) So everything tied to Chase and our credit cards were frozen because of the tax lien. Of course, if MA had found the Barclays stuff, they’d have frozen everything, so that was just luck that they didn’t.

– The source of the problem was my former CPA. He just screwed up. He’s a nice guy who does a solid business in the decent-sized midwestern city where he’s located, but for whatever reason of inattenion and/or lack of good enough training/information, he had me file in the wrong state. He also doesn’t have any insurance (not required where he practices), so if MA hadn’t been cool about waiving penalties and interest it may not have been possible for me to recover that from him by the time I paid legal fees, etc.

– I got a great MA tax lawyer (Philip S. Olsen, now of Pierce Atwood), and he worked with the Mass. tax authorities to help them understand that I wasn’t some seedy tax dodger and that this was the fault of my CPA.

Now, here’s what I learned:

– Ask your CPA if he or she has insurance, and for how much. Don’t be shy, because this kind of thing could happen to you. And don’t think that just because various professionals and bigwigs in town use them, that they’re either not going to make a mistake or that they have insurance.

– There is no bank or credit union, no matter how foreign or local, that would not have frozen my assets in response to the merest hint of a request from MA. Every financial institution in the world is going to roll over for a state government like that, and leave you to sort out of if the request was legit or not. There’s no place to hide. So Chase isn’t actually the bad guy here.

– MA isn’t really the bad guy either. The states are strapped for cash, and they’re turning over every stone for revenue. What caught my CPA was a wrinkle in the tax law about where to file that for decades many CPAs ignored because the states didn’t have the ability to find and go after such things. (MA was claiming that I owed “Massachusetts-sourced income” because Ars Technica LLC was technically headquartered in Malden.) But in today’s world of desperate state governments and networked databases, no CPA can afford to be lazy about anything. To their credit, MA let me re-file and did not penalize. I had to pay state taxes twice for that year, though, because IL’s books were closed for 2007 and they refused to even consider giving me back the money I erroneously paid them.

– This stuff drags out. While our assets were unfrozen pretty quickly, it was the first week of this month that I finally got a letter from MA telling me that the tax lien was officially lifted and that I’m in the clear.

– There is no statute of limitations on taxes. If they find something from literally 20 years ago, they can load it up with penalties and interest and absolutely crush you. So see the point above about making sure your CPA has a platinum-plated insurance policy.

Nazism’s war on the reality-based community

More from Milton Mayer’s They Thought They Were Free: the Germans 1933-45:

Because the mass movement of Nazism was nonintellectual in the beginning, when it was only practice, it had to be anti-intellectual before it could be theoretical… Expertness in thinking, exemplified by the professor, by the high-school teacher, and even by the grammar-school teacher in the village, had to deny the Nazi views of history, economics, literature, art philosophy, politics, biology, and education itself.

Thus Nazism, because it proceeded from practice to theory, had to deny expertness in thinking and then (this second process was never completed), in order to full that vacuum, had to establish expert thinking of its own–that is, to find men of inferior or irresponsible caliber whose views conformed dishonestly or, worse yet, honestly, to the Party line… The nonpolitical schoolmaster was, by the very virtue of being nonpolitical, a dangerous man from the first. He himself would not rebel, nor would he, if he could help it, teach rebellion; but he could not help being dangerous–not if he went on teaching what was true. In order to be a theory and not just a practice, National Socialism required the destruction of academic independence.

In the years of its rise the movement little by little brought the community’s attitude toward the teacher around from respect and any to resentment, from trust and fear to suspicion. The development seems to have been inherent; it needed no planning and had none. As the Nazi emphasis on nonintellectual virtues (patriotism, loyalty, duty, purity, labor, simplicity, “blood,” “folk-ishness”) seeped through Germany, elevating the self-esteem of the “little man,” the academic profession was pushed from the center to the very periphery of society. Germany was preparing to cut its own head off. By 1933 at least five of my ten friends (and I think six or seven) looked upon “intellectuals” as unreliable and, among these unreliables, upon academics as the most insidiously situated.

Throw the bums out, 1930’s edition

More from Milton Mayer’s They Thought They Were Free: the Germans 1933-45, which I can’t put down:

National Socialism was a revulsion by my friends against parliamentary politics, parliamentary debate, parliamentary government–against all the higgling and haggling of the parties and the splinter parties, their coalitions, their confusions, and their conniving. It was the final fruit of the common man’s repudiation of “the rascals.” Its motif was, “Throw them all out.” My friends, in the 1920’s, were like spectators at a wrestling match who suspect that beneath all the grunts and groans, the struggle and the sweat, the match is “fixed,” that the performers are only pretending to put up a fight. The scandals that rocked the country, where one party or cabal “exposed” another, dismayed and then disgusted my friends…

While the ship of the German State was being shivered, the officers, who alone had life preservers, disputed their prerogatives on the bridge…

My friends wanted Germany purified. They wanted it purified of the politicians, of all the politicians. They wanted a representative leader in place of unrepresentative representatives. And Hitler, the pure man, the anti politician, was the man, untainted by “politics,” which was only a cloak for corruption… Against the “the whole pack,” “the whole kaboodle,” “the whole business,” against all parliamentary politicians and all the parliamentary parties, my friends evoked Hitlerism, and Hitlerism overthrew them all.

“There was no open trial for enemies of the State. It was said it wasn’t necessary; they had forfeited their right to it.”

More from Milton Mayer’s They Thought They Were Free: the Germans 1933-45:

“Very early,” he went on, “still in spring, one of our SA leaders protested against the dismissal of the Oberburgermeister, a Social Democrat, a good, really nonpolitical man. The SA leader was arrested and taken away. And this, mind you, was when the SA still had great power in the regime. He never came back. His family is still here. We heard he was convicted, but we never heard fro what. There was no open trial for enemies of the State. It was said it wasn’t necessary; they had forfeited their right to it.” [emphasis added]

See Romney’s explanation of why he would have signed the National Defense Authorization Act, which enables the US military to abduct US citizens on US soil and imprison them indefinitely without trial; and if they get a trial, it will be in a closed military tribunal, and not in open court.

The logic here, as it is in every totalitarian regime, is that the moment you become an “enemy of the state” you lose your right to demand that the state actually prove that you’re its enemy in open court. We’re just to take the State’s word for it—just trust your government, is the answer. Or, actually, let’s roll the tape and quote Romney from the video above:

Romney: “I recognize that when you’re in a setting where there are enemy combatants, and some of them on our own soil, that could possibly be abused. There are a lot of things that I think this president does wrong—lots of them—but I don’t think he’s gonna abuse this power, and I know that if I were president I would not abuse this power. And I can also tell you that in my view, you have to chose people who you believe have sufficient character not to abuse the power of the presidency and to make sure that we do not violate our constitutional principles.”

How ordinary people come to support a Monster-in-Chief

Shortly after WWII, journalist Milton Mayer went to Germany and lived in Kronenberg for a year, in order to understand the lives and mindsets of ordinary Germans under Nazism. He wanted to know how it was that ordinary people could come to participate in such atrocities, so he befriended ten Germans who had the following occupations as Nazis under Hitler: a tailor, an unemployed tailor’s apprentice, a cabinetmaker, an unemployed salesman, a high school student, a baker, a bill-collector, an unemployed bank clerk, a teacher, and a policeman.

The resulting book, They Thought They Were Free: the Germans 1933-45, is a remarkable chronicle of an advanced civilization’s slide into tyranny. The following excerpt, from Chapter 3, is probably the best ~500 words I’ve ever read on this frighteningly relevant topic:

None of these ordinary Germans… thought then or thinks now that the rights of man, in his own case, were violated or even more than mildly inhibited for reasons of what they then accepted (and still accept) as the national emergency proclaimed four weeks after Hitler took office as Chancellor…

None of my friends, even today, ascribes moral evil to Hitler although most of them think (after the fact) that he made fatal strategic mistakes that they themselves might have made at the time. His worst mistake was his selection of advisors—a backhanded tribute to the Leader’s virtues of trustfulness and loyalty, to his very innocence of the knowledge of evil, fully familiar to those who have heard partisans of F.D.R. or Ike explain how things went wrong.

Having fixed our faith in a father figure—or in a father, or in a mother or a wife—we must keep it fixed until inexcusable fault (and what fault of a father, a mother, a wife is inexcusable?) crushes it at once and completely. This figure represents our own best selves; it is what we ourselves want to be and, through identification, are. To abandon it for anything less than crushing evidence of inexcusable fault is self-incrimination, and of one’s best, unrealized self. Thus Hitler was betrayed by his subordinates, and the [ordinary, rank-and-file] Nazis with him. They may hate Bormann and Goebbels—Bormann because he rose to power at the end, and they are ashamed of the end; Goebbels because he was a runt with a “Jewish mind,” that is, a facile and cunning mind unlike theirs. They may hate Himmler, the Bluthund, above all, because he killed in cold blood, and they wouldn’t do that. But they may not hate Hitler or themselves.

“You see,” said Tailor Schwenke, the littlest of my ten little men, “there was always a secret war against Hitler in the regime. They fought him with unfair means. Himmler I detested. Goebbels, too. If Hitler had been told the truth, things would have been different.” For “Hitler” read “I.”

“The killing of the Jews?” said the “democratic” bill-collector, Simon. “Yes, that was wrong, unless they committed treason in wartime. And of course they did. If I had been a Jew, I would have myself. Still, it was wrong, but some say it happened and some say it didn’t. You can show me pictures of skulls or shoes, but that doesn’t prove it. But I’ll tell you this—it was Himmler. Hitler had nothing to do with it.”

“Do you think he knew about it?”

“I don’t know. We’ll never know now.”

Hitler died to save my friend’s best self.