School of Information Blogs

March 01, 2015

Ph.D. student

‘Bad twitter’ : exit, voice, and social media

I made the mistake in the past couple of days of checking my Twitter feed. I did this because there are some cool people on Twitter and I want to have conversations with them.

Unfortunately it wasn’t long before I started to read things that made me upset.

I used to think that a benefit of Twitter was that it allowed for exposure to alternative points of view. Of course you should want to see the other side, right?

But then there’s this: if you do that for long enough, you start to see each “side” make the same mistakes over and over again. It’s no longer enlightening. It’s just watching a train wreck in slow motion on repeat.

Hirschman’s Exit, Voice, and Loyalty is relevant to this. Presumably, over time, those who want a higher level of conversation Exit social media (and its associated news institutions, such as Salon.com) to more private channels, causing a deterioration in the quality of public discourse. Because social media sites have very strong network effects, they are robust to any revenue loss due to quality-sensitive Exiters, leaving a kind of monopoly-tyranny that Hirschman describes vividly thus:

While of undoubted benefit in the case of the exploitative, profit-maximizing monopolist, the presence of competition could do more harm than good when the main concern is to counteract the monopolist’s tendency toward flaccidity and mediocrity. For, in that case, exit-competition could just fatally weaken voice along the lines of the preceding section, without creating a serious threat to the organization’s survival. This was so for the Nigerian Railway Corporation because of the ease with which it could dip into the public treasury in case of deficit. But there are many other cases where competition does not restrain monopoly as it is supposed to, but comforts and bolsters it by unburdening it of its more troublesome customers. As a result, one can define an important and too little noticed type of monopoly-tyranny: a limited type, an oppression of the weak by the incompetent and an exploitation of the poor by the lazy which is the more durable and stifling as it is both unambitious and escapable. The contrast is stark indeed with totalitarian, expansionist tyrannies or the profit-maximizing, accumulation-minded monopolies which may have captured a disproportionate share of our attention.

It’s interesting to compare a Hirschman-inspired view of the decline of Twitter as a function of exit and voice to a Frankfurt School analysis of it in terms of the culture industry. It’s also interesting to compare this with boyd’s 2009 paper on “White flight in networked publics?” in which she chooses to describe the decline of MySpace in terms of the troubled history of race and housing.*

In particular, there are passages of Hirschman in which he addresses neighborhoods of “declining quality” and the exit and voice dynamics around them. It is interesting to me that the narrative of racialized housing policy and white flight is so salient to me lately that I could not read these passages of Hirschman without raising an eyebrow at the fact that he didn’t mention race in his analysis. Was this color-blind racism? Or am I now so socialized by the media to see racism and sexism everywhere that I assumed there were racial connotations when in fact he was talking about a general mechanism. Perhaps the salience of the white flight narrative to me has made me tacitly racist by making me assume that the perceived decline in neighborhood quality is due to race!

The only way I could know for sure what was causing what would be to conduct a rigorous empirical analysis I don’t have time for. And I’m an academic whose job is to conduct rigorous empirical analyses! I’m forced to conclude that without a more thorough understanding of the facts, any judgment either way will be a waste of time. I’m just doing my best over here and when push comes to shove I’m a pretty nice guy, my friends say. Nevertheless, it’s this kind of lazy baggage-slinging that is the bread and butter of the mass journalist today. Reputations earned and lost on the basis of political tribalism! It’s almost enough to make somebody think that these standards matter, or are the basis of a reasonable public ethics of some kind that must be enforced lest society fall into barbarism!

I would stop here except that I am painfully aware that as much as I know it to be true that there is a portion of the population that has exited the morass of social media and put it to one side, I know that many people have not. In particular, a lot of very smart, accomplished friends of mine are still wrapped up in a lot of stupid shit on the interwebs! (Pardon my language!) This is partly due to the fact that networked publics now mediate academic discourse, and so a lot of aspiring academics now feel they have to be clued in to social media to advance their careers. Suddenly, everybody who is anybody is a content farmer! There’s a generation who are looking up to jerks like us! What the hell?!?!

This has a depressing consequence. Since politically divisive content is popular content, and there is pressure for intellectuals to produce popular content, this means that intellectuals have incentives to propagate politically divisive narratives instead of working towards reconciliation and the greater good. Or, alternatively, there is pressure to aim for the lowest common denominator as an audience.

At this point, I am forced to declare myself an elitist who is simply against provocation of any kind. It’s juvenile, is the problem. (Did I mention I just turned 30? I’m an adult now, swear to god.) I would keep this opinion to myself, but at that point I’m part of the problem by not exercising my Voice option. So here’s to blogging.

* I take a particular interest in danah boyd’s work because in addition to being one of the original Internet-celebrity-academics-talking-about-the-Internet and so aptly doubles as both the foundational researcher and just slightly implicated subject matter for this kind of rambling about social media and intellectualism (see below), she also shares an alma mater with me (Brown) and is the star graduate of my own department (UC Berkeley’s School of Information) and so serves as a kind of role model.

I feel the need to write this footnote because while I am in the scholarly habit of treating all academic writers I’ve never met abstractly as if they are bundles of text subject to detached critique, other people think that academics are real people(!), especially academics themselves. Suddenly the purely intellectual pursuit becomes personal. Multiple simultaneous context collapses create paradoxes on the level of pragmatics that would make certain kinds of communication impossible if they are not ignored. This can be awkward but I get a kind of perverse pleasure out of leaving analytic puzzles to whoever comes next.

I’m having a related but eerier intellectual encounter with an Internet luminary in some other work I’m doing. I’m writing software to analyze a mailing list used by many prominent activists and professionals. Among the emails are some written by the late Aaron Swartz. In the process of working on the software, I accepted a pull request from a Swiss programmer I had never met which has the Python package html2text as a dependency. Who wrote the html2text package? Aaron Swartz. Understand I never met the guy, am trying to map out how on-line communication mediates the emergent structure of the sociotechnical ecosystem of software and the Internet, and obviously am interested reflexively in how my own communication and software production fits into that larger graph. (Or multigraph? Or multihypergraph?) Power law distributions of connectivity on all dimensions make this particular situation not terribly surprising. But it’s just one of many strange loops.


by Sebastian Benthall at March 01, 2015 10:35 PM

February 23, 2015

Ph.D. student

Hirschman, Nigerian railroads, and poor open source user interfaces

Hirschman says he got the idea for Exit, Voice, and Loyalty when studying the failure of the Nigerian railroad system to improve quality despite the availability of trucking as a substitute for long-range shipping. Conventional wisdom among economists at the time was that the quality of a good would suffer when it was provisioned by a monopoly. But why would a business that faced healthy competition not undergo the management changes needed to improve quality?

Hirschman’s answer is that because the trucking option was so readily available as an alternative, there wasn’t a need for consumers to develop their capacity for voice. The railroads weren’t hearing the complaints about their service, they were just seeing a decline in use as their customers exited. Meanwhile, because it was a monopoly, loss in revenue wasn’t “of utmost gravity” to the railway managers either.

The upshot of this is that it’s only when customers are locked in that voice plays a critical role in the recuperation mechanism.

This is interesting for me because I’m interested in the role of lock-in in software development. In particular, one argument made in favor of open source software is that because it is not technology held by a single firm, users of the software are not locked-in. Their switching costs are reduced, making the market more liquid and, in theory favorable.

You can contrast this with proprietary enterprise software, where vendor lock-in is a principle part of the business model as this establishes the “installed base” and customer support armies are necessary for managing disgruntled customer voice. Or, in the case of social media such as Facebook, network effects create a kind of perceived consumer lock-in and consumer voice gets articulated by everybody from Twitter activists to journalists to high-profile academics.

As much as it pains me to admit it, this is one good explanation for why the user interfaces of a lot of open source software projects are so bad specifically if you combine this mechanism with the idea that user-centered design is important for user interfaces. Open source projects generally make it easy to complain about the software. If they know what they are doing at all, they make it clear how to engage the developers as a user. There is a kind of rumor out there that open source developers are unfriendly towards users and this is perhaps true when users are used to the kind of customer support that’s available on a product for which there is customer lock-in. It’s precisely this difference between exit culture and voice culture, driven by the fundamental economics of the industry, that creates this perception. Enterprise open source business models (I’m thinking about models like the Pentaho ‘beekeeper’) theoretically provide a corrective to this by being an intermediary between consumer voice and developer exit.

A testable hypothesis is whether and to what extent a software project’s responsiveness to tickets scales with the number of downstream dependent projects. In software development, technical architecture is a reasonable proxy for industrial organization. A widely used project has network effects that increasing switching costs for its downstream users. How do exit and voice work in this context?


by Sebastian Benthall at February 23, 2015 01:30 AM

February 21, 2015

Ph.D. student

The node.js fork — something new to think about

For Classics we are reading Albert Hirschman’s Exit, Voice, and Loyalty. Oddly, though normally I hear about ‘voice’ as an action from within an organization, the first few chapters of the book (including the introduction of the Voice concept itselt), are preoccupied with elaborations on the neoclassical market mechanism. Not what I expected.

I’m looking for interesting research use cases for BigBang, which is about analyzing the sociotechnical dynamics of collaboration. I’m building it to better understand open source software development communities, primarily. This is because I want to create a harmonious sociotechnical superintelligence to take over the world.

For a while I’ve been interested in Hadoop’s interesting case of being one software project with two companies working together to build it. This is reminiscent (for me) of when we started GeoExt at OpenGeo and Camp2Camp. The economics of shared capital are fascinating and there are interesting questions about how human resources get organized in that sort of situation. In my experience, there becomes a tension between the needs of firms to differentiate their products and make good on their contracts and the needs of the developer community whose collective value is ultimately tied to the robustness of their technology.

Unfortunately, building out BigBang to integrate with various email, version control, and issue tracking backends is a lot of work and there’s only one of me right now to both build the infrastructure, do the research, and train new collaborators (who are starting to do some awesome work, so this is paying off.) While integrating with Apache’s infrastructure would have been a smart first move, instead I chose to focus on Mailman archives and git repositories. Google Groups and whatever Apache is using for their email lists do not publish their archives in .mbox format, which is pain for me. But luckily Google Takeout does export data from folks’ on-line inbox in .mbox format. This is great for BigBang because it means we can investigate email data from any project for which we know an insider willing to share their records.

Does a research ethics issue arise when you start working with email that is openly archived in a difficult format, then exported from somebody’s private email? Technically you get header information that wasn’t open before–perhaps it was ‘private’. But arguably this header information isn’t personal information. I think I’m still in the clear. Plus, IRB will be irrelevent when the robots take over.

All of this is a long way of getting around to talking about a new thing I’m wondering about, the Node.js fork. It’s interesting to think about open source software forks in light of Hirschman’s concepts of Exit and Voice since so much of the activity of open source development is open, virtual communication. While you might at first think a software fork is definitely a kind of Exit, it sounds like IO.js was perhaps a friendly fork of just somebody who wanted to hack around. In theory, code can be shared between forks–in fact this was the principle that GitHub’s forking system was founded on. So there are open questions (to me, who isn’t involved in the Node.js community at all and is just now beginning to wonder about it) along the lines of to what extent a fork is a real event in the history of the project, vs. to what extent it’s mythological, vs. to what extent it’s a reification of something that was already implicit in the project’s sociotechnical structure. There are probably other great questions here as well.

A friend on the inside tells me all the action on this happened (is happening?) on the GitHub issue tracker, which is definitely data we want to get BigBang connected with. Blissfully, there appear to be well supported Python libraries for working with the GitHub API. I expect the first big hurdle we hit here will be rate limiting.

Though we haven’t been able to make integration work yet, I’m still hoping there’s some way we can work with MetricsGrimoire. They’ve been a super inviting community so far. But our software stacks and architecture are just different enough, and the layers we’ve built so far thin enough, that it’s hard to see how to do the merge. A major difference is that while MetricsGrimoire tools are built to provide application interfaces around a MySQL data backend, since BigBang is foremost about scientific analysis our whole data pipeline is built to get things into Pandas dataframes. Both projects are in Python. This too is a weird microcosm of the larger sociotechnical ecosystem of software production, of which the “open” side is only one (important) part.


by Sebastian Benthall at February 21, 2015 11:15 PM

MIMS 2012

Behind the Design: Optimizely's Mobile Editor

On 11/18/14, Optimizely officially launched A/B testing for iOS apps. This was a big launch because our product had been in beta for months, but none of us felt proud to publicly launch it. To get us over the finish line, we focused our efforts on building out an MVPP — a Minimum Viable Product we’re Proud of (which I wrote about previously). A core part of the MVPP was redesigning our editing experience from scratch. In this post, I will walk you through the design process, show you the sketches and prototypes that led up to the final design, and the lessons learned along the way, told from my perspective as the Lead Designer.

A video of the final product

Starting Point

To provide context, our product enables mobile app developers to run A/B tests in their app, without needing to write any code or resubmit to the App Store for approval. By connecting your app to our editor, you can select elements, like buttons and headlines, and change their properties, like colors and text. Our beta product was functional in this regard, but not particularly easy or delightful to use. The biggest problem was that we didn’t show you your app, so you had to select elements by searching through a list of your app’s views (a process akin to navigating your computer’s folder hierarchy to find a file). This made the product cumbersome to use, and not visually engaging (see screenshot below).

Screenshot of Optimizely's original iOS editor

Optimizely’s original iOS editor.

Designing the WYSIWYG Editor

To make this a product we’re proud to launch, it was obvious we’d need to build a What-You-See-Is-What-You-Get (WYSIWYG) editor. This means we’d show the app in the browser, and let users directly select and edit their app’s content. This method is more visually engaging, faster, and easier to use (especially for non-developers). We’ve had great success with web A/B testing because of our WYSIWYG editor, and we wanted to replicate that success on mobile.

This is an easy design decision to make, but hard to actually build. For this to work, it had to be performant and reliable. A slow or buggy implementation would have been frustrating and a step backwards. So we locked a product designer and two engineers in a room to brainstorm ideas and build functional prototypes together. By the end of the week, they had a prototype that cleared the technical hurdles and proved we could build a delightful editing experience. This was a great accomplishment, and a reminder that any challenge can be solved by giving a group of smart, talented individuals space to work on a seemingly intractable problem.

Creating the Conceptual Model

With the app front and center, I needed an interface for how users change the properties of elements (text, color, position, etc.). Additionally, there are two other major features the editor needs to expose: Live Variables and Code Blocks. Live Variables are native Objective-C variables that can be changed on the fly through Optimizely (such as the price of items). Code Blocks let users choose code paths to execute (for example, a checkout flow that has 2 steps instead of 3).

Before jumping into sketches or anything visual, I had to get organized. What are all the features I need to expose in the UI? What types of elements can users edit? What properties can they change? Which of those are useful for A/B tests? I wrote down all the functionality I could think of. Additionally, I needed to make sure the UI would accommodate new features to prevent having to redesign the editor 3 months down the line, so I wrote out potential future functionality alongside current functionality.

I took all this functionality and clustered them into separate groups. This helped me form a sound conceptual model on which to build the UI. A good model makes it easier for users to form an accurate mental model of the product, thus making it easier to use (and more extensible for future features). This exercise made it clear to me that there are variation-level features, like Code Blocks and Live Variables, that should be separate from element-level features that act on specific elements (like changing a button’s text). This seems like an obvious organizing principle in retrospect, but at the time it was a big shift in thinking.

After forming the conceptual model, I curated the element properties we let users edit. The beta product exposed every property we could find, with no thought as to whether or not we should let users edit it. More properties sounds better and makes our product more powerful, but it comes at the cost of ease of use. Plus, a lot of the properties we let people change don’t make sense for our use case of creating A/B tests, and don’t make sense to non-developers (e.g. “Autoresizing mask” isn’t understandable to non-technical folks, or something that needs to be changed for an A/B test).

I was ruthless about cutting properties. I went through every single one and asked two questions: first, is this understandable to non-developers (my definition of “understandable” being would a person recognize it from common programs they use everyday, like MS Office or Gmail); and second, why is this necessary for creating an A/B test? If I was unsure about an attribute, I defaulted to cutting it. My reasoning was it’s easy to add features to a product, but hard to take them away. And if we’re missing any essential properties, we’ll hear about it from our customers and can add it back.

Screenshot of my Google Doc feature organization

My lo-fi Google Doc to organize features

Let the Sketching Begin!

With my thoughts organized, I finally started sketching a bunch of editor concepts (pictured below). I had two big questions to answer: after selecting an element, how does a user change its properties? And, how are variation-level features (such as Code Blocks) exposed? My top options were:

  • Use a context menu of options after selecting an element (like our web editor)
  • When an element is selected, pop up an inline property pane (ala Medium’s and Wordpress’s editors)
  • Have a toolbar of properties below the variation bar
  • Show the properties in a drawer next to the app

Picture of my toolbar sketch

A sketch of the toolbar concept

Picture of my inline formatting sketch

A messy sketch of inline formatting options (specifically text)

Picture of one of my drawer sketches

One of the many drawer sketches

Interactive Prototypes

Each approach had pros and cons, but organizing element properties in a drawer showed the most promise because it’s a common interaction paradigm, it fit easily into the editor, and was the most extensible for future features we might add. The other options were generally constraining and better suited to limited functionality (like simple text formatting).

Because I wanted to maximize space for showing the app, my original plan was to show variation-level features (e.g. Code Blocks; Live Variables) in the drawer when no element was selected, and then replace those with element-level features when an element was selected. Features at each level could be separated into their own panes (e.g. Code Blocks would have its own pane). Thus the drawer would be contextual, and all features would be in the same spot (though not at the same time). This left plenty of space for showing an app, and kept the editor uncluttered.

A sketch told me that layout-wise this plan was viable, but would it make sense to select an element one place, and edit its properties in another? Would it be jarring to see features come and go depending on whether an element was selected or not? How will you navigate between different panes in the drawer? To answer these questions, an interactive prototype was my best course of action (HTML/CSS/JS being my weapon of choice).

Screenshot of an early drawer prototype

An early drawer prototype. Pretend there’s an app in that big empty white space.

I prototyped dozens of versions of the drawer, and shopped them around to the team and fellow designers. Responses overall were very positive, but the main concern was that the tab buttons (“Text”, “Layout”, etc., in the image above) in the drawer won’t scale. Once there are more than about 4, the text gets really squeezed (especially in other languages), stunting our ability to add new features. One idea to alleviate this, suggested by another designer, was to use an accordion instead of tab buttons to reveal content. A long debate ensued about which approach was better. I felt the tab buttons were a more common approach (accordions were for static content, not interactive forms that users will be frequently interacting with), whereas he felt the accordion was more scalable by allowing room for adding more panes, and accommodates full text labels (see picture below).

Screenshot of the drawer with accordion prototype

Drawer with accordion prototype. Pretend that website is an iOS app.

To help break this tie, I built another prototype. After playing around with both for awhile, and gathering feedback from various members of the team, I realized we were both wrong.

Hitting reset

After weeks of prototyping and zeroing in on a solution, I realized it was the wrong solution. And the attempt to fix it (accordions), was in fact an iteration of the original concept that didn’t actually address the real problem. I needed a new idea that would be superior to all previous ideas. So I hit reset and went back to the drawing board (literally). I reviewed my initial organizing work and all required functionality. Clearly delineating variation-level properties from element-level properties was a sound organizing principle, but the drawer was getting overloaded by having everything in it. So I explored ways of more cleanly separating variation-level properties from element-level properties.

After reviewing my feature groupings, I realized there aren’t a lot of element properties. They can all be placed in one panel without needing to navigate between them with tabs or accordions at all (one problem solved!).

The variation properties were the real issue, and had the majority of potential new features to account for. Two new thoughts became apparent as I reviewed these properties: first, variation-level changes are typically quick and infrequent; and second, variation-level changes don’t typically visually affect the app content. Realizing this, I hit upon an idea to have a second drawer that would slide out over the app, and go away after you made your change.

To see how this would feel to use, I made yet another interactive prototype. This new UI was clean, obviated the need for tab buttons or accordions, was quick and easy to interact with, and put all features just a click or two away. In short, this new design direction was a lot better, and everyone quickly agreed it made more sense than my previous approach.

Reflecting back on this, I realize I had made design decisions based on edge cases, rather than focusing on the 80% use case. Starting the design process over from first principles helped me see this much more clearly. I only wish I would have caught it sooner!

Admitting this design was not the right solution, after a couple months of work, and after engineers already began building it, was difficult. The thought of going in front of everyone (engineers, managers, PMs, designers, etc.) and saying we needed to change direction was not something I was looking forward to. I was also worried about the amount of time it would take me to flesh out a completely new design. Not to mention that I needed to thoroughly vet it to make sure that it didn’t have any major drawbacks (I wouldn’t have another opportunity to start over).

Luckily, once I started fleshing out this new design, those fears mostly melted away. I could tell this new direction was stronger, which made me feel good about restarting, which made it easier to sell this idea to the whole team. I also learned that even though I was starting over from the beginning, I wasn’t starting with nothing. I had learned a lot from my previous iterations, which informed my decision making this second time through.

Build and Ship!

With a solid design direction finally in place, we were able to pour on the engineering resources to build out this new editor. Having put a lot of thought into both the UI and technical challenges before writing production code, we were able to rapidly build out the actual product, and ended up shipping a week ahead of our self-imposed deadline!

Screenshot of the finished mobile editor

The finished mobile editor

Lessons Learned

  • Create a clear conceptual model on which to build the UI. A UI that accurately represents the system’s conceptual model will make it easy for users to form a correct mental model of your product, thus making it easier to use. To create the system model, write down all the features, content, and use cases you need to design for before jumping into sketches or prototypes. Group them together and map out how they relate to each other. From this process, the conceptual model should become clear. Read more about mental models on UX Magazine.
  • Don’t be afraid to start over. It’s scary, and hard, and feels like you wasted a bunch of time, but the final design will come out better. And the time you spent on the earlier designs wasn’t wasted effort — it broadened your knowledge of both the problem and solution spaces, which will help you make better design decisions in your new designs.
  • Design for the core use case, not edge cases. Designing for edge cases can clutter a UI and get in the way of the core use case that people do 80% of the time. In the case of the drawer, it led to overloading it with functionality.
  • Any challenge can be solved by giving a group of smart, talented individuals space to work on seemingly intractable problems. We weren’t sure a WYSIWYG editor would be technically feasible, but we made a concerted effort to overcome the technical hurdles, and it payed off. I’ve experienced this time and time again, and this was yet another reminder of this lesson.

On 11/18/14, the team was proud to announce Optimizely’s mobile A/B testing product to the world. Week-over-week usage has been steadily rising, and customer feedback has been positive, with people saying the new editor is much easier and faster to use. This was a difficult product to design, for both technical and user experience reasons, but I had a great time doing it and learned a ton along the way. And this is only the beginning — we have a lot more work to do before we’re truly the best mobile A/B testing product on the planet.

by Jeff Zych at February 21, 2015 10:54 PM

February 20, 2015

Ph.D. alumna

Why I Joined Dove & Twitter to #SpeakBeautiful

I’ve been online long enough to see a lot of negativity. I wear a bracelet that reads “Don’t. Read. The. Comments.” (a gift from Molly Steenson) to remind myself that going down the path of negativity is not helpful to my soul or sanity. I grew up in a geeky environment, determined to prove that I could handle anything, to stomach the notion that “if you can’t stand the heat, get out of the kitchen.” My battle scars are part of who I am. But why does it have to be this way?

Over the last few years, as the internet went from being a geeky subculture to something that is truly mainstream, I started watching as young women used technology to demean themselves and each other. It has broken my heart over and over again. Women are hurting themselves in the process of hurting each other with their words. The answer isn’t to just ask everyone out there to develop a thick skin. A world of meanness and cruelty is destructive to all involved and we all need to push back at it, especially those of us who have the strength to stomach the heat.

I’m delighted and honored to partner with Dove and Twitter to change the conversation. In an effort to better understand what’s happening, Dove surveyed women and Twitter analyzed tweets. Even though only 9% of women surveyed admit to posting negative comments on social media, over 5 million negative tweets about beauty and body image were posted in 2014 alone and 4 out of 5 of those tweets appeared to come from women. Women know that negative comments are destructive to their self-esteem and to those around them and, yet, the women surveyed reported they are 50% more likely to say something negative than positive. What is happening here?

This weekend, we will watch celebrities parade down the red carpet wearing gorgeous gowns as they enter a theater to celebrate the pinnacle of film accomplishments. Yet, if history serves, the social media conversation around the Oscar’s will be filled with harsh commentary regarding celebrities’ beauty and self-loathing.

We live in a world in which self-critique and ugliness is not only accepted, but the norm. Especially for women. Yet, so many women are unable to see how what they say not only erodes their own self-worth, but harms others. Every time we tear someone down for what they’re wearing or how they’re acting – and every time that we talk badly about ourselves – we contribute to a culture of cruelty in which women are systemically disempowered. This has to change.

It’s high time that we all stop and reflect on what we’re saying and posting when we use our fingers to talk in public. It’s time to #Speak Beautiful. Negative commentary has a domino effect. But so does positive commentary.

In an effort to change the norm, Dove and Twitter have come together to try to combat negativity with positive thoughts. Beyond this video, they are working together to identify negative tweets and reach out to women who might not realize the ramifications of what they say. Social media and self-esteem experts will offer advice in an effort to empower women to speak with more confidence, optimism, and kindness.

Will this solve the problem? No. But the modest goal of this campaign is to get more women to step back and reflect about what they’re saying. At the end of the day, it’s us who need to solve the problem. We need to all collectively make a conscious decision to stop the ugliness. We need to #SpeakBeautiful.

I am honored to be able to contribute to this effort and I invite you to do the same. Spend some time today and over the weekend thinking about the negativity you see around you on social media and push back against it. If your instinct is to critique, take a moment to say something positive. An effort to #SpeakBeautiful is both selfish and altruistic. You help others while helping yourself.

I know that I will spend the weekend thinking about my grandmother, a beautiful woman in her 90s who grew up being told that negative thoughts were thoughts against God. As a teenager, I couldn’t understand how she could stay positive no matter what happened around her but as I grow older, I’m in awe of her ability to find the beauty in everything. I’ve watched this sustain her into her old age. I only wish more people could find the nourishment of such positivity. So let’s all take a moment to #SpeakBeautiful, for ourselves and for those around us.

by zephoria at February 20, 2015 02:28 PM

February 17, 2015

Ph.D. student

data science and the university

This is by now a familiar line of thought but it has just now struck me with clarity I wanted to jot down.

  1. Code is law, so the full weight of human inquiry should be brought to bear on software system design.
  2. (1) has been understood by “hackers” for years but has only recently been accepted by academics.
  3. (2) is due to disciplinary restrictions within the academy.
  4. (3) is due to the incentive structure of the academy.
  5. Since there are incentive structures for software development that are not available for subjects whose primary research project is writing, the institutional conditions that are best able to support software work and academic writing work are different.
  6. Software is a more precise and efficious way of communicating ideas than writing because its interpretation is guaranteed by programming language semantics.
  7. Because of (6), there is selective pressure to making software the lingua franca of scholarly work.
  8. (7) is inducing a cross-disciplinary paradigm shift in methods.
  9. (9) may induce a paradigm shift in theoretical content, or it may result in science whose contents are tailored to the efficient execution of adaptive systems. (This is not to say that such systems are necessarily atheoretic, just that they are subject to different epistemic considerations).
  10. Institutions are slow to change. That’s what makes them institutions.
  11. By (5), (7), and (9), the role of universities as the center of research is being threatened existentially.
  12. But by (1), the myriad intellectual threads currently housed in universities are necessary for software system design, or are at least potentially important.
  13. With (11) and (12), a priority is figuring out how to manage a transition to software-based scholarship without information loss.

by Sebastian Benthall at February 17, 2015 07:28 AM

a brief comment on feminist epistemology

One funny thing about having a blog is that I can tell when people are interested in particular posts through the site analytics. To my surprise, this post about Donna Haraway has been getting an increasing number of hits each month since I posted it. That is an indication that it has struck a chord, since steady exogenous growth like that is actually quite rare.

It is just possible that this means that people interested in feminist epistemology have been reading my blog lately. They probably have correctly guessed that I have not been the biggest fan of feminist epistemology because of concerns about bias.

But I’d like to take the opportunity to say that my friend Rachel McKinney has been recommending I read Elizabeth Anderson‘s stuff if I want to really get to know this body of theory. Since Rachel is an actual philosopher and I am an amateur who blogs about it on weekends, I respect her opinion on this a great deal.

So today I started reading through Anderson’s Stanford Encyclopedia of Philosophy article on Feminist Epistemology and I have to say I think it’s very good. I like her treatment of the situated knower. It’s also nice to learn that there are alternative feminist epistemologies to certain standpoint theories that I think are troublesome. In particular, it turns out that those standpoint theories are now considered by feminist philosophers to from a brief period in the 80’s that they’ve moved past already! Now subaltern standpoints are considered privileged in terms of discovery more than privileged in terms of justification.

This position is certainly easier to reconcile with computational methods. For example, it’s in a sense just mathematically mathematically correct if you think about it in terms of information gain from a sample. This principle appears to have been rediscovered in a way recently by the equity-in-data-science people when people talk about potential classifier error.

I’ve got some qualms about the articulation of this learning principle in the absence of a particular inquiry or decision problem because I think there’s still a subtle shift in the argumentation from logos to ethos embedded in there (I’ve been seeing things through the lens of Aristotelian rhetoric lately and it’s been surprisingly illuminating). I’m on the lookout for a concrete application of where this could apply in a technical domain, as opposed to as an articulation of a political affinity or anxiety in the language of algorithms. I’d be grateful for links in the comments.

Edit:

Wait, maybe I already built one. I am not sure if that really counts.


by Sebastian Benthall at February 17, 2015 05:19 AM

February 12, 2015

Ph.D. student

scale and polemic

