Archives for: May 2007

This is the b2evo blog of Joseph Lorenzo Hall, politechnologist and PhD student at UC Berkeley's School of Information.

On DREs vs. Opscan...

May 24th, 2007   (221 views )

There seems to be a sentiment in the e-voting activist community that

"DREs involve secret recording and counting of votes and optical scanning technologies (Opscan) only involve secret counting."

(that's my paraphrase... I'm not quoting anyone in particular)

Someone has asked what I think about this:

Let's look at this from a scientific point of view. Both DRE and Opscan voting technology involve translating voter intent into digital records. With a DRE, the voter touching a touchscreen (or other form of input) is translated into digital selections recorded in digital storage (and possibly also recorded on a contemporaneously-produced paper record). For Opscan, the voter's marks on a piece of paper are translated into a digital record. So, in both of these cases, there is an individual digital record produced for each ballot from how the machine interprets the voter's intent; these are later (counted) tabulated at either the machine-level or after uploading them to a central computer (a tabulation server).

In both cases, unofficial results typically come from counting (tabulating) the digital records. So, it is the digital records that are counted. In places that require manual audits, some subset of machines or precincts may be manually tallied to serve as a check on the results from digital tabulation. Rarely, save in the cases of 100% recounts or jurisdictions that still use hand counting methods, are all physical ballots recounted.

As to the issue of how a voter's intent is recorded: in both cases, voter intent is translated into digital records. Is this recording secret? Well, that's a loaded term but I would agree that these digital records are not directly perceptible by voters; that is, you cannot see the process that translates the voter's intent into a digital record and you cannot see the result. The tabulation process is equally not perceptible.

The sticking point is that with Opscan technologies (and ballot marking devices, etc.) the direct record of voter intent -- the ballot that the voter marked -- is preserved and available for later analysis. With a DRE, no machine records and preserves the details of how the voter touched the screen (for example) at different times to indicate their preferences.

So, I believe it is incorrect to say that "DREs record and count in secret; Opscan only counts in secret." The correct thing to say, in my opinion, is that both DREs and Opscan technologies count and record digital records translated from voter intent using methods that are not perceptible to voters. Of course, if we care to have any of the added values of DRE, etc. technologies, we have to find ways (like the VVPAT with audits) that will short-circuit this imperceptibility of translation, recording and counting. And some manifestation of voter intent must be preserved -- either directly in the case of Opscan, etc. or indirectly in the case of DRE+VVPAT, etc.

On cookies when opting-out of in-text search/advertising

May 22nd, 2007   (444 views )

I'm convinced that companies like Snap and Vibrant have found a clever way to make money off of people that either opt-in or opt-out of their in-text search/advertising.

Both of these companies make money off of in-text search or advertising where moving one's mouse cursor over a link results in a mini pop-up advertisement or search preview.

(The wikipedia entry for keyword advertising lists Kontera and LinkWorth as also doing this).

That is, these companies have figured out a way to make money off of providing pop-up advertisements or search windows that they serve when users mouseover their links. In order to opt-out, users have to accept a cookie from the search/advertising company. This means, the more websites that install and use the these services, the more frequently users will have their cookie read and the more complete of a profile the service can build about them as "opt-outers". If the user doesn't want to eat the cookie but would rather not see the pop-ups, they might get annoyed more often. (And there have been some reports of services like these setting cookies with short expiration dates, so the user only opt-outs for a short period of time before they have to reset the cookie.)

This is sort of a "user is damned if they do, damned if they don't" business model, which is interesting and clever. It just sucks when you're the one annoyed by the ads and privacy-conscious. (Apparently, Doubleclick... err Google DoubleClick... has been doing this for years.)

UPDATE [2007-05-23T09:57:48]: I received an encouraging email from Paul Angles of Snap.com:

Saw your post about Snap.com fiendishly making money off people who opt-out of Snap Shots. I assure you that this is absolutely untrue. Our objective is to enhance the value of links by providing additional functionality such as previews, summaries, stock charts and inline audio and video. Our monetization is based on active user involvement with our products, not by passively serving ads. We actively listen to all concerns about our products and systematically address the concerns to make our products better. That’s why we’re now featured on over 1,000,000 sites and blogs and show over 13,000,000 shots per day.

Perz bloggin'

May 21st, 2007   (165 views )

Join me in a hearty blogosphere welcome to Aaron Perzanowski... god forbid if they give this kid any realy power. ::)

