Aiming for Precisionism but Missing

When I was in Houston, I took perhaps my favorite photo-of-mine ever, this shot of the Houston Hyatt. It reminded me of some photos that the artist Charles Sheeler took. But he didn't leave his photos alone. He used them as models for his paintings. His paintings smoothed the images out, made them flatter.

I don't know how to paint. I'm not going to get good at it any time soon. As a lazy engineer, I'm always looking for shortcuts. If all I want to do is smooth some of the texture out of a photo, maybe I can do that in software. I tried opening up the photo in the GIMP, a photo-editing program. I told it to use a palette of just 16 colors. That looked--too flat. Too weird.

So I tried writing my own image-manipulation program. Python has an Imaging library; its API is nice; this was a fun thing to play with. What did I try? Consider the image, one row of pixels at a time. For each row, set up four levels each of Red, Green, Blue. Draw the photo, "restrained" to this palette.

[altered photo]

The result is... not so great. Not so precisionist; all to pointillist. It reminds me of an old GIF file, full of noise forced by its small palette. On the other hand, it's strange to look at this image, and to know why it's noisy, to understand the complicated filter I applied to it. It inspires other filters.

Labels: , ,

Book Report: Security Engineering

This book is humongous! It's a survey of security computer engineering. It doesn't go into depth on any one topic, but it's got plenty of breadth. In areas where I already knew something, this book didn't teach me anything. But in areas where I didn't already know something, this book taught me plenty. For example:

  • Some people are born without fingerprints.
  • A history of smartcard hacking.
  • The original motivator for "watermarking" schemes was for proof of authorship (but it turns out that folks aren't trying so hard to claim they wrote Miley Cyrus' songs--they just want to be able to copy those songs).

There were some aspects of Tor I hadn't heard about; admittedly that's because I don't know much about Tor. Similarly, I'd heard some things about government clearance levels, but I hadn't heard about some of the devices used to carefully, carefully move information betwen information clearance levels...

An interesting factoid from the more-exciting-than-it-looks world of banking: about 1% of bank employees "go bad" each year. Embezzles something, steals, helps someone else to defraud... One percent. That's worse than I expected. I don't think everyone is squeaky-clean, but we aren't talking about a random sample of the world population here. These are people who got hired at a bank. There was probably a background check somewhere in there. They had to make it through an interview with folks looking for twitchy behavior. They are monitored; they know they are monitored. I wasn't expecting that "go bad" rate to be zero, but... wow, one percent. Does that mean that anyone who's worked at a medium-to-large bank for a few years probably knows one person who's gone bad?

That was some of the interesting stuff in this book--looks at other worlds, not so far from web apps.

It's a big book. There's plenty in it. There's something to be said for a wide survey.

Labels: , ,

OpenID, OAuth, Learning by Gossip

Last weekend, I did some programming. Well, not much programming. Mostly I did research preparatory to programming. Well, not exactly research. It was more un-research.

I started out learning how to use the OAuth protcol to... to do something it's not meant to do. OAuth is useful, but I learned that it wasn't meant to do what I wanted. If lots of people worked hard, you could use it for what I wanted--but that would be silly, because you can use OpenID for what I wanted.

What I wanted was to set up a little web app with user accounts that didn't ask users for a password. Instead, it would ask the user if they already had an account at some service: Yahoo, Google, Twitter, Flickr, or whatever... and then ask that service: hey, is this person who she says she is?

What I wanted was OpenID, which does that. (Like, say, this OpenID consumer sample implementation for AppEngine.)

But I'd heard some third-hand news a while back. Chatter on forums: Don't use OpenID. None of the big services are using OpenID. Folks asked Google to use OpenID, but Google didn't--because it's insecure. Google's pushing for OAuth instead, and they're web security smarties, you should use OAuth.

That was wrong. I'm not sure how much of the wrongness came from me mis-interpreting what I heard. I'm not sure how much of the wrongness came from the ignorance of the folks spouting off in the forums. But there was plenty of wrongness.

