Author Archives: Devin

About Devin

I'm a software developer for a large company and have a lifelong passion for technology. I learned to type on an Atari 400 on my father's lap and started programming basic when I was 11. I haven't stopped programming since. I have a strong background in ASP.Net and C# development and any of the related web technologies that it requires. [CSS/JavaScript/SQL] Lately I have been focusing on producing highly maintainable code. I dabble in iOS development but still consider myself very much a novice on the platform.

Electronic Voting Machine Roadmap

1844 Presidential Ballot

Paper ballots have a number of benefits over electronic voting. Being easy to count isn’t one of them.

The state of electronic voting machines is rather scary to me.  According to Wikipedia only 27 states require a voter-verified paper audit trail.  That seems rather foolish given the importance of the electoral process.  If individuals are willing to spend millions of dollars, collectively billions of dollars, to try to get people elected it seems reasonable that there may be some individuals willing to defraud the vote to achieve their goal. [To be clear, I am in no way accusing anyone of doing so.]

I’ve believed for some time now that voting could be done conveniently and securely electronically. So I’ve put together my vision of an electronic voting system.

User Interface

From a UI perspective I’ve used two types of electronic voting machines.  The first one was hideous.  It was literally a large board that had every race and candidate on it visible at a single time.  Each candidate had a button and when you pushed the button next to their name a red LED lit up.   It was easy enough to use, but it was really intimidating to look at.  I have no idea how write-in candidates were handled although I do recall there being a button for them.  I’m unable to find a picture of them so I’m hoping they are no longer in use.

The second voting machine I thought was pleasant enough, although I thought the UI buttons should have been bigger to avoid screen calibration issues.  I think each ballot item should be an individual screen, that way the options would be ridiculously large and even those without fine motor skills would be able to vote easily.  Other than that, the UI seemed reasonable enough to me.

Voter-Verified Audit Trail

My major problem is with the lack of a voter-verified audit trail on the machines that I’ve used.  I’m simply taking the computer’s word for it that my vote was counted.  My major modification to electronic voting machines would be the addition of a thermal printer that prints a human readable ballot onto a traditionally sized card-stock ballot.  In addition a QR code would be printed on the bottom of the ballot which contains the vote information in a very computer friendly form as well as a ballot id number.

The choice of a thermal printer is due to their reliability and low-maintenance costs.  The card-stock is a requirement so that the ballots can be easily fed into vote scanners.  The inclusion of a QR code is to allow a computer to easily verify that the optical character recognition of the physical ballot was successful and to allow for the voting machines to record ballot ids of authentic physical ballots.  The ballot ID would never be associated with a person, it would be recorded as being cast.

Once the ballot is printed a final confirmation screen appears that asks the voter to ensure the printed ballot matches their desired selection and gives them the opportunity to raise a flag if it does not.  If they’re happy with their vote they will take the ballot and place it into the central ballot box.

My second modification would be the creation of a digital ballot box.  Upon the completion of the final confirmation screen the vote would be tallied individually on the machine as well as sent to the electronic ballot box for the voting location.

Three Independent Vote Counts

Finally I would institute that the voting machines be collected by one party, the electronic ballot boxes another and the paper ballots by another.

In order for an election to be finalized each party would need to independently deliver their tally of the results to a fourth party that will confirm that first and foremost the outcome of the vote is the same, secondly the electronic voting data should be identical, finally the physical ballot tally should be within a small margin of error of the electronic data.  This margin of error is only to account for scanner errors.

I believe this would make sure that no one party would have the ability to corrupt an election.

The big question is, what happens if the data doesn’t match?  It’s my opinion that the physical ballots should have the final word.  That’s because it’s a physical item that the voter was able to verify matched their intentions.  It’s also how voting has been done in the United States since 1892.  If it’s managed to work over over a hundred years it seems reasonable to me.

Over-all, I think this would be a very secure way to vote.  There are 4 copies (Machine, Electronic Ballot, Paper Human Readable Copy, Paper QR Code] of the voter data that should all match.  Any significant deviation would warrant an investigation to explain the variance.

Mapping Errors and iOS Maps

There has been a lot of discussion over mapping errors and lack of detail in iOS Maps, so much so that Tim Cook issued an apology.  In the United States at least, I believe this is mostly being made into a bigger deal than it is.  Let me be very clear, as a whole, Google Maps is a better product than iOS Maps.

I don’t think anyone really expected iOS maps to exceed the quality of Google Maps.  Google has been in the mapping business for 7 years and has spent countless hours refining the data both through in-person ground crews, user location data and user error submissions.  Anyone who expected Apple to top that either has exceedingly high expectations of Apple or unbelievably low respect for what Google has accomplished.

Mapping Errors

The world is a big place; the idea that anyone can be expected to map it flawlessly at the level of detail modern mapping solutions provide is a pretty bold idea.  I’ve come across the following three examples, two from Google and one from Apple’s mapping solution, that I’ve experienced in the past month.  I did not seek out these errors they found me.

First and foremost, Google does not know where I live.  Every other mapping solution I’ve used gets it correct or at least identifies the correct road.  Bing, Mapquest, iOS Maps, VZW Navigator, Garmin all stop you at my driveway.  Google will put you about 4 miles away.  I blame the city planners for this a lot more than I do Google, but still others get it right.

Google Map Containing Mapping ErrorsNow for a more detailed example.  I was using Google maps to get an estimate of how long it was going to take me to get somewhere and it told me a number that seemed unreasonable.  I then noticed that it was taking me a really odd route.  The picture on the left shows Google’s proposed route which involves an approximately 10 mile detour.  The core of this problem appears to be that the routing engine believe’s the bridge is one way.  Zooming in on the image, will display bi-directional arrows across the bridge, but for some reason Google will not route you across it.



iOS Map Containing a more Logical Route

Here you can see that iOS has mapped a more logical route directly across the bridge. I will argue this is a pretty glaring error to put someone 10 miles out their way, in this specific example it would nearly double your trip length.

 The intersection around this bridge is a mess and is under major construction so the route will be changing and I’m sure Google will eventually figure it out.  But this serves an example where iOS data is superior to Google data.

Apple’s error is a lot less complicated and a lot more dangerous.  They have connected a cul-de-sac to an adjacent road through some trees and a pool in someone’s yard.  In the following screenshots I have dropped a pin and then toggled the view mode of the map between Standard and Hybrid.

iOS Map Containing Mapping Error in Standard View

iOS Map Containing Mapping Error in Hybrid View

 Why would Apple Switch?

 It’s no secret that Apple and Google are in the midst of a rough patch in their relationship.  So is Apple sacrificing the end user experience just to punish Google?  I don’t believe the answer is clear-cut either way.  Clearly the map quality on iOS devices has been reduced so the user experience has clearly been negatively affected in that way.  However the launch of the new mapping application also includes turn-by-turn navigation that users have been wanting and competing Android devices have had for a year or more.  It’s rumored that Apple and Google couldn’t come to terms on Google providing this sought-after feature.

Does the gain of turn-by-turn out-weigh the mapping errors?  I think that largely depends upon how you use your device.  If you use it primarily to find locations prior to driving, Yes your user experience has been sacrificed by the fighting couple.  If you use it to get directions while you’re driving the switch is probably a net gain.