Everything In Between

The brutally honest, first-person account of Meitar Moscovitz's life.

Archive for the ‘Crosspost’ Category

Stop wasting energy fighting Internet ID: If you don’t trust the government, fight bills like SOPA & PIPA instead!

leave a comment

This evening over dinner after Poly-NYC‘s “Politics and Passion” meeting, I found myself in an unexpected debate over Internet ID, part of the US government’s plan to centralize Internet identity mechanisms. Although this is actually old news—over a year old at this point!—fears about it seem to be cropping up again this week on places like Reddit, and my Google searches return this 6-day old FauxNews article that links to a 12-month old CNET article cross-posted at CBSNews. (And, as an aside: WTF, Fox‽ You really are a piece of shit “news” network, aren’t you?)

Maybe what gave some people a new injection of Internet ID-induced fear was the fact that the truly horrid SOPA and PIPA Internet censorship laws were in the news this week thanks to the #SOPAStrike Internet blackout (which I enjoyed participating in). Or maybe it was because the latest versions of the Internet ID specifications are nearing their release date, so everyone’s a little on edge.

Whatever it was, though, I think that fear is misplaced. Most of this fear seems to stem from a real misunderstanding of the way Internet identities (not just Internet ID itself) work. Like so many things involving computer network security, something like Internet ID can sound scary when you’re not up on the nitty gritty details—that’s nothing to be ashamed of. Knowledge is power, and lack of knowledge breeds fear.

But Internet ID, or more formally known as National Strategy for Trusted Identities in Cyberspace (NSTIC) is actually not something to be fearful of. In fact, it could be a really good step forward, one that many Internet security, privacy, and free speech experts seem pretty excited about. And, what’s more, they have been for quite some time.

For example, Kaliya Hamlin is founder of the Internet Identity Workshop and an Internet identity expert who’s formally weighed in on NSTIC. She’s also a personal friend and someone I greatly trust to handle these matters with a lot of care, specifically to people who express an alternative sexuality. She’s done so time and again.

But don’t take my word for it! Listen to her thoughtful inclusion of how Facebook’s privacy-degrading actions late in 2009 would affect closeted users on Kink On Tap Episode 21: Welcome to the Privacy Wars. Her fantastic year-old piece, National! Identity! Cyberspace! Why We Shouldn’t Freak Out About NSTIC is still highly relevant today:

Our main conference Internet Identity Workshop held every 6 months since the fall of 2005 has for a logo the identity dog: an allusion to the famous New Yorker cartoon On the Internet, nobody knows you are a dog. To me, this symbolizes the two big threads of our work: 1) maintaining the freedom to be who you want to be on the Internet AND 2) having the freedom and ability to share verified information about yourself when you do want to. I believe the intentions of NSTIC align with both of these[…].

As another high-profile example, computer and Internet security expert Steve Gibson also recorded a netcast that dealt directly with NSTIC and explained it in remarkably clear detail. He dissected the way it functions, why it’s useful, where it can be improved, and what the big fears about it were.

Gibson rightfully concluded the fear is largely due to ignorance of the technology and a general mistrust of the government, but that the technical specification as it exists today is so good as to actually prevent the majority of the fears being espoused by people like those I spoke with who have not actually taken the time to grok the specifics. Here’s an excerpt from the transcription of the netcast:

LEO: I know some people, the idea of government doing this makes them nervous. To me it actually seems sensible because you need a centralized third party to certify it.

STEVE: Yes.

LEO: And I know people, a lot of people who listen to this show, don’t trust our government. And we probably shouldn’t trust government. But who better? I mean, you want Microsoft to do this? They have been, by the way, with little success. So I think it needs to be that. And then I think this is a nice – you liken it to certificates, and I think that’s a good – the web certificate system, I think that’s a good analogy. I think it makes sense to have third parties that are certified and that kind of thing. I’m excited. We needed this. I’ve been signing my email for years, to no avail. It’s all been the Web of Trust technique.

STEVE: Yes. And this document establishes the right principles. I mean, and I’ve read the whole thing. Everything about it, as I’m reading – and I’m skeptical of Big Brother, too. I don’t know how we’re going to do it. I mean, as a coder and technologist I think about all of the hurdles and the pitfalls and the challenges we face. But it’s clear that we need that. We need this in order to move forward and to really leverage cyberspace to the full extent possible, I mean, we have the technology.

LEO: Yes, yes. Identity is critical. We’ve learned that lesson. And anonymity, while you – I think this is nicely done because you can have anonymity.

STEVE: Yes.

LEO: But there’s also a way to certify you are who you say you are. And I think you need both. So I think this is good. This sounds – I’m excited.

STEVE: Yeah, me, too.

The nice thing about technology such as that being built by NSTIC is that, unlike the need to rely on flimsy promises of the government’s benevolence, we can actually audit the specifications and open-source implementations of these technologies ourselves. And many people do. Steve Gibson did, and I trust him.

None of this is to say there are not valid concerns—there are. For one, Trusted Identity Providers are still going to be privy to most everything you do with one of your Internet ID identities, but I don’t see how that’s any worse than what we have today: your ISP, your DNS provider, and countless third-party advertising companies can and are tracking everywhere you go on the Web today. NSTIC, on the other hand, could give users like you and me both the technical and legal ability to have more fine-grained control over what such third parties see about us as we use the Web.

Technology that puts users back in charge of their identity? Now that’s an Internet law I can be proud of.

So, as I said in the discussion over dinner earlier tonight, rather than spend our time wringing our hands over this Internet ID stuff, we’ll all be far better off saving our energy to fight foolhardy initiatives like SOPA, PIPA, and other forms of political, social, and technical censorship.