I love a good polemic but lately I have been disappointed by polemics as a genre because they generally don’t ground themselves on data at a suitable scale.

When people try to write about a social problem, they are likely to use potent examples as a rhetorical device. Their particular ideological framing of a situation will be illustrated by compelling stories that are easy to get emotional about. This is often considered to be the hallmark of A Good Presentation, or Good Writing. Somebody will say about some group X, “Group X is known for doing bad things. Here’s an example.”

There are some problems with this approach. If there are a lot of people in Group X, then there can be a lot of variance within that group. So providing just a couple examples really doesn’t tell you about the group as a whole. In fact, this is a great way to get a biased view of Group X.

There are consequences to this kind of rhetoric. Once there’s a narrative with a compelling example illustrating it, that spreads that way of framing things as an ideology. Then, because of the well-known problem of confirmation bias, people that have been exposed to that ideology will start to see more examples of that ideology everywhere.

Add to that stereotype threat and suddenly you’ve got an explanation for why so many political issues are polarized and terrible.

Collecting more data and providing statistical summaries of populations is a really useful remedy to this. While often less motivating than a really well told story of a person’s experience, it has the benefit of being more accurate in the sense of showing the diversity of perspectives there are about something.

Unfortunately, we like to hear stories so much that we will often only tell people about statistics on large populations if they show a clear trend one way or another. People that write polemics want to be able to say, “Group X has 20% more than Group Y in some way,” and talk about why. It’s not considered an interesting result if it turns out the data is just noise, that Group X and Group Y aren’t really that different.

We also aren’t good at hearing stories about how much variance there is in data. Maybe on average Group X has 20% more than Group Y in some way. But what if these distributions are bimodal? Or if one is more varied than the other? What does that mean, narratively?

It can be hard to construct narrations that are not about what can be easily experienced in one moment but rather are about the experiences of lots of people over lots of moments. The narrative form is very constraining because it doesn’t capture the reality of phenomena of great scale and complexity. Things of great scale and complexity can be beautiful but hard to talk about. Maybe talking about them is a waste of time, because that’s not a good way to understand them.


by Sebastian Benthall at February 12, 2015 09:38 PM

February 07, 2015

Ph.D. student

formalizing the cultural observer

I’m taking a brief break from Horkheimer because he is so depressing and because I believe the second half of Eclipse of Reason may include new ideas that will take energy to internalize.

In the meantime, I’ve rediscovered Soren Brier’s Cybersemiotics: Why Information Is Not Enough! (2008), which has remained faithfully on my desk for months.

Brier is concerned with the possibility of meaning generally, and attempts to synthesize the positions of Pierce (recall: philosophically disliked by Horkheimer as a pragmatist), Wittgenstein (who first was an advocate of the formalization of reason and language in his Tractatus, then turned dramatically against it in his Philosophical Investigations), second-order cyberneticists like Varela and Maturana, and the social theorist Niklas Luhmann.

Brier does not make any concessions to simplicity. Rather, his approach is to begin with the simplest theories of communication (Shannon) and show where each fails to account for a more complex form of interaction between more completely defined organisms. In this way, he reveals how each simpler form of communication is the core around which a more elaborate form of meaning-making is formed. He finally arrives at a picture of meaning-making that encompasses all of reality, including that which can be scientifically understood, but one that is necessarily incomplete and an open system. Meaning is all-pervading but never all-encompassing.

One element that makes meaning more complex than simple Shannon-esque communication is the role of the observer, who is maintained semiotically through an accomplishment of self-reference through time. This observer is a product of her own contingency. The language she uses is the result of nature, AND history, AND her own lived life. There is a specificity to her words and meanings that radiates outward as she communicates, meanings that interact in cybernetic exchange with the specific meanings of other speakers/observers. Language evolves in an ecology of meaning that can only poorly be reflected back upon the speaker.

What then can be said of the cultural observer, who carefully gathers meanings, distills them, and expresses new ones conclusively? She is a cybernetic captain, steering the world in one way or another, but only the world she perceives and conceives. Perhaps this is Haraway’s cyborg, existing in time and space through a self-referential loop, reinforced by stories told again and again: “I am this, I am this, I am this.” It is by clinging to this identity that the cyborg achieves the partiality glorified by Haraway. It is also this identity that positions her as an antagonist as she must daily fight the forces of entropy that would dissolve her personality.

Built on cybernetic foundations, does anything in principle prevent the formalization and implementation of Brier’s semiotic logic? What would a cultural observer that stands betwixt all cultures, looming like a spider on the webs of communication that wrap the earth at inconceivable scale? Without the same constraints of partiality of one human observer, belonging to one culture, what could such a robot scientist see? What meaning would they make for themselves or intend?

This is not simply an issue of the interpretability of the algorithms used by such a machine. More deeply, it is the problem that these machines do not speak for themselves. They have no self-reference or identity, and so do not participate in meaning-making except instrumentally as infrastructure. This cultural observer that is in the position to observe culture in the making without the limits of human partiality for now only serves to amplify signal or dampen noise. The design is incomplete.


by Sebastian Benthall at February 07, 2015 08:22 PM

February 05, 2015

Ph.D. student

Horkheimer and “The Revolt of Nature”

The third chapter of Horkheimer’s Eclipse of Reason (which by the way is apparently available here as a PDF) is titled “The Revolt of Nature”.

It opens with a reiteration of the Frankfurt School story: as reason gets formalized, society gets rationalized. “Rationalized” here is in the sense that goes back at least to Lukacs’s “Reification and the Consciousness of the Proletariat” in 1923. It refers to the process of being rendered predictable, and being treated as such. It’s this formalized reason that is a technique of prediction and predictability, but which is unable to furnish an objective ethics, that is the main subject of Horkheimer’s critique.

In “The Revolt of Nature”, Horkheimer claims that as more and more of society is rationalized, the more humanity needs to conform to the rationalizing system. This happens through the labor market. Predictable technology and working conditions such as the factory make workers more interchangeable in their jobs. Thus they are more “free” in a formal sense, but at the same time have less job security and so have to conform to economic forces that make them into means and not ends in themselves.

Recall that this is written in 1947, and Lukacs wrote in 1923. In recent years we’ve read a lot about the Sharing Economy and how it leads to less job security. This is an argument that is almost a century old.

As society and humanity in it conform more and more to rational, pragmatic demands on them, the element of man that is irrational, that is nature, is not eliminated. Horkheimer is implicitly Freudian. You don’t eradicate the natural impulses. You repress them. And what is repressed must revolt.

This view runs counter to some of the ideology of the American academic system that became more popular in the late 20th century. Many ideologues reject the idea of human nature at all, arguing that all human behavior can be attributed to socialization. This view is favored especially by certain extreme progressives, who have a post-Christian ideal of eradicating sin through media criticism and scientific intervention. Steven Pinker’s The Blank Slate is an interesting elaboration and rebuttal of this view. Pinker is hated by a lot of academics because (a) he writes very popular books and (b) he makes a persuasive case against the total mutability of human nature, which is something of a sacred cow to a lot of social scientists for some reason.

I’d argue that Horkheimer would agree with Pinker that there is such a thing as human nature, since he explicitly argues that repressed human nature will revolt against dominating rationalizing technology. But because rationalization is so powerful, the revolt of nature becomes part of the overall system. It helps sustain it. Horkheimer mentions “engineered” race riots. Today we might point to the provocation of bestial, villainous hate speech and its relationship to the gossip press. Or we might point to ISIS and the justification it provides for the military-industrial complex.

I don’t want to imply I endorse this framing 100%. It is just the continuation of Frankfurt School ideas to the present day. How they match up against reality is an empirical question. But it’s worth pointing out how many of these important tropes originated.


by Sebastian Benthall at February 05, 2015 06:56 AM

February 04, 2015

Ph.D. student

a new kind of scientism

Thinking it over, there are a number of problems with my last post. One was the claim that the scientism addressed by Horkheimer in 1947 is the same as the scientism of today.

Scientism is a pejorative term for the belief that science defines reality and/or is a solution to all problems. It’s not in common use now, but maybe it should be among the critical thinkers of today.

Frankfurt School thinkers like Horkheimer and Habermas used “scientism” to criticize the positivists, the 20th century philosophical school that sought to reduce all science and epistemology to formal empirical methods, and to reduce all phenomena, including social phenomena, to empirical science modeled on physics.

Lots of people find this idea offensive for one reason or another. I’d argue that it’s a lot like the idea that algorithms can capture all of social reality or perform the work of scientists. In some sense, “data science” is a contemporary positivism, and the use of “algorithms” to mediate social reality depends on a positivist epistemology.

I don’t know any computer scientists that believe in the omnipotence of algorithms. I did get an invitation to this event at UC Berkeley the other day, though:

This Saturday, at [redacted], we will celebrate the first 8 years of the [redacted].

Current students, recent grads from Berkeley and Stanford, and a group of entrepreneurs from Taiwan will get together with members of the Social Data Lab. Speakers include [redacted], former Palantir financial products lead and course assistant of the [redacted]. He will reflect on how data has been driving transforming innovation. There will be break-out sessions on sign flips, on predictions for 2020, and on why big data is the new religion, and what data scientists need to learn to become the new high priests. [emphasis mine]

I suppose you could call that scientistic rhetoric, though honestly it’s so preposterous I don’t know what to think.

Though I would recommend to the critical set the term “scientism”, I’m ambivalent about whether it’s appropriate to call the contemporary emphasis on algorithms scientistic for the following reason: it might be that ‘data science’ processes are better than the procedures developed for the advancement of physics in the mid-20th century because they stand on sixty years of foundational mathematical work with modeling cognition as an important aim. Recall that the AI research program didn’t start until Chomsky took down Skinner. Horkheimer quotes Dewey commenting that until naturalist researchers were able to use their methods to understand cognition, they wouldn’t be able to develop (this is my paraphrase:) a totalizing system. But the foundational mathematics of information theory, Bayesian statistics, etc. are robust enough or could be robust enough to simply be universally intersubjectively valid. That would mean data science would stand on transcendental not socially contingent grounds.

That would open up a whole host of problems that take us even further back than Horkheimer to early modern philosophers like Kant. I don’t want to go there right now. There’s still plenty to work with in Horkheimer, and in “Conflicting panaceas” he points to one of the critical problems, which is how to reconcile lived reality in its contingency with the formal requirements of positivist or, in the contemporary data scientific case, algorithmic epistemology.


by Sebastian Benthall at February 04, 2015 06:53 AM

MIMS 2012

Building an MVPP - A Minimum Viable Product we're Proud of

On November 18th, 2014, we publicly released Optimizely’s iOS editor. This was a big release for us because it marked the end of a months-long public beta in which we received a ton of customer feedback and built a lot of missing features. But before we launched, there was one problem the whole team rallied behind to fix: we weren’t proud of the product. To fix this issue, we went beyond a Minimum Viable Product (MVP) to an MVPP — the Minimum Viable Product we’re Proud of.

What follows is the story of how we pulled this off, what we learned along the way, and product development tips to help you ship great products, from the perspective of someone who just did it.

Finished iOS editor

The finished iOS editor.

Genesis of the MVPP

We released a public beta of Optimizely’s iOS editor in June 2014. At that time, the product wasn’t complete yet, but it was important for us to get real customer feedback to inform its growth and find bugs. So after months of incorporating user feedback, the beta product felt complete enough to publicly launch. There was just one problem: the entire team wasn’t proud of the product. It didn’t meet our quality bar; it felt like a bunch of features bolted together without a holistic vision. To fix this, we decided to overhaul the user experience, an ambiguous goal that could easily go on forever, never reaching a clear “done” state.

We did two things to be more directed in the overhaul. First, we committed to a deadline to prevent us from endlessly polishing the UI. Second, we took inspiration from the Lean Startup methodology and chose a set of features that made up a Minimum Viable Product (MVP). An MVP makes it clear that we’ll cut scope to make the deadline, but nothing about quality. So to make it explicit that we were focusing on quality and wanted the whole team to be proud of the final product, we added an extra “P” to MVP. And thus, the Minimum Viable Product we’re Proud of — our MVPP — was born.

Create the vision

Once we had agreed on a feature set for the MVPP, a fellow Product Designer and I locked ourselves in a war room for the better part of a week to flesh out the user experience. We mapped out user flows and created rough mock ups that we could use to communicate our vision to the larger development team. Fortunately, we had some pre-existing usability test findings to inform our design decisions.

Picture of our war room in action

Sketches, mockups, and user flows from our war room.

These mockups were immensely helpful in planning the engineering and design work ahead. Instead of talking about ideas in the abstract, we had concrete features and visuals to point to. For example, everyone knew what we meant when we said “Improved Onboarding Flow.” With mockups in hand, communication between team members became much more concrete and people felt inspired to work hard to achieve our vision.

Put 6 weeks on the clock… and go!

We had 3 sprints (6 weeks) to complete the MVPP (most teams at Optimizely work in 2 week cycles called “sprints”). It was an aggressive timeline, but it felt achievable — exactly where a good deadline should be.

In the first sprint, the team made amazing progress. All the major pieces had been built, without any major re-scoping or redesigns. There were still bugs to fix, polish to apply, and edge cases to consider, but the big pieces core to our vision were in place.

That momentum carried over into the second sprint, which we spent fixing the biggest bugs, filling functional holes, and polishing the UI.

For the third and final sprint, we gave ourselves a new goal: ship a week early. We were already focused on launching the MVPP, but at this point we became laser focused. During daily standups, we looked at our JIRA board and asked, “If we were launching tomorrow, what would we work on today?”

We were ruthless about prioritizing tasks and moved a lot of items that were important, but not launch-critical, to the backlog.

During the first week of sprint 3, we also did end-to-end product walkthroughs after every standup to ensure the team was proud of the new iOS editor. We all got to experience the product from the customer’s perspective, and caught user experience bugs that were degrading the quality of our work. We also found and fixed a lot of functional bugs during this time. By the end of the week, everyone was proud of the final product and felt confident launching.

The adrenaline rush & benefit of an early release

On 11/10, we quietly released our MVPP to the world — a full week early! Not only did shipping early feel great, it also gave us breathing room to further polish the design, fix bugs, and give the rest of the company time to organize all the components to launch the MVPP.

Product teams don’t launch products alone; it takes full collaboration between marketing, sales, and success to create materials to promote it, sell it, and enable our customers to use it. By the time the public announcement on 11/18 rolled around, the whole company was extremely proud of the final result.

Lessons learned

While writing this post and reflecting on the project as a whole, a number of techniques became clear to me that can help any team ensure a high quality, on-time launch:

  • Add a “P” to “MVP” to make quality a launch requirement: Referring to the project as the “Minimum Viable Product we’re Proud of” made sure everyone on the team approached the product with quality in mind. Every project has trade-offs between the ship date, quality, and scope. It’s very hard to do all three. Realistically, you can do two. By calling our project an MVPP, we were explicit that quality would not be sacrificed.
  • Set a deadline: Having a deadline focused everyone’s efforts, preventing designers from endlessly polishing interfaces and developers spinning their wheels imagining every possible edge case. Make it aggressive, yet realistic, to instill a sense of urgency in the team.
  • Focus on the smallest set of features that provide the largest customer impact: We were explicit about what features needed to be redesigned, and just as importantly, which were off limits. This prevented scope-creep, and increased the team’s focus.
  • Make mockups before starting development: This is well-known in the industry, but it’s worth repeating. Creating tangible user flows and mockups ahead of time keeps planning discussions on track, removes ambiguity, and quickly explains the product vision. It also inspires the team by rallying them to achieve a concrete goal.
  • Do daily product walkthroughs: Our product walkthroughs had two key benefits. First, numerous design and code bugs were discovered and fixed. And second, they ensured we lived up to the extra “P” in “MVPP.” Everyone had a place to verbally agree that they were proud of the final product and confident launching. Although these walkthroughs made our standups ~30 minutes longer, it was worth the cost.
  • Ask: “If we were shipping tomorrow, what would you work on today?”: When the launch date is approaching, asking this question separates the critical, pre-launch tasks from the post-launch tasks.

Lather, Rinse, and Repeat

By going beyond an MVP to a Minimum Viable Product we’re Proud of, we guaranteed that quality was the requirement for launching. And by using a deadline, we stayed focused only on the tasks that were absolutely critical to shipping. With a well-scoped vision, mockups, and a date not too far in the future, you too can rally teams to create product experiences they’re proud of. And then do it again.

by Jeff Zych at February 04, 2015 04:20 AM

February 01, 2015

Ph.D. student

“Conflicting panaceas”; decapitation and dogmatism in cultural studies counterpublics

I’m still reading through Horkheimer’s Eclipse of Reason. It is dense writing and slow going. I’m in the middle of the second chapter, “Conflicting Panaceas”.

This chapter recognizes and then critiques a variety of intellectual stances of his contemporaries. Whereas in the first chapter Horkheimer takes aim at pragmatism, in this he concerns himself with neo-Thomism and positivism.

Neo-Thomism? Yes, that’s right. Apparently in 1947 one of the major intellectual contenders was a school of thought based on adapting the metaphysics of Saint Thomas Aquinas to modern times. This school of thought was apparently notable enough that while Horkheimer is generally happy to call out the proponents of pragmatism and positivism by name and call them business interest lapdogs, he chooses instead to address the neo-Thomists anonymously in a conciliatory footnote

This important metaphysical school includes some of the most responsible historians and writers of our day. The critical remarks here bear exclusively on the trend by which independent philosophical thought is being superseded by dogmatism.

In a nutshell, Horkheimer’s criticism of neo-Thomism is that it is that since it tries and fails to repurpose old ontologies to the new world, it can’t fulfill its own ambitions as an intellectual system through rigor without losing the theological ambitions that motivate it, the identification of goodness, power, and eternal law. Since it can’t intellectually culminate, it becomes a “dogmatism” that can be coopted disingenuously by social forces.

This is, as I understand it, the essence of Horkheimer’s criticism of everything: That for any intellectual trend or project, unless the philosophical project is allowed to continue to completion within it, it will have its brains slurped out and become zombified by an instrumentalist capitalism that threatens to devolve into devastating world war. Hence, just as neo-Thomism becomes a dogmatism because it would refute itself if it allowed its logic to proceed to completion, so too does positivism become a dogmatism when it identifies the truth with disciplinarily enforced scientific methods. Since, as Horkheimer points out in 1947, these scientific methods are social processes, this dogmatic positivism is another zombie, prone to fads and politics not tracking truth.

I’ve been struggling over the past year or so with similar anxieties about what from my vantage point are prevailing intellectual trends of 2014. Perversely, in my experience the new intellectual identities that emerged to expose scientific procedures as social processes in the 20th century (STS) and establish rhetorics of resistance (cultural studies) have been similarly decapitated, recuperated, and dogmatic. [see 1 2 3].

Are these the hauntings of straw men? This is possible. Perhaps the intellectual currents I’ve witnessed are informal expressions, not serious intellectual work. But I think there is a deeper undercurrent which has turned up as I’ve worked on a paper resulting from this conversation about publics. It hinges on the interpretation of an influential article by Fraser in which she contests Habermas’s notion of the public sphere.

In my reading, Fraser more or less maintains the ideal of the public sphere as a place of legitimacy and reconciliation. For her it is notably inequitable, it is plural not singular, the boundaries of what is public and private are in constant negotiation, etc. But its function is roughly the same as it is for Habermas.

My growing suspicion is that this is not how Fraser is used by cultural studies today. This suspicion began when Fraser was introduced to me; upon reading her work I did not find the objection implicit in the reference to her. It continued as I worked with the comments of a reviewer on a paper. It was recently confirmed while reading Chris Wisniewski’s “Digital Deliberation ?” in Critical Review, vol 25, no. 2, 2013. He writes well:

The cultural-studies scholars and critical theorists interested in diversifying participation through the Internet have made a turn away from this deliberative ideal. In an essay first published in 1990, the critical theorist Nancy Fraser (1999, 521) rejects the idealized model of bourgeois public sphere as defined by Habermas on the grounds that it is exclusionary by design. Because the bourgeois public sphere brackets hierarchies of gender, race, ethnicity, class, etc., Fraser argues, it benefits the interests of dominant groups by default through its elision of socially significant inequalities. Lacking the ability to participate in the dominant discourse, disadvantaged groups establish alternative “subaltern counterpublics”.

Since the ideal speech situation does not acknowledge the socially significant inequalities that generate these counterpublics, Fraser argues for a different goal: a model of participatory democracy in which intercultural communications across socially stratified groups occur in forums that do not elide differences but intead allow diverse multiple publics the opportunity to determine the concerns or good of the public as a whole through “discursive contestations.” Fraser approaches thes subgroups as identity publics and aruges that culture and political debate are essentially power struggles among self-interested subgroups. Fraser’s ideas are similar to those prevalent in cultural studies (see Wisneiwski 2007 and 2010), a relatively young discipline in which her work has been influential.

Fraser’s theoretical model is inconsistent with studies of democratic voting behavior, which indicate that people tend to vote sociotropically, according to a perceived collective interest, and not in facor of their own perceived self-interest (e.g., Kinder and Kiewiet 1981). The argument that so-called “mass” culture excludes the interests of dominated groups in favor of the interests of the elites loses some of its valence if culture is not a site through which self-interested groups vie for their objective interests, but is rather a forum in which democratic citizens debate what constitutes, and the best way to achieve, the collective good. Diversification of discourse ceases to be an end in itself.”

I think Wisneiwski hits the nail on the head here, a nail I’d like to drive in farther. If culture is conceived of as consisting of the contests of self-interested identity groups, as this version of cultural studies does, then it will necessarily see itself as one of many self-interested identities. Cultural studies becomes, by its own logic, a counterpublic that exists primarily to advance its own interests.

But just like neo-Thomism, this positioning decapitates cultural studies by preventing it from intellectually confronting its own limitations. No identity can survive rigorous intellectual interrogation, because all identities are based on contingency, finitude, trauma. Cultural studies adopt and repurpose historical rhetorics of liberation much like neo-Thomists adopted and repurposed historical metaphysics of Christianity. The obsolescence of these rhetorics, like the obsolescence of Thomistic metaphysics, is what makes them dangerous. The rhetoric that maintains its own subordination as a condition of its own identity can never truly liberate, it can only antagonize. Unable to intellectually realize its own purpose, it becomes purposeless and hence coopted and recuperated like other dogmatisms. In particular, it feeds into “the politicization of absolutely everything”, in the language of Ezra Klein’s spot-on analysis of GamerGate. Cultural studies is a powerful ideology because it turns culture into a field of perpetual rivalry with all the distracting drama of reality television. In so doing, it undermines deeper intellectual penetration into the structural conditions of society.

If cultural studies is the neo-Thomism of today, a dogmatist religious revival of the profound theology of the civil rights movement, perhaps it’s the theocratic invocation of ‘algorithms’ that is the new scientism. I would have more to say about it if it weren’t so similar to the old scientism.


by Sebastian Benthall at February 01, 2015 08:08 PM

January 28, 2015

MIMS 2015

Framing Network Neutrality for the American Electorate

I originally wrote this paper for a class on conceptual metaphor taught by George Lakoff @ UC Berkeley’s department of Linguistics. It borows a notation for metaphors(e.g. Affection Is Warmth), and many common conceptual systems(e.g. Moral Accounting), from Philosophy in the Flesh1. All errors are mine and mine alone.

Introduction

I study technology and public policy with an emphasis on the Internet and computer networking. Network neutrality is an issue that has seen significant attention lately. It is also a topic that I have studied rather extensively from legal, economic and technical perspectives. This paper will look at the metaphors used in framing the network neutrality debate. A running theme will be how the concepts of network neutrality have been adapted to fit the political reality of the United States.

Defining Network Neutrality

Before we can get into the metaphors underlying network neutrality we need to define the term and scope the arguments of both sides. Network neutrality supporters believe that traffic on the Internet should be forwarded indiscriminately. The term derives from the English common law concept of common carrier, which dates back to the time of English monarchs. We don’t know exactly which one, but some English monarch made it illegal for ferry operators to charge wealthier patrons more for their services. This common carrier concept continued into the United States where in 1887 it was codified in statute with the Interstate Commerce Act. This act established the Interstate Commerce Commission (ICC), an agency most famous for regulating prices of railroad freight based on common carrier principles. Then in 1934 Congress passed the Communications Act, which transformed the ICC into the FCC, the agency now responsible for regulating communications networks. The term network neutrality was first used by Columbia Law Professor Tim Wu2. Common carrier and network neutrality might have slightly different meanings to different people, but the basic idea is the same.

It’s important to recognize that our concept of network neutrality derives from a concept that is hundreds of years old. Like most old legal concepts it has changed through application of case law to new technologies, but it has fundamentally remained the same idea. The essence of common carrier and network neutrality concepts is forbidding price discrimination on transport services necessary for the public good. Proponents of network neutrality believe exactly this, while opponents of network neutrality believe exactly the opposite. Proponents of network neutrality argue that price discrimination of transport should be outlawed. Opponents of network neutrality argue that, while Internet access is a vital service, regulating its price would be harmful to the public good. They argue instead that a laissez-faire approach, including price discrimination, would create a larger benefit to society by lowering costs via a liberal market mechanism.

Network Morality

The moral grounding of this concept, regardless of whether we call it common carrier or network neutrality, is rooted in concepts of fairness imposed by an authority. Proponents believe in an equality of opportunity model of fairness rooted in the moral accounting metaphor. In this model all parties are able to use and access the network equally. Proponents view the FCC as an organization tasked with ensuring this fairness through nurturing, but not meddlesome, behavior. While many proponents may view the FCC as captured by the telecommunications industry, they still see the legitimate job of the FCC as ensuring a fairness of equal distribution. This all aligns well with the nurturant parent model of governance.

In contrast, opponents believe in a scalar model of use and access. In this model a laissez- faire market determines who can use the network based on merit, where merit is measured by wealth. Opponents view the FCC as a meddlesome organization that can only ruin a natural moral ordering of the world. It’s a strict father model of government where the father is seen as overpowering and psychotic. In this version of the strict father model Morality Is Obedience gets downplayed since the father cannot be relied upon. Instead the Moral Order is prominent with the market taking the place of nature in the Folk Theory of the Natural Order. The market is viewed as naturally occurring, thus the metaphor becomes The Moral Order Is The Market. Like the proponent’s view, this is also rooted in moral accounting, with the main difference being the choice of fairness model.

The Internet Is A Highway System

Now that we have a basic understanding of what network neutrality is, let’s look at how its most complicated nuance is explained to the public via metaphor. We’re interested in it because, not only is it deployed to explain network policy implementation, but it creates entailments in the target domain that don’t match entailments in the source domain. We’ll call this metaphor, The Internet Is A Highway System.

In President Obama’s most recent address regarding network neutrality he made the following two promises about a network neutrality future. “There are no gatekeepers deciding which sites you get to access. .. There are no toll roads on the information superhighway.”3 Price discrimination via paid prioritization is then inferred by evoking “Internet slow lanes.” In this metaphor network packets are cars travelling down a road, and prioritization allows some of them to travel faster than others, slowing down the cars of the majority. Obama intentionally chose “slow lanes” instead of “fast lanes” to illustrate a negative, instead of a positive, aspect of this entailment.

The biggest problem with this metaphor is that all packets travel at the same speed, they all travel at roughly the speed of light. What prioritization actually determines is which packets are dropped when links exceed carrying capacity. The Internet does not guarantee delivery, and packets regularly get dropped, but cars don’t get discarded from the road if there are too many of them. Instead we get congestion and traffic backs up with cars not moving. This metaphor implies that some packets are just slightly faster than others, but all remain moving, or at least wait in line until they can move.

The reality is much more inelegant than that. When low priority packets are discarded the original sending computer has to resend them, creating yet more low priority packets that might be dropped. “Internet slow lanes” is too innocuous of a term for what is happening on the wire, and favors an anti-neutrality argument. A more accurate term might be “Internet drop precedence”, “Internet caste”, or “Internet service class”. Assuming Obama has smart speech writers, why is he not choosing the strongest framing possible?

Network Equality

Neutrality assumes there is an existing conflict that a neutral party is abstaining from. However, in the case of network neutrality, the conflict is in the network itself. Thus network neutrality is actually a neutral party abstaining from a conflict it itself is involved in. This doesn’t make any sense! This is not the same thing as Switzerland remaining neutral during a war between France and Germany. Switzerland remains neutral by not getting involved. How can a network remain neutral when it’s responsible for forwarding packets? Thus, a more accurate term for network neutrality would be network equality.

However, Obama cannot invoke any argument related to caste, class or equality in his arguments for net neutrality. Equality is viewed as disturbing the natural ordering of the market, whereas neutrality leaves the market alone. Calling for network equality would get Obama labeled a communist, and accused of inciting class warfare. Instead he needs to stick to the language of neutrality, when in fact network neutrality is about treating all packets equally, not neutrally. Thankfully the major proponents of network neutrality understand this framing dilemma, so we get arguments for neutral instead of equal networks.

Ted Cruz gets this as well when he says, “Net neutrality is Obamacare for the Internet.”4 This is a fallacious statement, but it possibly reveals Cruz understands that network neutrality is really about network equality. He’s trying to invoke the same framing of network neutrality that worked against the Affordable Care Act(ACA). In his strict father morality, equality is a direct threat to meritocratic distribution based on The Moral Order Is The Market. He knows most of his supporters see the world like this as well, so he’s attempting to frame network neutrality as an assault on the natural order. This statement is his attempt to frame the argument as constraining action by a do-gooder, nurturant parent who does more well intentioned harm than good.

Unfortunately for Ted Cruz, most of his supporters did not agree with this framing of network neutrality. Not because they don’t believe in systems of meritocratic distribution, but because they know that the ACA and network neutrality have nothing to do with one another. It’s an apples to oranges comparison.

Conclusion

