How to Vote Early in NC without an ID

vote early in north carolina without ID

UPDATE: 4/26/2016: I discovered after the fact, that my provisional ballot was not counted, and was illegally discarded without sufficient cause. 

I just voted early in NC without an ID. Here are all the things I was surprised by.

You can vote early.

If you can vote early, why would you vote on any other day? As far as I can tell, there is no downside to voting early, unless you want to wait in long lines. If you’re planning to vote, vote early. Why doesn’t every state do this? It’s a no-brainer. It’s cheaper, easier, faster, less-stressful, etc. The only reason I can think of to not allow early voting is to cut down on phantom cost, or to tip the scales unfairly toward one party or another. Since it’s harder for many people to vote on one particular day, early voting makes voting more representative.

You can vote without an ID, but it’s really difficult.

I was told by a whole bunch of people that you can not vote in NC without an ID. This is not true. If you want a human-readable summary of the rules because you’re planning to vote without an ID, I recommend

If you are unaffiliated with a party, you can vote in either primary.

In NC, if you register as unaffiliated, you can vote in any primary you like. As far as I can tell, from a voting perspective, the dominant strategy is always to register as unaffiliated, then you can vote for whomever you want whenever you want.

To vote without ID, you have to know that you can use a “provisional ballot”.

While at the voting center, I was told twice by two different people that I could not vote because I didn’t have an ID. When I asked whether I could submit a provisional ballot (just as good as a real ballot) they said yes and sent me somewhere special to fill out the provisional ballot paperwork. I can imagine most people being discouraged at one of the first two rejections and not continuing on. I was armed the knowledge that voting without an ID is allowed, so I was able to make it through. The attendants tried really hard to serve me nicely, but despite their best efforts, I felt like I was doing something wrong the entire time.

Provisional ballots *are* counted on voting day.

Provisional ballots are counted on voting day. In fact, they’re actually counted before voting day, but tallied up with the regular votes on voting day. You also get an ID you can use to call in to confirm that your vote was counted, so you get that extra confidence that nothing shady is going on.

Parking was easy, and lines were short.

I literally parked in front of the polling center. A confident spitter, could have reached my car from the door. I was inside the no campaigning radius, which was an additional plus, because I’m pretty sick of having people tell me who to vote for.

Voting should be done online

The one overwhelming slap-in-the-face part of voting that is broken is the fact that it can’t be done online. There was no part of this process that required my physical presence to be completed. Taking time to drive somewhere and wait in line was a colossal waste of time, cost, and effort. If the IRS can figure out how to collect taxes online, then the bureau of voting (or whatever it’s called) should be able to figure out how to accept votes online.

UPDATE: The rest of this piece was written on 4/26/2016 after i discovered that my vote wasn’t counted.

Result: My vote wasn’t counted

I just logged in to check the status of my provisional ballot and found that my vote was in fact not counted. There was no information provided other than the statement “ID NOT PROVIDED”. There was no recourse available to me, and there was no way to prevent this from happening. Provisional ballots can not even be audited until 10 days after the election, so there was no way that I could have known that my ballot would not be accepted until after it was too late. Because of the painstaking lengths I went to to make sure that my ballot was legal and that my ballot deserved to be counted, I am left with no other conclusion than there is a conspiracy to prevent ballots from being counted from people without identification. This is the thing that everyone is afraid is happening, and I can attest as one data point that it is in fact happening. People without ID’s are being disenfranchised. I am so angry, but there is no outlet for my anger.

If you don’t see your ballot go into the machine, then it probably doesn’t count.

I am left with only one piece of guidance here. This is what I now believe: If you don’t see you vote go into the machine, then, sadly, it probably will not be counted. The machine is used for tallying votes, and the rest of the votes are processed by volunteers who have no incentive to count your vote. Because you have no recourse and no representation, it’s silly to think that you will have a voice.

Finally, an RSA Key Backup Plan: Boxcryptor

I have finally figured out a way to create an easy to setup backup plan for RSA keys.

Here’s the short version: use the service Boxcryptor to create an encrypted directory on your dropbox account. Put your RSA keys in there, then create a symlink to an automatically searched .ssh directory in your terminal path. (If you’ve never done this before, it’ll take about an hour. Once you know what you’re doing, it takes about 5 minutes.)