I'm pretty sure I'm not the only one who got confused. Some guy wrote a blog post just to say that OpenID and OAuth are not the same thing.

So I spent a while studying OAuth, thinking "This is kind of a bass-ackwards way to do what I want." Until I finally decided to look over OpenID some more.

The rumors of Google's rejection of OpenID are false. I can write a little web app. That little web app can (if you have a Google account and you give your consent) ask Google: is this person who she says she is? And Google will answer. The Google security team will not jump out from behind your refrigerator and break your fingers.

There are so many technologies to learn. You don't have time to learn them all. How do you find out which things are worth learning about? Me, I listen to chatter. I don't think I'm the only one. It's embarrassing to think about but... for all that we're supposed to be rigorous engineers, we fall back on gossip to figure out what to study in depth. What worthwhile things do we ignore? What do we ignore because of some unearned sneering comment on some IRC channel somewhere that's been repeated, relayed, never fact-checked...

Sorry, was I ranting? I do that.

Labels: , ,

Book Report: Sleeper (Season One)

Happy comic-con season! I guess I'll post a comic book report about Sleeper.

This comic book is a combination of an undercover cop story with superheroes. Our hero has gone undercover in a superpowered criminal organization. Oh, and the only good guy who knows that our hero is undercover--is in a coma. And the good guy organization has disbanded. So our hero gets more and more entangled, paranoid, and... This is a good story, though plenty dark and violent.


Book Report: Incognegro

My domain,, was out of commission for a few days. Sorry about the missing emails. Anyhow, the domain is back now. That calls for a celebration. Or a comic book report about Incognegro. One of those. A report, you say? OK.

It's a comic book set during lynching times down south. I guess you could read this to show how politically correct you are. Oh man, listen to this review from the back cover: "A valiant and successful effort to redeem the past without rewriting it." Uhm, yeah.

In spite of this, it's a pretty good comic book. You might want to read it but then not tell your public-radio listening friends that you did, lest you find yourself in earnest dialog. It's, you know, a comic book. It's a mystery and a tense one--it seems like half the minor characters are pretty disappointed on days when they don't get to string somebody up. Small towns are bad enough when everybody knows what everybody else is doing; but it gets worse when everybody uses what everybody else is doing as an excuse to kill everybody else.

Labels: ,

Book Report: Ecology of Fear

Angelenos worry about disaster a lot. At least that's the premise of Ecology of Fear. Los Angleles is prone to disaster, both in real life, in the movies, in books,... Maybe it's true. And yet. He cited many books showing how Los Angeles gets destroyed in popular culture plenty. He cited many books that I hadn't read. And he cited Dinner at Deviant's Palace, which I had read. Yes, this (pretty good) book takes place in a post-apocalypse L.A. But... the whole world of that story is post-apocalypse. The story just happens to take place in L.A. Oh, and I disagreed with his take on Bladerunner, too.

There was plenty of stuff in this book that wasn't about science fiction. He talks about earthquakes, fires, racial unrest. I just am familiar with the science fiction, I guess. And that makes me wonder how much he knows about the other stuff he writes about.

He's at his best when he writes about Angelenos' attitude towards risk. Shoddy buildings fall down in earthquakes, though everyone knows that there will be earthquakes. But people freak out when mountain lions attack, though those attacks are pretty darned rare.

And he convinced me that there are occasional tornados in Los Angeles.

Not his best book. I wish someone had warned me to skim parts that didn't seem relevant. Still, there were some good parts.

Labels: , , ,

Link: Bang XXVI

The web page for BANG XXVI gives my browser window a hard time, but it's announcing a SNAP simulcast, and that's a good thing to know about.

Labels: ,

Comic Report: Ex Machina (the first several collections)