Internet ID/NSTIC is not an enemy. It is going to be an important and useful tool for users like you and me.

Written by Meitar

January 19th, 2012 at 12:44 am

On Being a Social Cyborg: How iCalendar Helps Me Fight Loneliness

one comment

Here’s a topic I’ve been meaning to write about ever since I was deeply depressed last Fall and Winter. Back then, I was incredibly lonely, and despite my best efforts I simply found it damn near impossible to do anything to improve my situation. That’s because my “best efforts” consistently lead me to dead-end resources that sounded good but that had no practical or immediately useful information; resources like WikiHow.com’s “How to Deal With Loneliness” article.

In their article, WikiHow contributors write:

Get involved in anything where you will meet people. If you are very shy, find a group for social anxiety, even if it has to be online (obviously it’s better if it’s not). Look on places like Craig’s List, or local news websites for your town for activities in your area. Volunteering can help. But don’t attend functions with the idea of making friends or meeting people. Being too demanding is a sign of loneliness. Try to go with no expectations whatsoever, and to enjoy yourself regardless of what happens. Look for activities that interest you, that also involve groups of people, like intramural sports, book clubs, church groups, political campaigns, concerts, art exhibitions, etc.

While it all “makes sense,” the WikiHow article reads like an elaborate horoscope. It’s incredibly annoying because it contains no meaningful, discrete, actionable items. Where, exactly, can I find “activities in my area”? And once I find them, how do I make sure I know about them when they are happening? And as if that wasn’t hard enough, how do I make the process workable under the extreme energy constraints that being depressed and lonely put me under? (See also: without using up too many “spoons”.)

Ironically, when I finally concocted a solution to this problem, I no longer had the time to write the blog post about solving the problem because I was so busy doing things and being social. I proceeded to pull myself out of my depression, have a pretty good (if still difficult at times) Spring and Summer, and even Fall in 2011. But now that the days are getting shorter and I’m increasingly feeling like my moods are walking on a tightrope of “happy” above a pit of bleakness, I figure it’s about time to document my process. That, and it seems people I know are running into the same problem, so hopefully sharing my own solution can really make a positive impact on others’ lives.

Creating a Cyborg’s Social Calendar

The basic problem was two-fold. First, I needed an easy way to discover local goings-on. Second, I needed a way to remember to actually attend events that I was interested in.

It turns out this is far more difficult to accomplish than one may at first believe since the set of events that I both want to attend and have the capability (energy, time, money, motivation, physical accessibility, etc.) to attend are actually relatively limited. Moreover, I also need to align the set of events that match both of those criteria with the knowledge that said event is occurring when it is occurring. It’s a bit like playing temporal Tetris.

In a nutshell, the solution I implemented was similarly two-fold. First, I cast an incredibly wide but low-cost sensor net, integrated directly into the process I already used for keeping track of my daily appointments. (See also the “no extra time” concept and its wide applicability). Second, I classified the “activities in my area” into two distinct groups: “engagements” (stuff I’ve said “yes” or “maybe” to) and “opportunities” (stuff I haven’t yet said “no” to).

Here’s what my calendar looks like after all the pieces of the system are in place:

As you can see, I have an enormous selection of activities I could participate in at any given time. Better yet, they all show up on my calendar without my ever needing to repeatedly go “look[ing] on places like Craig’s List” to find them, the events on my calendar update themselves, and I can show or hide sets of events on a whim.

The prerequisite tool for doing this is the iCalendar feed, which, in the words of Stanford University, is a popular calendar data exchange format which allows you to subscribe to a calendar and receive updates as calendar data changes. Each of those calendars under the “Subscriptions” heading in the screenshot of my iCal is actually an iCalendar feed from a remote website. iCalendar feeds are to calendars as RSS feeds are to blogs.

The first thing I did was add the event subscription feed from my Facebook. Do this:

  1. Log into your Facebook account and go to the “Events” page.
  2. Scroll to the very bottom of the page and click on the small “Export” link. This will reveal a personalized web address (URL) listing all upcoming Facebook events you’ve been invited to or have RSVP‘ed either “Yes” or “Maybe” to, in iCalendar feed (.ics) format. Copy that URL.
  3. Back in iCal (or your calendaring application of choice), choose “Subscribe…” from the menu and paste in the URL you got from Facebook.
  4. Give this calendar subscription a meaningful name. I called it “Facebook Events” (see above screenshot).
  5. Set the “Refresh” interval to something that makes sense; I set it to once “every 15 minutes,” since the Facebook feed is one I check often because it changes so frequently. (For feeds from calendars that I check or that update less often, such as those of community groups, or calendars listing events that are far from home, I set the refresh rate much, much slower, such as once “every week.”)

Okay! Now, whenever a friend invites you to an event on Facebook, your calendar will be updated to reflect that event at the appropriate date and time. If you RSVP “No” to the event, it will disappear from your calendar when iCal next checks your Facebook iCalendar feed.

Repeat the same steps for any other event-management website that you use and that offers iCalendar feeds. Some services I use, such as Plancast.com and Meetup.com, actually offer two distinct iCalendar feeds, one for all of the events visible to you on the service, and one for events that you have RSVP‘ed “Yes” to. Subscribe to both; in the screenshot of my iCal window, above, you’ll note the existence of a “‘meitar’ on Plancast” calendar as well as a “Plancast Subscriptions” calendar, and similarly a “My ‘Yes/Maybe’ Meetups” calendar as well as a “My Meetups” calendar.

Now that you’ve got a bunch of subscriptions, it behooves you to organize them in a way that makes sense to you. How you can do this will depend a little bit on the tools you have at your disposal. I found Apple iCal the best choice because of its Calendar Group feature, while I found Google Calendar an incredibly frustrating tool to use.

