technological progress, freedom to v. freedom from

Technology progresses. Most of the time, progress is good, sometimes bad, but in all times it creates new circumstances, and those circumstances have winners and losers. Our society is not good at recognizing when circumstances have changed. We tend to take, for a long time at least, the world-as-it-is as the world-as-it-ought-to-be.

But I see no reason it must be so. I wish we were better at evaluating our reality, deciding if we like it or want something else, and then, coming to consensus on what, if anything, should be done at a policy level to control our circumstances.

 

For example, remote control airplanes have been around for quite some time. They were rather expensive toys, and not easy to fly. Similarly, aerial photography has existed almost since the dawn of flight. Because paying a pilot of fly over some location for you and photograph it is not cheap, it tends to be done where value of the resulting photograh is high enough to justify the expense.

For whatever reasons, we were pretty much OK with that status quo and the laws surrounding it. For example, yes, someone could photograph you through your window, and a passing plane could catch you sunning in your yard. People do not like those thigns, but it was hard enough to do and easy enough to stop, that basically, everyone but celebs and paparazzi seemed fine with the world as it was.

Enter inexpensive, simple aerial photograph with UAVs. Today, anybody with a few hundred bucks can get aerial imagery, and in a few years, that might be $10’s or even $1’s. Whole new possibilities for surveillance open up and people are suddenly uncomfortable about their vulnerability.

Does this mean we need laws to stop aerial surveillance “abuse?” Or maybe we need to adjust our expectations of privacy? I dunno. We need to evaluate the situation anew, since technology has changed circumstances. The fact that the existing laws were fine does not mean they are fine.

Totally rad UAVI can think of lots of contemporary examples of this sort of change: facial recognition along with ubiquitous video cameras make it possible to track everyone, everywhere they show their faces. License plate reader technology allows someone to track everywhere you go. You could do the same before, with detectives or private eyes, but now it can be done in bulk, cheaply. Cookies on websites allow someone to track most of what you look like on the Internet. In essence, people’s expectation of privacy was actually the complex combination of the state of technology and the law together, not either separate from the other.

None of these technologies are sinister in and of themselves, but dropped into a an environment that was in legal equilibrium without them, I think we should expect that equilibrium to shift.

Zoom!Of course, there are historical examples of such adjustments. Prior to the ubiquity of the automobile, people did not need carriage licenses, nor did they need to carry liability insurance for carriage accidents. How long after cars became popular did we realize they were dangerous enough and important enough that we should require that drivers get training? I think most (though not all) people today regard drivers’ licenses as a good idea. A few decades after that, we started requiring drivers to carry liability insurance and today most states have some requirement, though it is amazingly low in some places. (I know that agreement is hardly universal that liability requirements are a good idea, but we have them.)

One contemporary problem that is not typically considered in this light is gun violence. One might say that extremely capable weapons have been available for a long time, but that they have been expensive enough and just tricky enough to obtain, that we, as a society, were comfortable with the status quo. Collectors and sportspeople had them, and they used them safely, more or less. Enter cheap, easily available weapons, and all of a sudden the game has changed. In fact, today you can 3D print a gun at home, and maybe in a few years you’ll be able to 3D print a most of a not-too-shabby automatic weapon. The technology is not going to go away, but because of the technology change, the status quo is going to shift. Can or should we try to shift it back?

 

My point is that I think there are many  people who advocate for a kind of technological determinism, suggesting, “well, tech marches on.” But history tells us that we clearly do not have to accept such outcomes if we don’t want them.

Freedom-loving readers will notice a whole lot of “we’s” in this essay. I’m afraid they’re right. I’m suggesting that the group sometimes make decisions that restrict an individual’s freedoms. I know there is a cost to that. But I also see costs in letting individuals restrict the freedom (and well-being) of many other individuals.

As always, practicality and balance will be hard to achieve. We all seem fine with driver’s licensure, but pet grooming licenses seem perhaps too far. Required liability coverage for drivers is OK, but we probably would not tolerate such a requirement for many other potentially dangerous-to-others activities.

I hope we will have spirited, informed debates on issues like privacy and autonomy and that the outcome, if not new norms and laws, are new, explicit reiterations of existing norms that were previously implicit.

Gah… Apple

I use a Mac at work. It’s a fine machine and I like the screen and battery life, but I’m not a generally fan of Apple the company or its products. Sometimes I forget why, and I need to be reminded.

Like today, when I decided, even though Safari is basically a sucky product, there are probably people that use it, so I might just port my little political statement Chrome extension to Safari. I’d already done so to Firefox, so how hard could it be?

Well, it turns out, not too hard. Actually, for the minimalist version that most people are using, it required no code changes at all. It did take me awhile to figure out how everything works in the Apple extension tool, but overall, not too bad.