When I first heard about the comic book "Ex Machina", I stopped paying attention too soon. I heard that the protagonist is a superhero who can talk to machines. And those do what he says instead of beeping and complaining about syntax errors and/or blowing their stack or.. Yeah, they just do what he says, like they understand. I rolled my eyes. Yeah, I understand that the very fact that I read superhero comic books... I understand that I'm not allowed to roll my eyes at one more goofy premise... But I couldn't help it. And I stopped paying attention. So I never caught on to the fact that the protagonist is also the elected mayor of New York City.

But then I did. (Amazon recommendations recommended the series to me, so I took another look.) And then I bought every old collection I could get my hands on. This is a fun comic book!

This is a fun premise for a comic book, as long as you don't take it too seriously, and this book doesn't. There's more crime-fighting than budget-balancing going on here. The book skims over urban issues without getting bogged down in details. Society changes, the city changes with it--and in this comic book, most folks are inclined to be reasonable. Yes, I said reasonable... in politics... hey, quit laughing at me! Yes, I guess I'm reading escapist literature for people who follow politics. Cut me some slack. It's just a comic book.

Labels: , ,

Link: Auto-translation of foreign web pages getting more convenient

I sometimes visit web pages that are in languages other than American. To understand those pages, I need translation. For a while, the Google Toolbar has had a useful button: you can press this button to go to a page with an automatic translation of the page you were viewing. But but there was a limitation: the Google server had had to be able to fetch the page, or else it couldn't see the page to translate it.

But toolbar got a new translation feature recently. You can ask it to send the text from your browser to the translation service and get it back. It's all Web2.0. You can get translations of pages that the Google server can't fetch over the internet. It's pretty nice. This feature is in the Google Toolbar for Internet Explorer (that's the browser with the big blue "E") and is coming soon to the Google Toolbar for Firefox. Dare I hope it will come to Chrome soon? I can hope.