Here’s a longer version:

So, why does this matter? In 2004, my laptop was stolen. (My own stupidity was involved because I left it unattended in the airport for a little longer than desired. The term stolen, therefore, is a little dramatic, but never the less, all my data was lost.) I had been traveling for 6-months in an internet-poor area, so I lost 6 FULL MONTHS OF DATA. Ouch. I actually cried.

Since then, I have been on a personal quest to keep my data in a constant state of fault-tolerance. My goal: be able to drop my laptop in a lake without losing anything.

Today, some of this is easy: (1) Get a dropbox account (or Box or Drive). (2) Create a virtual drive on your machine. (3) Keep everything in there that you possibly can.

That system takes care of 90% of your data-loss woes. But there is a problem: what about things that are too sensitive to store on Dropbox? Dropbox is only as secure as the fickle internet will allow, afterall.

Until today, I’ve been relying on manually copying that information onto a physical backup drive. (Translation: that’s what I tell myself when I know the actual answer is that I’ve basically been not backing that stuff up.)

Today, I discovered Boxcryptor. An amazing service. Here’s how it works: (1) Boxcryptor sets up a virtual drive on your local machine that is protected by AES-256 and RSA encryption algorithms, (2) you store anything sensitive in that drive (financials, login credentials, secret plots, etc.), (3) Boxcryptor encrypts the data, and stores the encrypted data on your dropbox cloud, where it is backed up and shared with your other machines.

Voila! You’re covered.

Boxcryptor was a ..little.. difficult to setup because I didn’t understand their mental model of how folders are encrypted. You have to access your files through the boxcryptor virtual drive that it creates, not via your usual dropbox directory. Knowing that, the process is pretty straightforward. This is actually a really helpful reminder for knowing when you’re operating encrypted, and when you aren’t.

The rest of this is just my personal way of making this setup easier to use. It’s optional, but makes the change transparent when working with RSA keys on the terminal (which I do all the time.)

Now, for authentication credentials, it takes a little bit more hacking to get this to work seamlessly. For example, when you log into something using the terminal, your boxcryptor encrypted drive is probably not in you path for ssh public keys. There are two fixes for this:

(1) Add your Boxcryptor virtual drive to your public key search path. (I don’t like this because I don’t like dirty search paths)

(2) Create a symbolic link from your Boxcryptor virtual drive to your usual public key storage location. (This is what I did)

Here’s how I did that. Disclaimer: If you can’t understand this code, you probably don’t want to be using this.


Go to the right place:


> cd ~


Make a backup incase you screw up 


> cp -r .ssh .sshbak


Move your keys into your new encrypted drive 


> mv .ssh /Volumes/Boxcryptor/Dropbox/Encrypted/ssh


Create a symbolic link so that you can still reference your keys from their old location 


> ln -s /Volumes/Boxcryptor/Dropbox/Encrypted/ssh/ ~/.ssh


 Now, you can access your keys like they were in their old home: 


> ssh -i ~/.ssh/superkey.pem

Pain is Memory

I am my memories. They define me. The make me who I am.

When I hunt back over my memories, they wash over me. They come quickly in jerks and jitters. My mind skips from one to the next.

Sometimes, I pause and linger over a single experience. Something punctuated by an intense physical moment.

The pain of a needle in my ear. The quick escalation of pain that plateaus. I find relief not because the pain has stopped, but because it is not getting worse and I am strong enough to bear it.

I feel powerful because my best friend sees that I am strong. So strong that I can tell him to stop holding back and push harder.

We laugh. It’s the absurdity of the situation that catches us in the light. What are we doing? It seemed like a reasonable idea at the time, but we realize now how little we thought things through.

It’s just a pierced ear. Practically everyone has one. But not everyone has a memory to go along with it.

A bottle of vodka on the table. Both to sterilize the skin and also to calm the nerves. Did I need it? I don’t think so. He ships off to the army the next day and it’s not like I was going to stop halfway through.

The army is death. That’s practically it’s entire purpose. Bullets are their tradecraft. Blood is their output. Am I foolish to be afraid?