In iCal, I first created two calendar groups. The first one was called “Social Engagements,” into which I placed all the iCalendar feeds that showed me events to which I’ve RSVP‘ed “Yes” to on the remote site. This included the Facebook, “‘meitar’ on Plancast”, and “My ‘Yes/Maybe’ Meetups” feed. The second group was called “Social Opportunities,” into which I placed all the other calendars.

Every time I learned about a new local venue, such as a nightclub, or a café, or a bookstore that had an open mic, I would scour its website to see if it offered an iCalendar feed. If it did, or if it used a tool that did, such as embedding a Google Calendar on their website,1 I’d add their feed to my “Social Opportunities” calendar group, too. I’d do the same every time I learned of a new event aggregating website, such as the IndyBay.org calendar or the Calagator Portland Tech Community calendar, which both offer feeds.

In very short order, I became one of the go-to people to ask about what was happening ’round town—including some towns I didn’t even live in!

However, as I travelled across the country speaking at conferences, I realized that my “Social Opportunities” group was getting cluttered with events that I could not actually attend because I was literally thousands of miles away from them. To solve that problem, I created distinct “Social Opportunities” calendar groups based on geographic region, and moved the individual subscriptions to the group with which they were geographically associated; the Occupy DC calendar feed is in the “Social Opportunities – DC” calendar group, and so on. I also created an “A-geographic” group to house feeds that listed events from all over the place.2

Some event-management services let you filter by geography, making this even easier. For instance, Yahoo!’s “Upcoming” event listing website shows you events by “place,” and you can subscribe to an iCalendar feed of just those events. For instance, here are the Upcoming events in Seattle, and here is the same information in iCalendar feed format. I added the feed of each Upcoming Place to which I regularly travel to its appropriate regional calendar group.

The benefits of this set up are obvious:

  • Visually overlay social opportunities on top of social engagements to ensure few conflicts, and help make the most informed choice about which events I want to go to when there are conflicts, to mitigate my social opportunity cost.
  • Toggle calendars on/off to find nearby activities. Ordinarily, I simply leave all the “opportunities” calendars deselected, so I’m just looking at my personal calendars and the “Engagements” group, since this view shows me “stuff I have to do today.” When I’m bored or I’m looking for new things to do in the upcoming week, however, I simply turn on the “opportunities” calendars. Voila! In 1 click, I’m browsing a wealth of stuff to do!3
  • Quickly orient oneself within the social space of a new city. If I’m taking a trip to Washington DC for a few days, all I have to do is deselect/uncheck the “Social Opportunities – SF/Bay Area” calendar group to hide all of my calendar subscriptions in that group, then select/check the “Social Opportunities – DC” calendar group and, voila, my calendar view has instantly shifted to showing me events that I can attend in Washington, DC.
  • Make RSVP‘s meaningful: if I RSVP “Yes” to an event on Meetup, the event is automatically removed from my “Social Opportunities – A-geographic” calendar group and added to my “Social Engagements” calendar group.
  • Easily move event information from a calendar feed to a personal calendar using copy-and-paste without ever leaving the calendaring tool of your choice.

Of course, none of this matters with regards to feeling lonely if I don’t also show up at events in physical space. Admittedly, actually mustering the physical and social energy to get up and go is by far the hardest part of this whole process. Typing on a keyboard is all fine and well (rest assured I do more than enough of it!), but there is no substitute for actually being around other human beings face-to-face. Physically vibrating the air using one’s mouth and having those vibrations move another’s ear drum (or physically moving one’s hands and letting the photons bounce off those movements and onto the retina of another’s eyes, in the case of sign language) is a vital part of the experience of being social.

This system isn’t perfect, but the imperfections are mostly due to the way sites like Facebook handle RSVP information. For my purposes, though, this workflow gets me well over 80% of the way towards my goal, and since I’m actually a human (not a machine), I can deal with a little data pollution here and there. There’s also plenty more I could write about with regards to “being a social cyborg,” such as how I use my calendar in conjunction with my contact management application (my digital rolodex) to maintain “loose” or “weak” interpersonal ties with over 1,000 people spread across the world—again, using “no extra time.” But I’ll save that for another post.

For now, hopefully this gave you a better understanding why my most frequent response to being informed of a party is something along the lines of, “Can you send me a link (to Facebook/Meetup/Google Calendar)?” and also why I’m so, so, so critical of important websites like FetLife that seem to prioritize everything but user security and interoperability.

  1. Every public Google Calendar also publishes its information in an iCalendar feed. For example, rather than view the Occupy SF calendar on their website, just subscribe to the iCalendar feed provided by Google. Also, while you can create an aggregate view of multiple Google Calendars to embed on a Web page, it seems to me like this isn’t a feature offered for iCalendar feeds, so if you come across such a calendar, you’ll likely need to add the individual calendars’ feeds one by one. []
  2. Currently that’s just Meetup and Plancast, for me, since I’ve joined Meetup groups all over the country and I’ve subscribed to people on Plancast who live in dozens of cities. []
  3. Frustratingly, although Facebook also offers you a page listing events that you were not invited to but that your friends were, there seems to be no iCalendar feed of that list, forcing me to periodically check that page for events that would be “Social Opportunities” if I knew of them. Thankfully, to add them to my own calendar, I just RSVP “Yes” or (more likely) “Maybe.” []

Written by Meitar

November 5th, 2011 at 11:04 pm

And so, she was beautiful to me

6 comments


She had blue skin.
And so did he.
He kept it hid
And so did she.
They searched for blue
Their whole life through,
Then passed right by –
And never knew.

Masks by Shel Silverstein