I knew I would have to submit to reviewers at Apple to get it published. I had to do the same at Mozilla for Firefox. But what I did not know is that in order to do that, I had to sign up to be an Apple Developer. Moreover, I could only do so under my real name (ie, not dave@toolsofourtools.org) and most annoying, they wanted $99. A year. or as long as the extension is up.

I’m not going to play $99/yr to provide a free plugin for the few people who are dumb enough to use Safari on a regular basis.

In an odd way, this gets right to the heart of one of the many reasons I do not like Apple. They are constitutionally opposed to my favorite aspects of the computing and the Internet: the highly empowering ability for people to scrappily do, say, make anything they want for next to nothing, and at the level of sophistication that they want to deal with. Apple doesn’t like scrappy things in its world, and actively weeds them out.

Apple, you suck. Thanks for the reminder never to spend my own money on your polished crap.

Clever, disturbing

Apple was recently granted a new patent for technology that will disable your phone’s camera at concerts where photography is forbidden.

The patent uses an infrared signal, which could be picked up by the imaging sensor itself. This is rather ingenious and cunning, because you could not disable the shut-down sensor without disabling the camera yourself, since they are one and the same.

IPhone_5S_main_cameraDepending one how pervasive such tech became, and how closely integrated the detection, decoding, and disabling is to the actual silicon image sensor, it could become nearly impossible to defeat this tech, or to obtain a phone that doesn’t include it.

I find blocking cameras at concert venues mildly annoying, but the potential for abuse of this technology seems large. Will folks on the street use it to block being photographed? Will it be deployed in government buildinds? Outside cop-cars? Will the secret for how to disable everyone else’s phone get out?

Over the last few years we’ve seen some exciting benefits from ubiquitous deployment of cameras. People are getting caught doing things that are illegal or at least shameful. I’d be bummed to see some technology from Silicon Valley reverse this progress.

 

 

The code we unwittingly run

This will come as no news to tech-savvy people, but when you open a webpage, you are running a metric shit-ton of code from all over the Internet.
A bunch of garbage nobody needs.
A bunch of garbage nobody needs.
Since I’ve been doing some Chrome Extension development over the past couple of days, I’ve been opening up the dev tools that let you see the “console” output of all the javascript that runs on a page. It’s a lot. I have an ad-blocker running, so most of those GETs and POSTs generate error messages and go nowhere. But there are a lot of them. And the code keeps trying over and over.
And it’s from a lot companies, too. On the NYT alone, I get messages from various systems from google, amazon, facebook, doubleclick, moatads.com, brealtime.com.
Aside from the privacy and tracking aspects, it feels like a theft of resources, too. They’re using my CPU to do work that has nothing to do with rendering their page.

Detrumpify2 — some cleanup

Even though my short brush with Internet fame appears to be over (Detrumpify has about 920 users today, up only 30 from yesterday), pride required that I update the extension because it was a bit too quick-n-dirty for my taste. Everything in it was hard-coded and that meant that every update I made to add new sites or insults would require users to approve an update. Hard-coding stuff in your programs is a big no-no, starting from CS 101 on.

So, I have a rewritten version available, and intrepid fans can help me out by testing it. You will not find it by searching on the Chrome Web Store, instead, get it directly from here. It is substantially more complicated under the hood than before, so expect bugs. (Github here, in “v2” folder.)

An important difference between this and the classic version is that there is an options page. It looks like this:

Screen Shot 2016-06-28 at 11.33.34 AM The main thing it lets you do is specify an URL from which a configuration file will periodically be downloaded. The config file contains the actual insults as well as some other parameters. I will host and maintain several configuration files ToolsOfOurTools, but anyone who wants to make one (for example, to mock a different presidential candidate) will be able to do so and just point to it.

If you want to make changes locally, you can also load a file, click on the edit button, make changes, and then click on the lock button. From then on the extension will use your custom changes.

The format of the config file is simple. Here’s an example with most of the names removed:

Explanation:

  • actions  is a container that will hold one or more named sets of search and replace instructions. This file just has one for replacing trump variations, but one can make files that will replace many different things according to different rules
  • find_regex  inside the trump action finds a few variations of Trump, Donald Trump, Donald J. Trump.
  • monikers  section lists the alternatives.
  • randomize_mode  can be always , hourly , daily , and tells how often the insult changes. In always , it will change with each appearance in the document.
  • refresh_age  is how long to wait (in milliseconds) before hitting the server for an update.
  • run_info  tells how long to wait before running the plugin and how many times to run. This is for sites that do not elaborate their content until after some javascript runs. (ie, every site these days, apparently). Here, it runs after 1000ms, then runs four more times, each time waiting 1.8x as long as the last time.
  •   bracket  can be set to a two-element array of text to be placed before and after any trump replacement.
  • schema  is required to ID the format of this file and should look just like that.
  • whitelist  is a list of sites that are enabled to run the extension. Et voila.