(This is probably one of those times I should mention that my opinions are mine, and aren't necessarily those of my employer.)

Labels: , ,

Book Report: The Big Oyster

It's kind of a history of the oyster. It's kind of a history of shellfishing in New York City harbor. Once there were oysters. Then they were overfished. Then they were cultivated. Then water pollution came along, turning the oysters into disease vectors. It was OK. The book, I mean. The book was OK. The disease vectors were less than OK.

Labels: ,

Milestone: 14 Million Hits

Wow, it's this web site's 14 millionth hit. The people and the robots, they keep showing up. - - [06/Jul/2009:04:35:09 -0400] "HEAD /favicon.ico HTTP/1.1" 404 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv: Gecko/2009060215 Firefox/3.0.11"

Let's see, means a machine in the domain When I try to find information about GyaO, it seems to be an internet portal specializing in video.

When I look at my records for the day, I think that this machine at GyaO visits my site once every 10 minutes, each time checking on that file /favicon.ico. That seems like a web robot-y thing to do. I guess this is a robot, not a human. Looks like it started about six hours ago, and is still trying. This web site doesn't have a /favicon.ico file, but the robot keeps checking for the file's existence anyhow. It's making HEAD requests instead of GET requests--that gives it metadata about /favicon.ico without the data itself. Though in this case the metadata is boring: 404 not found. (You might wonder what a favicon.ico file is. It's a tiny icon. It's common convention to have one. It's reasonable of GyaO to assume I'd have such a file. More about favicon.ico.)

The idea of writing a web robot to periodically check web sites for the presence of a /favicon.ico file seems strange to me. I can't figure out why you'd want such a robot, but it's fun to think about. Some of this site's robot visitors are more interesting than some of the humans.

If only there were some way to combine humans with robots. On the internet, nobody knows you're a cyborg. Or something.

I attempted to find out what makes my writing voice unique. To this end, I of course looked at letter frequencies. Maybe something I could build a web robot out of.

You might recall that my daily nonsense page daily generates random text based upon Markov Chain patterns--frequencies by which one blob of text tends to follow another. E.g., if one character of some English text is "q", the next character is probably "u".

What if we look at the frequency data of my writing and then subtract out the frequencies of "typical" writing?!? Surely that would result in the essence of my writing voice--as determined by science, math, and statistics. This is serious. I tried it out, and the following gem of text emerged from the process:

Getty guarand trize talked a mt reard sun't withey saill. Platereng all yourealkere tood so nice ne clogres phoulatchfriguy? Elly, hat to trying thenihis inkind, quile blany ingibs. Seem nock seen some it gaven wit fun't hey some dayelseep of ork cloo car thiceople. Pat be hady. I an imm bit donew's funce maker. Some woketty do ke rog, somay dowon't for of ming.

You might look at that and say "That's totally incoherent," but that might mean that it's totally captured my writing patterns, you know?

OK, that's pretty incoherent. But I kind of like that sentence "Pat be hady." I'll try saying that the next time someone asks me how it's going. "Pat be hady."

Anyhow, wow. 14 million. Dear reader, thank you for reading.

Labels: ,

Zine Report: Giant Robot #60

There's a photo of Ryohei Tanaka's equipment. Tanaka makes art by cutting paper. His equipment--an assortment of scissors and... dyes?

An article by a guy who photographed some film locations from the Star Wars movies--oh, wait, it's more interesting than that. These were in Tunisia. Some of that Tatooine stuff was real stuff found in Tatouine, some of it was movie magic.

An article about Peter Saville, the Factory Records artist who did the Joy Division album covers you remember.

An interview with the director of the movie Quick Gun Murugan (Behold: a clip from Quick Gun Murugan, I guess).

A fun read.

Labels: , ,

Puzzle Hunts are Everywhere, Even Marx Meadow, Hawk Hill, and other places around the San Francisco Bay Area

Against all odds, I wrote about Shinteki Decathlon 5. I played the first weekend; the second weekend I volunteered. Thus, there's a pile of semi-related stuff in that write-up. It's mostly about playing. Thus, you can thrill to the chase after a "wet elephant". You can vicariously experience my unhelpfulness as I ate a really good lemon bar pastry while watching my team-mates solve a puzzle involving flags of all nations. You know, standard game write-up stuff. But in the middle, there's a long aside where I blather about being a volunteer at Marx Meadow, and mixed up in that, there's some semi-coherent speculation and handwaving about how the idea of a "mobile GC" couldn't possibly work, except that obviously it does work so I'm not sure what my point was, exactly, except that I was full of admiration and empty of understanding of how the Shinteki folks keep it all together.

Labels: , , ,

Book Report: Stiff (The Curious Lives of Human Cadavers)

There's some interesting stuff in this book about scientific, medical, and engineering-testing uses of human cadavers. There's some interesting stuff, but there's some "humorous" reportage to slog through on the way there. The writer is working with interesting material--and she obviously did some good research to dig up this material and presents it well--but didn't seem to think that material was sufficiently interesting to her audience. So she tells us her reactions, she makes unfunny jokes, she tries to keep us engaged... I got tired of slogging through that. I stopped reading.

There were anecdotes of resurrectionists--graverobbers who didn't rob possessions, but who dug up bodies for early medical anatomists. There was a story I hadn't heard before: a guy running a boarding house who killed a sick boarder and then sold the body.

One thing I want to remember out of this book: I'd heard that crucified people couldn't breathe if they let themselves dangle, that they had to push themselves up or suffocate. According to one researcher, that theory was based on a kind of torture in which folks have their arms tied above them; but if your arms are out to the sides, you can still breathe OK.

Labels: , ,

Link: Pimp my Bookcart Contest

Some webcomic is holding a Bookcart decoration contest. The only place I have ever seen decorated book carts is at UC Berkeley's library; that's where I've shot all of my book cart graffiti photos. But I guess there must be other places that this happens, as evidenced by the impressive previous winners of that contest.

Labels: , ,

home |