I suspect, but have no real proof, that the average voter doesn’t trust statements where they notice a metaphor is being used rhetorically. I posit that people are more likely to view a rhetorical statement as disingenuous when the embedded metaphor is salient. Most people don’t know that it’s metaphor all the way down. When they’re confronted with a metaphorical explanation of a technological topic they find it disingenuous. They feel they’re being tricked. Maybe they are, obviously these metaphors are being deployed rhetorically, but so is everything a politician says.

We witnessed this when Ted Stevens made his infamous, “[The Internet is] a series of tubes” statement.5 Because the metaphor was so superficial in this statement, many people found it disingenuous. For an explanatory metaphor, it’s not actually that bad.

This paper is just a small example of some of the metaphors involved in the network neutrality debate. We have learned that underlying network neutrality are some primary metaphors for morality. That network “slow lanes” don’t really exist, and that equality, not neutrality, is ultimately what this debate is about. We’ve also learned that, given American political reality, framing the discussion in terms of neutrality instead of equality is more effective for proponents.

  1. Lakoff, George & Johnson, Mark, 1999. Philosophy in the Flesh: The Embodied Mind & its Challenge to Western Thought. New York: Basic Books.

  2. Wu, Tim, “Network Neutrality, Broadband Discrimination,” Journal of Telecommunications and High Technology Law, Vol. 2, p. 141, 2003.

  3. Obama, Barack, Net Neutrality: President Obama’s Plan for a Free and Open Internet

  4. Cruz, Ted, Twitter

  5. Petri, Alexander, Sen. Stevens, the tubes salute you, Washington Post, August 10, 2010. All URLs retrieved Nov 19, 2014

Framing Network Neutrality for the American Electorate was originally published by Andrew McConachie at Metafarce on January 28, 2015.

by Andrew McConachie (andrewm@ischool.berkeley.edu) at January 28, 2015 08:00 AM

January 27, 2015

Ph.D. alumna

Baby Boaz

Boaz Lotan Boyd saw the blizzard coming and knew it was time for him to enter this world. At 4PM on Monday, January 26, a little ball of fuzzy cuteness let out a yelp and announced his presence at a healthy 6 pounds 14 ounces. We are now snuggling in the hospital as the world outside gets blanketed with snow.

I’ll be on parental leave for a bit, but I don’t know exactly what that means. What I do know is that I will prioritize existing collaborations and my amazing team at Data & Society. Please be patient as my family bonds and we get our bearings. Time is the hardest resource to manufacture so please understand that I will probably not be particularly responsive for a while.

by zephoria at January 27, 2015 12:24 AM

January 26, 2015

Ph.D. student

The solution to Secular Stagnation is more gigantic stone monuments

Because I am very opinionated, I know what we should do about secular stagnation.

Secular stagnation is what economists are calling the problem of an economy that is growing incorrigibly slowly due to insufficient demand–low demand caused in part by high inequality. A consequence of this is that for the economy to maintain high levels of employment, real interest rates need to be negative. That is bad for people who have a lot of money and nothing to do with it. What, they must ask themselves in their sleepless nights, can we do with all this extra money, if not save it and earn interest?

History provides an answer for them. The great empires of the past that have had more money than they knew what to do with and lots of otherwise unemployed people built gigantic stone monuments. The Pyramids of Egypt. Angor Wat in Cambodia. Easter Island. Machu Pichu.

The great wonders of the world were all, in retrospect, enormous wastes of time and money. They also created full employment and will be considered amazing forever.

Chances like this do not come often in history.


by Sebastian Benthall at January 26, 2015 04:03 AM

January 19, 2015

MIMS 2012

Why I Became a Design Manager

At the start of 2015, I officially became a Design Manager at Optimizely. I transitioned from an individual contributor, product design role into a leadership role. For the entirety of my career up to this point, I had never planned on going into management. Doing hands-on, nitty-gritty design and coding work seemed so much more exciting and fulfilling. Management sounded more like a necessary evil than an interesting challenge. But since then, my thinking has changed. So why did I become a Design Manager?

When I joined Optimizely in September of 2012, the design team was just 2 people. I made it 3 in early 2013 when my role moved from engineering to design. And at the end of 2014, we were 16. (As of this writing we’re at 21!). So we’ve seen tremendous growth, and I’ve been present for all of it. And throughout this time, there had only been 1 manager for the entire team, which was not healthy for my manager or the team. The possibility of managing had been floated by me in mid-2014, but I wasn’t interested. I had been a Product Designer for less than a year and wasn’t ready to move on yet. I felt like I had just started hitting my stride as a designer, and wanted to continue honing my craft. I recognized the need for another manager, but I didn’t want it to be me.

As more designers joined Optimizely, I began taking on more managerial tasks. I also saw more issues rising within the team that our manager didn’t always have time to address. So in short, the importance of this role became more apparent, and the day-to-day work of the role became more real to me.

But the real turning point came when my manager went on vacation. In his absence, I was the go-to person for all of the team’s needs. I suspended most of my design work for this period, and really got a taste of what it would be like to work as a full-time manager. I started asking myself, “What if this was my full-time role? Would I enjoy it?” I went back and forth in my head quite a bit. The idea of leaving behind design and code was both scary and saddening. I had so much I was still looking forward to building! Plus, as we all know, change is hard.

But the team has more needs than our lone manager can handle. And I care deeply about the team, so for the greater good I decided it was time to step up. I realized that by helping my team be as great as possible, I would have a bigger impact on the company. And by working closer with engineering managers and PMs, I would have a bigger impact on the product. I’d be getting out of the weeds of day-to-day design to work on the product from a higher perspective across individuals and teams. The impact is less direct, but broader. All of this sounded tremendously exciting to me, and more impactful than individual contributor work.

I also realized the things I love about design (problem solving, ideating, etc.) would still be present in my new role. But instead of applying those skills to concrete visual interfaces, I would apply them to abstract team and personnel issues. I’d be using the design process to solve a different set of problems.

So when my manager got back from vacation, I told him my decision and we started transitioning me into a managerial role. As of the start of 2015, I’ve been managing full time and loving it. I’m still a bit sad to leave design work behind, and worry about my skills atrophying, but I look forward to the new challenges that await. It was a difficult decision that took me a long time to come around to, but I’m excited to make the team, product, and company as great as possible.

by Jeff Zych at January 19, 2015 08:32 PM

January 14, 2015

Ph.D. student

Communication complexity

Today at the Simons Institute Information Theory Boot Camp I learned about communication complexity.

This is exciting to me. I find complexity theory fascinating and I am always drawing on it in my understanding of phenomena in the world. But even though I study communication, and am very interested in both algorithmic information theory and computational complexity theory, I had never even heard of communication complexity until today! Even though it’s a theory that’s been around since 1979 and appears to be a bridge between the two!

After the talk today, a couple colleagues and I got into an argument about whether or not this theory is useful for anything. Of course, it’s useful for chip and network protocol design. But what about the social significance of it? Isn’t that what we care about at the School of Information–the social significance of technology?

Shaking my head. Just earlier I had been chatting with another colleague at the boot camp, a PhD candidate in electrical engineering whose work in my opinion has transformative social potential. She is working on privacy preserving distributed algorithm and protocol design. If her stuff works out, it could turn everything upside down.

It’s not surprising that an electrical engineer working of privacy preserving protocols would be interested in formal complexity theory as applied to digital communication. Suppose she develops her amazing invention. Five years later, scholars who restrict their studies to the “social impact” of technology will be scrambling to explain and adapt to the changes her work has wrought, all the while insisting that the formal theories used to develop it are irrelevant to their work.

Perhaps it is irrelevant to their work because of the incentives that drive them. If your main purpose is to sound expert about the role of technology to other people, you definitely don’t want to speak about cryptic things that are hard to understand. You want to be able to tell a good story. That’s what gives your work ‘social impact’.

Maybe that’s it. If you think the purpose of theory is to communicate ideas, then only the interesting ideas will have a social impact. If you can’t see why an idea is interesting, then there’s no point to it, right?

On the other hand, if you think the purpose of theory is as a guide to praxis of some kind, including design, then you have every reason to learn and evaluate theories in a different way. You search for useful theory, theory that points to ways to make an impact.

Something I’ve been trying to do in my work recently is show how theories from disciplines that are not natively technical can be used to inform technical design. I want to do this because I think that there are good insights in disciplines that think about social phenomena about how to make the world a better place. Many of these insights come from those who think critically about technology. But when people who think critically about technology and its social significance so glibly exempt themselves from understanding how the technology works, that drives me up the wall. The extraordinary amount of effort that has gone into the design of the computer chip or the telecommunications system is a triumphant meditation on the social significance of technology. There are values embedded in that design. Those values can be understood in part by understanding the theories that informed those designs, theories that describe the hard limits of what’s possible with computing, the limits of humanity’s ability to understand or communicate or triumph over nature. It’s beautiful, poetic theory about the tradeoffs inherent in any technical solution.

But it’s irrelevant, because these are solutions that are taken for granted, forgotten, and then criticized by those who had no need to understand how the world that shaped them works, because it works so well. In the Phaedrus, Socrates warned that a dependence on writing for recording knowledge would lead to forgetting. Today, a dependence of technology for embodying values and techniques has lead to a special ignorance where we hold the ephemerality of fashion and passion to be of highest significance, and what is firmest and most enduring is the least. I wonder what will happen when the infrastructure begins to decay.


by Sebastian Benthall at January 14, 2015 04:23 AM

January 09, 2015

Ph.D. student

Know-how is not interpretable so algorithms are not interpretable

I happened upon Hildreth and Kimble’s “The duality of knowledge” (2002) earlier this morning while writing this and have found it thought-provoking through to lunch.

What’s interesting is that it is (a) 12 years old, (b) a rather straightforward analysis of information technology, expert systems, ‘knowledge management’, etc. in light of solid post-Enlightenment thinking about the nature of knowledge, and (c) an anticipation of the problems of ‘interpretability’ that were a couple months ago at least an active topic of academic discussion. Or so I hear.

This is the paper’s abstract:

Knowledge Management (KM) is a field that has attracted much attention both in academic and practitioner circles. Most KM projects appear to be primarily concerned with knowledge that can be quantified and can be captured, codified and stored – an approach more deserving of the label Information Management.

Recently there has been recognition that some knowledge cannot be quantified and cannot be captured, codified or stored. However, the predominant approach to the management of this knowledge remains to try to convert it to a form that can be handled using the ‘traditional’ approach.

In this paper, we argue that this approach is flawed and some knowledge simply cannot be captured. A method is needed which recognises that knowledge resides in people: not in machines or documents. We will argue that KM is essentially about people and the earlier technology driven approaches, which failed to consider this, were bound to be limited in their success. One possible way forward is offered by Communities of Practice, which provide an environment for people to develop knowledge through interaction with others in an environment where knowledge is created nurtured and sustained.

The authors point out that Knowledge Management (KM) is an extension of the earlier program of Artificiali Intelligence, depends on a model of knowledge that maintains that knowledge can be explicitly represented and hence stored and transfered, and propose an alternative way of thinking about things based on the Communities of Practice framework.

A lot of their analysis is about the failures of “expert systems”, which is a term that has fallen out of use but means basically the same thing as the contemporary uncomputational scholarly use of ‘algorithm’. An expert system was a computer program designed to make decisions about things. Broadly speaking, a search engine is a kind of expert system. What’s changed are the particular techniques and algorithms that such systems employ, and their relationship with computing and sensing hardware.

Here’s what Hildreth and Kimble have to say about expert systems in 2002:

Viewing knowledge as a duality can help to explain the failure of some KM initiatives. When the harder aspects are abstracted in isolation the representation is incomplete: the softer aspects of knowledge must also be taken into account. Hargadon (1998) gives the example of a server holding past projects, but developers do not look there for solutions. As they put it, ‘the important knowledge is all in people’s heads’, that is the solutions on the server only represent the harder aspects of the knowledge. For a complete picture, the softer aspects are also necessary. Similarly, the expert systems of the 1980s can be seen as failing because they concentrated solely on the harder aspects of knowledge. Ignoring the softer aspects meant the picture was incomplete and the system could not be moved from the environment in which it was developed.

However, even knowledge that is ‘in people’s heads’ is not sufficient – the interactive aspect of Cook and Seely Brown’s (1999) ‘knowing’ must also be taken into account. This is one of the key aspects to the management of the softer side to knowledge.

In 2002, this kind of argument was seen as a valuable critique of artificial intelligence and the practices based on it as a paradigm. But already by 2002 this paradigm was falling away. Statistical computing, reinforcement learning, decision tree bagging, etc. were already in use at this time. These methods are “softer” in that they don’t require the “hard” concrete representations of the earlier artificial intelligence program, which I believe by that time was already refered to as “Good Old Fashioned AI” or GOFAI by a number of practicioners.

(I should note–that’s a term I learned while studying AI as an undergraduate in 2005.)

So throughout the 90’s and the 00’s, if not earlier, ‘AI’ transformed into ‘machine learning’ and become the implementation of ‘soft’ forms of knowledge. These systems are built to learn to perform a task optimally based flexibly on feedback from past performance. They are in fact the cybernetic systems imagined by Norbert Wiener.

Perplexing, then, is the contemporary problem that the models created by these machine learning algorithms are opaque to their creators. These models were created using techniques that were designed precisely to solve the problems that systems based on explicit, communicable knowledge were meant to solve.

If you accept the thesis that contemporary ‘algorithms’-driven systems are well-designed implementations of ‘soft’ knowledge systems, then you get some interesting conclusions.

First, forget about interpeting the learned models of these systems and testing them for things like social discrimination, which is apparently in vogue. The right place to focus attention is on the function being optimized. All these feedback-based systems–whether they be based on evolutionary algorithms, or convergence on local maxima, or reinforcement learning, or whatever–are designed to optimize some goal function. That goal function is the closest thing you will get to an explicit representation of the purpose of the algorithm. It may change over time, but it should be coded there explicitly.

Interestingly, this is exactly the sense of ‘purpose’ that Wiener proposed could be applied to physical systems in his landmark essay, published with Rosenbleuth and Bigelow, “Purpose, Behavior, and Teleology.” In 1943. Sly devil.

EDIT: An excellent analysis of how fairness can be represented as an explicit goal function can be found in Dwork et al. 2011.

Second, because what the algorithms is designed to optimize is generally going to be something like ‘maximize ad revenue’ and not anything particularly explicitly pernicious like ‘screw over the disadvantaged people’, this line of inquiry will raise some interesting questions about, for example, the relationship between capitalism and social justice. By “raise some interesting questions”, I mean, “reveal some uncomfortable truths everyone is already aware of”. Once it becomes clear that the whole discussion of “algorithms” and their inscrutability is just a way of talking about societal problems and entrenched political interests without talking about it, it will probably be tabled due to its political infeasibility.

That is (and I guess this is the third point) unless somebody can figure out how to explicitly define the social justice goals of the activists/advocates into a goal function that could be implemented by one of these soft-touch expert systems. That would be rad. Whether anybody would be interested in using or investing in such a system is an important open question. Not a wide open question–the answer is probably “Not really”–but just open enough to let some air onto the embers of my idealism.


by Sebastian Benthall at January 09, 2015 05:52 PM

Horkheimer and Wiener

[I began writing this weeks ago and never finished it. I’m posting it here in its unfinished form just because.]

I think I may be condemning myself to irrelevance by reading so many books. But as I make an effort to read up on the foundational literature of today’s major intellectual traditions, I can’t help but be impressed by the richness of their insight. Something has been lost.

I’m currently reading Norbert Wiener’s The Human Use of Human Beings (1950) and Max Horkheimer’s Eclipse of Reason (1947). The former I am reading for the Berkeley School of Information Classics reading group. Norbert Wiener was one of the foundational mathematicians of 20th century information technology, a colleague of Claude Shannon. Out of his own sense of social responsibility, he articulated his predictions for the consequences of the technology he developed in Human Use. This work was the foundation of cybernetics, an influential school of thought in the 20th century. Terrell Bynum, in his Stanford Encyclopedia of Philosophy article on “Computer and Information Ethics“, attributes to Wiener’s cybernetics the foundation of all future computer ethics. (I think that the threads go back earlier, at least through to Heidegger’s Question Concerning Technology.) It is hard to find a straight answer to the question of what happened to cybernetics?. By some reports, the artificial intelligence community cut their NSF funding in the 60’s.

Horkheimer is one of the major thinkers of the very influential Frankfurt School, the postwar social theorists at the core of intellectual critical theory. Of the Frankfurt School, perhaps the most famous in the United States is Adorno. Adorno is also the most caustic and depressed, and unfortunately much of popular critical theory now takes on his character. Horkheimer is more level-headed. Eclipse of Reason is an argument about the ways that philosophical empiricism and pragmatism became complicit in fascism. Here is an interested quotation.

It is very interesting to read them side by side. Published only a few years apart, Wiener and Horkheimer are giants of two very different intellectual traditions. There’s little reason to expect they ever communicated (a more thorough historian would know more). But each makes sweeping claims about society, language, and technology and contextualizes them in broader intellectual awareness of religion, history and science.

Horkheimer writes about how the collapse of the Enlightment project of objective reason has opened the way for a society ruled by subjective reason, which he characterizes as the reason of formal mathematics and scientific thinking that is neutral to its content. It is instrumental thinking in its purest, most rigorous form. His descriptions of it sound like gestures to what we today call “data science”–a set of mechanical techniques that we can use to analyze and classify anything, perfecting our understanding of technical probabilities towards whatever ends one likes.

I find this a more powerful critique of data science than recent paranoia about “algorithms”. It is frustrating to read something over sixty years old that covers the same ground as we are going over again today but with more composure. Mathematized reasoning about the world is an early 20th century phenomenon and automated computation a mid-20th century phenomenon. The disparities in power that result from the deployment of these tools were thoroughly discussed at the time.

But today, at least in my own intellectual climate, it’s common to hear a mention of “logic” with the rebuttal “whose logic?“. Multiculturalism and standpoint epistemology, profoundly important for sensitizing researchers to bias, are taken to an extreme the glorifies technical ignorance. If the foundation of knowledge is in ones lived experience, as these ideologies purport, and one does not understand the technical logic used so effectively by dominant identity groups, then one can dismiss technical logic as merely a cultural logic of an opposing identity group. I experience the technically competent person as the Other and cannot perceive their actions as skill but only as power and in particular power over me. Because my lived experience is my surest guide, what I experience must be so!

It is simply tragic that the education system has promoted this kind of thinking so much that it pervades even mainstream journalism. This is tragic for reasons I’ve expressed in “objectivity is powerful“. One solution is to provide more accessible accounts of the lived experience of technicality through qualitative reporting, which I have attempted in “technical work“.

But the real problem is that the kind of formal logic that is at the foundation of modern scientific thought, including its most recent manifestation ‘data science’, is at its heart perfectly abstract and so cannot be captured by accounts of observed practices or lived experience. It is reason or thought. Is it disembodied? Not exactly. But at least according to constructivist accounts of mathematical knowledge, which occupy a fortunate dialectical position in this debate, mathematical insight is built from embodied phenomenological primitives but by their psychological construction are abstract. This process makes it possible for people to learn abstract principles such as the mathematical theory of information on which so much of the contemporary telecommunications and artificial intelligence apparatus depends. These are the abstract principles with which the mathematician Norbert Wiener was so intimately familiar.


by Sebastian Benthall at January 09, 2015 04:00 PM

Privacy, trust, context, and legitimate peripheral participation

Privacy is important. For Nissenbaum, what’s essential to privacy is control over context. But what is context?

Using Luhmann’s framework of social systems–ignoring for a moment e.g. Habermas’ criticism and accepting the naturalized, systems theoretic understanding of society–we would have to see a context as a subsystem of the total social system. In so far as the social system is constituted by many acts of communication–let’s visualize this as a network of agents, whose edges are acts of communication–then a context is something preserved by configurations of agents and the way they interact.

Some of the forces that shape a social system will be exogenous. A river dividing two cities or, more abstractly, distance. In the digital domain, the barriers of interoperability between one virtual community infrastructure and another.

But others will be endogenous, formed from the social interactions themselves. An example is the gradual deepening of trust between agents based on a history of communication. Perhaps early conversations are formal, stilted. Later, an agent takes a risk, sharing something more personal–more private? It is reciprocated. Slowly, a trust bond, an evinced sharing of interests and mutual investment, becomes the foundation of cooperation. The Prisoner’s Dilemma is solved the old fashioned way.

Following Carey’s logic that communication as mere transmission when sustained over time becomes communication as ritual and the foundation of community, we can look at this slow process of trust formation as one of the ways that a context, in Nissenbaum’s sense, perhaps, forms. If Anne and Betsy have mutually internalized each others interests, then information flow between them will by and large support the interests of the pair, and Betsy will have low incentives to reveal private information in a way that would be detrimental to Anne.

Of course this is a huge oversimplification in lots of ways. One way is that it does not take into account the way the same agent may participant in many social roles or contexts. Communication is not a single edge from one agent to another in many circumstances. Perhaps the situation is better represented as a hypergraph. One reason why this whole domain may be so difficult to reason about is the sheer representational complexity of modeling the situation. It may require the kind of mathematical sophistication used by quantum physicists. Why not?

Not having that kind of insight into the problem yet, I will continue to sling what the social scientists call ‘theory’. Let’s talk about an exisiting community of practice, where the practice is a certain kind of communication. A community of scholars. A community of software developers. Weird Twitter. A backchannel mailing list coordinating a political campaign. A church.

According to Lave and Wenger, the way newcomers gradually become members and oldtimers of a community of practice is legitimate peripheral participation. This is consistent with the model described above characterizing the growth of trust through gradually deepening communication. Peripheral participation is low-risk. In an open source context, this might be as simple as writing a question to the mailing list or filing a bug report. Over time, the agent displays good faith and competence. (I’m disappointed to read just now that Wenger ultimately abandoned this model in favor of a theory of dualities. Is that a Hail Mary for empirical content for the theory? Also interested to follow links on this topic to a citation of von Krogh 1998, whose later work found its way onto my Open Collaboration and Peer Production syllabus. It’s a small world.

I’ve begun reading as I write this fascinating paper by Hildreth and Kimble 2002 and am now have lost my thread. Can I recover?)

Some questions:

  • Can this process of context-formation be characterized empirically through an analysis of e.g. the timing dynamics of communication (c.f. Thomas Maillart’s work)? If so, what does that tell us about the design of information systems for privacy?
  • What about illegitimate peripheral participation? Arguably, this blog is that kind of participation–it participates in a form of informal, unendorsed quasi-scholarship. It is a tool of context and disciplinary collapse. Is that a kind of violation of privacy? Why not?

by Sebastian Benthall at January 09, 2015 03:54 PM

January 08, 2015

Ph.D. student

Come to the Trace Ethnography workshop at the 2015 iConference!

We’re organizing a workshop on trace ethnography at the 2015 iConference, led by Amelia Acker, Matt Burton, David Ribes, and myself. See more information about it on the workshop’s website, or feel free to contact me for more information.

Date: March 24th 2015, 9:00-a.m.-5:00 p.m.

Location: iConference venue, Newport Beach Marriott Hotel & Spa, Newport Beach, CA

Deadline to register through this form: Feb 1st, 2015. Note: you will also have to register through the official iConference website as well.

Notification: Feb 15th, 2015

Description: This workshop introduces participants to trace ethnography, building a network of scholars interested in the collection and interpretation of trace data and distributed documentary practices. The intended audience is broad, and participants need not have any existing experience working with trace data from either qualitative or quantitative approaches. The workshop provides an interactive introduction to the background, theories, methods, and applications–present and future–of trace ethnography. Participants with more experience in this area will demonstrate how they apply these techniques in their own research, discussing various issues as they arise. The workshop is intended to help researchers identify documentary traces, plan for their collection and analysis, and further formulate trace ethnography as it is currently conceived. In all, this workshop will support the advancement of boundaries, theories, concepts, and applications in trace ethnography, identifying the diversity of approaches that can be assembled around the idea of ‘trace ethnography’ within the iSchool community.

by stuart at January 08, 2015 04:23 PM

December 23, 2014

Ph.D. student

Horkheimer, pragmatism, and cognitive ecology

In Eclipse of Reason, Horkheimer rips into the American pragmatists Peirce, James, and Dewey like nobody I’ve ever read. Normally seen as reasonable and benign, Horkheimer paints these figures as ignorant and undermining of the whole social order.

The reason is that he believes that they reduce epistemology to a kind a instrumentalism. But that’s selling their position a bit short. Dewey’s moral epistemology is pragmatist in that it is driven by particular, situated interests and concerns, but these are ingredients to moral inquiry and not conclusions in themselves.

So to the extent that Horkheimer is looking to dialectic reason as the grounds to uncovering objective truths, Dewey’s emphasis on the establishing institutions that allow for meaningful moral inquiry seems consistent with Horkheimer’s view. The difference is in whether the dialectics are trancendental (as for Kant) or immanent (as for Hegel?).

The tension around objectivity in epistemology that comes up in the present academic environment is that all claims to objectivity are necessarily situated and this situatedness is raised as a challenge to their objective status. If the claims or their justification depend on conditions that exclude some subjects (as they no doubt do; whether or not dialectical reason is transcendental or immanent is requires opportunities for reflection that are rare–privileged), can these conclusions be said to be true for all subjects?

The Friendly AI research program more or less assumes that yes, this is the case. Yudkowsky’s notion of Coherent Extrapolated Volition–the position arrived at by simulated, idealized reasoners, is a 21st century remake of Peirce’s limiting consensus of the rational. And yet the cry from standpoint theorists and certain anthropologically inspired disciplines is a recognition of the validity of partial perspectives. Haraway, for example, calls for an alliance of partial perspectives. Critical and adversarial design folks appear to have picked up this baton. Their vision is of a future of constantly vying (“agonistic”) partiality, with no perspective presuming to be settled, objective or complete.

If we make cognitivist assumptions about the computationality of all epistemic agents, then we are forced to acknowledge the finiteness of all actually existing reasoning. Finite capacity and situatedness become two sides of the same coin. Partiality, then, becomes a function of both ones place in the network (eccentricity vs. centrality) as well as capacity to integrate information from the periphery. Those locations in the network most able to valuably integrate information, whether they be Google’s data centers or the conversational hubs of research universities, are more impartial, more objective. But they can never be the complete system. Because of their finite capacity, their representations can at best be lossy compressions of the whole.

Horkheimer dreams of an objective truth obtainable by a single subject through transcendental dialectic. Perhaps he thinks this is unattainable today (I have to read on). But if there’s hope in this vision, it seems to me it must come from one of two possibilities:

  • The fortuitously fractal structure of the sociotechnical world such that an adequate representation of it can be maintained in its epistemic hubs through quining, or
  • A generative grammar or modeling language of cognitive ecology such that we can get insights into the larger interactive system from toy models, and apply these simplified models pragmatically in specific cases. For this to work and not suffer the same failures as theoretical economics, these models need to have empirical content. Something like Wolpert, Lee, and Bono’s Predictive Game Theory (for which I just discovered they’ve released a Python package…cool!) may be critical here.

by Sebastian Benthall at December 23, 2014 03:56 AM

December 21, 2014

Ph.D. student

Eclipse of Reason

I’m starting to read Max Horkheimer’s Eclipse of Reason. I have had high hopes for it and have not been disappointed.

The distinction Horkheimer draws in the first section, “Means and Ends”, is between subjective reason and objective reason.

Subjective reason is the kind of reasoning that is used to most efficiently achieve ones goals, whatever they are. Writing even as early as 1947, Horkheimer notes that subjective reason has become formalized and reduced to the computation of technical probabilities. He is referring to the formalization of logic in the Anglophone tradition by Russell and Whitehead and its use in early computer science, most likely. (See Imre Lakatos and programming as dialectic for more background on this, as well as resonant material on where this is going)

Objective reason is, within a simple “means/ends” binary, most simply described as the reasoning of ends. I am not very far through the book and Horkheimer is so far unspecific about what this entails in practice but instead articulates it as an idea that has fallen out of use. He associates it with Platonic forms. With logos–a word that becomes especially charged for me around Christmas and whose religious connotations are certainly intertwined with the idea of objectivity. Since it is objective and not bound to a particular subject, the rationality of correct ends is the rationality of the whole world or universe, it’s proper ordering or harmony. Humanity’s understanding of it is not a technical accomplishment so much an achievement of revelation or wisdom achieved–and I think this is Horkheimer’s Hegelian/Marxist twist–dialectically.

Horkheimer in 1947 believes that subjective reason, and specifically its formalization, have undermined objective reason by exposing its mythological origins. While we have countless traditions still based in old ideologies that give us shared values and norms simply out of habit, they have been exposed as superstition. And so while our ability to achieve our goals has been amplified, our ability to have goals with intellectual integrity has hollowed out. This is a crisis.

One reason this is a crisis is because (to paraphrase) the functions once performed by objectivity or authoritarian religion or metaphysics are now taken on by the reifying apparatus of the market. This is a Marxist critique that is apropos today.

It is not hard to see that Horkheimer’s critique of “formalized subjective reason” extends to the wide use of computational statistics or “data science” in the vast ways it is now. Moreover, it’s easy to see how the “Internet of Things” and everything else instrumented–the Facebook user interface, this blog post, everything else–participates in this reifying market apparatus. Every critique of the Internet and the data economy from the past five years has just been a reiteration of Horkheimer, whose warning came loud and clear in the 40’s.

Moreover, the anxieties of the “apocalyptic libertarians” of Sam Franks article, the Less Wrong theorists of friendly and unfriendly Artificial intelligence, are straight out of the old books of the Frankfurt School. Ironically, todays “rationalists” have no awareness of the broader history of rationality. Rather, their version of rationality begins with Von Neummann, and ends with two kinds of rationality, “epistemic rationality”, about determining correct beliefs, and “instrumental rationality”, about correctly reaching ones ends. Both are formal and subjective, in Horkheimer’s analysis; they don’t even have a word for ‘objective reason’, it has so far fallen away from their awareness of what is intellectually possible.