I remember the sunlight on 8th Avenue and 15th Street that morning vividly. New York City is beautiful in the morning, but only if the streets aren’t packed with throngs of hurried people. The sunlight streamed into the tangled mess of steel and concrete and glass, bouncing from one reflective surface to another until it finally lay flat on the ground, or on me.

Often, while alone—and only while alone—I’d walk facing the sky. In the Summer, if I woke early enough or stayed up late enough, I’d slow my typically brisk pace to relish the thick, warm air as I walked through it. In the Winter, when too many people woke before the sun, I’d wait for rush hour to end before venturing outside, because that’s when I could feel the sun drape its light on me the way I wanted to feel it.

It was one of those cold, late mornings in the Winter that I remember, except I wasn’t alone. On this particular morning, I was walking with my father and we were talking about school. I’d recently started attending another school after dropping out of the one I had just been in, and, again, I hated it.

But there was a girl, and her name was Bre, and one day she told me in visibly unconcerned confidence that she, like me, was diagnosed with bipolar disorder. And so, she was beautiful to me, and I got a crush on her. And on this particular morning, playing hooky for a while with an understanding father, I was explaining all this to him as matter-of-factly as I could, lest I seem too smitten.

As my father is wont to do when he correctly sensed I had shared something that made me feel uneasy, he paused momentarily, looked at me concertedly, and then began to tell me an allegorical tale. This time, he told me of a short story he had once read. It went something like this.

On a day very much like that sunlit day, a man and a woman met at a sidewalk café. They quickly struck up a conversation and, soon thereafter, found themselves spending a good deal of time with one another. As their friendship flourished and their fondness for one another deepened, however, they each became more afraid of revealing their romantic feelings to the other.

The story, my father told me, was written from both of their perspectives. The narrative voice switched from one to the other, so that the reader became a sort of voyeur able to peer into each of the protagonists’ minds. Although the details of his fears were different from hers, the outcome was the same: neither told the other the extent of their true feelings.

Ultimately, it was a very sad story. It ended on a note of mutual resignation rather than happy romance. But the moral is clear, and so was my father’s message.

I remember this story whenever I shy away from revealing something about myself for fear of rejection, ridicule, or even shame. Like the characters in the story, I don’t always muster the courage to lay myself bare. In fact, I never told Bre about my crush on her and before long my opportunity had gone, as she transferred to another school. However, the memory serves to make me that much braver in moments like these.

There are numerous things I’m struggling to work up the courage to offer for public view. I am afraid of being ridiculed and mocked. I am afraid of being ignored; that things important to me are not important to anyone else; of being unimportant, myself. Most of all, though, and contrary to some of my bravado, I am afraid of being disliked.

But I also know I am often ridiculed and mocked precisely because I show courage when others do not. I know I am often ignored precisely because the things important to me are too threatening for others to acknowledge. And I know I am often disliked precisely because of my conviction’s integrity.

Often, all of that makes me conspicuous, and so I’m sometimes thought to be “inspiring” when framed positively or “intimidating” when framed more negatively. I think enfant terribles are important, and I’ve rarely felt happier than when I receive (now weekly, if often private) thanks for sharing myself publicly. But at the same time, I really do not want to be any of those things. I want, instead, to be plain and largely forgotten.

I want to be in love and feel close with people. And I’m afraid the more “inspiring” or “intimidating” I become, the more I’ll stand out as someone hard to feel close to.

I remember when someone who was in love with me sang along to Billy Joel as we crossed the Golden Gate bridge. And I remember when another who was in love with me put her arm around me as I gently shook flowers off the tree we climbed on Atwell’s Avenue. And I remember both of the days when each of them stopped feeling safe enough to be in love with me, days I revealed the extent of my true feelings.

So I think that, these days, I share so much of myself with strangers so publicly because what I really want is to share myself with someone who loves me. And I just hope you’re reading.

Written by Meitar

June 20th, 2011 at 10:35 pm

Internet censorship *FACEPALM* moment of the day

leave a comment

A friend linked me to “US National Science Foundation blocks Global Voices Advocacy website” by Ethan Zuckerman. In this post, Ethan discusses how the National Science Foundation (NSF), which (for those unfamiliar with the Internet’s history) in 1986 funded NSFNet as a cross country 56 Kbps backbone for academic purposes, essentially the first significant University computer internetwork, and thus the first Internet, blocked a website he and a number of other Internet freedom advocates write for:

[O]ne of the main functions of Global Voices Advocacy is to provide information to people in repressive nations so they can seek and publish information freely online.

After confirming from NSF officials that “the blockage is not in error,” Ethan states the almost too-obvious-to-be-deemed-important note:

[T]he National Science Foundation is spending taxpayer money to (ineffectively) prevent scientists from learning about a debate about “internet freedom” tools the US State Department and the Broadcasting Board of Governors are spending taxpayer money to support and promote, again using taxpayer money.

Is there a Federal irony department where I can lodge a complaint?

Thus: *FACEPALM.*

As if that wasn’t ludicrous enough, check out this explanation by JeffAlex in the comments:

This is an instance of unintended consequences rather than malevolent intent. The fact is, a few senior NSF employees got dinged a couple of years ago for viewing porn on their work computers. A Republican Senator took this up as an excuse to argue for budget cuts at NSF, the NSF got spooked, and NSF IT got the word that they should lock down the entire agency’s network. Obviously, there’s no point in trying to lock down a network unless you also try to lock down any access to sites that can tell you how to circumvent the lockdown. So, this is less about Internet or academic freedom than it is about simple inside-the-Beltway politics.

(Emphasis mine.) Others seem to agree. My own correspondence with government employees in other agencies also supports the explanation.