Let me know if you experience issues / bugs! The code that runs this is quite a bit more complex than the version you’re running now. In particular, I’m still struggling a bit with certain websites that turn on “content security policies” that get in the way of the config fetch. Sometimes it works, sometimes it doesn’t.

 

Marriage proposal from Jezebel

The fine folks at Jezebel want to marry me! Though I am married in Real Life, I see no reason that should preclude an Internet-based group arrangement.

Because this is clearly the beginning and end of my fifteen minutes, I will paste a few comments from the post:

  • This is basically a marriage proposal to us as a group, right? We accept so hard.
  • This is the best thing that has ever happened in the known universe, space, and time. Ever.
  • I am not going to get any work done for the rest of the day…
  • this is making me positively giddy
  • Firmly believing that the entire Gawker Media empire was brought into existence specifically so this moment could happen. This is fantastic. BRING ON THE AMBITIOUS CORNDOGS, Y’ALL.
  • Whoever made this is a goddamn genius.
  • You are doing a wonderful service for your country! Love love love this.
  • Somebody please tweet this to Colbert? He’s been doing incredible take-downs of Trump and I’m sure would love to demo this on the Late Show.
  • Installing this on my work PC was a mistake. I’m crying.

In the words of Ken Burns, I think this really is my Best Idea.

 

Detrumpify

nbc-fires-donald-trump-after-he-calls-mexicans-rapists-and-drug-runnersApropos of nothing, I wrote a very simple Chrome extension (and a Firefox add-on) that replaces references to the Short-Fingered Vulgarian with any of several other aliases. The initial “seed” for the list came from Jezebel, which published a list of 70 such names for the Cheeto-Faced Ferret’s 70th birthday.

Over the years since I did this, I have taken pains to make this plugin more and more configurable. Most of the insults are loaded from a configuration file you can edit, and a bunch of options are available in the drop-down plugin options. If you want to see the (very simple) code, check it out here on Github. I’ll take pull requests. [Edit 7/6: have now done this and the link above points to the new version. Original version still available here.]

I have added new insults as I’ve come across them (feel free to provide more). Considering that I started this project in summer 2016 and it is now fall 2019, it’s amazing that I still come across new good ones. But I guess we can thank Mango Mussolini for that.

Enjoy!

PS — A few people have noted that the plugin doesn’t run on this or that website. Note that by default it does not run on all websites. In the configuration menu you will see that you can set it to “blacklist” mode or “whitelist” mode, and then specify a list of sites to exclude, or include, respectively. The default is a whitelist of major news sites.

Interchangeability

I think one of the rites of your mid-40s is assessing what you have accomplished relative to what your young self thought you were going to accomplish — and feeling blue about it.

I’ve been thinking a lot lately about my interchangeability. That is, the notion that in the vast majority of my own endeavors in life, I have been basically an interchangeable part in a larger system. This is in spite of being a pretty clever engineer, pretty good policy analyst, or even Really Smart Guy. I can’t really point to any professional situation where someone else, similarly trained and skilled, would not have performed the job more or less as I did. Or perhaps it’s just the nature of employment in our world that even if my particular combination of traits is uncommon, most jobs only require only a couple of them.

I’m not saying that we are not each unique, special snowflakes, but that in the vast majority of situations, that uniqueness just isn’t operational. Which is kind of a rough realization. It’s probably best for young folks to avoid realizing this as long as they can.

Of course, there are aspects of life in which even the least accomplished of us is not interchangeable. Obviously, the personal aspects come to mind. My spouse and kids would probably be nonplussed to wake up one day to find me replaced with someone who was “a lot like me.” Though maybe in a week, year, or decade they’d mostly get over it.

Some people transcend interchangeability. Artists and musicians create unique things that nobody else could possible have created. Sometimes scientists discover things that would otherwise have gone undiscovered for a long time. These are things whose profound singularness are easily recognizable, whether or not you know the creator herself. That’s pretty amazing if you think about it. Can anyone do this or is it just for rare talents?

Maybe, part of the secret to a happy second half of life is the acceptance of interchangeability. So what if I’m not leaving a unique mark on the world? Maybe it’s lifts a huge burden to accept that it’s more than enough that your family and friends love you (I have received reliable assurances that mine do) and that has nothing to do with your worldly accomplishments. Or, is that prematurely throwing in the towel on the world?