Perfect Roast Potatoes

May 20th, 2007   (303 views )

These are amazing... creamy texture inside and crispy shells with a robust, but not overpowering, garlic flavor and a hint of citrus. The cornstarch is the secret; it traps water and promotes crispiness. (Leave out the garlic powder at the beginning if you don't want garlic to be as central to the dish.)

Perfect Roast Potatoes

Ingredients:

  • 2 lb. red potatoes, washed, dried and then cut into 8ths
  • 1 tbsp. cornstarch
  • 1/2 tsp. garlic powder
  • 3/4 tsp. salt
  • ground pepper
  • 3 tbsp. vegetable oil (peanut is good)
  • 1 tbsp. butter (don't add salt at the end if using salted butter)
  • 1 garlic clove, well minced
  • 1 tsp. minced fresh parsley (or a smaller amount of dried basil, etc.)
  • 1/8 tsp. grated lemon zest

Instructions:

  1. Preheat oven and a large, rimmed sheetpan (cookie sheet) in the oven at 450° F. (Don't use a non-stick pan here if you can avoid it... the oil will pool up unevenly if you do.)
  2. In a large bowl, combine potatoes, cornstarch, garlic powder salt and pepper.
  3. Take pan out of oven, add the oil and evenly coat the pan
  4. Then evenly distribute the potatoes on the pan and roast for 30 minutes or until potatoes are browned.
  5. Flip potatoes over and roast for an additional 15 minutes.
  6. Add the pat of butter, minced garlic, parsley and lemon zest to the bottom of a large bowl and let sit until potatoes are done.
  7. When done, add potatoes to the large bowl and toss until evenly coated with butter mixture . Adjust seasonings as desired. Serve hot yo.
Categories: recipe, food

Cthulu '08!

May 19th, 2007   (448 views )
a simple stylized cthulu 08 campaign image riffing off of the GOP elephant in the form of a squid-like cthulu
Categories: elections, wtf?

Reddit and Ron Paul

May 18th, 2007   (138 views )

Man, reddit was cool until some dorks started filling it up with articles about some loser named Ron Paul.

Categories: wtf?

Eliminating NAs in matched data in R

May 12th, 2007   (167 views )

This was bugging the shit out of me in our is271B (quant methods) final... I had three arrays with NAs in different rows of each array... I had done a weird brute-force machination like the following to get rid of the NAs and preserve the pairwise matching of the data observations. In the R code for my final, I eliminated NAs in one and then got rid of the corresponding datapoints in the other arrays like so:

> climaten <- climate[!is.na(climate)]
> urbann <- urban[!is.na(climate)]
> cropgrown <- cropgrow[!is.na(climate)]
> climatenn <- climaten[!is.na(urbann)]
> urbannn <- urbann[!is.na(urbann)]
> cropgrownn <- cropgrown[!is.na(urbann)]
> climaten <- climatenn[!is.na(cropgrownn)]
> urbann <- urbannn[!is.na(cropgrownn)]
> cropgrown <- cropgrownn[!is.na(cropgrownn)]

As you can see, if you're dealing with a ginormous dataset with many variables, this becomes hella tedious hella fast.

This bugged me sufficiently that I figured out how real R users do it. They put all the variables in question in an R data frame and then use the function na.omit() to remove all rows with NAs in them (you can do very complex types of extraction using the subset() function.). Here's how to do it in R:

> library("foreign")
> dat <- read.dta("world95.dta")
>
> #attach (make available) data variables
> attach(dat)
>
> #put vars in question in data frame to clean NAs
> dattmp <- data.frame(climate,urban,cropgrow)
>
> #this removes rows with any NAs
> datclean <- na.omit(dattmp)
>
> #take vars, cleaned of NAs, back from data frame to array
> climaten <- datclean$climate
> urbann <- datclean$urban
> cropgrownn <- datclean$cropgrown
>
> #a quick boxplot
> boxplot(urbann ~ climaten)
>
> #... we can continue from here.

May 2007
Sun Mon Tue Wed Thu Fri Sat
 << < Current> >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Archives

Music Recently Listened To...



Search This Blog...

Syndicate this blog XML Feeds


Blogroll

Individual Blogs

Group Blogs

Dead Blogs (R.I.P.)
Powered by Bloglines

powered by
b2evolution

licensed by
Creative Commons License

browsed by
Firefox 2