But the consequence is that this same community lives in fear of the unfriendly AI–a superintelligence driven by a “utility function” so inhuman that it creates a dystopia. Unarmed with the tools of Marxist criticism, they are unable to see the present economic system as precisely that inhuman superintelligence, a monster bricolage of formally reasoning market apparati.

For Horkheimer (and I’m talking out of my butt a little here because I haven’t read enough of the book to really know; I’m going on some context I’ve read up on early) the formalization and automation of reason is part of the problem. Having a computer think for you is very different from actually thinking. The latter is psychologically transformative in ways that the former is not. It is hard for me to tell whether Horkheimer would prefer things to go back the way they were, or if he thinks that we must resign ourselves to a bleak inhuman future, or what.

My own view, which I am worried is deeply quixotic, is that a formalization of objective reason would allow us to achieve its conditions faster. You could say I’m a logos-accelerationist. However, if the way to achieve objective reason is dialectically, then this requires a mathematical formalization of dialectic. That’s shooting the moon.

This is not entirely unlike the goals and position of MIRI in a number of ways except that I think I’ve got some deep intellectual disagreements about their formulation of the problem.


by Sebastian Benthall at December 21, 2014 11:46 PM

Reflecting on “Technoscience and Expressionism” by @FractalOntology

I’ve come across Joseph Weissman’s (@FractalOntology) “Technoscience and Expressionism” and am grateful for it, as its filled me in on a philosophical position that I missed the first time around, accelerationism. I’m not a Deleuzian and prefer my analytic texts to plod, so I can’t say I understood all of the essay. On the other hand, I gather the angle of this kind of philosophizing is intentionally psychotherapeutic and hence serves and artistic/literary function rather than one that explicitly guides praxis.

I am curious about the essay because I would like to see a thorough analysis of the political possibilities for the 21st century that gets past 20th century tropes. The passions of journalistic and intellectual debate have an atavistic tendency due to a lack of imagination that I would like to avoid in my own life and work.

Accelerationism looks new. It was pronounced in a manifesto, which is a good start.

Here is a quote from it:

Democracy cannot be defined simply by its means — not via voting, discussion, or general assemblies. Real democracy must be defined by its goal — collective self-​mastery. This is a project which must align politics with the legacy of the Enlightenment, to the extent that it is only through harnessing our ability to understand ourselves and our world better (our social, technical, economic, psychological world) that we can come to rule ourselves. We need to posit a collectively controlled legitimate vertical authority in addition to distributed horizontal forms of sociality, to avoid becoming the slaves of either a tyrannical totalitarian centralism or a capricious emergent order beyond our control. The command of The Plan must be married to the improvised order of The Network.

Hell yeah, the Enlightenment! Sign me up!

The manifesto calls for an end to the left’s emphasis on local action, transparency, and direct democracy. Rather, it calls for a muscular hegemonic left that fully employs and deploys “technoscience”.

It is good to be able to name this political tendency and distinguish it from other left tendencies. It is also good to distinguish it from “right accelerationism”, which Weissman identifies with billionaires who want to create exurb communities.

A left-accelerationist impulse is today playing out dramatically against a right-accelerationist one. And the right-accelerationists are about as dangerous as you may imagine. With silicon valley VCs, and libertarian technologists more generally reading Nick Land on geopolitical fragmentation, the reception or at least receptivity to hard-right accelerants seems problematically open (and the recent $2M campaign proposing the segmentation of California into six microstates seems to provide some evidence for this.) Billionaires consuming hard-right accelerationist materials arguing for hyper-secessionism undoubtedly amounts to a critically dangerous situation. I suspect that the right-accelerationist materials, perspectives, affect, energy expresses a similar shadow, if it is not partly what is catalyzing the resurgence of micro-fascisms elsewhere (and macro ones as well — perhaps most significant to my mind here is the overlap of right-acceleration with white nationalism, and more generally what is deplorably and disingenuously called “race realism” — and is of course simply racism; consider Marine le Pen’s fascist front, which recently won 25% of the seats in the French parliament, UKIP’s resurgence in Great Britain; while we may not hear accelerationist allegiances and watchwords explicitly, the political implications and continuity is at the very least somewhat unsettling…)

There is an unfortunate conflation of several different points of view here. It is too easy to associate racism, wealth, and libertarianism as these are the nightmares of the left’s political imagination. If ideological writing is therapeutic, a way of articulating ones dreams, then this is entirely appropriate with a caveat. The caveat being that every nightmare is a creation of ones own psychology more so than a reflection of the real world.

The same elisions are made by Sam Frank in his recent article thematizing Silicon Valley libertarianism, friendly artificial intelligence research, and contemporary rationalism as a self-help technique. There are interesting organizational ties between these institutions that are validly worth investigating but it would be lazy to collapse vast swathes of the intellectual spectrum into binaries.

In March 2013 I wrote about the Bay Area Rationalists:

There is a good story here, somewhere. If I were a journalist, I would get in on this and publish something about it, just because there is such a great opportunity for sensationalist exploitation.

I would like to say “I called it”–Sam Frank has recently written just such a sensationalist, exploitative piece in Harper’s Magazine. It is thoroughly enjoyable and I wouldn’t say it’s inaccurate. But I don’t think this is the best way to get to know these people. A better one is to attend a CFAR workshop. It used to be that you could avoid the fee with a promise to volunteer, but that there was a money-back guarantee which extended to ones promise to volunteer. If that’s still the case, then one can essentially attend for free.

Another way to engage this community intellectually, which I would encourage the left accelerationists to do because it’s interesting, is to start participating on LessWrong. For some reason this community is not subject to ideological raids like so many other community platforms. I think it could stand for an influx of Deleuze.

Ultimately the left/right divide comes down to a question of distribution of resources and/or surplus. Left accelerationist tactics appear from here to be a more viable way of seizing resources than direct democracy. However, the question is whether accelerationist tactics inevitably result in inequalities that create control structures of the kind originally objected to. In other words, this may simply be politics as usual and nothing radical at all.

So there’s an intersection between these considerations (accelerationist vs. … decelerationism? Capital accumulation vs. capital redistribution?) and the question of decentralization of decision-making process (is that the managerialism vs. multistakeholderism divide?) whose logic is unclear to me. I want to know which affinities are necessary and which are merely contingent.


by Sebastian Benthall at December 21, 2014 06:36 PM

Imre Lakatos and programming as dialectic

My dissertation is about the role of software in scholarly communication. Specifically, I’m interested in the way software code is itself a kind of scholarly communication, and how the informal communications around software production represent and constitute communities of scientists. I see science as a cognitive task accomplished by the sociotechnical system of science, including both scientists and their infrastructure. Looking particularly at scientist’s use of communications infrastructure such as email, issue trackers, and version control, I hope to study the mechanisms of the scientific process much like a neuroscientist studies the mechanisms of the mind by studying neural architecture and brainwave activity.

To get a grip on this problem I’ve been building BigBang, a tool for collecting data from open source projects and readying it for scientific analysis.

I have also been reading background literature to give my dissertation work theoretical heft and to procrastinate from coding. This is why I have been reading Imre Lakatos’ Proofs and Refutations (1976).

Proofs and Refutations is a brilliantly written book about the history of mathematical proof. In particular, it is an analysis of informal mathematics through an investigation of the letters written by mathematicians working on proofs about the Euler characteristic of polyhedra in the 18th and 19th centuries.

Whereas in the early 20th century, based on the work of Russel and Whitehead and others, formal logic was axiomatized, prior to this mathematical argumentation had less formal grounding. As a result, mathematicians would argue not just substantively about the theorem they were trying to prove or disprove, but also about what constitutes a proof, a conjecture, or a theorem in the first place. Lakatos demonstrates this by condensing 200+ years of scholarly communication into a fictional, impassioned classroom dialog where characters representing mathematicians throughout history banter about polyhedra and proof techniques.

What’s fascinating is how convincingly Lakatos presents the progress of mathematical understanding as an example of dialectical logic. Though he doesn’t use the word “dialectical” as far as I’m aware, he tells the story of the informal logic of pre-Russellian mathematics through dialog. But this dialog is designed to capture the timeless logic behind what’s been said before. It takes the reader through the thought process of mathematical discovery in abbreviated form.

I’ve had conversations with serious historians and ethnographers of science who would object strongly to the idea of a history of a scientific discipline reflecting a “timeless logic”. Historians are apt to think that nothing is timeless. I’m inclined to think that the objectivity of logic persists over time much the same way that it persists over space and between subjects, even illogical ones, hence its power. These are perhaps theological questions.

What I’d like to argue (but am not sure how) is that the process of informal mathematics presented by Lakatos is strikingly similar to that used by software engineers. The process of selecting a conjecture, then of writing a proof (which for Lakatos is a logical argument whether or not it is sound or valid), then having it critiqued with counterexamples, which may either be global (counter to the original conjecture) or local (counter to a lemma), then modifying the proof, then perhaps starting from scratch based on a new insight… all this reads uncannily like the process of debugging source code.

The argument for this correspondence is strengthened by later work in theory of computation and complexity theory. I learned this theory so long ago I forget who to attribute it to, but much of the foundational work in computer science was the establishment of a correspondence between classes of formal logic and classes of programming languages. So in a sense its uncontroversial within computer science to consider programs to be proofs.

As I write I am unsure whether I’m simply restating what’s obvious to computer scientists in an antiquated philosophical language (a danger I feel every time I read a book, lately) or if I’m capturing something that could be an interesting synthesis. But my point is this: that if programming language design and the construction of progressively more powerful software libraries is akin to the expanding of formal mathematical knowledge from axiomatic grounds, then the act of programming itself is much more like the informal mathematics of pre-Russellian mathematics. Specifically, in that it is unaxiomatic and proofs are in play without necessarily being sound. When we use a software system, we are depending necessarily on a system of imperfected proofs that we fix iteratively through discovered counterexamples (bugs).

Is it fair to say, then, that whereas the logic of software is formal, deductive logic, the logic of programming is dialectical logic?

Bear with me; let’s presume it is. That’s a foundational idea of my dissertation work. Proving or disproving it may or may not be out of scope of the dissertation itself, but it’s where it’s ultimately headed.

The question is whether it is possible to develop a formal understanding of dialectical logic through a scientific analysis of the software collaboration. (see a mathematical model of collective creativity). If this could be done, then we could then build better software or protocols to assist this dialectical process.


by Sebastian Benthall at December 21, 2014 03:23 PM

December 20, 2014

Ph.D. student

Discourse theory of law from Habermas

There has been at least one major gap in my understanding of Habermas’s social theory which I’m just filling now. The position Habermas reaches towards the end of Theory of Communicative Action vol 2 and develops further in later work in Between Facts and Norms (1992) is the discourse theory of law.

What I think went on is that Habermas eventually gave up on deliberative democracy in its purest form. After a career of scholarship about the public sphere, the ideal speech situation, and communicative action–fully developing the lifeworld as the ground for legitimate norms–but eventually had to make a concession to “the steering media” of money and power as necessary for the organization of society at scale. But at the intersection between lifeworld and system is law. Lawserves as a transmission belt between legitimate norms established by civil society and “system”; at it’s best it is both efficacious and legitimate.

Law is ambiguous; it can serve both legitimate citizen interests united in communicative solidarity. It can also serve strong powerful interests. But it’s where the action is, because it’s where Habermas sees the ability for lifeworld to counter-steer the whole political apparatus towards legitimacy, including shifting the balance of power between lifeworld and system.

This is interesting because:

  • Habermas is like the last living heir of the Frankfurt School mission and this is a mature and actionable view nevertheless founded in the Critical Theory tradition.
  • If you pair it with Lessig’s Code is Law thesis, you get a framework for thinking about how technical mediation of civil society can be legitimate but also efficacious. I.e., code can be legitimized discoursively through communicative action. Arguably, this is how a lot of open source communities work, as well as standards bodies.
  • Thinking about managerialism as a system of centralized power that provides a framework of freedoms within it, Habermas seems to be presenting an alternative model where law or code evolves with the direct input of civil stakeholders. I’m fascinated by where Nick Doty’s work on multistakeholderism in the W3C is going and think there’s an alternative model in there somewhere. There’s a deep consistency in this, noted a while ago (2003) by Froomkin but largely unacknowledged as far as I can tell in the Data and Society or Berkman worlds.

I don’t see in Habermas anything about funding the state. That would mean acknowledging military force and the power to tax. But this is progress for me.

References

Zurn, Christopher. “Discourse theory of law”, in Jurgen Habermas: Key Concepts, edited by Barbara Fultner


by Sebastian Benthall at December 20, 2014 04:43 AM

December 15, 2014

Ph.D. student

Some research questions

Last week was so interesting. Some weeks you just get exposed to so many different ideas that it’s trouble to integrate them. I tried to articulate what’s been coming up as a result. It’s several difficult questions.

  • Assuming trust is necessary for effective context management, how does one organize sociotechnical systems to provide social equity in a sustainable way?
  • Assuming an ecology of scientific practices, what are appropriate selection mechanisms (or criteria)? Are they transcendent or immanent?
  • Given the contradictory character of emotional reality, how can psychic integration occur without rendering one dead or at least very boring?
  • Are there limitations of the computational paradigm imposed by data science as an emerging pan-constructivist practice coextensive with the limits of cognitive or phenomenological primitives?

Some notes:

  • I think that two or three of these questions above may be in essence the same question. In that they can be formalized into the same mathematical problem, and the solution is the same in each case.
  • I really do have to read Isabelle Stengers and Nancy Nersessian. Based on the signals I’m getting, they seem to be the people most on top of their game in terms of understanding how science happens.
  • I’ve been assuming that trust relations are interpersonal but I suppose they can be interorganizational as well, or between a person and an organization. This gets back to a problem I struggle with in a recurring way: how do you account for causal relationships between a macro-organism (like an organization or company) and a micro-organism? I think it’s when there are entanglements between these kinds of entities that we are inclined to call something an “ecosystem”, though I learned recently that this use of the term bothers actual ecologists (no surprise there). The only things I know about ecology are from reading Ulanowicz papers, but those have been so on point and beautiful that I feel I can proceed with confidence anyway.
  • I don’t think there’s any way to get around having at least a psychological model to work with when looking at these sorts of things. A recurring an promising angle is that of psychic integration. Carl Jung, who has inspired clinical practices that I can personally vouch for, and Gregory Bateson both understood the goal of personal growth to be integration of disparate elements. I’ve learned recently from Turner’s The Democratic Surround that Bateson was a more significant historical figure than I thought, unless Turner’s account of history is a glorification of intellectuals that appeal to him, which is entirely possible. Perhaps more importantly to me, Bateson inspired Ulanowicz, and so these theories are compatible; Bateson was also a cyberneticist following Wiener, who was prescient and either foundational to contemporary data science or a good articulator of its roots. But there is also a tie-in to constructivist epistemology. DiSessa’s epistemology, building on Piaget but embracing what he calls the computational metaphor, understands the learning of math and physics as the integration of phenomenological primitives.
  • The purpose of all this is ultimately protocol design.
  • This does not pertain directly to my dissertation, though I think it’s useful orienting context.

by Sebastian Benthall at December 15, 2014 07:03 AM

Ph.D. student

what i'm protesting for

[Meta: Is noise an appropriate list for this conversation? I hope so, but I take no offense if you immediately archive this message.]

I’ve been asked, what are you protesting for? Black lives matter, but what should we do about it, besides asking cops not to shoot people?

Well, I think there’s value in marching and protesting even without a specific goal. If you’ve been pushed to the edge for so long, you need some outlet for anger and frustration and I want to respect that and take part to demonstrate solidarity. I see good reason to have sympathy even for protesters taking actions I wouldn’t support.

As Jay Smooth puts it, "That unrest we saw […] was a byproduct of the injustice that preceded it." Or MLK, Jr: "I think that we've got to see that a riot is the language of the unheard."

If you’re frustrated with late-night protests that express that anger in ways that might include destruction of property, I encourage you to vote with your feet and attend daytime marches. I was very pleased to run into iSchool alumni at yesterday afternoon’s millions march in Oakland. Families were welcome and plenty of children were in attendance.