Yet again, porn is the scapegoat for political agendas. And not just the excuse, but the explicit rationale. A stupid one, to be sure, but unabashedly made, and—worse—unapologetically ceded.

Ethan’s snark is well deserved:

I’m pretty surprised to learn that the scientists at NSF are working in a filtered internet environment, and that the filtering is so aggressive that discussion of internet filtering and circumvention can’t be discussed. One wonders whether the State Department might consider offering some trainings for the National Science Foundation so that employees there can learn side by side with Chinese dissidents how to overcome filtering and learn about State Department sponsored research on internet filtering. Maybe we can sneak into the building with Tor on USB keys and clandestinely smuggle them to oppressed US scientists.

Well done, American bureaucrats. You self-defeating fucking morons.

Written by Meitar

April 27th, 2011 at 9:34 pm

The food you eat has become a weapon of class antagonism

2 comments

Revolutions and the price of bread: 1848 and now (via @KemoKid):

In the graph above the little blue crosses indicate the price of wheat in certain countries that have experienced social unrest this year. The further to the top right the cross is, the higher the medium and short term price hike the country has suffered: for wheat and therefore for bread.

Saudi and Algeria are stable, Occupied Palestine, Jordan and Egypt are on the high end of the price spike; Tunisia, Yemen, Morocco and Lebanon significantly high. There is, therefore, a rough – but only – rough correlation between bread prices and revolutions. So far.

To put the above into perspective, take a look at the USDA’s estimates of food prices from countries around the world:

See how Pakistan is all the way over to the right with 45.5% of the average household spending going to food and America is all the way to the left, where only 6.9% of average household earnings are spent on food? That doesn’t seem fair. Quoting the Nielsen article:

[A]t a time when many countries around the world are facing double-digit inflation on basic food items, can the U.S. be far behind?

The simple answer is no.

At first glance, it looks like America is doing well keeping its food prices low—and thus its populace safely dissuaded from revolution. But peel away the curtain and the story is far more sinister. The question becomes, “How the hell can America afford to keep food prices so low when the average American farm size has actually decreased from 431 acres in 1997 to 418 acres in 2007?”

We have less farmland and yet more food today than we ever did before. And although many people, myself included, ignorantly believed that this was actually proof of “science’s achievements,” that simplistic analysis is wholly quantitative. What of our food’s quality?

According to sources compiled in 2010, the average american eats 1,996.3 lbs. of food per year. Unsurprisingly, most of it is mostly garbage. While charts like the one below may look nice, they don’t seem to account for how much the commodity, subsidized foods like corn are inside other foods and even in the diets of food-producing animals, such as (amazingly) COWS!

american-average-food-consumption

The answer to my question, I’m sadly beginning to realize, is that America keeps food prices low using government subsidies—corn subsidies, totaling $75 billion from 1995 to 2009, are the biggest there are, and by a long shot, as wheat subsidies come in a distant second totaling a mere $31.8 billion in the same timeframe—and immigrant labor trafficking. The best documentation I’ve seen of these issues is in the movie Food, Inc., which, to borrow the words of one review:

…is the definitive statement on how America produces crappy food to the detriment of the people who eat it, the animals who are treated cruelly in farms and slaughterhouses, and the largely immigrant workforce that labors in unsafe and low wage conditions. The only benefactors it would appear are the men who run Monsanto, Purdue, Smithfield and a small group of other huge multinationals that only see food as the ultimate commodity. When they look at a tomato, they don’t see something to eat but something to turn into a dollar no matter the consequences to society.

These are the other pieces in the same puzzle that Stephen Colbert highlighted when he testified on immigration reform to Congress. And thanks in part to America’s overwhelming—and overwhelmingly corrupt—military and economic dominance, such “consequences to society” are not confined to American soil. They are actively, intentionally exported to other countries, and all the problems that America’s food lobby foists onto Americans are also being foisted on the rest of the planet.

In 2002, Andrew Cassel discussed Why U.S. Farm Subsidies Are Bad for the World:

The farm bill, which the House of Representatives has approved and which the Senate could vote on this week, calls for taxpayers to fork over some $180 billion to farmers during the next decade. That’s a 70 percent hike above the cost of current farm-subsidy programs, most of which represent direct payments to wealthy farmers and agribusinesses.

Those subsidies make it possible to export millions of tons of food so cheaply that native farmers in places such as Jamaica can’t possibly compete.

By guaranteeing U.S. farmers a minimum payment for commodities such as corn, rice and soybeans, the government encourages overproduction. That drives down the market price, forcing even higher subsidies and creating surpluses that can be shipped to Jamaica and elsewhere.

As far as I can tell, little has changed since 2002. In fact, things have gotten worse. Since then, the Bush administration’s illegal wars in the Middle East have further destabilized the region and, in turn, caused oil prices to rise. And since so much of the food industry is mechanized, it needs oil to function. And that? Yup. You guessed it. Back to the Nielsen article:

With continued unrest in the Middle East and northern Africa and the resulting impact on global oil prices, we will likely see increased inflationary pressures from rising fuel prices have a similar impact on U.S. consumers as experienced in 2008 (i.e., shopping trip compression, more at-home consumption, value buying and increased coupon usage).

In short, it is a food pyramid, except the pyramid isn’t food groups, it’s classes of people, and the food isn’t really food anymore, it’s a weapon of class antagonism.

As the Obama administration continues Bush’s wars, and engages their own in Libya, oil prices continue to rise. This, in turn, raises costs for the food corporations, which, in turn, gives them reason to lobby the government for more food subsidies corporate welfare, which, in turn, help keep food unhealthy yet cheap, which, in turn, keep the American populace lethargic and compliant and fed, which, in turn, prevents us from revolting (at least in a mass democratic movement).