Or, maybe interchangeability — an assessment of value of self as perceived by the outside world —  is a wholly inappropriate way to consider one’s own life. An alternative approach might be to totally disregard what the world “thinks” and just “be” whatever works for me. The world probably isn’t even real, anyway? Because of my non-liberal arts background, I wasn’t exposed to much philosophy in my education, but in high school I had a teacher who was really big into the existentialists. Didn’t really resonate for me then, but it’s starting to much more these days.

 

Simulate this, my dark overloards!

Apparently, both Elon Musk and Neil deGrasse Tyson believe that we are probably living in a more advanced civilization’s computer simulation.

Now, I’m no philosopher, so I can’t weigh in on whether I really exist, but it does occur to me that if this is a computer simulation, it sucks. First, we have cruelty, famine, war, natural disasters, disease. On top of that, we do not have flying cars, or flying people, or teleportation for that matter.

Seriously, whoever is running this advanced civilization simulation must be into some really dark shit.

Mental Models

I think we all make mental models constantly — simplifications of the world that help us understand it. And for services on the Internet, our mental models are probably very close — logically, if not in implementation — to the reality of what those services do. If not, how could we use them?

I also like to imagine how the service works, too. I don’t know why I do this, but it makes me feel better about the universe. For a lot of things, to a first approximation, the what and how are sufficiently close that they are essentially the same model. And sometimes a model of how it works eludes me entirely.

for example, my model of email is that an email address is the combination of a username and a system name. My mail server looks up the destination mail server, and IP routes my blob of text to the destination mail server, where that server routes it to the appropriate user’s “mailbox,” which is a file. Which is indeed how it works, more or less, with lots of elision of what I’m sure are important details.

I’ve also begun sorting my mental models of Internet companies and services into a taxonomy that have subjective meaning for me, based on how meritorious and/or interesting they are. Here’s a rough draft:

The What The How Example Dave’s judgment
obvious as in real life email Very glad these exist, but nobody deserves a special pat on the back for them. I’ll add most matchmaking services, too.
obvious non-obvious, but simple and/or elegant Google Search (PageRank) High regard. Basically, this sort of thing has been the backbone of Internet value to-date
not obvious / inscrutable nobody cares Google Buzz lack of popularity kills these. Not much to talk about
obvious obvious Facebook Society rewards these but technically, they are super-boring to me
obvious non-obvious and complex natural language, machine translation, face recognition Potentially very exciting, but not really very pervasive or economically important just yet. Potentially creepy and may represent the end of humanity’s reign on earth.

 

Google search is famously straightforward. You’re searching for some “thing,” and Google is combing a large index for that “thing.” Back in the Altavista era, that “thing” was just keywords on a page. Google’s first innovation was to use the site’s own popularity (as measured by who links to it and the rankings of those links.) to help sort the results. I wonder how many people had a some kind of mental model of how Google worked that was different than that of Altavista — aside from the simple fact that it worked much “better.” The thing about Google’s “Pagerank” was that it was quite simple, and quite brilliant, because, honestly, none of the rest of us thought of it. So kudos to them.

There have been some Internet services I’ve tried over the years that I could not quite understand. I’m not talking about how they work under the hood, but how they appear to work from my perspective. Remember Google “Buzz?” I never quite understood what that was supposed to be doing.

Facebook, in its essence is pretty simple, too, and I think we all formed something of a working mental model for what we think it does. Here’s mine, written up as SQL code. First, the system is composed of a few tables:

A table of users, a table representing friendships, and a table of posts. The tables are populated by straightforward UI actions like “add friend” or “write post.”

Generating a user’s wall when they log in is as simple as:

You could build an FB clone with that code alone. It is eye-rollingly boring and unclever.

Such an implementation would die when you got past a few thousand users or posts, but with a little work and modern databases that automatically shard and replicate, etc, you could probably handle a lot more. Helping FB is the fact they makes no promises about correctness: a post you make may or may not ever appear on your friend’s wall, etc.

I think the ridiculous simplicity of this is why I have never taken Facebook very seriously. Obviously it’s a gajillion dollar idea, but technically, there’s nothing remotely creative or interesting there. Getting it all to work for a billion users making a billion posts a day is, I’m sure, a huge technical challenge, but not requiring inspiration. (As an aside, today’s FB wall is not so simple. It uses some algorithm to rank and highlight posts. What’s the algorithm and why and when will my friends see my post? Who the hell knows?! Does this bother anybody else but me?)

The last category is things that are reasonably obviously useful to lots of people, but how they work is pretty opaque, even if you think about it for awhile. That is, things that we can form a mental model of what it is, but mere mortals do not understand how it works. Machine translation falls into that category, and maybe all the new machine learning and future AI apps do, too.

It’s perhaps “the” space to watch, but if you ask me the obvious what / simple how isn’t nearly exhausted yet — as long as you can come up with an interesting “why,” that is.