But I also think it’s completely reasonable to ask for some pragmatic ends. To really show that black lives matter, we must take action that decreases the number of these thoughtless deaths. There are various lists of demands you can find online (I link to a few below). But below I’ll list four demands I’ve seen that resonate with me (and aren’t Missouri-specific). This is what I’m marching for, and will keep marching for. (It is obviously not an exhaustive list or even the highest priority list for people who face this more directly than I; it's just my list.) If our elected and appointed government leaders, most of whom are currently doing nothing to lead or respond to the massive outpouring of popular demand, want there to be justice and want protesters to stop protesting, I believe this would be a good start.

* Special Prosecutor for All Deadly Force Cases

Media have reported extensively on the “grand jury decisions” in St. Louis County and in Staten Island. I believe this is a misnomer. Prosecutors, who regularly work very closely with their police colleagues in bringing charges, have taken extraordinary means in the alleged investigations of Darren Wilson and Daniel Pantaleo not to obtain indictments. Bob McCullough in St. Louis spent several months presenting massive amounts of evidence to the grand jury, and presented conflicting or even grossly inaccurate information about the laws governing police use of force. A typical grand jury in such a case would have taken a day: presentation of forensic evidence showing several bullets fired into an unarmed man, a couple eyewitnesses describing the scene, that’s more than enough evidence to get an indictment on a number of different charges and have a proper public trial. Instead, McCullough sought to have a sort of closed door trial where Wilson himself testified (unusual for a grand jury), and then presented as much evidence as he could during the announcement of non-indictment in defense of the police officer. That might sound like a sort of fair process with the evidence, but it’s actually nothing like a trial, because we don’t have both sides represented, we don’t have public transparency, we don’t have counsel cross-examining statements and the like. If regular prosecutors (who work with these police forces every day) won’t actually seek indictments in cases where police kill unarmed citizens, states need to set a formal requirement that independent special prosecutors will be appointed in cases of deadly force.

More info:
The Demands
Gothamist on grand juries

* Police Forces Must Be Representative and Trained

States and municipalities should take measures so that their police forces are representative of the communities they police. We should be suspicious of forces where the police are not residents of the towns where they serve and protect or where the racial makeup is dramatically different from the population. In Ferguson, Missouri, for example, a mostly white police force serves a mostly black town, and makes significant revenue by extremely frequently citing and fining those black residents. Oakland has its own issues with police who aren’t residents (in part, I expect, because of the high cost of living here). But I applaud Oakland for running police academies in order to give the sufficient training to existing residents so they can become officers. Training might also be one way to help with racial disparities in policing. Our incoming mayor, Libby Schaaf, calls for an increase in “community policing”. I’m not sure why she isn’t attending and speaking up at these protests and demonstrating her commitment to implementing such changes in a city where lack of trust in the police has been a deep and sometimes fatal problem.

More info:
The Demands
Libby Schaaf on community policing
FiveThirtyEight on where police live
WaPo on police race and ethnicitiy
Bloomberg on Ferguson ticketing revenues

* The Right to Protest

Police must not use indiscriminate violent tactics against non-violent protesters. I was pleased to have on-the-ground reports from our colleague Stu from Berkeley this past week. The use of tear gas, a chemical weapon, against unarmed and non-violent student protesters is particularly outrageous. If our elected officials want our trust, they need to work on coordinating the activities of different police departments and making it absolutely clear that police violence is not an acceptable response to non-violent demonstration.

Did the Oakland PD really not even know about the undercover California “Highway” Patrol officers who were walking with protesters at a march in Oakland then wildly waved a gun at the protesters and media when they were discovered? Are police instigating vandalism and violence among protesters?

In St. Louis, it seemed to be a regular problem that no one knew who was in charge of the law enforcement response to protesters, and we seem to be having the same problem when non-Berkeley police are called in to confront Berkeley protesters. Law enforcement must make it clear who is in charge and to whom crimes and complaints about police brutality can be reported.

More info:
Tweets on undercover cops
staeiou on Twitter

* Body Cameras for Armed Police

The family of Michael Brown has said:

Join with us in our campaign to ensure that every police officer working the streets in this country wears a body camera.

This is an important project, one that has received support even from the Obama administration, and one where the School of Information can be particularly relevant. While it’s not clear to me that all or even most law enforcement officials need to carry firearms at all times, we could at least ask that those officers use body-worn cameras to improve transparency about events where police use potentially deadly force against civilians. The policies, practices and technologies used for those body cameras and the handling of that data will be particularly important, as emphasized by the ACLU. Cameras are no panacea — the killings of Oscar Grant, Eric Garner, Tamir Rice and others have been well-captured by various video sources — but at least some evidence shows that increased transparency can decrease use of violence by police and help absolve police of complaints where their actions are justified.

More info:
ACLU on body cameras
White House fact sheet on policing reforms proposal
NYT on Rialto study of body cameras

Finally, here are some of the lists of demands that I’ve found informative or useful:
The Demands
Millions March Demands, via Facebook
Millions March NYC Demands, via Twitter
MillionsMarchOakland Demands, via Facebook

I have valued so much the conversations I’ve been able to have in this intellectual community about these local protests and the ongoing civil rights struggle. I hope these words can contribute something, anything to that discussion. I look forward to learning much more.

Nick

by npdoty@ischool.berkeley.edu at December 15, 2014 12:50 AM

December 10, 2014

Ph.D. student

Discovering Thomas Sowell #blacklivesmatter

If you come up with a lot of wrong ideas and pay a price for it, you are forced to think about it and change your ways or else be eliminated. But there is no such test. The only test for most intellectuals is whether other intellectuals go along with them. And if they all have a wrong idea, then it becomes invincible.

On Sunday night I walked restlessly through the streets of Berkeley while news helicopters circled overhead and sirens wailed. For the second night in a row I saw lines of militarized police. Texting with a friend who had participated in the protests the night before about how he was assaulted by the cops, I walked down Shattuck counting smashed shop windows. I discovered a smoldering dumpster. According to Bernt Wahl, who I bumped into outside of a shattered RadioShack storefront, there had been several fires started around the city; he was wielding a fire extinguisher, advising people to walk the streets to prevent further looting.

The dramatic events around me and the sincere urgings of many deeply respected friends that I join the public outcry against racial injustice made me realize that I could no longer withhold judgment on the Brown and Garner cases and the responses to them. I have reserved my judgment, unwilling to follow the flow of events as told play-by-play by journalists because, frankly, I don’t trust them. As I was discussing this morning with somebody in my lab, real journalism takes time. You have to interview people, assemble facts. That’s not how things are being done around these highly sensitive and contentious issues. In The Democratic Surround, Fred Turner writes about how in the history of the United States, psychologists and social scientists once thought the principal mechanism by which fascism spread was through the mass media’s skillful manipulation of their audience’s emotions. Out of their concern for mobilizing the American people to fight World War II, the state sponsored a new kind of domestic media strategy that aimed to give its audience the grounds to come to its own rational conclusions. That media strategy sustained what we now call “the greatest generation.” These principles seem to be lacking in journalism today.

I am a social scientist, so when I started to investigate the killings thoroughly, the first thing I wanted to see was numbers. Specifically, I wanted to know the comparative rates of police killings broken down by race so I could understand the size of the problem. The first article I found on this subject was Jack Kelly’s article in Real Clear Politics, which I do not recommend you read. It is not a sensitively written piece and some of the sources and arguments he uses signal, to me, a conservative bias.

What I do highly recommend you read are two of Kelly’s sources, which he doesn’t link to but which are both in my view excellent. One is Pro Publica’s research into the data about police violence and the killings of young men. It gave me a sense of proportion I needed to understand the problems at hand.

Thomas Sowell

The other is this article on Michael Brown published last Saturday by Thomas Sowell, who has just skyrocketed to the top of my list of highly respected people. Sowell is far more accomplished than I will ever be and of much humbler origins. He is a military veteran and apparently a courageous scholar. He is now Senior Fellow at the Hoover Institution at Stanford University. Though I am at UC Berkeley and say this very grudgingly, as I write this blog post I am slowly coming to understand that Stanford might be a place of deep and sincere intellectual inquiry, not just the preprofessional school spitting out entrepreneurial drones whose caricature I had come to believe.

Sowell’s claim is that the grand jury has determined that Brown was guilty of assaulting the officer who shot him, that this judgment was based on the testimony of several black witnesses. He notes the tragedy of the riots related to the event and accuses the media of misrepresenting the facts.

So far I have no reason to doubt Sowell’s sober analysis of the Brown case. From what I’ve heard, the Garner case is more horrific and I have not yet had the stomach to work my way through its complexities. Instead I’ve looked more into Sowell’s scholarly work. I recommend watching this YouTube video of him discussing his book Intellectuals and Race in full.

I don’t agree with everything in this video, and not just because much of what Sowell says is the sort of thing I “can’t say”. I find the interviewer too eager in his guiding questions. I think Sowell does not give enough credence to the prison industrial complex and ignores the recent empirical work on the value of diversity–I’m thinking of Scott Page’s work in particular. But Sowell makes serious and sincere arguments about race and racism with a rare historical awareness. In particular, he is critical of the role of intellectuals in making race relations in the U.S. worse. As an intellectual myself, I think it’s important to pay attention to this criticism.


by Sebastian Benthall at December 10, 2014 03:30 PM

December 09, 2014

Ph.D. alumna

Data & Civil Rights: What do we know? What don’t we know?

From algorithmic sentencing to workplace analytics, data is increasingly being used in areas of society that have had longstanding civil rights issues.  This prompts a very real and challenging set of questions: What does the intersection of data and civil rights look like? When can technology be used to enable civil rights? And when are technologies being used in ways that undermine them? For the last 50 years, civil rights has been a legal battle.  But with new technologies shaping society in new ways, perhaps we need to start wondering what the technological battle over civil rights will look like.

To get our heads around what is emerging and where the hard questions lie, the Data & Society Research Institute, The Leadership Conference on Civil and Human Rights, and New America’s Open Technology Institute teamed up to host the first “Data & Civil Rights” conference.  For this event, we brought together diverse constituencies (civil rights leaders, corporate allies, government agencies, philanthropists, and technology researchers) to explore how data and civil rights are increasingly colliding in complicated ways.

In preparation for the conversation, we dove into the literature and see what is known and unknown about the intersection of data and civil rights in six domains: criminal justice, education, employment, finance, health, and housing.  We produced a series of primers that contextualize where we’re at and what questions we need to consider.  And, for the conference, we used these materials to spark a series of small-group moderated conversations.

The conference itself was an invite-only event, with small groups brought together to dive into hard issues around these domains in a workshop-style format.  We felt it was important that we make available our findings and questions.  Today, we’re releasing all of the write-ups from the workshops and breakouts we held, the videos from the level-setting opening, and an executive summary of what we learned.  This event was designed to elicit tensions and push deeper into hard questions. Much is needed for us to move forward in these domains, including empirical evidence, innovation, community organizing, and strategic thinking.  We learned a lot during this process, but we don’t have clear answers about what the future of data and civil rights will or should look like.  Instead, what we learned in this process is how important it is for diverse constituencies to come together to address the challenges and opportunities that face us.

Moving forward, we need your help.  We need to go beyond hype and fear, hope and anxiety, and deepen our collective understanding of technology, civil rights, and social justice. We need to work across sectors to imagine how we can create a more robust society, free of the cancerous nature of inequity. We need to imagine how technology can be used to empower all of us as a society, not just the most privileged individuals.  This means that computer scientists, software engineers, and entrepreneurs must take seriously the costs and consequences of inequity in our society. It means that those working to create a more fair and just society need to understand how technology works.  And it means that all of us need to come together and get creative about building the society that we want to live in.

The material we are releasing today is a baby step, an attempt to scope out the landscape as best we know it so that we can all work together to go further and deeper.  Please help us imagine how we should move forward.  If you have any ideas or feedback, don’t hesitate to contact us at nextsteps at datacivilrights.org

(Image by Mark K.)

by zephoria at December 09, 2014 04:47 PM

December 07, 2014

MIMS 2012

Warm Gun 2014 Conference Notes

This year’s Warm Gun conference was great, just like last year’s. This year generally seemed to be about using design to generate and validate product insights, e.g. through MVPs, prototyping, researching, etc.

Kickoff (Jared Spool)

Jared Spool’s opening talk focused mostly on MVPs and designing delight into products. To achieve this, he recommended the Kano Model and Dana Chisnell’s Three Approaches to Delight (adding pleasure e.g. through humorous copy, improving the flow, and meaning e.g. believing in a company’s mission [hardest to achieve]).

You’re Hired! Strategies for Finding the Perfect Fit (Kim Goodwin)

This was a great talk about how to hire a great design team, which is certainly no easy task (as I’ve seen at Optimizely).

  • Hiring is like dating on a deadline – after a couple of dates, you have to decide whether or not to marry the person!
  • You should worry more about missing the right opportunity, rather than avoiding the wrong choice

5 Lessons She’s Learned

  1. Hire with a long-term growth plan in mind
    • Waiting until you need someone to start looking is too late (it takes months to find the right person)
    • What kind of will you need? Do you want generalists (can do everything, but not great at any one thing; typically needed by small startups) or specialists (great at one narrow thing, like visual design; typically needed by larger companies)
    • Grow (i.e. mentor junior people) or buy talent? Training junior people isn’t cheap - it takes a senior person’s time.
      • A healthy team has a mix of skills levels (she recommends a ratio of 1 senior:4 mid:2 junior). (Optimizely isn’t far off – we mostly lack a senior member!)
    • A big mistake she sees a lot of startups make is to hire too junior of a person too early
  2. Understand the Market
    • The market has 5 cohorts: low skill junior folks (think design is knowing tools); spotty/developing skills; skilled specialists; generalists; and team leads
    • Senior == able to teach others, NOT a title (there’s lots of title inflation in the startup industry). Years of experience does NOT make a person senior. Many people with “senior” in their title have holes in their skills (especially if they’ve only worked on small teams at startups)
    • 5 years experience only at a design consultancy == somewhat valuable (lots of mentorship opportunities from senior folks, but lack working continuously/iteratively on a product)
    • 5 years experience mixed at design consultancy and on an in-house team == best mix of skills (worked with senior folks, and on a single product continuously)
    • 5 years only on small startup teams == less valuable than the other two; is a red flag. There are often holes in the skills. They’re often “lone rangers” who haven’t worked with senior designers, or a team, and probably developed bad habits. Often have an inflated self-assessment of their skills and don’t know how to take feedback. (uh-oh! I’m kind of in this group)
    • It takes craft to assess craft
    • Alternate between hiring leads and those who can learn from the leads (i.e. a mix of skill levels)
    • Education matters - school can fill in gaps of knowledge. Schools have different types of people they product (HCI, visual, etc.). (yay for me!)
  3. Make 2 lists before posting the job
    • First, list the responsibilities a person will have (what will they do?)
    • Second, list the skills they need to achieve the first list.
    • Turn these 2 lists into a job posting (avoid listing tools in the hiring criteria - that is dumb)
    • DON’T look for someone who has experience designing your exact product in your industry already. The best designers can quickly adapt to different contexts (better to hire a skilled designer with no mobile experience than a junior/mid designer with ONLY mobile experience - there’s ramp-up time, but that’s negligible for a skilled designer)
    • Junior to senior folks progress through this: Knows concepts -> Can design effectively w/coach -> Can design solo -> Can teach others
    • On small/inexperienced teams, watch out for the “Similar to me” effect. Designers new to hiring/interviewing will evaluate people against themselves, rather than evaluate their actual skills or potential. (Can ask, “Where were you relative to this person when you were hired?” to combat this).
  4. Evaluate Based on Skills You Need
    • Resumes == bozo filter
    • Look at the goals, process, role, results, lessons learned, things they’d do differently (we’re pretty good at this at Optimizely!)
    • Do “behavioral interviewing”, i.e. focus on specifics of actual behavior. Look at their actual work, do design exercises, ask “Tell me about a time when…”. It’s a conversation, not an interrogation. (Optimizely is also good at this!)
  5. Be Real to Close the Deal
    • Be honest about what you’re looking for
    • If you have doubts about a person, discuss them directly with the candidate to try overcome them (or confirm them). (We need to do this more at Optimizely)

Product Strategy in a Growing Company (Des Traynor)

This was one of my favorite talks. Product strategy is hard, and it’s really easy to say “Yes” to every idea and feature request. One of my favorite bits was you need to say “No” because somethings not in the product vision. If you don’t ever say this, then you have no product vision. (This has been a challenge at Optimizely at times).

  • Software is eating the world!
  • We’re the ones who control the software that’s available to everyone.
  • Niece asked, “Where do products come from?”. There are 5 reasons a product is built:
    1. Product visionary
    2. Customer-focused (built to solve pain point(s))
    3. Auter (art + business)
    4. Scratching own itch (you see a need in the marketplace)
    5. Copy a pattern (e.g. “Uber for X!”)
  • (Optimizely started as scratching own itch, but is adapting to customer-focused)
  • Scope: scalpel vs. swiss army knife
    • When first starting, build a scalpel (it’s the only way to achieve marketshare when starting)
    • Gall’s Law: complex systems evolve from simple ones (like WWW. Optimizely is also evolving towards complexity!). You can’t set out to design a complex system from scratch (think Google Wave)
  • A simple product !== making a product simple (i.e. an easy to use product isn’t necessarily simple [difference between designing a whole UX vs. polishing a specific UI]).
    • Simplify a product by removing steps. Watch out for Scopi-locks (i.e. scope the problem just right – not too big, not too small). You don’t want to solve steps of a flow that are already solved by a market leader, or when there are multiple solutions already in use by people (e.g. don’t rebuild email, there’s already Gmail and Outlook and Mailbox, etc.)
  • How to fight feature creep
    • Say “No” by default
    • Have a checklist new ideas must go through before you build them, e.g. (this is a subset):
      • Does it benefit all customers?
      • Is the value worth the effort?
      • Does it improve existing features? Does it increase engagement across the system, or divide it?
      • If a feature takes off, can we afford it? (E.g. if you have a contractor build an Android app, how will you respond to customer feedback and bugs?)
      • Is it low effort for the customer to use, and result in high value? (E.g. Circles in G+ fail this criteria - no one wants to manage friends like this)
      • It’s been talked about forever; it’s easy to build; we’ve put a lot of effort in already == all bad reasons to ship a new feature
    • (Optimizely has failed at this a couple of times. E.g. Preview As. On the other hand, Audiences met these criteria)
    • Once you ship something, it’s really hard to take back. Even if customers complain about it, there is always a minority that will be really angry if you take it away.

Hunches, Instincts, and Trusting Your Gut (Leah Buley)

This was probably my least favorite talk. The gist of it is that as a designer, there are times you need to be an expert and just make a call using your gut (colleagues and upper management need you to be this person sometimes). We have design processes to follow, but there are always points at which you need to make a leap of faith and trust your gut. I agree with those main points, but this talk lost me by focusing only on visual design. She barely mentioned anything about user goals or UX design.

Her talk was mainly about “The Gut Test”, which is a way of looking at a UI (or print piece, or anything that has visual design) and assessing your gut reaction to it. This is useful for visual design, but won’t find issues like, “Can the user accomplish their goal? Is the product/feature easy to use?” (Something can be easy to use, but fail her gut test). It’s fine that she didn’t tackle these issues, but I wish she would have acknowledged more explicitly that the talk was only addressing a thin slice of product design.

  • In the first 50ms of seeing something, we have an immediate visceral reaction to things
  • Exposure effect: the more we see something, the more we like it (we lose our gut reaction to it)
  • To combat this, close your eyes for 5 seconds, then look at a UI and ask these questions:
    • What do you notice first?
    • How does it make you feel (if anything)? What words would you use to describe it?
    • Is it prototypical? (i.e. does it conform to known patterns). Non-conformity == dislike and distrust
  • Then figure out what you can do to address any issues discovered.

Real Life Trust Online (Mara Zepeda)

This talk was interesting, but not directly applicable to my everyday job at Optimizely. The gist of it was how do we increase trust in the world, and not just in the specific product or company we’re using? For example, when you buy or sell something successfully on Craigslist, your faith in humanity increases a little bit. But reviews on Amazon, for example, increases your trust in that product and Amazon, but not necessarily in your fellow human beings.

  • Before trust is earned, there’s a moment of vulnerability and an optimism about the future.
  • Trust gets built up in specific companies (e.g. Craigslist - there’s no reason to trust the company or site, but trust in humans and universe increases when a transaction is successful).
  • Social networks don’t create networks of trust in the real world
  • Switchboard MVP was a phone hotline
    • LinkedIn: ask for job connections, no one responds. But if you call via Switchboard, people are more likely to respond (there’s a real human connection)
    • They’re trying to create a trust network online
  • To build trust:
    • Humanize the transaction (e.g. make it person to person)
    • Give a victory lap (i.e. celebrate when the system works)
    • Provide allies / mentors along the journey (i.e. people who are invested in the journey being successful, and can celebrate the win)
  • She brought up the USDA’s “Hay Net” as an example of this. It connects those who have Hay with those who need Hay (and vice versa). UI had two options: “Have Hay” and “Need Hay”, which I find hilarious and amazing.

Designing for Unmet Needs (Steve Portigal)

Steve Portigal’s talk was solid, but it didn’t really tell me anything I didn’t already know. The gist of it was there are different types of research (generative v. evaluative), you need to know which is appropriate for your goals (although it’s a spectrum, not a dichotomy), and there are ways around anything you think is stopping you (e.g. no resources; no users; no product; etc.). The two most interesting points to me were:

  • Create provocative examples/prototypes/mocks to show people and gather responses (he likened this to a scientist measuring reactions to new stimuli). Create a vision of the future and see what people think of it, find needs, iterate, adapt. Go beyond iterative improvements to an existing product or UI (we’re starting to explore this technique at Optimizely now).
  • Build an infrastructure for ongoing research. This is something that’s been on my mind for awhile, since we’re very reactive in our research needs at Optimizely. I’d like us to have more continual, ongoing research that’s constantly informing product decisions.

Redesigning with Confidence (Jessica Harllee)

This was a cool talk that described the process Etsy went through to redesign the seller onboarding experience, and how they used data to be confident in the final result. The primary goal was increasing the shop open rate, while maintaining the products listed per seller. They a/b tested a new design that increased the open rate, but had fewer products listed per seller. They made some tweaks, a/b tested again, and found a design that increased the shop open rate while maintaining the number of products listed per seller. Which means more products are listed on Etsy overall!

I didn’t learn much new from this talk, but enjoy hearing these stories. It also got me thinking about how we don’t a/b test much in the product at Optimizely. A big reason is because it takes too long to get significant results (as Jessica mentioned in her talk, they had to run both tests for months, and the overall project took over a year). Another reason is that when developing new features, there aren’t any direct metrics to compare. Since Jessica’s example was a redesign, they could directly compare behavior of the redesign to the original.

Designing for Startups Problems (Braden Kowitz)

Braden’s talk was solid, as usual, but since I’ve seen him talk before and read his blog I didn’t get much new out of it. His talk was about how Design (and therefore, designers) can help build a great company (beyond just UIs). Most companies think of design at the “surface level”, i.e. visual design, logos, etc., but at its core design is about product and process and problem solving. Design can help at the highest levels.

  • 4 Skills Designers Need:
    1. Know where to dig
      • Map the problem
      • Identify the riskiest part (e.g. does anyone need this product or feature at all?)
      • Design to answer that question. Find the cheapest/simplest/fastest thing you can create to answer this question (fake as much as you can to avoid building a fully working artifact)
    2. Get dirty
      • Prototype as quickly as possible (colors, polish, etc., aren’t important)
      • Focus on the most important part, e.g. the user flow, layout, copy, etc. Use templates/libraries to save time
      • Use deadlines (it’s really easy to polish a prototype forever)
    3. Pump in fresh data
      • Your brain fills in gaps in data, so have regular research and testing (reinforces Portigal’s points nicely)
    4. Take big leaps
      • Combine the above 3 steps to generate innovative solutions to problems

Accomplish Big Goals with Objective & Key Results (Christina Wodtke)

This was an illuminating talk about the right way to create and evaluate OKRs. I didn’t hear much I hadn’t already heard (we use OKRs at Optimizely and have discussed best practices). But to recap:

  • Objective == Your Dream, Your Goal. It’s hard. It’s qualitative.
  • Key Results == How you know you reached your goal. They’re quantitative. They’re measurable. They’re not tasks (it’s something you can put on a dashboard and measure over time, e.g. sales numbers, adoption, etc.).
  • Focus: only have ONE Objective at a time, and measure it with 3 Key Results. (She didn’t talk about how to scale this as companies get bigger. I wish she did).
  • Measure it throughout the quarter so you can know how you’re tracking. Don’t wait until the end of the quarter.

Thought Experiments for Data-Driven Design (Aviva Rosenstein)

This was an illuminating talk about the right way to incorporate data into the decision making process. You need to find a balance between researching/measuring to death, and making a decision. She used DocuSign’s feedback button as a good example of this.

  • Don’t research to death — try something and measure the result (but make an educated guess).
  • DocuSign tried to roll their own “Feedback” button (rather than using an existing service). They gave the user a text box to enter feedback, and submitting it sent it to an email alias (not stored anywhere; not categorized at all).
    • This approach became a data deluge
    • There was no owner of the feedback
    • Users entered all kinds of stuff in that box that shouldn’t have gone there (e.g. asking for product help). People use the path of least resistance to get what they want. (I experienced this with the feedback button in the Preview tool)
  • Data should lead to insight (via analysis and interpretation)
  • Collecting feedback by itself has no ROI (can be negative because if people feel their feedback is being ignored they get upset)
  • Aviva’s goal: find a feedback mechanism that’s actually useful
  • Other feedback approaches:
    • Phone/email conversation (inefficient, hard to track)
    • Social media (same as above; biased)
    • Ad hoc survey/focus groups (not systematic; creating good surveys is time consuming)
  • Feedback goals:
    1. Valid: trustworthy and unbiased
    2. Delivery: goes to the right person/people
    3. Retention: increase overall company knowledge; make it available when needed
    4. Usable: can’t pollute customer feedback
    5. Scalable: easy to implement
    6. Contextual: gather feedback in context of use
  • They changed their feedback mechanism slightly by asking users to bucket the feedback first (e.g. “Billing problems”, “Positive feedback”, etc.), then emailed it to different places. This made it more actionable.
  • Doesn’t need to be “Ready -> Fire -> Aim”: we can use data and the double diamond approach to inform the problem, and make our best guess.
    • This limits collateral damage from not aiming. A poorly aimed guess can mar the user experience, which users don’t easily forget.

Growing Your Userbase with Better Onboarding (Samuel Hulick)

This was one of my favorite talks of the day (and not only because Samuel gave Optimizely a sweet shout out). I didn’t learn a ton new from it, but Samuel is an entertaining speaker. His pitch is basically that the first run experience is important, and needs to be thought about at the start of developing a product (not tacked on right before launch).

  • “Onboarding” is often just overlaying an UI with coach’s marks. But there’s very little utility in this.
  • Product design tends to focus on the “flying” state, once someone is using a system. Empty states, and new user experiences, are often tacked on.
  • You need to start design with where the users start
  • Design Recommendations
    • Show a single, action-oriented tooltip at a time (Optimizely was his example of choice here!)
      • Ask for signup when there’s something to lose (e.g. after you’ve already created an experiment)
      • Assume guided tours will be skipped, i.e. don’t rely on them to make your product usable
    • Use completion meters to get people fully using a product
    • Keep in mind that users don’t buy products, they buy better versions of themselves (Mario + fire flower), and use this as the driving force to get people fully engaged with your product
    • Provide positive reinforcement when they complete steps! (Emails can help push them along)

Fostering Effective Collaboration in a Global Environment (PJ McCormick)

PJ’s talk was just as good this year as it was last year. He gave lots of great tips for increasing collaboration and trust among teams (especially the engineering and design teams), which is also a topic that has been on my mind recently.

  • His UX team designs retail pages (e.g. discover new music page). In one case, he presented work to the stakeholders and dev team, who then essentially killed the project. What went wrong? Essentially, it was a breakdown of communication and he didn’t include the dev team early enough.
  • Steps to increasing collaboration:
    1. Be accessible and transparent
      • Put work up on public walls so everyone can see progress (this is something I want to do more of)
      • Get comfortable showing work in progress
      • Demystify the black box of design
    2. Listen
      • Listen to stakeholders' and outside team members opinions and feedback (you don’t have to incorporate it, but make sure they know they’re being heard)
    3. Be a Person
      • On this project, the communication was primarily through email or bug tracking, which lacks tone of voice, body language, etc.
      • There was no real dialog. Talk more face to face, or over phone. (I have learned this again and again, and regularly walk over to someone to hash things out at the first hint of contention in an email chain. It’s both faster to resolve and maintains good relations among team members)
    4. Work with people, not at them
      • He should have included stakeholders and outside team members in the design process.
      • Show them the wall; show UX studies; show work in progress
      • Help teach people what design is (this is hard. I want to get better at this)

A question came up about distributed teams, since much of his advice hinges on face to face communication. I’ve been struggling with this (actually, the whole company has), and his recommendations are in line with what we’ve been trying: use a webcam + video chat to show walls (awkward; not as effective as in person), and take pictures/digitize artifacts to share with people (has the side effect of being archived for future, but introduces the problem of discoverability).


And that’s all! (Actually, I missed the last talk…). Overall, a great conference that I intend to go back to next year.

by Jeff Zych at December 07, 2014 02:53 AM

December 04, 2014

Ph.D. student

Notes on The Democratic Surround; managerialism

I’ve been greatly enjoying Fred Turner’s The Democratic Surround partly because it cuts through a lot of ideological baggage with smart historical detail. It marks a turn, perhaps, in what intellectuals talk about. The critical left has been hung up on neoliberalism for decades while the actual institutions that are worth criticizing have moved on. It’s nice to see a new name for what’s happening. That new name is managerialism.

Managerialism is a way to talk about what Facebook and the Democratic Party and everybody else providing a highly computationally tuned menu of options is doing without making the mistake of using old metaphors of control to talk about a new thing.

Turner is ambivalent about managerialism perhaps because he’s at Stanford and so occupies an interesting position in the grand intellectual matrix. He’s read his Foucault, he explains when he speaks in public, though he is sometimes criticized for not being critical enough. I think ‘critical’ intellectuals may find him confusing because he’s not deploying the same ‘critical’ tropes that have been used since Adorno even though he’s writing sometimes about Adorno. He is optimistic, or at least writes optimistically about the past, or at least writes about the past in a way that isn’t overtly scathing which is just more upbeat than a lot of writing nowadays.

Managerialism is, roughly, the idea of technocratically bounded space of complex interactive freedom as a principle of governance or social organization. In The Democratic Surround, he is providing a historical analysis of a Bauhaus-initiated multimedia curation format, the ‘surround’, to represent managerialist democracy in the same way Foucault provided a historical analysis of the Panopticon to represent surveillance. He is attempting to implant a new symbol into the vocabulary of political and social thinkers that we can use to understand the world around us while giving it a rich and subtle history that expands our sense of its possibilities.

I’m about halfway through the book. I love it. If I have a criticism of it it’s that everything in it is a managerialist surround and sometimes his arguments seems a bit stretched. For example, here’s his description of how John Cage’s famous 4’33” is a managerialist surround:

With 4’33”, as with Theater Piece #1, Cage freed sounds, performers, and audiences alike from the tyrannical wills of musical dictators. All tensions–between composer, performer, and audience; between sound and music; between the West and the East–had dissolved. Even as he turned away from what he saw as more authoritarian modes of composition and performance, though, Cage did not relinquish all control of the situation. Rather, he acted as an aesthetic expert, issuing instructions that set the parameters for action. Even as he declined the dictator’s baton, Cage took up a version of the manager’s spreadsheet and memo. Thanks to his benevolent instructions, listeners and music makers alike became free to hear the world as it was and to know themselves in that moment. Sounds and people became unified in their diversity, free to act as they liked, within a distinctly American musical universe–a universe finally freed of dictators, but not without order.

I have two weaknesses as a reader. One is a soft spot for wicked vitriol. Another is an intolerance of rhetorical flourish. The above paragraph is rhetorical flourish that doesn’t make sense. Saying that 4’33” is a manager’s spreadsheet is just about the most nonsensical metaphor I could imagine. In a universe with only fascists and managerialists, then I guess 4’33” is more like a memo. But there are so many more apt musical metaphors for unification in diversity in music. For example, a blues or jazz band playing a standard. Literally any improvisational musical form. No less quintessentially American.

If you bear with me and agree that this particular point is poorly argued and that John Cage wasn’t actually a managerialist and was in fact the Zen spiritualist that he claimed to be in his essays, then either Turner is equating managerialism with Zen spiritualism or Turner is trying to make Cage a symbol of managerialism for his own ideological ends.

Either of these is plausible. Steve Jobs was an I Ching enthusiast like Cage. Stewart Brand, the subject of Turner’s last book, From Counterculture to Cyberculture, was a back-to-land commune enthusiast before he become a capitalist digerati hero. Running through Turner’s work is the demonstration of the cool origins of today’s world that’s run by managerialist power. We are where we are today because democracy won against fascism. We are where we are today because hippies won against whoever. Sort of. Turner is also frank about capitalist recuperation of everything cool. But this is not so bad. Startups are basically like co-ops–worker owned until the VC’s get too involved.

I’m a tech guy, sort of. It’s easy for me to read my own ambivalence about the world we’re in today into Turner’s book. I’m cool, right? I like interesting music and read books on intellectual history and am tolerant of people despite my connections to power, right? Managers aren’t so bad. I’ve been a manager. They are necessary. Sometimes they are benevolent and loved. That’s not bad, right? Maybe everything is just fine because we have a mode of social organization that just makes more sense now than what we had before. It’s a nice happy medium between fascism, communism, anarchism, and all the other extreme -ism’s that plagued the 20th century with war. People used to starve to death or kill each other en masse. Now they complain about bad management or, more likely, bad customer service. They complain as if the bad managers are likely to commit a war crime at any minute but that’s because their complaints would sound so petty and trivial if they were voiced without the use of tropes that let us associate poor customer service with deliberate mind-control propaganda or industrial wage slavery. We’ve forgotten how to complain in a way that isn’t hyperbolic.

Maybe it’s the hyperbole that’s the real issue. Maybe a managerialist world lacks catastrophe and so is so frickin’ boring that we just don’t have the kinds of social crises that a generation of intellectuals trained in social criticism have been prepared for. Maybe we talk about how things are “totally awesome!” and totally bad because nothing really is that good or that bad and so our field of attention has contracted to the minute, amplifying even the faintest signal into something significant. Case in point, Alex from Target. Under well-tuned managerialism, the only thing worth getting worked up about is that people are worked up about something. Even if it’s nothing. That’s the news!

So if there’s a critique of managerialism, it’s that it renders the managed stupid. This is a problem.


by Sebastian Benthall at December 04, 2014 02:45 AM

December 01, 2014

MIMS 2012

Optimizely's iOS SDK Hits Version 1.0!

On Novemeber 18th, 2014, Optimizely officially released version 1.0 of our iOS SDK and a new mobile editing experience. As the lead designer of this project, I’m extremely proud of the progress we’ve made. This is just the beginning — there’s a lot more work to come! Check out the product video below:

Stay tuned for future posts about the design process.

by Jeff Zych at December 01, 2014 02:13 AM

November 29, 2014

Ph.D. student

textual causation

A problem that’s coming up for me as a data scientist is the problem of textual causation.

There has been significant interesting research into the problem of extracting causal relationships between things in the world from text about those things. That’s an interesting problem but not the problem I am talking about.

I am talking about the problem of identifying when a piece of text has been the cause of some event in the world. So, did the State of the Union address affect the stock prices of U.S. companies? Specifically, did the text of the State of the Union address affect the stock price? Did my email cause my company to be more productive? Did specifically what I wrote in the email make a difference?

A trivial example of textual causation (if I have my facts right–maybe I don’t) is the calculation of Twitter trending topics. Millions of users write text. That text is algorithmically scanned and under certain conditions, Twitter determines a topic to be trending and displays it to more users through its user interface, which also uses text. The user interface text causes thousands more users to look at what people are saying about the topic, increasing the causal impact of the original text. And so on.

These are some challenges to understanding the causal impact of text:

  • Text is an extraordinarily high-dimensional space with tremendous irregularity in distribution of features.
  • Textual events are unique not just because the probability of any particular utterance is so low, but also because the context of an utterance is informed by all the text prior to it.
  • For the most part, text is generated by a process of unfathomable complexity and interpreted likewise.
  • A single ‘piece’ of text can appear and reappear in multiple contexts as distinct events.

I am interested in whether it is possible to get a grip on textual causation mathematically and with machine learning tools. Bayesian methods theoretically can help with the prediction of unique events. And the Pearl/Rubin model of causation is well integrated with Bayesian methods. But is it possible to use the Pearl/Rubin model to understand unique events? The methodological uses of Pearl/Rubin I’ve seen are all about establishing type causation between independent occurrences. Textual causation appears to be as a rule a kind of token causation in a deeply integrated contextual web.

Perhaps this is what makes the study of textual causation uninteresting. If it does not generalize, then it is difficult to monetize. It is a matter of historical or cultural interest.

But think about all the effort that goes into communication at, say, the operational level of an organization. How many jobs require “excellent communication skills.” A great deal of emphasis is placed not only on that communication happens, but how people communicate.

One way to approach this is using the tools of linguistics. Linguistics looks at speech and breaks it down into components and structures that can be scientifically analyzed. It can identify when there are differences in these components and structures, calling these differences dialects or languages.


by Sebastian Benthall at November 29, 2014 04:49 PM

analysis of content vs. analysis of distribution of media

A theme that keeps coming up for me in work and conversation lately is the difference between analysis of the content of media and analysis of the distribution of media.

Analysis of content looks for the tropes, motifs, psychological intentions, unconscious historical influences, etc. of the media. Over Thanksgiving a friend of mine was arguing that the Scorpions were a dog whistle to white listeners because that band made a deliberate move to distance themselves from influence of black music on rock. Contrast this with Def Leppard. He reached this conclusion based by listening carefully to the beats and contextualizing them in historical conversations that were happening at the time.

Analysis of distribution looks at information flow and the systemic channels that shape it. How did the telegraph change patterns of communication? How did television? Radio? The Internet? Google? Facebook? Twitter? Ello? Who is paying for the distribution of this media? How far does the signal reach?

Each of these views is incomplete. Just as data underdetermines hypotheses, media underdetermines its interpretation. In both cases, a more complete understanding of the etiology of the data/media is needed to select between competing hypotheses. We can’t truly understand content unless we understand the channels through which it passes.

Analysis of distribution is more difficult than analysis of content because distribution is less visible. It is much easier to possess and study data/media than it is to possess and study the means of distribution. The means of distribution are a kind of capital. Those that study it from the outside must work hard to get anything better than a superficial view of it. Those on the inside work hard to get a deep view of it that stays up to date.

Part of the difficulty of analysis of distribution is that the system of distribution depends on the totality of information passing through it. Communication involves the dynamic engagement of both speakers and an audience. So a complete analysis of distribution must include an analysis of content for every piece of implicated content.

One thing that makes the content analysis necessary for analysis of distribution more difficult than what passes for content analysis simpliciter is that the former needs to take into account incorrect interpretation. Suppose you were trying to understand the popularity of Fascist propaganda in pre-WWII Germany and were interested in how the state owned the mass media channels. You could initially base your theory simply on how people were getting bombarded by the same information all the time. But you would at some point need to consider how the audience was reacting. Was it stirring feelings of patriotic national identity? Did they experience communal feelings with others sharing similar opinions? As propaganda provided interpretations of Shakespeare saying he was secretly a German and denunciation of other works as “degenerate art”, did the audience believe this content analysis? Did their belief in the propaganda allow them to continue to endorse the systems of distribution in which they took part?

This shows how the question of how media is interpreted is a political battle fought by many. Nobody fighting these battles is an impartial scientist. Since one gets an understanding of the means of distribution through impartial science, and since this understanding of the means of distribution is necessary for correct content analysis, we can dismiss most content analysis as speculative garbage, from a scientific perspective. What this kind of content analysis is instead is art. It can be really beautiful and important art.

On the other hand, since distribution analysis depends on the analysis of every piece of implicated content, distribution analysis is ultimately hopeless without automated methods for content analysis. This is one reason why machine learning techniques for analyzing text, images, and video are such a hot research area. While the techniques for optimizing supply chain logistics (for example) are rather old, the automated processing of media is a more subtle problem precisely because it involves the interpretation and reinterpretation by finite subjects.

By “finite subject” here I mean subjects that are inescapably limited by the boundaries of their own perspective. These limits are what makes their interpretation possible and also what makes their interpretation incomplete.


by Sebastian Benthall at November 29, 2014 04:16 PM

November 26, 2014

Ph.D. student

things I’ve been doing while not looking at twitter

Twitter was getting me down so I went on a hiatus. I’m still on that hiatus. Instead of reading Twitter, I’ve been:

  • Reading Fred Turner’s The Democratic Surround. This is a great book about the relationship between media and democracy. Since a lot of my interest in Twitter has been because of my interest in the media and democracy, this gives me those kinds of jollies without the soap opera trainwreck of actually participating in social media.
  • Going to arts events. There was a staging of Rhinoceros at Berkeley. It’s an absurdist play in which a small French village is suddenly stricken by an epidemic wherein everybody is transformed into a rhinoceros. It’s probably an allegory for the rise of Communism or Fascism but the play is written so that it’s completely ambiguous. Mainly it’s about conformity in general, perhaps ideological conformity but just as easily about conformity to non-ideology, to a state of nature (hence, the animal form, rhinoceros.) It’s a good play.
  • I’ve been playing Transistor. What an incredible game! The gameplay is appealingly designed and original, but beyond that it is powerfully written an atmospheric. In many ways it can be read as a commentary on the virtual realities of the Internet and the problems with them. Somehow there was more media attention to GamerGate than to this one actually great game. Too bad.
  • I’ve been working on papers, software, and research in anticipation of the next semester. Lots of work to do!

Above all, what’s great about unplugging from social media is that it isn’t actually unplugging at all. Instead, you can plug into a smarter, better, deeper world of content where people are more complex and reasonable. It’s elevating!

I’m writing this because some time ago it was a matter of debate whether or not you can ‘just quit Facebook’ etc. It turns out you definitely can and it’s great. Go for it!

(Happy to respond to comments but won’t respond to tweets until back from the hiatus)


by Sebastian Benthall at November 26, 2014 10:02 PM

November 14, 2014

Ph.D. alumna

Heads Up: Upcoming Parental Leave

If you’ve seen me waddle onto stage lately, you’ve probably guessed that I’m either growing a baby or an alien. I’m hoping for the former, although contemporary imaging technologies still do make me wonder. If all goes well, I will give birth in late January or early February. Although I don’t publicly talk much about my son, this will be #2 for me and so I have both a vague sense of what I’m in for and no clue at all. I avoid parenting advice like the plague so I’m mostly plugging my ears and singing “la-la-la-la” whenever anyone tells me what I’m in for. I don’t know, no one knows, and I’m not going to pretend like anything I imagine now will determine how I will feel come this baby’s arrival.

What I do know is that I don’t want to leave any collaborator or partner in the lurch since there’s a pretty good chance that I’ll be relatively out of commission (a.k.a. loopy as all getup) for a bit. I will most likely turn off my email firehose and give collaborators alternate channels for contacting me. I do know that I’m not taking on additional speaking gigs, writing responsibilities, scholarly commitments, or other non-critical tasks. I also know that I’m going to do everything possible to make sure that Data & Society is in good hands and will continue to grow while I wade through the insane mysteries of biology. If you want to stay in touch with everything happening at D&S, please make sure to sign up for our newsletter! (You may even catch me sneaking into our events with a baby.)

As an employee of Microsoft Research who is running an independent research institute, I have a ridiculous amount of flexibility in how I navigate my parental leave. I thank my lucky stars for this privilege on a regular basis, especially in a society where we force parents (and especially mothers) into impossible trade-offs. What this means in practice for me is that I refuse to commit to exactly how I’m going to navigate parental leave once #2 arrives. Last time, I penned an essay “Choosing the ‘Right’ Maternity Leave Plan” to express my uncertainty. What I learned last time is that the flexibility to be able to work when it made sense and not work when I’d been up all night made me more happy and sane than creating rigid leave plans. I’m fully aware of just how fortunate I am to be able to make these determinations and how utterly unfair it is that others can’t. I’m also aware of just how much I love what I do for work and, in spite of folks telling me that work wouldn’t matter as much after having a child, I’ve found that having and loving a child has made me love what I do professionally all the more. I will continue to be passionately engaged in my work, even as I spend time welcoming a new member of my family to this earth.

I don’t know what the new year has in store for me, but I do know that I don’t want anyone who needs something from me to feel blindsided. If you need something from me, now is the time to holler and I will do my best. I’m excited that my family is growing and I’m also ecstatic that I’ve been able to build a non-profit startup this year. It’s been a crazy year and I expect that 2015 will be no different.

by zephoria at November 14, 2014 03:35 PM

November 10, 2014

Ph.D. alumna

me + National Museum of the American Indian

I’m pleased to share that I’m joining the Board of Trustees of Smithsonian’s National Museum of the American Indian (NMAI) in 2015.  I am honored and humbled by the opportunity to help guide such an esteemed organization full of wonderful people who are working hard to create a more informed and respectful society.

I am not (knowingly) of Native descent, but as an American who has struggled to make sense of our history and my place in our cultural ecosystem, I’ve always been passionate about using the privileges I have to make sure that our public narrative is as complex as our people.  America has a sordid history and out of those ashes, we have a responsibility to both remember and do right by future generations.  When the folks at NMAI approached me to see if I were willing to use the knowledge I have about technology, youth, and social justice to help them imagine their future as a cultural institution, the answer was obvious to me.

Make no mistake – I have a lot to learn.  I cannot and will not speak on behalf of Native peoples or their experiences. I’m joining this Board, fully aware of how little I know about the struggles of Indians today, but I am doing so with a deep appreciation of their stories and passions. I am coming to this table to learn from those who identify as Native and Indian with the hopes that what I have to offer as a youth researcher, technologist, and committed activist can be valuable. As an ally, I hope that I can help the Museum accomplish its dual mission of preserving and sharing the culture of Native peoples to advance public understanding and empower those who have been historically disenfranchised.

I am still trying to figure out how I will be able to be most helpful, but at the very least, please feel free to use me to share your thoughts and perspectives that might help NMAI advance its mission and more actively help inform and shape American society. I would also greatly appreciate your help in supporting NMAI’s education initiatives through a generous donation. In the United States, these donations are tax deductible.

by zephoria at November 10, 2014 04:10 PM

November 09, 2014

Ph.D. alumna

What is Fairness?

What is “fairness”? And what happens when technology decides?

Fairness is one of those values that Americans love to espouse. It’s just as beloved in technical circles, where it’s often introduced as one of the things that “neutral” computers do best. We collectively perceive ourselves and our systems to be fair and push against any assertion that our practices are unfair. But what do we even mean by fairness in the first place?

In the United States, fairness has historically been a battle between equality and equity. Equality is the notion that everyone should have an equal opportunity. It’s the core of meritocracy and central to the American Dream. Preferential treatment is seen as antithetical to equality and the root of corruption. And yet, as civil rights leaders have long argued, we don’t all start out from the same place. Privilege matters. As a result, we’ve seen historical battles over equity, arguing that fairness is only possible when we take into account systemic marginalization and differences of ability, opportunity, and access. When civil rights leaders fought for equity in the 60s, they were labeled communists. Still, equity-based concepts like “affirmative action” managed to gain traction. Today, we’ve shifted from communism to socialism as the anti-equity justification. Many purposefully refuse to acknowledge that people don’t start out from the same position and take offense at any effort to right historical wrongs through equity-based models. Affirmative action continues to be dismantled and the very notion of reparations sends many into a tizzy.

Beyond the cultural fight over equality vs. equity, a new battle to define fairness has emerged. Long normative in business, a market logic of fairness is moving beyond industry to increasingly become our normative understanding of fairness in America.

To understand market-driven models of fairness, consider frequent flyer programs. If you are high status on Delta, you get all sorts of privileges. You don’t have to pay $25 to check a bag, you get better seats and frequent upgrades, you get free food and extra services, etc. etc. We consider this fair because it enables businesses to compete. Delta cares to keep you as a customer because they rely on you spending a lot more over the year or lifetime of the program than you cost in terms of perks. Bob, on the other hand, isn’t that interesting to Delta if he only flies once a year and isn’t even eligible for the credit card. Thus, Bob doesn’t get the perks and is, in effect, charged more for equivalent services.

What happens when this logic of fairness alters the foundations of society? Consider financial services where business rubs up against something so practical — and seemingly necessary — as housing. Martha Poon has done phenomenal work on the history of FICO scores which originally empowered new populations to get access to credit. These days, FICO scores are used for many things beyond financial services, but even in the financial services domain, things aren’t as equitable as one might think. The scores are not necessarily fair and their usage introduces new problems. If you’re seeking a loan and you have a better score than Bob, you pay a lower interest rate. This is considered acceptable because you are a lower risk than Bob. But just like Delta wants to keep you as a customer, so does Chase. And so they start to give you deals to compete with other banks for your business. In effect, they minimize the profit they make directly off of the wealthiest because they need high end customers for secondary and competitive reasons. As a result, not only is Bob burdened with the higher interest loans, but all of the profits are also made off of him as well.

For a moment, let’s turn away from business-based environments altogether and think more generally about how allocation of scarce resources is beginning to unfold thanks to computational systems that can distribute resources “fairly.” Consider, for example, what’s happening with policing practices, especially as computational systems allow precincts to distribute their officers “fairly.” In many jurisdictions, more officers are placed into areas that are deemed “high risk.” This is deemed to be appropriate at a societal level. And yet, people don’t think about the incentive structures of policing, especially in communities where the law is expected to clear so many warrants and do so many arrests per month. When they’re stationed in algorithmically determined “high risk” communities, they arrest in those communities, thereby reinforcing the algorithms’ assumptions.

Addressing modern day redlining equivalents isn’t enough. Statistically, if your family members are engaged in criminal activities, there’s a high probability that you will too. Is it fair to profile and target individuals based on their networks if it will make law enforcement more efficient?

Increasingly, tech folks are participating in the instantiation of fairness in our society. Not only do they produce the algorithms that score people and unevenly distribute scarce resources, but the fetishization of “personalization” and the increasingly common practice of “curation” are, in effect, arbiters of fairness.

The most important thing that we all need to recognize is that how fairness is instantiated significantly affects the very architecture of our society. I regularly come back to a quote by Alistair Croll:

Our social safety net is woven on uncertainty. We have welfare, insurance, and other institutions precisely because we can’t tell what’s going to happen — so we amortize that risk across shared resources. The better we are at predicting the future, the less we’ll be willing to share our fates with others. And the more those predictions look like facts, the more justice looks like thoughtcrime.

The market-driven logic of fairness is fundamentally about individuals at the expense of the social fabric. Not surprisingly, the tech industry — very neoliberal in cultural ideology — embraces market-driven fairness as the most desirable form of fairness because it is the model that is most about individual empowerment. But, of course, this form of empowerment is at the expense of others. And, significantly, at the expense of those who have been historically marginalized and ostracized.

We are collectively architecting the technological infrastructure of this world. Are we OK with what we’re doing and how it will affect the society around us?

(This post was originally published on September 3, 2014 in The Message on Medium.)

by zephoria at November 09, 2014 04:11 PM

November 06, 2014

MIMS 2010

Updating Bulk Data in CourtListener…Again

I wrote a few weeks ago about our new system for creating bulk files in CourtListener. The system was pretty good. The goal was and is to efficiently create one bulk file for every jurisdiction—object pair in the system. So, that means one bulk file for oral arguments from Supreme Court, another for opinions from the Ninth Circuit of Appeals, another for dockets from Alabama’s appellate court, etc. We have about 350 jurisdictions and four different object types right now, for a total of about 1,400 bulk files.

This system needs to be fast.

The old system that I wrote about before would create 350 open file handles at a time, and then would iterate over each item in the database, adding it to the correct file as it inspected the item. This was a beautiful system because it only had to iterate over the database once, but even after performance tuning, it still took about 24 hours. Not good enough.

I got to thinking that it was terrible to create the entire bulk archive over and over when in reality only a few items change each day. So I created a bug to make bulk data creation incremental.

This post is about that process.

The First Approach

The obvious way to do this kind of thing is to grab the bulk files you already have (as gz-compressed tar files), and add the updated items to those files. Well, I wrote up code for this, tested it pretty thoroughly and considered it done. Only to realize that, like regular files, when you create a compressed tar file with a command like this…

tar_files['all'] = tarfile.open('all.tar.gz', mode='w:gz')

…it clobbers any old files that might have the same name. So much for that.

Next Approach

Well, it looked like we needed append mode for compressed tar files, but alas, from the documentation:

Note that ‘a:gz’, ‘a:bz2’ or ‘a:xz’ is not possible.

a:gz” means a gz-compressed tar file in append mode, so much for that idea. Next!

Next Approach

Well, you can’t make gz-compressed tar files in append mode, but you can create tar files in append mode as step one, then compress them as step two. I tried this next, and again, it looked like it was working…until I realized that my tar files contained copy after copy after copy of each file. I was hoping that it’d simply clobber files that were previously in the file, but instead it was just putting multiple files of the same name into the tar.

Perhaps I can delete from the tar file before adding items back to it? Nope, that’s not possible either. Next idea?

Final Approach

I was feeling pretty frustrated by now, but there was one more approach, and that was to add an intermediate step. Instead of creating the tar files directly in Python, I could save the individual json files I was previously putting into the tar file to disk, then create the compressed tar files directly from those once they’re all created. We proved earlier that Python has no issues about clobbering items on disk, so that’ll work nicely for incremental bulk files, which will just clobber old versions of the files.

From performance analyses of the code, most of the bottleneck is in serializing JSON, so this will change it so that gets done at most once per item in the database and then most of the remaining work will be making tar files and gz-compressing them.

Whew!

I was hoping that I would be able to easily update items inside a compressed tar file, or even inside an uncompressed tar file, but that doesn’t seem possible.

I was hoping that I could create these files while iterating over the database, as described in the first approach, but that’s not doable either.

At the end of the day, the final method is just to write things to disk. Simple beats complicated this time, even when it comes to performance.

by Mike Lissner at November 06, 2014 08:00 AM

Updating Bulk Data in CourtListener

Update: I’ve written another post about how the solution presented here wasn’t fast enough and didn’t work out. You may want to read it as well.

There’s an increasing demand for bulk data from government systems, and while this will generate big wins for transparency, accountability, and innovation (at the occasional cost of privacy1), it’s important to consider a handful of technical difficulties that can come along with creating and providing such data. Do not misread this post as me saying, “bulk data is hard, don’t bother doing it.” Rather, like most of my posts, read this as an in-the-trenches account of issues we’ve encountered and solutions we’ve developed at CourtListener.

The Past and Present

For the past several years we’ve had bulk data at CourtListener, but to be frank, it’s been pretty terrible in a lot of ways. Probably the biggest issue with it was that we created it as a single massive XML file (~13GB, compressed!). That made a lot of sense for our backend processing, but people consuming the bulk data complained that it crashed 32 bit systems2, consumed memory endlessly, decompressing it wasn’t possible on Windows2, etc.

On top of these issues for people consuming our bulk data, and even though we set it up to be efficient for our servers, we did a stupid thing when we set it up and made it so our users could generate bulk files whenever they wanted for any day, month, year or jurisdiction. And create bulk files they did. Indeed in the year since we started keeping tabs on this, people made nearly fifty thousand requests for time-based bulk data3.

On the backend, the way this worked was that the first time somebody wanted a bulk file, they requested it, we generated it, and then we served it. The second time somebody requested that same file, we just served the one we generated before, creating a disk-based cache of sorts. This actually worked pretty well but it let people start long-running processes on our server that could degrade the performance of the front end. It wasn’t great, but it was a simple way to serve time- and jurisdiction-based files.4

As any seasoned developer knows, the next problem with such a system would be cache invalidation. How would we know that a cached bulk file had bad data and how would we delete it if necessary? Turns out this wasn’t so hard, but every time we changed (or deleted) an item in our database we had code that went out to the cache on disk and deleted any bulk files that might contain stale data. Our data doesn’t change often, so for the most part this worked, but it’s the kind of spaghetti code you want to avoid. Touching disk whenever an item is updated? Not so good.

And there were bugs. Weird ones.

Yeah, the old system kind of sucked. The last few days I’ve been busy re-working our bulk data system to make it more reliable, easier to use and just overall, better.

The New System

Let’s get the bad news taken care of off the bat: The new system no longer allows date-based bulk files. Since these could cause performance issues on the front end, and since nobody opposed the change, we’ve done away with this feature. It had a good life, may it RIP.

The good news is that by getting rid of the date-based bulk files, we’ve been able to eliminate a metric ton of complexity, literally! No longer do we need the disk-cache. No longer do we need to parse URLs and generate bulk data on the fly. No longer is the code a mess of decision trees based on cache state and user requests. Ah, it feels so free at last!

And it gets even better. On top of this, we were able to resolve a long-standing feature request for complete bulk data files by jurisdiction. We were able to make the schema of the bulk files match that of our REST API. We were able to make the bulk file a tar of smaller JSON files, so no more issues unzipping massive files or having 32 bit systems crash. We settled all the family business.

Oh, and one more thing: When this goes live, we’ll have bulk files and an API for oral arguments as well — Another CourtListener first.

Jeez, That’s Great, Why’d You Wait So Long?

This is a fair question. If it was possible to gain so much so quickly, why didn’t we do it sooner? Well, there are a number of reasons, but at the core, like so many things, it’s because nothing is actually that easy.

Before we could make these improvements, we needed to:

And pretty much everything else you can imagine. So, I suppose the answer is: We waited so long because it was hard.

But being hard is one thing. Another thing is that although a number of organizations have used our bulk data, never has any contributed either energy or resources to fixing the bugs that they reported. Despite the benefits these organizations got from the bulk files, none chose to support the ecosystem from which they benefited. You can imagine how this isn’t particularly motivational for us, but we’re hopeful that with the new and improved system, those using our data will appreciate the quality of the bulk data and consider supporting us down the road.

Wrapping Up

So, without sucking on too many sour grapes, that’s the story behind the upgrades we’re making to the bulk files at CourtListener. At first blush it may seem like a fairly straightforward feature to get in place (and remember, in many cases bulk data is stupid-easy to do), but we thought it would be interesting to share our experiences so others might compare notes. If you’re a consumer of CourtListener bulk data, we’ll be taking the wraps off of these new features soon, so make sure to watch the Free Law Project blog. If you’re a developer that’s interested in this kind of thing, we’re eager to hear your feedback and any thoughts you might have.


  1. For example, a few days ago some folks got access to NYC taxi information in bulk. In theory it was anonymized using MD5 hashing, but because there were a limited number of inputs into the hashing algorithm, all it took to de-anonymize the data was to compute every possible hash (“computing the 22M hashes took less than 2 minutes“) and then work backwards from there to the original IDs. While one researcher did that, another one began finding images of celebrities in taxis and figuring out where they went. Privacy is hard. 

  2. I confess I’m not that sympathetic… 

  3. To be exact: 48271 requests, as gathered by our stats module. 

  4. So far, 17866 files were created this way that haven’t been invalidated, as counted by:

    find -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" -type f | wc -l; done
    

  5. Commence a fun digression for the developers. As you might expect, aside from compressing bulk files, the bottleneck of generating 350+ bulk files at once is pulling items from the database and converting them to JSON. We tried a few solutions to this problem, but the best we came up with takes advantage of the fact that every item in the database belongs in exactly two bulk files: The all.tar.gz file and the {jurisdiction}.tar.gz file. One way to put the item into both places would be to generate the all.tar.gz file and then generate each of the 350 smaller files.

    That would iterate every item in the database twice, but while making the jurisdiction files you’d have to do a lot of database filtering…something that it’s generally good to avoid. Our solution to this problem is to create a dictionary of open file handles and then to iterate the entire database once. For each item in the database, add it to both the all.tar.gz file and add it to the {jurisdiction}.tar.gz file. Once complete, close all the file handles. For example:

    # Get all the courts
    courts = Court.objects.all()
    
    # Create a dictionary with one key per jurisdiction
    tar_files = {}
    for court in courts:
        tar_files[court.pk] = tarfile.open(
            '/tmp/bulk/opinions/%s.tar.gz' % court.pk,
            mode='w:gz',
            compresslevel=1,
        )
    
    # Then iterate over everything, adding it to the correct key
    for item in item_list:
        # Add the json str to the two tarballs
        tarinfo = tarfile.TarInfo("%s.json" % item.pk)
    
        tar_files[item.docket.court_id].addfile(
            tarinfo, StringIO.StringIO(json_str))
        tar_files['all'].addfile(
            tarinfo, StringIO.StringIO(json_str))
    

    In a sense the first part creates a variable for every jurisdiction on the fly and the second part uses that variable as a dumping point for each item as it iterates over them.

    A fine hack. 

by Mike Lissner at November 06, 2014 08:00 AM

November 04, 2014

Ph.D. student

prediction and computational complexity

To the extent that an agent is predictable, it must be:

  • observable, and
  • have a knowable internal structure

The first implies that the predictor has collected data emitted by the agent.

The second implies that the agent has internal structure and that the predictor has the capacity to represent the internal structure of the other agent.

In general, we can say that people do not have the capacity to explicitly represent other people very well. People are unpredictable to each other. This is what makes us free. When somebody is utterly predictable to us, their rigidity is a sign of weakness or stupidity. They are following a simple algorithm.

We are able to model the internal structure of worms with available computing power.

As we build more and more powerful predictive systems, we can ask: is our internal structure in principle knowable by this powerful machine?

This is different from the question of whether or not the predictive machine has data from which to draw inferences. Though of course the questions are related in their implications.

I’ve tried to make progress on modeling this with limited success. Spiros has just told me about binary decision diagrams which are a promising lead.


by Sebastian Benthall at November 04, 2014 05:54 AM

November 03, 2014

Ph.D. student

objective properties of text and robot scientists

One problem with having objectivity as a scientific goal is that it may be humanly impossible.

One area where this comes up is in the reading of a text. To read is to interpret, and it is impossible to interpret without bringing ones own concepts and experience to bear on the interpretation. This introduces partiality.

This is one reason why Digital Humanities are interesting. In Digital Humanities, one is using only the objective properties of the text–its data as a string of characters and its metadata. Semantic analysis is reduced to a study of a statistical distribution over words.

An odd conclusion: the objective scientific subject won’t be a human intelligence at all. It will need to be a robot. Its concepts may never be interpretable by humans because any individual human is too small-minded or restricted in their point of view to understand the whole.

Looking at the history of cybernetics, artificial intelligence, and machine learning, we can see the progression of a science dedicated to understanding the abstract properties of an idealized, objective learner. That systems such as these underly the infrastructure we depend on for the organization of society is a testament to their success.


by Sebastian Benthall at November 03, 2014 07:59 PM

November 01, 2014

MIMS 2010

Some Thoughts on Celery

We finally upgraded CourtListener last week and things went pretty well with the exception of two issues. First, we had some extended downtime as we waited for the database migration to complete. In retrospect, I should have realized that updating every item one row at a time would take a while. My bad.

Second, Celery broke again and that took me the better part of a day to detect and fix. As a central part of our infrastructure, this is really, truly frustrating. The remainder of this post goes into what happened, why it happened and how I finally managed to fix it.

Why?

First, why did this happen? Well…because I decided to log something. I created a task that processes our new audio files and I thought, “Hey, these should really log to the Juriscraper log rather than the usual celery log.” So, I added two lines to the file: One importing the log file and the second writing a log message. This is the little change that brought Celery to a grinding halt.

What the Hell?

If you’re wondering why logging would break an entire system, well, the answer is because Celery runs as a different user than everything else. In our case, as the celery user — a user that didn’t have permission to the log file I requested. Ugh.

Fine, that’s not so bad, but there were a number of other frustrating things that made this much worse:

  1. The Celery init script that we use was reporting the following:

     sudo service celeryd start
    celeryd-multi v3.0.13 (Chiastic Slide)
    > Starting nodes...
        > w1.courtlistener.com: OK
    

    But no, it was not starting “OK”. It was immediately crashing.

  2. No log messages…anywhere. This appears to be because you have to detach stdin and stdout before daemonizing and according to asksol on IRC, this has been fixed in recent versions of Celery so even daemonizing errors can go to the Celery logs. Progress!

  3. The collection of things that happens when celery starts is complicated:

    1. I call sudo service celeryd start

    2. service calls /etc/init.d/celeryd

    3. celeryd does some stuff and calls celery.sh (another file altogether), where our settings are.

      Update: Apparently this is a CourtListener-specific customization, so this step probably won’t apply to you, but I have no idea where this wacky set up came from (it’s been in place for years).

    4. Control is returned to celery, which starts celery itself with a command generated from celery.sh.

    On top of this, there’s a celery binary and there’s a celery management command for Django. (Update the Django commands were removed in Celery 3.1. More progress!) celery --help prints out 68 lines of documentation. Not too bad, but many of those lines refer you to other areas of the documentation. For example, celery worker --help prints another 100 lines of help text. Jesus this thing is complicated.

    Did I mention it has changing APIs?

I digress a bit, but the point here is that it fails silently, there are no log messages when it fails, and there’s no way to know which part of a complicated infrastructure is the problem. End rant.1

Seeking Sanity

It took me a long time to figure out what was going wrong, but I did eventually figure it out. The process, in case you run into something similar, is to modify celeryd so it prints out the command that it eventually runs. At that point you’ll have the correct command. With that, you can run it as the celery user and with some luck you’ll see what the problem is. There’s a modified init script for this purpose, if you like.

Other tips:

  1. If you have a new enough version of Celery, there are some troubleshooting tips that should help. They did nothing for me, because I haven’t upgraded yet for fear of the changing APIs.

  2. There seem to be a handful of different command line flags that Celery can use to be sent to the background. You’ll need to disable these when you’re testing or else you won’t see error messages or anything (apparently?).

Moving Forward

So, I feel bad: I’ve ranted a good deal about Celery, but I haven’t proposed any solutions. It looks like a lot of things have been improved in recent versions of Celery, so part of the solution is likely for us to upgrade.

But this isn’t the first time I’ve spent a long time trying to make Celery work, so what other ideas it take to make Celery a less complicated, more reliable tool?

The ideas I’ve come up with so far are:

  • More documentation for installation and set up troubleshooting with the possibility of a wiki.
    • But already I rant about how much documentation it has.
  • A simpler interface that eliminates a number of edge uses.
    • But I have no idea what, if anything, can be eliminated.
  • Support for fewer task brokers.
    • But I use RabbitMQ and am considering switching to Redis.
  • A more verbose, more thorough debug mode.
    • But apparently this is already in place in the latest versions?
  • Let Celery run as the www-data user as a general practice?
    • But apparently that’s a bad idea.

      Update this is a bad idea in general, but it’s not particularly bad if you don’t expose Celery on the network. If you’re only running it locally, you can probablly get by with Celery as a www-data user or similar.

As you can tell, I don’t feel strongly that any of these are the right solution. I am convinced though that Celery has a bad smell and that it’s ripe for a leaner solution to fill some of its simpler use cases. I’m currently considering switching to a simpler task queue, but I don’t know that I’ll do it since Celery is the de-facto one for Django projects.

We deserve a good, simple, reliable task queue though, and I wonder if there are good ideas for what could be changed in Celery to make that possible. I, for one, would love to never spend another minute trying to make RabbitMQ, Celery and my code play nicely together.


  1. In truth Celery is a classic love/hate relationship. On the one hand, it evokes posts like this one, but on the other, it allows me to send tasks to a background queue and distribute loads among many servers. Hell, it’s good enough for Instagram. On the other hand, god damn it, when it fails I go nuts. 

by Mike Lissner at November 01, 2014 07:00 AM

October 30, 2014

Ph.D. student

Comments on Haraway: Situated knowledge, bias, and code

“Above all, rational knowledge does not pretend to disengagement: to be from everywhere and so nowhere, to be free from interpretation, from being represented, to be fully self-contained or fully formalizable. Rational knowledge is a process of ongoing critical interpretation among “fields” of interpreters and decoders. Rational knowledge is power-sensitive conversation. Decoding and transcoding plus translation and criticism; all are necessary. So science becomes the paradigmatic model, not of closure, but of that which is contestable and contested. Science becomes the myth, not of what escapes human agency and responsibility in a realm above the fray, but, rather, of accountability and responsibility for translations and solidarities linking the cacophonous visions and visionary voices that characterize the knowledges of the subjugated.” – Donna Haraway, “Situated Knowledges: The Science Question in Feminism and the Privilege of the Partial Perspective”, 1988

We are reading Donna Haraway’s Situated Knowledges and Cyborg Manifesto for our department’s “Classics” reading group. An odd institution at Berkeley’s School of Information, the group formed years ago to be the place where doctoral students could gather together to read the things they had a sneaking suspicion they should have read, but never were assigned in a class. Since we bridge between many disciplines, there is a lot of ground to cover. Often our readings are from the Science and Technology Studies (STS) tradition.

I love Haraway’s writing. It’s fun. I also think she is mostly right about things. This is not what I expected going into reading her. Her position is that for feminists, rational objective knowledge has to be found in the interpretation and reinterpretation of partial perspectives, not a “god trick” that is assumed to know everything. This “god trick” she associates with phallogocentric white male patriarchal science. This is in 1988.

In 1981, Habermas published his Theory of Communicative Action in German. This work incorporates some of the feminist critiques of his earlier work on the formation of the bourgeois public sphere. Habermas reaches more or less the same conclusion as Haraway: there is no trancendent subject or god’s point of view to ground science; rather, science must be grounded in the interaction of perspectives through communicative action aimed at consensus.

Despite their similarities, there are some significant differences between these points of view. Importantly, Haraway’s feminist science has no white men in it. It’s not clear if it has any Asian, Indian, Black, or Latino men in it either, though she frequently mentions race as an important dimension of subjugation. It’s an appropriation and erasure of non-white masculinity. Does it include working class white men? Or men with disabilities of any kind? Apparently not. Since I’m a man and many of my scientist friends are men (of various races), I find this objectionable.

Then there is Haraway’s belief that such a conversation must always be cacaphonous and frenetic. Essentially, she does not believe that the scientific conversation can or should reach consensus or agreement. She is focusing on the critical process. Reading Habermas, on the other hand, you get the sense that he believes that if everyone would just calm down and stop bickering, we would at last have scientific peace.

Perhaps the difference here comes from the presumed orientation or purpose of interpretation. For Habermas, is it mutual understanding. For Haraway, it is criticism and contest. The “we” must never completely subsume individual partiality for Haraway.

Advocates of a cyborg feminist science or successor science or science of situated knowledges might argue for it on the grounds that it improves diversity. Specifically, it provides a way for women to participate in science.

In UC Berkeley’s D-Lab, where I work, we also have an interest in diversity in science, especially computational social science. In a recent training organized by the committee for Equity, Inclusion, and Diversity, we met together and did exercises where we discussed our unconscious biases.

According to Wikipedia, “Bias is an inclination of temperament or outlook to present or hold a partial perspective, often accompanied by a refusal to even consider the possible merits of alternative points of view. People may be biased toward or against an individual, a race, a religion, a social class, or a political party. Biased means one-sided, lacking a neutral viewpoint, not having an open mind.” To understand ones bias is to understand ones partial perspective. The problem with bias in a diverse setting is that it leads to communication breakdown and exclusion.

A related idea is the idea of a statistical bias, which is when a statistic is systematically out of sync from the population of interest. In computational social science, we have to look out for statistical biases because we aim for our social scientific results to be objective.

Another related idea is cognitive bias, a psychological phenomenon more general than the first kind of bias. These biases are deviation from rationality in psychological thought. This Nobel Prize winning psychological research has found systematic ways in which all people make mental shortcuts that skew their judgments. I’m not familiar with the research on how these cognitive biases interact with social psychology, but one would imagine that the answer is significantly so.

Haraway’s situated knowledges are biased, partial knowledges. She is upholding the rationality of these knowledges in opposition to the “god trick,” “view from nowhere,” which she also thinks is the position of phallogocentric subjugating science. Somehow, for Haraway, men have no perspective, not even a partial one. Yet, from this non-perspective, men carry out their project of domination.

As much as I like Haraway’s energetic style and creativity, as a man I have a difficult time accepting her view of science as situated knowledges because it seems to very deliberately exclude my position.

So instead I am going along with what we learned in Equity, Inclusion, and Diversity training, which is to try to understand better my own biases so that I can do my best to correct them.

This experience is something that anybody who has worked collaboratively on source code will recognize as familiar. When working on software with a team of people, everybody has different ideas about how things should be organized and implemented. Some people may have quirky ideas, some people may be flat out wrong. The discussion that happens on, for example, an open source issue tracker is a discussion about reaching consensus on a course of action. Like in statistics or the pursuit of psychological rationality, this activity is one of finding an agreement that reduces the bias of the outcome.

In machine learning and statistics, one of the ways you can get an unbiased estimator is by combining many biased ones together and weighting their outcomes. One name for this is bagging, short for ‘bootstrap aggregating’. The idea of an unbiased democratic outcome of combined partial perspectives is familiar to people who work in data science or computational social science because it is foundational to their work. It is considered foundational because in the “exact sciences”–which is how Haraway refers to mathematics–there is a robust consensus on the mathematics backing the technique, as well as a robust empirical conclusion of the technique’s successful performance. This robust consensus has happened through translation and criticism of many, many scientist’s partial perspectives.

It is frustrating that this kind of robust, consensually arrived at agreement is still sometimes rejected as radically contingent or historical by those from the Science and Technology Studies (STS) tradition who find their epistemic roots in Haraway. It’s especially frustrating, to me, because I would like to see more diversity–especially more women–in computational social science, or data science more generally. Haraway seems to believe that women in science are unable to overcome their own bias (partiality), or at least encourages them to not try. That seems like a non-starter for women in STEM, because I don’t know how you would ever learn statistics or programming without orienting yourself towards unbiased agreement with others.

So I have to conclude that teaching people Haraway as an epistemology is really bad for science, because it’s bad for diversity in science. That’s a little sad because obviously Haraway had the best of intentions and she is a really interesting writer. It’s also sad because a lot of STS people who base their work off of Haraway really think they are supporting diversity in science. I’ve argued: Nope. Maybe they should be reading Habermas instead.


by Sebastian Benthall at October 30, 2014 05:29 AM

October 29, 2014

Ph.D. student

A troubling dilemma

I’m troubling over the following dilemma:

On the one hand, serendipitous exposure to views unlike your own is good, because that increases the breadth of perspective that’s available to you. You become more cosmopolitan and tolerant.

On the other hand, exposure to views that are hateful, stupid, or evil can be bad, because this can be hurtful, misinforming, or disturbing. Broadly, content can harm.

So, suppose you are deciding what to expose yourself to, or others to, either directly or through the design of some information system.

This requires making a judgment about whether exposure to that perspective will be good or bad.

How is it possible to make that judgment without already having been exposed to it?

Put another way, filter bubbles are sometimes good and sometimes bad. How can you tell the difference, from within a bubble, about whether bridging to another bubble is worthwhile? How could you tell from outside of a bubble? Is there a way to derive this from the nature of bubbles in the abstract?


by Sebastian Benthall at October 29, 2014 06:36 AM

October 26, 2014

Ph.D. student

Dealing with harassment (and spam) on the Web

I see that work is ongoing for anti-spam proposals for the Web — if you post a response to my blog post on your own blog and send me a notification about it, how should my blog software know that you're not a spammer?

But I'm more concerned about harassment than spam. By now, it should be impossible to think about online communities without confronting directly the issue of abuse and harassment. That problem does not affect all demographic groups directly in the same way, but it effects a loss of the sense of safety that is currently the greatest threat to all of our online communities. #GamerGate should be a lesson for us. Eg. Tim Bray:

Part of me sus­pects there’s an up­side to GamerGate: It dragged a part of the In­ter­net that we al­ways knew was there out in­to the open where it’s re­al­ly hard to ig­nore. It’s dam­aged some people’s lives, but you know what? That was hap­pen­ing all the time, any­how. The dif­fer­ence is, now we can’t not see it.

There has been useful debate about the policies that large online social networking sites are using for detecting, reporting and removing abusive content. It's not an easy algorithmic problem, it takes a psychological toll on human moderators, it puts online services into the uncomfortable position of arbiter of appropriateness of speech. Once you start down that path, it becomes increasingly difficult to distinguish between requests of various types, be it DMCA takedowns (thanks, Wendy, for chillingeffects.org); government censorship; right to be forgotten requests.

But the problem is different on the Web: not easier, not harder, just different. If I write something nasty about you on my blog, you have no control over my web server and can't take it down. As Jeff Atwood, talking about a difference between large, worldwide communities (like Facebook) and smaller, self-hosted communities (like Discourse) puts it, it's not your house:

How do we show people like this the door? You can block, you can hide, you can mute. But what you can't do is show them the door, because it's not your house. It's Facebook's house. It's their door, and the rules say the whole world has to be accommodated within the Facebook community. So mute and block and so forth are the only options available. But they are anemic, barely workable options.

I'm not sure I'm willing to accept that these options are anemic, but I want to consider the options and limitations and propose code we can write right now. It's possible that spam could be addressed in much the same way.


Self-hosted (or remote) comments are those comments and responses that are posts hosted by the commenter, on his own domain name, perhaps as part of his own blog. The IndieWeb folks have put forward a proposed standard for WebMentions so that if someone replies to my blog on their own site, I can receive a notification of that reply and, if I care to, show that response at the bottom of my post so that readers can follow the conversation. (This is like Pingback, but without the XML-RPC.) But what if those self-hosted comments are spam? What if they're full of vicious insults?

We need to update our blog software with a feature to block future mentions from these abusive domains (and handling of a block file format, more later).

The model of self-hosted comments, hosted on the commenter's domain, has some real advantages. If joeschmoe.org is writing insults about me on his blog and sending notifications via WebMention, I read the first such abusive message and then instruct my software to ignore all future notifications from joeschmoe.org. Joe might create a new domain tomorrow, start blogging from joeschmoe.net and send me another obnoxious message, but then I can block joeschmoe.net too. It costs him $10 in domain registration fees to send me a message, which is generally quite a bit more burdensome than creating an email address or a new Twitter account or spoofing a different IP address.

This isn't the same as takedown, though. Even if I "block" joeschmoe.org in my blog software so that my visitors and I don't see notifications of his insulting writing, it's still out there and people who subscribe to his blog will read it. Recent experiences with trolling and other methods of harassment have demonstrated that real harm can come not just from forcing the target to read insults or threats, but also from having them published for others to read. But this level of block functionality would be a start, and an improvement upon what we're seeing in large online social networking sites.

Here's another problem, and another couple proposals. Many people blog not from their own domain names, but as a part of a larger service, e.g. Wordpress.com or Tumblr.com. If someone posts an abusive message on harasser.wordpress.com, I can block (automatically ignore and not re-publish) all future messages from harasser.wordpress.com, but it's easy for the harasser to register a new account on a new subdomain and continue (harasser2.wordpress.com, sockpuppet1.wordpress.com, etc.). While it would be easy to block all messages from every subdomain of wordpress.com, that's probably not what I want either. It would be better if, 1) I could inform the host that this harassment is going on from some of their users and, 2) I could share lists with my friends of which domains, subdomains or accounts are abusive.

To that end, I propose the following:

  1. That, if you maintain a Web server that hosts user-provided content from many different users, you don't mean to intentionally host abusive content and you don't want links to your server to be ignored because some of your users are posting abuse, you advertise an endpoint for reporting abuse. For example, on grouphosting.com, I would find in the <head> something like:

    <link rel="abuse" href="https://grouphosting.com/abuse">

    I imagine that would direct to a human-readable page describing their policies for handling abusive content and a form for reporting URLs. Large hosts would probably have a CAPTCHA on that submission form. Today, for email spam/abuse, the Network Abuse Clearinghouse maintains email contact information for administrators of domains that send email, so that you can forward abusive messages to the correct source. I'm not sure a centralized directory is necessary for the Web, where it's easy to mark up metadata in our pages.

  2. That we explore ways to publish blocklists and subscribe to our friend's blocklists.
  3. I'm excited to see blocktogether.org, which is a Twitter tool for blocking certain types of accounts and managing lists of blocked accounts, which can be shared. Currently under discussion is a design for subscribing to lists of blocked accounts. I spent some time working on Flaminga, a project from Cori Johnson to create a Twitter client with blocking features, at the One Web For All Hackathon. But I think blocktogether.org has a more promising design and has taken the work farther.

    Publishing a list of domain names isn't technically difficult. Automated subscription would be useful, but just a standard file-format and a way to share them would go a long way. I'd like that tool in my browser too: if I click a link to a domain that my friends say hosts abusive content, then warn me before navigating to it. Shared blocklists also have the advantage of hiding abuse without requiring every individual to moderate it away. I won't even see mentions from joeschmoe.org if my friend has already dealt with his abusive behavior.

    Spam blocklists are widely used today as one method of fighting email spam: maintained lists primarily of source IP addresses, that are typically distributed through an overloading of DNS. Domain names are not so disposable, so list maintainance may be more effective. We can come up with a file format for specifying inclusion/exclusion of domains, subdomains or even paths, rather than re-working the Domain Name System.


Handling, inhibiting and preventing online harassment is so important for open Web writing and reading. It's potentially a major distinguishing factor from alternative online social networking sites and could encourage adoption of personal websites and owning one's own domain. But it's also an ethical issue for the whole Web right now.

As for email spam, let's build tools for blocking domains for spam and abuse on the social Web, systems for notifying hosts about abusive content and standards for sharing blocklists. I think we can go implement and test these right now; I'd certainly appreciate hearing your thoughts, via email, your blog or at TPAC.

Nick

P.S. I'm not crazy about the proposed vouching system, because it seems fiddly to implement and because I value most highly the responses from people outside my social circles, but I'm glad we're iterating.

Also, has anyone studied the use of rhymes/alternate spellings of GamerGate on Twitter? I find an increasing usage of them among people in my Twitter feed, doing that apparently to talk about the topic without inviting the stream of antagonistic mentions they've received when they use the #GamerGate hashtag directly. Cf. the use of "grass mud horse" as an attempt to evade censorship in China, or rhyming slang in general.

by nick@npdoty.name at October 26, 2014 06:11 PM

October 25, 2014

MIMS 2012

Testing Theory: Mo' Choices, Mo' Problems

When asked, most of us would say we’d prefer more options to choose from, rather than fewer. We want to make the best possible choice, so more options should increase the likelihood we’ll choose correctly. But in actuality, research shows that more choice usually leads to worse decisions, or the abandonment of choice altogether. In this post, I will describe how we can use this knowledge to generate A/B test ideas.

Cognitive Overload

More choices are more mentally taxing to compare and evaluate, leading to cognitive overload and a decrease in decision making skills. Anecdotally, it’s the experience of walking into a supermarket to buy toothpaste, only to be confronted by an endless wall of brands and specialized types that all seem roughly the same. You’re quickly overwhelmed, and with no distinguishing characteristics to help you choose, you just grab whatever you bought last time and get the hell out of there.

This common experience was formally studied by Iyengar and Lepper (pdf) (2000), who compared buying rates when shoppers were presented 24 jams to sample, versus just 6. They found when 24 jams were available, only 3% of people bought a jar. But when only 6 jams were available, 30% bought a jar. By providing fewer jams to sample, it was easier for shoppers to compare them to each other and make a decision.

Generating Test Ideas

From these findings you can apply a simple rule to your site or mobile app to generate test ideas: any time a user has to make a choice (e.g. deciding which product to buy; clicking a navigation link; etc.), reduce the number of available options. Here are some examples:

  • Have just one call-to-action. If you have “Sign Up” and “Learn More” buttons, for example, try removing the “Learn More” button. (See below for an example).
  • Remove navigation items. For example, Amazon has been continually simplifying its homepage by hiding its store categories in favor of search. Shoppers don’t need to think about which category might have their desired item; rather, they just search for it. (For help simplifying your navigation, check out this series of articles on Smashing Magazine).
  • Try offering fewer products. See if hiding unpopular or similar products increases purchases of the few that remain.
  • If removing products isn’t feasible, try asking people to make a series of simple choices to narrow down their options. Returning to the toothpaste example, you could ask people to choose a flavor, then a type (whitening, no-fluoride, baking soda, etc.), and present toothpastes that only match those choices. The key is to make sure your customers understand each facet, and the answers are distinct and not too numerous (i.e. less than 6).
  • Break up checkout forms into discrete steps.
  • Remove navigation from checkout funnels. Many eCommerce sites (like Crate&Barrel and Amazon) do this because it leaves one option to the user — completing the purchase (see below).

"Crate&Barrel checkout flow comparison"

By removing the main navigation from their checkout flow, Crate&Barrel increased average order value by 2% and revenue per visitor by 1%.

"SeeClickFix call-to-action comparison"

By removing extraneous calls-to-action (“Free Sign Up” and “Go Pro! Free Trial”), SeeClickFix (a service for reporting neighborhood issues) focused users’ attention on the search bar and increased engagement by 8%.

Know your audience

Of course, there are times when more choice is better. Broadly speaking, experts typically know what they’re looking for, and are able to evaluate many options because they understand all the distinguishing minutia. For example, professional tennis players can rapidly narrow down the choice of thousands of racquets to just a few because they understand the difference between different materials, weights, head sizes, lengths, and so on. If you don’t offer what they’re looking for, or make it easy to get to what they want, they’ll look elsewhere. For this reason, it’s important that you understand your audience and cater to their buying habits.


We’re trained from an early age to believe that more choice is always better. But in actuality, more choices are mentally taxing, and lead to poor decision making or the abandonment of choice altogether. By testing the removal or simplification of options, you can increase sales, conversions, and overall customer satisfaction.

Further Reading

by Jeff Zych at October 25, 2014 08:17 PM

Ph.D. student

developing a nuanced view on transparency

I’m a little late to the party, but I think I may at last be developing a nuanced view on transparency. This is a personal breakthrough about the importance of privacy that I owe largely to the education I’m getting at Berkeley’s School of Information.

When I was an undergrad, I also was a student activist around campaign finance reform. Money in politics was the root of all evil. We were told by our older, wiser activist mentors that we were supposed to lay the groundwork for our policy recommendation and then wait for journalists to expose a scandal. That way we could move in to reform.

Then I worked on projects involving open source, open government, open data, open science, etc. The goal of those activities is to make things more open/transparent.

My ideas about transparency as a political, organizational, and personal issue originated in those experiences with those movements and tactics.

There is a “radically open” wing of these movements which thinks that everything should be open. This has been debunked. The primary way to debunk this is to point out that less privileged groups often need privacy for reasons that more privileged advocates of openness have trouble understanding. Classic cases of this include women who are trying to evade stalkers.

This has been expanded to a general critique of “big data” practices. Data is collected from people who are less powerful than people that process that data and act on it. There has been a call to make the data processing practices more transparent to prevent discrimination.

A conclusion I have found it easy to draw until relatively recently is: ok, this is not so hard. What’s important is that we guarantee privacy for those with less power, and enforce transparency on those with more power so that they can be held accountable. Let’s call this “openness for accountability.” Proponents of this view are in my opinion very well-intended, motivated by values like justice, democracy, and equity. This tends to be the perspective of many journalists and open government types especially.

Openness for accountability is not a nuanced view on transparency.

Here are some examples of cases where an openness for accountability view can go wrong:

  • Arguably, the “Gawker Stalker” platform for reporting the location of celebrities was justified by an ‘opennes for accountability’ logic. Jimmy Kimmel’s browbeating of Emily Gould indicates how this can be a problem. Celebrity status is a form of power but also raises ones level of risk because there is a small percentage of the population that for unfathomable reasons goes crazy and threatens and even attacks people. There is a vicious cycle here. If one is perceived to be powerful, then people will feel more comfortable exposing and attacking that person, which increases their celebrity, increasing their perceived power.
  • There are good reasons to be concerned about stereotypes and representation of underprivileged groups. There are also cases where members of those groups do things that conform to those stereotypes. When these are behaviors that are ethically questionable or manipulative, it’s often important organizationally for somebody to know about them and act on them. But transparency about that information would feed the stereotypes that are being socially combated on a larger scale for equity reasons.
  • Members of powerful groups can have aesthetic taste and senses of humor that are offensive or even triggering to less powerful groups. More generally, different social groups will have different and sometimes mutually offensive senses of humor. A certain amount of public effort goes into regulating “good taste” and that is fine. But also, as is well known, art that is in good taste is often bland and fails to probe the depths of the human condition. Understanding the depths of the human condition is important for everybody but especially for powerful people who have to take more responsibility for other humans.
  • This one is based on anecdotal information from a close friend: one reason why Congress is so dysfunctional now is that it is so much more transparent. That transparency means that politicians have to be more wary of how they act so that they don’t alienate their constituencies. But bipartisan negotiation is exactly the sort of thing that alienates partisan constituencies.

If you asked me maybe two years ago, I wouldn’t have been able to come up with these cases. That was partly because of my positionality in society. Though I am a very privileged man, I still perceived myself as an outsider to important systems of power. I wanted to know more about what was going on inside important organizations and was frustrated by my lack of access to it. I was very idealistic about wanting a more fair society.

Now I am getting older, reading more, experiencing more. As I mature, people are trusting me with more sensitive information, and I am beginning to anticipate the kinds of positions I may have later in my career. I have begun to see how my best intentions for making the world a better place are at odds with my earlier belief in openness for accountability.

I’m not sure what to do with this realization. I put a lot of thought into my political beliefs and for a long time they have been oriented around ideas of transparency, openness, and equity. Now I’m starting to see the social necessity of power that maintains its privacy, unaccountable to the public. I’m starting to see how “Public Relations” is important work. A lot of what I had a kneejerk reaction against now makes more sense.

I am in many ways a slow learner. These ideas are not meant to impress anybody. I’m not a privacy scholar or expert. I expect these thoughts are obvious to those with less of an ideological background in this sort of thing. I’m writing this here because I see my current role as a graduate student as participating in the education system. Education requires a certain amount of openness because you can’t learn unless you have access to information and people who are willing to teach you from their experience, especially their mistakes and revisions.

I am also perhaps writing this now because, who knows, maybe one day I will be an unaccountable, secretive, powerful old man. Nobody would believe me if I said all this then.


by Sebastian Benthall at October 25, 2014 06:14 PM

October 24, 2014

Ph.D. alumna

My name is danah and I’m a stats addict.

I love data and I hate stats. Not stats in abstract — statistics are great — but the kind of stats that seem to accompany any web activity. Number of followers, number of readers, number of viewers, etc. I hate them in the way that an addict hates that which she loves the most. My pulse quickens as I refresh the page to see if one more person clicked the link. As my eyes water and hours pass, I have to tear myself away from the numbers, the obsessive calculating that I do, creating averages and other statistical equations for no good reason. I gift my math-craving brain with a different addiction, turning to various games — these days, Yushino — to just get a quick hit of addition. And then I grumble, grumble at the increasing presence of stats to quantify and measure everything that I do.

My hatred is not a new hatred. Oh, no. I’ve had an unhealthy relationship with measurement since I was a precocious teenager. I went to a school whose grades came in five letters — A, B, C, D, F (poor E, whatever happened to E?). Grades were rounded to the nearest whole number so if you got an 89.5, you got an A. I was that horrible bratty know-it-all student who used to find sick and twisted joy in performing at exactly bare minimum levels. Not in that slacking way, but in that middle finger in the air way. For example, if you gave me a problem set with 10 questions on it, where each question was harder than the last, I would’ve done the last 9 problems and left the first one blank. Oh was I arrogant.

The reason that I went to Brown for college was because it was one of two colleges I found out about that didn’t require grades; the other college didn’t have a strong science program. I took every class that I could Pass/Fail and loved it. I’m pretty sure that I actually got an A in those classes, but the whole point was that I didn’t have to obsess over it. I could perform strongly without playing the game, without trying to prove to some abstract entity that I could manipulate the system just for the fun of it.

When I started my blog back in the day, I originally put on a tracker. (Remember those older trackers that were basically data collectors in the old skool days??) But then I stopped. I turned it off. I set it up to erase the logs. I purposefully don’t login to my server because I don’t want to know. I love not knowing, not wondering why people didn’t come back, not realizing that a post happened to hit it big in some country. I don’t want the data, I don’t want to know.

Data isn’t always helpful. When my advisor was dying of brain cancer, he struggled to explain to people how he didn’t want to know more than was necessary. His son wanted the data to get his head around what was happening, to help his father. But my advisor and I made a deal — I didn’t look up anything about his illness and would take his interpretation at face-value, never conflicting whatever he said. He was a political scientist and an ethnographer, a man who lived by data of all forms and yet, he wanted to be free from the narrative of stats as he was dying.

As we move further and further into the era of “big data,” I find that stats are everywhere. I can’t turn off the number of followers I have on Twitter. And I can’t help but peek at the stats on my posts on Medium, even though I know it’s not healthy for me to look. (Why aren’t people reading that post!?!? It was sooo good!!) The one nice thing about the fact that 3rd party stats on book sales are dreadfully meaningless is that I have zero clue how many people have bought my book. But I can’t help but query my Amazon book sale rank more often than I’d like to admit. For some, it’s about nervously assessing their potential income. I get this. But for me, it’s just the obsessive desire to see a number, to assess my worth on a different level. If it goes up, it means “YAY I’M AWESOME!” but if it goes down, no one loves me, I’m a terrible person. At least in the domain that I have total control over — my website — I don’t track how many people have downloaded my book. I simply don’t know and I like it that way. Because if I don’t know, I can’t beat myself up over a number.

The number doesn’t have to be there. I love that Benjamin Grosser created a demetricator to remove numbers from Facebook (tx Clive Thompson!). It’s like an AdBlocker for stats junkies, but it only works on Facebook. It doesn’t chastise you for sneaking a look at numbers elsewhere. But why is it that it takes so much effort to remove the numbers? Why are those numbers so beneficial to society that everyone has them?

Stats have this terrible way of turning you — or, at least, me — into a zombie. I know that they don’t say anything. I know that huge chunks of my Twitter followers are bots, that I could’ve bought my way to a higher Amazon ranking, that my Medium stats say nothing about the quality of my work, and that I should not treat any number out there as a mechanism for self-evaluation of my worth as a human being. And yet, when there are numbers beckoning, I am no better than a moth who sees a fire.

I want to resist. I want serenity and courage and wisdom. And yet, and yet… How many people will read this post? Are you going to tweet it? Are you going to leave comments? Are you going to tell me that I’m awesome? Gaaaaaaaah.

(This post was originally published on September 24, 2014 in The Message on Medium.)

by zephoria at October 24, 2014 04:27 PM

Ph.D. student

writing about writing

Years ago on a now defunct Internet forum, somebody recommended that I read a book about the history of writing and its influence on culture.

I just spent ten minutes searching through my email archives trying to find the reference. I didn’t find it.

I’ve been thinking about writing a lot lately. And I’ve been thinking about writing especially tonight, because I was reading this essay that is in a narrow sense about Emily Gould but in a broad sense is about writing.*

I used to find writing about writing insufferable because I thought it was lazy. Only writers with nothing to say about anything else write about writing.

I don’t disagree with that sentiment tonight. Instead I’ve succumbed to the idea that actually writing is a rather specialized activity that is perhaps special because it affords so much of an opportunity to scrutinize and rescrutinize in ways that everyday social interaction does not. By everyday social interaction, I mean specifically the conversations I have with people that are physically present. I am not referring to the social interactions that I conduct through writing with sometimes literally hundreds of people at a time, theoretically, but actually more on the order of I don’t know twenty, every day.

The whole idea that you are supposed to edit what you write before you send it presupposes a reflective editorial process where text, as a condensed signal, is the result of an optimization process over possible interpretations that happens before it is ever emitted. The conscious decision to not edit text as one writes it is difficult if not impossible for some people but for others more…natural. Why?

The fluidity with which writing can morph genres today–it’s gossip, it’s journalism, it’s literature, it’s self expression reflective of genuine character, it’s performance of an assumed character, it’s…–is I think something new.


* Since writing this blog post, I have concluded that this article is quite evil.


by Sebastian Benthall at October 24, 2014 08:09 AM

October 19, 2014

Ph.D. student

It all comes back to Artificial Intelligence

I am blessed with many fascinating conversations every week. Because of the field I am in, these conversations are mainly about technology and people and where they intersect.

Sometimes they are about philosophical themes like how we know anything, or what is ethical. These topics are obviously relevant to an academic researcher, especially when one is interested in computational social science, a kind of science whose ethics have lately been called into question. Other times they are about the theoretical questions that such a science should or could address, like: how do we identify leaders? Or determine what are the ingredients for a thriving community? What is creativity, and how can we mathematically model how it arises from social interaction?

Sometimes the conversations are political. Is it a problem that algorithms are governing more of our political lives and culture? If so, what should we do about it?

The richest and most involved conversations, though, are about artificial intelligence (AI). As a term, it has fallen out of fashion. I was very surprised to see it as a central concept in Bengio et al.’s “Representation Learning: A Review and New Perspectives” [arXiv]. In most discussion scientific computing or ‘data science’ for the most part people have abandoned the idea of intelligent machines. Perhaps this is because so many of the applications of this technology seem so prosaic now. Curating newsfeeds, for example. That can’t be done intelligently. That’s just an algorithm.

Never mind that the origins of all of what we now call machine learning was in the AI research program, which is as old as computer science itself and really has grown up with it. Marvin Minsky famously once defined artificial intelligence as ‘whatever humans still do better than computers.’ And this is the curse of the field. With every technological advance that is at the time mind-blowingly powerful, performing a task that it used to require hundreds of people to perform, it very shortly becomes mere technology.

It’s appropriate then that representation learning, the problem of deriving and selecting features from a complex data set that are valuable for other kinds of statistical analysis in other tasks, is brought up in the context of AI. Because this is precisely the sort of thing that people still think they are comparatively good at. A couple years ago, everyone was talking about the phenomenon of crowdsourced image tagging. People are better at seeing and recognizing objects in images than computers, so in order to, say, provide the data for Google’s Image search, you still need to mobilize lots of people. You just have to organize them as if they were computer functions so that you can properly aggregate their results.

On of the earliest tasks posed to AI, the Turing Test, proposed and named after Alan Turing, the inventor of the fricking computer, is the task of engaging in conversation as if one is a human. This is harder than chess. It is harder than reading handwriting. Something about human communication is so subtle that it has withstood the test of time as an unsolved problem.

Until June of this year, when a program passed the Turing Test in the annual competition. Conversation is no longer something intelligent. It can be performed by a mere algorithm. Indeed, I have heard that a lot of call centers now use scripted dialog. An operator pushes buttons guiding the caller through a conversation that has already been written for them.

So what’s next?

I have a proposal: software engineering. We still don’t have an AI that can write its own source code.

How could we create such an AI? We could use machine learning, training it on data. What’s amazing is that we have vast amounts of data available on what it is like to be a functioning member of a software development team. Open source software communities have provided an enormous corpus of what we can guess is some of the most complex and interesting data ever created. Among other things, this software includes source code for all kinds of other algorithms that were once considered AI.

One reason why I am building BigBang, a toolkit for the scientific analysis of software communities, is because I believe it’s the first step to a better understanding of this very complex and still intelligent process.

While above I have framed AI pessimistically–as what we delegate away from people to machines, that is unnecessarily grim. In fact, with every advance in AI we have come to a better understanding of our world and how we see, hear, think, and do things. The task of trying to scientifically understand how we create together and the task of developing an AI to create with us is in many ways the same task. It’s just a matter of how you look at it.


by Sebastian Benthall at October 19, 2014 03:04 AM

October 18, 2014

MIMS 2012

October 14, 2014

MIMS 2010

Creating a Non-Profit

The Goal

This post is an attempt to document the things that we’ve done at Free Law Project to get our official Federal and State non-profit status. This has been a grueling process for Brian and me but as we announced on Twitter, we now have it officially in hand, and likely in record time:

Check out this beauty! We’re finally the real deal.

All through the process, I wished there was something that had all the documentation of the process, so this is my attempt at such a post. I’m writing this after the fact, so I expect that I’ll munge a few details. If you catch me making a mistake, you can either edit this page yourself using my handy guide, or you can send me a note and I’ll update it.

Before We Begin

Three notes before we begin:

  1. Our complete IRS packet is available. Please feel free to take a look.

  2. The very best resource we found for this was a checklist from Public Counsel which reads like this blog post if it were written by qualified lawyers.

  3. Nothing here, there, or anywhere is tax advice or legal advice or advice in any way, period. This is an overview of the process as we understand it. It might work for you, it might not. We’re not tax or IRS experts. Hell, I’m not even a lawyer.

The Overall Process

Here are the major steps for California and Federal recognition:

  1. Reserve the name of your organization with the Secretary of State
  2. Check for trademarks on your organization name
  3. Get an EIN from the IRS
  4. Get official with the Secretary of State of California
    1. Write Bylaws
    2. Write Articles of Incorporation
    3. Write Conflict of Interest and Ethics Policy
    4. Hold a meeting creating directors (and having them resign as incorporators, if necessary)
    5. Hold a meeting to ratify and adopt everything above
  5. File Statement of Information with Secretary of State
  6. Register with the California Attorney General’s registry of charitable trusts
  7. Get Federal recognition as a 501(c)(3)
    1. IRS-1023
    2. Your organization’s press coverage
    3. Your homepage
    4. Articles of Incorporation stamped by the State Secretary
    5. Phone a friend
  8. File for California tax exemption
  9. Get Municipal recognition

Reserve Your Name with the Secretary of State

This is an important step if you think somebody else might already have your name or if you think it might get scooped up before you finish your paperwork. This is your opportunity to say that your organization is named such-and-such and nobody else can have that name.

More information about this can be found on the Secretary of State’s website. The process involves downloading a form, filling it out, mailing it in, and then waiting for a reply. Once you get the reply, the name is yours for 60 days. This is probably also a good time to…

Check for Trademarks

If you think the name of your organization might be a trademark, you should check the USPTO’s trademark database to see if it is. If so, it’s probably wise to re-think the name of your organization. Naming your organization the Nike Charitable Trust probably won’t work out well for you.

Get an EIN

This is the official step that’s required to incorporate your organization and it’s a fairly easy one. Once this is done you’ll have an Employer Identification Number (EIN) from the IRS.

To do this, there is a multi-step form on the IRS website. Work your way through it, and if you come out the other side, you’ll quickly be the owner of a freshly minted EIN. Keep it private, as you would an SSN.

Get Official with California

At this point, you’ve moved past the easy stuff. It’s time for the weird and difficult paperwork.

Write Bylaws, Articles of Incorporation and Conflict of Interest and Ethics Policy

Writing these three items is a very persnickety part of the process. Each item must include certain phrases and failure to include those phrases will sink any attempt to get 501(c)(3) status down the road. The template we used for each of these was created by Public Counsel and can be downloaded from their website (Bylaws, Articles of Incorporation, Ethics Policy).

The best process we discovered for this was to very carefully work our way through each template and to update any section that needed it. The result clocks in at 25 pages for the Bylaws and Articles of Incorporation and ten pages for the Conflict of Interest and Ethics Policy.

Hold Some Meetings

OK, you’ve got your name, EIN, Bylaws, Articles of Incorporation and Conflict of Interest and Ethics Policy all ready. Now what? Well, now we enter the portion of the process that involves magic and wizardry. What we do now is we hold two meetings. Feel free to chant during these meetings if that helps them make sense.

The first meeting serves the purpose of creating directors and having them resign as incorporators, if necessary. To have this meeting, get all of your incorporators and directors together and decide to make it so. Have your secretary keep minutes from the meeting. You’ll need them for the 501(c)(3). Here are ours and here’s the template we used. You can see how this might feel a bit like voodoo magic if your board of directors is the same group of people as your incorporators (as in our case) — One minute they’re incorporators, the next they’re directors, and the people that authorized the switch are themselves.

The second meeting is where the real business goes down. Here you adopt all of the paperwork you created above, establish bank accounts, etc. Again, we used the templates from Public Counsel to keep minutes for this meeting. Check out our minutes for details and here’s a template. You’ll also see in our minutes a waiver of notice that waives the director’s normal requirement to tell people about the meeting in advance.

These two meetings can (and probably will) take place back to back, but they need to have separate minutes and need to be separate meetings. This is because until the board adopts themselves in the first meeting, they can’t very well do the things in the second meeting. Voodoo? Perhaps.

File Statement of Information with Secretary of State of California

Within 90 days of when you filed your original Articles of Incorporation, you need to take all of the above and send it into the secretary of state along with the SI-100 form.

If you do all of this well and properly, you’ll soon be registered with the State of California, but until you get your 501(c)(3) pushed through you can’t become an official California non-profit, so you’ll have to hold on for a bit for that piece of the puzzle. More on this in a moment.

Register with the California Attorney General

Another thing you’ve got to do, once you’ve got state recognition is to register with the California Attorney General. You have 30 days to do this from the moment when you first had assets as an organization. Be swift.

To do this, there are instructions on the Attorney General’s website, and there’s a PDF that you need to complete.

Get Federal Recognition

If you’ve come this far, you’re actually doing pretty well, but it’s time to find a good fortifying drink, because it’s about to get worse. Much worse. Our operating theory is that the IRS makes this hard because they simply don’t like giving tax exemptions — it’s antithetical to their whole raison d’être. But be that as it may, we must persevere if we’re going to make our organization a 501(c)(3).

So, what’s this process look like?

Well, there are really only two forms that you need to worry about. The first is the IRS-1023 and the second is the checklist for the IRS-1023. That should tell you something about the process you’re about to engage in: There’s a form for the form. Oh, and that’s not all: there’s a web form for the form for the form. Also, the IRS-1023 is an interactive PDF with parts that appear and disappear as you complete it. Also it crashes sometimes (save often!), can only be opened in Adobe Reader and there are three versions of the form and two different revisions. Dizzy yet?

Let’s see if I can simplify this:

  1. The IRS-1023 from December 2013 is currently the main form you want — it’s long and has a lot of questions. It is available in three forms: Interactive (recommended), Regular (no interactive stuff), and Accessible (even less interactive stuff?). You only seem to be able to get this form if you answer a bunch of questions aimed at prepping you for the process. Even then it gives you a zip containing the form, sigh.1
  2. The 1023 checklist must be included in your submission as a table of contents of sorts. The newest one I’ve found is from June 2006.
  3. There are copious resources online to help you complete these forms. The ones we used were form1023.org, the IRS’s own documentation, and the IRS’s FAQ for the form.

OK, you’ve got your forms, let’s talk a bit about the packet you’re going to send to the IRS. The best place to begin understanding the packet is by looking at the checklist we just downloaded. In addition to the items mentioned above, it also requests a number of new items we haven’t seen before. Most of these won’t be necessary for most non-profits, but one is new and worth mentioning: the Expedite Request.

Getting Expedited

As we’ve come to understand it, there are essentially three queues your paperwork can fall into at the IRS:

  1. The urgent queue (30 days?)
  2. The normal queue (90 days?) and
  3. The troublemaker queue (> 90 days / Never)

Your goal is to fall into one of the first two queues. If you fall into the third, it’s possible you’ll never come out the other side. Seriously.

If you want to fall into the first queue, you need to complete an Expedite Request. These are actually pretty straightforward, but you need to qualify. You can see an example of our Expedite Request in our 1023 submission, but basically, you need to state specific harm that will occur if your organization doesn’t get swift 501(c)(3) processing. There are guides about this on the IRS website that we used (successfully, we believe).

Getting faster processing is great but it’s not always possible. Failing that, the thing to do is make sure that you don’t fall into the third queue.

I think the important parts of this are:

  1. Carefully follow the instructions provided by the IRS for the 1023.
  2. Make sure that your articles of incorporation contain the proper purpose and dissolution clauses (they will if you use the templates).
  3. Check the top ten list provided by the IRS for speeding up the process.
  4. Do not mention any of cursed words on the IRS’s list to “Be On the Look Out” for (So-called BOLO words).

The list is apparently no longer in use due to the furor it caused, but it’s still instructive to know what was on it. For example, in our case “Open Source” was on the list, so despite working in the open (something we believe contributes to our educational purpose), we had to be very careful never to mention that in our mission or anywhere else just to ensure there were no misunderstandings.

Once you’ve got your Expedite Request completed, it’s time to work on the 1023 itself. This is a long and arduous process that is too detailed to get into. Be careful, be thorough, follow the guides, and get help from a friend or lawyer. We found it to be incredibly useful to get somebody with experience to carefully look at our paperwork.

Other Things We Sent the IRS

In addition to the items mentioned above, we also included printed copies of a partnership agreement we have with Princeton for the hosting of RECAP, a printed selection of press, and printed copies of our homepages (RECAP, CourtListner, Free Law Project).

The goal of these enclosures was mostly to keep the IRS reviewer from touching their computer, but also to keep their life as simple as possible. Like any application, you want to control the information that is provided to the reviewer. Just like you wouldn’t want your next boss seeing your Facebook profile, you don’t want the IRS reviewer looking up your organization’s website. There’s likely nothing bad for them to see, but you want to keep things as simple as possible. Maybe, we reason, if we provide a printed copy of our homepage they won’t bother booting up their computer. Perhaps.

Remarks on Formatting, Etc.

Sadly, like filing with the Supreme Court, completing your 1023 involves a few formatting and clerical details that we must attend to. First you must be sure to put your name and EIN on the top of every page. This is suprisingly difficult since many of the pages are PDFs you don’t control, but you can pull it off if you try by feeding your printed documents through the printer twice. The first time, you print the regular stuff, the second time you print a blank page over and over that contains your EIN and organization name in the header. Fun.

The second thing to attend to is the ordering of the documents themselves. This is the order of our 1023, and from what we can tell, you really shouldn’t do anything much different:

  1. 1023 Checklist
  2. Request for Expedited Processing
  3. List of Enclosures
  4. The 1023 itself
  5. Articles of Incorporation
  6. Bylaws
  7. Supplemental answers to 1023 questions
  8. Conflict of Interest and Ethics Policy
  9. Minutes adopting Conflict of Interest and Ethics Policy (remember when we made these?)
  10. A partnership agreement we have with Princeton
  11. Our selection of press coverage
  12. Printed copies of our homepages
  13. IRS Form SS-4 indicating our EIN

In total: 83 pages of delightful paperwork and one check for $850.

Total weight: 3/4 lbs.

File California Tax Exemption Forms

If all goes well, you’ll soon hear back from the IRS and be granted your Federal recognition as a 501(c)(3). Congratulations on a hard-won victory.

Now that that’s in place, it’s time to switch back to California and wrap things up with them. To do this you need to complete form 3500A (information / download).

Don’t try to save this form. You can’t:

Go F*** Yourself -- You cannot save this file.

Instead, fill it out, print it, and mail it in along with a copy of your Federal Recognition. If you can print to PDF, that might save your work.

Get Municipal Recognition

The final step of this process for us, though it might come much earlier for you, was to get in touch with the city where we incorporated and to tell them that we exist. We tried to do this early on and had the city staff member in charge of business licenses tell us to come back once we had 501(c)(3) recognition. In the city we selected non-profits are exempt from city business license fees, so that may be why they were so lax about the timing of this paperwork. You may find in your city that they want you to have a business license and pay related fees while you’re waiting on 501(c)(3) status (and sometimes even after).

Wrapping Up

All in all, that’s the basic process of creating a non-profit and getting tax exemption from the feds, the state and your city. Most of this went pretty smoothly, but the most difficult part was by far the IRS-1023, and even that we were able to get our results back in about 30 days. This feels like something of a miracle, but it took us over a year to get all the paperwork completed and submitted.

In the end I liken the process to an incantation of a magic spell: Done correctly, you wind up with a massive pile of paperwork that magically looks like a bad-ass application for tax-exempt status that washes over anybody that looks at it, convincing him or her that your organization is charitable and deserves tax exemption in a forthright manner.

Done incorrectly, you enter a hole of despair, despondency and, worse, taxation.

by Mike Lissner at October 14, 2014 07:00 AM

October 08, 2014

Ph.D. alumna

Frameworks for Understanding the Future of Work

Technology is changing work. It’s changing labor. Some imagine radical transformations, both positive and negatives. Words like robots and drones conjure up all sorts of science fiction imagination. But many of the transformations that are underway are far more mundane and, yet, phenomenally disruptive, especially for those who are struggling to figure out their place in this new ecosystem. Disruption, a term of endearment in the tech industry, sends shutters down the spine of many, from those whose privilege exists because of the status quo to those who are struggling to put bread on the table.

A group of us at Data & Society decided to examine various different emergent disruptions that affect the future of work. Thanks to tremendous support from the Open Society Foundations, we’ve produced five working papers that help frame various issues at play. We’re happy to share them with you today.

  • Understanding Intelligent Systems unpacks the science fiction stories of robots to look at the various ways in which intelligent systems are being integrated into the workforce in both protective and problematic ways. Much of what’s at stake in this domain stems from people’s conflicting values regarding robots, drones, and other intelligent systems.
  • Technologically Mediated Artisanal Production considers the disruptions introduced by 3D printing and “maker culture,” as the very act of physical production begins to shift from large-scale manufacturing to localized creation. The implications for the workforce are profound, but there are other huge potential shifts here, ranging from positive possibilities like democratizing design to more disconcerting concerns like increased environmental costs.
  • Networked Employment Discrimination examines the automation of hiring and the implications this has on those seeking jobs. The issues addressed here range from the ways in which algorithms automatically exclude applicants based on keywords to the ways in which people are dismissed for not having the right networks.
  • Workplace Surveillance traces the history of efforts to using tracking technologies to increase efficiency and measure productivity while decreasing risks for employers. As new technologies come into the workplace to enable new forms of surveillance, a whole host of ethical and economic questions emerge.
  • Understanding Fair Labor Practices in a Networked Age dives into the question of what collective bargaining and labor protections look like when work is no longer cleanly delineated, bounded, or structured within an organization, such as those engaged in peer economy work. Far from being an easy issue, we seek to show the complexity of trying to get at fair labor in today’s economy.

Each of these documents provides a framework for understanding the issues at play while also highlighting the variety of questions that go unanswered. We hope that these will provide a foundation for those trying to better understand these issues and we see this as just the beginning of much needed work in these areas. As we were working on these papers, we were delighted to see a wide variety of investigative journalism into these issues and we hope that much more work is done to better understand the social and cultural dimensions of these technological shifts. We look forward to doing more work in this area and would love to hear feedback from others, including references to other work and efforts to address these issues. Feel free to contact us at feedback@datasociety.net

(All five papers were authored by a combination of Alex Rosenblat, Tamara Kneese, and danah boyd; author order varies by document. This work was supported by the Open Society Foundations and is part of ongoing efforts at Data & Society to better understand the Future of Labor.)

(Photo by David Blaine.)

by zephoria at October 08, 2014 07:34 PM

MIMS 2010

In Re NSL

Kurt Opsahl for EFF

Kurt Opsahl for EFF

I spent the morning today in court watching Kurt Opsahl from the Electronic Frontier Foundation deliver oral arguments for In Re National Security Letters, AKA Under Seal v. Eric Holder. I had originally planned on attending this as a lay person holding a smart phone camera and taking pictures, but soon after I filed an application to take photos, I became the media “pool”, meaning I was the one guy responsible for taking photos and distributing to the press after the fact.

Well, I’m no photographer, but since nobody else applied to take photos, here are the photos that I took:

I hereby release these as public domain photos. If you want to give me attribution, great. If not, no worries.

Some Comments on NSLs and the Proceedings

The district court previously found that National Security Letters (NSLs) violate the First Amendment and today the government appealed that finding with a variety of interesting claims. Probably my favorite was when the government claimed that the gag orders that typically apply to NSLs were necessary because without them the FBI wouldn’t be able to use NSLs as an investigative tool anymore.

Matt Zimmerman, the attorney when this case was in the district court, put it well:

The interesting thing here is that it’s probably true. If the gag orders were removed, the thousands of National Security Letters that the government issues each year would need more review, making it so that the FBI no longer had an extra-judicial backdoor into investigations. The FBI wouldn’t want that.

Judge

There were a million other arguments made that I’ll leave to the lawyers to discuss, but all in all it looked pretty good for EFF and I think folks are feeling confident. From here, it’s now up to the panel of judges to issue their decision. My bet is that regardless of what the decision says, this one will be appealed to the Supreme Court. Perhaps they’ll need a photographer too.

by Mike Lissner at October 08, 2014 07:00 AM

October 06, 2014

MIMS 2010

Editing a File on Github

When writing programs, developers have a choice of whether they want their work to be public or private. Programs that are made public are called “open source” and ones that are not are called “closed source”. In both cases the developer can share a program with the world as a website or iPhone app, or whatever, but in the case where the code is shared publicly it’s also possible for anybody anywhere in the world to change the program to make it better. (For more detail on this and other jargon, see the definitions at the end)

This is very cool!

But I hear you asking, “How do I, a non-developer, make use of this system to make the world a better place?” I’m glad you asked — this article is for you.

And then there was Git

Git is an extremely popular system that developers use to keep track of the code they write. The main thing it does is make it so that two developers can work on the same file, track their individual changes and then combine their work, as you might do in Microsoft Word. Since all programs are just collections of lots of files that are together known as a “repository”, this lets a number of developers work together without tramping on each others changes.

There are a million ways to use Git but lately a lot of people use Git through a website called Github. Github makes it super-easy to use Git, but you still need to understand a few steps that are necessary to make changes. The basic steps we’ll take are:

  1. You: Find the file
  2. You: Change the file and save your changes
  3. You: Create a pull request
  4. The manager (me or somebody else): Merges the pull request, making your changes live

For the purpose of this article, I’ve created a new repository as a playground where you can try this out.

The playground is here: https://github.com/mlissner/git-tutorial/

Go check out the playground and create a Github account, then come back here and continue to the next step, changing a file.

Make your change

Like the rest of this, the process of making a change is actually pretty easy. All you have to do is find the file, make your change, and then save it. So:

Find the file

When you look at the playground, you’ll see a bunch of files like this:

File List

Click the file you want to edit. In this case, it’s we’ll actually be changing file called “your-name.txt”. Click it.

Once you do that, you’ll see the contents of the file — a list of names, mine at the top — and you’ll see a pencil that lets you edit the file.

Click the pencil!

Change the file

At this point you’ll see a message saying something like:

You are editing a file in a project you do not have write access to. We are forking this project for you (if one does not yet exist) to write your proposed changes to. Submitting a change to this file will write it to a new branch in your fork so you can send a pull request.

Groovy. If you ignore both the jargon and the bad grammar, you can go ahead and add your name to the bottom of the file, and then you’ll see two fields at the bottom that you can use to explain your change:

Explain Thyself

This is like an email. The first field is the subject of your change, something brief and to the point. The second field lets you flesh out in more detail what you did, why it’s useful, etc. In many cases — like simply adding your name to this file — your changes are obvious and you can just hit the big green “Propose file change” button.

Let’s press the big green button, shall we?

Send a “pull request”

At this point you’ll see another form with another somewhat cryptic message:

The change you just made was written to a new branch in your fork of this project named patch-1. If you’d like the author of the original project to merge these changes, submit a pull request.

I think the important part of that message is the second sentence:

If you’d like the author of the original project to merge these changes, submit a pull request.

Ok, so how do you do that? Well, it turns out that the page we’re looking at is very similar to the one we were just on. It has two fields, one for a subject and one for a comment. You can fill these out, but if it’s a simple change you don’t need to, and anyway, if you put stuff on the last page it’ll just be copied here already.

So: Press the big green button that says “Create pull request”.

You’re now done, but what did you do, exactly?

Let’s parse what’s happened so far

At this point, you’ve found a file, changed it, and submitted a pull request. Along the way, the system told you that it was “forking this project for you” and that your changes were, “written to a new branch in your fork of this project”.

Um, what?

The most amazing thing that Git does is allow many developers to work on the same file at the same time. It does this by creating what it calls forks and branches. For our purposes these are basically the same thing. The idea behind both is that every so often people working on a file save a copy of the entire repository into what’s called a commit. A commit is a copy of the code that is saved forever so anybody can travel back in time and see the code from two weeks ago or a month ago or whatever. 95% of any Git repository is just a bunch of these copies, and you actually created one when you saved your changes to the file.

This is super useful on its own, but when somebody forks or branches the repository, what they do is say, “I want a perfect copy of all the old stuff, but from here on, I’m going my own way whenever I save things.” Over time, everybody working in the repository does this, creating their own work in their own branches, and amazingly, one person’s work doesn’t interfere with another’s.

Later, once somebody thinks that their work is good enough to share with everybody, they create what’s called a “Pull Request”, just like you did a moment ago, and the owner of the repository — in this case, me — gets an email asking him or her to “pull” the code into the main repository and “merge” the changes into the files that are there. Once this is done, everybody gets those changes from then on.

It’s a brilliant system.

My turn: Merging the pull request

When you created that pull request a moment ago, you actually sent me an email and now you have to wait for me to do something. Eventually, I’ll get your email, and when I do I’ll go to Github and see a screen like this:

PR Screen

I’ll probably make a comment saying thank you, and then I’ll press the Big Green Button that says, “Merge pull request”.

This will merge your changes into mine and we’ll both go about our merry way. Mission accomplished!

Why this works so well

This system is pretty amazing and it works very well for tiny little projects and massive ones alike (for example, some projects have thousands of active forks). What’s great about this system is that it allows anybody to do whatever they want in their fork without requiring any permission from the owner of the code. Anybody can do whatever they want in their fork and I’m happy to see them experimenting. That work will never affect me until they issue a pull request and I merge it in, accepting their proposed changes.

This process mirrors a lot of real world processes between writers and editors, but solidifies and equalizes it so that there’s a right way to do things and so that nobody can cause any trouble. The process itself can be a little overwhelming at first, with lots of jargon and steps, but once you get it down, it’s smooth and quick and works very well.

As you might expect, there are tons of resources about this on the Web. Some really good ones are at Github and there are even entire online books going into these topics. Like all things, you can go as deep as you want, but the above should give you some good basics to get you started.

Some Definitions

  1. Open vs Closed Source: This is a topic entire theses and books have been written about, but in general open source is way of creating a program where a developer shares all of their code so anybody can see it. In general when a program is open source, people are welcome to edit the code, help file and fix bugs, etc. On the other hand, closed source development is a way of creating a program so that only the developers can see the code, and the public at large is generally not welcome to contribute, except to sometimes email the developer with comments.

    In a way, the product of open source development is a combination of the code itself plus the program it creates, while in closed source projects the product is the program alone. There are thousands of examples of each of these ways of developing software. For example, Android and the Linux Kernel are open source, while Microsoft Word and iPhones are not. (See how I couldn’t link to the latter two?)

  2. Repository: A collection of files, images, and other stuff that are kept together for a common purpose. Generally it’s a bunch of files that create a website or program, but some people use repositories for all kinds of things, like dealing with identity theft (shameless plug), holding the contents of this very webpage (shameless plug), or even writing online books teaching lawyers to code (not a shameless plug!).

  3. Pull request: A polite way to say, “This code is ready to get included in the main repository. Please pull it in.”

  4. Merging: The process of taking a branch or fork and merging the changes in it into another branch or fork. This combines two people’s work into a single place.

by Mike Lissner at October 06, 2014 07:00 AM

Adding New Fonts to Tesseract 3 OCR Engine

Status

I’m attempting to keep this up to date as Tesseract changes. If you have corrections, please send them directly using the contact page.

I’ve turned off commenting on this article because it was just a bunch of people asking for help and never getting any. If you need help with these instructions, go to Stack Overflow and ask there. If you send me a link to a question on such a site, I’m much more likely to respond positively.

Introduction

Tesseract is a great and powerful OCR engine, but their instructions for adding a new font are incredibly long and complicated. At CourtListener we have to handle several unusual blackletter fonts, so we had to go through this process a few times. Below I’ve explained the process so others may more easily add fonts to their system.

The process has a few major steps:

Create training documents

To create training documents, open up MS Word or LibreOffice, paste in the contents of the attached file named ‘standard-training-text.txt’. This file contains the training text that is used by Tesseract for the included fonts.

Set your line spacing to at least 1.5, and space out the letters by about 1pt. using character spacing. I’ve attached a sample doc too, if that helps. Set the text to the font you want to use, and save it as font-name.doc.

Save the document as a PDF (call it [lang].font-name.exp0.pdf, with lang being an ISO-639 three letter abbreviation for your language), and then use the following command to convert it to a 300dpi tiff (requires imagemagick):

convert -density 300 -depth 4 lang.font-name.exp0.pdf lang.font-name.exp0.tif

You’ll now have a good training image called lang.font-name.exp0.tif. If you’re adding multiple fonts, or bold, italic or underline, repeat this process multiple times, creating one doc → pdf → tiff per font variation.

Train Tesseract

The next step is to run tesseract over the image(s) we just created, and to see how well it can do with the new font. After it’s taken its best shot, we then give it corrections. It’ll provide us with a box file, which is just a file containing x,y coordinates of each letter it found along with what letter it thinks it is. So let’s see what it can do:

tesseract lang.font-name.exp0.tiff lang.font-name.exp0 batch.nochop makebox

You’ll now have a file called font-name.exp0.box, and you’ll need to open it in a box-file editor. There are a bunch of these on the Tesseract wiki. The one that works for me (on Ubuntu) is moshpytt, though it doesn’t support multi-page tiffs. If you need to use a multi-page tiff, see the issue on the topic for tips. Once you’ve opened it, go through every letter, and make sure it was detected correctly. If a letter was skipped, add it as a row to the box file. Similarly, if two letters were detected as one, break them up into two lines.

When that’s done, you feed the box file back into tesseract:

tesseract eng.font-name.exp0.tif eng.font-name.box nobatch box.train .stderr

Next, you need to detect the Character set used in all your box files:

unicharset_extractor *.box

When that’s complete, you need to create a font_properties file. It should list every font you’re training, one per line, and identify whether it has the following characteristics: <fontname> <italic> <bold> <fixed> <serif> <fraktur>

So, for example, if you use the standard training data, you might end up with a file like this:

eng.arial.box 0 0 0 0 0
eng.arialbd.box 0 1 0 0 0
eng.arialbi.box 1 1 0 0 0
eng.ariali.box 1 0 0 0 0
eng.b018012l.box 0 0 0 1 0
eng.b018015l.box 0 1 0 1 0
eng.b018032l.box 1 0 0 1 0
eng.b018035l.box 1 1 0 1 0
eng.c059013l.box 0 0 0 1 0
eng.c059016l.box 0 1 0 1 0
eng.c059033l.box 1 0 0 1 0
eng.c059036l.box 1 1 0 1 0
eng.cour.box 0 0 1 1 0
eng.courbd.box 0 1 1 1 0
eng.courbi.box 1 1 1 1 0
eng.couri.box 1 0 1 1 0
eng.georgia.box 0 0 0 1 0
eng.georgiab.box 0 1 0 1 0
eng.georgiai.box 1 0 0 1 0
eng.georgiaz.box 1 1 0 1 0
eng.lincoln.box 0 0 0 0 1
eng.old-english.box 0 0 0 0 1
eng.times.box 0 0 0 1 0
eng.timesbd.box 0 1 0 1 0
eng.timesbi.box 1 1 0 1 0
eng.timesi.box 1 0 0 1 0
eng.trebuc.box 0 0 0 1 0
eng.trebucbd.box 0 1 0 1 0
eng.trebucbi.box 1 1 0 1 0
eng.trebucit.box 1 0 0 1 0
eng.verdana.box 0 0 0 0 0
eng.verdanab.box 0 1 0 0 0
eng.verdanai.box 1 0 0 0 0
eng.verdanaz.box 1 1 0 0 0

Note that this is the standard font_properties file that should be supplied with Tesseract and I’ve added the two bold rows for the blackletter fonts I’m training. You can also see which fonts are included out of the box.

We’re getting near the end. Next, create the clustering data:

mftraining -F font_properties -U unicharset -O lang.unicharset *.tr 
cntraining *.tr

If you want, you can create a wordlist or a unicharambigs file. If you don’t plan on doing that, the last step is to combine the various files we’ve created.

To do that, rename each of the language files (normproto, Microfeat, inttemp, pffmtable) to have your lang prefix, and run (mind the dot at the end):

combine_tessdata lang.

This will create all the data files you need, and you just need to move them to the correct place on your OS. On Ubuntu, I was able to move them to;

sudo mv eng.traineddata /usr/local/share/tessdata/

And that, good friend, is it. Worst process for a human, ever.

Enclosures

by Mike Lissner at October 06, 2014 07:00 AM

MIMS 2012

How Tina Fey’s “Lessons From Late Night” Apply to Product Design

In “Lessons From Late Night”, Tina Fey discusses the lessons she learned from Lorne Michaels while working at SNL. Turns out most of them are lessons I’ve learned in product design while working at Optimizely.

“Producing is about discouraging creativity.”

She goes on to say, “A TV show comprises many departments — costumes, props, talent, graphics, set dressing, transportation. Everyone in every department wants to show off his or her skills and contribute creatively to the show, which is a blessing.” But this creative energy must be harnessed and directed in a way that contributes positively to the sketch.

Applied to design, this basically means you need to say “no” a lot. Everyone’s full of ideas and will suggest things like, “Why don’t we just add a toggle so the user can choose their preference? More choice is good, right?” And then you need to explain that actually, users typically stick with the defaults, and don’t spend time configuring their software, and letting them toggle this option has all kinds of other product implications, so, no, sorry, lets try this other solution instead.

“The show doesn’t go on because it’s ready; it goes on because it’s eleven-thirty.”

This is a lesson in perfection. She elaborates:

You have to try your hardest to be at the top of your game and improve every joke until the last possible second, but then you have to let it go. You can’t be that kid standing at the top of the waterslide, overthinking it. You have to go down the chute. […] You have to let people see what you wrote. It will never be perfect, but perfect is overrated. Perfect is boring on live television.

Just change a few words to “design” and “the web,” and this applies perfectly to product design. Designers can polish forever, but perfect is the enemy of done. But unlike SNL, Optimizely (and I imagine most startups) doesn’t often have hard 11:30 PM Saturday night deadlines, which means we have a tendency to let dates slip. I used to think that was great (“I can spend time polishing!”), but I’ve found that deadlines force you to make tough decisions in order to release product (such as cutting the scope of a feature). And that extra “polish” I think I’m adding is just me overthinking decisions I’ve already made and, oh, guess what, now that actual human beings are using it we need to cut or change those corners of the UI you’ve polished because actually they don’t matter at all now that it’s being used in the real world.

“When hiring, mix Harvard nerds with Chicago improvisers and stir.”

The gist of this lesson is that diversity of thought is important when hiring. Having a variety of designers with different backgrounds and skills results in a better product.

At Optimizely, we have a mix of visual-designers-turned-UX-designers, designers formally trained in human–computer interaction and psychology (the Harvard nerds of the group, such as yours truly), and developers turned designers. We all push and learn from each other. “The Harvard guys check the logic and grammatical construction of every joke, and the improvisers teach them how to be human. It’s Spock and Kirk.” In our case, the HCI folks make sure designs are usable and don’t violate established interaction patterns, and the visual designers make sure we aren’t shipping a bunch of gray boxes.

“Never cut to a closed door.”

As applied to user experience design, this is a way of saying, “don’t leave the user at a dead end”. If users get to a screen where they can’t do anything, then you’ve lost them. Products often dump users in empty screens that have no content (we’ve made this mistake plenty at Optimizely), which lowers engagement and increases churn. Marketing pages can lack a call to action, leading to a high bounce rate. You should always provide clear next steps.

“Don’t hire anyone you wouldn’t want to run into in the hallway at three in the morning.”

This is a way of saying hire people you enjoy working with. At Optimizely, culture is a huge part of the hiring process. Work is easier, more fun, and turns out better when you’re working with people you like and respect.


Writing comedy and designing product don’t sound related, but there’s a lot of overlap in the creative process. As Tina’s lessons show, they each have a lot they can learn from each other.

by Jeff Zych at October 06, 2014 12:13 AM