And if that weren’t bad enough, with food prices so low, and with America’s military literally blowing up acre after acre of the rest of the world so that they can’t produce their food natively even if they could compete economically, the large food corporations can supply the demand for food from other countries:

Global demand for U.S. food in developing countries is great for U.S. exports, but those gains may also lead to higher food prices for U.S. consumers.

So. Are you still proud of what your country has become, my fellow Americans?

Written by Meitar

April 27th, 2011 at 9:31 pm

Disagreeing with “How to Disagree”

leave a comment

This is cross-posted from my scratchpad, Maybe Days.

A visual representation of Paul Graham’s Hierarchy of Disagreement, also called the Argument Pyramid. Each layer in the pyramid can also be referred to as a numbered Disagreement Hierarchy level. For example, name-calling is sometimes referred to as DH1, while refutation is sometimes referred to as DH6.

In his words and from his essay, How to Disagree:

The web is turning writing into a conversation. Twenty years ago, writers wrote and readers read. The web lets readers respond, and increasingly they do—in comment threads, on forums, and in their own blog posts.

Many who respond to something disagree with it. That’s to be expected. Agreeing tends to motivate people less than disagreeing. And when you agree there’s less to say. You could expand on something the author said, but he has probably already explored the most interesting implications. When you disagree you’re entering territory he may not have explored.

The result is there’s a lot more disagreeing going on, especially measured by the word. That doesn’t mean people are getting angrier. The structural change in the way we communicate is enough to account for it. But though it’s not anger that’s driving the increase in disagreement, there’s a danger that the increase in disagreement will make people angrier. Particularly online, where it’s easy to say things you’d never say face to face.

If we’re all going to be disagreeing more, we should be careful to do it well. What does it mean to disagree well? Most readers can tell the difference between mere name-calling and a carefully reasoned refutation, but I think it would help to put names on the intermediate stages. So here’s an attempt at a disagreement hierarchy

See also: solving disputes.

Not to be confused with arguments that rest on the shoulders of other arguments, ala, an Argument Pyramid where an argument is an explanation, reasoning, rational, or story.

While I agree with the majority of Graham’s points, I do disagree with one of his main rationales (i.e., arguments). Graham says:

[W]hile DH levels don’t set a lower bound on the convincingness of a reply, they do set an upper bound. A DH6 response might be unconvincing, but a DH2 or lower response is always unconvincing.

If I’m reading Graham correctly, he’s saying that disagreeing by using ad-hominem and name-calling tactics are “always unconvincing.” However, then he says:

The most obvious advantage of classifying the forms of disagreement is that it will help people to evaluate what they read. In particular, it will help them to see through intellectually dishonest arguments. An eloquent speaker or writer can give the impression of vanquishing an opponent merely by using forceful words. In fact that is probably the defining quality of a demagogue.

I’m left wondering: If an eloquent speaker or writer does successfully “give the impression of vanquishing an opponent merely by using forceful words,” does this leave the opponent or, often more importantly, the unnamed third party in any dispute (the observer) convinced of their argument? Often, at least in my experience, the answer is yes. In fact, the widespread “successes” of demagogues are a testament that it’s not always necessary to be correct—that is, to be truthful or, in Graham’s words, intellectually honest—in one’s assertions to either realize a particular intent or to sway people’s minds, but rather one merely be right—that is, to be perceived as the winner of the dispute.

I both personally appreciate and sympathize with Graham’s clear and noble intent to bring more happiness to more people. I even agree that using higher DH levels will generally achieve more happiness during dispute resolution, but I remain unconvinced that higher DH levels are always more convincing (or, “useful,” or “effective”) than lower ones. This is not to discount the usefulness of understanding DH levels. After all, one must know the rule to break it well.

Perhaps the most useful example of situations where lower DH levels are, potentially, more useful is applicable to leadership. For example, David Logan speaks of 5 “tribal” stages of leadership. Stage 1 tribes are, in his words, “a group where people systematically sever relationships from functional tribes, and then pool together with people who think like they do.” People in a “stage 1 tribe” may be gang members, prison inmates, or anyone else who, effectively, believes that “life sucks.” Logan describes “tribes” from stage 1 all the way up through stage 5. A stage 3 tribe, he explains, “is the one that hits closest to home for many of us because it’s in stage 3 that many of us move. And we park. And we stay. Stage 3 says, ‘I’m great and you’re not.’”

Indeed, Logan’s not just talking about some nebulous notion of community, he’s talking about the way people move between communities, and, moreover, how they talk to each other when they do that—he’s talking about communication. Now, it should almost go without saying that convincing people of something is simply one part of communication, and if one is to communicate convincingly with others, one ought know how others communicate. Moreover, one ought identify these others explicitly: opponent(s), comrade(s), and observer(s).

How do each of these groups communicate? In what “tribal stages” are these three groups? In my experience, and in many disputes, one is attempting to convince one’s observers rather than one’s opponents, and the more observers there are—such as is afforded by the Internet’s development, as Graham states—the less likely it is that all of these observers are in the same tribal stage.

So Graham is correct when he says that “you find there is a lot more meanness down in DH1 than up in DH6.” But if we are willing to accept Logan’s conclusion that “leaders need to be able to talk at all the levels so that [one] can touch every person in society,” then Graham is incorrect when he asserts that “[y]ou don’t have to be mean when you have a real point to make. In fact, you don’t want to. If you have something real to say, being mean just gets in the way.”

I think, actually, it’s quite the contrary. Sometimes, being “mean” is the point. Moreover, depending on the context and, yes, perhaps counterintuitively, that’s not necessarily a bad thing. As Walt Whitman once famously said, “Do I contradict myself? Very well then: I contradict myself. (I am large, I contain multitudes.)”