The trickle of blood that rolls down my earlobe is a tiny little piece of reality. We both ignore it as it falls on the floor. An insignificant detail.

The blood will wash free. It always does. I am alive. I have my pain, my friend, my memory.

Edit: Some have asked, so let me clarify that the friend I'm referring to in the story is Travis Sorensen, who is alive and well. This took place circa 2002.

Finally, an entrepreneurship tax! Thank you Massachusetts.

In case you haven’t heard. Massachusetts has recently enacted the worst possible legislation I can think of for the local entrepreneurial community: a 6.25% tax on all intra-state revenue for software services. You heard that right, if you have an online business that traffics in data and has an office in Massachusetts, starting July 31st, 2013 you have to pay 6.25% on all revenue in the state. That comes right off the top line. Yikes! Your competitor in Silicon Valley can make the same product, sell to the same customer, and pay 0%.

The first time I read about this, I assumed that it was nonsense that wouldn’t affect me. Not true. At Testive we have already spent several hundred dollars talking to our attorney about this. It is real.

The impact on our business is enormous. It no longer makes sense for us to conduct business with any customers in Massacusetts because the 6.25% tax is too big of a cut on our profit margin. We can’t easily increase prices for one customer over another because we’re an online company and we don’t discriminate based on customer location. We probably will continue to take Massacusetts customers just to make things simple, but we may lose money on them, and we’ll likely stop advertising inside the state.

Is this the death blow for the Boston entrepreneurial ecosystem? Why would anyone in their right mind open a software services company in a state where their profit will be reduced by 6.25%, right off the bat? It doesn’t make any sense. I can’t in good conscience advise anyone to start new business here until this law is changed.

At a time when Boston is bleeding good entrepreneurs to Silicon Valley, the last thing we need is an entrepreneurship tax. The short-term revenue gained from this moronic tax will be crushed by the long-term affects of loss of commerce.

Hello! Online businesses can be built anywhere, you can’t tax them at the local level. That’s crazy.


Take action:

Look up your representative in the state legislature here and send them an email telling them how much of a disaster this is for the entrepreneurial eco system.


Read more:

Rosenthal: New tax threatens state software ecosystem

In Major Shift, Patrick Backs Tech Tax Repeal

Bloomberg: The MBA Show Must Go On

Ever dream of being the Jay Leno of the MBA crowd? Well, now’s your chance.
Miro Kazakoff and Tom Rose, creators and hosts of The MBA Show, a YouTube program that was part shtick and part news, have graduated and put down their microphones to launch a business. So they’re looking for a couple of funny MBA students to take over. “The only skill you need is to be an MBA student, which is to say that you don’t need any skills,” Kazakoff says.
The duo began looking for new hosts last summer. While a couple… read more

Testive in TechCrunch: TechStars Grad Testive Raises $500K From HubSpotCo-Founder, Others For Its Test-Prep Platform That Adapts As You Study

Testive, an alum of TechStars’ Boston accelerator, has developed a new line of test-preparation products in partnership with MIT that seek to make old-school testing and test prep obsolete. With 10,000 students already using its customized test prep experiences, the startup is today announcing that it has raised $500,000 in seed funding, led by a group of prominent Boston-based angel investors.

Read more…

Download the story…

How to debug python or Django in Heroku

I recently had a problem where I was able to run a python script on my local virtual environment, but not on a heroku server. Doh! How do I debug this?!

(We’re running django inside of virtualenv ala heroku’s recommendations, which are pretty standard.)

Now, this is a web-app with a heavy js front-end, so debugging to the browser is not easy/convenient enough to be a practical solution.  In my local environment, I usually fix this by using “print” statements all over my code, that I read in a terminal running the “python runserver” process.

Problem, you can’t observe this directly for code running on heroku.

Solution: write the print statements into your code and commit them w/ git. (Do this on a separate branch so you don’t pollute your master, or even development branch, with debug garbage).  Deploy that stuff to a heroku server (we use a separate staging server for testing purposes).  Run the script (all our stuff launches from a browser).  Then run the following to see the output:

$ heroku logs -t --app [your-heroku-app-name]

This definitely falls into the category of a dirty-hack, but hey, it gets the job done!