For antagonism, dearest loves, is not in fact the inverse of intimacy.

Written by Meitar

April 20th, 2011 at 9:00 pm

How to spoof your MAC address on Mac OS X (for reals)

5 comments

One of the oddities of Apple’s Mac OS X platform is that some things that should be easy are obtusely difficult, and remarkably so. Changing the hostname of a Mac OS X Server is one good example. Another is changing the “Ethernet ID” (aka. MAC address, aka. link-level address) of a network interface card.

This should be really simple, as the correct command line is plain as day (where the string of colon-separated 00′s is your preferred MAC address):

sudo ifconfig en1 lladdr 00:00:00:00:00:00

There are numerous blog posts all over the ‘net that tell you this time and again, but each one seems to have comments from users complaining that it doesn’t work on their system. I ran into a similar problem not long ago when my MacBook Pro didn’t do what I expected. Just like others, whenever I tried to run the above command, nothing seemed to happen:

ifconfig | grep ether # Determine current MAC addresses
sudo ifconfig en1 lladdr 00:00:00:00:00:00 # Try changing MAC address for en1 (usually Airport)
ifconfig | grep ether # Confirm change; but uh-oh! Output is the same as before! Why?

Here’s how I fixed this problem.

The thing to know is that there seem to be a number of conditions that will prevent Mac OS X from successfully changing a NIC‘s MAC address. Some are obvious and some are not. As far as I can tell, these conditions are:

  • having the interface “down” (i.e., if you’ve recently run ifconfig en0 down or an equivalent),
  • being associated with (i.e., connected to) a Wi-Fi network with your Airport card,
  • having the System Preferences application running,
  • forgetting to “unstick” the current system configuration set.

It’s the last one that bit me. Mac OS X has a feature called “system configuration sets” or “locations,” as it’s termed in much of the GUI. These can be accessed via the Network pane in System Preferences, or via the scselect command from Terminal; it’s that scselect command which offers the key to changing a Mac’s MAC address.

On my MacBook Pro (which, for the record and if it matters, is running Mac OS X 10.6.7), I need to do all of the following before running ifconfig, as shown above:

  • If I’m changing my Airport card’s MAC address, I need to disassociate from any network. (This can most easily be done by invoking airport -z from Terminal. If you don’t have this command, see my tips on where to find airport.)
  • Quit System Preferences if it’s open.
  • Tell the operating system to “delay changing the system’s ‘location’ until the next system boot” by running: scselect -n.

According to the man page for scselect:

scselect provides access to the system configuration sets, commonly referred to as “locations”. When invoked with no arguments, scselect displays the names and associated identifiers for each defined “location” and indicates which is currently active. scselect also allows the user to select or change the active “location” by specifying its name or identifier. Changing the “location” causes an immediate system re-configuration, unless the -n option is supplied.

[…]

-n Delay changing the system’s “location” until the next system boot (or the next time that the system configuration preferences are changed).

Once I perform the above rigmarole, I can then change my MAC address without issue. But I have to be ludicrously careful. As soon as I open the Network System Preferences pane or otherwise do something to change the system configuration preferences, I have to run through that rigmarole again before changing my MAC address will work as expected.

Written by Meitar

March 29th, 2011 at 10:50 pm

I was mugged. Will you please help me out?

2 comments

Dear readers,

About an hour ago, while walking home from Noisebridge, I was mugged. Two men who seemed to be in their mid-twenties, one dark-skinned gentleman and one lighter-skinned, wearing black hoodies and jeans attacked me at the corner of Fillmore and Waller streets. The dark-skinned man looped his arm around my throat roughly and yanked me to the floor, catching my bag as I fell and pulling it above me.

“Give me everything you’ve got!” he yelled at me.

“Hold on! Hold on!” I said.

I was on the floor in an instant and trying to find the strap of my bag. I couldn’t, he pulled it above my head, and the two men bolted as fast as they could.

As I got up, I pulled out my phone from my pocket and dialed 9-1-1. A few minutes later a police car sped up to me, I waved at it, and the officer inside rolled down his window as he slowed. He asked me a few questions, including asking for a brief description and the direction the perps ran. I told him, he said he’d be right back, and he sped off.

A few minutes later he returned empty handed. I tweeted. I filed a police report.

Inside my beige one-strap bag was a 15” MacBook Pro laptop, (serial number W89410HRB22) one with a specially-ordered matte display. (I hate the glossy ones.) There was also the laptop charger, my Samsung mobile phone charger, and a bunch of other odds-and-ends, including two Rubik’s cubes. All told, it was pretty expensive: upwards of about $2,500. While I’m pretty sure the data on my laptop is (mostly) backed up safely, my pen-and-paper notebook, which I’ve carried with me for more than two years and is full of irreplaceable notes and memories, was also stolen. That’s hard copy, and can’t be backed up digitally. Damn.

I don’t have a budget for replacing this stuff. Some of it can’t be replaced. I’m taking the somewhat uncharacteristic step of asking you to donate whatever amount that you can to me through the donation button below to help me weather the budget crunch I’m going to have to deal with in the next couple of months as I replace my equipment. It’s particularly bad timing; I just bought airfare for the upcoming CSPH conference as well as a conference ticket for the Poly Leadership Summit in Seattle, which I have yet to purchase travel for.

HELP MAYMAY REPLACE STOLEN EQUIPMENT AFTER STREET MUGGING:


If you can’t offer me financial support, then please, please, please simply take the time to tweet about this blog post. Muggings rarely end with stolen goods returned to their owners, but the ones that do all have one thing in common: people are able to identify the goods quickly because word gets around. Here are some 140-character postings you can use to help me out. (Consider it a karmic investment.)

  • Help @maymaym recover from getting mugged on the street in #SF. His laptop and bag was stolen. Help him out: http://ur1.ca/1mqz0 Pls RT—thx!
  • Activist @maymaym’s laptop stolen in SF street mugging. Chip in to help replace it http://ur1.ca/1mqz0 and/or RT to get item description out
  • See 15″ MacBook Pro laptop w/matte screen selling in Bay Area in odd circumstances? Contact @maymaym. Was stolen: http://ur1.ca/1mqz0 Pls RT

Alternatively, of course, write your own tweet or cross-post this entry and include a link back to this blog post.

So, yeah, it’s kind of been a shitty month. Thanks for your help, in whatever form it may take.

This was originally published on my other blog.

Written by Meitar

September 15th, 2010 at 4:09 am

Settling in San Francisco

6 comments

I wrote this on July 27, 2009, a little over a year ago:

Not long ago I moved to San Francisco, California in order to make a fresh start for myself in a number of different ways. Creating a new home turns out to be a ton of work, especially since I had almost nothing except for a bunch of clothes and my computer with me. I had no housewares, and after spending a week literally putting blisters in my feet trying to find an apartment in which to live, for the first few nights I ate delivery with plastic utensils out of tupperware.

Soon enough, though, and with the help of some inspirational friends (most notably Susan Mernit, Sarah Dopp, James Carp, Emms, and Gabrielle and Tara) things started to come together. I visited Ikea twice for some furniture, but a lot of the other things in my apartment from the futon I sleep on to the plates I eat off of came from friends. I even got a microwave as I started to make mental lists of the things I needed.

Then, without publishing those words, I stopped writing. A year passed. In that time, a lot happened. But San Francisco is no more home today than it was before I arrived. If anything, I feel more out of place than ever. More alone than ever.

I am struggling. No one who thinks they know me, who sees all the stuff I do, no one knows how hard each and every day is for me. No one.

Written by Meitar

August 25th, 2010 at 4:38 am

Quick and Dirty: Clone Custom Field, Template Linked Files on Movable Type

one comment

Movable Type is a pretty frustrating platform to work with because every so often (or, “way too often,” depending on who you ask) a function of the system simply doesn’t do what you’d expect it to do. Such is the case with the “Clone Blog” functionality. Although it dutifully copies most of a website from one “blog” object to another, a few things are missing.

Most notably, custom fields and templates’ linked files are not copied. This is a deal-breaker for any large installation that uses the built-in MT “Clone” feature.

To get around this limitation, I wrote a stupid, quick ‘n’ dirty PHP script to finish the cloning process, called finishclone.php. It takes only 1 argument: the “new ID” you are cloning to. If all goes well, you’ll see output like this:

[root@dev www]$ php finishclone.php 28
Cloning process complete.
[root@dev www]$ 

In this example, 28 is the newly created blog’s ID. The blog you want to clone from is set as a constant within the script. I’ll leave modifying the script to support more flexible command line arguments as an exercise for the reader.

<?php
/**
 * Ease the final steps in cloning a Movable Type blog.
 *
 * Description:   This script should be run after Movable Type's "Clone Blog"
 *                function has completed and before the cloned blog is used.
 *
 * Author:        "Meitar Moscovitz" <meitar@maymay.net>
 */

// Set constants.
define('MT_ORIG_BLOG', 0); // the ID of the blog you are cloning from
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'movabletype');
define('MYSQL_PASS', 'PASSWORD_HERE');
define('MYSQL_DB', 'movabletype');

// Get command line arguments.
if (2 > $_SERVER['argc']) { die('Tell me the ID of the blog to clone into.'); }

$blog_id = (int) $argv[1];

// Connect to db
if ( !mysql_pconnect( MYSQL_HOST, MYSQL_USER, MYSQL_PASS ) ) {
	die( 'Connection to the database has failed: ' . mysql_error( ) );
}
mysql_select_db( MYSQL_DB );

// Clone custom fields.
$result = mysql_query('SELECT * FROM mt_field WHERE field_blog_id='.MT_ORIG_BLOG.';');
while ($row = mysql_fetch_object($result)) {
	mysql_query(
		sprintf("INSERT INTO mt_field ("
			."field_basename,"
			."field_blog_id,"
			."field_default,"
			."field_description,"
			."field_name,"
			."field_obj_type,"
			."field_options,"
			."field_required,"
			."field_tag,"
			."field_type) "
			."VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s');",
			mysql_real_escape_string($row->field_basename),
			mysql_real_escape_string($blog_id),
			mysql_real_escape_string($row->field_default),
			mysql_real_escape_string($row->field_description),
			mysql_real_escape_string($row->field_name),
			mysql_real_escape_string($row->field_obj_type),
			mysql_real_escape_string($row->field_options),
			mysql_real_escape_string($row->field_required),
			mysql_real_escape_string($row->field_tag),
			mysql_real_escape_string($row->field_type)
		)
	) OR print mysql_error() . "\n";
}

// Link template files to filesystem.
$arr = array();
$result = mysql_query('SELECT template_name,template_linked_file FROM mt_template WHERE template_blog_id='.MT_ORIG_BLOG.';');
while ($row = mysql_fetch_object($result)) {
	$arr[$row->template_name] = $row->template_linked_file;
}
foreach ($arr as $k => $v) {
	mysql_query("UPDATE mt_template SET template_linked_file='$v' WHERE template_blog_id=$blog_id AND template_name='$k';");
}

print "Cloning process complete.\n";

Written by Meitar

June 8th, 2010 at 8:19 pm

Posted in Crosspost,PHP,Programming

Tagged with