Quinn Dombrowski 2022-11-30T00:00:00Z http://www.quinndombrowski.com Quinn Dombrowski A Month of Mastodon: What Are We Doing Here, Actually? 2022-11-30T00:00:00Z http://www.quinndombrowski.com/blog/2022/11/30/month-mastodon-what-are-we-doing/ <p>It's been about a month since the deal closed on Twitter, and a sizable portion of the DH community that I count on for collaboration and community began trying out Mastodon. Between travel and a holiday week, it's been a busy month -- figuring out a new platform, helping people find each other, and trying to make conversation in a new space was not what I had planned. But we're up to <a href="https://docs.google.com/spreadsheets/d/15Ak4VHCnr_4Stkzkz-_RhOgX-jCJMt0oq0GN9XXDaKo/edit#gid=229844055">over 430 people</a> on the DH Mastodon list, and I'm glad for the nudge to get back into blogging, with posts in the <a href="https://quinndombrowski.com/blog/2022/11/06/a-week-with-mastodon/">first week</a> (resources for getting started), <a href="https://quinndombrowski.com/blog/2022/11/14/a-second-week-with-mastodon/">second week</a> (lessons from running IT infrastructure), <a href="https://quinndombrowski.com/blog/2022/11/19/of-mastodons-and-musicals/">third week</a> (a sad brain dump about loss), and now this.</p> <p>I'd meant to write about moderation; it's been interesting to watch the arc of discussion go from setting up servers, to challenges with scaling, and now to the question of moderation. For many Black users, the moderation issues were immediately evident, and the lack of affordances central to Black Twitter were likewise visible. I've been following <a href="https://mstdn.social/@shengokai@zirk.us">Dr. Johnathan Flowers</a>' posts (after a month, still can't bring myself to write &quot;toots&quot;) on the topic; <a href="https://techpolicy.press/the-whiteness-of-mastodon/">this interview with him</a> covers a lot of ground, though not the later interjection of what DH folks would recognize as <a href="https://zirk.us/@shengokai/109407803359972245">classic hack vs yack warfare</a>. Meanwhile, <a href="https://social.lot23.com/@jon/109372257422277945">Jon Bell wrote an interesting thread</a> about some of the features Mastodon has deliberately not included (such as quote-tweets), and how the impact when Twitter added them is not what people may have assumed.</p> <p>I have thoughts on moderation, after years of running directories (n.b. never run a directory) which are the equivalent of playing the moderation game on tutorial mode. There's some interesting ideas floating around for things like moderators' co-ops with services that could be purchased by server admins. Perhaps next week's musings will be about all that. But I've realized that underpinning so many of these issues -- from moderation to hosting costs to who's running all these new servers -- are a set of questions that we were able to leave unanswered on Twitter.</p> <h2>What are we doing here, actually?</h2> <p>Because the techno-social logistics of Twitter were simply handled by Twitter, we never needed to figure out an answer to that question over there. Sure, those of us who've taught workshops on social media for grad students have had to gesture towards answers if only in the for of &quot;do's&quot; and &quot;don'ts&quot;; Heather Froehlich's <a href="https://hfroehli.ch/2017/10/20/how-i-use-twitter-as-an-academic/">&quot;How I use Twitter as an academic&quot;</a> is a classic in that genre, e.g.:</p> <ul> <li>Twitter is a space for networking and making friends, but also your seniors are watching you.</li> <li>You like the thing you study, so tweet about what you are doing. Be generous about what you know.</li> <li>Yelling about politics does not make you a better person., but it does make you feel part of a larger culture of dissatisfaction.</li> </ul> <p>Twitter was a space for networking, making friends, surveillance of junior scholars, sharing scholarly process and expertise, and yelling about politics, and many more things. And it could be all those things at the same time, because the company backing the platform saw all those uses as valid, or at least not sufficiently contrary to their goals to be worth cracking down on.</p> <p>The fact that &quot;Mastodon&quot; (or the Fediverse) is made up of servers that distinguish themselves from one another by their scope or topic already nudges people towards a more defined sense of what they're doing. Why join a regional instance if you don't want to partake in discourse about a specific location (that you probably live in or are from)? Why join a sci-fi server if you're not interested in discussing sci-fi? Why join an academic (or even more niche, a disciplinary) server if you're not planning on using it to discuss -- or watch conversations about -- the field? Many of these places explicitly say you're welcome to discuss other things too, but they may have suggestions (or requirements) around the use of content warnings for certain topics, including US politics.</p> <h2>What are our academic infrastructure resources for?</h2> <p>&quot;You can keep the conversation going on Twitter&quot; was an easy thing to say at a conference; it was a space that (in its own, and sometimes-problematic way) was maintained for us, at no direct financial cost to us. We're approaching the 10 year anniversary of the defunding of <a href="https://academic.oup.com/dsh/article-abstract/29/3/326/2938127">Project Bamboo</a>; I've seen firsthand how expensive it can be to plan, let alone implement, let alone <strong>sustainably run</strong> scholarly infrastructure for the humanities. Twitter worked (for a given value of &quot;worked&quot;) for academics across a huge swath of fields, from epidemiology to linguistics to history, not to mention many people on the border of academia and industry, or academia and journalism. Without that kind of centrally-run infrastructure, we're left trying to figure out who's willing to run what, and who can find resources, from where, to keep these individual servers going.</p> <p>I think scholarly communication within and across fields is essential. But I also came of age in DH in the era of Twitter, which has shaped so many of my projects and the way I've gone about trying to build community within the field. Is it as important as I believe it to be, or is it just that my way of being within academic spaces has evolved for the tropics, but we're now facing an ice age?</p> <p>Academic infrastructure is not well funded or supported, and the pool of funding tends to be smaller the more specific the discipline: is this how we should be spending what little we have? Is this how those resources would do the most good? If I had to choose between sustaining <a href="https://voyant-tools.org/">Voyant</a> and a Digital Humanities Mastodon server, what would I pick? <em>What are we doing</em> and are we willing to give up to keep supporting it?</p> <p>The &quot;right&quot; answer here is that instead of fighting over scraps and crumbs, we need to advocate for a bigger pie. We need more resources to do this work well and should fight for more funding for academic infrastructure. And while I can't disagree in principle, 1) that's a long-term dream; and 2) it feels like it's willfully overlooking the current landscape of massive funding cuts, especially in the humanities -- we're lucky anymore to not lose whole programs, and that feels like the place one would need to start with repairing damage already done.</p> <h2>Who wants to fund community infrastructure?</h2> <p>So where does this leave us now? There are grant programs and funding schemes and whole meta-infrastructures like <a href="https://www.dariah.eu/">DARIAH</a> that we could appeal to with the pitch of funding Mastodon servers as a form of core scholarly infrastructure. But community-oriented infrastructure is always a harder sell than its more technical counterparts, especially technical infrastructure that leans on the buzzwords du jour, like <em>AI</em> or <em>kubernetes</em>. The more clearly you can frame the server as a platform for academic collaboration, knowledge-sharing, dissemination of resources and announcements, the easier it would be to fund... and if you were to actually moderate in a way to keep the conversation within those bounds, people would bail for other, less-restrictive spaces.</p> <p>Who pays, then? Will the Patreon/Ko-fi/etc. individual one-off and recurring donation model that other Mastodon servers have used for years work here, too? Maybe at a certain scale, but large-scale is at odds with the federated-small-community concept. What has happened in the last couple weeks in academic servers has had the opposite momentum, towards more and smaller fragments. There's hcommons but also h-net; 18th centuryists were there early, but recently an instance for historians has made its debut. Even before factoring in the costs of paying moderators, it's hard to imagine that there are <em>simply enough people</em> with enough left over at the end of the month that they'd want to make an adequately large recurring donation to support the servers. Many of these academics have research funds, but it's hard to sell faculty on directing those funds towards paying for common-good infrastructure instead of things specific to their own research project. (Trust me, I worked on setting up HPC at a university once.)</p> <p>My own perspective here might be shaped by &quot;doing Mastodon wrong&quot; by being on a large and general server, but I find myself wondering if we would be better off devoting community infrastructure resources to developing guides, tutorials, and supporting the ongoing development of software, rather than the literally endless task of running servers. Because, at least in principle, reputable Mastodon servers federate, on a certain level we don't need -- and perhaps shouldn't encourage -- proliferation of hyper-specific servers. Give pointers to well-run servers and encourage people to go there; the community doesn't have to be the server, and the server doesn't have to be the locus of community. Build a community around a hashtag, or an <a href="https://a.gup.pe/">a.gup.pe groups</a>. Connect people, get them talking to one another, wherever they're connecting through. A Mastodon account is on some level a portal, there are many places people can get one, and just as academic organizations (let alone sub-fields) don't try to set up their own ISPs, maybe some of the same principles could hold true here? The value is in the communication, the content, the connection with others -- not how you log into the place where that happens.</p> <h2>Where are we (going) now?</h2> <p>It's hard to imagine what sum of money you'd have to give me to talk me into running a Mastodon server, and I think it's worth noting here that it's not the technical-staff-at-DH-center types who have been rushing to set them up. I have no horse in this race, other than wanting to see this whole endeavor of a community migration away from Twitter to work, if only for the sake of my own highly-interconnected workflows.</p> <p>I think it'd help if the people running academic servers talked to one another. It's a long (honestly, maybe endless) road ahead; getting some sense of good practices, what options are out there, how well different approaches are working, and potential pitfalls others have experienced, strikes me as the sort of thing I would want to do if I found myself in the unenviable situation of running a server. So I've written up a survey along those lines.</p> <p>Because I'm hoping for responses from old-time Mastodon admins along with new, I'm struggling through a rather painful to use Drupal 7-based form-creation platform, out of respect for the privacy-oriented sensibilities common around Mastodon. Perhaps it's just further penance for <em>Drupal for Humanists</em>. I'll be curious to see what kind of uptake I end up getting, and if it leads to anything useful. But better models for scholarly infrastructure don't simply come into being. I don't have the mandate (or the money) to return to my DH roots with grant visions of the future of cyberinfrastructure a la Project Bamboo -- nor would I want to -- but trying to nudge along conversations feels like a small and feasible step towards something better, at least we can hope.</p> Of Mastodons and Musicals (a third week with Mastodon) 2022-11-19T00:00:00Z http://www.quinndombrowski.com/blog/2022/11/19/of-mastodons-and-musicals/ <p><em>CW: Doubts, cancer, grief, community, Twitter.</em></p> <p>I've been on Mastodon for 3 weeks now, and this week I was starting to feel at loose ends with it all. I have the <a href="https://tinyurl.com/dhmastodon">list of close to 400 DH folks</a> (please add yourself using the link at the top if you haven't!) I'm following nearly 900 people across a range of fields and hobbies that interest me; my home feed is active, and the sub-lists I follow more closely are slow but not empty. But more than a handful of times, I've dropped into Twitter after seeing a notification, and found resources I was glad to see, and conversations going on that I was sad to be missing. What was I losing by trying to focus on cultivating a place for people to come to in Mastodon? Was what I was doing even close to enough? How much self-delusion was involved in the premise that most, or even many, people would actually move? Even when people created accounts, it was feeling like it was an empty placeholder -- maybe with a profile photo and blurb. And how could I criticize that, when it's what I did between April and October? But in the meantime, what was I missing out on? If the people I wanted to be in touch with were actually active on Twitter, what was I doing off somewhere else?</p> <p>That's what was on my mind on Thursday morning when I caught a flight to the Seattle area to help a handful of younger graduates of my high school pull together a production of the musical that the Spanish / French / Russian / Theater / Musical Theater / Dance / International Choir teacher, Dr. Valerie Navarro, had written about her cancer journey as she faces a terminal ovarian cancer diagnosis. I did theater throughout my whole childhood and adolescence, but stopped after high school. My 48 hours back where I grew up reminded me of the parallels between putting on a theater production and what I've been seeing here as people spin up Mastodon servers for their communities. A group of friends or acquaintances, perhaps with some self-asserted credentials (&quot;I'm an amazing singer!&quot;) or maybe just enthusiasm, come together in a short period of time, work through a set of logistical and technical challenges, develop and refine some workflows, and become a team, navigating surprises and challenges along the way. And then the product of that work becomes visible to a community who -- hopefully -- appreciates it. It can be all-consuming work in the moment; for those two days, as I stepped in to assist the crew lead, I didn't think about much of anything else than the things that needed to come together for the musical, despite the growing piles of notifications on Twitter a people said their goodbyes, and the notification bleeps of new follows on Mastodon.</p> <p><img src="http://www.quinndombrowski.com/assets/images/lifting_you_up_poster.jpg" alt="The poster for the musical Lifting You Up, with a sun, a river, and an oak tree and the text 'A musical about the cancer journey, empowering theatergoers to recognize and celebrate the joys of now whatever lies ahead.'" /></p> <p>The performance of the musical was a hit; we had to bring in more chairs for an audience that kept arriving. Old teachers, a few old classmates, friends' parents. At least seating scales -- up to a point -- more seamlessly than a Mastodon server.</p> <p>My job for the show itself was recording the production, drawing on my college years doing videography, before a hormonal-birth-control-induced mental breakdown led to me locking it away in a corner of my brain and walking away to focus on academics -- of the Slavic linguistics and digital humanities variety, a path that ultimately led to the job I have today and the work I do now. But it's something I still know how to do, and could do better than anyone else on that team. Not unlike, I suppose, more than a few people who've rolled up their sleeves to try to run servers.</p> <p>High school or community theater shows end, though, after at most a handful of shows. I can show up to pull off a one-night-only production with a few people in a borrowed church community room. Doing this day in and day out -- for weeks, months, years -- is a different story altogether. You don't want me running stage crew on the North American touring production of <em>Hamilton</em>; you don't want me running a community server.</p> <p>I'm writing this on a Saturday afternoon flight home, to post later. I've been following more server admins this week, which has been interesting and illuminating about the technical challenges. And I have some thoughts on moderation, after giving a talk this week on digital humanities directories and failure. But I can't string together those thoughts today.</p> <p>In emotionally intense situations, I can be calm and efficient or a complete mess. This weirded out friends' parents when I was a child; what was wrong with me, that I wouldn't cry when they thought I should? For most of the last two days, I have held it together to take care of what needed to be done; during the sad songs in the musical, I breathed slowly and counted the buttons on my camera, or silently named the shapes on the control dial. If I cried my hands would shake and that would shake the camera and that's not what was needed in that moment.</p> <p>Today I said goodbye to Valerie, knowing it was the last time. She and her husband, Dr. Daniel Erickson-- another of my high school teachers-- were the first adults I met who were something like how I could imagine myself as an adult. With them, I didn't feel like a freak. The posters for different Russian cases hanging on Daniel's classroom walls inspired me to do <em>that</em> language once I ran out of Spanish to take, a decision that was an inflection point for so much of my life since, from my career to my marriage.</p> <p>And then the goodbyes on Twitter have come at the same time. DH Twitter has been such an important community for me online; first in the early days, and returning to it enthusiastically four years ago with my job at Stanford. I've learned a lot, I've found project collaborators and made friends. It's another place where I've felt at home, where I could share things I loved, where -- once again -- I didn't feel like a freak. A shout-out by Andromeda Yelton in a long thread of thank-yous was enough to push me over the edge, waiting to board the plane. The 3M Aura is a great heavy-duty K95 mask, but it's awful for crying in.</p> <p>As Steven Ramsay <a href="https://datasittersclub.github.io/site/dsc6.html#dear-reader">said at an impromptu Zoom gathering the day Stéfan Sinclair died</a> (I heard that news on Twitter, and organized the gathering via Twitter, and the exodus feels like watching a space where those things happen getting destroyed), a field is &quot;a group of people in conversation with each other. It’s not an abstraction; we’re not citations, we’re people.&quot; Twitter was the infrastructure that made possible those conversations for me. Without Twitter, and with more people cutting back on travel, I can't help but wonder how many of those goodbyes are also permanent, or at least long-term. I hope not, and with the latest influx to Mastodon I want to believe that's not wishful thinking. The next step is to figure out ways to make it a welcoming place for the newcomers, and to support the technical teams who are, metaphorically, in it for the whole North American tour of <em>Hamilton</em> and then some.</p> A Second Week with Mastodon: Lessons from University IT 2022-11-14T00:00:00Z http://www.quinndombrowski.com/blog/2022/11/14/a-second-week-with-mastodon/ <p>I've been on Mastodon for two weeks (here's <a href="http://www.quinndombrowski.com/blog/2022/11/06/a-week-with-mastodon/">last week's musings</a>), and the <a href="https://docs.google.com/spreadsheets/d/15Ak4VHCnr_4Stkzkz-_RhOgX-jCJMt0oq0GN9XXDaKo/edit#gid=229844055">list of digital humanities people on Mastodon</a> that I created a week ago has over 330 people.</p> <p>This week, Mastodon has been my primary social place online. I've checked on Twitter when I see I have notifications, and there's some people I still DM there, and it's a much better place to follow updates from Ukraine. But for where I go to laugh or gripe about things, or talk with colleagues, it's been Mastodon. For the moment, I'm still cross-posting to Twitter automatically; there's plenty of people I think of as being in my communities who are mostly / only over there, and I don't want to shut them out. But I also feel like if I want to make Mastodon work as a meaningful space for DH folks, I need to invest in it, so that's what I'm doing by putting it first.</p> <h2>Content warnings</h2> <p>Apparently this week's Discourse has been around content warnings (CW), and who should have to CW what, and how norms in different corners of the Fediverse (which is to say, the set of servers and services whose content is visible to one another in this digital environment) intersect with issues of power and intersectionality. Should politics always get a CW? Whose lived experiences are expected to be CW'd -- and who is that practice protecting, and why? Responses have varied, and not only along the axis old vs. new users; one consequence of a system of federated servers is that people can all be right as they describe -- very differently -- the rules and norms &quot;on Mastodon&quot;. It's a reminder that there is no monolithic &quot;Mastodon&quot;.</p> <h2>Virality</h2> <p>That said, I've heard about this discourse at least as much via Twitter as Mastodon itself. I've seen some posts about it, but it hasn't taken over my feed the way that topics can on Twitter. Clive Thompson wrote a <a href="https://uxdesign.cc/mastodon-is-antiviral-design-42f090ab8d51">blog post about how Mastodon is designed to be &quot;anti-viral&quot;</a>:</p> <blockquote> <p>&quot;It was engineered specifically to create <em>friction —</em> to slow things down a bit. This is a big part of why it behaves so differently from mainstream social networks... Coming from the world of Twitter, where velocity and flocking behavior are common (and enjoyed by many people) it can seem weird to encounter a culture that finds friction <em>useful</em> and <em>productive</em>; a feature, and not a bug.&quot;</p> </blockquote> <p>I think I've seen that at work this week, both with the content warning discourse, and with my own posts. The latest <a href="https://datasittersclub.github.io/site/dsc18.html">Data-Sitters Club book</a> came out this week (on HathiTrust; I'm really proud of this one) and I posted both to Mastodon (26 reposts, 33 likes) and Twitter (42 retweets, 103 likes). Apparently that counts as going significantly viral on Mastodon! But I do wonder if in the long term, major announcements for things like the Data-Sitters Club will make sense to do on Twitter? On the other hand, maybe algorithmic changes will make it so only paid content gets meaningfully seen. It's hard to know.</p> <h2>Running IT services</h2> <p>I spent a decade working in higher-ed IT. I learned a lot about starting and running IT services over those years (and, famously with Project Bamboo, <a href="https://academic.oup.com/dsh/article/29/3/326/2938127">failing to launch IT services</a>). Tl;dr even for experienced staff, doing it well is hard -- and it takes time. IT services that are DIY substitutes for social infrastructure run by large teams of professionals (at least, until Twitter laid them off) are especially tricky; users bring years of expectations with them, including expectations of speed and availability. Higher-ed IT services take months, if not years, to launch. Even once you've gotten past the questions of &quot;what is the need&quot; and &quot;is our IT organization in a position to address the need&quot; and &quot;are <strong>we</strong> the right people to address the need (with our own staff and resources, vs. outsourcing it)&quot;, there's usually a period of comparing different software options, and once you've picked one, making sure that the behind-the-scenes tech staff are familiar enough with the system to be able to troubleshoot. But those people are almost never the ones communicating with the users; you also need to make sure the front-line staff get familiar with the system, and have answers to common problems and pitfalls for when the help tickets inevitably start pouring in. Someone needs to write documentation specific to your local context, which takes time, even if there's general-purpose documentation that you can adapt. And especially for anything you're running yourself, the infosec people would want to do their own review first, too.</p> <p>Not every service involves that whole process, though certainly anything resembling a communications platform for the whole campus (or any significant subset of it) would rise to that level. I once built a digital pathophysiology textbook for students at the medical school. It was more like a digital humanities project in scope; I built it, and I was also providing front-line support, while my sysadmin friend Jinks (no, really, that was his last name) managed the server. Everything was ready to go for the first day of class, I was feeling good, ready to celebrate a job well done.</p> <p>That morning, I got the kind of email that you get nightmares about as an IT person. The faculty member was panicked -- and angry. The hundred-some students simultaneously logging into the system overloaded the site. Fix it. FIX IT NOW.</p> <p>My hands were shaking and I was on the brink of tears when I found Jinks. Who swung into action and in a few seconds of typing at the command line managed to throw a ton of memory at Drupal. The site came back online.</p> <p><img src="https://imgs.xkcd.com/comics/devotion_to_duty.png" alt="xkcd 705, &quot;devotion to duty&quot; about a sysadmin overcoming kidnappers to fix the network while ignoring the hostages" /></p> <p>I learned something about caching that day, and we got through the rest of the quarter without another major meltdown. And a bit of Quotable Quinn made its way onto the whiteboard-wall of Jinks's cubicle.</p> <p><img src="http://www.quinndombrowski.com/assets/images/jinks-whiteboard.jpg" alt="A photo of a whiteboard with a drawing of a crocodile pit, an xkcd comic taped up, and the quote &quot;It's less easy than I had hoped&quot; attributed to Q Dombrowski" /></p> <p>I've been thinking about Jinks a lot this week as people spin up Mastodon (or Hometown or Pleroma) servers to create spaces for different communities. On one hand, I get and respect that urge -- I've been there, building the first version of DHCommons in one evening in response to a need articulated at THATCamp Chicago in 2010, and launching it the next day. But that was easier than spinning up Mastodon: I knew the software well, was familiar with running it at the anticipated scale (tens of users at once), and knew the usage patterns to expect (people would log in, create a profile for themselves, then maybe a couple project profiles; the rest of the activity would be browsing). From the sound of it, there's a lot of new Mastodon admins who don't know the technical stack, and are throwing the doors open for hundreds of people who may want to use the system much more intensively: uploading (potentially large) images, having active conversations, expecting immediate updates. On one hand, no one is born a sysadmin, and the way to learn those skills is through doing them. On the other hand, learning by running a service that people come to looking for a digital social hub to replace Twitter doesn't feel like doing right by those users -- at least, if you haven't been clear upfront that that's what's going on, giving them the opportunity to opt in with the knowledge what they're getting into. Digital humanities staff know only too well about the importance of managing expectations. It typically comes up in the context of covering one's own ass, and keeping a project's scope in check. But from another perspective, managing expectations is an act of care for collaborators and/or users. Being explicit about the limited resources you're working with (in terms of technical infrastructure, available labor, or your own knowledge) -- even if the result of that disclosure is that people end up going elsewhere for the service -- is the considerate thing to do for your community.</p> <p>Setting up an instance without understanding the technical and social landscape has consequences beyond the inconvenience of downtime. This week I've seen references to appalling racist attacks on Black Mastodon users. I looked into some of the servers that these racist comments were coming from, and they're inaccessible from <em>mstdn.social</em>, the server my account is on. Those users can't see me or my posts, and I can't see them or theirs, because my server's sysadmin has implemented restrictions on a set of servers known to be a problem. (Scroll to the bottom of the <a href="https://mstdn.social/about">mstdn.social About page</a> to see which servers are blocked, and why.) Block lists are widely shared (search <em>#FediBlock</em>), but there's no list implemented by default. So if you're new to Mastodon, and have set up a server for yourself and your community, those blocks wouldn't be implemented by default and you might not know of norms around server blocking -- or the fact that allowing completely unfettered federation might put <strong>your</strong> server on a list for potential blocking, because it makes it feasible for hateful content to leak into others' systems via yours (e.g. if server A blocks server X, but one of your users on server B reposts something from server X, then it could end up visible to users on server A that is trying to keep content from server X out.) Not to mention the impact on your users if a server of racist trolls gets access to interacting with their posts. Mistakes at the intersection of technical affordances and social norms are easy to make as a new sysadmin, but that's also why it's important to be thoughtful about limiting the scope of who would be impacted by those learner-mistakes.</p> <h2>Staying put on mstdn.social</h2> <p>This week I've decided I'm staying where I am in the Fediverse, at least for a while. With the exception of <em>scholar.social</em> (whose rules drove me off in April), the interest-area servers that would make sense for me are too new for me to put a lot of faith in their management (both technical and moderation) or longevity (considering the reality of exhaustion from the labor needed to run such a service well).</p> <p>I really appreciate what the admin, <a href="https://mstdn.social/@stux">Stux</a>, has done with the <a href="https://mstdn.social/about">About page for mstdn.social</a>. First, in bold, there's infosec warnings; from 10 years in IT, I can tell you that people mostly just don't read, but sticking the most crucial stuff in bold at the top increases the likelihood at least a little. There's links to information about the admin, as well as the moderators for the server. There's multiple different ways to donate to support the service, along with a link to a page with <a href="https://hub.mstdn.social/about/">detailed information on the service's finances</a>. There's a Tor link. There's information about the infrastructure, including where the server is located. There's multiple links to server statistics. There is -- again, in bold -- pointers to resources for people considering self-harm or suicide. There's a clear list of server rules. There's a whole section describing the policy on cross-posting. There's links to relevant related services that Stux also runs. And at the bottom, there's the list of moderated servers, the level of restriction, and the reason.</p> <p>No doubt, all this documentation took time and effort to put together. But I appreciate both the results of that labor (in the form of those webpages), and the fact that Stux &amp; collaborators thought to write it up. The end result is that I trust the service more, and I can articulate more clearly why I'm staying, and why I'm supporting it every month. This week I upped my monthly donation to $10, and I'll probably kick in with another donation at the end of the month to help with the increased costs of the new user base.</p> <p>Being on a general instance means that I have to use Mastodon a bit differently than intended; I don't use the &quot;Local&quot; feed, but I've been following lots of people and treat my &quot;Home&quot; feed as if it were the &quot;Local&quot; feed (albeit one that spans many servers covering communities I'm interested in). I've been actively building a number of lists that functionally substitute for my &quot;Home&quot; feed: people I know and/or used to interact with a lot on Twitter, people whose work I find interesting, people in different relevant sub-specialties. I follow a few hashtags, too, including #DigitalHumanities. On the whole, I feel like this approach has been working really well for me.</p> <h2>Looking ahead</h2> <p>There's been a few developments this week that have left me a little uneasy -- including discussions about <a href="https://foundhistory.org/2022/11/how-humanists-should-use-mastodon/">humanities scholars making their own decisions</a> about whether and how to adopt existing Fediverse norms, and the response that if a community of users wants to diverge from those norms, maybe they should publish their content exclusively to their own server. My own approach to using this platform assumes widespread, reliable federation -- not content getting locked into community-oriented servers.</p> <p>I also wonder how, and how quickly, things may unravel as people who started Mastodon-and-friends servers as, essentially, rapid-response DH project are faced with the reality that their DH project is actually now an IT service with all the complications that come with it, and with no foreseeable end beyond their own decision to shut down the server. It's the <a href="https://docs.google.com/document/d/163jkgzASVUm6fDHW_34kLGM4VG2Bp8tkQT6EamGpt3s/edit?usp=sharing">Directory Paradox</a>, but much worse in multiple respects. This year I started an emergency DH project that responded to an urgent need, and since then I've realized that fateful decision in February started something that I could very well be involved in for the rest of my life. I'm okay with that being a consequence of <a href="https://www.sucho.org/">SUCHO</a>; I worry that the new Mastodon admins may not realize they've started down a similar path.</p> <p>I would dearly love for the Fediverse to be a place that the DH community can continue conversations spanning over the last decade on Twitter -- and do so in a way (embracing the deliberate friction of Mastodon) that can bring in people that Twitter turned off. But if the servers people flocked to begin to melt down, it seems likely that the collective consensus may end up being that Mastodon was simply too unreliable -- not that inexperienced sysadmins DIY-ing it won't cut it for a scalable service, and we need to put our efforts and resources towards a better model for running infrastructure. That would be a shame, and a loss: not only of yet another possible social platform, but also of the opportunity to work together to turn a shared infrastructural need into a thoughtful, supported, long-term solution that aligns with the community's goals and values.</p> A Week With Mastodon 2022-11-06T00:00:00Z http://www.quinndombrowski.com/blog/2022/11/06/a-week-with-mastodon/ <p>I joined Mastodon in late April 2022, when talk of a Musk acquisition of Twitter got serious and people started talking about finding other platforms. This news was emphatically <em>not what I needed</em> at that moment -- I was two months into <a href="https://sucho.org/">SUCHO</a> and had my hands full, but the possibility of my Twitter networks dissolving was horrifying enough to merit some time. My job is supporting digital humanities work on non-English literatures (okay, technically excluding East Asian and Classics, but I end up talking with plenty of people over there, too). That work can take the form of many research questions, which need many kinds of methods. I'm only one person; there's no way to follow developments across all those languages and methods. Except via something like Twitter. It is no exaggeration to say that I could not do my job well without being able to see what people are up to in DH across the world, and ask questions with a reasonably high chance of getting an answer, when I get stuck on something.</p> <p>Everyone leaving Twitter for something else would be inconvenient, but not the worst outcome -- the real danger felt like the possibility that people might drift away to more places than I could possibly be in, including lots of walled-garden Discords. Inevitably, there will be people who end up redirecting their energy towards platforms that fundamentally don't work for me, like TikTok (I avoid watching videos online almost as much as I avoid making phone calls) -- so it goes. But it did seem like there was a group of people who found Twitter itself to be a perfectly fine medium, other than the potential new &quot;Chief Twit&quot;. Could those folks be encouraged to move together over to something roughly similar like Mastodon?</p> <p><img src="http://www.quinndombrowski.com/assets/images/mastodon-with-blue-birds.png" alt="A mastodon covered with blue birds" style="float:right;" /></p> <p>David Wrisley and I wrote up some <a href="https://docs.google.com/document/d/1bc8JB_gpKN19aznFfT0V3wATPuPFTual5mvx6Ctnmj4/edit">notes on switching to Mastodon</a> for the curious, documenting as we learned, ourselves. But in the end, few people made the leap. My Mastodon timeline was very quiet. I tried to find some new people to follow (especially around textiles), but in the end, it wasn't filling any kind of gap in my life. The app on my phone went unused. I set up the <a href="https://crossposter.masto.donte.com.br/">Mastodon Twitter cross-poster</a> to mirror tweets about SUCHO so my Mastodon account wouldn't be entirely abandoned, but I rarely checked it, and little was going on when I did.</p> <p>When the Twitter acquisition deal closed, it was the same discourse but more intensely. People looking to leave, trying out Mastodon (even as others insisted they'd stay until the end, and critiqued the urge to leave) -- and suddenly it felt like it might actually work to recreate at least some Twitter networks elsewhere. People I knew were posting things, I was following new people, figuring out how to actually navigate this new space, trying to help people who knew even less than me. It had the vibes of an earlier era of internet spaces. I joined to try to cultivate some kind of alternative for Twitter-quitters, but to my surprise, I found myself enjoying it for what it was, as a less-frenetic, slower-paced space with old and new friends.</p> <p>There were early missteps in self-organization: people adding other people to lists of academics, in the way that one used to create lists on Twitter in the 2000's -- and who then were schooled by Mastodon users about serious community norms around consent and opting in instead of out. A model that emerged (very quickly, over the course of a day or so) was self-sign-up forms with public result sheets. The historians seemed to be among the first academic groups overlapping with DH to self-organize; literature folks followed. By the morning of Saturday, November 5th, when no one had taken the plunge to make a DH form, I violated my own rule against making directories and <a href="https://docs.google.com/spreadsheets/d/15Ak4VHCnr_4Stkzkz-_RhOgX-jCJMt0oq0GN9XXDaKo/edit#gid=229844055">created one for DH people on Mastodon</a>. (It's <a href="https://forms.gle/CfRY4W5A9uYGa4DT6">self-sign-up</a>! Should basically take care of itself! But yes, in reality, it's involved some curation work as people submit twice, or change Mastodon handles, because of course it does.)</p> <p>I'm not going to delete my Twitter account anytime soon -- it's still where most people are, and I figure odds are good that the Mastodon experiment is temporary for many people. I don't have any delusions of being a public academic, but SUCHO is part of a network of journalism, political scientists, analysts, and Ukrainians in Ukraine and abroad, and that seems unlikely to move. But between the large-scale layoffs (that do not sound like they were particularly thoughtful with regard to who does the maintenance), and the rollout of a paid plan with suggestions that posts from unpaid accounts will be deprioritized in visibility, I'm not simply assuming Twitter will be around in the long term, the way I did earlier this year. Gradual network drift over time once again raises the likelihood of people ending up in many different corners of the internet, but at least for the moment, I want to try to cultivate a space with Mastodon where DH folks looking for some flavor of DH Twitter can find a meaningful community. That won't happen by itself. It will take labor (mostly the unrecognized kind) and deliberate choices -- and there's, to be perfectly frank, a lot of <em>cringe</em> to overcome even as a starting place. (Mastodon does itself no favors with &quot;toots&quot;, even if many servers in practice swap that word for &quot;posts&quot;.)</p> <p>The servers are another hurdle: there's no &quot;Mastodon&quot; you can sign up for like there's a &quot;Twitter&quot;. Step 0 is to pick a server, and there's many long lists to scroll through, as well as the possibility of setting up your own. As many people have noted, the flip side of the many thematically-scoped servers is that people are complex: maybe you're a queer 18th centuryist in the Bay Area who enjoys knitting and follows AI ethics, so which of the 5+ applicable thematic servers do you choose? (The cheery response of &quot;You can have different accounts on different servers!&quot; sounds exhausting.) I'm interested in early rumblings of possible DH (and/or broader humanities) instances, though I worry about maintenance, moderation, funding, sustainability -- all the usual questions about shared infrastructure, because I feel deeply uncomfortable with the idea of running this as a volunteer effort. (I've signed up for the Patreon for the server I'm on, and will probably increase the monthly donation if I stay here.)</p> <p>A week in, I'm actually liking being on a general server. Sure, the &quot;local&quot; feed is useless-- but maybe it would be even on a DH or Humanities instance, too, since I've always taken a pretty curated approach to my feed, even on Twitter. It's not a problem at all to follow people on other servers -- the vast majority of the people I follow are located &quot;elsewhere&quot;, but they fill my home feed as if we were in the same space. And a general server doesn't provoke an identity crisis (&quot;am I 'library' enough for the library servers?&quot;) and there's no application process where I need to justify myself. There's not a lot of very specific rules (e.g. no Twitter cross-posting, as on scholar.social) or moderators who'll yell at you for not following them because you didn't read the long TOS upfront. And its uptime has been excellent, even as it's added new users -- shout-out to <a href="https://mstdn.social/@stux">stux</a> who runs it. I'd rather have a server that reliably works over one where I &quot;fit in&quot;, whatever that would even look like. I suppose what that looked like was the Twitter network I'd built over 15 years. Doing that again anywhere, if it's even possible twice, will take time.</p> <p>I don't know how any of this will shake out; perhaps, in the end, Mastodon will end up having been a brief distraction, and enough people will make the compromise of paying Elon Musk to be able to continue to find one another's posts in a sea of ads and promoted content. Maybe video will become the next major medium for sharing scholarship, and I'll have to come to terms with watching them. But for the moment, I'll be trying to make some kind of worthwhile space over at Mastodon, following the conversations about community infrastructure, and hoping that with some time and care, it can be a viable alternative for many people in my networks if Twitter becomes intolerable -- and not just for the &quot;whee, new tech!&quot; crowd.</p> <h2>Some resources</h2> <h3>Signing up</h3> <p>If you'd like to join a general instance with no application process or identity-angsting, you're welcome to <a href="https://mstdn.social/invite/HvgNXh5D">use my invite link</a> for mstdn.social.)</p> <h3>Deliberate network migration</h3> <p>A post by Cory Doctorow on &quot;<a href="https://doctorow.medium.com/how-to-leave-dying-social-media-platforms-9fc550fe5abf">How to Leave Dying Social Media Platforms (without ditching your friends)</a>&quot; is one of the things I read early in this week's Mastodon-oriented activity that has stuck with me.</p> <h3>Mastodon-Twitter cross-posters</h3> <ul> <li>The <a href="https://crossposter.masto.donte.com.br/">Mastodon-Twitter cross poster I use</a> has lots of great configurable options, and allows posting in both directions (Twitter&lt;-&gt;Mastodon), assuming your Mastodon server doesn't have rules against it (mine doesn't). You can even have it cross-post only certain hashtags, certain kinds of posts, etc.</li> <li>For a simpler option, there's also <a href="https://moa.party/">Moa.Party</a>.</li> </ul> <h3>Academics on Mastodon</h3> <p>Hendrik Erz has put together a <a href="https://github.com/nathanlesage/academics-on-mastodon">list of lists of academics on Mastodon</a> that includes <a href="https://docs.google.com/spreadsheets/d/15Ak4VHCnr_4Stkzkz-_RhOgX-jCJMt0oq0GN9XXDaKo/edit#gid=229844055">my list of DH folks</a> that you can also <a href="https://forms.gle/CfRY4W5A9uYGa4DT6">add yourself to</a>.</p> <h3>Guides to Mastodon</h3> <ul> <li>A <a href="https://hcommons.org/docs/mastodon-quick-start-guide-for-humanities-scholars/">Mastodon quick start guide for humanities scholars</a> was recently added to the Humanities Commons docs.</li> <li><a href="https://fedi.tips/">Fedi.tips</a> is detailed and thorough, and written by long-time Mastodon users (i.e. it gives you a sense of the original culture of the place)</li> <li>A couple tips I wish I knew coming into it <ul> <li>Hashtags are used much more, because it's one of the major cross-server discoverability options. I've taken to following ones for topics I'm interested in, like #DigitalHumanities and #NLP, which have also made it easier to find new people.</li> <li>Content warnings are also fairly common; I've seen these used widely for food, AI art, politics, or things other people might just not be into (like puns).</li> <li>It's worth getting comfortable with the visibility settings for posts; common practice for threads (sometimes enforced by server admins) is to make the first post public, then replies/continuation to be unlisted. You can also set individual posts to be visible only to your followers, or only people who are mentioned in the post (which is like a DM, but these &quot;DMs&quot; are <strong>truly not private</strong>, and are accessible via the API).</li> </ul> </li> </ul> Missing Person 2022-10-03T00:00:00Z http://www.quinndombrowski.com/blog/2022/10/03/missing-person/ <p>Today is my mother's birthday. The internet told me; I haven't kept track for decades. I went looking for the date after reading a <a href="https://ruthtillman.com/post/2018-04-22/">beautiful post by Ruth Kitchin Tillman about calculating when she'd reached half her mother's total years</a>; I'm three years from surpassing my own mother's total. The thought flitted across my mind that I should call my grandmother; surely she'd remember this day, though she'd never talk about it. Except she, too, has been dead for years now.</p> <p>I had put my mother's name into Google, looking for her birthday -- like my name, an unusual combination of things. I don't think there's been another. A bunch of ads came up for finding any information you want about any person. A photo on Flickr I'd posted some years ago from Montreal Pride. A page on a directory of a missing person site. And... a YouTube video from three weeks ago?</p> <p>This person's YouTube channel is full of short videos on missing people from Washington, with assorted other topics mixed in, like &quot;Eating Ramen while Watching Travel for Food Videos&quot; and &quot;Plugged the Leaking Car Hose with a Sharpie Marker&quot;. The format of all the videos is the same: a screen share and a voice-over. The person has been posting multiple new missing person v ideos every day for months; before that, the feed was gardening tips; before that, homeschooling tips for different states; before that, Bible passages. We all contain multitudes.</p> <p>As did my mother, whose face I was suddenly staring at in B&amp;W reproduction in someone's browser tab.</p> <p><img src="http://www.quinndombrowski.com/assets/images/sharman.jpg" alt="Sharman" /></p> <p>The voice-over badly mangled the name of my hometown, and noted that my mother's car was found by the Tacoma Narrows Bridge. &quot;I don't know if it was broke down or, I don't know what happened, but...&quot; They pulled up the Google Images search results for that bridge. They're picturesque, and sometimes historical. The bridge is famous for having <a href="https://en.wikipedia.org/wiki/Tacoma_Narrows_Bridge_(1940)">collapsed in 1940</a>.</p> <p>&quot;If you have any information of what might have happened to her, maybe someone got drunk over the years and started talking, and maybe you're not sure if it's true or if it's relevant or if it'll hep the case but if you have any information about what happened to her, please contact authorities and let them know. Take the weight off your shoulders, put it onto theirs and let them decide if the information is relevant or will help them.&quot;</p> <p>The person who got drunk over the years and started talking was me; my relatives don't ever speak of her, and my father has remarried twice since. I've used it as a weapon, when college boys flirting with majoring in philosophy would get going on suicide as a topic for intellectual banter. I mentioned it at a <em>Women and Gender Minorities in DH</em> event in 2019, on the metaphor of bridges, and how it's not enough to just build them, we need to walk across them together and look out for one another. Sometimes &quot;missing&quot; is a status for paperwork's sake, when a body is never found but you move on nonetheless.</p> <p>On the plane yesterday, I finally watched <em>Everything Everywhere All at Once</em>, which touched on so many things I love. Alternate timelines, what-if's, the absurd, plastic googly eyes. My mother and I did not get along at all, and it's hard to imagine how more time on the paths we were walking in 1996 would have changed that. Is there a path in the multiverse where we might have had a good relationship? Or would that hypothetical path involve a paradox? Maybe the version of my mother who I'd like is the one who came out of the closet, found a wonderful girlfriend, learned to shrug off her family's expectations, and then adopted a child and never had me.</p> <p>To the extent I have a relationship with my mother, it's not with the one I coexisted with in this piece of the multiverse. We take the children to SF Pride every year, and tell them we go in honor of their grandmother. I cry when the Dykes on Bikes start off the parade; they remind me of her best friend, who rode motorcycles, and who was the reason I didn't realize as a child that &quot;gay&quot; was deployed as an accusation or slur, rather than a neutral fact like eye color. I wonder if seeing Target and Safeway support Pride might have led my mother out of the closet eventually. Whatever vague sense the children have of my mother, it's equal parts fiction and truth. A missing grandma, in the vague shape of my what-if.</p> <p>I have information about what happened to my mother, but it's not a weight on my shoulders, or something the authorities would care about. It's just a series of facts and extrapolations, portals to branching paths. My mother was an unhappy housewife, almost certainly a closeted lesbian, who felt that her identity was incompatible with love from her family of origin. The housewife and stay-at-home mom arrangement didn't work for her, but she could imagine no alternatives, and so she literally drove herself mad trying to play a part. Matching clothes were a particular locus of her anxiety; she felt unsure of how to do it, so she'd shop from catalogs to ensure items of clothing would match. She worried my and my sister's clothes wouldn't match, <em>and what then</em>.</p> <p>Happy 66th birthday, Mom. Today I'm wearing pants with an Animal Crossing print, and giant pockets in enby stripes. My t-shirt is a tribute to Miriam Posner as a data superhero, with background art by Xanda Schofield that speaks truth to power. The sleeves are a trippy red-orange and black design. My glasses are weird. My hair is blue and purple. You'd probably think that none of it matches, but I've discovered a hack: if you stitch fabric together and wear it with confidence, the concept of &quot;matching&quot; no longer applies. Your grandchildren don't know how to properly set a table, not least because we don't even have a kitchen table -- instead, we have a ball pit. I've been married to my best friend from college for almost as long as you were married to my father. I'm happy. I'm sorry you couldn't be in this universe. I hope there's one where you and your wife are celebrating today. Even if it involves hot dog fingers.</p> <p><img src="http://www.quinndombrowski.com/assets/images/eeaao_hot_dog.jpg" alt="Hot dog fingers scene between Evelyn and Deirdre at the laundromat" title="Hot dog fingers scene between Evelyn and Deirdre at the laundromat" /></p> Hosting Eleventy on GitHub Pages 2022-05-07T00:00:00Z http://www.quinndombrowski.com/blog/2022/05/07/hosting-eleventy-on-github-pages/ <p>I've really been enjoying building sites with Eleventy instead of Jekyll. I'm still learning my way around some of the cool data capabilities, but NodeJS has been much more agreeable to wrangle than Ruby, and that alone is worth a lot.</p> <p>I appreciate that Netlify would make hosting Eleventy sites very easy, but I'm reluctant to add yet another platform to the set of things I have to deal with, especially when I'm using GitHub Pages for the Jekyll sites I'm still running. When I looked at the tutorials for hosting Eleventy on GitHub Pages, I wasn't able to get any of them to work -- there was always something just slightly off for my use case. But with help from <a href="https://www.cassey.dev/">Cassey Lottman</a>, I got it working with my first Eleventy site and I've reused that configuration for a handful of other sites since.</p> <h2>The big picture</h2> <p>GitHub Pages assumes you're using Jekyll unless you tell it otherwise. Instead of using the automatic GitHub Pages workflows for building Jekyll sites, you'll be using the <a href="https://github.com/peaceiris/actions-gh-pages">Github Pages action by Peace Iris</a> that can build other kinds of static sites and move them to the branch where the HTML files will be hosted. You'll need to add a number of new files to your GitHub repo to make this happen.</p> <h2>New files in your GitHub repo</h2> <ul> <li><strong>.nojekyll file</strong>: Open a plain-text editor and save an empty file in the root of your repo (where you have the <em>.eleventy.js</em>) with the filename <em>.nojekyll</em>. This will stop GitHub from trying to build your site as a Jekyll site.</li> <li><strong>.github directory</strong>: Create a new directory in the root of your repo and name it <em>.github</em> (yes, starting with a period). Inside that directory, make a directory named <em>workflows</em>. Open a plain-text editor and save a file inside the workflows directory called <em>build.yml</em>. Copy the <a href="https://github.com/quinnanya/quinnanya.github.io/blob/main/.github/workflows/build.yml">contents from my build.yml file here</a>.</li> </ul> <p>Depending on your Eleventy setup, you may need to change <code>publish_dir</code> in your build.yml file. My Eleventy site builds to a folder called <em>dist</em>. If yours builds to a folder with a different name, change it in this file.</p> <h2>GitHub configuration</h2> <h3>Creating a gh-pages branch</h3> <p>Using the GitHub interface, you'll need to create a new branch of your repo called <em>gh-pages</em> where the built version of your site will be hosted from. If you're looking at your repo on GitHub, you should see a little button that says <em>main</em> towards the upper left, under the <em>&lt;&gt; Code</em> tab. Click that button, then type <em>gh-pages</em> into the field that says <em>Find or create a branch</em>. This will create a new branch called <em>gh-pages</em></p> <h3>Actions configuration</h3> <p>Go into the settings for your repo, click on <em>Actions</em> in the set of tabs on the left, then <em>General</em>. Make sure that &quot;Allow all actions and reusable workflows&quot; is selected, and at the bottom of that page, under <em>Workflow permissions</em> make sure that you have &quot;Read and write permissions&quot; selected.</p> <p>If you the &quot;Read and write permissions&quot; is disabled and grayed out so you can't enable it, you may need to go into the settings for the parent account or organization that owns the repo, and enable &quot;Read and write permissions&quot; at that level first.</p> <h3>GitHub Pages configuration</h3> <p>Go into the settings for your repo, and click on &quot;Pages&quot; in the set of tabs on the left. Use the dropdown under <em>Source</em> to choose the gh-pages branch.</p> <h3>Custom domain configuration</h3> <p>If you're using a custom domain (e.g. <a href="http://something-something.com/">something-something.com</a>) for your website, make sure you enter the custom domain in the <em>Custom domain</em> field in the GitHub Pages configuration, and you <a href="https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site">configure the DNS for your domain</a> to point to GitHub.</p> <p>When you add a custom domain in the <em>Custom domain</em> field in the GitHub Pages configuration, you'll get a new file in the root of your repo called <em>CNAME</em>. It's a plain text file with one line of text: the custom domain you want to use.</p> <p>You'll need to make a small change to your <em>.eleventy.js</em> file to make sure the CNAME file gets moved over to the built version of the site. As part of the <code>module.exports</code> section, add a line that reads <code>config.addPassthroughCopy(&quot;src/CNAME&quot;);</code>. (If your function is named something other than <em>config</em>, like <em>eleventyConfig</em>, change this line to have the right function name.)</p> <h2>Building the site</h2> <p>In theory, if you've set up all these things, anytime you push changes to GitHub, it will trigger an action that will build the site and move those files to the GitHub Pages hosting environment.</p> <p>If everything isn't set up just right, you'll get an email that an action failed. Click the &quot;View workflow run&quot; link in the email, which will take you to a page with information on the failed workflow. Click on the text in the middle panel where you see a red circle with an x -- what the text says depends on where exactly it failed. Eventually you'll see text reflecting where exactly the process failed, and you can search parts of that error message to figure out what's going wrong.</p> <p>In one case for me, I spent a little while stuck on &quot;Permission to myrepo/myrepo.github.io.git denied to github-actions[bot]&quot;, and it turned out that I hadn't enabled the &quot;Read and write permissions&quot; under <em>Actions</em> in the GitHub repo settings.</p> Vitty 2022-02-23T00:00:00Z http://www.quinndombrowski.com/blog/2022/02/23/vitty/ <p>&quot;17 years...&quot; the veteranarian murmured in the room with dim lights. &quot;Did you have him the whole time?&quot; I nod. &quot;It looks like he had a good mom... and a good brother too,&quot; she says, tilting her head towards Sam, the 8-year-old squirming next to me on the couch, occasionally rubbing my back.</p> <p>We live in Berkeley, where everyone is a &quot;pet parent&quot; and defaulting to extraordinary measures. That's not me. Leaving aside the fact that I use a made-up nonbinary parent term with my own kids, I was never Vitty's mom. And he was old enough to be a slightly cantankerous but patient uncle by the time the kids came along.</p> <p>Vitty was our pet, but first he was mine. Following a disastrous trip at the beginning of summer 2004, I talked a friend into taking me to the Chicago animal shelter. There, a tiny gray kitten they'd named Kenny opened his eyes and started purring at me. That was that; I had no choice but to take him home. I named him Vitya, after the titular brother of the Russian movie duology <em>Брат</em> 'Brother', who lived it up in Chicago in the sequel. This Russian diminutive quickly diminutized further into &quot;Vitty&quot; by my roommate Amol, and it stuck.</p> <p><img src="https://live.staticflickr.com/51/110994948_285ea97ee8_z.jpg" width="640" height="427" alt="Baby Vitya and Jinda&#x27;s shoe" style="float:right;" /></p> <p>The adoption process involved a tower of lies. Our landlord was a cheap and dodgy establishment where the staff chain-smoked in the 80's throwback wood panel office where we dropped off our monthly checks. Technically, renters had to have written permission from their landlord to adopt a pet, but that wasn't going to happen, and I was young and desperately lonely. I'd heard of a scheme whereby wealthy parents of UChicago students would buy an off-campus condo for their kid and sell on to the next well-connected family after graduation. My family celebrated special occasions at Olive Garden, but leaning on a childhood spent doing community theater, I summoned up the airy confidence of my better-off peers for the purposes of the Chicago animal shelter. <em>Oh no, I don't rent, my parents own the condo.</em> And, when asked the formulaic set of questions about my commitment and ability to take care of a pet long-term, I went for a whopper: <em>Absolutely! I want my children to grow up and remember this cat!</em> I had zero intention of ever having children, but it seemed like the right answer for staying in character. They sent him with me in a cardboard box carrier, with the suggestion, &quot;If he starts climbing the walls, consider coming back for a second kitten!&quot; I did exactly that, a month later, and brought home Alla, a fluffy calico kitten.</p> <p><img src="https://live.staticflickr.com/7153/6391847895_391fb96b94_c.jpg" width="800" height="533" alt="Bliss" style="align: right;" /><br /> Vitty grew up in a chaotic college apartment. There was that time I came into the kitchen to find one of our roommates attempting to shoo a raccoon-invader back outside, and I had to scramble to make sure Vitty was safe. Vitty welcomed all guests, especially ones willing to pet him. Andy, the roommate I eventually married, was mildly allergic, so Vitty adapted himself to foot-rubs. He loved the porch (and later, to my terror, the outside window ledge of our highrise apartment), and had an everlasting hatred of the hair dryer, which he would attack with a vengeance if he ever saw it in use. He was athletic in his younger days, able to pull off impressive jumping feats, but always a little short on brains. Alla was the Jean to Vitty's Jorts. One time we held a piece of ham just beyond the range of Vitty's best jumps -- which didn't stop him from jumping and jumping and jumping until Alla came in, assessed the situation, hopped up on a chair, grabbed the ham, and left Vitty wondering what had just happened.</p> <p>Time passed; our close-knit group of college roommates scattered, other than the two of us who got married soon after college. Vitty showed my in-laws' standard poodle who was boss, when our cats stayed with them during our month at the Medieval Summer Slavic Institute -- where I learned that you can both have kids and do intellectually rewarding work, and realized that having a family doesn't have to mean recreating <strong>your own</strong> family of origin.</p> <p><img src="https://live.staticflickr.com/65535/48614941922_1543e3b42d_c.jpg" width="600" height="800" alt="Sam and Vitty" style="align:right;" /></p> <p>But it did mean a new set of demands that get more complex, even as they no longer take up 100% of your waking hours (assuming school and childcare are a thing-- faith in that infrastructure has been unsteady at best since the pandemic). I always saw myself as a pet owner, but my sense of where &quot;having a cat&quot; fell on the daily life-impact continuum between having, say, children and cast-iron skillets shifted after having human children. The cats mostly looked after themselves; there were days, especially with infants, when I was so overwhelmed by touch-demands that petting a cat was not in the cards, but they seemed to not mind too much. Alla steered clear of the kids as they grew, but Vitty patiently indulged them in their &quot;cat-sitting&quot; and other hijinks. Only in the last year -- aged 8, 6, and 4 -- had the kids started actively seeking out the cats to pet them, delighting in the purring, snuggles, and head-butting that would result.</p> <p>Sam developed a fear of death -- developmentally unremarkable, but intensified by the pandemic. He doesn't even want to say the word, but over the course of the past few months, he's asked about how old the cats are &quot;and when will they ... you know ...&quot; 😬</p> <p>Vitty hadn't been eating much for the last week, and was having trouble getting up and down the stairs. He'd been losing control of bodily functions, and I found him curled up in the bathtub. I got him a can of tuna -- he perked up a little at the sound of the can opener, the memory of his kittenhood non-pull-top cat food still in his brain somewhere -- but he could only lick up the water, and didn't touch the food. Sam asked, afterwards, how I knew it was his time to go. &quot;He didn't even eat the tuna,&quot; I told him. &quot;And there's nothing Vitty loves more than tuna.&quot;</p> <p>Andy said goodbye and wrapped Vitty up in a towel. Vitty usually would never stand for that, but he didn't budge. Paul, the 6-year-old, petted Vitty's head. Eliza, the 4-year-old, was asleep, but was confused by the proceedings anyway. When we'd explained things, she'd thought we were going to euthanize Paul for having a bout of GI issues, and then got mad when we tried to set the record straight because clearly euthanizing Paul was the right thing to do in this situation. &quot;Aww, now I'm not going to have a black kitty anymore,&quot; she sighed once we got back, so something must have made it through. We grabbed masks; I realized only later they were muted rainbow KF94s, evoking that old &quot;Rainbow Bridge&quot; poem about being reunited with one's dead pets. The animal hospital is just two doors down. We walked.</p> <p>Vitty died in my arms yesterday afternoon, with an 8-year-old by my side, who I never could've imagined that day at the Chicago animal shelter when I was 19. Mourning a very good cat you've had for nearly your entire adult life is enough on its own, but this feels like more. It's mourning my first cat, Rosebud, who my stepmother disappeared when I was an exchange student and who was never spoken of again. It's mourning the Hyde Park of my memories, the place I went first when I escaped home, now completely transformed. It's mourning the little commune we had going in college -- the way the three of us who started grad school fantasized of being professors together someday in the same place, living in condos next to each other. I designated them the (non-religious) godfathers for my first two kids, to strengthen that bond, but now 2-3 years have passed since we've seen them. It's mourning the friends I've lost -- <a href="https://datasittersclub.github.io/site/dsc6.html#dear-reader">Stéfan</a>, <a href="http://www.quinndombrowski.com/blog/2021/04/20/maurice/">Maurice</a>, Rebecca, Scott -- without having conferences to bring us to the same bar at the same time in their memory. It's mourning my grandmother, who died last fall with no funeral planned. It's mourning my aunt-in-law who loved animals and died suddenly right before Christmas, whose funeral my husband will go to while I stay with the kids. And how do you even try to grapple with the enormity of everything, especially since we've been so lucky as a family, with so few deaths out of that incomprehensible total?</p> <p>When our old roommate Amol, now engaged, next comes to visit, we'll hold some kind of memorial service for Vitty. The logistics with ashes were more complicated than I could handle; Vitty will be buried communally in Napa. But we'll tell stories, and I'll dig up old photos and videos and maybe it'll be enough to keep that promise I made at the animal shelter. In Vitty's last minutes, I leaned over to Sam and told him, &quot;I want you to remember -- please remember -- that when you were little, you had a cat named Vitty, and he wasn't the smartest cat, but he was a very good cat who loved everyone so much.&quot; He nodded seriously. &quot;I'll write it down in my notebook.&quot;</p> <img src="http://www.quinndombrowski.com/assets/images/catrainbowmask.jpg" alt="A KF94 mask with a cat sitting on a rainbow" /> Eleventy and Me 2022-02-10T00:00:00Z http://www.quinndombrowski.com/blog/2022/02/10/eleventy-and-me/ <p>Like most folks roughly my age who spent their youth and adolescence as &quot;computer people&quot;, my personal website has gone through multiple generations of technology, starting with hand-coded HTML, moving to WordPress, Drupal, then <a href="https://backdropcms.org/">Backdrop</a> once Drupal jumped the shark and went all Enterprise PHP. It's been a few years since I've done much with CMS-based websites that I've had to manage myself, going either for centrally-run infrastructure at work or static site generators.</p> <p>The first static-site generator I was introduced to, and the default (if you ask GitHub Pages), is Jekyll. I have struggled mightily with Jekyll -- to the point where you'll soon be able to formally cite me on that in a peer-reviewed article! But between the number of pre-built themes available for Jekyll (which is a big deal, if you loathe CSS as much as I do), and DH-oriented systems built on top of Jekyll (like Alex Gil's <a href="https://elotroalex.github.io/ed/">Ed</a> and his and Marii Nyröp's <a href="https://minicomp.github.io/wax/">Wax</a>), it didn't seem worth fighting it. After all, I believe in reusability, and contributing back to technology communities, especially when it's part of a field that's relatively small within a technology's user base -- that's why I wrote <em>Drupal for Humanists</em>, so DH people could see themselves (and not e-commerce) in the pedagogical materials they were using. But I can't say I've ever <em>liked</em> Jekyll, even when I was able to get it to work. I struggled to get a basic hang of Liquid, and the layouts-and-includes(-with-includes) situation felt like a labrynth where I might become a minotaur's lunch at any moment. And don't get me started with Ruby, which I'm pretty sure just hates me because every third time I tried to serve a site locally, everything inexplicably broke.</p> <p>It was a Friday night in mid-December when all I wanted to do was rebuild my website, and instead found myself fighting with Ruby, when I complained about this state of affairs on Twitter. And I got some thought-provoking advice about other options. Non-Jekyll options. Options that wouldn't make me placate Ruby. When I needed a break from ragefully Googling error messages I started exploring some of these possibilities, but after a couple of hours, I had Ruby working again and I figured, &quot;Why mess with what works (even if only for the moment)?&quot; I really liked the <a href="https://mmistakes.github.io/minimal-mistakes/">Minimal Mistakes</a> theme I had picked out, and I just wanted to get on with things, not start over from scratch.</p> <p>I spent the first week of the holiday break carefully hand-migrating most of my old content, choosing just the right thumbnail image for some old projects and the Project Bamboo data write-ups, and on Christmas Eve it was all ready to go. I was at a cabin where internet was hit-or-miss (mostly miss), so I resolved to actually publish it when I got home. Before bed, I cleaned up some files from a previous iteration of the site, and emptied the trash on my lapotp. Another project wrapped up!</p> <p>The next day, I wanted to fiddle with something on my CV, so I fired up the new site locally and... the earlier iteration appeared instead. Somehow, in some way I still do not understand, I managed to hard-delete the new website I'd spent a week making. (And because I'm less good at data management with my own stuff, I didn't have any almost-done versions committed to the repo or anything salvagable.) Data recovery tools, such as I could find, did not help. It was gone.</p> <p>I try to not give in to superstition, but accidentally deleting my Jekyll site on Chrsitmas Eve sure felt like an omen. Was this a message from the Ghost of Christmas Futures that if I continue down this path, I'll be spending more Christmases cursing Ruby? I wasn't going to take the chance. Inertia overcome, it was time for something different.</p> <p>And what I found, thanks to Cassey Lottman, was <a href="https://www.11ty.dev/">Eleventy</a>. Even the website, whimsically featuring a cluster of possums floating along the screen attached to a red balloon, spoke to me. That said, there was a lot of jargon to figure out at first; I've never done much with JavaScript, and honestly, I find it more than a little nerve-wracking. Cassey kindly put together this <a href="https://www.cassey.dev/posts/2021-12-25-just-enough-javascript-11ty/">Just Enough JavaScript for Eleventy</a> to help me over that hurdle, and once I had my bearings, I realized that even though there's not a lot of pre-built themes / template sites for Eleventy (at least, not ones I was able to get to work), you can also <a href="https://www.cassey.dev/posts/2021-10-23-converting-an-html-file-to-eleventy/">work from HTML templates</a>, and Eleventy can work with Liquid templates, so with a non-insurmountable number of tweaks, you can adapt a Jekyll theme to Eleventy. And that's what I ended up doing, with some help from this <a href="https://alexpearce.me/2020/06/jekyll-to-eleventy/">Moving from Jekyll to Eleventy</a> blog post by Alex Pearce, taking the things I wanted most from the Minimal Mistakes theme I'd been using in Jekyll. One caveat: SASS doesn't work out-of-the-box, and I needed some help from Philip Allfrey to get the site-generating code to process the right set of SASS files, but that's a topic for another blog post.</p> <p>Not everything works quite yet, and I've got some things I'd like to explore further (like using a data file to dynamically generate a gallery of spiffy things I've sewn), but with some debugging help from Cassey I've now managed to build two Eleventy sites and get them running on GitHub. And I have <em>enjoyed doing it</em>, even the debugging and fiddly bits. The Eleventy blog posts and documentation and issues feel like a community of people trying to figure out a way to do things that centers flexibility and choice -- honestly, to a greater extent than I was always comfortable with, as someone who lacked the knowledge to have preferences or make informed choices. But there was less of the &quot;X is just like Y, next topic!&quot; (where X and Y are things I knew zero about) vibe I often got from trying to make sense of Jekyll.</p> <p>Eleventy and, more recently, <a href="https://obsidian.md/">Obsidian</a> for note-taking (thanks to <a href="https://electricarchaeology.ca/2020/12/30/knowledge-management/">Shawn Graham</a>), have gotten me thinking about the role of enjoyment in selecting tools and platforms. Despite being a general advocate for more <em>fun</em> in DH, I had never considered fun as a worthwhile consideration when choosing tools and platforms. Do you think about fun much when you choose a washing machine? Factors like cost, effectiveness, use of resources, compatibility with your preferred soap all come to mind, but not fun. <a href="https://voyant-tools.org/">Voyant</a> is a rare exception of a tool that puts fun front and center, but these days, I'm more likely to use <a href="https://www.laurenceanthony.net/software/antconc/">AntConc</a> to get the data I'm looking for because of its efficiency with giant corpora. I'm wary of fun as an influencing factor, after seeing too many years (decades, now) of CS undergrads building websites using the latest hot (fun) framework, resulting in something utterly unmaintainable in the medium-term, let alone the long-term. Those reservations leave me reluctant to sub out Jekyll in projects with scholar-collaborators at work, at least for the time being. But my own website and notetaking practices feel like the ideal place to embrace enjoyment as a guiding principle in tool selection, since no one but me has to deal with any unintended consequences. How much of it will make its way into collaborative projects down the road remains to be seen.</p> <p>In the meantime, I've got a handful of Eleventy tips and tricks and explainers I hope to put together in the next few months for anyone who wants to join me on this path.</p> Maurice 2021-04-20T00:00:00Z http://www.quinndombrowski.com/blog/2021/04/20/maurice/ <p>I was halfway through making the fourth peanut butter and jelly sandwich for today's kid lunch bags when my phone chirped at me. I saw the email subject "Maurice Manning". I'm not even sure what I assumed in the split-second before I read it; probably that he was going to be back in town sometime this summer, and we should all grab lunch again. It didn't occur to me to prepare for the possibility that he had died.</p> <p>Coming off the high of writing a proposal for next academic year, where I felt like I could finally imagine planfully doing good things instead of throwing together anything to scrape through, I was ready for today to be a day of joyfully knocking things off my to-do list. I had the peer-review comments open on my laptop, so I could to sit down and do some revisions after the kid drop-off. I had the emails that needed answering all lined up. I had a set of moderately annoying tasks broken down into chunks I wouldn't balk at. And then this email from a former-job friend, who's been picking us up some things from the local nice grocery store every few weeks during the pandemic. But not about groceries. Or grabbing lunch.</p> <p>So now I'm sitting in the living room, in the post-kid-dropoff quiet, thinking about cyberinfrastructure.</p> <p>Maurice Manning and I overlapped at UC Berkeley in 2017. He was hired as a "Cyberinfrastructure Engineer", which felt worlds away from my super-generic "IT Analyst" title at the time. I dealt with people; he dealt with code. But we ended up hitting it off, maybe because we needed each other. The people I consulted with wanted to do things that required code, and neither they nor I knew where to begin with it. Maurice needed projects, especially ones that involved bringing different systems together to do useful things. At Berkeley there were so few people in central IT who were allowed to <i>actually do things</i> to help scholars; mostly we gave people advice, and when they inevitably said, "This sounds great, how do we get started?", we'd have to look at them sadly and say, "It's on you now." But Maurice was an exception -- he had license to do things. So I tried to connect him to people wherever I could.</p> <p>Maurice was the first person to introduce me to Jupyter notebooks. I wrote the human-readable parts, he wrote for the computer. It was the perfect distribution of expertise because his prose was almost as terrible as my code. One of those projects took us to the <a href="https://research-it.berkeley.edu/blog/17/03/13/research-it-staff-present-ucla-digital-humanities-infrastructure-symposium">UCLA DH Infrastructure Symposium</a> on a same-day boomerang trip. We sat in the Oakland airport before the sun rose, waiting for the first flight south, marveling as he told me about growing up on a farm, the only boy in a family with something like nine girls. And they were still close, sharing this massive family group-text.</p> <p>We did some great projects together, like OCR on HPC for <a href="https://research-it.berkeley.edu/blog/18/02/20/legal-scholars-mining-millions-bankruptcy-case-pages">law</a> and <a href="https://research-it.berkeley.edu/blog/17/04/20/digital-humanist-aims-run-ocr-over-terabyte-rare-book-scans">Ancient Near Eastern projects</a> and <a href="https://research-it.berkeley.edu/blog/18/06/26/jupyter-notebook-streamlines-machine-translation-researchers">machine translation</a>. I loved working with Maurice because he never once made me feel stupid or inferior for not knowing how to code, or not being an "engineer". I could translate scholars' needs into something he could code, and I could write, and at least to him that had value.</p> <p>But there were fewer projects than he'd hoped for, and he left after a year or so. His new gig, working for AI Singapore, sounded perfect for him: taking on a <a href="https://www.aisingapore.org/industryinnovation/100e/">100 Projects</a> initiative, among many other things. I was sad to see him go, especially since I couldn't imagine that I'd be leaving UC Berkeley before long, too.</p> <p>Maurice was the first person I'd met in a role akin to the "Research Software Engineer" positions that have garnered some attention even in DH circles as a kind of professional path for people in staff roles. But his job was focusing on infrastructure, which has always been close to my heart. My library/department DH support staff role at Stanford feels very different from my former job in UC Berkeley's Research IT group -- not least because it involves a lot of actually doing things for and with people. But looking at some of the things I've managed to do in this position -- including writing Jupyter notebooks and tutorials (like with the <a href="https://datasittersclub.github.io/site/books">Data-Sitters Club</a>) to lower the barrier to entry for doing computational work -- I feel like there's echoes of inspiration from the work I did with Maurice. I wish I'd told him about the <a href="https://programminghistorian.org/en/lessons/jupyter-notebooks">Programming Historian lesson I wrote on Jupyter Notebooks</a>. I bet he'd have thought it was cool that it was <a href="https://programminghistorian.org/fr/lecons/introduction-aux-carnets-jupyter-notebooks">translated into French</a>. I think the Data-Sitters Club would've made him smile -- with a touch of puzzlement, perhaps, but always superseded by a genuine curiosity, even about things far removed from his own experiences.</p> <p>But that lunch at La Note isn't going to happen now, and I'm shutting off the to-do list app because none of those things are going to happen today either. Instead, I've got a pile of notebooks that I've been meaning to comment up and write documentation for and post somewhere they might be useful. Tending to the code-garden. It's a small tribute, but maybe it can help someone the way Maurice always managed to.</p> What's a 'word': Multilingual DH and the English Default 2020-10-15T00:00:00Z http://www.quinndombrowski.com/blog/2020/10/15/whats-word-multilingual-dh-and-english-default/ <p><img alt="Poster for Spectrums of DH talk" data-file-id="53" height="486" src="http://www.quinndombrowski.com/assets/images/multilingual_dh_poster.jpg" width="864" /></p> <p><em>The following was my presentation at the McGill DH Spectrums of DH series. The images were displayed as Zoom backgrounds during the talk.</em></p> <p>Thanks so much for the introduction, Kate. So, yes, I’m Quinn Dombrowski. In English, I identify as non-binary, but I don’t have any preferences about pronouns because in most of the languages I work with, pronouns don’t actually fix anything. In English, if someone says they use they/them pronouns, and you refer to them using those pronouns, congratulations! You’ve fixed binary gender in discourse! In other languages, where gender also triggers things like adjectival or verbal endings, it’s not nearly so clean-cut — especially when there’s no “neutral” ending, or the neuter-gender ending has been used as a slur. So, I do prefer gender-neutral nouns like “person” and “parent”, but don’t particularly care about pronouns. And that’s way more than you can reasonably fit at the bottom of a conference name tag or email footer. But in some sense, that’s doing multilingual DH in a microcosm: it doesn’t always fit neatly into the categories and rituals offered by English.</p> <p>I’m so touched to be invited to speak as part of this series in honor of Stéfan Sinclair, who was, in his own quiet way, a lion of multilingual DH. His Voyant has better out-of-the-box support for not only multilingual interfaces, but multilingual text processing infrastructure. And all without big splashy announcements or glory-seeking. Stéfan listened when people encountered challenges. And he made Voyant better. And after seeing Voyant's impact in my non-English DH class last week, I’m so grateful that he did.</p> <p>I’d also like to thank Cecily for this invitation, even if she did put me in the unenviable position of speaking after Roopika Risam. Still, I’m grateful for this chance to put her perspective and mine into dialogue, in anticipation of the broader discussion among the speakers at the end of the series. Within DH, at times, the focus of our respective work has been put in opposition to one another. Based on the likely attendees here, you probably all agree that linguistic diversity is not a substitute for diversity along axes of identity like race, gender, and sexuality. And that there remains much work to be done to address, in particular, anti-Black racism and the impact of the colonial legacy in our institutions, our classrooms, our organizations. </p> <p>But what I’m hoping to do today is to offer language as another axis of diversity worth giving some thought and attention, in the spirit of “yes, and”. I have faith that we can care about more than one thing at a time, and take steps towards making the DH that we practice more inclusive for people who work with other languages — without it taking away from more focused efforts elsewhere.</p> <p>That said, it’s not always easy. Being welcoming towards other languages, and actually supporting students and colleagues who work on non-English languages, takes work and attention, and especially for those of us who do Anglophone scholarship while living in an Anglophone world, you have to pay attention to a blind spot you may have never noticed before. So, my hope for today is to point out this blind spot, to make it easier to see next time it comes up, and try to give you some sense of what it actually looks like, and feels like, to work in non-English DH — or, frankly, to do DH in any language that’s not English, or the national language of the country you’re working in. (It’s not necessarily less frustrating to do Japanese DH in Germany than in the US.) I love going on about the amazing work being done in non-English DH worldwide — earlier this year I briefly started to revisit Alex Gil’s “Around DH in 80 Days” project with more recent work from around the world, before it had to be indefinitely put on hold because of COVID-19 meant I’m always short on hours in the day. But that’s not what I want to focus on today. Because if I do that, I’m afraid that what many of you will walk away from this talk with is “Gee, guess there’s a lot of stuff going on in other languages, that’s cool” — but you WON’T leave with a sense of why it should matter to YOU, or what role YOU can play in supporting, in particular, the next generation of non-English DH scholars. </p> <p>Just to be clear upfront, with this talk I’m speaking especially to Anglophone DH scholars, in primarily or exclusively Anglophone countries, and to a lesser extent, in Western Europe. I’m going to focus primarily on the experience of doing DH research in a language other than English, including how that plays out for students in a DH classroom. These classrooms may look like a workshop or a formal course, and they're often constructed as a kind of interdisciplinary space, even though they almost always assume the use of English-language materials. I won’t be focusing on the issues of language as they pertain to scholarly communication — what languages do people present in at conferences, or publish in. Domenico Fiormonte has written extensively on the Anglophone dominance in scholarly communication, and there seems to be an increasing trend towards linguistic diversity in presenting one’s research, both at conferences and in writing, including, for instance, the recent launch of Humanistica’s Francophone DH journal. While I absolutely respect what people are doing with that shift, it’s not without consequences. The fact that more DH scholarship is published or presented in languages besides English is not, realistically, going to lead to enrollment spikes in French or Italian 101 driven by Anglophone DH scholars who want to keep up with the field. It means there’s additional friction in communication, that requires labor (like the GO::DH “whispering” campaign for interpreting non-English talks at DH 2014 that Élika Ortega has written about) to overcome, or tools. And many people just won’t bother. Maybe I’ll be grateful that so many of you have turned off your cameras so I don’t see the looks on your faces when I say this, but one of the things I’ve done in my non-English DH class this quarter has been to assign articles in languages that only some of the students can read — such as Italian and French. I tell them if they can’t read it, they can use Google Translate to get the gist. Would I recommend they cite the Google translated version? No. Are they getting every nuance? Also no. But machine translation has gotten to be quite good (particularly for European ones, which, yes, still leaves many scholars out). For many language teachers, the way you can tell when a student is cheating with Google translate is that their writing is TOO good. But realistically, the alternative is simply not engaging with that scholarship. So I’ve been trying to get them in the mind-space of seeking out an imperfect solution, instead of giving up for lack of linguistic knowledge.</p> <p>All right. On to the experience of doing non-English DH! If you’re an Anglophone scholar in an Anglophone country, you live in a sort of magical bubble where you may never run across friction in your research workflows, because things just… work. At least as well as DH tools and methods ever do. The title of my talk is “what’s a word?” Which in the Anglophone bubble feels almost like a nonsense question. Words are such a basic concept in our tools and methods, many of which come down to just being variations and elaborations on word-counts — things like word frequencies, word distributions, word vectors. They all are based on some assumption of what a “word” looks like — particularly, that it’s separated by spaces, and mostly invariant in form. This is a terrible assumption if you’re working on many languages. Chinese is, in some sense, actually one of the easier cases. Yes, you have to artificially insert spaces between “words” (in Classical Chinese, you do it between each character; with modern Chinese, you need more complex algorithms to accommodate compounds). But once you’ve done that, Chinese behaves a lot like English in not having a lot of inflection. On the other hand, Russian (mostly) uses spaces like English does, but an individual word can have 30 different forms, depending on the number, grammatical gender, and case. The computer doesn’t know that those 30 different variants are the same “word”, so any analysis involving word counts just collapses into noise unless you lemmatize — which means, changing your grammatical, human-readable text into a more computationally-tractable derivative, where every word is replaced with its dictionary form. The resulting lemmatized text may be human readable… kind of, though you can lose things like what’s the subject and what’s the object… but it’s still wrong, in a way that takes extra effort to work though. Imagine some parallel universe where DH word-count methods assumed that all words had endings added to the roots. And the only way to get English-language texts to work with these methods was if you first transformed them into Pig Latin. But not just any Pig Latin — one where the added vowel changes depending on whether it’s singular or plural, plus various etymological reasons. (For anyone who doesn’t know, Pig Latin is a children’s language game where you move any initial consonants or consonant clusters to the end of the word and add “ay”.) In this universe, you may start with your original text, but what you have to work with sounds more like: “it-ay asway ethay estboy ofyay imestoy , ityay asway ethay orstwiy ofyay aymestiy”. A Tale of Two Cities, right? But it takes a lot more effort to re-connect this text back to the version you’re familiar with.</p> <p><img alt="" data-file-id="54" height="1080" src="http://www.quinndombrowski.com/assets/images/callmeishmael.jpg" width="1920" /><br /> You think that’s bad? Consider, if you will, the case of one of my students this quarter, Merve Tekgüler, who works on Ottoman history. (All student examples shared with permission, FWIW.) A thing you should know about Turkish: it’s an agglutinative language, which means that a “word” (or a thing between spaces) can be a whole phrase or sentence in English. They literally have a “word” for “you are reportedly one of those people that we could not make Czechoslovakian” which doubles as a tongue-twister. (In those cases, lemmatizing isn’t enough, and you have to do another method of encoding sub-word components to get anything meaningful out of “word counts”. In case you were wondering.) Another thing you should know: the founding father of the Republic of Turkey, after the fall of the Ottoman Empire, changed the writing system from Arabic script to Latin. Arabic script goes right to left, Latin goes left to right. Latin script writes vowels (which are really important in Turkish); Arabic script does not. Merve wants to make Ottoman Turkish documents available to modern Turks. And so they’re working with Suphan Kirmizialtin at NYU to retrain a model for doing OCR on printed Ottoman Turkish texts into something that can not just OCR but transliterate — essentially, OCR into another alphabet, while adding back in the vowels that are missing. And because the software Merve is using assumes left-to-write, they have to reverse their transcriptions to create training data. Like this.</p> <p>Of course, this slide is STILL in “easy mode” — it’s still the same alphabet as modern English, and keeps all the vowels. A better comparison would be this:</p> <p><img alt="" data-file-id="55" height="1080" src="http://www.quinndombrowski.com/assets/images/ishamel2.jpg" width="1920" /></p> <p>Any guesses about what the text here is? It’s a familiar one… (Moby Dick)</p> <p>So these are funny counterfactuals, and every week I teach, I think of more. Like Windows, which to this day uses English text encoding instead of Unicode, an international standard that supports almost all languages and writing systems, when you run Python scripts, unless you tell it otherwise. Imagine how frustrated you’d be if you tried to open a text file using Python, but it’d fail unless you either specified that you had English or multilingual text, because anything other than Chinese characters would trigger an error.</p> <p>And these scenarios are funny for a reason, because I hope you remember them next time you’re teaching. Maybe your class is going great, and all the students seem to be getting the material you’re covering in your workshop or course, but have you asked them what language they use for their own work? What language they want to apply these methods to? Once the quarter’s over, how will your Russian student feel when they apply the word-count based methods they learned in your class, and get garbage back because they don’t know about lemmatizing? Or how will your Ottomanist handle the complete and utter fail they get when trying to run their manuscripts through Adobe Acrobat or ABBYY FineReader for OCR? What will they conclude? Will they realize that the problem is Anglo-centric DH pedagogy, and not them? Will they want to keep doing DH, when it looks like it “doesn’t work” for the texts they care about?</p> <p>I wish the only problems these students faced were technical. Too often, people who I’m sure are well-meaning do things that further undermine people who work on multilingual DH, who are already struggling with a harder path than their Anglophone peers.</p> <p>There was the time I was invited to present as part of a seminar in an English department — I was excited about it, because the other presentation was the perfect topical compliment to my multilingual talk, and I felt like I had something to contribute in terms of raising questions about how broadly applicable the English-language results were, given the diversity in my results spanning multiple different language corpora. I felt great about the presentation— it’d gone over really well before in non-English contexts— but during the Q&A, every single question was about the other talk. Grad students didn’t want to touch something they weren’t familiar with, with a ten foot pole. And when I got the pity question from the organizer, it was about a hypothetical corpus I didn’t have, instead of what I’d presented. When my one friend there with a background in non-English languages saw where the winds were blowing and texted me a question, it kicked off a parallel — literally, under-the-table — Q&A session that actually engaged with language. We find outlets in unfriendly spaces. I was just grateful that the grad students I work with weren’t there. Because, whatever, so I get angry about the response to a talk. I’ve been doing DH since 2004. This won’t drive me away from the field. But those students? What would have left them with the impression that they have any place in DH?</p> <p>Another favorite of mine is the “international” or “multilingual” panel scheduling at conferences, where you stuff everyone working on not-English onto a single panel, safely tucked away from the rest of the conference where no one has to deal with you unless they opt into it. Imagine being someone who does fandom studies in English, and going to China for a conference, where you’re put on a panel with someone who does medieval Islamic star charts and someone doing 19th century Russian literature. What’s the problem? All of you use alphabetic scripts in your research. You’ve got things in common! Sometimes it works. Sometimes you’re able to draw out unexpected connections. But most of the time, you’re left wishing someone could have made space for you at a panel on the TOPIC of your work, without getting hung up on the language.</p> <p>Maybe my very favorite was some of the response to a write-up I’d done about my non-English DH course. Concerns that I should articulate a back-story: surely teaching a DH course that centered non-English languages must be a reaction to some instructor who had done me wrong, and I should tell it as a story of redemption or overcoming challenges. Dude, I work for a non-English literatures department. I teach non-English DH because I DO non-English DH and it really doesn’t need a whole psychological back-story. And then, insisting that I cut the part of the piece that gets right to the heart of what I’m talking about today, to try to make people care, because talking about the challenges students face beyond the technical isn’t appropriate. Here’s the hard truth: even leaving aside the challenges your non-English literatures and history students face when trying to apply in the DH classroom, it pales in comparison to what they face OUTSIDE it. Are you horrified by the state of the job market for English literature folks this year? Honestly, feels very familiar, as someone centered in not-English. One tenure track post every year, or two, or three, depending on the thing you work on? Sounds about right. So many students go into programs wanting to teach literature, and come out of it scrambling to teach a language. Which, if you’ve never done it, imagine teaching a composition class… with students whose proficiency is most comparable with a 4-year old… and spending spending the next 30 years discussing favorite foods and colors and what students did over the weekend. I mean, God bless the people who that works for. But it’s not what most students dream of, and it’s probably the most likely outcome for a lot of students who work on other languages. Not to get too neoliberal here, but DH plus language skills give my students options. But only if they have someone to show them how they work together.  And that just doesn’t happen in most Anglophone-oriented classrooms.</p> <p>But many of you, you’re in a position to do something about it. You’re in the position to engage with multilingual DH, as a colleague, or as a teacher. </p> <p><img alt="" data-file-id="57" height="1080" src="http://www.quinndombrowski.com/assets/images/quinn-german-spanish-russian.jpg" width="1920" /></p> <p>Also, please don’t think you have to be some kind of polyglot genius to do this? Multilingual DH is the main thing I do, and I’m a failed German heritage speaker with rusty high school and Argentinian exchange student Spanish, Japanese self-taught to the point of failure, who’s taken fourth-year Russian three times, and who’s never spent more than a month outside the US. In college I dreamed of living abroad, but life had other plans. </p> <p><img alt="" data-file-id="56" height="1080" src="http://www.quinndombrowski.com/assets/images/kids_door.jpg" width="1920" /></p> <p>So here’s some tips.</p> <p>Name language. This sounds like such a basic thing, but it’s so common to not do this and just treat “English” as a synonym for “literature”, and omit both. Emily Bender, a linguist, is fighting the good fight for what’s been dubbed the “Bender rule”, essentially “always name the language you’re working on”, vis-a-vis computational language processing. I’d love to see the same adopted in DH. And actually, this is a moment where decolonial and multilingual DH intersect — just this last week, I saw that the Cornell University English department had voted to rename itself “Department of Literatures in English” as a step towards de-colonizing the Western university system. Whether they intended it or not, I feel like that brings that English department closer in its framingl to, say, the department I studied in at the University of Chicago, the “Department of Slavic Languages and Literatures”. For English literature people, it’s so common to omit the language name, and just leap to period or style. “I study… modernism!” “I study… the 19th century!” But if the scope of those things is English, just say it? Everyone who works on non-English does, and it helps with specificity and equality, avoiding any implication that “English” should be synonymous with “literature".</p> <p>Also, get used to looking at languages you can’t read. I find it so strange that people who are generally on board with DH as a collaborative enterprise nonetheless balk when the “collaboration” has to take the shape of relying on a student to read text in a language you don’t know. It’s okay. It’s just another kind of collaboration. Not being able to read another languages casts no shade on your expertise, but working with a student who brings linguistic expertise to a project says something about your openness to embrace the challenges we inevitably face if we want to ask big questions. </p> <p>Because what I really hope is that scholars with the power to do this (not you, grad students, you’ve got a different set of challenges and constraints) can open themselves up to questions bigger than their own expertise has a prayer of answering. If you’re interested in fandom — like, actually, FANDOM — you need to look at how it manifests not only in English. Same with literature. Same with the Gothic. It’s so common to wave your hand and try to extrapolate from what you find in English to LITERATURE writ large, but it doesn’t work that way. There’s so much more literature than you can conceive of just looking at English, and it’s all weird and wonderful in its own way. I feel like this, in some sense, is the gift of having spent my entire career in staff jobs. I haven’t had the luxury of being able to become an expert in any one thing— my role has been to support others in their work, which means having to find something interesting in just about anything that people come up with. Consider cultivating that kind of staff mindset with work outside your own expertise. What can you contribute? What can you learn? How far can you get, together?</p> <p>The students in my non-English DH class this quarter are smart and brave and persistent and insightful and I can’t wait until all this is over and I can find some way to introduce them to you all in person. Beyond their linguistic capabilities and interests, they bring their own life experiences and the combination is incredible. Victoria Rahbar, who’s spent the last couple weeks OCRing Japanese (which can run vertically or horizontally — or sometimes both on the same book cover) wrote in her reflection piece on it how she’s concerned with more than just getting the characters and orientation right: she wants the texts she OCRs to be accessible to students with screen readers which means getting the reading-order set correctly too. And Maria Massucco, who’s been working with Italian texts, shared a beautiful reflection about how she overcame her anxiety about deleting the paratext from ebooks before doing computational text analysis, by connecting it to the way words sometimes disappear when you’re translating between languages.</p> <p>If you want to understand literature, ACTUALLY literature, not just English as a dubious proxy for literature, you’ve got to reach out to your non-English DH colleagues, and the students coming up. Not just talk to them, not just invite them to your seminars and while plunging down the usual Anglophone rabbit holes, but make the leap to actually try to understand and engage with their work. Their work is valuable — it has meaning and worth — without being comparative. But they almost certainly recognize the limitations to the scope of the claims that they can make, within the confines of the languages they work in. Do you? And are you willing to reach beyond your own expertise, to embrace what you could learn beyond English?</p> <p>Thank you.</p> 'It Doesn't Work': Failure and DH Tools 2020-07-21T00:00:00Z http://www.quinndombrowski.com/blog/2020/07/21/it-doesnt-work-failure-and-dh-tools/ <p><em>The following are my remarks for the <a href="https://dls.hypotheses.org/1110">DH 2020 "Tool Criticism 3.0" workshop</a> hosted by the Digital Literary Stylistics SIG. If you'd like to enjoy it in video form (it's fast-paced and colorful and fairly fun for this kind of talk), you can <a href="https://univr.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=2b012f49-5821-411f-bbb3-abf800f3eb54">watch the video here</a>.</em></p> <p>Hi, I’m Quinn Dombrowski, Academic Technology Specialist in the Division of Literatures, Cultures, and Languages, and the Library at Stanford University in California, the United States. And today I’m happy to share some thoughts on DH tools and failure, which I’m calling… “IT DOESN’T WORK.”</p> <p>Before coming to Stanford in 2018, I worked for 10 years in central IT at the University of Chicago and UC Berkeley. Much of that time was in groups that would be on the receiving end of support tickets when things broke… or, more specifically, when things didn’t work the way people were expecting. Especially when you’re new, it’s not always clear what the situation is  when your inbox is filling up with support requests, all with some variation of the message “IT DOESN’T WORK”. Maybe the server is down. Maybe user data has been corrupted. Or maybe it’s September and lots of people are having their first encounter with a system with known UI or UX issues, and actually, everything’s FINE… or at least, operating as expected.</p> <p>In 2010, Bethany Nowviskie wrote a blog post, “<a href="http://nowviskie.org/2010/eternal-september-of-the-digital-humanities/">Eternal September of the Digital Humanities</a>”, where she grapples with, as she puts it, “a tension between goodwill and exhaustion — outreach and retreat. I’m sympathetic to the weariness of these people, treading water, always “on.” I feel it, too. But it’s their voicing of frustration and possible disengagement that alarms me.”</p> <p>I’ll get back to that frustration and disengagement.</p> <p>But let’s first talk about DH tools, and the ways they “don’t work”.</p> <p>One thing I’ve learned, over my years of doing direct end-user support, is that — what it is that “doesn’t work” often depends on your perspective. In college, I worked in a computer lab, sitting at a special desk for multimedia support. Unfortunately, that desk was also right next to the printer and printing payment kiosk. You can imagine how many questions I got about video editing, compared to the number of questions I got because people had failed to read the giant sign about how to use the printer. The printer was almost always fine — so you could argue that the problem was actually the users. Or from another perspective, maybe what was broken was the software procurement process, that led my boss to purchase pay-for-printing software that so many people found hard to understand.</p> <p>I see similar dynamics around DH tools.</p> <p>So much work goes into building DH tools. And overall, it’s absolutely a gift to a field that can’t assume that its new practitioners have any exposure to — let alone proficiency with — programming. Still, there’s an important point to make here that tools are a stopgap solution to the fact that the institutional structures to teach humanities graduate students to code are still few and far between in most places in the world. And the people who are more likely to have access to formal training in computational methods and languages prior to pursuing graduate study in the humanities, fall within a fairly narrow set of demographics. Tools, in such a context, provide a way to bridge a gap and enable more people to apply digital humanities methods to the kinds of research questions that interest them. But how big is that gap, and how far can tools take you across it?</p> <p>Let’s take the example of Scott Enderle's <a href="https://github.com/senderle/topic-modeling-tool">Topic Modeling Tool</a> — and I choose this not as a bad example, but as an excellent one. It has thorough, readable documentation, lots of beginner-friendly functionality (like having a graphical user interface, to start with), and it’s one that I’ve used in the classroom, making mistakes along the way, myself.</p> <p>The Topic Modeling Tool is an easy-to-use tool for… well... doing topic modeling. It’s simpler to get started with than installing and running Mallet from the command line, and the output it provides — readable HTML files of topics and their distributions across documents — is much easier to work with for interpretation than what you get out of Mallet.</p> <p>Let’s see what happens when you give it something that makes no sense at all… like a folder full of pictures. Friends, let’s topic model some cats!</p> <p>And, surely, you might think, no one would do this.</p> <p>But step back for a moment and think about the student who doesn’t have access to formal DH pedagogy as part of their educational program. If I works for cat JPGs… it’ll also give us some kind of result for PDFs with no OCR layer — and LOTS OF PEOPLE have texts they might like to topic model in the form of PDFs with no OCR. </p> <p>Or take a less-wrong example: what happens when someone feeds the Topic Modeling tool one single document. That’s the thing with topic modeling: to get a meaningful result, you have give the algorithm multiple documents. You can split the “document” you want to look at into multiple pieces for purposes of analysis, but you have to give it multiple things, or else you’ll get a basically random assignment of words to topics. But if you give the Topic Modeling Tool a single document… the experience is indistinguishable from if you give it a set of documents that it CAN produce some meaningful result from. Even though the results are useless.</p> <p>There’s a few different ways this could be addressed — you could start with some very emphatic messaging in the Quickstart guide or documentation that you NEED MULTIPLE DOCUMENTS (and explaining that it’s okay to break up a long document into multiple pieces). But I always think back to the computer lab, and people NOT READING THE SIGN. So, slightly harder to implement, you could add a warning message when someone selects a single text file. Let them go ahead and do it, if they really want, but build in opportunities for people to confirm — when they’re doing something that’s likely to make the tool “not work” — that it’s really what they want.</p> <p>Now that’s an easy case — in most other situations, problems result from the contents of the document, rather than something as simple as the number of documents provided to the tool. </p> <p><a href="http://hdlab.stanford.edu/palladio/">Palladio</a> is a data visualization tool developed by the Humanities + Design Lab at Stanford, and recently my colleague Simon Wiles has been working on a new version with embeddable visualizations. </p> <p>One of the things I really appreciate about how Nicole Coleman and the Palladio team developed the interface is that there’s a link, right above the data upload form, with the question “Not sure how to structure your data?” That will take you to a page with detailed information about how to name the columns of your spreadsheets, what characters cause it to break, how to format dates, and all those other useful things that one often has to find out by trial-and-error… assuming you’re used to working with tool that way, and don’t throw your hands up in despair and figure the problem is you and maybe you’re really not cut out for doing digital humanities because you can’t get any of it to work.</p> <p>Right now so much is unclear about the future — about the humanities broadly (for instance, coming under attack in new tuition models in Australia), and about higher education in general, where it’s becoming increasingly clear that at least in the United States, not all our institutions will survive the pandemic. It seems inevitable that some things will change — but there’s no reason to assume that they’ll change in a direction that will lead to coding and data skills being core to a humanities education. </p> <p>It’s widely acknowledged that a lot, if not MOST, of digital humanities training takes place through less formal contexts than a curriculum: things like workshops, and self-study. But we’re in a context where some of the longer, intensive, residential workshops (like the summer institutes) are hard to imagine being possible in the near term. Which is really unfortunate, given the valuable experience these workshops provide, though many groups of people — including parents of small children, and people without the means to take a week off and travel — had challenges accessing these opportunities even in the before-times. </p> <p>There are, as a result of all this, more people in a position where self-study or very short workshops are the only option for developing DH skills. And that’s something that tool developers need to keep in mind. You’re not building tools just for yourself and your colleagues — at least, not if you want those tools to have their greatest potential impact. You’re building them … for yourself and your colleagues… and also the grad student whose stomach drops with trepidation when they have to look at a command line… and also the librarian who took a basic Python workshop a year ago and has done a REALLY GOOD JOB pushing other tools to their limit in order to avoid having to resort to using basic Python since then. I’m not saying all tools need to have a graphical interface, or be immediately intuitive, or avoid making people write code. But rather, it’s important to keep in mind the background that your users have, or don’t have, and spell out through documentation, videos, tutorials, and other materials those things that you might just take for granted. Things like, for instance, whether it’s recommended to lemmatize a text in a language that uses inflection, or how to format file names or metadata files.</p> <p>It doesn’t necessarily have to be the responsibility of the tool developers to bridge that gap. </p> <p>Last year, I started a project called the <a href="https://datasittersclub.github.io/site/books/">Data-Sitters Club</a>, as part of the Stanford Literary Lab, where a group of friends and I try to apply various DH text analysis tools and methods to “The Baby-Sitters Club”, a series of girls’ literature from the 80’s and 90’s that was translated into a few different languages. We write up our results — but more importantly, our entire PROCESS, including the mistakes we make and the challenges we face, and our frustrations along the way — in chatty, colloquial prose. Our style does’t work equally well for everyone — but that’s okay! There’s other resources out there, including “Programming Historian”, that cover some of the same tools in a different style, that makes those tools accessible to a different audience than we’re going for with the Data-Sitters Club. When it comes to tutorials, especially for people early in their journey of exploring digital tools and methods, let a thousand flowers bloom! Navigating technical documentation, and instructions not written with your particular perspective in mind, are skills you develop over time — but it takes confidence to take those risks, and building the necessary confidence is easier if you’re working with materials that resonate with you.</p> <p>Now, realistically, there are limits — I’m not expecting DH tools to rethink their interfaces and/or documentation to be usable by 6-year-olds like my junior coworker, Sam, here.</p> <p>Sam: I’m learning to do spreadsheets!<br /> (Side note: I was pregnant with him when I gave the now-famous Project Bamboo talk— how weird is that?)</p> <p>But thinking about the original theme of this conference in Ottawa — Carrefours or Intersections — I think it is precisely at these place of intersection that DH text analysis tools have the most to offer… and the most to learn. DH-curious undergrads and grad students with limited computational background are closer in skill level to the general public than the text analysis “in-crowd” that we often think of first. We're in a moment where, at least in North America, there’s much more attention being paid to the narratives that historically HAVEN’T been told. And as tool builders, we have an opportunity to enable other people to tell the stories that matter to them. But for that to happen, we need to build both our tools and our documentation with that audience in mind— so that our tools “work”. </p> <p>Which brings me back to Bethany Nowviskie’s “Eternal September of Digital Humanities”. Much has changed in the field of digital humanities since 2010, but recent efforts to split off “computational humanities research” feel like a manifestation of the "frustration and possible disengagement” she warned about. It’s much easier start a new community that builds tools for people who share your background and expertise — you can be confident the tools will work for them, because they work for you.</p> <p>While no one likes to hear their tools “don’t work”, or the output “doesn’t make sense”, the challenges posed by different kinds of texts and data provide valuable opportunities to question the assumptions that underpin both our theories and our methods. And we’re never going to get there if you have to be comfortable submitting papers in LaTeX to join the conversation. Narrowing the pool of people who can engage with DH tools means the tools will “work” more often, but it achieves “success” by changing the goal. Why are we doing all this anyways? I’m in it to better understand human society and culture — in all its complex, diverse manifestations. If you never hear that your tool “doesn’t work”, either you’re some kind of unprecedented genius who has managed to account for all the linguistic, structural, and historical variation we find in the human record… or the tool isn’t being pushed to its breaking point.</p> <p>Feedback that your tool “doesn’t work” is a gift. It may be a gift where there’s some assembly required — figuring out exactly what went wrong, and how, and why can be frustrating. But it’s worth receiving the gift in a spirit of generosity — after all, anyone who says it is taking a risk themselves in admitting that something went wrong. Understanding the ways your tool doesn’t work for people who bring a certain set of assumptions, or a particular kind of data, is a way to enrich both the tool and your own understanding of the world’s complexity. The answer to “it doesn’t work” shouldn’t be “you’re doing it wrong”, but “tell me more”.</p> Rolling the Dice on Project Management 2020-06-06T00:00:00Z http://www.quinndombrowski.com/blog/2020/06/06/rolling-dice-project-management/ <p><em>The following is a transcript of a video I put together for the <a href="https://dhsi.org/dhsi-2020/dhsi-2020-project-management/">DHSI 2020 project management workshop</a>. I usually prefer text to video, myself, but this is a video worth experiencing, and one of my favorite things that I've been able to make since the start of the pandemic.</em></p> <p><iframe allow="autoplay; fullscreen" allowfullscreen="" frameborder="0" height="360" src="https://player.vimeo.com/video/426443067" width="640"></iframe></p> <p>Hi, I’m Quinn Dombrowski, Academic Technology Specialist in the Division of Literatures, Cultures, and Languages and the Library at Stanford University. </p> <p>Also, recently, an early child education and kindergarten teacher for three kids 6-and-under. </p> <p><TODDLER> It's not FAIR!</TODDLER></p> <p>And I’m excited to share a course I taught this last winter, DLCL 205: Project Management and Ethical Collaboration for Humanists. Or, more succinctly, Rolling the Dice on Project Management.</p> <p>Good project management is a key factor in the success of digital humanities projects, beyond a certain scale. (And that scale may sometimes be as small as “involving more than one person.”) What’s more, project management skills are highly sought after, from alt-ac jobs to a wide range of non-profit and industry contexts. The increasing recognition of the value of project management — both within and beyond DH — has led to the development of numerous courses and workshops designed to teach the tools and methods of project management. </p> <p>There’s resources for faculty and staff who are in the process of developing and applying for grants, there’s workshops for graduate students who often unofficially play project manager roles on DH projects, and there’s courses that anyone can take — some connected to formal, broadly-recognized certifications, like ScrumMaster.</p> <p>These are wonderful developments, and much needed! But there’s one critical shortcoming to all these approaches: as everyone who’s done project management knows, at its heart, project management is a practice. </p> <p>Learning about methods and processes and templates and documents is a way to start, but you’re never going to get good at it without doing it. So where do you get the experience doing it? Where can you make the mistakes that are inevitably part of the process without projects — or more importantly, people — suffering as a consequence of your learning?</p> <p>Well, how do we handle other things that aren’t safe to do “in real life”?<br /> [VIDEO GAME CLIPS — SIMULATION]<br /> We have simulations! And not just simulations of technical things, like flying planes or doing surgery. <br /> [ROLL A D6]</p> <p> In some sense, I’d argue that games like “Dungeons and Dragons” and other tabletop RPGs — while their premises may involve imaginary creatures and powers — provide, in a lot of ways, simulations of real social situations. Personal glory or teamwork? Getting what you always dreamed of, whatever the cost, or recognizing the value in what you have? You have to make choices. Those choices have real consequences in the game. But no one actually gets killed.</p> <p> So this class was an experiment. For the first half of each 90-minute session, we discussed a set of readings. And then for the second half, we played the DH Role Playing Game (or DH RPG) were transported through the power of imagination and dice into a parallel universe where the students each played a character, who was involved in an imaginary DH project in some way.</p> <p> I spent a lot of time trying to model the universe of higher ed from a DH perspective for this course. What I ended up with was an extensive “skill guide” that drove the creation of the character sheets. All skills fell into one of five categories: <br /> * Disciplinary: knowledge of an academic subject area; includes writing skills and human language knowledge<br /> * Technical: ability to use technology; includes everything from formatting text in Microsoft Word, to programming language knowledge, to using a high-performance computing cluster<br /> * Interpersonal*: skills related to understanding and communicating with others; includes charisma, negotiating, and uncovering deception<br /> * Management*: skills related to organizing people and tasks and staying on top of responsibilities; includes drafting grant documents (reports, etc.) and navigating bureaucracy<br /> * Personal: everything else in your character’s life that doesn’t fit into the other categories; includes sleep, relationships, parenting, hobbies, etc.</p> <p>Each character type had a different number of “points” that they could assign to those general skill areas, or to specific sub-skills, like being able to read Russian or write Python or tell when administrators are lying. In general, characters with more experience (mid-career librarians and faculty) had more points available, which allowed them to have more advanced skills.</p> <p>Students rolled the dice to determine the order in which they’d choose which character to play. Ultimately, our characters included one PI (an assistant prof writing her tenure book), one grad student (her advisee), two undergrads (who take classes with the PI and grad student), a postdoc, a full-time librarian, and a part-time librarian. The students themselves were also a mix: the three registered students were a 2nd year PhD student, an MA student, and an undergrad, and they were joined by two late-stage grad students, a postdoc, and a real-life librarian.</p> <p>Playing an RPG is like telling a story together. Each character has their own individual goals for the year (like getting good grades and a summer internship, or finishing a dissertation chapter), in addition to the collective goal of finishing the project. I was the DM — the DH Master — who comes up with the scenario, which centered on an imaginary project involving digitizing a radical Russian feminist lesbian literary magazine, and analyzing the content. </p> <p>The imaginary project had everyone’s favorite thorny real-life components: digitization, OCR for a non-Latin alphabet, lots of files to keep track of, website creation and hosting, plus text analysis in a language other than English!</p> <p>In every class session, we “lived” through a month of game time — starting in June, and working our way through the following May. Each character got 20 activity points that they could choose to allocate to any activity they wanted — from working on their dissertation to binge-watching Netflix. For some activities, like writing, or doing OCR, or teaching, there isn’t a direct mapping between how much time you spend on it, and how good your result is. That’s where rolling the dice comes in.</p> <p>Let’s say you’re teaching an introductory language class, and you’re a grad student who’s new to teaching and wants to do a good job. Maybe you end up spending 5 activity points each month — 25% of ALL your activity points for the whole month — on prep, teaching, and grading. The students have a great experience and learn a lot, right? Not necessarily! There’s definitely room for pedagogy folks to critique this, but the way I ended up modeling teaching for the game was that teaching involved two rolls: one for charisma (or the base interpersonal skill), and one for organization (or the base management skill). You can be totally disorganized, forget to grade homework, and generally not have your act together and the students may still feel great about the class if you roll really high on charisma. Or you can be very organized and responsive, even if you don’t roll too well on charisma. And sometimes characters balance both of those. But a bad roll has an impact on your students — for instance, it might make them less interested in working on the project, so they choose to spend their activity points in a way that doesn’t help get the project done.</p> <p>But what about randomness? You know — those things that just … happen. Your computer hard-crashes and loses the 50 tabs you had open for your research. You get a call that your kid’s being sent home sick, and there goes the rest of the day. Or maybe you get an influx of new transcription volunteers when someone famous tweets about your project. Every time you roll the dice, at least one of the dice is a “randomness die”. If you roll a 1 — surprise! You get to roll a 20-sided die to see how good or bad the surprise is.</p> <p>So you may be thinking, “This sounds interesting, but where’s the project management?” To tell the truth, the plan was to run the game twice, taking an opportunity to reflect on what went well and what didn’t (probably project management), and then making different choices the second time around. The problem was, we had twice as many players as I expected, and the real-world time required to get through game-time scales linearly with the number of players. And it didn’t feel right to force a game reboot in the middle of the quarter, when we had only made it through December, and weren’t even done with all the OCR.</p> <p>But, you know, even though it didn’t work out to have an explicit moment of reckoning that led to the explicit assignment of a project management role and a set of formal processes, I think the DH RPG worked as a way to get at two things that are essential to project management, but get almost no attention in most curricula: empathy and imagination.</p> <p>Every budget is an act of imagination. Same with every grant proposal. And fundamentally, the biggest challenges you’ll face in project management rarely have to do with things or technology, but with people. It’s easy to get frustrated with people who don’t follow through with their tasks and milestones, but playing the DHRPG makes it easier to understand how people choose to allocate their time, and why. It can also serve as a space for understanding why people work on projects, and what that project work means for them personally and professionally. Those experiences, even with imaginary characters, can translate to the real world.</p> <p>I last saw my students in person on March 5th. We took it to a vote whether or not to include coronavirus in our imaginary world — yeses won, barely, and I’m glad they did. The last two class sessions — including the final dice-roll for tenure — happened virtually. The librarian character had to roll the dice to see if her non-citizen husband would make it back from France before the restrictions were enforced — her roll was okay, but not great, so her husband made it in but was quarantined for two weeks on the opposite side of the country, cutting her productivity to near-zero while she solo-wrangled her small children. </p> <p><KIDS> Party! Party! Party!</KIDS></p> <p>And here we are. This course meant a lot to me, and — I learned later — to many of my students. I’ll probably be teaching it again — dare I hope, in person even? — in fall 2021. If you want to incorporate your own take on the DHRPG into your course or workshop before then, let’s talk! All the materials are posted on GitHub at <a href="https://github.com/quinnanya/dlcl205.">https://github.com/quinnanya/dlcl205. </a></p> Remarks for 'DH Methods and Tools Gone Wrong: Discoveries, Failures & Advice for the Future' 2020-05-28T00:00:00Z http://www.quinndombrowski.com/blog/2020/05/28/remarks-dh-methods-and-tools-gone-wrong-discoveries-failures-advice-future/ <p><em>These were my 3-minute comments for a small-group discussion at the <a href="https://www.dariah.eu/2020/05/14/dariah-virtual-exchange-session-what-is-coming-next/">DARIAH VX</a> Breakout session 4: DH Methods and Tools Gone Wrong: Discoveries, Failures & Advice for the Future on May 28, 2020.</em></p> <p>For the last year or so, Alex Wermer-Colan and I have been working on the start of a book abut failure and digital humanities. The most interesting thing we’ve found so far may be some people’s resistance to the idea of “failure”. We’ve had people ask us to use some other term. We’ve had other people flat-out deny that there’s ever any failure in digital humanities. It’s just an experiment! A prototype! It’s never “failure”.</p> <p>We disagree with a hard-line “failure denialism” stance, but clearly there’s a difference between trying out an algorithm that doesn’t work out, and promising to build a scalable, sustainable technical infrastructure for a field, using significant financial and volunteer resources, and producing nothing substantive. Failure is contextual.</p> <p>I think the framing of this virtual exchange session, “The Scholarly Primitives of Scholarly Meetings” gets at a crucial issue as we grapple with the question of “what do we do now?” — and more importantly, “what do we do next?”</p> <p>It’s been 7 years since I gave the talk about the failure of Project Bamboo — which once tried to create a consortium of DH infrastructures with DARIAH. 7 years. I was pregnant at the time, and that kid is now an older brother twice over, and an expert fisherman in Animal Crossing on the Nintendo Switch.</p> <p>I’ve heard from a lot of people over the years that that talk, and the resulting paper, were really useful. And I haven’t stopped talking about failure since, with a forthcoming paper on the DiRT directory, and failure and frustration an ongoing theme in my more recent work on Multilingual DH and the Data-Sitters Club. But for all the talk about how we should “have more conversations about failure”, I haven’t seen a lot of people taking up that flag — with the notable exception of Shawn Graham, whose recent book, “<a href="https://thedigitalpress.org/failing-gloriously/">Failing Gloriously</a>” is an absolute must-read.</p> <p>I’m tired of being told I’m “brave” for talking publicly about failure. That doesn’t support anyone in their own struggles, or move the field forward in any way. Instead of telling me I’m brave, tell me why you’re afraid? And here I’m mostly talking to the senior people in the field. The people with stable jobs. Especially, let’s be honest, the senior people who are also white men. Being a student, or precariously employed, is a great reason to be reluctant to talk about failure. So is having an identity — along axes of gender, ethnicity, language, background, or other factors — that’s marginalized in the mainstream.</p> <p>But I think there’s enough of us here on this call who those issues don’t apply to — or don’t entirely apply to — that it’s worth coming out and asking: what’s stopping you from talking about failure with regard to your work? What do you have to lose? What could we all gain?</p> <p>You can start anywhere: talking openly at events like this. Or blog or tweet about it. Write something from a collective perspective — as a project or organization — if you don’t want to hold the weight personally. But please join me in talking about it. It’s the most meaningful step you can take towards undoing the stigma around failure so we all can learn.</p> <p>Thank you.</p> Pandemic, Parenting, Pedagogy 2020-03-27T00:00:00Z http://www.quinndombrowski.com/blog/2020/03/27/pandemic-parenting-pedagogy/ <p>“Turn it OFF!” protested my almost-2-year-old as I sat in the kitchen on Wednesday morning, on a Zoom call with DARIAH folks from across Europe and the US. I plied her with a snack, but ultimately she prevailed when, during the one time I was trying to say something on the call, she sidled up to me and announced, “My poo-poo butt.” I had to depart for a diaper change.</p> <p>The accommodations for virtual kindergarten have, likewise, been met with resistance from the oldest kid. I’m certain his teacher meant well when she focused the second Zoom call for his class on the social-emotional “<a href="https://toolboxproject.com/">toolbox</a>” they work with, particularly the “Quiet/Safe Space” tool. I know I could use a Quiet/Safe Space tool right about now, and props to his classmate who answered that "A Quiet/Safe Space is kind of imaginary.” It feels more imaginary than ever, kid.</p> <p>But that’s not where he’s at right now. By all indication, he’s having the time of his life on what he’s dubbed “Coronavirus Break”. Practicalities being what they are, he gets way more screen time than on regular school days, he gets a lot of say in what we do for the curriculum-of-sorts, and with two younger siblings, and he’s not lacking for company. Especially as the oldest kid, he’s doesn’t have to navigate social scenarios anywhere near the complexity of kindergarten; he can just wrestle his brother to the floor, or gently antagonize his sister.</p> <p>On this recent kindergarten call, when he looked So Very Done with this Educational Experience, I introduced him to the dark art of multitasking on boring Zoom calls. Apologetically, I explained that grown-ups do it all the time when they have to be in meetings that they’re getting nothing out of. So he found his own “Quiet/Safe Space”, away from all the talking about quiet/safe spaces, with the math workbook we got him. He was learning how to read charts and graphs. I gave him a big hug and told him that charts and graphs are really important for understanding things in the world, and it’s something a lot of grown-ups struggle with. </p> <p>Good parenting? Bad parenting? One way or another, it felt like the right answer for this kid, at this moment.</p> <p>There are other situations that are part of our lives now where my default parental approach doesn’t work. Before the shelter-in-place order, I didn’t think twice about going out around town with all three kids. They know the non-negotiable rules (e.g. stopping at the end of sidewalks so we can cross the street together), and yes, it does sometimes give other people heart attacks to see two kids barreling down the sidewalk, not slowing at all as they approach the street, until they come to a screeching halt right at the edge. But let strangers yell at me about it if they want — it’s not hurting anything. Except now there are rules for being in public. Maintain six feet of distance from others. Plus all the things the shelter-in-place order doesn’t bother to spell out, like “don’t lick things”, “don’t climb things”, “use your elbow, not your hand, to press the pedestrian crossing button”, “don’t roll around on the sidewalk”. The things that before I would discourage but usually not yell about — the foibles of energetic children — are perceived, not incorrectly, as a health hazard. So coaching quickly ramps up to yelling, then snapping. Hands grabbed and pulled along; the only way I can hold up my end of the social distancing bargain with strangers is to make sure that the kids stay close to me. I loathe being that way with them — to the point where I don’t take them for walks anymore. It doesn’t feel worth the trade-off. I’ve never been so grateful for the tiny patio where at least they can run amok without me yelling at them.</p> <p>We got an email today that the school district is officially launching “distance learning” on April 6th. There’ll be three 35-minute sessions on Zoom for kids every week, plus work packets with a suggested daily schedule. There will be “attendance” taken based on how much the children engage with the material. If school district funding weren’t tied to attendance, I’d opt my kid out of it all. It might be a nice break for parents with one kid, or where the kindergartener is the youngest, but it’s weird and disruptive for the preschooler and toddler to have the leader of their pack sequestered away with a computer — and for him, bored on Zoom, while I try to keep the others entertained in the next room. Meanwhile, in the local whirlwind of semi-structured chaos that passes for home-based education around here, he’s been learning lots of math, some cooking, and some Korean, and “Animal Crossing: New Horizons” has been the perfect stretch reading level for him. The things that have been most valuable about being in real school — navigating social situations, spending time with people outside his family, the after-school activities, having a separate space and life of his own — aren’t meaningfully available anyways until things are different.</p> <p>We’ll muddle through, for however long we have to. If the younger kids are able to resume daycare at some point, it will radically change the dynamic, too — maybe the kindergartener and I can sit together and work on things, alternating who’s on a Zoom call, with the person not on the call making silly faces at the other. It’s hard to imagine right now, the idea of not feeling permanently jet-lagged in relation to my colleagues, with my “day” not starting until 1. It’s like living in my own time zone, maybe some subset of the Twilight Zone, where Muzzy the multilingual space alien has eaten all the clocks, which stretches days and weeks into taffy, leaving everything sticky. When I’m no longer holding virtual teaching office hours every afternoon, I expect the recovery of those two hours will feel like the greatest gift of time I’ve ever received. Dare I dream that they won’t all be rerouted to Zoom calls?</p> Working conditions 2020-03-21T00:00:00Z http://www.quinndombrowski.com/blog/2020/03/21/working-conditions/ <p>I’m writing this on a Saturday. I mention this not out of academic work-ethic virtue-signaling, but because it’s connected to the a sense of time unraveling, even over the course of a single week under the shelter-in-place mandate in the Bay Area. What does “weekend” mean, when you’re in the same house you’ve been in every other day, with equally few options for going anywhere else? Today, “weekend” has meant giving up on the attempts at structured activities that make up the “school” I’m now running for three kids 6-and-under. iPads, Nintendo Switch, Netflix, go nuts! But it’s still wrangling small kids, and even normal weekends would leave me aching for that moment on Monday morning when I could put on headphones and slip away into a book while waiting for my BART train on the way to work. Those weekend sprints are now a marathon of indefinite length.</p> <p>My husband worked well more than a full-time job from home even before all this happened, and his workload hasn’t let up at all. (If anyone’s looking for an academic production data point from elsewhere in the world, at least some Korean doctors appear to be writing as many papers as ever.) We’ve arranged things so I can spend 1-5 PM in a little chair by my bedroom window, away from the preschool downstairs, doing whatever needs to be done, whatever I can manage to do in that time. (I’ve been trying to squeeze in some time in the early mornings, too, because by the time the kids go to bed, I’m pretty tired and it’s harder to focus.) It comes at a cost — now he’s up until 3 or 4 every night working, instead of midnight or 1, and it’s a sacrifice I’m grateful for. After a week of experimentation — and discovering, for instance, that only having two hours off leaves me at risk of staring blankly at our pantry full of canned food and crying — this arrangement feels like something I can manage, hopefully for however long it needs to be in place. Which might be a very long time.</p> <p>The previous week, even though the kids were in school, I couldn’t focus. The tension and uncertainty of when the schools (and daycares) would close was leaving me a total wreck. I muddled through, teaching the last two sessions of “Project Management and Ethical Collaboration for Humanists” via Zoom, with a carefully-placed phone camera showing the dice for our DH RPG. But it was hard to get much else done. How can you decide what to prioritize when you don’t know how much time you’ll have — next week, or into the indefinite future? Should I be tackling large projects with fervor, since I might not have an extended period of focused time free for a long while? Or should I just set those aside, and deal with all the immediate crises and emails? The result was a lot of angst, and not much accomplished on any front. I did manage to try out a few different green fabrics from the fabric store, and pick up yardage of my favorites for future ZoomWear, before the fabric store shut down. (They’re <a href="https://www.stonemountainfabric.com/">still open online</a> and have a wonderful selection, if you need supplies for coronavirus crafting.)</p> <p>Work-wise, most of this week was also a lost cause. I managed to figure out a routine for my new home-preschool: variations on recess (on our tiny back patio, sometimes including swordfighting practice), snack, Korean (via Muzzy and assorted YouTube videos), Cosmic Kids Yoga, workbook time for the kindergartener (who is enthusiastically plowing through 1-2nd grade math after declaring the math workbook sent home “way too easy”), maybe another recess, then making lunch — which mostly amounts to “put whatever you want on the Carb of the Day”. But in terms of being able to focus and get work done, it’s been a struggle. What I’m learning is that with such constrained time, I can’t pack my daylight hours full of meetings without feeling mildly panicky. My on-campus time used to be like that — one meeting after another, all day long. But I always knew I’d have time to work on the train back, or on the days I work from home. Now, I know I don’t have other time — at least, not time when I can summon the sustained focus I need to write anything besides <a href="https://datasittersclub.github.io/site/books/">Data-Sitters Club</a> books. And forget about anything technically complex or challenging (looking at you, Python and Jekyll). If it doesn’t happen from 1-5, or maybe from 5-6:30 AM, these more complicated tasks aren’t going to happen at all. Time rationing is essential and unavoidable — and for a compulsive over-committer, this (perhaps long-overdue) realization has been difficult. I can’t find more time and make it work. There isn’t any more time.</p> <p>This started off as my quarterly round-up blog post, but turned into something else, something I had to write first. (It calls to mind a trope from the Captain Underpants series, which I’ve been reading a lot of lately: “… but before we can tell you that story, we have to tell you this story.”) As I sit down to write the thing I meant to write, perhaps after remixing another Baby-Sitters Club book cover or two into an important public health reminder from the Data-Sitters Club, I’ll be thinking about what constrained time means for all the things I was working on in the winter. What function are they serving now, and for whom? What are the labor conditions like for my collaborators? How can I spend the hours that I do have in a way that’s most beneficial for the communities I work with — grad students, faculty, colleagues in the library, others in the field working towards shared goals and infrastructure that supports all of us? Not just getting through this crisis, but taking steps to plan for what comes next, and advocate for a future that’s less grim than what we had a month ago. And what do I have to let go of — put on hold, or just give up — to make that happen?</p> The Stakes of Multilingual DH in the United States 2020-03-13T00:00:00Z http://www.quinndombrowski.com/blog/2020/03/13/stakes-multilingual-dh-united-states/ <p>As I write this, universities worldwide are shutting down in-person classes (or instruction altogether) and urging undergraduate students to leave. For the moment, libraries are typically remaining open, and instructional support and IT staff are working non-stop to support teaching arrangements that are getting implemented on a day’s notice. Next week, public schools throughout the region will be closed, and with them, preschools and daycares. We’ve long spoken of the “crisis” in the humanities and higher education more broadly, but it’s never carried the immediacy of the present moment.</p> <p>The urgency of so many decisions with large consequences -- from conference cancellations that might push organizations into insolvency, to who will continue to be paid if classes and campus life come to an abrupt end -- makes this a strange moment to pause and reflect on a cause such as Multilingual DH. Addressing linguistic representation in an always-porous and nebulously-defined interdisciplinary community hardly seems worth thinking about. But we now live in a world where universities feel forced to take drastic measures, and it seems naive to think that the current circumstances are best modeled as an aberration, from which we’ll soon get back to normal. We may be done with “normal” as we thought of it a month ago.</p> <p>There is no reason to expect that the circumstances underpinning the advocacy for Multilingual DH will radically change for the better in whatever configuration of things we end up with on the other side of the current crisis. On the contrary, if there is an expectation that instructors -- including adjuncts -- must be able to respond to radically altered pedagogical circumstances with minimal notice and no extra time or pay to reconfigure their courses, there is even less incentive to take on the extra work necessary to make the DH classroom more welcoming, supportive, and useful for students who work in languages other than English. There is almost never a moment where instructors make a deliberate choice to exclude these students: most Anglophone scholars in the Anglophone world just don’t realize how badly text-based DH methods can break for non-English text. (And, let’s face it, a majority of DH methods intersect with text somehow, be it image metadata or geocoding.) Outside the Anglophone world, while scholars are generally more aware of the linguistic issues at play, resource constraints are again an impediment to doing anything to address those issues, at least for languages other than the national one(s) and English.</p> <p>Since 2019, and building on work throughout the last decade (e.g. the GO::DH “whisper campaign” led by Élika Otega at DH 2014), a loose network has formed under the umbrella of “Multilingual DH”, to advocate for the DH community to pay greater attention to language as a crucial consideration in pedagogy and research. There are other pieces that I and others have written with practical tips for how to better support work in languages other than English, particularly in the classroom. Those pieces are important, practical, and insufficient: putting them to use takes time and labor, and most DH instructors don’t have much of either to spare. At the same time, good intentions don’t change anything for students. What’s missing from the conversation is a case for why this matters enough to be worth the effort. What are the stakes for non-English (or non-national-language) DH students? My own experience limits me to making this case within the US academic system, and I’ll leave it to others to do the same in their own national institutional contexts. I could find numbers to serve as scaffolding for these stories -- numbers of grad students, placement rates in TT positions, language lecturer openings -- but I don’t believe that numbers are what’s lacking. Most instructors would not be moved to radically change their pedagogical routine by statistics. It’s comfortable to write off the stories I’m about to share as “frustration with the job market”, the less-cataclysmic cousin of the well-established “quit lit” genre. DH, like <a href="https://en.wikipedia.org/wiki/Moscow_Does_Not_Believe_in_Tears">Moscow</a>, does not believe in tears. But I’m posting these stories as a follow-up to conversations at the Scholars’ Lab 2020 Feminist DH Symposium, and the ongoing work of DH-WoGeM. I believe they have value, more so than employment statistics, and may help bridge the gap between good intentions and taking action for Multilingual DH.</p> <p>But first, some background context on the job market for non-English literatures, and the backup plan that lurks as the default fallback.</p> <p>The horrors of the academic-literary job market send ripples through academic Twitter every year when the MLA job list comes out, augmented by cross-referencing the Academic Job Wiki. But the steeply-declining lines on the visualizations that quickly emerge from this data are coded in the terminology of the MLA. Wring your hands as you look at the state of “modernist” jobs! Feel your stomach sink at the state of “19th century”! Consider what your prospects might be like if you had, instead, chosen to focus on ethnic studies, the <a href="https://twitter.com/quadrismegistus/status/1183433276658274304">only thing to show gains recently</a>. Meanwhile, those of us working with non-English literature in the US sit back and watch, bemused. No one is making visualizations of our jobs; we know how many tenure track literature jobs were open this year <em>in our language</em>, and we may be able to count them on one hand. We certainly can if we feel we can be so choosy as to limit the options to a combination of <em>language</em> and <em>time period</em>. </p> <p>The only data voluminous enough to chart might be language lecturer positions -- and there, it depends on your language. Perhaps, though, not for long? A <a href="https://www.chronicle.com/article/Colleges-Lose-a-Stunning-/245526">2019 <em>Chronicle of Higher Education</em> article</a> did look at those numbers, and they call into question the viability of language teaching as a go-to fallback plan for non-English literature grad students: “Higher education, in aggregate, lost just one such program from 2009 to 2013. From 2013 to 2016, it lost 651.” </p> <p>It’s hard to convey to someone who’s only worked on English what it looks like to take on a language lecturer position. It is tempting to draw a parallel with teaching freshman reading and composition classes, for the shared predictable tedium. But reading and composition courses are primarily filled with native or fluent speakers, capable of communicating -- if awkwardly -- adult-level thoughts and ideas. Imagine running a composition course with adults who have the communicative capacity of a 2- or 3-year-old. If 18-year-olds’ opinions on Socrates or Ayn Rand are tiring year after year, consider how much more tiring it would be to instead be limited to discussions of weekend plans or favorite foods. And yet, language teaching remains a fallback sanctuary for non-English literature scholars unable to find tenure track jobs in literature. In these roles, the “lucky” ones can teach a “content course” from time to time, involving literary texts longer than language-student-friendly short stories, and maybe even in something you’re interested in -- albeit probably in translation. For the unlucky ones, the closest they get to literature is directing a strange sort of theater consisting of stilted dialogue read by the student-actors from a textbook as they stumble over pronunciation and cadence. Imagine writing a dissertation on Virginia Woolf, then spending your life teaching Beginner and Intermediate Dutch.</p> <p>Why do it, especially when many language lecturer positions are contingent, with no promise of long-term employment nor even a guarantee about the number of courses available to teach? Language lecturing is, in a sense, the original alt-ac career track: for some people it’s a comfortable long-term fit if they can string pieces together for long enough, and for others it’s a soul-killing reminder of what you don’t have. And what there is even to have continues to shrink: non-English literatures are on the <em>cutting edge</em> of the changing priorities of universities. Meanwhile, fairytales run rampant. Many non-English literature scholars even know someone firsthand who has lived the dream. And departments will freely proffer these stories in lieu of currency (or health insurance). We have a <em>language lecturer position open now</em>… with the heavy implication that taking on this underpaid, overworked role is your opportunity to prove yourself worthy in anticipation of the near-future retirement of elderly Prof. X in that department, who works in your language and perhaps even your speciality. They don’t even have to say it: they know what applicants will read into the situation. </p> <p>And it’s true that sometimes it does work out. The language lecturer pours their love and labor into the job, going to every departmental event, finding time to publish by working late nights and weekends once the grading is done. They manage to be compelling and beloved by students all across the board: the students who want to be able to talk to their grandmother, the ones that signed up because it sounded cool or they were into the music, film, or literature produced in that language, the native-speaker athletes guaranteed to get good-enough grades to stay on the team. Prof. X retires, the lecturer goes through the motions of the interview process -- awkwardly performing that ritual with their own colleagues, as if they were a stranger. And then the lecturer is hired into a tenure-track position and lives happily ever after.</p> <p>Or do they?</p> <p>The intersection of promotion and tenure with DH is fraught territory in any field. Still, for the MLA, there’s been 20 years of work dedicated to <a href="https://www.mla.org/About-Us/Governance/Committees/Committee-Listings/Professional-Issues/Committee-on-Information-Technology/Guidelines-for-Evaluating-Work-in-Digital-Humanities-and-Digital-Media">evaluation guidelines for digital scholarship</a>: the first version was adopted in 2000. Over the last decade, more disciplinary societies have developed guidelines, to the point where this kind of advocacy work is neither surprising nor remarkable. While MLA may see itself as a kind of parent organization for all literatures, English and otherwise, the fact remains that many non-English language departments look to other organizations for guidance: the organizations centered on the language or region in question. Area studies organizations are far less likely to have stepped up to endorse and advocate the MLA guidelines, let alone develop anything that takes into account the peculiarities of the field.</p> <p>A good friend from college was fortunate enough to get a tenure-track job in a non-English literature at a university. Their child was a toddler when they moved for this job. Their kid has grown up in a supportive community there. Over the summer, this friend and I talked about the sorry state of DH and tenure in their field. It was that kind of summer -- at DH 2019, I also spoke on a panel about how more cross-Atlantic connections will be essential for developing a pool of reviewers who might make it possible for Slavists doing DH to get tenure. But it all ended the same way: my friend and I decided we would keep thinking and talking about what DH would mean for their tenure case. Meanwhile, the Slavists and I ran a workshop in September, and a few panels and a workshop at the national convention in November. We sighed about the “<a href="https://www.aseees.org/future">Future of the Field Campaign</a>” where the word “digital” is conspicuously absent. But in neither case did we <em>do anything</em>.</p> <p>Three weeks ago, I found out my friend didn’t get tenure. The explanation seems more closely linked to administrative mishandling, opacity, and fundamentally broken processes than anything connected directly to DH. But the fact remains that DH was a key part of what they brought to the institution, and that aspect of their scholarship and service contribution was not meaningfully evaluated or treated as relevant.</p> <p>For three weeks now, I haven’t gotten through the night without a bad bout of insomnia.</p> <p>The night after I found out, I lay in bed crying at 4 AM. What happens now for this friend? Will they even be able to find another job? How do they explain to their kid what will happen to the only life this kid has known? And why do we keep feeding people’s lives to this system that works only on its own narrow logic, and casually discards anyone who doesn’t fit?</p> <p>The image that came to mind, that morning, was of a frozen mountain pass. How many frozen corpses lie beneath the snow -- people who tried to make it across, but just vanished quietly? How do we make it stop? Over the summer, one of the things I struggled with was that it’s harder to make a case for change on hypotheticals. “You have to put digital scholarship evaluation in place… <em>just in case someone needs them</em>.” We don’t know the names of the people who didn’t make it over the pass, or where they’re buried. But what if this time, people raised a ruckus? What if we made an example out of my friend, and said <em>THIS PERSON HERE</em> is the reason we need this, and have needed this for a long time, and we’ll call you to account for not doing what more and more others have done to make it possible for their junior scholars to make it over the mountain pass? If we lit a flare, would others in need find us? Maybe, then, this loss wouldn’t be for nothing. Even if they can’t secure another job, maybe they could be the cause of change. I think of the Donner party, which resorted to cannibalism when crossing the Sierra Nevada mountains -- gruesome, but some people did make it through by making the most of the deaths of others.</p> <p>The system as it stands is no less gruesome. We have to stop eating our friends.</p> <p>Keep in mind, the decision about whether to become an object of cannibalism or disappear quietly into the snow is an outcome of the best-case scenario. You can win the lottery, and still have very high odds of losing everything trying to get tenure as a non-English DH person.</p> <p>But what happens if you don’t win the lottery?</p> <p>Last winter, I taught a non-English DH course. It was exhilarating and exhausting: the only prerequisite was a reading knowledge of a language other than English, and students brought with them seven: Chinese, German, Italian, Japanese, Portuguese, Russian, Spanish. The class was very hands-on, which meant preparing up to seven different data sets and tutorials for each class session. (All the materials are <a href="https://github.com/quinnanya/dlcl204">up on GitHub</a>, and formed the beginning of the Multilingual DH resource guide.) </p> <p>I was completely wiped out at the end of 10 weeks, but inspired by my students and the experience. There had been some rough spots, some things to revise next time, but I felt I had managed to prove that a functionally “intro to DH” type course that centers linguistic diversity was actually possible, and I had begun to pave a path for the next person to try it, even if that next person would be me.</p> <p>But the day the quarter ended, a dear friend who had been working as a visiting language lecturer, with the understanding that a tenure-track position in their specialty would come open in the same department, learned they did not get the tenure-track job. It’s a situation so common as to render the details unimportant. They had poured everything into the department, done everything right, proven themselves as a reliable and innovative colleague, and it wasn’t enough… in contrast to an ABD described, simply, as “brilliant”.</p> <p>I went with my husband—a joint PhD in Linguistics and Slavic Languages & Literatures who left academia after not getting the last tenure-track job ever open in his specialty in the US—to take our friend out for drinks. We got home and I fell apart, sobbing in the kitchen, unable to exorcise from my mind ghosts of possible futures, imagining each one of my students with the same stricken expression as I’d seen on our friend’s face. “I don’t know how I can keep doing this!” I said of my job, a DH alt-ac dream job, gulping the words through tears. “How can I be part of this system, when this is how it ends?” “Better you than someone who <em>doesn’t</em> think about it,” replied my husband.</p> <p>We <em>all</em> need to think about these things. You can oppose the neoliberal framing of digital humanities, and still acknowledge that DH can provide students with a skill set that they can use to pay the rent, as an alternative to adjuncting or language lecturing. You can face precarious employment yourself, and still teach students skills that they can use to pursue a different path. You can advocate for more tenure lines, and recognize that the students in your classroom today may not be the beneficiaries if you succeed. Non-English DH means resilience, and that resilience, in most cases, will have to manifest itself in alt-ac jobs or outside the academy altogether. The effort you put into helping your students persevere through the challenges of applying DH methods to non-English languages may have a bigger impact than you realize in helping them figure out their next step, and making ends meet until they get there.</p> Sorry for all the Drupal: Reflections on the 3rd anniversary of 'Drupal for Humanists' 2019-11-08T00:00:00Z http://www.quinndombrowski.com/blog/2019/11/08/sorry-all-drupal-reflections-3rd-anniversary-drupal-humanists/ <p>When I finished writing Drupal for Humanists on July 15, 2015, my Magic-the-Gathering-playing, arithmetic-doing kindergartener was a barely-verbal toddler. The night I finished the manuscript was memorable in more ways than one: I was four months pregnant with my second kid, and it was the first time I felt him kick. When I sent in that manuscript, Donald Trump had announced his presidential campaign just a month earlier, but I paid it no mind as anything but a sideshow, because we all knew there was no way he’d win.</p> <p>I had no way of knowing that the resulting book would be given a release date of November 8, 2016. By that point, my vague source of nausea while writing Drupal for Humanists had turned into a roly-poly nearly-1-year-old, dressed in a Hillary onesie sent by his great-aunt in Texas. (We waited until late in the election for him to wear it; Berkeley never really got over Bernie.) We believed things were going to be all right with the election, but I joke when I’m nervous. For the months leading up to November 4th, the Day When This Would All Be Over, I’d roll my eyes when I told people the release day of my book, and would quip, “At least one good thing will happen that day!”, fully expecting it wouldn’t come to that.</p> <p>You know the rest of the story: my book coming out was, indeed, the only good thing that happened on November 8, 2016. And no one, myself included, cared.</p> <p>It was an inauspicious start for “Drupal for Humanists". All the things I’d imagined doing to promote the book vanished from my to-do list, replaced by an urgent need to try to wrap my head around what it all meant for us, for our friends and neighbors. I took my oldest kid, in his froggy jacket and rain boots, to an Inauguration Day protest in San Francisco. He rocked a fire truck skirt as he carried a “Refuse Fascism” sign as tall as he was to a rally against the Muslim Ban. On every level, from the climate to the direct threats to one of our favorite preschool teachers, a Dreamer, it felt like the world was starting to unravel.</p> <p>Drupal wasn’t exempt from the zeitgeist. Drupal 8 was released on November 19, 2015 — a year before Drupal for Humanists came out, but after I’d submitted the full manuscript. Chapter 2 includes an extended analogy involving Catalan and Latin, to explain the fracture it caused within the Drupal developer community. I wasn’t concerned; it had taken a year for module support to catch up (for existing, widely-used modules — let alone new developments) when Drupal 7 originally came out, and I expected it would take longer for Drupal 8. That same section included a reference to Backdrop, a fork of Drupal 7 that had been announced in January 2015. At the time, I wasn’t impressed: Drupal modules had to be rewritten to remove the database abstraction layer in order to work in Backdrop, and I couldn’t see the payoff compared to sticking with Drupal 7 and seeing how things played out. By the time everything else in the world felt like it was going to pieces, it was clear to me that — for digital humanities projects — Drupal 8 had taken a wrong turn. Drupal 8 made it harder, not easier, for the kinds of users I’d written the book for. I wanted website-Legos that anyone with an idea for a DH project could assemble into something very functional and reasonably nice-looking, without writing a line of code. Instead, Drupal 8 was built for Enterprise, where IT teams of developers and sysops folks are paid lots of money to deal with technical processes. As an organization, Drupal was courting developers who were familiar with the enterprise PHP web application framework Symfony, not historians who learned a little PHP while hacking WordPress on the side.</p> <p>So that was awkward.</p> <p><img alt="The future sucks" data-file-id="52" height="600" src="http://www.quinndombrowski.com/assets/images/49034645933_f3d38dd71f_c.jpg" style="float:right;" width="800" />I co-taught Drupal at DHSI the summer after the book came out, and my co-instructor, Erica Cavanaugh, taught it the following summer, after my job at UC Berkeley imploded and I was no longer funded to do DH. The Drupal website grew increasingly pushy about Drupal 8, selling a narrative that we knew wouldn’t line up with any of our students’ experience with using it. But I can’t help but wonder about what we sounded like to the students, assuring them that everything was fine, Drupal 7 was still perfectly usable, and in fact the better option, don’t worry about starting a project in Drupal 7, all things will be clear by the time Drupal 9 rolls around and all the existing D7 projects have to commit to a direction for the inevitable migration. It was a statement of faith, hope, and incredulity that something as useful as Drupal 7 would just cease to exist.</p> <p>Time passed, and it became increasingly evident that Drupal, as presented in the book, was a tool for a time and place that I had imagined in 2015, but had not come to pass. Maybe somewhere there’s a parallel universe where large-scale communities  in the US and beyond have prioritized investment in pragmatic forms of infrastructure that provide technical scaffolding to support digital scholarship, without the building and maintenance burden falling to the scholar. In this one, though, we face more pressing, immediate problems.</p> <p>Historically, I have not been a fan of the minimal computing approach to web development. A tool like Drupal allows scholars with a much lower level of comfort with technology to build much more complex projects. It is true that the technical skills that go into the workflow for a GitHub pages Jekyll site (Command-line installs! Markdown! Github! YAML!)  are applicable in other contexts. But it is also true that the majority of the scholars I’ve worked with over the course of 15 years of doing DH would see learning all that as a very, very lsteep hill — particularly in light of what you actually get at the end. (In 2016, let alone 2019, where there’s a big search box in every application and website, explaining that search with Lunr.js is a non-trivial thing to set up isn’t going to win you any friends.) Let’s be real: it can be a stretch to ask faculty (especially older faculty) to rethink their materials in a Google Doc to facilitate bulk data import, but it’s easier to draw a straight line to how that benefits their project. Getting them to debug the syntax of a YAML file, or learn Markdown for text formatting (instead of just using a familiar WYSIWYG editor) is often too much. Either they’d conclude that the digital humanities was too hard and not worth it, or if they persevered, it would be me — not them — having to handle absolutely every technical thing along the way: the exact opposite of the DIY vision I had for Drupal. (We really wanted to present <a href="https://minicomp.github.io/wax/">Wax</a> as an option for image-centric DH projects at this fall’s <a href="https://slavic-dh.princeton.edu/">Slavic DH</a> workshop at Princeton, but when we looked at the amount of workshop time we had, and how far that would get students vs. what we could do with Omeka, Omeka won hands-down.)</p> <p>I continue to struggle with making Jekyll work — even as a person who’s generally succeeded in doing “technical” things for some 25 years. I’m still skeptical of how widely it can be adopted, particularly by people who don’t have ongoing access to technical support. But I think the biggest change in my thinking over the last seven years (when I first had the idea of writing Drupal for Humanists) has been how much value I place on sustainability, and the inevitability of endings. </p> <p>When I started Drupal for Humanists, I envisioned a future where things kept getting easier. I imagined a Drupal 8 that included self-updates of the core and module code. Low-cost access to high-quality, responsive hosting services. When researchers felt their project was “finished”, it would be trivial to indefinitely maintain what they had built. And when the underlying technical components were all outdated, emulation would save the day! Those were some very wrong prognostications. (Except for the web hosting part — thanks, <a href="https://reclaimhosting.com/">Reclaim Hosting</a>, for continuing to be wonderful in the face of a general slide towards dystopia!)</p> <p>The minimal computing advocates were right: database-driven websites with dynamic code are inherently fragile, vulnerable things. They’re easy to hack. While high-profile sites with controversial content actively draw the attention of hackers, sometimes sites get hacked for no reason beyond free access to server resources. In Drupal for Humanists, I talked about all the highly configurable, dynamic features that were so easy to implement with Drupal, but never talked about what you lose. It’s nice that Drupal has a very granular set of permissions that can be associated with any arbitrary number of “roles” that can be assigned to accounts — but what vulnerabilities do you open yourself up to by allowing people to log into the site to begin with? Making it easy for people to add content to the site is appealing (particularly for directories and the like, where “crowdsourcing” once seemed like a promising model for minimizing labor on the part of the project itself), but so many hacks start with malicious code embedded in such “contributions”. If you’re fastidious about updates, and are careful about limiting unvetted users’ access to the site, and are using the site regularly to keep an eye on things, you can run a Drupal site for some time without problems. But that’s not reality. In reality, things come up: you don’t get around to dealing with a critical security update right away, you get sick, you have a family crisis, the grad student you’re paying to handle updates gets distracted with comps or struggling with their dissertation, or maybe there’s turnover in your local technical support staff and maintenance falls through the cracks for a few weeks or months. And then you may find yourself facing a monstrous clean-up job.</p> <p>When you’re building a Drupal site, it can feel like Legos. But in the medium term and beyond, it’s a misleading analogy. Barring the interference of careless pets or children with their hearts set on destruction, the Legos you assemble stay assembled until you choose to take them apart. Instead, building a Drupal site is like buying a pony. It seems like a fun and exciting undertaking, but you quickly discover that ponies require constant feeding and cleaning-up-after. You don’t ever get a break — you can’t shrug and figure the pony will sort out its own food-and-feces situation while you turn your attention to a new project. If you don’t take care of it, and don’t find (and probably pay) someone else to take care of it, you can try to give it away — but wise technical staff will balk at the offer of having to take on someone else’s Drupal site, particularly if it’s been neglected for some time. Once your project is done, if you’re not realistically going to devote the ongoing resources required for maintaining it indefinitely, it’s time to consider what it will take to “archive” it, shut it down in some orderly manner. In essence, the responsible decision is to euthanize the pony.</p> <p>Almost all the Drupal sites I’ve helped build over the years are now dead. A few of them I archived responsibly. I’ve let more starve to death — sometimes finding someone who’ll make the good-intentioned mistake to promise to take care of the site without really understanding what that entails. And then there was the DiRT tool directory, where I tried to do the responsible thing by feeding it to TAPoR (mmmm, delicious, nutritious pony!). But I couldn’t bring myself to part with DiRT's bones, and they lingered, giving the impression of a functional site even as it had largely decayed, until the organizational owners of the domain name recently let its renewal slip away. It was a mercy.</p> <p>Getting the metaphorical barnyard in order has been a major priority since I started a position doing DH support in the Division of Literatures, Cultures, and Languages at Stanford University, a year ago. Things were in a sorry state when I arrived: my predecessor had built lots of complex Drupal sites, many incorporating custom modules, and he did so in such a way that the scholars were wholly dependent on him for changes and maintenance. Some of the sites were on servers managed by the digital systems group at the library, who provided system-level updates, but left it to my predecessor to do Drupal updates. Others were on externally-hosted servers, racking up bills of the hundreds or thousands of dollars per year, with account-level credentials that the faculty didn’t know. Still others were on free-for-all Stanford-provided webspace, where anyone could run a content management system, provided they dealt with all updates themselves. Two of these sites had been hacked; the one on a library server had been shut down, the one on the commercial hosting persisted in serving malware.</p> <p>One by one, I’ve tried to find an approach that will work for these Drupal sites. I was able to do a web archiving capture and data export for one of the hacked sites. Another, I got working again — but we’ve taken steps towards a more sustainable approach where we’ll use library infrastructure to distribute the project’s materials in a way that will make them more findable and less siloed. The current CMS will evolve into a static-HTML textbook. I rebuilt a third site more simply, stripping out “features” students were obviously confused by, using a Drupal-based platform operated and maintained by Stanford’s Web Services group. Another will probably be migrated to a centrally-maintained university WordPress instance as soon as it launches early next year. See the trend? If I’m going to be in this role for some time, it would take very little time for all my working hours to fill up with managing custom websites, given the faculty expectation that all sites will just continue to work indefinitely. The only way I can ever work on new projects, to support faculty and students’ evolving interests, is by getting websites onto infrastructure where someone else will handle the maintenance. This comes with managing expectations about the trade-offs involved (e.g. especially in terms of limiting highly custom functionality), and making the case for why this is the right approach nonetheless.</p> <p>I’m happy to say that in my first year at Stanford, I have created zero new websites that were not either static, or maintained by Stanford Web Services. (Much love and gratitude to my colleagues in Stanford Web Services. I couldn’t do this job without you all.) I’ve been building community; I’ve been working with scholars to create, clean, and analyze data sets; I taught a course and <a href="https://github.com/quinnanya/dlcl204">published all the materials (including a data set of dresses!)</a> to GitHub. Every project needs a different balance of nimbleness (e.g. adaptability for the next iteration of a course), persistence (e.g. for graduate student collaborators who will be going on the job market in a few years), and publication in forms that can be unambiguously be called done. There aren’t enough of me (and, honestly, I’m not by nature organized enough) to adopt the <a href="https://cdh.princeton.edu/research/project-management/charters/">formalized charters</a> and project management workflows used by Princeton’s Center for Digital Humanities, which include a “living will” for the project from the start, defined points where developers can accommodate technical changes, and defined periods for data entry — rather than having to accommodate changes to structure and/or data at any point, indefinitely. But now I try to go into projects advocating that same mentality: it’s risky to start a project where you can’t articulate what it would look like for the project to be done.</p> <p><iframe allowfullscreen="" class="giphy-embed" frameborder="0" height="270" src="https://giphy.com/embed/fUkadrYG7RLyYgSKjA" width="480"></iframe></p> <p> </p> <p>I’ve realized that Drupal, as depicted in <em>Drupal for Humanists</em>, was the kind of DH recommendation that you might get from the Bad Idea Bears in “Avenue Q”. Look at all the things you can <em>just do</em>! Don’t you want to <em>go do them</em>? You can structure your data <em>however you want</em>! You <em>don’t even need to decide</em> on what questions you’re asking, and <em>why</em> — just <em>put your digital research collection in</em> and then build some queries and <em>insights will leap out</em>! Don’t worry about updates, they’re not that hard to do! <em>Yaaayyyy!! </em>There’s been lots of discussion about using digital humanities methods for supporting an argument, vs. exploring a problem space, and I take no issue with the latter. But in most cases, explorers want to find a way home, share their findings, and seek new horizons. When exploration has no exit strategy, it becomes something else.</p> <p>Sometimes, what people are setting out to do is, in fact, something else — at least for a time. The <a href="https://modernistarchives.com/">Modernist Archives Publishing Project</a> does actually want to run a virtual archive that reunites letters, order books, and other digitized ephemera related to the Hogarth Press. These materials are distributed across numerous physical archives (not all of which support IIIF), and having them in one place is useful for this group of scholars and their colleagues. As they have taken ownership for the site (originally built by my predecessor, who had sole access to admin privileges), they’ve come to understand what it means to be running infrastructure — and they still want to do it, at least for now. They do actually want a pony. But they’re also planning for a future after the pony, accessioning (with permission) the materials they’ve collected and the metadata they’ve generated into the Stanford Digital Repository, where it can persist as a unified “collection” in an infrastructure with the goal of long-term preservation, and funding/staffing to match. Other groups, like the <a href="http://centerfordigitalediting.org/">Center for Digital Editing</a> at the University of Virginia, have developed and run Drupal-based infrastructure for their own projects like the <a href="http://financial.gwpapers.org/">George Washington Financial Papers</a>, and work with projects with similar needs to adopt and adapt the same approach. They’re something like a horse fancier society, breeding and caring for ponies, and helping others do the same. That’s also a reasonable approach!</p> <p>So what is a project like MAPP or a group like the Center for Digital Editing to do when faced with the upcoming cliff of Drupal 7 end-of-life in 2021? In cases where Drupal 7 aligns well with the project’s goals — even when factoring in maintenance costs — <a href="https://backdropcms.org/">Backdrop</a> has evolved into what I hoped for from Drupal 8. They stepped back from their earlier, more complicated requirements for porting a Drupal 7 module to Backdrop. They’ve developed auto-updates for Backdrop core, to decrease the maintenance burden — and what’s more, they’ve incorporated a majority of the most widely-used modules into Backdrop core, so that code can benefit from ongoing automatic updates, too. There’s still a few kinks to be worked out; the developer community for Backdrop is smaller than Drupal, and fewer sites are using it, meaning it can take longer for bugs to be identified and fixed. Backdrop’s primary audience is non-profits and small companies (i.e. groups with technical skills and staffing levels more comparable to digital humanities projects than large corporations), and uptake has been gradual to date. But I have reason to hope that Backdrop will continue to develop into a viable next step from Drupal 7. By taking the plunge and migrating early, MAPP is doing a service to the broader DH community by funding the port of a DH-oriented Drupal 7 module that they need (Partial Date), which will then be available for anyone else to use. With a few exceptions (blocks / panels / page layout being the major one), Backdrop feels like Drupal 7, overhauled to smooth over many of the annoying quirks inherent to Drupal. On and off over the last year, I’ve been going through the text of Drupal for Humanists and updating it to reflect the changes in Backdrop; I’ve posted everything I’ve written so far on the <a href="http://drupal.forhumanists.org/backdrop">Drupal for Humanists</a> website.</p> <p>I was grateful for the lowered lights in the audience, because I think I turned bright red at this point in Johanna Drucker’s closing keynote at DH 2019:</p> <blockquote class="twitter-tweet" data-conversation="none" data-lang="en"><p dir="ltr" lang="en" xml:lang="en">Johanna Drucker: "Quinn, you should cover our ears -- we said 'we'll all learn Drupal', but then library said 'no way, we're giving up on Drupal.' And we said we are too." No worries, Johanna, I've gotten WAY more conservative in the projects I recommend Drupal to. <a href="https://twitter.com/hashtag/DH2019?src=hash&ref_src=twsrc%5Etfw">#DH2019</a></p> <p>— Quinn Dombrowski (@quinnanya) <a href="https://twitter.com/quinnanya/status/1149683644241461248?ref_src=twsrc%5Etfw">July 12, 2019</a></p></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script><p>I do think there’s a place for Backdrop among the constellations of digital humanities tools and platforms, but it shouldn’t be the default. When starting a project, think hard about how long you want to personally be responsible for maintaining infrastructure — not just given your life today, but how it might be different in two years or five years from now. (If I had really been thinking about the consequences of having kids a few years later, I would have done things differently with DiRT and DHCommons.) What are the dependencies for your project to keep running in the form you plan to create it in? What other forms can it meaningfully exist in, in the longer term? How much work will it take to adapt it to that form? Would it be better for you to start the project in that form? What is your exit strategy when the time comes for you to step away? (Your answer should not involve someone else coming along to keep the project going; it’s not impossible, but it is highly improbable, even for projects with a large following.)</p> <p>Don’t leap into buying a pony. Think hard before building a Drupal/Backdrop site.</p> <p><em>Thanks to Karin Dalziel for nudging me to write this blog post.</em></p> On the future of Slavic DH in the United States 2019-07-12T00:00:00Z http://www.quinndombrowski.com/blog/2019/07/12/future-slavic-dh-united-states/ <p><em>These were my comments framing the "Methodology as Community: Fostering Collaboration Beyond Scholarly Societies" panel at DH 2019 in Utrecht, with Peter Haslinger, Antonina Puchkovskaia, Seth Bernstein, Katherine Hill Reischl, Thomas Keenan, and Yuliya Ilchuk.)</em></p> <p>Hello, I’m Quinn Dombrowski. I’m the Academic Technology Specialist for the Division of Literatures, Cultures, and Languages at Stanford University — which is to say, I work with scholars on DH for literature that isn’t in English, Classical, or East Asian languages. Literature in any other language is mine to help with, and I love it. My own background is in medieval Slavic linguistics, and that’s how I got started in DH, as an undergraduate, in 2004.</p> <p>We organized this panel with two goals: to raise the visibility of Slavic DH in the context of ADHO, and to suggest a shift in our thinking about the role that DH plays in the academy at the international level. </p> <p>To the former point, while Slavists have long participated in the DH conference — I was tasked to be an interpreter for a group of Russians when I was a grad student assistant at DH 2007 at the University of Illinois at Urbana-Champagin — Slavic DH work doesn’t have the visibility of other area studies, even after the 2016 conference was held in Krakow. There have been important efforts to highlight DH work from the Global South in recent years, as well as connect with scholars in Asia, but were it not for the fact that Maciej Eder sometimes uses Polish data, and David Birnbaum’s work with XML and TEI, DH work on and with Slavic languages might be relegated to the very far peripheries of the DH conference. When listing one’s interests as a reviewer, or the disciplinary topic of a DH submission in Conftool, “Slavic” isn’t an option. It’s an unfortunate omission, given the work that we’ve seen in these lightning talks. This work deserves to be named and recognized for what it is — same as African, Italian, French, German, Spanish and Latin American, Indigenous, Near Eastern, Oriental <em>(really?)</em> and Asian Studies, and Black studies.</p> <p>As for the latter point, I want to argue here that the ways that professional organizations are structured is deeply dysfunctional. While Slavic DH is an excellent case study for that dysfunction, there’s nothing “Slavic” about the problem at hand. Anyone working in a literature that’s not in the national language probably experiences this to a certain extent. Perhaps the effect is attenuated among Western European literatures where, from a sense of distance shaped by the United States or Russia, there’s only a trivial space between a scholar of Italian literature in Paris and their community of peers whose work is valued and supported by the government as cultural heritage.</p> <p>In the United States, it’s safe to generalize that interest in non-English literatures is a niche interest. To be able to seriously engage with that literature as a scholar, you have to acquire the language — and recent statistics on that front are startling and sobering. Between 2013 and 2016, colleges closed 651 language programs, after losing only one between 2009 and 2013, at the start of the financial crisis. Now, language programs lost does not equal literature departments closed, but it means that many fewer opportunities for students to gain the necessary prerequisite skills of language proficiency. Non-national language and literature programs can thrive with a degree of financial support and public recognition more similar to a national language when there’s some kind of tie-in to local identity: just about the only place Czech is doing well in the US is in Texas, which has a longstanding Czech immigrant community. </p> <p>Non-national language literatures in the US are small fields, and Slavic, at least, feels like a hermetically sealed one. In the US, we have two professional organizations: one oriented towards language pedagogy, and the other oriented towards research. Most everyone involved with Slavic area studies in the US will go to at least one, if not both of these major conferences, and it’s just what you might expect: big conference rooms in a hotel, with tens of parallel sessions, and a handful of people constituting the audience for the vast majority of talks. New collaborative projects are born at these conferences, but they’re inherently constrained by who’s in the room. And by that, I have multiple facets of identity in mind. From the perspective of the kinds of awareness of diversity that are increasingly shaping the humanities in the United States — with positive effect, though certainly not without friction — it’s notable that Slavic studies is extremely white, highly likely to come from families with a history of graduating college, and less likely to identify as LGBTQ than many other fields in the humanities. With rare exception, the attendees all work or study in the United States, within the framework of Slavic studies as it has developed on those distant shores. Even if a grad student convinced their advisor to allow them to work collaborative with scholars overseas, they would be hard-pressed to find any at the conferences they’re required to attend. The homogeneity of this environment is a breeding ground for enforcing hierarchies as a form of differentiation. There’s faculty panels that may extend a hand to a favorite grad student protege. There’s grad students panels, first steps into academic presentations that more closely resemble end-of-term paper presentations, and may well be adapted from the same. There’s librarian panels, which range from disciplinary research to technical processes. And mixed into all this are a smattering of “others”: the alt-acs, the adjuncts, the independent scholars. We don’t talk about who’s missing from the conversation, or who’s marginalized within the conversations we do have.</p> <p>For about five years now, there’s been a “Slavic DH” working group affiliated with one of these conferences that’s taken various forms, from a panel to an unconference to a hackathon. Its focus has been on trying to cultivate interest in DH methods within Slavic studies — and it’s been hard work, and a challenge to get enough traction to move beyond the eternal “intro to DH”.</p> <p>So what do Slavic studies scholars DO when their work takes a digital turn, and they want to take the next step beyond the intro? Especially for people working with text, it’s not enough for them to go to their local DH colleagues in English departments, and apply the same tools and methodologies to Slavic languages. Most Slavic languages are highly inflected, meaning that you get lots of different forms of a word depending on how it’s used. So anything that involves counting words — and so many of our methods involve counting words — has to be adapted to give vaguely useful results. Who can you turn to for pointers on how to rethink workflows developed primarily in Anglophone contexts to other languages? </p> <p>For the scholars here, DH has been an impetus to look beyond the borders of obvious national networks, and find other people working with the same kinds of materials, in the same languages, across the world. And that was going to be my grand conclusion here: that DH not only enables us, but forces us to step outside the national boundaries that define our field in most contexts, and that’s a great thing.</p> <p>Since putting together this panel last November, though, my mood has darkened on the future of Slavic DH. I’ve come to the conclusion that Slavic DH in the United States is, in fact, in a lot of trouble. We face the same issues that everyone everywhere has been struggling with for decades: how to evaluate and credit DH work. But while the Modern Language Association (MLA) in the US has been putting out guidelines and trying to use its authority to support proper assessment and recognition for DH scholarship, the Slavic associations have not. And much as the MLA sees Slavic under its purview, Slavic studies seems not to share that view. When it comes to evaluation of DH scholarship, it’s still the early 2000’s for Slavic studies. And even if we shrug and assume that appropriate review practices will eventually get established, it’ll just take some time — that doesn’t do these scholars here any good. They can’t wait to go up for tenure until Slavic studies in the US changes. They need it NOW. And even more than review guidelines, they need reviewers. Even if Slavic studies were to suddenly accept the most progressive practices with regard to evaluating DH work, you still need evaluators. And there’s only a couple tenured folks who seriously do Slavic DH work in the US, and one of them will be retiring soon. What's more, institutions look to <em>institutions</em> as the source of legitimacy and authority when finding reviewers. DH is better about recognizing excellent work wherever it occurs, but Slavic departments at elite universities would face pushback from deans and provosts if a DH scholar's dossier were reviewed by a nationally and internationally prominent, senior Slavic DH person from the "wrong" university.</p> <p>In this context, transnational networks aren't something we can feel good about cultivating in a DH context: I think it’s going to be, quite bluntly, a matter of survival for Slavic DH in the United States. And working across the Atlantic is one matter when you’re talking about optimizing tools for named entity recognition in Russian — and an entirely different matter when you’re asking for help evaluating DH scholarship. As polite as we are about it, the fact is that European and US scholarship have different perspectives on what counts as an interesting topic, what ways of collaborating align with our values and social structures, what constraints we face with regard to things like privacy and copyright. US scholars’ research agendas don’t necessarily make for good European-style scholarship, and if the only option is for them to evaluate US-based DH scholarship as if it were European scholarship, this won’t end well. </p> <p>But is there another path? Is it possible to jointly establish with our colleagues in Europe a set of review practices that we all can sign on for? Must DH be inextricably intertwined with the norms and conventions of the local scholarly community, or can we develop a trade language within Slavic DH that can bridge those differences?</p> <p>I don’t have an answer; at this point, it’s a provocation edged with hope. If we keep going the way we have been going, only tenured full professors will be in a position to do DH in Slavic studies in the US. And as tenure lines are reduced, we face a future where there’ll be fewer of those, and they’ll have little incentive to adopt these methods that we all feel hold so much potential.</p> <p>Let’s talk about alternative futures: in Slavic, in DH, in your field. What steps can we take individually, and collectively — in our various roles as faculty, librarians, staff — to create a world for ourselves and our colleagues where doing DH doesn’t consign you to a dead-end — or an end — of your academic career?</p> 4th Year Russian, 3rd time around 2019-04-02T00:00:00Z http://www.quinndombrowski.com/blog/2019/04/02/4th-year-russian-3rd-time-around/ <p>I was 15 when the Cyrillic alphabet shifted from an exotic set of vaguely-familiar symbols to something I could read. After attending high school in Argentina for a summer as an exchange student (where I was first introduced to Harry Potter and his “piedra filosofal”), I had run out of Spanish classes at my high school. But I was a language person, and the brightly-colored closet doors lining the side of the language teacher’s classroom, covered in unreadable text with some connection to this thing called “cases” called to me.</p> <p>I learned Cyrillic in an afternoon and immediately wanted to do things with it, but I didn’t know any Russian. Instead, I practiced the lines and loops of Cyrillic cursive by rambling on in transliterated Spanish. That wasn’t enough: I wanted to be able to type in this new alphabet, and not rely on pen and paper.  I enabled the Russian keyboard on my Windows 2000 laptop, hit each key in turn to see what it produced, and then labeled it with an impossibly tiny piece of paper and Scotch tape. </p> <p>The grammatical structure of the language left me gushing to my friends with excitement. Still haunted by the Spanish preterite,  I was thrilled that there was only one past tense form — <em>even though you have to learn [at least] two verbs for every verb: a perfective and an imperfective form</em>. The first words I learned were scaffolded with mnemonics. Most of them have been absorbed back into my brain as their utility faded, but I remember being terribly pleased with myself for coming up with “Mr. Magoo (могу ‘I can’) <strong>can</strong>(n’t) see.”</p> <p>Russian was my way out. I lived in a different city from the rest of my classmates and couldn’t drive — not that a license would address the lack of a car. I lived in terror of a real-life wicked stepmother and step-siblings, and I threw everything into learning Russian, getting up at 5:30 AM for extra studying time, because knowing Russian was something they couldn’t take away from me. In one school year, I went from not being able to read Cyrillic to winning the Washington state high school Olympiada of Spoken Russian, and with it, a trip to Russia to compete in the International Olympiada. Relatively recently-elected president Vladimir Putin’s wife gave the opening remarks at the event, though the American team missed it due to flight delays.</p> <p><a data-flickr-embed="true" href="https://www.flickr.com/photos/quinnanya/5243188553/in/photolist-8ZjHhD-8ZjKxv-8Z2A4R-8suZHD-8sv2jF-7fQjvT-7fP9sf-7exX6v-6tb1T9-6obuzs-6nSaKn-45DAMt-iVioQ-aYX5L-aYX5B-aNSJ8-aH9sn-mRyZm-mR8MS-mRxvv-mRxjw-mRxrT-mRwVG-mRw9W-mRvKw-mRvdr-mRrDK-mRrnG-mRq9n-mRr36-mRot4-mRn37-mRjUJ-mRjTj-mRjSh-mRjFq-mRcSz-mR9MM-mR9f6-mR6FG-mR68M-mR5GS-aYWr2-iVoev-iVkMn-dzBhf-dzA7j-aYTen-aYQxp-mQWpv" title="Quinn and the church"><img alt="Quinn and the church" height="640" src="https://farm6.staticflickr.com/5046/5243188553_53b9c3dc6d_z.jpg" width="423" /></a></p> <script async="" src="http://embedr.flickr.com/assets/client-code.js" charset="utf-8"></script> <p>All of my suitcases came home from that trip filled to the airline weight limit with books and CDs. I bought all the Nautilus Pompilius albums I found in a small CD shop. I wasn’t big on Napster in high school, and even if I were, I wouldn’t have known what to search for. Nautilus Pompilius was an anchor for me in the world of Russian music, and even as the more complex syntax and vocabulary eluded me, I’d whisper along with the words and phrases I knew. “Слушая наше дыхание, я слушаю наше дыхание…” (“Listening to our breath, I listen to our breath…”) I listened to those CDs over and over, turning the Discman volume as high as I could without getting yelled at, and imagining that the Montana snow when I visited my step-grandparents was the snow of Siberia.</p> <p>I won the regional Olympiada again the following year, this time securing a scholarship to the University of Washington’s summer Russian program. Another way out: I could spend the months before leaving for the University of Chicago in Seattle, on my own. This was 4th Year Russian #1: a summer in the classroom of Zoya Mikhailovna, my high school Russian teachers’ own Russian teacher. Time had mellowed the fearsome persona they had recounted to me; she no longer perched on the edge of the desk in a short, tight dress, smoking cigarettes. She was grandmotherly. She insisted that there’s no such thing as громкая музыка ‘loud music’, one just plays music loudly. (I disagreed then, and still do now.) I loved the playfulness of the lyrics of “Привет” (“Hello”), one of many texts we read and listened to that summer. A roommate situation had gone badly in the Russian House, so I spent that summer keeping to myself outside of class, passing the time wandering through Seattle or sitting in my anonymous dorm room, chatting on AOL Instant Messenger mostly in transliterated Russian with Andy, who I had met on the UChicago message boards for incoming students. He had also taken Russian in high school, and was similarly interested in languages and linguistics. (Reader, I married him.)</p> <p>I went to Chicago ready to leave Russian behind me, the life raft that helped me survive a tempest no longer needed. I was an independent adult, and the path I would choose would be Japanese, a language I’d loved since childhood. I had managed to find a copy of the obscure textbook used by UChicago’s Japanese program (in those early days of e-commerce), and using that as a self-taught crash-course, I bluffed my way into second-year Japanese, promising that I’d remedy the deficiencies in my kanji vocabulary. </p> <p>Jumping into second-year Japanese taught me the limit of my language-learning abilities. By my second quarter of college, I had dropped the language altogether, too proud to be downgraded to first-year. Instead, I took a Russian placement test, and placed into “any level you like”. Short stories sounded better than movies as a medium for language-learning, which brought me to 4th Year Russian #2: modern Russian literature with Radik. He was a grad student then, though as a first-year undergrad I had very little sense of what that meant in terms of institutional hierarchies or power. He was just Radik, and he was warm, wonderful, welcoming, and endlessly patient with a classmate who appeared to deploy the instrumental case completely at random. In that class, Andy and I wrote essays and stories — I wrote one, in the spirit of Velveteen Rabbit, about a college dorm room bed in possession of a soul, watching students come and go as time passed. We read Akunin and Dovlatov, among others. Dovlatov's “Компромисс 5” (“The 5th Compromise”, available in English only in a bad translation) stayed with me. Nearly 10 years later, it was the story I brought with me to read at the hospital while waiting for the anesthesiologist, before a procedure to clean out a missed miscarriage.</p> <p><a data-flickr-embed="true" href="https://www.flickr.com/photos/quinnanya/16009119535/in/photolist-qoEVuk-iN9Zid-bF8KWq-asZvFR-937bUm-9344UZ-937bCU-8ZjEZD-8ZjHhD-8ZjKxv-8Z2A4R-8suZHD-8sv2jF-7fQjvT-7fP9sf-7exX6v-6tb1T9-6obuzs-6nSaKn-45DAMt-iVioQ-aYX5L-aYX5B-aNSJ8-aH9sn-mRyZm-mR8MS-mRxvv-mRxjw-mRxrT-mRwVG-mRw9W-mRvKw-mRvdr-mRrDK-mRrnG-mRq9n-mRr36-mRot4-mRn37-mRjUJ-mRjTj-mRjSh-mRjFq-mRcSz-mR9MM-mR9f6-mR6FG-mR68M-mR5GS" title="Хочется вспомнить слова Гете: " Рождается="" человек="" -="" рождается="" целый="" мир!""=""><img alt="Хочется вспомнить слова Гете: " Рождается="" человек="" -="" рождается="" целый="" мир!""="" height="480" src="https://farm8.staticflickr.com/7565/16009119535_4eb78bd14f_z.jpg" width="640" /></a></p> <script async="" src="http://embedr.flickr.com/assets/client-code.js" charset="utf-8"></script> <p>After 4th year Russian came 5th year, and movies like <i>Брат</i> (“Brother”) and <i>Брат-2</i> and their soundtracks. In <i>Брат</i> the protagonist wanders around listening to Nautilus Pompilius on headphones, bringing me back to my high school days. We named the first cat we got in college after Vitya, the brother in those films. Andy had a well-curated collection of Russian rock mp3’s, and I eventually adopted his tastes as my own with help from an external hard drive. Highlights from the DDT discography permeated those years; Andy printed out lyrics and guitar tabs and we’d drink and sing. Sometimes I didn’t know the lyrics, and sometimes I didn’t understand them (it took me the longest time to realize метель, “metel’"<i>, snowstorm,</i> was not a cognate), but the songs of ДДТ, Сплин, Аквариум, Земфира, Би-2, and others became familiar and comforting strings of syllables set to music and punctuated with meaning.</p> <p>I decided I wanted to make films, not go to college, so I needed something easy to major in. Russian did the job: most of the degree was taking Russian, and I’d tested out of it. Then I decided I wanted to go to grad school and become Dr. Quinn, just like my childhood idol, so I got a BA/MA program created in the UChicago Slavic department. I was the first to graduate with the degree in four years, due to good fortune in the relative alphabetical ordering of my surname vs. Andy’s. That fall, we both started (though it felt like “resumed") the PhD program in Slavic linguistics. And within a month, I decided that I was more interested in helping people do their research better than actually doing research. I decided to leave the Slavic PhD program.</p> <p>Time passed. Andy and I got married, with wedding rings inscribed with the text of <a href="http://gramoty.ru/birchbark/document/show/novgorod/605/">perhaps the first Slavic gay love letter</a>, in the original handwriting. I started working in UChicago’s central IT organization, and was pulled into the now-infamous digital humanities cyberinfrastructure initiative Project Bamboo. More than once I made gestures towards improving, or at least maintaining, my Russian. On one long road trip, we made CDs of an audiobook of <i>Ночной дозор</i> (Night Watch) and I followed along in an ebook. But speaking was never my strongest skill, and silence was the most reliable way to avoid embarrassment.</p> <p>More time passed. We moved to California, and all the sunshine and flowers and laid-back attitudes proved to be a fast track to alienation from Russian. Russian rock fell off of my playlists for daily listening. Soon, I was a parent — and I discovered the world of difference between hypothetically wanting to teach one’s future children a language, and actually teaching the unique person who is your child a language, especially when you have no connection to a community or relatives who speak it, to say nothing of the opportunity or means to travel to a country where it’s spoken. There was one beautiful year where our pre-verbal toddler loved <i>Маша и медведь</i> (Masha and the Bear), available in Russian and a host of other non-English languages on YouTube. But then Netflix released an English dub, the toddler learned the words to express other interests, and the fun was over.</p> <p><a data-flickr-embed="true" href="https://www.flickr.com/photos/quinnanya/22613846272/in/photolist-AsiSDf-AtvegH-AoCU1t-zqKFTg-zqBFU5-AnDkpz-AnDicD-zqKyeP-ziv83N-Adew4J-zbmV1i-zY1QNM-zBrT1U-zSVZWJ-ye39Je-zU4wN6-zvuY5G-zkg4aC-zh4A2b-yTNeFU-yLbSuN-y5LzyD-yyfD8k-yxPYfD-xDYYZU-xDYKUW-yh8d2h-xyF14H-ydX8qw-ywhdgg-yb8Avf-x5vfHw-x36YWP-wViQwS-wMVXbj-wMVTqU-wKouVB-x2YyHN-x3616v-x2pp5U-x2HLs2-w5iWuM-vZRy6R-vktEDX-vZRv8B-wa4dzR-vBA7iv-vtGo9r-vao9Gf-uV7z5S" title="Masha, the bear, and the penguin"><img alt="Masha, the bear, and the penguin" height="480" src="https://farm1.staticflickr.com/608/22613846272_b35f7600e3_z.jpg" width="640" /></a></p> <script async="" src="http://embedr.flickr.com/assets/client-code.js" charset="utf-8"></script> <p>Still more time passed. An aunt’s health crisis while visiting over the holidays marked a brief return of Russian to my playlists. Russian settled in like the Bay Area’s summer fog to accompany the self-perpetuating rot of organizational dysfunction at work. Even with Spotify at my fingertips, the same familiar songs provided the soundtrack to my gloom. Russian became an ossified ritual for enacting my unhappiness. Salikoko Mufwene, a linguist at UChicago who once generously humored me as a prospective college student, and served on Andy’s dissertation committee a decade later, has written extensively on language death. From “A cost-and-benefit approach to language death”: “In a nutshell, languages die, gradually, as speakers practice them less and less, because they have fewer and fewer opportunities to use them, basically in the same way people forget to adequately use technology that they have not often had the need for… One may argue that a language is not only a communicative system used by a particular population but also the reality of practicing it. It lives in the practices of its speakers, not in the knowledge people have of it.” Last summer, as I faced at least a year of perpetual exhaustion with a 4-year-old, 2-year-old, and newborn, I came to peace with idea that Russia was something I needed to leave behind me. Knowing and using Russian needed to join defragging hard drives as something I used to be able to do.</p> <p>But then, to draw on another Mufwene analogy, there was a radical shift in my own linguistic ecology. Unexpectedly taking a job at Stanford to be the Academic Technology Specialist for the Division of Literatures, Cultures, and Languages (which includes a Slavic department) meant that Russian suddenly had value beyond being a go-to “fun fact about yourself” in corporatist ice breakers. In my time at UChicago’s Slavic department, there was a sort of “gentleman’s agreement” among the faculty and students, where we all agreed that we all could speak Russian, so there was really no need to ever do so once you’d passed 5th year. The classes were all in English, the guest lectures were all in English, and it was generally advisable to conduct one’s affairs in English, lest it come to light that your Russian (or your accent) wasn’t actually what it should be. A few weeks after starting my new job, it was a shock to attend the fall tea for Stanford’s Slavic department and find grad students comfortably speaking Russian with one another, the lecturers, and the professors, while I sat mutely, awkwardly, angry with myself for inevitably being the cause of a conversational switch to English.</p> <p>A few weeks ago, DDT came to Berkeley. Andy and I found a babysitter, and went to the concert along with two good friends. Standing in line, we were the only English speakers in earshot, which had the upside of serving as linguistic anti-spam: the promoters of other  Russian bands would just skip over us when handing out flyers. The concert was amazing — a sold-out crowd singing along to classic favorites, dancing along to the newer songs we all knew less well, dudes giving each other spontaneous bear hugs once the alcohol kicked in, real lighters — not just raised cell phones—  swaying along with the music (because of course there’s Russians who still smoke despite the intense social opprobrium in the Bay Area), and shout-outs to engineers and people from various former Soviet republics, called out individually. “And there’s Americans here, too. Good for you for coming.” Between the DDT concert and working with Russian materials for the non-English digital humanities course I taught last quarter, I got a reminder that not all was lost. I can still follow spoken Russian, mostly. And I can still read, slowly and with dictionary support. But when a serendipitous introduction to one of the Russian lecturers led to an invitation to audit 4th year Russian this quarter, I had to say yes.</p> <p><a data-flickr-embed="true" href="https://www.flickr.com/photos/quinnanya/32584892577/in/dateposted/" title="DDT concert in Berkeley"><img alt="DDT concert in Berkeley" height="480" src="https://farm8.staticflickr.com/7811/32584892577_f0b6313388_z.jpg" width="640" /></a></p> <script async="" src="http://embedr.flickr.com/assets/client-code.js" charset="utf-8"></script> <p>Today I found myself walking into 4th Year Russian #3 with Rima, and one undergraduate international relations major. The class is conducted entirely in Russian. We conversed for much of the hour, read aloud from a text where stress was marked on words (which irked me — only beginning or intermediate textbooks are written with marked stress — even as I was grateful for the marks in moments of hesitation), and did a “choose between perfective and imperfective verbs” exercise. After 20 minutes, my brain was starting to hurt. After an hour, I found that even my English was failing me in the meeting that followed. I have a lot of homework for Thursday, and was promised even more homework for next Tuesday “since you have more time on the weekends.” “I have LESS time on the weekends, I have three kids!” I protested — as I tried to remember whether the number 3 triggers genitive singular or plural. Enumeration is hard.</p> <p>This isn’t about digital humanities (for a change), but what I’ve learned there applies here. To be perfectly honest, I suspect I would have been fighting back tears if the first day of 4th Year Russian #1 or #2 went anything like today. I stammered, I got stuck, I butchered grammatical gender and case left and right and I knew it, I reached for words and found the wrong ones, or none at all. But through some combination of pride mellowing with age, and getting comfortable with my own failure, and talking about it in public, today went fine. I can laugh and shrug and ask for a word or phrase when I come up empty and keep going. (Re)learning a language is failure upon failure upon failure until the failure is sprinkled with success, and the successes eventually multiply. I have a lot more failing ahead of me this quarter.</p> Towards a Taxonomy of Failure 2019-01-30T00:00:00Z http://www.quinndombrowski.com/blog/2019/01/30/towards-taxonomy-failure/ <p><em>Introductory note: I intended this talk, given at the <a href="https://novel-tm.ca/?p=807">"On the Benefits of Failure" workshop</a> at the University of Alberta in March 2018 (<a href="https://era-av.library.ualberta.ca/media_objects/avalon:42992">video available here</a>), to be my "swan song" for engaging with DH. It came about a year after the funding for my involvement with DH was eliminated at UC Berkeley, and I was working on reinventing myself in the world of research computing. Some of the issues with my organization were beginning to come to a head, but I couldn't have imagined while giving this talk that seven months later, I'd be in a new, DH-centric position in the Division of Literatures, Cultures, and Languages at Stanford University. <a href="https://digitalhumanities.stanford.edu/difficulty-manatees-after-swan-song">See the Stanford DH blog</a> for more reflections on the talk a year later.</em></p> <p><em>Also worth noting: I was 7 months pregnant at the time with my youngest child, and was barely able to squeeze into my Windows Blue Screen of Death hoodie, which I sewed myself with <a href="https://www.zenithandquasar.com/">fabric from Zenith & Quasar</a>.</em></p> <p><em><strong>Addendum (2/12/19):</strong> Thanks to Thomas Padilla and Alex Gil for pointing out in <a href="https://twitter.com/thomasgpadilla/status/1095327400823447552">Twitter threads starting here</a> the fact that the potential for negative consequences for any kind of failure are relativized to identity -- and amplified through racism, sexism, classism, and similar structural barriers. Being able to talk about it openly without concern about damaging professional consequences is privilege, and while advocating for people in a position to talk about failure to do so, it's important to not pressure colleagues in a more vulnerable position to do the same.</em></p> <p><img alt="Quinn Dombrowski at " On="" the="" Benefits="" of="" Failure""="" data-file-id="46" height="1014" src="http://www.quinndombrowski.com/assets/images/failure_quinn.png" width="300" /></p> <p> </p> <p>Thank you so much for having me today. Why am I here? I think it probably dates back to the international digital humanities conference that was held in Nebraska in 2013. I stood up in front of the large room like this one and possibly for the first time in the history of the conference spoke very frankly about the failure of a multi-million-dollar cyberinfrastructure project for the humanities known as Project Bamboo.</p> <p><img alt="Gravestone for Project Bamboo" data-file-id="20" src="http://www.quinndombrowski.com/assets/images/failure_bamboo_grave.png" width="600" /></p> <p>People didn't know what to think about that because no one wants to talk about failure. When it happens, it happens quietly. Projects just go away, centers shut down quietly, but one of the privileges and advantages of working in central IT is that—compared to the academic side of the house – central IT is pretty comfortable with failure, for better or for worse. Central IT can fail to the tune of millions of dollars every year, and no one gets sacked. In that context, I felt like it wouldn't be an issue at all in my organization, or for my career, to go up and say, “Here's how we made some mistakes.”  This stands in contrast to the culture of academia.</p> <p><img alt="Quinn buried under flipcharts" data-file-id="21" src="http://www.quinndombrowski.com/assets/images/failure_quinn_buried.png" width="600" /></p> <p>Personally, I've done lots of failing. This was me in the Project Bamboo days failing to transcribe the hundreds and hundreds of flip charts from the workshops I went to. I literally got buried in them and we thought we'd have some fun with documenting that.</p> <p>I'm pretty comfortable with failure because the path to learning runs through failure. It's not something that we think about a lot in the humanities, though in the digital humanities we're getting to a point where I think this is is becoming more obvious. In other disciplines it's much more evident that failure and learning are so closely tied.</p> <p>Consider, for a moment, science labs – and I’ll admit I haven't spent a lot of time considering science labs until my most recent position, where I'm now working with grad students and undergrads from across the entire university: everyone from nuclear engineering, to chemistry and molecular biology, and digital humanities. I asked some of them about failure in preparation for this talk. “Failure -- does this happen a lot to you? Do you guys talk about it? Is this a big part of your life when you're working in a wet lab?” And one of the graduate student researchers I've worked right said, “Yes, we definitely fail. Probably half the time experiments fail – and that's what you <em>know</em> what you're doing. When you don't actually know the procedure, the rate is a lot higher. Failure is expensive and hard to sweep under the rug. Sometimes you prepare a specimen and for being sent off for a lot of testing, and a lab test can cost between $1,000 and $15,000 and you come back with complete garbage. Then you have to start over and send it off work for lab work again.” And I asked, “Do your PIs get angry with you?” And he said, “Yeah, I think they do.” PIs are people too, sometimes they have difficulties managing their emotions, but it’s more frustration than actual anger. They understand that this is part of the process, this is part of running a lab, this is part of discovery, and this is part of learning. This is how you push the boundary forward in science.</p> <p><img alt="Learning in medicine" data-file-id="23" src="http://www.quinndombrowski.com/assets/images/failure_medicine.png" width="600" /></p> <p>I've also had some tangential dealing in the world of medicine, and as much as you don’t like to think about it when you go into for medical procedure, the fact is that the person performing that procedure on you first had to learn by doing it on someone for the first time. That’s kind of a scary thought, but it has to happen. The stakes are much higher for mistakes but still there's a sense that the value that you get out of learning these procedures is worth the risk having to take tentative steps forwards into things that you don't really know.</p> <p><img alt="Technical failure" data-file-id="24" src="http://www.quinndombrowski.com/assets/images/failure_technical.png" width="600" /></p> <p><strong>Technical failure.</strong> I thought through how I got from where I started in DH to where I am today – arguably on the other side of DH – and looking at it through a set of different lenses of failure.  The first one I'd like to start with is technical failure, which has some parallels in the sciences. There are lots of opportunities for technical failure: learning to code, or learning how to use a content management system. Even learning what a content management system is, and how to choose between them, and which one is the best fit for your kind of project, and how to run one in the long term. There's lots of procedural things that have analogs in labs, and analogs in medicine in the sciences, that you don't necessarily see so obviously in other parts of the humanities.</p> <p><img alt="Slavic linguistics" data-file-id="25" src="http://www.quinndombrowski.com/assets/images/failure_slavic.png" width="600" /></p> <p>A brief digression on Slavic linguistics. Back when I did academic things, these were the academic things that I did. It ties in really well with the theme of this talk because Slavic Linguistics – at least in the US—is an example of <strong>disciplinary failure</strong>. Which is to say, it basically doesn't exist anymore. Fifty years ago, in addition to having linguistics departments, which were theoretically oriented, there was also area studies linguistics: Slavic linguistics, Romance linguistics. There was a whole set of these <em>disciplinary</em> linguistics. They were different in the sense that the people who studied them knew the languages intimately, learned the history of the languages, the structure of the languages, how they tied into other languages in the family, and looked at issues within that language family from a deep perspective situated within the language, rather than just treating languages as data in the same way as theoretical linguistics. The problem was, as time went on, these disciplinary linguistics departments had a hard time articulating what challenges they were trying to solve. What were the big questions? Why, fundamentally, should anyone care? What is this going to tell us about much of anything? In part it was a marketing issue, in part it was a lack of engagement with people doing the same kind of work in Europe, or people dealing with similar questions in linguistics. But one way or another, these were fields that weren’t really able to make a case for why they should exist, and ended up becoming places where prospective grad students would apply to when we were unable to get into a theoretical linguistics PhD department, and that death spiral continues to this day. There's maybe a couple of places in the US left where you can even get a degree in Slavic linguistics, and those probably won't last another 15 years.</p> <p><img alt="Example of technical failure" data-file-id="26" src="http://www.quinndombrowski.com/assets/images/failure_first_dh_project.png" width="600" /></p> <p>So, Slavic linguistics, my home discipline: I did a BA/MA in Slavic linguistics at the University of Chicago and my first taste of DH, my first taste of technical failure, was a medieval Slavic linguistics project. A faculty member, Daniela Hristova, had gotten a small seed grant from the university to build a database of medieval Slavic manuscripts. She found some online and she wanted to annotate them a little bit, clean them up (the OCR wasn't very good), and make them searchable. The department had gotten wind that I was someone who “knew computers”. It was my second year of undergrad, all of 19 years old, and I “knew computers” because I was embarrassed by my department's website, which had these little bouncing Russian nesting dolls all over it. And I said, “Please, Slavic department, you don’t even have to pay me, let me redo your website, this is embarrassing for all of us.” I had done that but this had tipped my hands that I “knew computers”, so when Daniela got this grant, she decided, “Quinn's in charge of making this thing work. We’ll take Quinn, and Quinn can talk to tech people, and she’ll do that part. And this other undergrad, Andy, he can even do all the cleanup of the documents, since he's really good with old Russian.” (The other guy is now my husband, as it happens.)</p> <p>This DH project had pretty bad planning. “Let’s just pass it off to the undergrad.” As much credit as I give myself, maybe not the world's best idea. Underestimating the work required: that's another common thing when you're working on your first project. You just have no idea how long these things take. There were some major mistakes in technology choice starting with the fact that we had these manuscripts available in HTML that was reasonably well marked-up. We had encoding for things like when lines started, when pages started, etc. But the faculty member thought, “You know, these texts need to be cleaned up. Where do you clean things up? In Microsoft Word, of course! That's where you clean everything up!” She copied and pasted all of the wonderfully encoded HTML, pasted it in the Word and handed it to Andy to do all the cleanup. After he finished the cleanup, the next thing was to encode the text in TEI. Maybe we could’ve crosswalked it from the original HTML, but instead we were starting from scratch because it was coming from Word. We ended up talking to the folks who run Philologic at the University of Chicago, and they came up with an amazing system of using some of the colors in in the documents to reintroduce some of the encoding. And to this day, if you say “light seafoam green” around Mark Olson from Philologic, he’ll start to twitch slightly in remembering some of the machinations they had to come up with to fix some of the really bad technology choices. Technical failure. But we learned a lot.</p> <p>Technical failure, while most obvious in DH (in the sense of using the wrong technologies, planning your projects badly, etc.) is not unique to DH. If you think about the humanities in general, and some of the things that you've learned as a grad student, there are certain processes and procedures and ways of doing things where you have no idea of how to do them coming in. In a lot of cases, no one teaches you, and you only can really learn through failure. You don’t have to raise your hands but I'm guessing from some of the nods in the room that some of you might have had a conference talk with no questions—or even worse, the pity question. That's always really awkward. Or lesson plans, or even whole courses that don't work out the way you thought. That's another kind of technical failure. Rejected grant proposals. While grants are seen in many ways the lifeblood of DH in particular, there’s travel grants, and everyone writes grants these days to a greater or lesser extent. Having those rejected – sometimes without even a clear explanation to help you improve for the next one – it’s frustrating. It's a common kind of technical failure I think everyone experiences.</p> <p><img alt="Career planning failure" data-file-id="27" src="http://www.quinndombrowski.com/assets/images/failure_career.png" width="600" /></p> <p><strong>Career planning failure</strong>. This this is one that I discovered when both I and my future husband started the PhD program in Slavic linguistics after finishing up our BA/MA. We stayed in Chicago just there were not many other universities that even offered a Slavic linguistics program. When you're a grad student, inertia is the enemy when it comes to thinking through what your career is. Once you're on the grad student track, the easiest thing to do is to keep showing up and keep following the instructions about the next thing. You have classes, a qual paper, propose a topic and you work on the dissertation. There's a lot of disincentives to stop and think about what this means for your bigger career. Is this really the path to get where you want? It's a very uncomfortable question because you know stepping away from the grad school path means stepping away from a community, a lifestyle, a set of easy choices that can get you through the next 5+ just by following them step by step. Then, the question is, “If this isn't really where you want to go, who’s around to help you find a different path?” And when you're in grad school, you have your advisor who you can talk to, who is probably quite good and quite savvy about how to find an academic job in your field. But how much do they know about other options for you? In many cases, by definition, the fact that they are faculty and have probably been faculty for some time, means they may not actually have much of a clue about what the options are or how one would get there. It takes a little bit more work to find other people to talk to.</p> <p>I was not happy with the reality of being in grad school. I started in the fall, right after I had graduated and I realized as I was facing prepping for my PhD exams that I was going to have five years of first prepping for these exams, and then finding a topic, and then writing on the topic. But I didn’t care about any one topic that much. I couldn't even<em> imagine</em> caring about any one topic that much. I realized that what I was interested was the question of <em>how people do research</em> rather than actually wanting to do research myself. A month or so after starting the PhD program – give me this much, I was decisive – I decided I was going to leave.</p> <p><img alt="My way out" data-file-id="28" src="http://www.quinndombrowski.com/assets/images/failure_wayout.png" width="600" /></p> <p>For a little while I worked in the computer lab where I had had a student job that had continued. I talked to Mark Olson of Philologic about what other tracks there were that would get me closer to thinking through these questions about how to support research. Where he pointed me was a Masters of Library and Information Science program at the University of Illinois. So I ended up doing that while I also found myself a job working in the central academic IT unit at the University of Chicago. The big-big-boss of the computer lab had noticed me – I showed up for meetings, was enthusiastic, got stuff done. It was 2007, and he said, in essence, “I like the cut of your jib, I’ll just make a position for you and hire you into it.” UChicago is a private school, it was 2007, we had money. Sometimes I feel like I got the last boat off the Titanic in terms of that even being possible before all of the budget cuts that followed. I don’t suggest trying the same path today, suffice it to say. But back then, it worked and that's what I did.</p> <p><img alt="Communication failure" data-file-id="29" src="http://www.quinndombrowski.com/assets/images/failure_communication.png" width="600" /></p> <p>Working in a central academic IT unit, while simultaneously working on a master's degree in Library and Information Science, it really gave me a new vantage point on failure. Whereas before I was on the academic side, trying to build a project, and failing at doing so at times, I suddenly saw how a lot of the failure and some of the dysfunction of these projects was really due to <strong>communication failure</strong>. Being on the IT side, we would have people come to us with questions and we would try to respond as best we could. One of the advantages of coming from the academic side the house, myself, is I was in a better position to try to translate some things that people were saying to us into what they actually wanted, rather than taking the words that came out of their mouths literally. Sometimes there were people who came to my group for help after things had gone terribly, terribly awry with some other IT group. For instance, a few things that I got to hear a lot: “I need a database.” Lots of people build databases. It's a common type of project. But if you show up to an IT office and say, “I need a database,” you might not be happy with what you get.</p> <p>There was a project that initially went to a different IT group. They’d told this group, “I need a database,” and the group says, “Great, we'll set you up with FileMaker Pro. That’s a database, all right, I'll take your word for it.” The faculty spent a year populating the FileMaker Pro database – they filled in everything they wanted – and they thought their project was almost done. They were really excited and went back to their IT group and said, “We filled in the database—now  how do we get this online?” And the IT people looked at them and said, “Whoa, whoa, you didn't say anything about online. What’s this ‘online’? You said you needed a database, we got you a database… we’re done. We’re good. ‘Online’, that’s a different thing altogether.” And so they came to us and we tried to help them.</p> <p>Around the same time my boss in the central IT unit was talking to various funders and through his own experiences of working with these kinds of projects, he noted that there it was, to his mind, the “canonical bad digital humanities project”. I think, particularly from the perspective of failure and learning, that’s really taking a very limited view of what digital humanities projects do. It assumes that given the value of digital humanities projects should be taken at face value. If you say you're going to build a tool, you should be building a tool in an efficient, scalable, and sustainable way that many people can use so that funders don’t have to pay for that tool again. If you're building a project that's a collection of things, you should be using standards and best practices and make sure the data is stored in a way that the librarians approve of, and it can be sustained for the next 20-30+ years. In reality I think the value of a lot of digital humanities projects – including fairly large ones that get funded by major funding agencies – is to provide the people who work on those projects an opportunity to try something, and build something, and learn and learn through a failure. To learn through things not working out, and being able to have the time to have those hands-on experiences that are really important for taking the next step with your work.</p> <p><img alt="" Canonical="" bad="" digital="" humanities="" project""="" data-file-id="30" src="http://www.quinndombrowski.com/assets/images/failure_bad_dh_project.png" width="600" /></p> <p>It was a very IT-centric proposal: there's this problem with the “canonical bad digital humanities project” – just look at those plastic blocks, those will be knocked over in two seconds, and what's more, the scholar is calling them a “salad” rather than a “tower” so who knows what they're even thinking in terms of the architecture? I asked my kid what that was, and he told me it was a “salad”, so there are analogs here, where IT people are looking at digital humanities projects and think, “What on earth are you doing?! Why would you architect it that way?! Why would you choose these tools?! This is this is no way to run a field, this is not an efficient use of financial resources, we can fix this!”</p> <p>So, cyberinfrastructure to the rescue! We were going to build something that would put an end to the bad digital humanities projects. The Mellon Foundation would rest easy knowing that their resources were being used wisely and scalably, for tools that multiple people could use in the future. We had this grand fantasy of this concept of the Borromean rings: three rings that are  interlocking and can't be separated from each other. We had a great story of the Borromean rings, depicting community and technology, and we were all very excited about this project idea, for Project Bamboo.</p> <p><img alt="Strategic failure" data-file-id="31" src="http://www.quinndombrowski.com/assets/images/failure_strategic.png" width="600" /></p> <p>I think Project Bamboo was a case of <strong>strategic failure</strong>. While the overall project strategy of doing Bamboo sounded like a good idea, but when we talked to people, we've heard loud and clear that wasn't what they needed, that wasn't what they were looking for. Maybe that would’ve been useful information to the extent that they understood what we were actually talking about, but it really wasn't where the field was, and what it needed at that time.</p> <p>Going through that experience, the learning value was quite high, and the risks of talking about it, as I discovered, were lower than I expected. People like to hear what train of thought led to a road that wasn't very productive. In the end it seemed like people appreciated the frank postmortem of the project more than they penalized us on subsequent grants for having failed.</p> <p><img alt="Project Bamboo's plan" data-file-id="32" src="http://www.quinndombrowski.com/assets/images/failure_pbplan.png" width="600" /></p> <p>Project Bamboo had it all figured out. We were going to help scholars find existing tools and content. We would track the use of tools and content, and build a platform for interoperable shared services. If you develop piece of code for analyzing one kind of literature, you could run it on a high-availability system, it could be disseminated scholars across the globe, and thousands of scholars could be using your code all at the same time on this stable platform in order to analyze literature. I don't think we really realized the fact that there weren't that many people who this would apply to. If everyone in digital humanities decided to run code at the same time, maybe we might be pushing the limits of expected scalability but really weren't that many people back in 2008, and especially not all working on literally the exact same algorithm at the same time. But Bamboo had a community design process, and they expected that would validate all of our assumptions, and then we ultimately put together a proposal that appeared to be a straight continuation of Bamboo’s original vision.</p> <p><img alt="Project Bamboo wedding cakes and cabbages" data-file-id="33" src="http://www.quinndombrowski.com/assets/images/failure_cabbage.png" width="600" /></p> <p>We worked really hard. All of us worked extra hours, we ended up traveling, we ended up staying late, and we built these amazingly elaborate diagrams of service architectures, of wedding cakes and cabbages. I, being a snarky new entrant into the “being-paid-to-do-a-grown-up-job” field enjoyed sitting in meetings and making sarcastic logos like “Project Bamboo Survivor”. But there was there was something to it, and we all were onboard with the idea that we could make this work it somehow, and conveys to scholars the value of this proposal. Once they understood, they would agree with us.</p> <p><img alt="Other ideas of Project Bamboo" data-file-id="34" src="http://www.quinndombrowski.com/assets/images/failure_timing.png" width="600" /></p> <p>In reality, though, there were a lot of different views of what Bamboo actually was and what it was supposed to do. There was the vision of Directors had. Some of the scholars who were going to the workshops saw it as a solution for tenure, for respect, for copyright, for social justice, even for funding issues that – as it was 2008+, were beginning to plague the field. In reality, everyone had a different view of what it was and what it was supposed to be.</p> <p>The project generated clumps of participants: the IT people who wanted this technical infrastructure, the library folks who were more interested in collections interoperability—being able to pull in content from different places, and the scholars who wanted a community. Scholars wanted to be able to share information about who was doing what, and they wanted a scholarly narrative they could take back to their dean to justify funding for a digital humanities project.  Everyone saw the elephant (or the unicorn) as something different.</p> <p><img alt="Timing failure" data-file-id="35" src="http://www.quinndombrowski.com/assets/images/failure_pb_timing.png" width="600" /></p> <p>I’ll admit that between 2013 when I gave that talk on the failure of Bamboo and today, I'm starting to view the project a little bit more charitably. There’s been some developments in the last couple years in terms of shared algorithms that the HathiTrust Research Center is making available, in terms of some of the metadata aggregation that the SHARE project is doing, that really have echoes of some of the things that we were talking about doing with Bamboo, but in a more focused and smaller-scale kind of way. In the end I wonder if Bamboo was less of a strategic failure and more of a <strong>timing failure</strong>—but at a certain point the difference doesn't really matter. The point is it didn't work out in 2009-2012.</p> <p><img alt="Project Bamboo as fertilizer" data-file-id="36" src="http://www.quinndombrowski.com/assets/images/failure_fertilizer.png" width="600" /></p> <p>One of my favorite quotes about Project Bamboo (that, sadly, was excised from the article that I wrote because LLC will not stand for scatological humor, however oblique) is Bamboo as fertilizer. This came from Brett Bobley from the National Endowment for the Humanities. He came to some of our workshops, and the way he saw Bamboo was as an opportunity to bring people together from even within the same institution, who hadn’t met each other. There were groups of scholars, librarians, and some IT people from the same institution who had never even talked to each other before, and now they were stuck in a room together with these IT people who were jabbering on about wedding cakes and cabbages and stuff, and no one really knew what we were talking about. So instead, it gave them a chance to <em>talk to each other</em> and spin up new ideas and thoughts and collaborations that bore fruit later on.</p> <p>For myself, I was probably one of the most scholarly-oriented people on the entire project team, having come right from a PhD program, and I was frustrated at the way that Bamboo went. The fact that it ultimately didn't get funding for anything other technical infrastructure, which alienated a lot of the people who saw value in some of the more scholar-facing pieces. So I thought to myself, “Well, if Project Bamboo can't do it, then I bet <em>I could do this</em>. Why don't I just do it?” And so with the hubris that comes from being young and having a lot of time on your hands, I started working on Bamboo DiRT which was a reinvigoration of a tool directory that Lisa Spiro had created some years before, and along with Ryan Cordell started DHCommons, which was going to be a project and collaboration directory. I'll get back to those in a moment, and where those ended up failing.</p> <p><img alt="Arbitrary failure" data-file-id="37" src="http://www.quinndombrowski.com/assets/images/failure_arbitrary.png" width="600" /></p> <p>In the middle of this comes a flavor of failure that I think is best to characterize as “arbitrary failure” – which is to say, job market failure. Things started to go south in IT at UChicago, and my husband was finishing up his PhD when a new job came open at UC Berkeley. As it happens, it was probably one of the very last jobs ever to come open in the field of Slavic linguistics. On one hand it's a terrible thing to be in English and have 40 jobs to apply to in a given year where you might hear back from three of them. I don't know if it's better or worse to have one job come open every five years, and that's it. Needless to say, he applied for the job, he was a finalist for the job, people felt pretty good about him getting the job… and then an older Russian professor who had never thrown his weight around politically before put his foot down. Something that my husband said in his job talk was unacceptable, and over his dead body would my husband be hired. So he wasn't hired. That was that. That’s arbitrary failure. How can you plan for that? What can you even learn from that? What’s even repeatable from that? I feel like with the job market there's a lot of randomness in the system that's really hard to prepare for and really hard to learn from. I had another friend who was a finalist for a literature job in a small Midwestern agricultural engineering-oriented school. Everything was good, she had great job interview, and they asked her to send one more chapter from her dissertation to serve as a final checkpoint – and she didn’t get the job. And then the next year, or a few years later, she got a literature position in the Ivy League, with the same dissertation materials.</p> <p>So what do you make of any of that? What is that but arbitrary failure? The unfortunate thing is, of the kinds of failure, it’s the one that we learn the least from, but there's a whole genre of this now in the blogosphere. “Quit lit”: how I left academia, how the job market did me wrong. We have lots of people talking about it, which I guess is a good step forward for failure insofar as anyone's talking about any kind of failure. It has some value in terms of solidarity when you're in that position of not getting a job for reasons that you don't even know, or don't even make sense, or just seem to fall from the sky. But one hopes to cultivate a genre of talking about failure that we can learn a little bit more from, where it's more representative, and indicates more personal learning and more learning for other people.</p> <p><img alt="From Chicago to California" data-file-id="38" src="http://www.quinndombrowski.com/assets/images/failure_chicago.png" width="600" /></p> <p>As it happens, we still managed to make it to California. Project Bamboo had made some detours here and there but it was closing in on its grant proposal for its second phase, and the folks that I had worked with on the UC Berkeley side decided they would hire me to help finish off the grant proposal and implement the second phase. So we moved from Chicago to California, and over the next couple years I was involved in a bunch of different activities starting with the death of Bamboo. Bamboo died maybe four months after I arrived in California, which is really awkward because that was ostensibly the reason why I was hired. But they didn’t fund our second phase proposal. I think that was merciful for everyone in retrospect, but it was it was hard at the time. They did say that they were willing to fund a grant proposal for DiRT, so that occupied my time for a while, building up the new DiRT, implementing that grant proposal, but I also increasingly transitioning to building a digital humanities program at Berkeley. While we had spent a lot of time investing in cyberinfrastructure, no one had a good sense of who was even doing DH on campus. Was anyone doing DH? There had been no effort to catalyze community-building. So Berkeley turned its attention from these multi-disciplinary cyberinfrastructure initiatives into cultivating a local community.</p> <p><img alt="Failure to probe assumptions" data-file-id="39" src="http://www.quinndombrowski.com/assets/images/failure_assumptions.png" width="600" /></p> <p><strong>Failure to probe assumptions</strong>. I feel like this is at the core of what went wrong with DHCommons and DiRT which were both still going on during this time. Here are some assumptions behind DiRT: that <strong>crowdsourcing is effective, low cost, and sustainable</strong>. It was an article of faith for a while, that this was the way to do it. Look at Wikipedia! That was great! Crowdsourcing was the way to go. <strong>Having a parent organization is crucial for sustainability</strong>. We thought one of the problems with DiRT in its current form where it was to Berkeley was, what if we have budget cuts? What’s going to happen to this thing that wasn’t related to resources that Berkeley supported? So we thought we needed to find a parent organization. <strong>Making it easier for people to contribute it will lead to an uptick in contributions</strong>. In principle, that seems like a reasonable assumption; in practice, not so much. <strong>Documenting contributions to give people “credit” will incentivize contributions</strong>. That didn't really work. <strong>“Bells and whistles” are important for directory to stay relevant</strong>… we built them, but people didn't really come to sustain the directory, which is the core thing. You need to keep adding new tools to a tool directory, and get rid of spam and add reviews, and do these things in order to keep a directory alive, beyond just keeping the server on. That piece never really worked out. We also thought an editorial board would be a reliable source of contributions, but it turns out that a group of overwhelmed, busy people is no more effective than a single overwhelmed, busy person.</p> <p>DHCommons was the project-collaborator matching directory that Ryan Cordell and I started, and later we added an overlay journal, which would become the journal of centerNet, one of the DH organizations. For the directory side, we thought, if people only knew about project collaboration opportunities, they’d take the initiative and follow up on those opportunities. People had profiles where they said what they were interested in working on, and projects could list what sort of help they needed, and we thought people would match themselves with projects. People mostly did <em>not</em> match themselves with projects. We thought people would contribute to and update the directory of projects, given the benefit it would provide doing things like environmental scans. That also didn't happen.</p> <p>With the journal, we thought people with mid-stage projects would need a publication to justify all the work they had put into the project so far. It seemed like a better idea that it turned out to be. The biggest failure was our assumption that people can easily adapt to new forms of scholarly writing and peer review. But we discovered that it's hard enough to write a regular journal article, and it's hard enough to write a grant proposal already. When people are asking you to write something that's a hybrid between an article and a grant proposal, with elements of self-reflection on your process and your interventions, that was too much – let alone asking people to review it, to say nothing of asking people to write reviews that would then be published publicly along with the work itself. Innovating new genres of writing was less of a good idea than it seemed.</p> <p><img alt="Failure to acknowledge change" data-file-id="40" src="http://www.quinndombrowski.com/assets/images/failure_change.png" width="600" /></p> <p>Through all of these failures, I think my own biggest failure was <strong>failure to acknowledge change</strong>. I started DHCommons and DiRT when I lived in Chicago and had no kids, and that meant I liked to be inside where it was air conditioned or heated for most of the year. I had my evening stretching out into infinity beyond me. I had nothing but time to fiddle with code and even do tool updates myself. But then I had two kids, and discovered that I enjoy sewing, and furthermore, it’s okay to have a hobby that's not an academic work-hobby. You can do something just because it's fun. That's a lesson that it took me moving to California to learn. For a long time, I failed to acknowledge that the circumstances that I faced were really different than the circumstances in which I started these projects. The time ultimately came to make a few changes. I had to let go and the emails that I had to write saying “I am stepping down from DHCommons, I can't do this anymore,” and “I need to move on from DiRT, I can't do this anymore,” were some of hardest emails I have ever written. Luckily, at least for DiRT I've been talking to Geoffrey Rockwell about the possibility of salvaging some pieces of DiRT and adding them to TAPoR. Despite having a very difference sustainability model than DiRT, it’s one of the longest-running directories around. With DHCommons, I don't really know where things stand. I don't know where things are going, but I also need to stop worrying about it, because I needed to move on.</p> <p><img alt="Failure to forge a shared vision" data-file-id="41" src="http://www.quinndombrowski.com/assets/images/failure_sharedvision.png" width="600" /></p> <p>Other recent failures include <strong>failure to forge a shared vision</strong>. I've been working with a digital humanities program funded by the Dean of Arts and Humanities, and they had a certain view of how that program should be run, how the consulting should be run, and we didn't necessarily see eye-to-eye. I thought we were more on the same page then we ended up being, but push came to shove and funding was cut, and they decided not to continue to fund my involvement in DH anymore. Because I worked for a central research IT group, that meant that I needed to shift my focus to other things that the group already ran: high-performance computing, research computing, cloud computing, and research data management, but not DH. That was the end of my involvement with DH as a formal part of my job, just last summer.</p> <p><img alt="New opportunities for failure" data-file-id="42" src="http://www.quinndombrowski.com/assets/images/failure_hpc.png" width="600" /></p> <p>But new jobs bring new opportunities for failures! I have been learning all sorts of things over the last year, and honestly, it's pretty exciting. I realized I've been doing this sort of standard DH support role in one form or another for about 10 years and so moving into supporting high performance computing and research computing is really exciting and different. I ask stupid questions all day long. I sort of manage a group of grad students and undergrads, and frankly, even the undergrads probably understand this stuff better than I do. My job is to get obstacles out of their way, to help them reach consensus and make decisions on things while trying to broker different interests. I have learned slews of new acronyms. Now I can say things like, “Gee, it seems like we're having an issue with SLURM this morning,” and only slightly chuckle in the back of my head. Am I really saying this? If things get bad, I can always fall back on saying, “Sorry, just a medieval Slavist here, sorry for these stupid questions, thank you for your consideration.”  But it's been exciting.</p> <p><img alt="Failure to do right by others" data-file-id="43" src="http://www.quinndombrowski.com/assets/images/failure_others.png" width="600" /></p> <p>The last kind of failure that comes to mind is the one that keeps me up at night, especially in my current role. It’s <strong>failure to do right by others</strong>. This has come to the fore in the last year fairly dramatically with some of these sexual harassment allegations against Franco Moretti, and others in the digital humanities community, but it's not always that dramatic. There are other practices that are not necessarily doing right by others, such as not necessarily providing equal compensation for equal work. There are lots of situations in grad school I’ve seen, here and there, grad students being asked to provide unpaid domestic labor for their advisors. That one’s clearly dubious, but there are other situations that are even more subtle. I'm really glad to be an IT person who works in IT organization and the structures are in place and everyone’s incentives are aligned to do right by people administratively. I get performance reviews because my boss doesn't get his raise unless he gives all of his staff performance reviews. I also know that there are lots of IT people out there who are managed by faculty who have never looked into what it is that IT people need to get raises or correct compensation for their work, and don’t seem particularly interested in spending the necessary time to figure out how to help your people towards the next step in their career – whether or not theirs is a path that you yourself even understand. Things like that. Or a manager who is really into projects and wants to play a hands-on role, and tramples on other people’s getting to learn and engage with these materials because they're just so excited about it. That's not really doing right, either.</p> <p>As a woman in IT*, I've had far fewer ridiculous experiences than most. I'm not entirely sure why that is, but still, there was the time I had a manager who got in my face asked why I wasn't hanging out socially with the only other woman that I worked with. Because sharing the same gonads was definitely enough reason for like him to be friends with all the guys? I think he meant well, and people also probably to are trying to mean well when, for instance, just in the last week, two people of the managerial class have come to me and said, “Whoa, you're really pregnant.” It’s like, what, you think I hadn’t noticed? Again, they didn’t mean anything by it, but I try to think a lot about these kinds of things. What you do, and what you say, and how you work with people – especially people who don't really understand the systems that you understand, or what opportunities are available to them. I want to ensure that they can get those opportunities, and give them chances to fail, and chances to try things, and give them feedback and move obstacles out of their way. Those are the things that I think about a lot, and I try really hard not to fail. I think that this is a one kind of failure that maybe is an exception to the rule. You don't need personal experience failing in this way to learn lessons abut how to do better. But it’s hard – I think everyone fails to live up to their own expectations for themselves from time to time.</p> <p><img alt="" src="http://failure-taxonomy.png/" /><img alt="" data-file-id="47" height="540" src="http://www.quinndombrowski.com/assets/images/failure_taxonomy_0.png" width="600" /></p> <p>So here's my taxonomy of failure, roughly construed after fourteen years of failing one way or another along my path of doing digital humanities. You can argue with many pieces of it, but I think these are some lenses to consider in your own work as you move forward. And I think it’s worth talking about them. There really aren't a lot of established examples of people doing this. But in a lot of cases, sharing the failure that you've had, sharing how you got there, and how you recovered from it – even if that recovery looks like stopping altogether and trying something else – it’s valuable for you as a form of self-reflection, and for the whole community. May you learn from your failure and grant others the same.</p> <p><em>* Note: I've always hated using that phrase, but it felt unavoidable in this and similar circumstances. Since this talk, I've started identifying as non-binary -- which has been made easier by not being in IT.</em></p> <p><em><img alt="" data-file-id="48" height="540" src="http://www.quinndombrowski.com/assets/images/failure_final_0.png" width="600" /></em></p> Annotating geeky fashion (or, what I wore to DH 2014) 2014-07-11T00:00:00Z http://www.quinndombrowski.com/blog/2014/07/11/annotating-geeky-fashion-or-what-i-wore-dh-2014/ <p>I've never really thought of myself as fashionable in any sense-- I can count every pair of shoes I own on one hand, own no makeup at all, and pick up clothing staples at the local Goodwill on half-price days. But I did teach myself how to sew a few years ago (upon discovering that "business casual" clothes were either my size or affordable, but never both), and moving to Berkeley has given me the freedom to make things that are a little more colorful than what I wore in Chicago. The discovery of <a href="http://www.spoonflower.com/profiles/quinnanya">Spoonflower</a> also opened up new possibilities in geek-wear.</p> <p>So, for those who are curious, here's some "metadata" to go with this week's attire.</p> <h3>Tuesday: Bamboo Memorial Outfit</h3> <p><a href="https://www.flickr.com/photos/quinnanya/14628082774" title="Tuesday: Bamboo Memorial outfit by Quinn Dombrowski, on Flickr"><img src="https://farm6.staticflickr.com/5477/14628082774_7af6c12a05_z.jpg" width="409" height="640" alt="Tuesday: Bamboo Memorial outfit" /></a><br /> Presenting on Bamboo at the DARIAH workshop, I figured I should wear the two bamboo-patterned pieces of clothing I sewed while the project was still alive and well.</p> <h3>Wednesday: Fish Eats Brain & Shin-Bijutsukai</h3> <p><a href="https://www.flickr.com/photos/quinnanya/14607231406" title="Wednesday: Fish Eats Brain & Shin-Bijutsukai by Quinn Dombrowski, on Flickr"><img src="https://farm4.staticflickr.com/3916/14607231406_9f2a89dcec_z.jpg" width="514" height="640" alt="Wednesday: Fish Eats Brain & Shin-Bijutsukai" /></a><br /> The shirt design is from a <a href="https://www.flickr.com/photos/quinnanya/2415419470">whiteboard</a> at the University of Chicago, and depicts one of the two iconographies of the UChicago-student relationship (being eaten). The squares in the skirt are from a 1901-1902 Japanese design magazine, <a href="http://publicdomainreview.org/collections/shin-bijutsukai-japanese-design-magazine-1902/">Shin-Bijutsukai</a>, which I found in the Public Domain Review. I downloaded the images from the Internet Archive, cleaned them up, and had them printed at Spoonflower as fabric swatches.</p> <h3>Thursday: Bulgarian dialectology & technology scraps</h3> <p><a href="https://www.flickr.com/photos/quinnanya/14443638969" title="Bulgarian dialectology & technology scraps by Quinn Dombrowski, on Flickr"><img src="https://farm4.staticflickr.com/3842/14443638969_fe265e4821_z.jpg" width="514" height="640" alt="Bulgarian dialectology & technology scraps" /></a><br /> The top is from Spoonflower. I scanned a particular data set from the Bulgarian Dialect Atlas. There's <a href="https://www.flickr.com/photos/quinnanya/6876319124/sizes/l">also a matching skirt</a> that has the maps that correspond to that data set. The main fabric of the skirt is something I found on the side of the street in Berkeley. The two fabrics I added are scraps from a pair of pants (the circuits) and a <a href="https://www.flickr.com/photos/quinnanya/8175616267">digital Slavist shirt</a>.</p> <h3>Friday: Fish Eats Brain scraps</h3> <p><a href="https://www.flickr.com/photos/quinnanya/14627031301" title="Fish eats brain skirt by Quinn Dombrowski, on Flickr"><img src="https://farm3.staticflickr.com/2924/14627031301_29bfc12c56_z.jpg" width="490" height="640" alt="Fish eats brain skirt" /></a><br /> I sewed the top and skirt, though there's nothing particularly geeky about the top. The skirt has scraps of a <a href="https://www.flickr.com/photos/quinnanya/5583249384">fish eats brain fabric</a></p> <h3>Bonus: Bizarre internet slang & Russian fairy tales</h3> <p><a href="https://www.flickr.com/photos/quinnanya/14443691308" title="Bonus: fake internet slang & Russian fairy tales by Quinn Dombrowski, on Flickr"><img src="https://farm4.staticflickr.com/3852/14443691308_31733367d8_z.jpg" width="508" height="640" alt="Bonus: fake internet slang & Russian fairy tales" /></a><br /> Because I mistakenly counted Monday separately from Sunday (my flight left Sunday night from SFO, which was already Monday in Lausanne), I had an outfit to spare. The top is supposed to be internet slang, albeit a combination of obscure and completely sanitized variants, probably intended for purchase by a a middle-aged person trying to sew something hip for their kid. So, there's things like "HUGZ", "LMHO" (H, not A), "JTOL#404" (to which I say, WTF?), "AWHFY", etc. The skirt is illustrations from Russian fairy tales, with horrible things happening to people. I tend to wear it when I've got an unpleasant meeting to attend.</p> AcWriMo: a postmortem 2012-12-02T00:00:00Z http://www.quinndombrowski.com/blog/2012/12/02/acwrimo-postmortem/ <p><a href="http://www.flickr.com/photos/quinnanya/8159721512/" title="Here comes winter by quinn.anya, on Flickr"><img src="http://farm9.staticflickr.com/8478/8159721512_9667e624b2_m.jpg" width="240" height="160" alt="Here comes winter" class="alignright" /></a>AcWriMo completely failed to have the effect I'd hoped for, but I'm taking it as a sign of a positive change.</p> <p>One of the key axioms underlying life at UChicago is that you should always be working. I know people there who have hobbies that do not in any way relate to their professional careers, but it's certainly not the sort of information you freely volunteer in conversations with casual acquaintances. Leaving academia for an alt-ac career felt extremely freeing, like I suddenly had a choice about how I could spend my evenings. But in retrospect, it didn't take long for me to completely fill my free time with obligations and projects that I took on with more enthusiasm than forethought. Instead of blindly chasing dissertation chapters or publications, I took on building new systems, helping people crunch data, dealing with technical and administrative tasks for almost anyone who seemed like they needed some help. The objects of my attention were different, but like my academic colleagues, I came home from work every day and spent just about every evening and weekend behind my computer, doing work that I felt needed to be done, but never pausing to ask myself why, or whether I was the right person to be doing the work, or whether now was the right time.</p> <p>When I started "Drupal for Humanists", I had plans to leave UChicago for another job at another institution, but the timing of the departure and the direction I was headed both changed in the six months that followed. What I didn't realize was the profound impact that a place can have on your life. It's not an entirely comfortable thought for those of us whose careers require going wherever there's a job, rather than making the choice about where you want to live. The way we often talk about things, you'd think that a life is defined first and foremost by the work one does, and everything else amounts to inconsequential details, which you might only notice on those rare occasions when you're not behind a book or computer, working on your intellectual pursuits.</p> <p>Imagine, then, my culture shock when-- in my first week at Berkeley-- I tell my boss I'll be sending him a revised draft of a grant proposal that evening, and he cheerfully replies that he'll take a look in the morning, because he's going to the forge after work to turn a steel rod into some handcrafted nails for his kitchen remodeling. Not only is there a forge nearby that anyone can use after taking a few classes (which is pretty amazing), but even more remarkable, people feel no shame in revealing that work isn't their first priority in all circumstances. </p> <p>As that strange behavior has started to seem more normal, I've found myself taking a serious look at all the projects I've gotten myself involved in, and making deliberate choices about what to continue doing, and where I need to wrap up my work and move on. Sometimes this has led to awkward conversations, but it's liberating to feel like I've chosen how I spend time, rather than feeling drowned by obligations where I can't even clearly articulate for myself <em>who</em> I have the obligation to, exactly, or <em>why</em>-- and that includes AcWriMo.</p> <p>I continue to be reminded that "Drupal for Humanists" is, indeed, something I honestly want to do. I've also discovered that the early mornings are the best times for me to reliably make progress on it. That said, there are other things that require attention in the morning, and I'm still working on finding the optimal balance. I'll keep writing, but the sustained monomania necessary for making a huge leap forward on the project just wasn't worth missing out on taking <a href="http://www.flickr.com/photos/quinnanya/8159721512">long walks through the neighborhood</a>, smelling <a href="http://www.flickr.com/photos/quinnanya/8152454513/">flowers</a>, <a href="http://www.flickr.com/photos/quinnanya/8159725298">marveling</a> at <a href="http://www.flickr.com/photos/quinnanya/8203759057">protesters</a>, <a href="http://www.flickr.com/photos/quinnanya/8175067019">sewing</a> <a href="http://www.flickr.com/photos/quinnanya/8175616267">things</a> <a href="http://www.flickr.com/photos/quinnanya/8178577898">for</a> <a href="http://www.flickr.com/photos/quinnanya/8175068973">myself</a> <a href="http://www.flickr.com/photos/quinnanya/8155311467">and</a> <a href="http://www.flickr.com/photos/quinnanya/8128270894">others</a>, enjoying <a href="http://www.flickr.com/photos/quinnanya/8198162546">New Orleans</a>, visiting <a href="http://www.flickr.com/photos/quinnanya/8214036170">family</a> for <a href="http://www.flickr.com/photos/quinnanya/8211616670">Thanksgiving</a>, making the apartment <a href="http://www.flickr.com/photos/quinnanya/8235333120">festive</a> to match the <a href="http://www.flickr.com/photos/quinnanya/8204845816/">city</a>. I completely failed AcWriMo, but I had a wonderful November, and I don't feel the least bit bad about it.</p> AcWriMo 2012-11-03T00:00:00Z http://www.quinndombrowski.com/blog/2012/11/03/acwrimo/ <p><a href="http://www.phd2published.com/2012/10/15/announcing-acwrimo/"><img src="http://www.quinndombrowski.com/assets/blog/acwrimo.png" class="alignright" /></a>At the beginning of August, I moved from Chicago to Berkeley. It's been a wonderful change that has come with many upsides, including <a href="http://www.flickr.com/photos/quinnanya/sets/72157631554000634/">beautiful scenery</a>, <a href="http://www.flickr.com/photos/quinnanya/sets/72157631608661440/">colorful</a> <a href="http://www.flickr.com/photos/quinnanya/sets/72157631667305094/">local</a> <a href="http://www.flickr.com/photos/quinnanya/sets/72157631717888094/">events</a>, and other <a href="http://www.flickr.com/photos/quinnanya/sets/72157631817113051/">wonderful</a> <a href="http://www.flickr.com/photos/quinnanya/sets/72157631817300424/">places</a> just a short drive away. The downsides have included <a href="http://www.flickr.com/photos/quinnanya/sets/72157631729952875/">intense local politics</a>, and discovering that finally "having a life" outside of job work and digital humanities work is not at all conducive to making progress on the projects I've committed myself to.</p> <p>I don't generally go for public, community-oriented, temporally bounded accountability pledges, but I know that deadlines are one of the most reliable ways for me to make progress on projects, and it's been far too easy to nudge the due date on the pesky Toodledo task of "write <strong>anything</strong> on <em>Drupal for Humanists</em>" forward a week, and then another, and then a month. So, this <a href="http://www.phd2published.com/2012/10/15/announcing-acwrimo/">Academic Writing Month (AcWriMo)</a>, I'm going to commit to getting something useful down for all the major sections of the outline for <a href="http://drupal.forhumanists.org/">Drupal for Humanists</a>. It's not going to cover every module you could want when using Drupal for digital humanities, and it's not going to cover every cool feature of the modules it does address, and there'll be placeholders, but I want to finish the month with something that someone could reasonably use.</p> <p>And I'm already starting two days behind.</p> Alternate uses for a Slavic degree: dummy content generator 2012-07-10T00:00:00Z http://www.quinndombrowski.com/blog/2012/07/10/alternate-uses-slavic-degree-dummy-content-generator/ <p>As I've <a href="http://drupal.forhumanists.org/blog/2012/07/11/drupal-humanists-now-website">announced elsewhere</a>, <em>Drupal for Humanists</em> is launching today on its own domain. I wanted to make sure that there was at least one case study available before launch, complete with a downloadable database and file system, so I spent the end of last week essentially re-building my site <a href="http://dhcommons.org/">DHCommons</a> from scratch, but leaner, better, and with the benefit of hindsight.</p> <p>To understand how a case study site works, you have to see it populated with content. There's no shortage of sites that can generate <a href="http://www.lipsum.com/">Lorem Ipsum</a> filler content, or <a href="http://designshack.net/articles/inspiration/30-useful-and-hilarious-lorem-ipsum-generators/">more whimsical variants</a> thereof. Still, I find copying and pasting random text to be less than inspiring<a href="http://www.quinndombrowski.com/blog/2012/07/10/alternate-uses-slavic-degree-dummy-content-generator/#1"><sup>1</sup></a>, even for sites that have caused me problems, where dummy content like <em>" Pisco sour bourbon lancer tequila sunrise sangría drambuie strathisla cardhu bronx bruichladdich chivas regal pink lady, prince shnell; manhattan."</em> feels somehow apt. As a rule, I'd rather dream up content that makes some kind of sense, at least if you're willing to engage in some suspension of disbelief.</p> <p>My academic background is in Slavic linguistics, with a focus on medieval Russia, which is among the most obscure sub-sub-fields of the humanities. There's not even a comprehensive work in English that translates the <a href="http://en.wikipedia.org/wiki/Birch_bark_document#Russia">Old Novgorod birchbark letters</a> I worked on. In building <a href="http://dfhcommons.drupal.forhumanists.org/">Drupal for Humanists Commons</a>, I thought I'd take the opportunity to throw together some dummy content that reflects the characters, stories, and actual historical people that are still dear to me. I included many of these links within the site content, but here are the stories behind the content, conveniently in one place.</p> <h3>Onfim</h3> <p>"Onfim" is the name associated with the child who did a series of drawings on birch bark in 13th century Novgorod, along with practicing his writing. They're extremely cute, and don't represent the human (or equine) form any more accurately than your average young child today can manage to do. (Birchbark letters <a href="http://gramoty.ru/index.php?no=200&act=full&key=bb">200</a>, <a href="http://gramoty.ru/index.php?no=202&act=full&key=bb">202</a>, <a href="http://gramoty.ru/index.php?no=206&act=full&key=bb">206</a>, and <a href="http://gramoty.ru/index.php?no=210&act=full&key=bb">210</a> are good examples.) In <em>Drupal for Humanists Commons</em>, Onfim is an artist seeking models for "the Men on Horseback Project [which] aims to celebrate the strength and beauty of horses and men through a series of stick-figure-like etched drawings in birch bark." His user icon is from birchbark letter 206.</p> <h3>Igor Svyatoslavich</h3> <p><a href="http://en.wikipedia.org/wiki/Igor_Svyatoslavich">Igor Svyatoslavich</a> is the Igor in the sometimes-disputed 12th century "<a href="http://en.wikipedia.org/wiki/The_Tale_of_Igor%27s_Campaign">Igor Tale</a>" (or, "The Tale of Igor's Campaign", or "The Lay of Igor’s Campaign", or "The Song of Igor's Campaign"), which tells of his defeat in a battle with the Polovtsians (AKA the <a href="http://en.wikipedia.org/wiki/Cuman_people">Cuman people</a>, a nomadic Turkic tribe). Nabokov once <a href="http://lib.ru/NABOKOW/slovo.txt">translated it into English</a>. The "Polovtsian Reduction Campaign" is my artless transformation of this poem into a <em>Drupal for Humanists Commons</em> project. His user icon is from a <a href="http://en.wikipedia.org/wiki/File:Ivan_Bilibin_181.jpg">painting by Ivan Bilibin</a>.</p> <h3>Boyan</h3> <p><a href="http://en.wikipedia.org/wiki/Boyan_(bard)">Boyan</a> is the bard in the Igor Tale. He appears in some of the earliest lines of the poem, very evocatively. Here's Nabokov's translation:</p> <blockquote><p>Let us, however,<br /> begin this song<br /> in keeping with the happenings<br /> of these times<br /> and not with the contriving of<br /> Boyan.<br /> For he, vatic Boyan<br /> if he wished to make a laud for<br /> one,<br /> ranged in thought<br /> [like the nightingale] over the<br /> tree;<br /> like the gray wolf<br /> across land;<br /> like the smoky eagle<br /> up to the clouds.</p> </blockquote> <p>Boyan is available as a collaborator in <em>Drupal for Humanists Commons</em>, seeking new adventures. His user icon is from a performance of the Russian folk music group <a href="http://www.flickr.com/photos/quinnanya/4547304412/">Zolotoy Plyos</a>; you can watch one of their songs <a href="http://www.youtube.com/watch?v=iSbJ1l9TlQU">on YouTube</a>.</p> <h3>Mikita</h3> <p>Mikita appears in <a href="http://gramoty.ru/index.php?act=full&id=386">birchbark letter 377</a>, from the late 13th century, which contains a very blunt marriage proposal: "From Mikita to Anna. Marry me. I want you and you want me. And as witness to this Ignat..." In <em>Drupal for Humanists Commons</em>, Mikita is available as a collaborator, seeking marriage. His user icon is from <a href="http://www.flickr.com/photos/quinnanya/235962928">a statue in Novgorod</a>.</p> <h3>Nastassja</h3> <p>Nastassja appears in <a href="http://gramoty.ru/index.php?act=full&id=50">birchbark letter 49</a>, from the early 15th century, where she writes to her brothers that her husband has died, and asks how they'll take care of her and her children. Her project, "Domestic bliss", assumes things didn't work out with her brothers providing support, and she's looking for a new husband. She's also interested in modeling (perhaps for Onfim?) to help make ends meet. Her user icon is from a Library of Congress photo on Flickr Commons, showing <a href="http://www.flickr.com/photos/library_of_congress/3993919632/">Types of the Russian common people now in a state of revolt</a> from 1905.</p> <h3>Sviatopolk I Vladimirovich</h3> <p><a href="http://en.wikipedia.org/wiki/Sviatopolk_I_of_Kiev">Sviatopolk the Accursed</a> is the villain in the 11th century saints' lives of Boris and Gleb-- which, like the Igor Tale, were required readings in courses on Old Russian at the University of Chicago. His project "Fewer Attendees at Family Reunions" deals with his plan to eliminate his half-brothers Boris and Gleb, whose parentage <em>wasn't</em> under scrutiny, and who might therefore be seen as better replacements for their father. His user icon is from the 11th century <a href="http://en.wikipedia.org/wiki/File:Sviatopolk_silver_srebrenik.jpg">silver coin</a> bearing his likeness.</p> <h3>Boris and Gleb</h3> <p><a href="http://www.flickr.com/photos/quinnanya/1324538861/" title="You said it, Gleb by quinn.anya, on Flickr"><img src="http://farm2.staticflickr.com/1129/1324538861_b3309aef20_m.jpg" width="240" height="180" alt="You said it, Gleb" class="alignright" /></a><a href="http://en.wikipedia.org/wiki/Boris_and_Gleb">Boris and Gleb</a>, the victims of Sviatopolk's plotting, were the first saints canonized in Kievan Rus'. Their saints' lives include some really great death speeches; Gleb's in particular comes off as sort of whiny, and I have a mug at home with a line from it, "Woe is me, woe is me! This isn't murder, but the cutting of a sapling!" Their user icon is from a 14th century <a href="http://en.wikipedia.org/wiki/File:%D0%A1%D0%B2%D1%8F%D1%82%D1%8B%D0%B5_%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%B8_%D0%93%D0%BB%D0%B5%D0%B1.jpg"><em>actual</em></a> icon.</p> <h3>Vladimir Sviatoslavich the Great</h3> <p><a href="http://en.wikipedia.org/wiki/Vladimir_I_of_Kiev">Vladimir I of Kiev</a> is a delightfully colorful character. In addition to consolidating the Kievan realm, he Christianized the land-- though there's two stories about how it happened. He was of Viking descent (his Norse name being Valdamarr Sveinaldsson), and his mother appears in Norse sagas as a prophetess-come-housekeeper who was brought from her cave to the palace to predict the future, clean up a bit, and sleep with the king. Vladimir had so many children by so many wives that his family life and children <a href="http://en.wikipedia.org/wiki/Family_life_and_children_of_Vladimir_I">have their own Wikipedia page</a>. According to Russian sources (such as the <a href="http://en.wikipedia.org/wiki/Primary_Chronicle">Primary Chronicle</a>, poetically referred to in English as "Tale of Bygone Years"), the <a href="http://en.wikipedia.org/wiki/Christianization_of_Kievan_Rus%27#Vladimir.27s_baptism_of_Kiev">Christianization of Rus'</a> came about after Vladimir sent envoys to explore the major faiths in the area. Apparently the Muslim Bulgarians of the Volga region were gloomy and smelled bad, and the ban on drinking and pork was a total deal-killer. He met with Jewish envoys, but wasn't sold. He wasn't impressed with the Catholic Germans' churches. But the Divine Liturgy in Hagia Sophia stunned him: "We no longer knew whether we were in heaven or on earth, nor such beauty, and we know not how to tell of it." So he converted to Orthodox Christianity, and made sure his kingdom followed suit. His project "Religion for Rus'" is based on this story. The other version of the story speaks less of his soul, and more of his political cunning and/or his lust for women. While different sources vary on the details, Vladimir seems to have conversion to their religion (and possibly offered military aid), in exchange for the hand of Emperor Basil II's sister, Anna. (Vladimir even took the Christian name Basil when he converted.) The fact that he was already married to pagan Rogneda seems to have not been a problem... for him, at least. Vladimir's user icon is from an <a href="http://en.wikipedia.org/wiki/File:Vladimir_Svyatoslavovich.jpg">1899 engraving</a>. The video associated with "Religion for Rus'" takes video clips from the controversial 2006 animated movie "<a href="http://en.wikipedia.org/wiki/Prince_Vladimir_(film)">Prince Vladimir</a>" (sponsored by the Russian Orthodox Church, and criticized for its historical inaccuracy) and overlays a nationalistic rock song by the group Lyube about Prince Vladimir, which lines like "for his native land and the holy faith, Prince Vladimir fought against his enemies" and "in our veins is the same blood as our ancestors".</p> <h3>Nestor</h3> <p>The authorship of the Primary Chronicle, saints' lives of Boris and Gleb, and a number of other documents is attributed to <a href="http://en.wikipedia.org/wiki/Nestor_the_Chronicler">Nestor the Chronicler</a>. Nestor is available for collaboration on writing, and his user icon is from a <a href="http://en.wikipedia.org/wiki/File:%D0%9D%D0%B5%D1%81%D1%82%D0%BE%D1%80-%D0%BB%D0%B5%D1%82%D0%BE%D0%BF%D0%B8%D1%81%D0%B5%D1%86.jpg">1919 painting</a> by Viktor Vasnetsov.</p> <h3>Yaroslav I</h3> <p><a href="http://en.wikipedia.org/wiki/Yaroslav_I_the_Wise">Yaroslav the Wise</a>, one of the youngest children of Vladimir the Great, took over the kingdom after Sviatopolk the Accursed. Due to an arrow wound, he appears in the Norse sagas as "Jarisleif the Lame"; this detail spawned the project "Accessibility in Kievan Rus'". He defeated the <a href="http://en.wikipedia.org/wiki/Pechenegs">Pechenegs</a> (a semi-nomadic Turkic group) after building a number of forts, as seen in the project "Inhibiting Pecheneg Encroachment". His user icon is <a href="http://en.wikipedia.org/wiki/File:YaroslavWiseSeal.jpg">from his seal</a>.</p> <h3>Rogneda</h3> <p>Poor <a href="http://en.wikipedia.org/wiki/Rogneda_of_Polotsk">Rogneda</a>, dumped for the Christian Anna Porphyrogenita. Her project "Interfaith Marriages Today" relates to that tragic story. The slideshow piece refers to a real <a href="http://en.wikipedia.org/wiki/Rogneda_(opera)">nationalist Russian opera</a> by Alexander Serov. If this <a href="http://www.tchaikovsky-research.net/en/Works/Articles/TH263/index.html">hilariously nasty 1872 review</a> is to believed, it isn't particularly good:</p> <blockquote><p>Now we must do justice to Serov, for he really did know how to please the public, and if his opera suffers from a lack of melodic inspiration, a coarse decorativeness in its harmony and instrumentation, the absence of any organic unity between the individual numbers, and from recitatives which completely fail to meet the requirements of convincing and truthful declamation, who would deny that the famous composer admirably succeeded in packing his opera with all kinds of effects?! Wandering minstrel-clowns [skomorokhi] dressed up as geese and bears, real horses and dogs on the stage, the moving episode of Rual'd's death, the Grand Prince's dream which actually comes to life, the ear-deafening gongs of a Chinese tam-tam—all this is the result of a deliberate attempt on Serov's part to mask the poverty of his creative imagination with bombastic stage effects.</p> </blockquote> <p>Rogneda's user icon is from <a href="http://en.wikipedia.org/wiki/File:Anton_Losenko._Vladimir_and_Rogneda.jpg">a 1770 painting</a> by Anton Losenko.</p> <h3>Anna Porphyrogenita</h3> <p><a href="http://en.wikipedia.org/wiki/Anna_Porphyrogenita">Anna Porphyrogenita</a>, the sister of Byzantine Emperor Basil II, was apparently less than thrilled to be married off to a newly-converted Viking/Slavic barbarian, but she got into the spirit of Christianization and founded a few churches and convents in Kievan Rus'. Her user icon is from a <a href="http://en.wikipedia.org/wiki/File:Lebedev_baptism.jpg">painting of the baptism of the Kievans</a> by Klavdy Lebedev.</p> <p><em><a name="1" id="1"><sup>1</sup></a> One exception: I'm gleefully looking forward to building a Drupal case study site that's a good fit for content from <a href="http://www.elsewhere.org/pomo/">The Postmodernism Generator</a>.</em></p> Drupal book progress (or lack thereof) 2012-06-26T00:00:00Z http://www.quinndombrowski.com/blog/2012/06/26/drupal-book-progress-or-lack-thereof/ <p><a href="http://www.flickr.com/photos/quinnanya/7422686278/" title="Writing a book is hard. by quinn.anya, on Flickr"><img src="http://farm6.staticflickr.com/5463/7422686278_3afba45850_n.jpg" width="236" height="320" alt="Writing a book is hard." class="align-right" /></a>It's been about six months since Elijah Meeks and I kicked off our plan to write a book on Drupal for an audience of humanists, librarians, and higher-ed IT folks who support humanities research and teaching. Since then, I've repeatedly found myself explaining key things about Drupal, and wishing that I'd finished the book so I could hand it to people as a resource. Unfortunately, feeling dedicated to the project in an abstract way has not meant that at any given moment what I want to do is sit down, focus and just write it. I'd hoped that spending nearly two months in Tempe, AZ this summer (where I don't have internet at home, and the heat is hellish) would leave me with nothing else to do in my spare time besides writing this book, but somehow three weeks have slipped by without much to show for it. Moreover, the new Civilization V expansion pack has not helped the situation any.</p> <p>A few recent developments have opened the door to new avenues for making myself make steadier progress. Elijah and I have decided not to look for a commercial publisher for the book. Instead, we'll publish it online, for free. Since there's people in our intended audience who like having a physical book to refer to, we'll self-publish a printed version and list it on Amazon. What we'll be sacrificing in riches (what few there might be) and the extra credibility of a publisher's endorsement we'll make up for in not having to give up control over how and where our work can be published. We'll use a Creative Commons license in hopes of encouraging people to share, remix, and use our work in whatever way makes sense to further the cause of Drupal as a tool for digital humanities.</p> <p>So that I have an incentive to stop slyly nudging forward the due date for all my book-related tasks in <a href="http://www.toodledo.com/">Toodledo</a>, I hereby promise to post whatever I've managed to write each week, until this project is done. Any feedback would be much appreciated, and I hope that people find some of these pieces useful, even before all the sections have been written.</p> Scav hunt or Art? (a guessing game) 2012-05-07T00:00:00Z http://www.quinndombrowski.com/blog/2012/05/07/scav-hunt-or-art-guessing-game/ <p>When spring comes to the University of Chicago campus, there are two annual events that inject a certain whimsical randomness into my work week: <a href="http://scavhunt.uchicago.edu/">Scav Hunt</a> and <a href="http://fota.uchicago.edu/">FOTA (Festival of the Arts)</a>. In the last few years, these events have occurred one after the other-- an ordering that helps people like myself who found a kindred spirit in the author of the blog post <a href="http://www.vice.com/en_uk/read/im-sick-of-pretending-i-dont-get-art">I'm Sick of Pretending: I Don't "Get" Art</a>. My rule of thumb has been: "If it's still there on Tuesday, it's probably FOTA, not Scav leftovers."</p> <p>Not that FOTA hasn't graced the campus with some rather lovely, and unambiguously artistic, things. I still fondly remember <a href="http://www.flickr.com/photos/quinnanya/3528700664/">Weiling Lu's paintings</a> depicting UChicago's different seasons. Last year there was a <a href="http://www.flickr.com/photos/quinnanya/5754760632/">charming spirit</a> by Botany Pond, and the year before there was a <a href="http://www.flickr.com/photos/quinnanya/4597077221/">series</a> of <a href="http://www.flickr.com/photos/quinnanya/4597682300">paintings</a> on the main quad that I found quite striking.</p> <p>Still, there's also been no shortage of... "installations"... that have given me pause on the Monday after Scav Hunt. Conveniently, in past years FOTA has had a website with information about what Arts have been placed around campus, and where, which allowed me to confirm whether I was looking at the remnants of lazy Scavvies, or a Work of Art. Alas, not only has the FOTA website <em>not</em> been updated this year, the art event has been scheduled the same week as Scav Hunt. Presumably, anything peculiar spotted on the quads between now and when Scav starts on Thursday morning should be interpreted as Art, but later in the week, this appreciator of odd out-of-place things will almost certainly be rendered unable to differentiate Scav-sourced weirdness from Art.</p> <p>I've been <a href="https://twitter.com/#!/FOTAVillage/status/199525793712439296">assured by the creator of the FOTA Village art</a> (both a FOTA artist <em>and</em> a Scav Hunt judge!) that I'll be able to tell the difference. But I'm highly skeptical. To make clear my concerns, I present to you a guessing game: Scav or FOTA. Answers at the bottom, but no peeking.</p> <h3>Exhibit A: Moai Statue or Commentary on Work/Life Balance?</h3> <p><a href="http://www.flickr.com/photos/quinnanya/3512561955/" title="Meow-i statue? by quinn.anya, on Flickr"><img src="http://farm4.staticflickr.com/3645/3512561955_122061acb3_n.jpg" width="213" height="320" alt="Meow-i statue?" /></a></p> <h3>Exhibit B: Shopping Cart Monster or the Dangers of Consumerism?</h3> <p><a href="http://www.flickr.com/photos/quinnanya/4590578691/" title="Shopping cart monster by quinn.anya, on Flickr"><img src="http://farm5.staticflickr.com/4051/4590578691_818acd0b8f_n.jpg" width="213" height="320" alt="Shopping cart monster" /></a></p> <h3>Exhibit C: Illustrate your Physics Problem Set or Nostalgia for Cat's Cradle?</h3> <p><a href="http://www.flickr.com/photos/quinnanya/3532799717/" title="Really, now? by quinn.anya, on Flickr"><img src="http://farm4.staticflickr.com/3337/3532799717_30c8b44904_n.jpg" width="213" height="320" alt="Really, now?" /></a></p> <h3>Exhibit D: Googly Eyes or Concerns About University Surveillance?</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5694539537/" title="The University of Chicago is watching you by quinn.anya, on Flickr"><img src="http://farm4.staticflickr.com/3132/5694539537_00a2f999a1_n.jpg" width="320" height="213" alt="The University of Chicago is watching you" /></a></p> <h3>Exhibit E: Fountain Protector or Stuff You Can Do With Bedsheets?</h3> <p><a href="http://www.flickr.com/photos/quinnanya/3532800585/" title="Day 135: Who Let Matthew Redecorate? by quinn.anya, on Flickr"><img src="http://farm3.staticflickr.com/2326/3532800585_548c71ded1_n.jpg" width="320" height="213" alt="Day 135: Who Let Matthew Redecorate?" /></a></p> <h3>Exhibit F: Ball Gown for a Giant or ... Commentary on Unrealistic Body Expectations for Women?</h3> <p><a href="http://www.flickr.com/photos/quinnanya/3521396109/" title="Scav Hunt remnants by quinn.anya, on Flickr"><img src="http://farm4.staticflickr.com/3608/3521396109_a971f90a86_n.jpg" width="213" height="320" alt="Scav Hunt remnants" /></a></p> <h3>Exhibit G: GargoyleNutz or Criticism of the Male-Dominated Administration at the University of Chicago?</h3> <p><a href="http://www.flickr.com/photos/quinnanya/4584886783/" title="Item #83: Gargoyle NutzTM: The Ultimate Gargoyle Accessory. by quinn.anya, on Flickr"><img src="http://farm4.staticflickr.com/3307/4584886783_bfd371ced0_n.jpg" width="213" height="320" alt="Item #83: Gargoyle NutzTM: The Ultimate Gargoyle Accessory." /></a></p> <p><em><span style="font-size: .75em;"><strong>Answers:</strong> A) Scav, B) Scav, C) FOTA, D) Scav, E) FOTA, F) FOTA, G) Scav</span></em></p> Please don't ask me for permission 2012-02-10T00:00:00Z http://www.quinndombrowski.com/blog/2012/02/10/please-dont-ask-me-permission/ <p><a href="http://www.flickr.com/photos/quinnanya/5582659213/" title="Creative Commons Attribution-Share Alike by quinn.anya, on Flickr"><img src="http://farm6.staticflickr.com/5028/5582659213_8c8e8aa8a3_m.jpg" class="alignright" width="240" height="160" alt="Creative Commons Attribution-Share Alike" /></a>A few weeks ago I stumbled upon a blog post by <a href="http://ninapaley.com/">Nina Paley</a>, the cartoonist perhaps most famous for <a href="http://www.sitasingstheblues.com/">Sita Sings the Blues</a>, that emphatically made the point that, with Creative Commons licenses, <a href="http://blog.ninapaley.com/2011/04/20/yes-means-yes/">yes means yes</a>. I don't think I could put it better myself.</p> <p>Seeing as I'm not famous, I don't interpret these permission requests as a cry for attention, and I recognize that people do it with the best intentions, but I hate seeing people waiting on replies from me before using photos <em>I've already given them permission to use</em>. The fact is, dealing with permission requests is extremely low on my priority list, when I've got myriad projects for my job, and outside my job, also waiting on replies for me. Unlike requests for permission I've already granted, those projects are legitimately stalled until I reply. (I won't even get into the number of personal emails that sit unanswered for days, weeks or months, for lack of energy at the end of the day.)</p> <p>I love getting emails that say "hi, I used your stuff in this way, come take a look/can I send you a copy?" It means the system has worked, the things I've made have found another life somewhere without being encumbered by legal barriers, and I can read/reply to those whenever I've got the bandwidth. Nothing is stalled until I reply.</p> <p>I have these additional caveats (which make reuse <em>even more free</em>) on my Flickr profiles, but to reiterate here for the record:</p> <blockquote><p> Even though all of my licenses use "Share Alike" (which technically restricts you to using that very same license), you have permission to use any other Creative Commons license so long as it includes either "No Derivatives" or "Share Alike". For the sake of clarity, this means any of the following licenses:</p> <ul> <li><a href="http://creativecommons.org/licenses/by-sa/3.0">Attribution-ShareAlike</a></li> <li><a href="http://creativecommons.org/licenses/by-nd/3.0">Attribution-NoDerivs</a></li> <li><a href="http://creativecommons.org/licenses/by-nc-sa/3.0">Attribution-NonCommercial-ShareAlike</a></li> <li><a href="http://creativecommons.org/licenses/by-nc-nd/3.0">Attribution-NonCommercial-NoDerivs</a> </li> </ul> <p>I'm not comfortable with the possibility of a derivative of a derivative work being locked down by full copyright (please don't contact me to ask, the answer will almost certainly be "no"), but you have permission to use any of the licenses above for derivative works, instead of my Attribution-Share Alike license, if you prefer.</p> </blockquote> <p>So please don't ask and wait for me to reply. I want you to use my creations for anything, that's why I used a <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike license</a> (and if I used a more restrictive non-commercial license, it's because of restrictions beyond my control, like the San Diego Zoo prohibiting commercial use of photographs taken on their premises). Happy remixing, with the permission I've already granted you.</p> Drupal for Humanists 2012-01-26T00:00:00Z http://www.quinndombrowski.com/blog/2012/01/27/drupal-humanists/ <p>One question I continue to hear from digital humanists and higher ed IT folks is "what book should I pick up to learn Drupal?" I never have a particularly good answer-- not because there aren't any good books out there (I assume there are), but because I've never used one. I learned Drupal 4 through trial and error, while not paying attention in a biology class I needed to fulfill a distribution requirement that I'd put off until my last year of college. I figured out Drupal 5 and 6 (much like Drupal 4, but greatly improved) because I needed a CMS for a project and I ended up learning a lot in the process. Every time I need to do something new with Drupal, I Google until I figure it out, and then I know one more thing.</p> <p>Not the most helpful response for people who prefer to have a book on hand as they're learning.</p> <p><a href="http://www.flickr.com/photos/quinnanya/5394498354/" title="Notes by quinn.anya, on Flickr"><img src="http://farm6.staticflickr.com/5135/5394498354_fcc96a9e9c_m.jpg" width="160" height="240" alt="Notes" class="alignright" /></a>What's surprised me is that when I shrug and tell people there's stuff out there but I can't recommend any titles from personal experience, the reply has often enough been, "Why don't you write one?" I was pretty dismissive of the idea at first-- I'm generally inclined towards just posting things online-- but after enough repetitions of this conversation, I started to consider it. There's something to be said for a book with a clear presentation of Drupal, arranged in a coherent and logical way, covering "why Drupal?" and when to <strong>not</strong> use Drupal, and everything from installation to <a href="http://drupal.org/project/ds">Display Suite</a> magic for the adventurous. I really do think that anyone can build sites in Drupal, even the tech-hesitant, if someone does a good enough job walking through the process. Unlike WordPress, Drupal isn't inclined to hold your hand, but maybe a book on Drupal geared towards humanists (digital or not) and the techies who work with them could bridge that gap.</p> <p>I consulted with fellow Drupal guru <a href="https://dhs.stanford.edu/author/emeeks">Elijah Meeks</a> (whose work on spatial Drupal blows <em>my</em> mind), and we decided we're going to co-author "Drupal for Humanists" and get it published. The first part of the book will cover how to build Drupal sites in general (including modules, content types, site design, etc.), and the second part of the book will be case studies, looking at what modules and configuration settings go into the kinds of sites that are particularly relevant for humanists. Each case study will conclude with a section about how that kind of site might evolve, based on our experience building them.</p> <p>We're looking for feedback on the case studies (especially the one on multimedia) and suggestions for anything we missed, so if you have a moment, please check out the <a href="http://bit.ly/wmOOG7">Google Doc with the case study outlines</a> and leave some comments.</p> Where's the credit? Attribution in digital humanities slides 2011-06-21T00:00:00Z http://www.quinndombrowski.com/blog/2011/06/22/wheres-credit-attribution-digital-humanities-slides/ <p>I've been at <a href="https://dh2011.stanford.edu/">Digital Humanities 2011</a> since Sunday, and it's been as delightful and inspiring as always. This is the first time I've actively followed the tweet stream at a DH conference while I've been there in person, and while the extent to which it has added value has varied depending on the session, it may have been one of the most fascinating aspects of yesterday's plenary (Chad Gaffield's "Re-Imagining Scholarship in the Digital Age"). The audience was highly impressed that Gaffield walked around the stage and <em>gave a talk</em>, rather than reading a paper from the podium, which seems to be the common practice. His use of slides with a single interesting image, with fewer text-heavy or (as commonly seen here) screenshot-heavy slides, was also notable.</p> <p><a href="http://www.flickr.com/photos/quinnanya/4514904944/" title="Day 101: Creative Commons by quinn.anya, on Flickr"><img src="http://farm5.static.flickr.com/4054/4514904944_c03254f204_m.jpg" width="160" height="240" alt="Day 101: Creative Commons" class="alignright" /></a>What struck me, though, was the lack of any credit line for most or all of the images. At least one of the charts had some burned-in metadata indicating its source, but the origin of the images remained opaque. At first, I thought he was using stock photos that he'd purchased (in which case no credit line would be necessary, though I'd still like to know something about the source). But unless the standards for stock photo companies have plummeted, I don't think that can account for all of his images. There were a couple photos-- charming, if not great on the technical level-- of students sleeping that really got me wondering.</p> <p>For a talk that made reference to the importance of managing open data and copyright towards the end, I find it ironic, but not unexpected. Managing credit for slides takes work. There's no equivalent to the <a href="http://wiki.creativecommons.org/WpLicense">WordPress plugin</a> that lets you find Creative Commons licensed images within the post-writing screen, and inserts them for you with a reasonable credit line. The easiest way to find images for a talk is to do the Wrong Thing<sup>TM</sup> and just hit up Google Images. A presentation with a wide variety of images, and no credit line for any of them (besides, possibly, what's burned into the images) generally suggests that's how the image sourcing happened, and there's no social censure.</p> <p>I've seen a few different approaches to doing image sourcing right, with "right" meaning both legally and in accordance to the ideals espoused by DH-ers (including the importance of giving others credit for their work, given the essential role that credit plays in our professional lives). In the slides for her <a href="https://digitalscholarship.wordpress.com/2011/06/20/making-sense-of-134-dh-syllabi-dh-2011-presentation/">talk on DH syllabi</a>, Lisa Spiro included the URLs on Flickr for the images she used, and put a Creative Commons Attribution license on her own slides, too. I like that approach better than an alternative I've seen (though not at this conference), where all the credit names/URLs are piled together in a tiny font on the last slide. Doing it that way loses the connection between the image and its creator, and it feels a little bit begrudging. For myself, I think I'm a bit unusual insofar as it's been a long time since my <a href="http://www.flickr.com/photos/quinnanya/">personal stash of 55,000+ Creative Commons licensed images</a> didn't suffice.</p> <p>What I'd like to see, ideally, would be some sort of presentation software plugin that-- like the WordPress plugin-- would easily let you search Creative Commons licensed and public domain images without having to switch to your browser and copy-and-paste. The likelihood with which people will adopt legal practices is a lot better if it's more convenient than the common illegal alternative. This software would insert the image into your presentation, with a small, unobtrusive credit line that pulls from the cc:attributionName property in the HTML license, or whatever the closest equivalent is in the data available from the hosting service (e.g. I don't think Flickr includes the Creative Commons properties such as attributionName, but "username/Flickr" might be the closest equivalent.) Not putting the full Flickr URL on the slide itself would reduce the amount of extra text, make it clearer who the creator is, and probably not be any less useful-- how often do people actually type out those long URLs while the slide is visible?</p> <p>As a final step I'd like to see such a plugin generate a webpage that shows a thumbnail of and link to all the images that were used in the presentation, with full information (including information about, and a link to, the Creative Commons license used/public domain information). The plugin would automatically insert a link to this page on the last slide. There is, admittedly, some hand-waving necessary here about where such credit pages would be hosted, but some kind of (initially, at least, grant-funded) service for scholars seems not inconceivable. The service could also provide information about the most commonly used images, both as material for scholars studying scholarship, and for those who are less interested in browsing the wide world of CC-licensed images and would prefer to choose from images that someone else has already deemed to be of high enough quality to merit inclusion in a presentation. Since none of the images would be hosted there in any way, the number of bits needed for any page would be tiny. Of course, if such a service were to exist and then go away, the impact of the <a href="http://en.wikipedia.org/wiki/Link_rot">link rot</a> on the traceability of the images used in the presentation would be non-trivial. That said, given how willing people are to use link shorteners just to get URLs to fit within the arbitrarily small character limits of Twitter, it doesn't seem like an image credit/connector service that could make reusable multimedia more accessible and better-cited should be immediately ruled out due to the possibility of link rot.</p> <p>I'd like to hope that the trend towards Creative Commons licenses for scholarship will have the effect of increasing the social pressure for providing reasonable credit, as the implications of <em>not</em> providing credit become personal for more and more digital humanists. Having a tool that makes it easier would be a boon, though. Anyone up for applying for a grant to do something like this?</p> Collaborations between R1's and liberal arts colleges will not succeed 2011-06-12T00:00:00Z http://www.quinndombrowski.com/blog/2011/06/12/collaborations-between-r1s-and-liberal-arts-colleges-will-not-succeed/ <p>In the week since the <a href="http://lac2011.thatcamp.org/06/04/joint-session-thatcamps-lac-and-prime/">joint session</a> between THATCamp LAC participants and the people at THATCamp Prime, I've found myself reflecting on that conversation a number of times. As I said then (in person, and to the Twitterverse <a href="http://twitter.com/#!/FrostDavis/status/77405104298393600%E2%80%9D">thanks to Rebecca Davis</a>), the collaborations that work well aren’t between institutions, but between people.</p> <p>When funding agencies state that they want to “fund collaborations between R1 and Liberal Arts Colleges”, there’s a temptation to immediately reach for a consortial solution. Why not have Liberal Arts Colleges join together to form a consortium that can partner with digital humanities centers at R1 institutions as a peer? The problem is, when collaboration is framed as something that happens between entities, people fall back on assumptions. It’s hard to avoid-- how do you, as someone at an R1 tasked with implementing this collaboration, sit down with a Liberal Arts College and find out what it does, what its needs are, and why it wants to collaborate with you? You can talk to representatives on the LAC end, but if your task is to collaborate with an entity as a whole, there’s always a lingering concern that those individuals don’t represent the full range of needs that you must somehow address.</p> <p>During the THATCamp LAC/Prime conversation, someone on the George Mason end asked-- in honest curiosity, with no intent of malice or condescension-- what LAC’s can bring to the table in a partnership with R1’s. This provoked an understandably strong reaction from the LAC audience, who were taken aback at what was misread as an implication that collaborating with LACs is an act of charity. When it came to light that some THATCamp Prime attendees didn’t realize that a number of LACs have a computer science department, certain LAC attendees were disgruntled at what that misunderstanding suggested about how R1s see LACs. The part of the conversation where participants tried to relate to one another as representatives of a class of institutions, rather than scholar-to-scholar, was colored by a certain awkwardness that I suspect is inevitable given a framing of “LAC/R1 collaboration”.</p> <p><a href="http://www.flickr.com/photos/quinnanya/5802630334/" title="Gadget breakfast at THATCamp LAC by quinn.anya, on Flickr"></a>I think the key to fulfilling funding agencies’ requests for “LAC/R1 collaboration” is to find people who have shared interests and a common goal, set requirements in place (if necessary) as safeguards to ensure the project doesn’t get sidetracked from meeting both parties’ needs, and not make a fuss over institutional affiliation. Certainly, the differences in the incentive structure of R1 institutions and LACs will shape the process, but when participants are able to focus on exchanging ideas and working together towards an outcome, the collaboration is more likely to succeed because the participants see each other as valued contributors, regardless of institutional affiliation. For successful collaboration, the shared interests and goals and desire to work together need to be genuine, rather than (primarily) grant-incentivized. A scholar from an R1 institution who is skeptical of the value of working with an LAC scholar, but needs some grant money to finish a project whose direction he has already determined is unlikely to be a good collaborator if “assigned” to an LAC scholar as part of a “R1/LAC partnership program”. Neither will an LAC scholar who feels resentful towards R1s due to previous failed attempts at collaboration, who hopes that the promise of funding will make R1 scholars do what he wants. Both of these are “worst-case scenario” stereotypes, but not without some grounding in reality.</p> <p>The <a href="http://www.tapasproject.org/">TAPAS Project</a> and the <a href="http://www.projectbamboo.org/">Bamboo Planning Project</a> are two recent examples of what a successful partnership between individuals from R1 schools and LACs can look like. During the TAPAS planning workshops, all the participants engaged with the problem at hand as individuals with a unique perspective on a common problem, and a genuine desire to work together to find a solution. Needs specific to LACs were identified, and often worked into the project scope. When consensus determined that some of those needs were outside a reasonable project scope, those of us with useful experience helped brainstorm other solutions that could meet the LAC faculty member’s immediate need.</p> <p>During the Bamboo Planning Project, there were participants from LACs in every working group, and they actively contributed to efforts such as the <a href="http://wiki.projectbamboo.org/display/BPUB/Scholarly+Narrative+Repository%E2%80%9D">Scholarly Narrative Repository</a>. I never had the impression that LAC participants were viewed any differently than R1 participants-- everyone was working towards a common set of goals. That said, “what about pedagogy?” became an oft-repeated rallying cry, and ways of facilitating connections between scholars and making the case for digital humanities at one’s local institution were not in the final proposal. If the Planning Project were run again, with the goal of being an ideal LAC/R1 partnership, I think there would need to be some safeguards in place, perhaps in the form of a mandate that the final project plan must contain a pedagogy component.</p> <p>This is the digital <em>humanities</em> under consideration. Consortia, centers, institutions, organizations all play an important role, providing centralized hubs for knowledge and resources, organizing gatherings, being the clout behind grant proposals, etc., but they're not the level where meaningful, sustainable collaboration happens. Successful collaboration takes place between humans with mutual interests and a common goal, and I hope upcoming attempts to foster “LAC/R1 collaboration” don’t lose sight of that.</p> What can you do with Project Bamboo? A 3-year history of ideas 2011-05-19T00:00:00Z http://www.quinndombrowski.com/blog/2011/05/19/what-can-you-do-project-bamboo-3-year-history-ideas/ <p><a href="http://www.flickr.com/photos/projectbamboo/2509910690/" title="Workshop 1b by projectbamboo, on Flickr"><img src="http://farm3.static.flickr.com/2027/2509910690_5205179948_m.jpg" width="240" height="160" alt="Workshop 1b" class="alignright" /></a>This week marked the 3-year anniversary of <a href="http://www.projectbamboo.org/">Project Bamboo</a> Workshop 1b in Chicago, which kicked off my involvement with the project that would be the defining project for the next year and a half of my life. </p> <p>In its current incarnation as the Bamboo Technology Project, Project Bamboo promises to "roll out easy-to-use, highly scalable environments for digital scholarship... develop shared web services, platforms, and frameworks – underlying infrastructure – that higher education institutions can use collectively to sustain and connect research applications and collections... [and] define how e-research environments can evolve to support increasingly complex and large-scale forms of corpora scholarship across disciplines." (Project Bamboo <a href="http://www.projectbamboo.org/about/">About</a> page, 5/17/11). If you compare the direction and scope of the Bamboo Technology Project with the future-use scenarios defined in the <a href="http://www.quinndombrowski.com/assets/files/bamboo_planning_project_proposal.pdf">Bamboo Planning Project proposal</a> [PDF] submitted to the Mellon Foundation in January 2008, there's a clear and coherent narrative:<br /> <a href="http://www.flickr.com/photos/quinnanya/5738932892/" title="From Bamboo Planning Project to Bamboo Technology Project by quinn.anya, on Flickr"><img src="http://farm3.static.flickr.com/2398/5738932892_5d3823429d_o.png" width="491" height="314" alt="From Bamboo Planning Project to Bamboo Technology Project" /></a></p> <p>A closer look at what actually transpired during the community design process of the Bamboo Planning Project paints a different picture, best conveyed-- as so many complex ideas were during those workshops-- through a very complicated diagram. (Click to see it full size on Flickr.)<br /> <a href="http://www.flickr.com/photos/quinnanya/5738412903/sizes/o/" title="Project Bamboo: A 3-Year History of Ideas by quinn.anya, on Flickr"><img src="http://farm4.static.flickr.com/3643/5738412903_2972a21d67.jpg" width="293" height="500" alt="Project Bamboo: A 3-Year History of Ideas" /></a></p> <p>The project started with a focus on cyber<em>infrastructure</em> and tools, but the <a href="https://wiki.projectbamboo.org/display/BPUB/Workshop+1+Summary">Workshop 1 series</a> "listening tour" made it clear that these things were far from the minds of many faculty, who were more concerned about how to find people, projects, tools, and content. They wanted to demonstrate the value of digital humanities to skeptical colleagues, and fight for the legitimacy of their digital humanities projects within the tenure and review process. They wanted to engage tech-curious undergraduates so they might consider majoring in the Humanities rather than Computer Science, and create an environment where it would be safe for graduate students to reach beyond traditional printed articles to disseminate their scholarship. Having useful tools interoperate better would be nice, but how useful would it be to a lone digital humanist at a liberal arts college, without anyone to collaborate with, whose colleagues are skeptical of his methodologies and who needs to find a way to incorporate digital tools into a course on Henry James?</p> <p>When developing "future directions" for Bamboo to present at Workshop 2, our continuing focus on the technology was evident in spite of our inclusion of "Social Networking" and "Education" components. Our diagrams of service stacks failed to resonate with them and, feeling excluded from the "community" doing the "design", they called for the inclusion of what was initially called the "Stories" working group, later renamed to "Scholarly Narratives". This movement to shift the focus away from <em>tools</em> and towards <em>enabling digital humanities scholarship through a variety of means, technical and otherwise, became a powerful force in the project during Workshops 3-5.</em></p> <p>I've gone through all the public notes, working group comment threads, and scholarly narratives collected during Workshops 1-5, organized them thematically, and <a href="http://www.quinndombrowski.com/dh">posted them all</a> for anyone to read. While they provide a rich view of the conversations, insights, and needs expressed during the workshops, they are the proverbial trees, and that collection of the data makes it hard to see how various themes were manifested at different points in the project. To that end, I've put together the chart above, and the brief summary of the major themes that follows.</p> <h3>Funding (gray)</h3> <p><strong>Emerged:</strong> Workshop 1<br /> <strong>Eliminated:</strong> Future Directions, re-emerged in Working Groups with a focus on Bamboo</p> <p>Workshop 1 participants hoped Bamboo would improve the funding situation for digitizing and processing analog materials, and provide the funding necessary to motivate researchers to work together. These aspirations were not captured in any of the possible <a href="https://wiki.projectbamboo.org/display/BPUB/Future+Directions">future directions</a>, perhaps because Bamboo would first need to fund itself. The topic of funding re-emerged during the <a href="https://wiki.projectbamboo.org/display/BPUB/Working+Groups">Working Groups</a>, when the proposed "Institutional Partnerships and Support" direction morphed into the "<a href="https://wiki.projectbamboo.org/display/BPUB/Working+Group+-+Strategic+Communications">Strategic Communications</a>" working group, shifting its focus from exploring models of partnerships between organizations on a campus (scholars, DH centers, libraries IT units, etc.) to how to make the case for Bamboo on campus. This developed into the "Build and Sustain<br /> the Bamboo Consortium" aspect of the <a href="https://wiki.projectbamboo.org/display/BPUB/W3-+Implementation+Proposal">Straw Implementation Proposal</a> discussed at Workshop 3.</p> <h3>Advocacy (orange)</h3> <p><strong>Emerged:</strong> Workshop 1<br /> <strong>Eliminated:</strong> Workshop 2</p> <p>Sometimes it seemed that Project Bamboo was a digital humanities Rorschach test-- it would solve everyone's problems, but if you asked three people what problems it would solve, you'd hear three different answers. Workshop 1 participants hoped that Bamboo would legitimize digital humanities in the eyes of tenure and review boards, reduce the power of publishers, and increase the number of venues for publishing multimedia content.</p> <p>The advocacy-related themes were captured in a number of community-submitted possible future directions, and <a href="https://wiki.projectbamboo.org/display/BPUB/Directions">presented as a future direction</a> at Workshop 2, "Advocacy: Publication, Academic Recognition, Intellectual Property". As the Workshop 1 participants who were focused on large-scale advocacy were poorly represented at Workshop 2, this direction was tabled indefinitely with little objection.</p> <h3>Transparency (yellow)</h3> <p><strong>Emerged:</strong> Workshop 1<br /> <strong>Eliminated:</strong> Bamboo Technology Proposal</p> <p>There were a number of assorted topics that largely coalesce around the idea of transparency. These include:</p> <ul> <li>Exposing existing filtering processes to scholars so they can understand the underlying assumptions</li> <li>Increasing the uptake of metadata standards</li> <li>Making it easier for scholars to submit their own data for archiving and reuse</li> <li>Helping scholars promote projects they've developed</li> <li>Developing guidelines for tool development to make them intuitive for scholars</li> </ul> <p>Some of these topics were, to varying extents, incorporated into other areas of work defined during the Bamboo Planning Project. The idea of increasing the uptake of metadata standards can be found in the Direction "<a href="https://wiki.projectbamboo.org/display/BPUB/A+Body+to+Further+Common+Protocols%2C+Standards%2C+and+Principles">A body to further common protocols, standards and principles</a>"; there were some ideas about including "guidelines for tool development to make them intuitive for scholars" as part of the <a href="https://wiki.projectbamboo.org/display/BPUB/Workshop+Discussion+Draft+1.0+-+The+Forum#WorkshopDiscussionDraft1.0-TheForum-3.4.ToolsandContentGuide">Tool & Content Guide</a>, which was incorporated into the <a href="https://wiki.projectbamboo.org/display/BPUB/BIP+0.5+Bamboo+Atlas">Bamboo Atlas</a>.</p> <p>Increasing the uptake of metadata standards is implicit in the <a href="https://wiki.projectbamboo.org/display/BTECH/Collections+Interoperability">Collections Interoperability</a> area of work in the Bamboo Technology Project, but the remainder of these ideas have little to no influence in the project.</p> <h3>Pedagogy (purple)</h3> <p><strong>Emerged:</strong> Workshop 1<br /> <strong>Eliminated:</strong> Bamboo Technology Proposal</p> <p>The Liberal Arts College participants in the workshops did Project Bamboo a service by continually raising the same questions: "What about undergraduates? How can this be used in the classroom?" Led by two R1 institutions, the Bamboo workshops featured a lot of discussion of research contexts for using tools and content, with far less focus on pedagogy. The Liberal Arts College participants in particular wanted to see Bamboo collect and share good examples of undergraduate curricula making use of digital humanities tools and methodologies, and generally provide support for scholars who want to encourage their students to explore the digital humanities. </p> <p>These concerns were reflected in each step of the Bamboo Planning Project, though not always as prominently as some participants would have liked. The Bamboo Technology Proposal does not address pedagogy.</p> <h3>Scholar-focused education (turquoise)</h3> <p><strong>Emerged:</strong> Workshop 1<br /> <strong>Eliminated:</strong> Bamboo Technology Proposal</p> <p>Scholars wanted to be able to leverage knowledge gained through others' previous projects, show their colleagues what was possible through digital humanities tools and methodologies, and learn how to use new tools. Sometimes during the Planning Project, these themes were combined with the themes related to pedagogy, despite some participants' objections that showcasing the best digital humanities research in order to help legitimize the methodologies used was entirely different than teaching an undergraduate course using those methodologies. <a href="https://wiki.projectbamboo.org/display/BPUB/Working+Group+-+Scholarly+Narratives">Scholarly Narratives</a> and <a href="https://wiki.projectbamboo.org/display/BPUB/Workshop+Discussion+Draft+1.0+-+The+Forum#WorkshopDiscussionDraft1.0-TheForum-3.3.Recipes%28Workflows%29">Recipes (Workflows)</a> were major manifestations for this theme, eventually combined in the <a href="http://www.quinndombrowski.com/blog/2011/05/19/what-can-you-do-project-bamboo-3-year-history-ideas/%3Ca%20href=" https:="">Bamboo Atlas</a>">Bamboo Atlas. Neither the Atlas nor its constituent parts were included in the Bamboo Technology Proposal.</p> <h3>Community building (blue)</h3> <p><strong>Emerged:</strong> Workshop 1<br /> <strong>Eliminated:</strong> Bamboo Implementation Proposal</p> <p>One of the most striking things about the Workshop 1 series was how it brought together faculty, librarians, and IT staff from the same institution, who all shared common interests but who had never met before. The impact of those newly-formed relationships was felt in the months that followed, generating interest in finding some way to continue making those kinds of connections and convening <en>en masse to commiserate, contemplate, and tackle shared problems. Scholars also wanted to find some way to connect with faculty members at other institutions-- or even increasing the scope to include independent scholars and the public at large-- who share their interests. To some extent it was already happening on existing social networks, following in-person introductions at conferences; these meetings took place during the last dying days of MySpace, and the rise of Facebook, but before the Digital Humanities Twitter community was as robust as it is today.</en></p> <p>The Scholarly Networking thread in the Bamboo Planning Project involved some degree of infrastructure-building-- as early as the <a href="https://wiki.projectbamboo.org/display/BPUB/W2+-+Social+Network">Working Group</a>, there was talk of developing scholar-centric "widgets" or "plug-ins" for existing scholarly networks, rather than building a new network for scholars or relying on existing social network or VRE infrastructure as-is. </p> <p>Between the <a href="https://wiki.projectbamboo.org/display/BPUB/Workshop+Discussion+Draft+1.0+-+The+Forum#WorkshopDiscussionDraft1.0-TheForum-3.1.ScholarlyNetwork">description of Scholarly Networking in the Bamboo Program Document</a> and the description of the "same thing" in the <a href="https://wiki.projectbamboo.org/display/BPUB/BIP+0.5+Scholarly+Networking">Bamboo Implementation Proposal</a>, there is a significant shift away from community and towards services and infrastructure. This is most evident in how Scholarly Networking is introduced; in the Program Document, Scholarly Networking is "The virtual place for people to discover, explore, and connect with other people and groups across the Bamboo community. The Bamboo Scholarly Network may be implemented through interconnecting existing social networking tools, including the use of plug-ins and/or widgets based on open interface standards that will allow the Scholarly Network to be easily incorporated into existing portals, virtual research environments, or other research workflow systems and tools."; in the Bamboo Implementation Proposal, it is described as follows: "In collaboration with institutions, scholarly societies, and other development projects, the Scholarly Networking area of work will create two types of software: a set of small components, which we're calling "gadgets", that will plug in to and enhance existing research environments, social platforms, and collaborative forums; and a group of new services, which will filter information from several sources (including the Atlas) and supply relevant and interesting material to the gadgets." Arguably, this change in focus marks the end of the community-centric "Scholarly Networking" theme from earlier in the project. The idea of social networks as an interface for Bamboo content persists in the Bamboo Technology Proposal, called out as a potential User Interface in the Bamboo Architecture Layers (p. 43), but this is a far cry from the "community building" theme that played a significant role prior to the Bamboo Implementation Proposal.</p> <h3>Humanities marketplace (light blue)</h3> <p><strong>Emerged:</strong> Workshop 1<br /> <strong>Eliminated:</strong> Workshop 2 Proposed Directions; re-emerged in the Program Document and was functionally eliminated again in the Bamboo Implementation Proposal</p> <p>The theme of a "Craigslist for the Digital Humanities" was uniquely resilient. Originally mentioned in Workshop 1, it was not captured by any of the Future Directions or Working Groups, but strong interest particularly from Liberal Arts Colleges contributed to its inclusion in the Program Document. During Workshop 4, the <a href="https://wiki.projectbamboo.org/display/BPUB/W4+-+Polls">straw polls</a> indicating interest in various sections of the Program Document showed mixed results for the "Bamboo Exchange". Between Workshop 4 and Workshop 5, Rick Peterson of Washington & Lee-- one of the most outspoken proponents of the Exchange-- put together a demonstrator showing how such a system might work, but by that point the Bamboo Exchange had been subsumed into the broad and amorphous Bamboo Atlas.</p> <h3>Content, services and platforms (green)</h3> <p><strong>Emerged:</strong> Bamboo Planning Project Proposal<br /> <strong>Eliminated:</strong> Varies; some are being executed in the Bamboo Technology Proposal</p> <p>The Bamboo Planning Project began with content, services and platforms, and those threads live on in the Bamboo Technology Proposal. Some phases of the Planning Project brought tools and services closer to the pedagogy, education, and community areas of work. The <a href="https://wiki.projectbamboo.org/pages/viewpage.action?pageId=4554812">Tools and Content Partners Working Group</a> aimed to work with the <a href="https://wiki.projectbamboo.org/display/BPUB/Working+Group+-+Scholarly+Narratives">Scholarly Narratives Working Group</a> to distill those narratives into repeatable workflows. The "<a href="https://wiki.projectbamboo.org/display/BPUB/Workshop+Discussion+Draft+1.0+-+The+Forum#WorkshopDiscussionDraft1.0-TheForum-3.4.ToolsandContentGuide">Tool and Content Guide</a>" in the Program Document would have allowed users "... to both publish information about, and to discover, tools and content sources that are of value for research and teaching." Still, the idea of shared services running on a service platform has persisted, essentially unchanged, from the Bamboo Planning Project Proposal. Similarly, content and tool interoperability find their roots in the Planning Project Proposal. </p> <p>Of the major facets of the Bamboo Technology Proposal, Work Spaces is one of the more interesting to trace. There were <a href="http://www.quinndombrowski.com/dh/data/workspaces">relatively little discussion of workspaces as such</a>, in the workshops. After an initial appearance in Workshop 1 (and a nod towards it in the future direction of <a href="https://wiki.projectbamboo.org/display/BPUB/A+Social+Networking+Tool+or+Environment+for+the+Arts+and+Humanities">A Social Networking Tool or Environment for the Arts and Humanities</a>) it fell off the radar for an extended period of time. The Program Document referred to a "<a href="https://wiki.projectbamboo.org/display/BPUB/Workshop+Discussion+Draft+1.0+-+The+Forum#WorkshopDiscussionDraft1.0-TheForum-3.6.BambooCommunityEnvironment">Bamboo Community Environment</a>, "where Scholarly Network, Narratives, Recipes, Tools/Content Guide, Educational Materials can be found. The environment may take two general forms: (1) as a user interface that Bamboo develops and is run for the community and/or (2) by developing each of these elements as information widgets/gadgets that can be incorporated into existing Virtual Research and Collaborative Environments." While there's still a discrepancy between the Bamboo Community Environment and the Work Spaces of today's Bamboo Technology Proposal, the Community Environment in the Program Document (along with, arguably, the re-conceived non-community "Scholarly Networking" of the Bamboo Implementation Proposal) is the closest thing to a predecessor for Work Spaces in the Planning Project.</p> <h3>What happened to everything else?</h3> <p>The Mellon Foundation's merging of the Research in Information Technology Program (RIT)-- which funded the Bamboo Planning Project and was the intended recipient of the Bamboo Implementation Proposal-- with the Scholarly Communications program resulted in a thorough rewrite of the grant proposal. The "human-focused" pieces of community, pedagogy and education were eliminated. Even in the Bamboo Implementation Proposal drafts, these elements were already being sidelined through reframing in the case of Scholarly Networking, and merging everything else into an amorphous Bamboo Atlas.</p> <p>For myself, a lesson learned from the Bamboo Planning Project is that in order to accomplish anything, it's better to refrain from ever talking about doing <em>everything</em>. Be targeted with your scope, and specific with what you plan to accomplish. While the community design process built valuable relationships and produced copious data, it also raised hopes that Bamboo would be a panacea for scholars, librarians and IT staff working in the digital humanities, leading to inevitable disillusionment with the project when it failed to deliver the impossible things it suggested it could do.</p> <p>In his introductory remarks to Workshop 4, Chad Kainz said, "Over time, we'll continue to refer to [the Program Document] and look back on [it]. 'Back in 2008, we had this idea...' Hopefully in 2011 we'll look back at that. Things have changed, but maybe we can evolve that concept." Now, in 2011, looking back on the aspirations laid out in the Program Document, it's heartening to see what <em>has</em> changed, if slowly, and through little or no influence from Project Bamboo. There's a flourishing community of digital humanists on Twitter-- some of whom have met via that medium. <a href="http://digitalhumanities.org/answers/">DHAnswers</a> is a forum for leveraging others' knowledge, including knowledge gained from previous projects. More and more digital humanities courses are being taught at the undergraduate level. There are active discussions currently underway regarding developing a project registry, a people-and-projects matching service, a virtual digital humanities center, and consultancy/expertise sharing. And Bamboo might be in a position to partner with these projects through a nascent Affiliate/Consortium program. </p> <p>Project Bamboo began with services, platforms and infrastructure, and that's what it's building. If nothing else, the community design process shed light on the state of digital humanities, the challenges and needs of scholars, librarians and IT professionals, and ideas for a path forward. It produced a data set that could be used to make the case for funding initiatives outside the scope of the Bamboo Technology Project, but in the absence of a Bamboo panacea, the future of those threads lies in the hands of the digital humanities community. </p> <h3>Data</h3> <p>The data for each stage in the chart was gathered from the Bamboo Planning Project wiki, with the exception of the Bamboo Planning Project Proposal (<a href="http://www.quinndombrowski.com/assets/blog/bamboo_planning_project_proposal.pdf">PDF here</a>) and the <a href="https://wiki.projectbamboo.org/download/attachments/18382876/BTP-Final-Public.pdf">Bamboo Technology Project Proposal</a> (PDF).</p> <ul> <li><a href="https://wiki.projectbamboo.org/display/BPUB/Workshop+1+Summary">Workshop 1</a></li> <li><a href="https://wiki.projectbamboo.org/display/BPUB/Future+Directions">Mapping Future Directions</a></li> <li><a href="https://wiki.projectbamboo.org/display/BPUB/Directions">Workshop 2: Proposed Directions</a></li> <li><a href="https://wiki.projectbamboo.org/display/BPUB/Working+Groups">Working Groups</a></li> <li><a href="https://wiki.projectbamboo.org/display/BPUB/W3-+Implementation+Proposal">Straw Implementation Proposal</a></li> <li><a href="https://wiki.projectbamboo.org/display/BPUB/Workshop+Discussion+Draft+1.0+-+Bamboo+Program+Document">Program Document</a></li> <li><a href="https://wiki.projectbamboo.org/display/BPUB/BIP+Discussion+Draft+v0.5">Bamboo Implementation Proposal</a></li> </ul> Assorted April updates 2011-04-24T00:00:00Z http://www.quinndombrowski.com/blog/2011/04/24/assorted-april-updates/ <p>It's been a busy month, albeit without one particular thing that would merit its own post. So, in summary...</p> <h3>Digital humanities white paper</h3> <p>NITLE published a white paper I co-authored with Rebecca Davis, "<a href="http://www.nitle.org/live/files/36-divided-and-conquered">Divided and Conquered: How Multivarious Isolation Is Suppressing Digital Humanities Scholarship</a>" [pdf], which may be the first publication drawing extensively on the data collected during the Bamboo Planning Project (social isolation of scholars, siloed tools, difficulties involved in finding tools and content, etc.).</p> <h3>Bamboo data sorting done</h3> <p>I spent today doing the last data sorting for the <a href="https://wiki.projectbamboo.org/display/BPUB/Bamboo+Planning+Wiki+%28Archive%29">Bamboo Planning Project</a>. When I published the data and summaries on January 1st, I hadn't had time to include the Scholarly Narratives, or data from Workshops 3 and 4. Today, I finished posting the last of the Scholarly Narratives and Workshop 4, which wraps up the Bamboo Planning Project data. I'm considering trawling through the current <a href="https://wiki.projectbamboo.org/display/BTECH/Technology+Wiki+-+Home">Bamboo Technology Wiki</a> for additional data at some point.</p> <h3>Slavic linguistics wiki</h3> <p>I gave a talk on the <a href="http://www.slavistics.org/">Slavic linguistics wiki</a> at the Midwest Slavic Workshop last Friday with Monica Vickers, a first-year grad student at The Ohio State University who used the wiki last quarter in an MA prep class. Slides are available on Google Docs <a href="https://docs.google.com/present/view?id=ddd22j37_129cmv3d2f4">here</a>. One of the concerns I've heard from professors about the wiki is that it provides students with a way to get out of doing their class reading. Interestingly, Monica noted that-- while the students <em>did</em> try that-- the wiki was a great way to refresh your memory about an article you've already read, but was no substitute for doing the reading when it came to giving you the ability to actively participate in a class discussion.</p> <h3>Birchbark letters XML</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5645619201/" title="Giant cuddly oversized birchbark letters by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5226/5645619201_a5862dec43_m.jpg" width="240" height="160" alt="Giant cuddly oversized birchbark letters" class="alignright" /></a>For a few months, <a href="http://clover.slavic.pitt.edu/~djb/">David Birnbaum</a> and I have been working on a way to batch convert the birchbark letter transcriptions <a href="http://gramoty.ru/">available online</a> into Unicode. We've finally gotten the XML file with the PUA/Unicode correspondences right, and he's mostly done with a clever bit of XSLT to actually do the conversion.</p> <p>Relatedly, in sewing news, I turned some <a href="http://www.spoonflower.com/fabric_items/new?design_id=503567">Spoonflower fabric scraps</a> into <a href="http://www.flickr.com/photos/quinnanya/5645619201">giant cuddly oversized birchbark letters</a>.</p> <h3>Drupal</h3> <p>In the last month, I've built a Drupal VRE-style site for a friend working on a project to analyze Facebook posts from Tunisia and the Tunisian diaspora, and I have some sketchy notes for a write-up. At work, I built a Drupal service catalog in less than two hours (if you exclude the 30+ hours spent cleaning up messy data, doing multiple imports, etc.) A write-up is about half done. I'm dabbling with a new site that uses <a href="http://drupal.org/project/feeds">Feeds</a> to pull in weekly reports from major IT projects and display them in a way that's much more accessible than what we currently provide.</p> <p>I'm also working on building a VRE for Bulgarian dialectology that I did a proof-of-concept for in February. Actually doing a batch import of all the pre-existing data from Word files (as opposed to manually entering data, as I did for the proof-of-concept) is going to be a task-- over 7,000 word nodes, plus maybe a thousand sentence nodes, and a handful of others. Getting the data into a form where it can be imported has also been a challenge, between cleaning up inconsistencies and human error, and figuring out the XSLT to pull the right data out of the XHTML generated by <a href="http://word2cleanhtml.com/">Word2CleanHTML</a>.</p> <h3>Cocoon running on an Ubuntu server</h3> <p>Thanks to Gerry Siarny, there's a proof-of-concept running on Slicehost. A blog post on how to do it will be coming soon.</p> Drupal: now moving to its own section 2011-03-28T00:00:00Z http://www.quinndombrowski.com/blog/2011/03/28/drupal-now-moving-its-own-section/ <p>I've come to the realization that Drupal site breakdowns, tutorials, pedagogical materials, and musings are evolving into their own project, and will consume the blog if I don't move them elsewhere. So, I've created <a href="http://www.quinndombrowski.com/drupal">a new section of this site</a> to publish and organize things related to using Drupal for higher education. There's a <a href="http://www.quinndombrowski.com/drupal/feed">separate RSS feed</a> for it as well.</p> <p>To start with, I have the previously-blogged site breakdown for the <a href="http://www.quinndombrowski.com/drupal/site-breakdowns/building-virtual-research-environment-vre-drupal-under-5-hours">virtual research environment I created in 5 hours</a>, and a <a href="http://www.quinndombrowski.com/drupal/site-breakdowns/wordpress-drupal-or-how-i-made-site">breakdown for this very site</a>, alongside <a href="http://www.quinndombrowski.com/drupal/tutorials/drupal-jargon-explained">Drupal jargon explained!</a> and my notes from Do It With Drupal a few years ago. </p> <p>I've also posted my weekend manifesto, <a href="http://www.quinndombrowski.com/drupal/musings/if-institution-could-support-just-one-tool-teaching-and-research-it-should-be-drupal">If an institution could support just one tool for teaching and research, it should be Drupal</a>. Cue the firestorm.</p> Drupal jargon explained! 2011-03-26T00:00:00Z http://www.quinndombrowski.com/blog/2011/03/26/drupal-jargon-explained/ <p><em>Note: this post has been moved to the new Drupal-specific section of the site. <a href="http://www.quinndombrowski.com/drupal/tutorials/drupal-jargon-explained">Read the full post here</a>.</em></p> <p>Drupal has a reputation for having a steep learning curve, but I remain convinced that it's largely overstated. Nonetheless, it's true that right from the start the new Drupal user has to contend with documentation that uses unfamiliar, arguably non-intuitive jargon. That said, "What's a node in Drupal?" is a harder question to answer than one might think. Because the pieces of Drupal are usually inter-connected, an easier term to define, like "CCK", depends on the reader understanding what a "node" is. The Views documentation might tell you how to create a Block, but without understanding what each of those things is, it's easy to get frustrated.</p> <p>So, for the sake of Drupal newbies who want to like Drupal but are struggling to get past the jargon, I've put together my own attempt at some practical definitions, and a diagram of how the pieces link together, at the bottom. My goal here is to make things clearer for the sort of Drupal site developer who will mostly be using the UI; when having choose between technical accuracy and clarity for practical, hands-on purposes, I've sided with clarity. I've organized it in such a way that, with some exceptions, each definition provides prerequisite information for understanding subsequent definitions.</p> Building a virtual research environment (VRE) in Drupal (in under 5 hours) 2011-03-08T00:00:00Z http://www.quinndombrowski.com/blog/2011/03/08/building-virtual-research-environment-vre-drupal-under-5-hours/ <p><em>Note: this post has been moved to the new Drupal-specific section of the site. <a href="http://www.quinndombrowski.com/drupal/site-breakdowns/building-virtual-research-environment-vre-drupal-under-5-hours">Read the full post here</a>.</em></p> <p>I recently sat down with a fresh Drupal install, and by the time the winter sun was setting, I'd made a lightweight custom virtual research environment (VRE) for a collaborative project. It took about eight hours, but if you cut out the e-mail answering, eating, false starts, and rethinking how I wanted to structure things, I bet I could re-do it in under five hours-- and so can you.</p> <p>It was a familiar story-- two scholars, separated by geography and a time zone, gathering data from a variety of sources to illuminate a common set of real-world things from different angles. They had been passing Word documents back and forth, and had recently switched to Google Docs, but that wasn't doing what they needed, either. They had a data problem.</p> <p>I've been using Drupal for website projects for years. It has a way of making my programmers sob when they look at the database. Sometimes it refuses to cooperate. I've never done a major version update (I abandoned my 4.x project before 5.x was released, and my 5.x project was winding down when 6.x came out), but I hear it's agony. That said, it's amazing what you can spin up given a single day of work, without writing a line of PHP, and keep running for quite some time with little attention or effort.</p> <p>The custom VRE is I built very emphatically <em>custom</em>, with content types, taxonomies, and data views specific to a particular project. As such, I don't think it would be a good candidate for an <a href="http://drupal.org/project/installation%2Bprofiles">installation profile</a>, but my goal here is to write out the general steps for what I did, so anyone can repeat them with some tweaks for a different project.</p> Frogr: the Flickr uploader for Ubuntu I've been waiting for 2011-02-24T00:00:00Z http://www.quinndombrowski.com/blog/2011/02/24/frogr-flickr-uploader-ubuntu-ive-been-waiting/ <p>Last summer, I tried to <a href="http://www.quinndombrowski.com/blog/2010/08/31/uploading-to-flickr-on-ubuntu-the-options-arent-amazing">survey the landscape</a> of software available for uploading photos to Flickr on Ubuntu. My conclusion at that time was that there were no good options that met my needs-- which I felt were fairly modest:</p> <ol> <li>Change the title</li> <li>Freely add tags</li> <li>Add a description</li> <li>Add the image to sets</li> </ol> <p><a href="http://juploadr.org/">jUploadr</a> met those requirements, but was downright painful to use. <a href="http://projects.gnome.org/postr/">Postr</a> seemed promising, but I was never able to get it to work. Since then, I've stuck with the official Windows <a href="http://www.flickr.com/tools/">Flickr Uploadr</a>, on Karmic, using Wine v. 1.1.31, since combinations of more recent versions of Wine and Ubuntu had failed to work*.</p> <h3>Enter Frogr</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5474318543/" title="Frogr by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5056/5474318543_b3896d7c91_m.jpg" width="240" height="171" alt="Frogr" class="alignright" /></a>According to the <a href="http://live.gnome.org/Frogr">Frogr page</a>, versions 0.1 and 0.2 were released in mid-2009, and there had been no further activity as of last summer, so I'm not surprised I overlooked it. Last December, version 0.3 brought a lot of bug fixes, but it was the release of 0.4 on February 5th that turned Frogr into hands-down the best Flickr uploader option available for Ubuntu.</p> <h3>Everything I want, and more</h3> <p>Frogr has all the functionality and ease-of-use of the official Flickr Uploadr, and then some. You can drag-and-drop photos into Frogr (something I've missed, because I've never gotten it to work for the Flickr Uploadr on Wine.) You can add photos to sets (using an interface I think is better than the official Uploadr), and create new sets. You can add photos to groups-- which isn't an option in the Uploadr. You can easily set privacy levels and content types for photos individually, and by default using Preferences settings. You can add titles, tags, and descriptions to photos as a batch. You can cancel an upload without the losing the metadata you've added to your un-uploaded photos. You can have multiple accounts. Another feature that the Flickr Uploadr doesn't have is tag auto-completion-- which can be a big help if you're trying to be consistent with your metadata.</p> <h3>Nitpicky stuff</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5474070664/" title="Frogr autocomplete by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5139/5474070664_d969ebedaf_m.jpg" width="240" height="168" alt="Frogr autocomplete" class="alignright" /></a>There's very little I can say against Frogr-- it's a solid piece of software that does an excellent job meeting my needs. All things being equal, I'd probably prefer to have the metadata panel appear on the right whenever a photo or photos are selected (like the Flickr Uploadr), instead of having to double-click, but in practice double-clicking is much less of a nuisance than I feared it would be.</p> <p>The interface that lists the accounts you've authorized shows your name, rather than the username. Both of my accounts have my name on it, so other than trial-and-error (or remembering which one I authorized first) there's no way to tell which account I'm sending photos to until they show up there.</p> <p>I appreciate the thought that went into the tag auto-complete, but I wish there were a way to turn it off. With over 50,000 heavily-tagged photos, I've got thousands upon thousands of tags, and they take a long time to load (there's a <em>loading tags</em> step in Frogr, though thankfully only once each time you launch it) and the auto-complete is more annoying than helpful. On my less-powerful netbook, the autocomplete makes Frogr stop responding for a few seconds, though it does recover. Fortunately, I can out-type it most of the time, so I'm done tagging by the time the auto-complete pops up.</p> <p><em>(2/25/10 update: <a href="http://blogs.igalia.com/mario/">Mario Sanchez</a>, the awesome developer behind Frogr, has already made a couple changes so that the list of authorized accounts also includes the account name, and there's a setting in the preferences to turn auto-complete off. I've tried an unreleased version and it's great! Look for those changes in the next release.)</em></p> <h3>Go download Frogr now</h3> <p>If you use Flickr and Ubuntu, Frogr is a huge leap forward from whatever you've been using to upload your photos, providing one of the best feature sets available, and hands-down the best user experience. Go <a href="http://live.gnome.org/Frogr">download Frogr</a>-- it's fantastic.</p> <p><em>* The situation has recently improved for the official Flickr Uploadr on wine-- I've successfully gotten it running on Maverick using Wine 1.3.13. At this point, though, I think Frogr is a much more compelling option.</em></p> I.E.: the International Baccalaureate zine 2011-02-18T00:00:00Z http://www.quinndombrowski.com/blog/2011/02/18/ie-international-baccalaureate-zine/ <p><a href="http://www.flickr.com/photos/quinnanya/5458737697/" title="Tranquil center of the universe by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5252/5458737697_4eb39f2301_m.jpg" width="233" height="240" alt="Tranquil center of the universe" class="alignright" /></a>When packing up my apartment, I stumbled across all the issues of I.E. (which stood for, among other things, "Insolence is Excellence") I ever owned. A zine published by the International Baccalaureate students at Henry Foss High School from time immemorial, it was assembled from taped-together texts and images, photocopied, and sold basically at-cost on the sly before class. For myself, at least, the risk of being caught disseminating subversive material that criticized (at various points) the teachers, the IB program, technology, consumerism, and the response to 9/11, and contained no shortage of sex and-- as the Russians put it-- "uncensored words", was part of the thrill.</p> <p>I don't know what form this material would take if generated now, over 10 years later. I have a hard time imagining us writing a collective semi-pseudonymic blog, and the experience of assembling and distributing the material would have completely changed the dynamic. We realized that at least some authority figures would get their hands on it, but we did try to keep it within our own inner circle. </p> <p>As I flipped through the treasured issues I had carefully preserved from folds or wrinkles, it occurred to me that they're more than personal nostalgia, they are (if my 15-year-old self will forgive me) "cultural artifacts" that capture something about the shared experience of the overachieving elite at the turn of the century, to say nothing about major political events, such as the election of George W. Bush and 9/11. I think they're worth preserving and sharing-- really, what are the teachers going to do to us now? <a href="http://www.flickr.com/photos/quinnanya/5459344226/" title="Black market copytoner racket by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5293/5459344226_50672f62a4_m.jpg" width="231" height="240" alt="Black market copytoner racket" class="alignright" /></a>Almost everyone wrote under a psudonym, and most non-pseudonymic references are first-name only or are missing a few letters, such that dirty OCR + Google couldn't pick them up to cause the writers grief as they've moved on with their lives. For my own part, I'll confess to being "Nary A Quince", courtesy of an on-line anagram generator for "Quinn A Carey".</p> <p>I've uploaded copies of the issues to the Internet Archive, given their <a href="http://www.archive.org/about/about.php">stated mission</a> of "chang[ing] the content of the Internet from ephemera to enduring artifacts of our political and cultural lives." They'll do a better job with long-term preservation than I will myself, and these are a product of the "internet age", even if we only published them in print. If you want to see the Internet Archive pages for these issues, just <a href="http://www.archive.org/search.php?query=subject:%22IE:%20Insolence%20is%20Excellence%22">search for <em>IE: Insolence is Excellence</em></a>. I can only imagine what a royal mess their OCR has made of things, but for some reason you want a mangled plaintext version, the Internet Archive has generated it, along with a Kindle version and a number of others.</p> <p>If anyone else has more issues of I.E. that I can scan and post, please e-mail me at <em>quinn - at - quinndombrowski - dot - com</em></p> <blockquote><p><strong>Disclaimer:</strong> Writer's club and its syndicate, i.e. are not affiliated in any way, shape, or form with Henry Foss High School. The opinions expressed here are those of the writers only. You know where you did not get this.</p> </blockquote> <h3>I.E. Vol 27, November</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5458847802/" title="IE, Vol 27, November by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5053/5458847802_6c4010910d_m.jpg" width="189" height="240" alt="IE, Vol 27, November" class="alignright" /></a><a href="http://www.archive.org/download/I.e.Volume27November/ie_vol27_nov.pdf">Download PDF</a></p> <ul> <li>Mission statement</li> <li>Grandpa Jack's "Male"-order™ !MEN!</li> <li>The Disintegration of Basic Decency in Our Society</li> <li>The Dangers of Hugging Trees: a comprehensive report by Penny Petty</li> <li>Dear Mr. Philosophy Pedagogue</li> <li>Poetry</li> <li>Overpopulation at Foss</li> <li>Horoscopes</li> <li>Random Thoughts From the Upper Lefthand Corner</li> <li>Join Starfleet!</li> <li><em>Lord of the Flies</em> Island Vacation and Child Care Program</li> <li>Poetry</li> <li>"I have recently found myself lying in bed..." - Justinian in Genoa</li> <li>Dedicated to Someone Unimportant - Stumblebum</li> <li>"Many a night I have rolled the blanket up to my neck..."</li> <li>Poetry</li> <li>Wrath of the Evil Janitors</li> <li>Lies - Peanut Butter Pixie</li> <li>"Can't you do <em>anything</em>?" - Meadowl the Magnificent</li> <li>"We all have defenses" - 67% Alkat</li> <li>Strip Club: The Henry Foss Free Love Commune</li> <li>Why Barbie Should Be Destroyed - Mildly Evil Ogre</li> <li>Points to Ponder</li> <li>Constitutional Amendment</li> <li>Taking Care of the Pet</li> <li>Unbreakable Bones - Every Sandal Off</li> <li>"Come hither dear Stella" - Alkat</li> <li>Punishments</li> <li>The Typical IB Student</li> <li>A Plea To The Writers of the Tabloid I.E.</li> <li>I.E. Idiot Editors</li> <li>IE 1st annual 'Fall Fantastica' Art Contest</li> </ul> <h3>I.E. Vol 28, Issue 1: I.E. Unauthorized Access</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5458239765/" title="IE, Vol 28, Issue 1 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5173/5458239765_cfdb363a79_m.jpg" width="153" height="240" alt="IE, Vol 28, Issue 1" class="alignright" /></a><a href="http://www.archive.org/download/I.e.Volume28Issue1/ie_vol28_issue1.pdf">Download PDF</a></p> <ul> <li>Notes from the Editor</li> <li>IE Presents: Things That Are Shiny</li> <li>A Conspiracy of Grass; An Amok Harvest</li> <li>Plan For Week</li> <li>IE Presents: Things That Rhyme With Kitsch</li> <li>The Secret to IB Teachers' Grading Methods</li> <li>The Rant of an IB Junior - Nary A Quince</li> <li>Terrorist Nation/Communist Dictatorship Education Governmental Leadership Development - Clever Pseudonym and the IE staph</li> <li>IE Presents: Things That Really Suck Ass (Formerly the bitch column)</li> <li>IE Trivia, Facts and Information</li> <li>Hell or Farmer?</li> <li>The IE Poetry Page</li> <li>Home</li> <li>Jen & Eggplant</li> <li>Morning Announcements Bingo!</li> <li>Humans - Anarchy Boy</li> <li>Die Kleine Ziege die Könnte</li> <li>The Saddest Limerick Ever</li> <li>S&M's - Clever Pseudonym and her sexy male muse</li> <li>IE personals</li> <li>It's funny... - dark scarlet heart</li> </ul> <h3>I.E. Vol 28, Issue 2</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5458847314/" title="IE, Vol 28, Issue 2 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5056/5458847314_6038ff695e_m.jpg" width="152" height="240" alt="IE, Vol 28, Issue 2" class="alignright" /></a><a href="http://www.archive.org/download/I.e.Volume28Issue2/ie_vol28_issue2.pdf">Download PDF</a></p> <ul> <li>Note from the Editor</li> <li>Foss in an Energy Crisis - Falling Bead</li> <li> How Al Gore Stole My Soul (and Katherine Harris stomped on it) - Clever Pseudonym and her sexy male muse</li> <li>IE Presents: Teacher-isms!</li> <li>Censored Issues & Examples</li> <li>Poetry Page</li> <li>Math for the Oh-So-Cynical</li> <li>Technology - Anarchy Boy</li> <li>Choose Your Own Religion</li> <li>Big Mo Playa's Guide to Rap Song Creation</li> <li>To the 6th Period Clock - Nary a Quince</li> <li>Public service announcement</li> <li>If you are reading this issue without paying for it...</li> <li>Lost and Found</li> <li>IKEA: Incipient Kommunist Economic Attack: Frightening Findings from Penny Petty</li> <li>Wanted: Little Voice Inside My Head</li> <li>Hey, Kids! Wanna Join I.E.?</li> </ul> <h3>I.E. Vol 28, Issue 3</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5458848852/" title="IE, Vol 28, Issue 3 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5136/5458848852_175b37386c_m.jpg" width="165" height="240" alt="IE, Vol 28, Issue 3" class="alignright" /></a><a href="http://www.archive.org/download/I.e.Volume28Issue3_516/ie_vol28_issue3.pdf">Download PDF</a></p> <ul> <li>Note from the editor</li> <li>Lascivious Pictography in the Style of Amerigo Vespucci</li> <li>Bob Dylan Illustrated</li> <li>I.E. Presents: Pictionary Words from Hell</li> <li>The Thousand Daily Deaths of Magic - Nary A Quince</li> <li>88 Lines About 44 IB Students</li> <li>The Day I Scared My Shadow - Mama Crass</li> <li>You believe that you alone hold the monopoly on bitterness...</li> <li>It's Like, Poetry, man...</li> <li>Scooby-Lou and the Case of the Missing Motivation</li> <li>The Idiot's Guide to Success in The Global Economy</li> <li>Lost & Found</li> <li>IB Damned and other reflections from this year's seniors</li> <li>The Conspiracy of Sperm</li> <li>An Offer You Can't Refuse</li> <li>Excerpt from Henry Foss Daily Bulletin, Thursday, May 24, 2001</li> <li>Poll Question: What is the meaning of life?</li> <li>Evolution: A New Application - Mama Crass</li> </ul> <h3>I.E. Vol. 29, Issue 1, Back to School Issue</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5458240117/" title="IE, Vol 29, Issue 1 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5053/5458240117_9780b07950_m.jpg" width="154" height="240" alt="IE, Vol 29, Issue 1" class="alignright" /></a><a href="http://www.archive.org/download/I.e.Volume29Issue1_594/ie_vol29_issue1.pdf">Download PDF</a></p> <ul> <li>Note from the Editor</li> <li>Feed the I.E. Box!!</li> <li>One Night Stand - Head Down</li> <li>Open All Nite</li> <li>At Home with Laura</li> <li>Up Close and Personals</li> <li>Gates Grant: Which Way Will Henry Foss Go?</li> <li>Poetry Page</li> <li>Foss ASB President Detained after Park Brawl - The Mirra World Report</li> <li>"It Turns the Screws of Psychological Terror" - Stumblebum</li> <li>From our Friends at the Tacoma News Tribune: A 12-Step Program</li> <li>From <strong>your</strong> friends at I.E.: A 12-Step Program to Foss - Clever Pseudonym and her sexy male muse</li> <li>Patriotism - Nary a Quince</li> <li>Ginsberg Revisted - Clever Pseudonym & muse</li> <li>Got a problem, PUNK?!?</li> <li>Have you ever had the urge to...</li> </ul> <h3>I.E. Vol 29, Issue 2</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5458848188/" title="IE, Vol 29, Issue 2 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5055/5458848188_bd7d4ed5a1_m.jpg" width="184" height="240" alt="IE, Vol 29, Issue 2" class="alignright" /></a><a href="http://www.archive.org/download/I.e.Volume29Issue2/ie_vol29_issue2.pdf">Download PDF</a></p> <ul> <li>Note from the editor</li> <li>IE Horoscopes</li> <li>The Class of Eternal Damnation</li> <li>Plight of IB student type R</li> <li>Lost and Found</li> <li>CNN: Page 1 of 1 Johnson and Johnson® Makes Plea in Baby Oil Case</li> <li>Poetry Page</li> <li>The Terrorist in the Kitchen - Nary A Quince</li> <li>"As long as there have been humans to talk about such matters..."</li> <li>The Band Council - Rich Nauk</li> <li>Daffodil Pageant Review - Nary A Quince</li> <li>New Proposed NHS Logo...</li> <li>"For my eighteenth birthday I always wanted to go to a Strip Bar."</li> <li>"hrm... a mixture of drugs, lack of sleep..." - Turtblu</li> <li>How to be popular</li> </ul> <h3>I.E. Vol 29, Issue 3</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5458240215/" title="IE, Vol 29, Issue 3 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5096/5458240215_363a97bdee_m.jpg" width="161" height="240" alt="IE, Vol 29, Issue 3" class="alignright" /></a><a href="http://www.archive.org/download/I.e.Volume29Issue3/ie_vol29_issue3.pdf">Download PDF</a></p> <ul> <li>The Wonder that is I.E....</li> <li>Attention, Everyone Who Eats in the Pit! - Nary A Quince and the IE staff</li> <li>Horoscopes</li> <li>The IB student's warped view of reality...</li> <li>Olympic Officials Realize They Forgot to Build Speed Skating Rink</li> <li>"Since I was a child, I have always watched the Olympic games" - Stumblebum</li> <li>Maiming of Hearts - Nary A Quince</li> <li>Ode to Dr. Dan</li> <li>Poetry Page(s)</li> <li>A Sample Calculus Problem</li> <li>"Eyes open." - Iron Jocky</li> <li>Paid Advertisement: Recently Discovered in a Cave in Afghanistan: The Kama Sutra of Sleeping!</li> <li>Lost & Found</li> <li>Calculus and Philosophy - Nary A Quince</li> <li>Magic Tricks - Nary A Quince</li> <li>To: G.W. Bush</li> <li>Depravity & Consequence</li> </ul> <h3>I.E. Vol 29, Issue 4</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5458848704/" title="IE, Vol 29, Issue 4 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5255/5458848704_b189afbea4_m.jpg" width="187" height="240" alt="IE, Vol 29, Issue 4" class="alignright" /></a><a href="http://www.archive.org/download/I.e.Volume29Issue4/ie_vol29_issue4.pdf">Download PDF</a></p> <ul> <li>Read this first!</li> <li>Ben: In a Snit!</li> <li>avuncular erotics: The Pleasures of the Closet - Twit and Pussycat</li> <li>Hemingway-esque - N. Mirra</li> <li>Pulp fiction, with references to 33 plays, novels or bodies of work read over the last four years of English IB</li> <li>American Insults of Brotherhood</li> <li>Degenrate Words of Evil</li> <li>IE Horoscopes</li> <li><em>Sweet Savage Splendor</em> Text Response Journal - Mama Crass</li> <li>Pilgrimage - Nary A Quince</li> <li>"Who is your hero, and why?" - Twit and Pussycat</li> <li>Ms. Colclough Rewrites Chemistry</li> <li>Professional Smart-Ass</li> <li>The Pit - Nary A Quince</li> </ul> <h3>I.E. Vol. 30, Issue 1, Back to School 2002, I.E. Wallows in Sin</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5458239669/" title="IE, Vol 30, Issue 1 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5177/5458239669_19ffa03ff9_m.jpg" width="158" height="240" alt="IE, Vol 30, Issue 1" class="alignright" /></a><a href="http://www.archive.org/download/I.e.Volume30Issue1/ie_vol30_issue1.pdf">Download PDF</a></p> <ul> <li>Shameless Begging for Submissions (formerly known as Editor's note) - Ed. Err</li> <li>I.E. Horoscopes</li> <li>Mad Props (formerly known as Dedications)</li> <li>Ed. Err has a Thoughtful Thought</li> <li>Up Close and Personals</li> <li>The Worst Story Ever Written - from <em>Yearning</em>, by Justin Merrill Grosslight</li> <li>Lost and Found</li> <li>Six Degrees of Kevin Martin: A decade of Foss romantic history</li> <li>Dress Dubya</li> <li>The WASL: Secret Agenda</li> <li>Which I.E. Staph Member is Your Soulmate?</li> <li>Ben has a Bad Day - Replacement Nick</li> <li>Random Projectiles Thrown from Blue Subaru - Thad Rocket</li> <li>Ed. Err Has a Thoughtful Thought</li> <li>Up Close and Personals</li> </ul> FRBR, Lojban, and culling my book collection 2011-02-15T00:00:00Z http://www.quinndombrowski.com/blog/2011/02/15/frbr-lojban-and-culling-my-book-collection/ <p><a href="http://www.flickr.com/photos/quinnanya/3413408930/" title="Day 94: This is Home. by quinn.anya, on Flickr"><img src="http://farm4.static.flickr.com/3326/3413408930_56a98b6507_m.jpg" width="240" height="160" class="alignright" alt="Day 94: This is Home." /></a>As a prerequisite for moving this spring (due to impending renovations by the new owners of our apartment building), my husband and I have been culling our book collection. The process of getting rid of books has, strangely enough, gotten me thinking a lot about <a href="http://www.lojban.org/tiki/la+lojban.+mo">Lojban</a>, <a href="http://en.wikipedia.org/wiki/FRBR">FRBR</a> (the Functional Requirements for Bibliographic Records), and an endearingly <a href="http://www.flickr.com/photos/quinnanya/3449064444/">dorky t-shirt</a> I picked up in Library and Information Science grad school (which reads <em>I love <strike>Works</strike> <strike>Expressions</strike> <strike>Manifestations</strike> <strike>Items</strike> Books</em>.)</p> <p>Earlier this year I discovered Lojban, and was quickly taken with its methods for disambiguating language, particularly written language which can't benefit from intonation. In contrast to blunt instruments used for some degree of disambiguation on-line (emoticons, "j/k", "LOL", etc.), Lojban has an elaborate system of <a href="http://www.lojban.org/publications/reference_grammar/chapter13.html">attitudinal and emotional indicators</a>. A sentence like "there's a meeting" can be given entirely different shades, depending on the emotional marker. <em>A'o</em> indicates despair, <em>aucu'i</em> indicates indifference, <em>i'e</em> indicates approval, etc. </p> <p>In the Lojbanic spirit, I began to consider the following: when I decide to keep a "book", and check it into <a href="http://www.librarything.com/home/q_and_a">LibraryThing</a> (yes, I'll confess to checking in my own books to my own library catalog), what is it that I want to keep? And I thought of FRBR. My dorky t-shirt may dismiss each level of FRBR, and settle on simply loving "books", but given the many ways we use the word colloquially, it's quite ambiguous. There are examples for each of the FRBR "group 1 entities", where we've kept books primarily on those grounds:</p> <h3>Works</h3> <p>Many of the books we've kept are purely for the sake of the Work (a "distinct intellectual or artistic creation.") The information contained in <a href="http://www.librarything.com/work/10968128"><em>Atlasi dialektologjik i gjuhës shqipe</em></a> is useful, and we want to have access to it. If there were Manifestations available that were reasonably easy to use, and didn't require us hauling around a bound collection of paper, we would probably have gotten rid of it. As it stands, that's exactly what happened with our mass-market sci-fi and fantasy paperbacks. In the last few months, we both acquired Kindles. Realizing that A) we'd probably prefer to read those Works on the Kindle, and B) there is a Kindle (or Kindle-compatible) Manifestation of all those Works, we decided to get rid of books we'd previously been intending to keep.</p> <h3>Expression</h3> <p>Literature translated into languages other than English makes up the bulk of the books we've kept because of the Expression ("the specific intellectual or artistic form that a work takes each time it is ‘realized'".) We got rid of <em>Harry Potter and the Sorcerer's Stone</em>, but kept <em><a href="http://www.librarything.com/work/5403381">Harry Potter dhe guri filozofal</a></em> (Albanian). <em><a href="http://www.librarything.com/work/74326">Спутник Љубов</a></em> (Macedonian) is going to fare better than Murakami's <em>Sputnik Sweetheart</em> if we run low on boxes. We've kept one English-translated Expression of a Work we can read in the original (this collection of <a href="http://www.librarything.com/work/82006">poems by Anna Akhmatova</a>) simply because the translation is awful; sometimes a failed Expression makes for an interesting Expression.</p> <h3>Manifestation</h3> <p>There aren't many books that we've kept because of the Manifestation. One of the only examples that comes to mind is <em><a href="http://www.librarything.com/work/2218599/">Древненовгородский диалект</a></em>. While PDFs identical to the book are <a href="http://gramoty.ru/?id=library">available on-line</a>, there's still something nice about flipping through the paper copy.</p> <h3>Item</h3> <p><a href="http://www.flickr.com/photos/quinnanya/3241312983/" title="IB English by quinn.anya, on Flickr"><img src="http://farm4.static.flickr.com/3334/3241312983_24d36c4530_m.jpg" width="160" height="240" alt="IB English" class="alignright" /></a>Most of the books that we haven't kept because of the Work itself are still on our shelves because of the Item ("a single exemplar of a manifestation. The entity defined as item is a concrete entity"). These are Items with sentimental value, ranging from birthday gifts to tattered companions from high school IB English. Many of the books that we're keeping because of the Work also have value as Items, due to some fond memory of their acquisition (like the <a href="http://www.librarything.com/work/10611946">massively heavy book</a> we found at the bookstore of Vilnius University, after my husband snuck me past the security guard, and we lugged around all day through streets <a href="http://www.flickr.com/photos/quinnanya/5006877007/">filled with Scots in kilts</a> in town for some big soccer game that night, past a street fair with some guys <a href="http://www.flickr.com/photos/quinnanya/5007799524/">dressed as Native Americans</a> and "playing" South American pan flute music, and it was worth it because the content was <em>so cool</em>). </p> <h3>FRBR meets Kindle</h3> <p>As we've been phasing out paper copies of mass-market fiction in favor of reading on the Kindle, I started considering FRBR in the context of e-books, which seem to pose some non-trivial challenges for the model. I read e-books on my phone on the bus ride to work, and on my Kindle before bed and on weekends, but I have to download the files to each device separately. If I flash a new ROM on my phone, DRM restrictions don't allow me to use the files that are already on my phone's SD card-- I have to re-download those same files for the Kindle app to work. Have I then read two different Items on my phone, before and after I flash the new ROM? Typeface and page layout don't differentiate Expressions, but they should matter for Manifestations (think large print edition); if I decide to increase the text size on my Kindle, am I reading a new Manifestation even though it's the same Item?</p> <p>Googling around, I came across an analysis of the situation, "<a href="http://scholarlykitchen.sspnet.org/2009/11/20/how-many-books-dance-on-the-head-of-an-e-pin/">How Many Books Dance on the Head of an e-Pin?</a>":</p> <blockquote><p>[T]hat may be where we’re headed — toward a world that can’t presume items or manifestations, but only list expressions of works. Or perhaps we should evacuate some of the detail from “manifestation” in order to provide an appropriate silence on the issues involved.</p> </blockquote> <p>I think there's some intuitive weight behind treating the Expression as the core form of a "book". I don't usually think twice about paying for different Expressions of a Work, except in cases where the new intellectual contribution is minor or not of interest to me, such as a new introduction. But I can't deny feeling some qualms buying a Kindle book when I already own a paper copy because my gut says "it's the same thing", even though my MLS says otherwise.</p> <p><a href="http://www.flickr.com/photos/quinnanya/468434030/" title="Sulking Vitya by quinn.anya, on Flickr"><img src="http://farm1.static.flickr.com/196/468434030_27591fd57b_m.jpg" width="240" height="180" alt="Sulking Vitya" class="alignright" /></a>Still, I think something useful would be lost by eliminating granularity beyond the Expression. A scanned PDF from a printed Manifestation and a Kindle Manifestation with the very same text differ, at the very least, in the fact that the PDF will have page numbers if they weren't cut off by the scanner, and the Kindle will not-- at least, not until a future software update, which can't come soon enough. Perhaps FRBR should adapt to cope with the fact that typography is malleable in many e-book formats, and changes in typography (and whatever takes the place of "pages") shouldn't affect the Manifestation. The Item, too, has value as an independent entity; my Item (file) of a PDF Manifestation can become corrupted, and I can see the desirability of being able to identify that corrupted file specifically. "Evacuating detail" from Manifestation to Expression isn't enough.</p> <p>At least for now, e-books are staying out of my LibraryThing, saving me from having to consider what level of abstraction I'd be cataloging. <em>U'inai</em>* I've got no shortage of printed Items to sort through and pack up in the next month and a half-- <a href="http://www.librarything.com/profile/q_and_a/stats/library">2,450 of them</a>, and counting.</p> <p><em>* Lojban emotive marker for weariness.</em></p> Please, please, please, please 2011-02-10T00:00:00Z http://www.quinndombrowski.com/blog/2011/02/10/please-please-please-please/ <p><a href="http://www.translationparty.com/">Translation Party</a> (which takes an English phrase, translates it into Japanese, then back into English, then back into Japanese until an equilibrium is reached) had its <a href="http://boingboing.net/2009/08/17/machine-translation.html">15 minutes of fame</a> some months ago, but only today did the thought occur to apply it to excerpts from <a href="http://www.andrewdombrowski.com/">my husband's dissertation</a>.</p> <p>Regrettably, the following sentence won't ever achieve equilibrium:</p> <blockquote><p>The precise chronology of the expansion of Ottoman control over the areas under discussion in this study varies; in particular it may be noted that the establishment of Ottoman control over central Albania was delayed by some decades by the local resistance movement of Skanderbeg (see Schmitt 2009 for a recent and comprehensive treatment).</p> </blockquote> <p>Every time you run it through, it yields a slightly different bizarre final result before it gives up:</p> <blockquote><p>We Skanderbeg Schmidt, DC, rather than Tashi that I have to respect the Albanians (you Uiruosuman itself is being paid to the discussion of the empire of the benefits of heart region 2009 Please change the rules to another Pavilion must have been established is) his many decades, please visit the pits to the pits please could slow down the comprehensive treatment of the resistance potential, please local time, I Please refer to the Ottoman Empire should be used.</p> </blockquote> <blockquote><p>Itadakemasen response Ottoman rule, doctors, overarching goal of the Albanian Skanderbeg decades Schmidt refractory to please, please see the rewards of appreciation. In this paper, (range), please describe the specific end, the exact time, 2009 Tasaosuman Imperial Regional Center will be established. To extend the rules to please be delayed.</p> </blockquote> <blockquote><p>In this paper, the Ottoman 2009 Ottoman Albanian Skanderbeg (Schmitt, proposed space in the heart of comprehensive treatment for most), please correct control sequences to skip resistance and local control can be established. I need to please please please please refer to delay debate to give can call the change.</p> </blockquote> <blockquote><p>In 2009, the center of resistance in general, Skanderbeg Schmidt, Albania, Jinari response, if necessary, asking for decades is believed to please please see your local post . To change the precision of control can be said to extend a particular area of the Ottoman Empire. Treatment (time), he said. We are said to have spread to establish the rule of the Ottoman Empire.</p> </blockquote> <blockquote><p>In this paper, in 2009, many decades, Albania, subject to control in order to change the correct time. See under debate, resistance to develop a comprehensive treatment of the Ottoman Empire (a Rurushumittoosuman Skanderbeg in the heart of delaying the presentation of the empire built-in) so please please please please please.</p> </blockquote> <blockquote><p>During this period, Albania decades Yes, the rules Skanderbeg and debate the Ottoman Empire, precise treatment, in certain regions when Schmidt, in this paper, Center for the Ottoman Empire (the local rules of the Empire State and their extension gradually many) that has been established, please please please refer to 2009.</p> </blockquote> <blockquote><p>Albania, local time Skanderbeg, Schmidt, today's report, the purpose of treatment (if necessary, can grant an extension of the work area of the Ottoman Empire Shock Naka.) Ottoman Empire was established 10 years Comprehensive strict rules please please please please refer to the year 2009, he said.</p> </blockquote> Android fleece hat 2011-01-25T00:00:00Z http://www.quinndombrowski.com/blog/2011/01/25/android-fleece-hat/ <p><a href="http://www.flickr.com/photos/quinnanya/5388767106/" title="Android hat by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5254/5388767106_8d9a810843_m.jpg" class="alignright" width="214" height="240" alt="Android hat" /></a>Last week was miserably cold in Chicago, so over the weekend I set about making a winter hat. I had some bright green fleece lying around, so it turned into an Android head. From start to finish, it didn't take more than an hour and a half.</p> <h3>What you need</h3> <ul> <li>Bright green fleece (amount depends on your head size, should be less than a yard)</li> <li>A very small amount of white fleece (one strip about 12" wide and 1/2" high, and two small circles for eyes)</li> <li><em>Optional:</em> enough contrasting fabric to cut two 6" x 5" pieces for the outside of the ear flaps</li> <li>Bright green thread</li> <li>White thread</li> </ul> <h3>Measurements</h3> <ul> <li>Measure the circumference of your head, and add 3 inches; this will be the length of the hat band.</li> <li><a href="http://www.flickr.com/photos/quinnanya/5383618116/" title="One of four Android panels by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5284/5383618116_b04ffd0520_m.jpg" class="alignright" width="240" height="211" alt="One of four Android panels" /></a>Divide the hat band measurement by 4, then add 1; this will be the width of each triangle.</li> <li><em>Example:</em> My head measures 23", so my hat band needs to be 26" long. 26" / 4 = 6.5" + 1 = 7.5", so each triangle will be 7.5" wide.</li> </ul> <h3>Cutting the pieces</h3> <ul> <li>Cut a strip of green fleece 6" tall, and as long as your hat band measurement.</li> <li>Cut 4 green fleece triangles that are 7" tall, with the width you've calculated above</li> <li>Cut 4 U-shaped pieces of green fleece, 1" wide and 3" tall, for the antennae.</li> <li>Cut 4 U-shaped pieces of green fleece, 5" wide and 6" tall, for the ear flaps (optional)</li> <li>Cut 2 strips of green fleece, 1.5" wide and 10" long, for the chin ties (optional)</li> <li>Cut 2 U-shaped pieces of contrasting fabric, 5" wide and 6" tall, for the outside of the ear flaps (even more optional)</li> <li>Cut two small (1/2" diameter) circles of white fleece</li> <li>Cut one 1/2" strip of white fleece, about 12" long (or shorter, if you want a smaller mouth)</li> </ul> <p><a href="http://www.flickr.com/photos/quinnanya/5388182063/" title="Straight line by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5059/5388182063_46b45c5daf_m.jpg" width="240" height="160" alt="Straight line" class="alignright" /></a><em>Note:</em> I cut the triangles with rounded edges (see above), which gave the hat little points on each side. To avoid giving the Android a nose, I had to fix it after sewing the front pieces together by sewing a straight line, instead of along the edge (see right). If I did it again, I'd cut it with straight edges.</p> <h3>Sewing the pieces</h3> <ul> <li>Take two antenna pieces and pin them, right-side together. Stitch all the way around the U, keeping the bottom open. Repeat for the other antenna.</li> <li><a href="http://www.flickr.com/photos/quinnanya/5389364610/" title="Attaching an antenna by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5174/5389364610_1c093d4b03_t.jpg" width="100" height="65" alt="Attaching an antenna" class="alignright" /></a>Turn the antennae inside out.</li> <li>Take two triangles (#1 and #2) and pin one edge, right-side together. Stitch along that edge.</li> <li>Take a third triangle, and pin one edge, right-side together, to the free edge of triangle #1.</li> <li>Pin one of the antennae 2" from the top, so that the majority of the antenna is on the inside with the right sides of the fabric (see right).</li> <li><a href="http://www.flickr.com/photos/quinnanya/5383027521/" title="Attaching Android eyes by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5167/5383027521_b6f8fe1234_m.jpg" width="240" height="160" alt="Attaching Android eyes" class="alignright" /></a>Stitch the edge of triangles #1 and #3 together, attaching the antenna between the two.</li> <li>Repeat, stitching triangles #2 and #4 together, attaching the second antenna between.</li> <li>Pin and sew the eye-circles to the right sides of triangles #3 and #4, about 2" below the antennae.</li> <li>Pin triangles #3 and #4, right-side together, and stitch them.</li> <li>Fold the hat band in half lengthwise, wrong-side together, so the band is 3" wide.</li> <li>Fold the hat band in half width-wise, right-side together, and stitch the ends together to form a circle.</li> <li>Pin the right side of the hat band to the right side of the hat body, so the seam in the hat band aligns with the seam in the back of the hat body, and stitch all the way around to attach them.</li> </ul> <h3>Ear flaps</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5383647960/" title="Adding the chin strings by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5129/5383647960_d08f32b55d_m.jpg" class="alignright" width="240" height="175" alt="Adding the chin strings" /></a></p> <ul> <li>If you want to add ear flaps, pin two of the fleece ear flap pieces, and one chin strap together (see right), and stitch around the U, leaving the top open.</li> <li>If you want to have a contrasting fabric for the outside of the ear flaps (I used some scraps of <a href="http://www.spoonflower.com/fabric/374126">Android fabric</a> from another project), put the contrasting fabric between the two pieces of fleece, and stitch.</li> <li>Turn the stitched ear flaps inside-out. If you're using a contrasting fabric, it should be facing out.</li> <li>Stitch the top of the ear flaps to the inner seam connecting the hat band and the body of the hat, positioned to line up with the ears. (On my hat, the ear flaps start 3" on either side of the back seam.)</li> </ul> <h3>Success!</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5388782318/" title="Android ear flaps by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5258/5388782318_7c6ef0d1b3_m.jpg" width="160" height="240" alt="Android ear flaps" /></a><a href="http://www.flickr.com/photos/quinnanya/5388136257/" title="Day 24: Happy Android Hat by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5295/5388136257_671409f74e_m.jpg" width="240" height="160" alt="Day 24: Happy Android Hat" /></a></p> <p><em>The <a href="http://www.android.com/branding.html">Google Android Robot</a> has been <a href="http://code.google.com/policies.html">shared by Google</a> using the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons 3.0 Attribution License</a>, and this tutorial is shared under a <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike License</a>. Feel free to repost or modify it (as long as you credit me) or sell the resulting hats if you'd like.</em></p> In memoriam: Rick Peterson 2011-01-13T00:00:00Z http://www.quinndombrowski.com/blog/2011/01/13/memoriam-rick-peterson/ <p><a href="http://www.flickr.com/photos/quinnanya/5352576607/" title="Rick Peterson at Project Bamboo Workshop 4 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5163/5352576607_c92d669c29.jpg" class="alignright" width="333" height="500" alt="Rick Peterson at Project Bamboo Workshop 4" /></a>I was deeply saddened to get word that Rick Peterson, CTO of Washington & Lee University, passed away yesterday evening after a long and difficult battle with brain cancer. Rick (right, with Dick Kuettner at Bamboo Workshop 4) was an indefatigable supporter of improving scholarship and teaching through the judicious use of technology, and was one of the strongest representatives of small liberal arts colleges at the Project Bamboo workshops where I met him. Since 2008, I've worked with him and his college friend/German professor Kent Hooper, of the University of Puget Sound, on a <a href="http://www.barlach-biblio.org/">bibliographic listing of secondary sources related to Ernst Barlach</a>.</p> <p>To this day, Kent describes himself as the "worst case scenario faculty member" for digital humanities, though now that's hardly fair, thanks to Rick's influence. Kent knew the basics of word processing software, e-mail, and web browsing (though I had to introduce him to browser tabs), and was planning on publishing his bibliography-- which represents over 20 years of work-- as a set of printed tome. But Rick dissuaded Kent, convincing him that for this resource to last and reach as many people as possible, TEI was the route to take.</p> <p>Project Bamboo took on Kent's bibliography as a demonstrator project, and I worked with Rick and Kent for over a year to generate XSLT for the bibliographic sub-listings, with the help of Jacob Jett from the University of Illinois at Urbana-Champaign. Rick always knew when to chime in with helpful technical suggestions or a reality check. But he wouldn't settle for "just good enough"-- we had a pre-generated HTML version of the bibliography posted on-line, but in such a format, all the files would need to be re-created and replaced every time Kent added a new resource to the bibliography. We had talked about dynamically generating the pages using Cocoon's XSLT processing, but development stalled.</p> <p>The last time I spoke with him over the phone, in September 2010, he asked about "Barlach 2.0" again. It's not quite live yet, but I finished the work this fall and put together a screencast of dynamically-generated Barlach listings running on Ubuntu in mid-December. I'm grateful he had a chance to see it.</p> <p><a href="http://www.flickr.com/photos/quinnanya/3450951523/" title="Pete and Hoops by quinn.anya, on Flickr"><img src="http://farm4.static.flickr.com/3412/3450951523_83a5547113.jpg" class="alignright" width="500" height="333" alt="Pete and Hoops" /></a>Rick didn't let others' indecision stand in the way of making progress towards a good cause. Between Bamboo workshops 4 and 5 (April - June 2009), he independently hired a developer from San Francisco, brought him out to Virginia, and in three weeks had him do a mockup of the <a href="http://www.quinndombrowski.com/dh/data/bamboo-craigslist-humanities">"Bamboo Exchange"</a>-- a "Craigslist" for digital humanities. To me, it was one of the most striking demonstrations in the entire Bamboo process of how much "cyberinfrastructure" a single person can build in a short time if they stop hand-wringing, acknowledge that what they build will change, and just jump in and do something that people can respond to and build on. Even though the "Bamboo Exchange" thread was dropped from the final Bamboo Technology Proposal, the same idea re-emerged as a possible direction for a National Collaboration for Digital Humanities grant put together by small liberal arts colleges. It's a development I'd love to see-- the aspect of Bamboo that Rick so believed in, that he believed (I think rightly) could make such a difference for small liberal arts colleges' abilities to undertake projects that require specialized expertise for a short period of time-- finally coming to fruition.</p> <p>Nothing I've said here comes close to conveying the essence of Rick Peterson. His friendship with Kent was what college students dream of their relationship being with their closest friends, 30 years down the road, but it's something so few achieve. He had a smile and a <em>sincere</em> kind word for everyone, even those of us with no particular status or influence. He was the kind of person to insist on taking a grad student out to a nice meal, and talking to them as an equal. Rick was passionate about his job, but it was his compassion and enormous heart that really set him apart. He was a force for good, both on the professional and the human level, and I will miss his light.</p> 2011-01-02T00:00:00Z http://www.quinndombrowski.com/blog/2011/01/02/maybe-time-project-d%25C3%25A9j%25C3%25A0-vu/ <p>The <a href="http://www.projectbamboo.org/">Bamboo Planning Project</a>, which <a href="http://www.flickr.com/photos/quinnanya/sets/72157606216151053/">consumed my life from 2008 to 2009</a>, officially concluded on December 31, 2010, allowing me to <a href="http://www.quinndombrowski.com/dh">publish a project</a> I've been working on independently for over a year. You can read the <a href="http://www.quinndombrowski.com/dh/analysis/about-digital-humanities-analysis-project">full project description here</a>, but in summary, I've organized the notes from the Bamboo workshops that have been public on the Bamboo wiki for 1.5 - 2.5 years by topic, and written summaries for the data that wasn't covered in the <a href="https://wiki.projectbamboo.org/display/BPUB/Project+Bamboo+Scholarly+Practice+Report">Project Bamboo Scholarly Practice Report</a>; expanded summaries of topics related to scholarly practice are in progress.</p> <p>After I hit "publish" on it all yesterday, it came to me that I've done this same project before. When I was 14, in the International Baccalaureate Program, I read <em>The Chosen</em> by Chaim Potok and came across a quote that's stuck with me ever since:</p> <blockquote><p>"If a person has a contribution to make, he must make it in public. If learning is not made public, it is a waste."</p> </blockquote> <p><a href="http://www.flickr.com/photos/quinnanya/5315512645/" title="QuinnNotes by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5210/5315512645_e481d0cf6b_m.jpg" width="240" height="205" alt="QuinnNotes screenshot" class="alignright" /></a>Taking this to heart, I built a webpage (using a text editor, and hosted by Geocities) where I posted my class notes every day. It was called QuinnNotes, and it found an audience not only with my classmates, but with IB students in far-flung places. The most extensive material was from history and English; the teachers' reactions were mixed. My own hazy memory suggests that I ran it my entire sophomore year, but when I dug up the old HTML files, my inconsistent metadata raises some doubts. The project started 11/6/99, daily history notes end 2/10/00, but there's pages for novels I'm almost certain we read in the spring. There were a couple jokes and drawings submitted by my classmates; I tried to encourage people to send me their essays (on the grounds that, since nearly everyone typed them anyways, why not submit it to a shared pool of knowledge?) and was disappointed that my classmates were happy to take but disinclined to give.</p> <p>In retrospect, I was trying to create something like a "scholarly" wiki at a time when the web was still 1.0 and "community" was still manifested through webrings.</p> <p>As I was finishing my BA/MA in 2006, I set about building a scholarly hub for Slavic linguistics, slowly and painfully, using Drupal 4. My goal was to aggregate resources and events for Slavists (grants, conferences), publish the OCR'd versions of major reference works that I had been painstakingly proofreading, and build a forum where scholars could publish and respond to each other's work. I'd attended a few conferences and was dismayed at how inefficiently they spread knowledge. Certainly, I thought, a website where one could succinctly write up discoveries and theories and receive feedback from one's peers would be a vast improvement. </p> <p>It's for the best that Drupal 4 was such a hassle to use that the project never got off the ground. I fundamentally misunderstood how <a href="http://www.quinndombrowski.com/dh/analysis/promotion-tenure-and-digital-humanities">promotion and tenure</a> worked and the importance of <a href="http://www.quinndombrowski.com/dh/analysis/peer-review-digital-scholarship">peer reviewed (printed) publications</a>. Even if advancing human knowledge by building on others' ideas is the goal of scholarship in the biggest picture, upholding the customs and practices that keep scholars employed and in good standing (publishing articles in peer-reviewed journals, publishing a monograph with a respected press, etc.) takes precedence.</p> <p>It's 2011: five years have passed since my failed Slavic portal, and 11 years have passed since QuinnNotes. Still, I find myself seeing common threads running through my current set of projects. Re-publishing an organized and summarized version of the Bamboo notes is not far removed from QuinnNotes, particularly since I took many of the original scribe notes at the workshops. I don't expect a unanimously positive reaction to the Bamboo notes, either. This semester, <a href="http://slavic.osu.edu/people/Andrea%20Sims">Andrea Sims</a> of Ohio State University's Slavic department is running an MA exam prep class, and her students will be publishing article summaries and article content reworked into topical pages on a <a href="http://www.slavistics.org/">wiki for Slavic linguistics</a> that I built (more on the wiki project <a href="http://www.quinndombrowski.com/blog/2010/11/21/a-wikipedia-model-for-modernizing-scholarly-reference">here</a>). It may have failed with essays on QuinnNotes and the entire concept behind the Slavic portal, but people have finally agreed to share their academic work in public. Next week, I'll be attending the National Collaboration for Digital Humanities in the Liberal Arts Grant Planning Session, where we'll be discussing the possibility of developing a hub for tools, resources, and people in digital humanities, based in part on a site mock-up I put together with some like-minded folks I met at the Chicago THATCamp; this picks up on the other goal I hoped to accomplish with the Slavic portal.</p> <p>Starting a project without institutional support, grant support, or staffing beyond what time I can squeeze in after working a full-time job (as per the usual circumstances of my projects) necessitates wishful thinking. Most grand ideas have been tried before; more often than not, they fall short or fail outright. But I'm a sucker for quixotic good ideas, inclined to give them the benefit of the doubt when it comes to the thorny details of implementation-- if it's worth doing, things will work out. "Go at it boldly, and you'll find unexpected forces closing round you and coming to your aid."<sup><a href="http://www.quinndombrowski.com/blog/2011/01/02/maybe-time-project-d%25C3%25A9j%25C3%25A0-vu/#1">1</a></sup> I've left a trail of unfinished projects, learning more from some than others, but most importantly getting better at deciding when to cut my losses, salvage what I can, apologize if necessary, and move on. Still, my personal philosophy is that if there's a project that's worth doing, and I'm a reasonably qualified person to take it on, I'll give it a shot. In the words of Liza Minnelli,</p> <blockquote><p>[The project's] got to happen, happen sometime<br /> Maybe this time I'll win. </p> </blockquote> <p><em><a name="1" id="1"></a><sup>1</sup> Basil King, 1921,</em> The Conquest of Fear.</p> Trotsky salad recipe 2010-12-24T00:00:00Z http://www.quinndombrowski.com/blog/2010/12/24/trotsky-salad-recipe/ <p><a href="http://www.flickr.com/photos/quinnanya/5286980202/" title="Trotsky salad, ready to be served by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5290/5286980202_632a1a1849_m.jpg" width="240" height="160" alt="Trotsky salad, ready to be served" class="alignright" /></a>I recently decided to make beet salad, but managed to forget to pick up every single ingredient in the recipe, save sliced beets. What I did have on hand was a lot of produce that had previously been bought and forgotten. I threw it all together, in a combination that sounds dodgy at best, and called it "Trotsky Salad" (Russian beets meet Mexican avocado-- and a little nuts!). The result was incredibly delicious-- if you're not opposed to beets-- and we've been eating it ever since. It's vegan, and pretty healthy (save perhaps the sodium in the canned beets.)</p> <p>All quantities listed below are flexible; I doubt I've made it with the exact same proportion of ingredients twice. The quantity below serves 2 as a main dish, 4 as a side. From start to finish, it probably takes 15 minutes.</p> <p><a href="http://www.flickr.com/photos/quinnanya/5286976696/" title="Trotsky salad by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5008/5286976696_80d19f78ca_m.jpg" class="alignright" width="160" height="240" alt="Trotsky salad" /></a></p> <ul> <li>2 cans sliced beets (or 1 lb sliced beets from the deli)</li> <li>2 avocados</li> <li>2 bundles of green onions</li> <li>2 Roma tomatoes (or 1 container grape tomatoes)</li> <li>1/2 cup roasted peanuts, lightly salted, pulverized in a food processor</li> <li>~ 1 Tbsp lemon juice; add a bit more if you plan on keeping it overnight, to minimize the avocados' turning brown</li> <li>1 Tbsp Harissa*, or more to taste</li> </ul> <p>Coarsely chop up and mix together. the sliced beets, avocados, green onions, and tomatoes. Mix in the lemon juice and harissa. Serve, covering each portion with pulverized peanuts.</p> <p><em>* Hot sauce isn't a good substitute for harissa. Unlike most hot sauce, it has no vinegar. The brand I use, <a href="http://www.flickr.com/photos/quinnanya/5286377041/">Le Cabanon</a> (</em></p> <h3>Variant: Trotsky Does Thailand</h3> <p>This may simply be substituting one obscure ingredient for another, but if you find your local grocery store is out of harissa, but you have a small can of Thai panang curry paste lying around (actual Thai curry paste, not the "Thai" curry paste made by and for Americans), you can substitute 1/3 to 1/2 can of the curry paste for the harissa. I can vouch for getting a positive result out of panang curry paste, but I can imagine masaman curry also being good.</p> Blocking Jimmy Wales 2010-12-20T00:00:00Z http://www.quinndombrowski.com/blog/2010/12/20/blocking-jimmy-wales/ <p>Jimmy Wales has been driving me crazy. I've donated to Wikipedia before, and I've been on board with previous donation solicitation campaigns, but I'm really sick of looking at Jimmy Wales, his urgent appeal, and the bar-of-pity that scrolls through the $11.5M raised but, more importantly, the $4.5M left to go, <em>on every single Wikipedia page</em>. This year, I'm donating as soon as they take down that banner. In the meantime, I've figured out how to hide Jimmy Wales in my two most commonly-used browsers.</p> <h3>Firefox</h3> <p>Click on the <a href="http://adblockplus.org/en/">Adblock Plus</a> icon in the upper right of your browser, go to <em>Preferences</em>, choose <em>Add filter</em>, and paste in:<br /> <code>wikipedia.org##div[id="siteNotice"]</code></p> <h3>Chrome</h3> <p>In the URL bar, go to <code>chrome://extensions</code>. Go to the <a href="https://chrome.google.com/extensions/detail/gighmmpiobklfepjocnamgkkbiglidom">Adblock</a> options, then go to the <em>Blacklist</em> tab, and hit the <em>Edit</em> button next to "Manually edit your filters". Paste into the box:<br /> <code>*wikipedia.org/*##div[id="siteNotice"]</code></p> <p>(Thanks to the <a href="https://adblockplus.org/forum/viewtopic.php?f=2&t=6347">Adblock Plus forums</a> for the Chrome fix.)</p> Google Ngrams and religion 2010-12-19T00:00:00Z http://www.quinndombrowski.com/blog/2010/12/19/google-ngrams-and-religion/ <p>Google Ngrams has been the death of my productivity since Friday morning. Google Ngrams are the new word clouds, but more exciting because the output is a chart-- and, as I discovered when I did a mock scientific analysis of university library graffiti, <a href="http://www.crescatgraffiti.com/2010/11/28/prelude-to-a-graffiti-analysis-data-methodology-sampling/">people take charts seriously</a>. It's a first step towards a potentially insightful analysis, but by itself it's not much more than eye candy.</p> <p>That said, I've found some great eye candy.</p> <p>It's important to not forget that the corpus <em>is books</em>. As I was using it, I found myself thinking of it as if it were the entirety of Google's "corpus"-- all scanned books + the entire internet. I tried <a href="http://ngrams.googlelabs.com/graph?content=pirate%2Cninja%2Czombie&year_start=1900&year_end=2008&corpus=0&smoothing=3" rel="lightframe">pirate vs ninja vs zombie</a> (1900-2008); I tried <a href="http://ngrams.googlelabs.com/graph?content=World+Wide+Web%2Cinformation+superhighway%2Cthe+Web&year_start=1990&year_end=2008&corpus=0&smoothing=3" rel="lightframe">World Wide Web vs the Web vs information superhighway</a> (1990-2008); I tried comparing a variety of <a href="http://ngrams.googlelabs.com/graph?content=HTML%2CCSS%2CXML%2CPerl%2CPython%2CPHP&year_start=1992&year_end=2008&corpus=0&smoothing=3" rel="lightframe">web standards and programming languages</a> (1992-2008); on a whim, I tried <a href="http://ngrams.googlelabs.com/graph?content=salad+bar%2Cwine+bar%2Csushi+bar&year_start=1965&year_end=2008&corpus=0&smoothing=3" rel="lightframe">salad bar vs. wine bar vs. sushi bar</a> (1965-2008), and the less-healthy <a href="http://ngrams.googlelabs.com/graph?content=macaroni+and+cheese%2Cfish+and+chips%2Cbacon+and+eggs%2Cpeanut+butter+and+jelly%2Cham+and+cheese&year_start=1950&year_end=2008&corpus=0&smoothing=3" rel="lightframe">X-and-Y food combos</a>, like "bacon and eggs" (1950-2008). But I began to wonder if these popular culture and technology topics are optimal for a cross-linguistic corpus of books spanning a couple of centuries. A topic that spans both time and language would be ideal.</p> <p>I decided on religion.</p> <p><em>(If you want to jump to a particular section, you can choose from <a href="http://www.quinndombrowski.com/blog/2010/12/19/google-ngrams-and-religion/#soulfaithchurch">soul/faith/church</a>, <a href="http://www.quinndombrowski.com/blog/2010/12/19/google-ngrams-and-religion/#testament">New vs. Old Testament</a>, <em><a href="http://www.quinndombrowski.com/blog/2010/12/19/google-ngrams-and-religion/#virtues">Heavenly Virtues</a>, <a href="http://www.quinndombrowski.com/blog/2010/12/19/google-ngrams-and-religion/#sins">Deadly Sins</a>, <a href="http://www.quinndombrowski.com/blog/2010/12/19/google-ngrams-and-religion/#notchristianity">beyond Christianity</a>, <a href="http://www.quinndombrowski.com/blog/2010/12/19/google-ngrams-and-religion/#nomenclature">of nomenclature and spelling</a>, or <a href="http://www.quinndombrowski.com/blog/2010/12/19/google-ngrams-and-religion/#other">other religious texts</a>).</em></em></p> <p><a name="soulfaithchurch" id="soulfaithchurch"></a></p> <h3>Soul, faith, church</h3> <p>I checked out the words "soul" (blue), "faith" (red) and "church" (green), from 1800-2008 in English and Russian, and 1900-2008 in Spanish, French, and German. A few conclusions:</p> <ul> <li>In English, "church" was used significantly more than "soul" or "faith" in the early 19th century, but by 1860 it was only slightly more common than "faith" and "soul". "Soul" was more common than "faith" from approximately 1890-1940. Since ~2005, "soul" has regained some ground, and they're now very close-- and on the rise.</li> <li>In Russian, "church" dominated "soul" (which, itself, dominated faith") until the Russian Revolution*. During the Soviet Union, "church" and "soul" were neck-and-neck, until the fall of communism when "church" shot ahead again. Since 2000, "church" has been declining more rapidly than "faith" and "soul", which have largely leveled off.</li> <li>In Spanish, at the start of the 20th century, "soul" shot past "faith". "Soul" began plummeting in the mid-1960's, bottoming out significantly lower than "faith" (but still higher than "church", which has been consistently lower during the whole 20th century) in the late 1980's. As of about 2005, "faith" and "soul" are about even.</li> <li>In French, like in Spanish, "church" has always been lower than "soul" or "faith" (though it's had more ups and downs over the 20th century). "Soul" was more common until about 1970, with peaks around 1925 and 1945. Since 1970, "soul" and "faith" have been going back and forth in popularity.</li> <li>In German, "soul" had two distinct peaks in the early 1920's and mid-1940's. But other than during the first peak of "soul", "church" has always dominated. "Church" and "faith" shared the post-WWII peak with "soul", and after "soul" began to decline in the late 1960's, it's been almost as infrequent as "faith". "Church" had another peak in the mid 1990's, but has been declining since.</li> </ul> <object width="740" height="270"> <param name="flashvars" value="offsite=true&lang=en-us&page_show_url=%2Fphotos%2Fquinnanya%2Fsets%2F72157625505925621%2Fshow%2F&page_show_back_url=%2Fphotos%2Fquinnanya%2Fsets%2F72157625505925621%2F&set_id=72157625505925621&jump_to=" /> <param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649" /> <param name="allowFullScreen" value="true" /><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowfullscreen="true" flashvars="offsite=true&lang=en-us&page_show_url=%2Fphotos%2Fquinnanya%2Fsets%2F72157625505925621%2Fshow%2F&page_show_back_url=%2Fphotos%2Fquinnanya%2Fsets%2F72157625505925621%2F&set_id=72157625505925621&jump_to=" width="740" height="270" /></object><p> <a name="testament" id="testament"></a></p> <h3>Old Testament vs. New Testament</h3> <p>In these corpora from countries with traditions of Christianity, is the Old Testament (blue) or the New Testament (red) referenced more often?</p> <ul> <li>English: In the 19th century, the New Testament was referenced much more often than the Old Testament. As the absolute number of references started to decline in the late 19th century, the discrepancy between the number of references to the two Testaments decreased. From about 1950 to the late 1970's, the number of references was almost identical. Since then, the number of New Testament references has been increasing more quickly than the number of Old Testament references.</li> <li>Russian: References to the New Testament have always been more numerous than references to the Old Testament-- though not always by much. When communism fell, the number of New Testament references increased much faster than references to the Old Testament; the absolute number of references has been declining since 2000, and the gap is narrowing.</li> <li>Spanish: Unlike in the English, German, and Russian corpora, where the absolute number of references to the Testaments has risen and fallen at various points, the trend has consistently been upward for both since about 1905. What's more, there has never been much of a discrepancy between the two, except perhaps from around 1975-1990.</li> <li>French: Like Spanish, there's a general upward trend and the two Testaments are fairly close to the each other. The New Testament pulled ahead of the Old Testament between 1930-1945 and 1980-1995. </li> <li>German: The absolute numbers of references are more like the English and Russian corpora, with highs and lows throughout the 20th century. However, the New Testament and Old Testament have largely the same ups and downs, with references to the New Testament being significantly higher except towards the end of WWII.</li> </ul> <object width="740" height="270"> <param name="flashvars" value="offsite=true&lang=en-us&page_show_url=%2Fphotos%2Fquinnanya%2Fsets%2F72157625631640024%2Fshow%2F&page_show_back_url=%2Fphotos%2Fquinnanya%2Fsets%2F72157625631640024%2F&set_id=72157625631640024&jump_to=" /> <param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649" /> <param name="allowFullScreen" value="true" /><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowfullscreen="true" flashvars="offsite=true&lang=en-us&page_show_url=%2Fphotos%2Fquinnanya%2Fsets%2F72157625631640024%2Fshow%2F&page_show_back_url=%2Fphotos%2Fquinnanya%2Fsets%2F72157625631640024%2F&set_id=72157625631640024&jump_to=" width="740" height="270" /></object><p> <a name="virtues" id="virtues"></a></p> <h3>Heavenly virtues</h3> <p>The early 19th century was a good time for talking about virtues. The absolute number of references has been declining steadily since the 1840's, and while it bottomed out around 2000, virtues have been making a comeback since around 2002. </p> <ul> <li>Chastity has always been very unpopular.</li> <li>Temperance has been almost as unpopular as chastity, except during the temperance movement in the late 19th century and during Prohibition</li> <li>Diligence has been about as unpopular as chastity and temperance since the 1940's, although it has been referred to more commonly since 2003-- perhaps due to the phrase "due diligence"?</li> <li>Humility was matching the decline of diligence from the 1840's to 1920's, but has remained largely steady since then, instead of declining to the level of chastity and temperance.</li> <li>Kindness was the most commonly referenced virtue until about 1920. By 1940, it settled firmly into third place. In mid-2006, it overtook charity.</li> <li>Charity always played second fiddle to kindness (even during a spike in the 1870's), but from the 1940's - 1960's it was tied with patience for first place. Since then, it has trailed only slightly behind patience.</li> <li>Patience was solidly #3 for a long time, but by 1940 it was sharing first place with charity, and has pulled ahead slightly since the 1960's.</li> <p><a href="http://www.flickr.com/photos/quinnanya/5274693180/" title="Seven Heavenly Virtues, 1800-2008 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5129/5274693180_af8b69f7cb_b.jpg" width="900" height="330" alt="Seven Heavenly Virtues, 1800-2008" /></a></p> <p><a name="sins" id="sins"></a></p> <h3>Deadly sins</h3> <p>The seven deadly sins have, overall, experienced a pattern similar to that of the heavenly virtues, albeit with a smaller post-2002 comeback.</p> <ul> <li>Gluttony has never been referenced much.</li> <li>Sloth was a greater concern from 1800-1830, before declining to a gluttony-like level of unpopularity.</li> <li>Until about 1860, greed was the least referenced deadly sin. Since 1880, it's been #5-- noticeably more referenced than sloth and gluttony.</li> <li>Lust has been a pretty middle-of-the-road sin, staying fairly steady since about 1880.</li> <li>Envy has reliably been #3, before converging with wrath around 1940. It pulled ahead around the 1970's, but has experienced a smaller post-2000 bump than wrath.</li> <li>Wrath was #2 until the 1940's, fell behind envy in the 1970's, and is making one of the strongest post-2000 comebacks.</li> <li>Pride is quite literally off the chart. (If you want a chart that includes pride <a href="http://ngrams.googlelabs.com/graph?content=wrath%2Cgreed%2Csloth%2Clust%2Cenvy%2Cgluttony%2Cpride&year_start=1900&year_end=2008&corpus=0&smoothing=3" rel="lightbox">here it is</a>.) Its comeback started earlier, in 2000, even though phrases that commonly come to mind involving pride (<a href="http://ngrams.googlelabs.com/graph?content=American+pride%2Cnational+pride%2Cethnic+pride&year_start=1950&year_end=2008&corpus=0&smoothing=3" rel="lightframe">American pride, national pride, ethnic pride</a>) have been steady or declining since then.</li> </ul> <p><a href="http://www.flickr.com/photos/quinnanya/5274085749/" title="Six of the seven deadly sins, 1800-2008 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5082/5274085749_e1611a565e_b.jpg" width="900" height="330" alt="Six of the seven deadly sins, 1800-2008" /></a></p> <p><a name="notchristianity" id="notchristianity"></a></p> <h3>Beyond Christianity</h3> <p>Even in corpora from traditionally Christian countries, there's plenty to be said about religions other than Christianity.</p> <ul> <li>Hinduism: From 1800-1840, both Hinduism and Buddhism were referenced very rarely. While Buddhism took off, Hinduism has been increasing slowly but steadily, and has lagged behind the other religions.</li> <li>Buddhism: Interest in Buddhism developed steadily from around 1835 onward, but after the publication of Edwin Arnold's book <em>The Light of Asia</em> (a poetic depiction of the life of the Buddha) in 1879, references to Buddhism to surpass references to Islam until the late 1910's. From the late 1950's until mid-1980's, Buddhism was referenced more often than Judaism.</li> <li>Judaism: Until 1900, it was generally the most commonly-referenced non-Christian religion. Since then, it's been going back-and-forth with Buddhism. Since 1984, it's been ahead.</li> <li>Islam: Other than a period of 30 years when Buddhism was (at times, only barely) ahead of Islam, it has always been the most referenced major non-Christian religion. Since the 1950's, it's been far ahead of all the others.</li> </ul> <p><a href="http://www.flickr.com/photos/quinnanya/5274564889/" title="Judaism, Islam, Buddhism, Hinduism by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5290/5274564889_ece2c9e50e_o.png" width="900" height="330" alt="Judaism, Islam, Buddhism, Hinduism" /></a></p> <p><a name="nomenclature" id="nomenclature"></a></p> <h3>Of nomenclature and spelling</h3> <p>Transliteration is a tricky business-- particularly, it seems, from Arabic. There have been two major spelling variations for the holy book of Islam (note: I did try a number of other ones, but their results were fairly negligible):<br /> <a href="http://www.flickr.com/photos/quinnanya/5274693770/" title="Spellings of Koran by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5209/5274693770_69bc0b4e82_b.jpg" width="900" height="330" alt="Spellings of Koran" /></a></p> <p>This pales in comparison to the variations in terminology (and spelling) for adherents of that faith; the standard term used today only had the majority of references after 1940:</p> <p><a href="http://www.flickr.com/photos/quinnanya/5274086507/" title="Muslim and variants, 1800-1960 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5162/5274086507_d3a7173c7e_b.jpg" width="900" height="330" alt="Muslim and variants, 1800-1960" /></a></p> <p>Today's spelling for someone who follows the predominant religious tradition of South Asia only began to dominate in the 1870's; before that, you're more likely to see references to Hindoos:</p> <p><a href="http://www.flickr.com/photos/quinnanya/5274693652/" title="Hindu vs Hindoo, 1800-1920 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5162/5274693652_9cd03288be_b.jpg" width="900" height="330" alt="Hindu vs Hindoo, 1800-1920" /></a></p> <p>Karma, Dharma and Nirvana provide a good example of how capitalization can have a huge effect on the the general shape of the graph:<br /> <a href="http://www.flickr.com/photos/quinnanya/5274694780/" title="karma, dharma, nirvana, 1870-2008 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5166/5274694780_d79ec29655_b.jpg" width="900" height="330" alt="karma, dharma, nirvana, 1870-2008" /></a><br /> <a href="http://www.flickr.com/photos/quinnanya/5274640801/" title="Karma, Dharma, Nirvana, 1870-2008 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5245/5274640801_ab230e6802_b.jpg" width="900" height="330" alt="Karma, Dharma, Nirvana, 1870-2008" /></a></p> <p>Most striking here is karma, which has increasingly been used in a more general way, not particularly tied to Buddhist doctrine:<br /> <a href="http://www.flickr.com/photos/quinnanya/5275291406/" title="Karma, 1900-2008 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5243/5275291406_723296406d_b.jpg" width="900" height="330" alt="Karma, 1900-2008" /></a></p> <p><a name="other" id="other"></a></p> <h3>Other religious texts</h3> <p>Let me conclude with the frequency of references over time for three religious texts that are dwarfed by the Upanishads, let alone the Koran and Bible: the Kama Sutra, the Tao Te Ching, and the Mahayana Sutras:<br /> <a href="http://www.flickr.com/photos/quinnanya/5274665165/" title="Other scriptures, 1900-2008 by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5089/5274665165_a3db2b3579_o.png" width="900" height="330" alt="Other scriptures, 1900-2008" /></a><br /> All three have generally increased over time, but the periods of particularly sharp increase for the Kama Sutra align with periods of expanding sexual freedom. </p> <p><em>* One other interesting effect of the Russian Revolution: <a href="http://ngrams.googlelabs.com/graph?content=%D0%91%D0%BE%D0%B3%2C%D0%B1%D0%BE%D0%B3&year_start=1900&year_end=2008&corpus=12&smoothing=3" rel="lightframe">"god" dominated "God"</a> for much of the 20th century. Compare to the <a href="http://ngrams.googlelabs.com/graph?content=god%2CGod&year_start=1900&year_end=2008&corpus=0&smoothing=3" rel="lightframe">English equivalent</a>.</em></p> </ul> Work-safe xkcd shirt 2010-11-23T00:00:00Z http://www.quinndombrowski.com/blog/2010/11/24/work-safe-xkcd-shirt/ <p><a href="http://www.flickr.com/photos/quinnanya/5205808280/" title="xkcd shirt by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5049/5205808280_563c7deac0_m.jpg" width="154" height="240" alt="xkcd shirt" class="alignright" /></a>This summer, after I had amassed a delightful collection of geeky t-shirts, I was promoted to a managerial position where I couldn't really wear them to work. My solution? Design geeky fabric, print it at <a href="http://www.spoonflower.com/profiles/quinnanya">Spoonflower</a>, and sew it into button-down shirts.</p> <p>I started with a <a href="http://www.flickr.com/photos/quinnanya/5205205499">design based on birchbark letter 206</a>, the 13th century drawing of a young boy named Onfim. It turned out quite well, though the downside was that Slavic conferences are the only environment where people recognize the pattern if you point it out. For my second design, I went through every single <a href="http://xkcd.com/">xkcd</a> ("a webcomic of romance, sarcasm, math, and language", by Randall Munroe, and my absolute favorite comic), from #812 until #200, and extracted and arranged the figures. It's not for sale in the Spoonflower marketplace, due to the non-commercial provision in the Creative Commons license that xkcd uses, but anyone is welcome to <a href="http://www.flickr.com/photos/quinnanya/5134725142/">download the pattern</a> and print it for their own non-commercial use.</p> <p>I've worn the shirt to work a few times already, and the results have been interesting. I sit and have long conversations with people who I know are fans of xkcd, and they don't even notice until I finally point it out. Maybe after <a href="http://www.crescatgraffiti.com/">three years of looking at graffiti</a>, I overestimate other people's inclination towards noticing the small things around them, but it took me by surprise.</p> <p>The remaining fabric scraps found a new life as an elephant:<br /> <a href="http://www.flickr.com/photos/quinnanya/5203889651/" title="The xkcdphant by quinn.anya, on Flickr"><img src="http://farm6.static.flickr.com/5249/5203889651_99284f6d1c_m.jpg" width="240" height="160" alt="The xkcdphant" /></a></p> A 'Wikipedia model' for modernizing scholarly reference 2010-11-20T00:00:00Z http://www.quinndombrowski.com/blog/2010/11/21/a-wikipedia-model-for-modernizing-scholarly-reference/ <p>Here's the <a href="https://docs.google.com/present/view?id=ddd22j37_129cmv3d2f4">slides from the talk</a> I gave on the <a href="http://www.medievalslavic.org/">Medieval Slavic Wiki</a> at <a href="http://chicagocolloquium.org/dhcs-program-2010/">DHCS 2010.</a></p> Qi Lu on Bing, Facebook and markets: economists needed, linguists need not apply 2010-11-05T00:00:00Z http://www.quinndombrowski.com/blog/2010/11/06/qi-lu-on-bing-facebook-markets/ <p><a href="http://www.flickr.com/photos/jwalsh_/3866088899/"><img src="http://www.quinndombrowski.com/assets/blog/bing_jwalsh.jpg" alt="" title="Bing pop can, by Jason Walsh (CC BY)" width="180" height="240" class="alignright size-full wp-image-50" /></a>A couple weeks ago I was fortunate enough to be invited to a talk by <a href="http://en.wikipedia.org/wiki/Qi_Lu">Qi Lu</a> at the University of Chicago's <a href="http://www.ci.uchicago.edu/">Computation Institute</a>. The President of Microsoft's Online Services Group, Mr. Lu's talk was on opportunities for collaboration with academics on the Bing search engine. Microsoft had recently announced <a href="http://mashable.com/2010/10/13/facebook-bing-social-search/">Facebook integration with Bing</a>, and I was particularly interested in what he had to say about it.</p> <p>Mr. Lu's talk-- and particularly the Q&A that followed-- provided some interesting answers to the often-contemplated question "What is Microsoft <em>thinking?</em>", and thoroughly convinced me that Bing is not the search engine for me.</p> <h3>On Facebook integration</h3> <p>Mr. Lu was excited about the possibility of using recommendations from friends-- an element of real-world decision-making-- to influence Bing search results. I first heard the news about Bing’s integration with Facebook in <a href="http://www.personalinfocloud.com/2010/10/bing-likes-like-but-does-it-mean-we-do-.html">a blog post questioning the value of decontextualized "like" data</a>, so I decided to ask him about it.</p> <p>I figured it was a pretty soft-ball question, given the number of computational linguists in the room and the premise of "collaboration with academics". In the last year or so, services like <a href="http://twendz.waggeneredstrom.com/">twendz</a> have emerged, providing automated analysis of whether tweets are positive or negative. Why not develop similar systems to analyze "Like" data? One could look at the follow-up comments on a news article or web page-- if there's content criticizing the article for being biased, or incorrect, or poorly-written, then the "Like" shouldn't be valued positively. Similarly, if someone has "Liked" a product or business so they can write critical messages on the product's Wall, those wall posts could be factored into the valuation of the "Like".</p> <p><a href="http://www.flickr.com/photos/quinnanya/4294553880/"><img src="http://farm5.static.flickr.com/4062/4294553880_73eebee0e7_m.jpg" class="alignright" /></a>When I mentioned the ambiguity of "Like"-- given the many motivations for doing it, including gaining access to a product's Wall-- and asked what Microsoft was doing to re-contextualize the data in order to correctly assess its value, Mr. Lu didn't quite seem to understand what I meant. He agreed that "Like"ing an article can just indicate that the person finds it interesting (rather than necessarily <em>liking</em> the contents, particularly in reference to articles about tragedies), and he said that his group is looking into hiring social scientists to follow the emerging trends in people's behavior on-line and why they "Like" the things they do. I re-emphasized the point about "Like" being more than "this is interesting"-- it can be used to enable a form of protest. Mr. Lu's replied that people will always find ways to "abuse the system", but he feels that "the good will win out".</p> <p>It's understandable that from the point of view of the business being criticized, "Like"ing a product in order to protest it amounts to "abusing the system", but I was taken aback to hear the same sentiment from a company that-- one would think-- would be interested in correctly valuing the data being used to influence their search rankings, regardless of the sentiment. Then again, the way Bing apparently does its search rankings to begin with doesn't exactly inspire my confidence.</p> <h3>Bing's search results: brought to you by the masses</h3> <p><a href="http://www.flickr.com/photos/quinnanya/2657928331/"><img src="http://farm4.static.flickr.com/3240/2657927529_3bf612d82c_m.jpg" class="alignright" /></a>A colleague described to Mr. Lu his recent experiment looking for a map of Budapest on Bing. He typed in <em>Budapest</em>, figuring the city's tourism page would come up first, and that would have some appropriate map. The day he searched, all the top results were about Angelina Jolie and Brad Pitt filming a movie in Budapest. As he scrolled, he saw a headline about Brad Pitt accidentally walking into the wrong house and, feeling guilty ("They'll think I found what I was looking for!"), he clicked on it.</p> <p>Mr. Lu replied that Bing results depend on what people are searching for, stating that searches for "Columbia" right before the space shuttle disaster probably referred to the country, but immediately afterwards people were searching for the latest news, and the system has to adapt nimbly. And since my colleague clicked on something he found interesting, wasn't that, in a sense, a successful search?</p> <p>Apparently with Bing, a dancing baby-- or whatever else is entertaining the masses at the current moment-- is always the right answer. "We don't rank our results," said Mr. Lu, seemingly with some pride. The Borg Collective of John Q. Public (which, as I look just now, has informed the default Bing drop-down that I'll be looking for 'Megamind movie') takes care of that for you.</p> <p>How do you prevent your search results from being invaded by vacuous pop culture? Mr. Lu mentioned that Bing is very respectful of your privacy, but later noted that Bing tries to provide the best search results based on everything it knows about you-- which seems to suggest that if your interests and inclinations differ from those of the masses, you have to surrender some of your privacy to get reasonable search results.</p> <h3>The future of mobile search</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5008167778/"><img src="http://farm5.static.flickr.com/4150/5008167778_915754b332_m.jpg" class="alignright" /></a>Mr. Lu was enthusiastic about the strides Microsoft is making in turning data about the world around users into search queries, remarking that entering words into a box isn't the most natural way to search from a mobile device. Instead, why not take a picture of something and let that be the search input? If you take a picture of a business or church*, you could see the associated website, opening hours, menu, etc.</p> <p>Personally, I despair at a future where such a system is the default input for search queries, nor am I sure that it would even work. Even if you're looking for a product to buy, it's likely because you don't have one and therefore can't take a picture of it. Maybe the hope is that you would take photos of billboard ads, to facilitate your easy purchase of things that companies want you to buy? If I'm looking up a restaurant to find the hours, chances are I'm not there at the moment to take a picture-- otherwise I could look at the hours posted on the door. And what if you're looking for something more abstract, like the history of touchscreens, and don't just want one to buy? There's already mobile apps that let you purchase an item based on a photograph; what else would Bing offer?</p> <h3>Profits, not products</h3> <p>The intensity of Mr. Lu's focus on profits took me aback. Before the talk started, we all introduced ourselves briefly, and the audience included a number of scholars from the Computation Institute (including linguists), a number of IT staff, two business school students, and someone from a nonprofit. Notably absent were the economists, but why should they attend what was ostensibly a talk about opportunities for collaboration on a piece of technology?<br /> Knowing there were no economists in the room, Mr. Lu persisted in directing his offers for collaboration to these absent economists. He described the University of Chicago as a great school for economic theory-- while arguably true, I can't help but wonder if it wasn't a little insulting to the people who were in attendance. Mr. Lu wants to collaborate with scholars in developing a better model for a market to sell adwords for Bing. He referred to a second of human attention as the most valuable commodity, destined to become even more valuable as <em>"great products designed especially for you!"</em> compete for your attention. It seemed pretty clear that the focus of Bing is on profits-- getting people to see as many ads tailored to their demographic as possible, and developing more effective ways to extract money from advertisers-- and not on getting people the search results that they actually want.</p> <p><a href="http://www.flickr.com/photos/quinnanya/2782281489/"><img src="http://farm4.static.flickr.com/3119/2782281489_816c63326d_m.jpg" class="alignright" /></a>Maybe Mr. Lu should wait until the <a href="http://mfi.uchicago.edu/">Milton Friedman Institute</a> opens at UChicago. He might just find the collaborators he's looking for there.</p> <p><em>* It's a small thing, but I was struck by how Mr. Lu repeatedly used the example of looking for information about a church. While not as bad as getting the name of your host institution wrong, it's a detail that suggests some degree of unfamiliarity with UChicago. Everyone I've known in the Divinity School has been agnostic, if not atheist.</em></p> <p><em>(As usual, the opinions expressed here are mine alone and not those of the University of Chicago, a place where the world’s leading minds come to be agreed and disagreed with.)</em></p> <p><em>Bing pop can by <a href="http://www.flickr.com/photos/jwalsh_/3866088899/">Jason Walsh</a> (<a href="http://creativecommons.org/licenses/by/3.0/">CC BY</a>)</em></p> Medieval font support on Android 2010-10-12T00:00:00Z http://www.quinndombrowski.com/blog/2010/10/13/medieval-font-support-on-android/ <p><a href="http://www.flickr.com/photos/quinnanya/3874764643/" title="Cyrillic post-it note by quinn.anya, on Flickr"><img src="http://farm3.static.flickr.com/2669/3874764643_44c97b3d52_m.jpg" width="160" height="240" alt="Cyrillic post-it note" class="alignright" /></a>Froyo 2.2 brought native Arabic, Hebrew and Thai support to Android, but what about <a href="http://en.wikipedia.org/wiki/Glagolitic_alphabet">Glagolitic</a>? What is a Slavic medievalist to do without the Old Church Slavonic combining characters, or any of the other wonderful characters introduced in Unicode 5.1? No longer content to look at rectangles, I set about installing a font that supported the Unicode characters I count on.</p> <h3>What you need</h3> <ul> <li>A <strong>rooted</strong> Froyo phone. Not rooted? Check out <a href="http://www.unrevoked.com/">Unrevoked</a> or <a href="http://wiki.cyanogenmod.com/index.php?title=Universal_Androot">Universal Androot</a>.</li> <li>The <em>Terminal Emulator</em> app by Jack Palevich, available in the Market (NOT the one by ZTA Technologies)</li> <li>A font that supports your favorite Unicode characters</li> <li>A computer</li> </ul> <h3>The procedure</h3> <ul> <li>Connect your Android to the computer, and copy the font to the root of the SD card on your Android. Rename it <em>DroidSansFallback.ttf</em> (the capitalization is important)</li> <li>Unmount and/or disconnect your Android from the computer</li> <li>Launch Terminal Emulator</li> <li>Type <em>su</em>. A "Superuser request" screen might come up; allow access. You'll know it works when the prompt in Terminal Emulator changes from <strong>$</strong> to <strong>#</strong></li> <li>Type <em>mount</em>, and your screen will be filled with a lot of text. Look about 9 lines down for one that looks like <em>/dev/block/mtdblock[some number] /system yaffs2 ro,relatime 0 0</em>. On my Evo 4G, this line says <em>/dev/block/mtdblock4 /system</em>, but different phones have a different number after <em>mtdblock</em>. Make a note of yours.</li> <li><a href="http://www.flickr.com/photos/quinnanya/5080080122/" title="Glagolitic on an Android by quinn.anya, on Flickr"><img src="http://farm5.static.flickr.com/4124/5080080122_987605ed87_m.jpg" width="146" height="240" alt="Glagolitic on an Android" class="alignright" /></a>Type <em>mount -o rw,remount -t yaffs2 /dev/block/<strong>mtdblock4</strong> /system</em>, substituting in the number you just wrote down instead of "4", if yours is different. <ul> <li>A helpful hint: At least on my setup, using SwiftKey and Terminal Emulator, you can't type a period or comma without overwriting the previous character. If you have this problem too, type a space before typing the comma (i.e., in <em>rw,remount</em>). It'll replace the space with the comma and you can continue as usual. This also comes in handy when you need to type the period in <em>DroidSansFallback.ttf</em>.</li> </ul> </li> <li>Type <em>cp /system/fonts/DroidSansFallback.ttf /sdcard/DroidSansFallbackOld.ttf</em>. This will copy the built-in DroidSansFallback.ttf font to your SD card with the name "DroidSansFallbackOld.ttf". That way, if you ever want to restore the default font, you'll still have it.</li> <li>Type <em>cp /sdcard/DroidSansFallback.ttf /system/fonts/DroidSansFallback.ttf</em>. This will overwrite the default DroidSansFallback.ttf font with the font you've chosen.</li> <li>Reboot your phone, and savor the joys of Unicode.</li> </ul> Installing Cocoon on Ubuntu 10.04 or 10.10 2010-10-10T00:00:00Z http://www.quinndombrowski.com/blog/2010/12/10/installing-cocoon-on-ubuntu-10-04-or-10-10/ <p>This is an updated version of a <a href="http://www.quinndombrowski.com/blog/2010/04/15/installing-cocoon-on-ubuntu/">how-to written for Intrepid (8.10)</a>, now horrendously out-of-date. It was written for Maverick (10.10) but should also work on Lucid (10.04).</p> <p>No knowledge of Ubuntu or Linux is assumed; the intended audience is someone who's managed to install Ubuntu and isn't too intimidated by the Terminal. <em>(Hint: You can copy and paste, but in Terminal, pasting is Ctrl + <strong>Shift</strong> +C)</em></p> <h3>Step 1: Installing Java SDK</h3> <p><em>(Thanks to <a href="http://happy-coding.com/install-sun-java6-jdk-on-ubuntu-10-04-lucid/">Daniel Bruegge</a> for the tip)</em></p> <ul> <li>Open the Terminal (Applications > Accessories > Terminal)</li> <li><strong>On Maverick:</strong> type:<br /> <pre>sudo add-apt-repository "deb <a href="http://archive.canonical.com/" title="http://archive.canonical.com/">http://archive.canonical.com/</a> maverick partner"</pre></li> <li><strong>On Lucid:</strong> type:<br /> <pre>sudo add-apt-repository "deb <a href="http://archive.canonical.com/" title="http://archive.canonical.com/">http://archive.canonical.com/</a> lucid partner"</pre></li> <li>Type:<br /> <pre>sudo apt-get update</pre><p> This will check all the software repositories for what updates are available, including java.</p> </li> <li>Type:<br /> <pre>sudo apt-get install sun-java6-jdk</pre><p> It will ask you if you want to continue; type <em>y</em> to confirm.</p> </li> <li>You'll have to agree to the TOS and license (you can use the tab key to move between the options) and then it'll install on its own.</li> </ul> <h3>Step 2: Installing Maven</h3> <ul> <li>Open Terminal, and type<br /> <pre>sudo apt-get install maven2</pre><p> This will list all the packages that need to be installed; type <em>y</em> to proceed</p> </li> </ul> <h3>Step 3: Installing Cocoon</h3> <ul> <li>Open the Terminal and type<br /> <pre>mvn archetype:generate -DarchetypeCatalog=http://cocoon.apache.org</pre></li> <li>This begins the install process. <ul> <li>For archetype, choose 2</li> <li><em>Define value for groupId:</em> - This should be a unique value. A classic value to use is, if you own the namespace myurl.com, you could type <em>com.myurl</em></li> <li><em>Define value for artifactId:</em> cocoon</li> <li><em>Define value for version: 1.0-SNAPSHOT:</em> 1.0.0</li> <li><em>Define value for package:</em> - groupID.cocoon (i.e. <em>com.myurl.cocoon</em>)</li> <li>Confirm the properties</li> </ul> </li> <li>After everything's done installing, you should see <em>[INFO] BUILD SUCCESSFUL</em></li> </ul> <p>Cocoon will install in your Home folder, in a folder named the same thing as whatever you put for your artifactID. Here, the folder is named <em>cocoon</em>.</p> <h3>Step 4: Starting Jetty</h3> <p>You need to make a configuration change in the Maven <em>settings.xml</em> to be able to run Jetty. <em>(Thanks to <a href="http://ganeshgembali.wordpress.com/2008/12/29/maven-jetty-org-apache-maven-plugins/">Ganesh Gembali</a> for the tip.)</em></p> <ul> <li>Open up Terminal and type<br /> <pre>sudo gedit /etc/maven2/settings.xml</pre></li> <li>This will pop up a text editor with <em>settings.xml</em>. Search for <em>pluginGroups</em>, and between<br /> <plugingroups> and </plugingroups>, add <pre><plugingroup>org.mortbay.jetty</plugingroup></pre></li> <li>Make sure you're in your cocoon directory in Terminal (does it say <em>~/cocoon$</em> right before the cursor?), and type<br /> <pre>mvn jetty:run</pre></li> <li>There'll be a lot more installing, but it should conclude with <em>[INFO] Started Jetty Server</em></li> <li>Open a browser and go to <a href="http://localhost:8888/cocoon" title="http://localhost:8888/cocoon">http://localhost:8888/cocoon</a> - you should see a message saying Apache Cocoon: Welcome</li> </ul> <h3>Step 5: Cocoon Add-ons</h3> <p>There are a couple add-ons for Cocoon that are essentials-- like generators for HTML. If you want to use XSLT 2.0, Saxon 9 is also critical. Possibly less important are the FOP processor (to generate PDFs from XSL-FO), Batik (for SVG) and Forms (to genrate forms). If you don't need to use XSLT 2.0, you can skip the first part of this section.</p> <ul> <li>Installing Saxon 9 <em>- a good idea</em> <ul> <li>Open your <em>cocoon</em> directory and navigate to src/main/resources/META-INF/cocoon</li> <li>Create directory <em>avalon</em></li> <li>Create the following files in Text Editor (Applications > Accessories > Text Editor), and place them in the avalon directory: <ul> <li>File named <strong>cocoon-core-xslt-saxon.xconf</strong><br /> <pre> <components> <component role="org.apache.excalibur.xml.xslt.XSLTProcessor/saxon" class="org.apache.cocoon.components.xslt.TraxProcessor"> <p><parameter name="use-store" value="true"></parameter><br /> <parameter name="transformer-factory" value="net.sf.saxon.TransformerFactoryImpl"></parameter><br /> </p></component><br /> </components><br /> </pre></li><p></p> <li>File named <strong>sitemap-transformers-saxon-transformer.xconf</strong><br /> <pre> <components xmlns:map="http://apache.org/cocoon/sitemap/1.0"> <transformers> <transformer name="xslt2" src="org.apache.cocoon.transformation.TraxTransformer"> <xslt-processor-role>saxon</xslt-processor-role> </transformer> </transformers> </components></pre></li> </ul> </li> <li>Download <a href="http://saxon.sourceforge.net/#F9.2HE">Saxon-HE 9.2 for Java</a>. By default, this will go into your Downloads folder.</li> <li>Extract the zip file; you can delete everything but <em>saxon9he.jar</em></li> <li>Open a new Terminal<br /> <pre>cd cocoon mvn install:install-file -DgroupId=net.sf.saxon -DartifactId=saxon -Dversion=9.2.1.2 -Dpackaging=jar -Dfile=../Downloads/saxon9he.jar</pre></li> <li>Go to <em>cocoon</em> and open pom.xml</li> <li>At the bottom of <dependencies>, add:<br /> <pre> <dependency> <groupid>net.sf.saxon</groupid> <artifactid>saxon</artifactid> <version>9.2.1.2</version> </dependency> </pre></dependencies></li> <li>If for some reason you only want Saxon 9 and not the ability to generate HTML, skip to the bottom of this section</li> </ul> </li> <li>Installing HTML support <ul> <li>Still in pom.xml, at the bottom of <dependencies>, add:<br /> <pre> <dependency> <groupid>org.apache.cocoon</groupid> <p><artifactid>cocoon-html-impl</artifactid><br /> <version>1.0.0</version><br /> </p></dependency></pre></dependencies></li><p></p> </ul> </li> <li>Installing FOP (for PDFs) <ul> <li>Still in pom.xml, at the bottom of <dependencies>, add:<br /> <pre> <dependency> <groupid>org.apache.cocoon</groupid> <artifactid>cocoon-fop-impl</artifactid> <version>1.0.0</version> </dependency> <p></p></pre></dependencies></li><p></p> </ul> </li> <li>Installing Batik (SVG) <ul> <li>Still in pom.xml, at the bottom of <dependencies>, add:<br /> <pre> <dependency> <groupid>org.apache.cocoon</groupid> <p><artifactid>cocoon-batik-impl</artifactid><br /> <version>1.0.0</version><br /> </p></dependency><br /> </pre></dependencies></li><p></p> </ul> </li> <li>Installing Forms <ul> <li>Still in pom.xml, at the bottom of <dependencies>, add:<br /> <pre> <dependency> <groupid>org.apache.cocoon</groupid> <artifactid>cocoon-forms-impl</artifactid> <version>1.0.0-RC1</version> </dependency> </pre></dependencies></li> </ul> </li> <li>There's <a href="http://cocoon.apache.org/2.2/blocks/1204_1_1.html">a list of all blocks</a>, and the syntax for the dependency code is in there someplace.</li> </ul> <li><strong>Once you're done adding dependencies:</strong> <ul> <li>If you have a Terminal open with <em>[INFO] Started Jetty Server</em>, close it.</li> <li>Open a new Terminal<br /> <pre>cd cocoon <p>mvn compile</p></pre></li><p></p> <li>After it's done...<br /> <pre>mvn jetty:run</pre></li> </ul> </li> <h3>Redirecting the Sitemap</h3> <p>You can add your pipelines to the <em>sitemap.xmap</em> in cocoon/src/main/resources/COB-INF, or (more conveniently) you can tell that base sitemap to look elsewhere for your files.</p> <p>I'm assuming here that you have a folder called <em>myproject</em> in your Home folder where you have all your files and your sitemap. Please change that, and your user name, accordingly.</p> <p>Included here is also the code to generate more useful error messages than a blank pages.</p> <p>In <em>sitemap.xmap</em> in cocoon/src/main/resources/COB-INF, at the bottom of the<br /> <pipelines> section, add:</pipelines></p> <pre> <pipeline> <handle-errors> <generate type="exception"></generate> <p><serialize type="xml"></serialize><br /> </p></handle-errors><br /> <match pattern="myproject/**"><br /> <mount uri-prefix="myproject/" check-reload="yes" src="/home/YOUR_USER_NAME/myproject/sitemap.xmap" reload-method="synchron"></mount><br /> </match><br /> </pipeline></pre><p>In this case, your project will be found at <a href="http://localhost:8888/cocoon/myproject/[things">http://localhost:8888/cocoon/myproject/[things</a> that match your pipelines]. But it doesn't have to match the folder name with your files. You can change the URL by chanigng <match pattern="myproject/**"> to <match pattern="whatever_you_want/**"></match></match></p><p></p> <h3>Hints and Tips</h3> <p>Every time you restart Ubuntu, you have to restart Cocoon:</p> <pre>cd cocoon mvn jetty:run</pre><p> Be sure to keep that Terminal window open while you're working with Cocoon. You can always check if Cocoon is working by going to: <a href="http://localhost:8888/cocoon" title="http://localhost:8888/cocoon">http://localhost:8888/cocoon</a>.</p> <p>This guide was prepared with help from a guide written on the GSLIS wiki by <a href="http://piez.org/wendell/">Wendell Piez</a>. If you try it and something doesn't work, please post a comment. This document is licensed <a href="http://creativecommons.org/licenses/by/3.0/us/">Creative Commons Attribution</a>.</p> A tale of two Maverick wallpapers 2010-10-09T00:00:00Z http://www.quinndombrowski.com/blog/2010/10/10/a-tale-of-two-maverick-wallpapers/ <p>After seeing a call for artwork for Ubuntu 10.10 wallpapers on <a href="http://www.omgubuntu.co.uk/">OMG! Ubuntu</a>, I submitted a handful of photos to the <a href="http://www.flickr.com/groups/ubuntu-artwork/">Ubuntu Artwork pool</a> on Flickr, just for kicks. Not long after, I discovered that <a href="http://www.omgubuntu.co.uk/2010/08/17-new-wallpapers-chosen-for-ubuntu.html">two of my photos</a>-- the feather and the happy cinnamon-- made the final 17 chosen for inclusion in the Maverick release. It's an honor, and a geeky dream come true. To celebrate the <a href="http://www.ubuntu.com/">release of Ubuntu 10.10</a>, here are the stories behind the two photos.</p> <h3>The feather</h3> <p><a href="http://www.flickr.com/photos/quinnanya/5069547268/" title="Cat toy by quinn.anya, on Flickr"><img src="http://farm5.static.flickr.com/4089/5069547268_4eb431dfa1_m.jpg" width="240" height="160" alt="Cat toy" class="alignright" /></a><a href="http://www.flickr.com/photos/quinnanya/2248948145/" title="Feather by quinn.anya, on Flickr"><img src="http://farm3.static.flickr.com/2295/2248948145_5c9f9f45e5_t.jpg" width="100" height="67" alt="Feather" class="alignleft" /></a>Described as "the less interesting picture, but better desktop wallpaper", the feather has an equally unremarkable story. I had recently acquired a Canon MP-E 65mm f/2.8 1-5x Macro lens, and had gotten into the habit of crawling around the floor, taking macro pictures of anything that looked interesting. (I even walked up to my boss and asked if I could take a macro picture of his shirt, and he kindly humored me.) One of the things I found to take a picture of was a cat toy that had feathers on it-- and out of that cat toy, the feather photo was born.</p> <h3>Happy Cinnamon</h3> <p><a href="http://www.flickr.com/photos/quinnanya/2219171291/" title="Day 25: Smile! by quinn.anya, on Flickr"><img src="http://farm3.static.flickr.com/2098/2219171291_5144348b28_t.jpg" width="100" height="67" alt="Day 25: Smile!" class="alignleft" /></a>I've posted over 50,000 photos to Flickr, so a competition for my "favorite photograph" would be a fierce one. Happy Cinnamon would undoubtedly make the top 5. It was January 25, 2008, and a cold Chicago winter. Andy and I went up to Devon Ave., home of the Patel Brothers grocery store and super-cheap spices. We had some mulled wine at ZooLights a few weeks earlier, and needed some cinnamon sticks to re-create the experience. <a href="http://www.flickr.com/photos/quinnanya/2315807546/" title="The happy cinnamon is glad you're here by quinn.anya, on Flickr"><img src="http://farm4.static.flickr.com/3085/2315807546_1994a17534_m.jpg" width="240" height="180" alt="The happy cinnamon is glad you're here" class="alignright" /></a>I took one out of the package and looked at it from one end, and was utterly delighted to see it smiling at me. That photo became my picture-of-the-day for January 25th.</p> <p>March came, and it was still cold and dreary, and I decided that my part of the office (which included the door to the entire space) needed some color... much to the chagrin of my more button-down co-workers. I put up a <a href="http://www.flickr.com/photos/quinnanya/2314999521">rainbrow made of macro photos of food</a>, and encouraged visitors to guess what each photo was while they were waiting. Happy cinnamon, the wrong hue to be included in the rainbow, got the place of honor: right opposite the door, so it could greet everyone who walked in.</p> <p><a href="http://www.flickr.com/photos/quinnanya/5067143963/" title="Where is Happy Cinnamon now? by quinn.anya, on Flickr"><img src="http://farm5.static.flickr.com/4124/5067143963_e8c37484e1_m.jpg" width="159" height="240" alt="Where is Happy Cinnamon now?" class="alignright" /></a>I eventually re-decorated, then moved offices, but I took Happy Cinnamon home. It's bounced around my apartment, but most recently it's been positioned between the kitchen and the living room. Every morning when I open the bedroom door, Happy Cinnamon is smiling at me from the other end of the hallway. Every evening when I come home from work, Happy Cinnamon is there, above the table where I pile stuff to sort out later.</p> <p>Whether or not Happy Cinnamon is the best choice for a desktop wallpaper (the point has been well-made that there's perhaps too much contrast for it to be ideal), I'm glad my serendipitous realization that cinnamon sticks smile at you is today in the hands of thousands.</p> Chrono Trigger on SNesoid: the Arris Dome password trick 2010-09-22T00:00:00Z http://www.quinndombrowski.com/blog/2010/09/23/chrono-trigger-on-snesoid-the-arris-dome-password-trick/ <p><a href="http://www.flickr.com/photos/quinnanya/5018271353/" title="Chrono Trigger and SNesoid by quinn.anya, on Flickr"><img src="http://farm5.static.flickr.com/4127/5018271353_5651a907e8_m.jpg" width="240" height="160" alt="Chrono Trigger and SNesoid" class="alignright" /></a>I was delighted to discover SNesoid for Android, which has let me relive my favorite childhood games, particularly Chrono Trigger. But in 2300 AD, after spending a half-hour chasing a rat across the screen to extract the password from it, it looked like SNesoid wasn't able to support hitting the three necessary buttons together (L + R, then A). And then <a href="http://androidforums.com/android-games/157926-snesoid-multi-touch-trouble.html">this Android Forum thread</a> caused me to look into key mapping.</p> <p>To enter the password and get on with the game:<br /> 1) Hit the <strong>menu</strong> button in SNesoid<br /> 2) Go to <strong>Input settings</strong>, then <strong>Key mappings</strong><br /> 3) Scroll down and select <strong>Button A</strong>. When it says <em>Press a hardware key...</em> press one that doesn't already cause a change of state in the app (i.e., don't choose the "home" or "menu" buttons.) I went with the <strong>volume down</strong> button.<br /> 4) Go back to the game, and stand in front of the sparkling panel where you need to enter the password<br /> 5) Keep a finger on both the <strong>L</strong> and <strong>R</strong> "keys" on the on-screen keyboard, and then hit the physical <strong>volume down</strong> button (or whatever button you chose in the key mappings interface.)</p> <p>And that's all! Go back to the key mappings interface and get rid of the key assignment for Button A, and head across the bridge discover that Lavos destroyed the world in 1999.</p> <p><em>Note: I'm running SNesoid 2.0.4 on an Unrevoked Forever Evo 4G with Froyo. Your mileage may vary.</em></p> <p><em>Additional dorky footnote: I loved Chrono Trigger so much that I <a href="http://www.flickr.com/photos/quinnanya/5018116045/">made a mask of Mune in art class</a> when I was 11, and spent hours playing the game and transcribing all the dialog in a Word file that I then used to write a novelization that inevitably focused primarily on Lucca, my very favorite character. Embarrassingly, in re-playing the game I discovered I can still quote back much of the dialog before even seeing it.</em></p> Uploading to Flickr on Ubuntu: the options aren’t amazing 2010-09-01T00:00:00Z http://www.quinndombrowski.com/blog/2010/08/31/uploading-to-flickr-on-ubuntu-the-options-arent-amazing/ <p><strong>2/24/11 UPDATE: The recent release of <a href="http://live.gnome.org/Frogr">Frogr</a> 0.4 makes this post obsolete. It's the <a href="http://www.quinndombrowski.com/blog/2011/02/24/frogr-flickr-uploader-ubuntu-ive-been-waiting">Flickr uploader for Ubuntu I've been waiting for</a>. It does everything I was looking for, and more-- I highly encourage anyone looking for a Flickr solution on Ubuntu to go download it.</strong></p> <p>In April, I switched to Ubuntu for my main (non-work) machine. One of the major hurdles in doing so was figuring out what to do about Flickr. I import, edit, and upload 200-ish photos a week, and I need a piece of software that lets me:</p> <ol> <li>Change the title</li> <li>Freely add tags</li> <li>Add a description</li> <li>Add the image to sets</li> </ol> <p>Long story short, none of the Linux-native software I was able to get working (on 64-bit Jaunty or Karmic, or 32-bit Lucid) made the cut. Fortunately, the official Windows <a href="http://www.flickr.com/tools/">Flickr Uploadr</a> (v. 3.2.1) installed flawlessly on Wine (v. 1.1.31)... but only on Jaunty and Karmic. On Lucid, it installs fine but throws an XULRunner error, "Couldn't load XPCom", that I haven't been able to get around.</p> <p>Largely because of this issue, I'm hesitant to upgrade my Karmic machine to Lucid. Solid Flickr uploading software is a must, and in Karmic, the Windows Uploadr works like a dream. On my work Mac, canceling an upload in Flickr Uploadr (intentionally, or through losing the wireless connection) not-infrequently meant losing all the work I'd done on the remaining photos, but the Windows version on Wine consistently saves data, even when you shut it down in the middle of an upload, or lose connectivity.</p> <p>If you're running Lucid, and the official Flickr Uploadr isn't an option, here's a comparison and description of the other software I tried. My recommendation on Lucid would have to be <a href="http://juploadr.org/">jUploadr</a>-- it's a bit annoying to use, it has a number of shortcomings (see below), but the features are there and it won't crash your machine.</p> <table width="100%"> <tr> <td></td> <td><strong>Titles<strong></strong></strong></td> <td><strong>Tags</strong></td> <td><strong>Description</strong></td> <td><strong>Sets</strong></td> <td><strong>Permissions<br /> </strong></td> </tr> <tr> <td><strong>F-Spot</strong></td> <td bgcolor="red">No</td> <td bgcolor="yellow">Annoyingly</td> <td bgcolor="green"><font color="white">Yes*</font></td> <td bgcolor="red">No</td> <td bgcolor="green"><font color="white">Yes</font></td> </tr> <tr> <td><strong>Shotwell</strong></td> <td bgcolor="red">No</td> <td bgcolor="green"><font color="white">Yes</font></td> <td bgcolor="red">No</td> <td bgcolor="red">No</td> <td bgcolor="green"><font color="white">Yes</font></td> </tr> <tr> <td><strong>jUploadr</strong></td> <td bgcolor="green"><font color="white">Yes</font></td> <td bgcolor="green"><font color="white">Yes</font></td> <td bgcolor="green"><font color="white">Yes</font></td> <td bgcolor="green"><font color="white">Yes</font></td> <td bgcolor="green"><font color="white">Yes</font></td> </tr> <tr> <td><strong>Postr</strong></td> <td bgcolor="yellow">Yes</td> <td bgcolor="yellow">Yes</td> <td bgcolor="yellow">Yes</td> <td bgcolor="yellow">Yes</td> <td bgcolor="yellow">Yes</td> </tr> </table> <h3>F-Spot</h3> <p>I initially used F-Spot for importing images and automatically organizing them into date-based folders, like I used to do in Bridge CS4. Annoyingly, even though Ubuntu offers to import the photos using F-Spot when you attach your card reader, it'll only do the date-based organization if you start the import from within F-Spot itself. I've switched to Shotwell (and so will Ubuntu, in 10.10) and been much happier with it.</p> <p>F-Spot really falls short on the Flickr uploading front (Photo > Export to > Flickr). A bit of Googling appears to have confirmed my suspicion that you can't rename photos in F-Spot-- not to mention giving the photos new titles specifically for the upload. The tags you assign in F-Spot carry over when you upload the image, but you have to pre-populate the F-Spot database with the tags. I've got far too many tags for that to be plausible; additionally, the tags are only saved within F-Spot, so if you switch software, you lose your tags. You can add a description for Flickr in the "Comment" field (at the bottom in the "Edit Image" view), and you can fiddle with the privacy settings, but there's no way to identify the content type or add the photo to a set.</p> <h3>Shotwell</h3> <p>As a photo organizer, Shotwell is a step up from F-Spot. Being able to assign comma-separated tags is a major improvement over pre-populating a database. Other than that, Shotwell suffers from all the same Flickr uploading shortcomings as F-Spot. No assigning titles (nor renaming the photo within Shotwell), descriptions, or sets; permissions are limited to visibility.</p> <p>The worst part is, on my netbook running Lucid (10.04), Shotwell crashes as soon as I try to upload anything.</p> <h3>jUploadr</h3> <p>Of all the Linux-friendly software I've tried, <a href="http://juploadr.org/">jUploadr</a> has one of the best sets of features. It meets all my requirements, and then some (it has a nice option for adding geo data).</p> <p>The UI, though, drives me crazy. It distorts the preview of the images. I hate having to right-click on an image to get the metadata options to show up-- and they do so in another window. And if it crashes, unlike the official Flickr Uploadr it doesn't try to save your data. Worse, if you drop a group of photos in there, it uploads them backwards-- the last one you put in is the first one that gets uploaded, which will mess up the chronology of your photostream if you don't plan ahead and carefully drop your photos in there, one-by-one, in reverse chronological order. No sorting options or re-arranging available. It also doesn't seem to always respect the metadata (available with some cameras) that indicates whether your photo was taken in portrait or landscape mode, so it won't show the photos rotated in the preview. If you try to fix them yourself with the jUploadr rotate button, the upload will get screwed up as Flickr rotates them one more time. So just tilt your head while you're adding tags.</p> <h3>Postr (Flickr Uploader), 0.12.3-1ubuntu2/0.12.4-2</h3> <p><a href="http://projects.gnome.org/postr/">Postr</a>, the GNOME Flickr uploadr, might just be the perfect solution... if I could get it to work. The integration with the GNOME desktop is convenient, it meets all my criteria, but on my laptop running Karmic (9.10), shortly after I add an image and before I can do anything with it, I get flooded with "User timeout caused connection failure" messages that at times completely freeze up my whole system. It looks like it's not the most common problem (Bugzilla <a href="https://bugzilla.gnome.org/show_bug.cgi?id=549963">still lists it as unconfirmed</a>), so perhaps others will have better luck.</p> <p>I managed to get it to work, briefly, on Lucid. One beautiful afternoon I was able to upload 11 photos. The experience could've been better-- when you're doing a multi-photo batch, it does tell you what photo it's on, but not when you're uploading a single photo there's no way to tell if it's frozen or actually uploading.</p> <p>Unfortunately, the next time I tried to use Postr, I was flooded with error messages-- different ones, about not being able to contact the host (no other programs were having connectivity issues), another message about a timeout. Often the error boxes would pop up without any text in them. More than once, it completely locked up my system and I had to do a hard reboot. Uninstalling, reinstalling, re-authenticating, nothing helped.</p> From rooted Evo 4G to Unrevoked Forever + Froyo 2010-08-16T00:00:00Z http://www.quinndombrowski.com/blog/2010/08/16/from-rooted-evo-4g-to-unrevoked-forever-froyo/ <p>Thanks to a clever Sprint employee who secretly stockpiled the coveted phone for new customers, I've had an Evo 4G since the day after it was released. Despite foolishly accepting the first OTA upgrade, I was still able to use the original <a href="http://www.unrevoked.com/">Unrevoked</a> to gain enough root access to get <a href="http://code.google.com/p/android-wifi-tether/">android-wifi-tether</a> working (thanks to this <a href="http://forum.xda-developers.com/showthread.php?t=698137">XDA thread</a>), which has been fantastic while traveling.</p> <p><a href="http://farm5.static.flickr.com/4143/4900122470_ce3aa10cbc.jpg" rel="lightbox" title="Evo bootloader"><img src="http://farm5.static.flickr.com/4143/4900122470_ce3aa10cbc_m.jpg" class="alignright" /></a>It's been over two months, and the release of Froyo and <a href="http://www.unrevoked.com/forever">Unrevoked Forever</a> motivated me to do some upgrading. The following is the step-by-step tutorial I wish I'd had going into the process. The assumption is that you've rooted, but not using Unrevoked3. The entire walkthrough is written with the goal of being as simple as possible for users who are new to doing their own updates, flashing new images, or even using Ubuntu.</p> <h3>Unrevoked3 on Ubuntu (9.10)</h3> <p>Installing Unrevoked3 on the Mac is easy-- you download an installer package, drag it to <em>Applications</em> and run it. If you're on Windows, I'd recommend using <a href="http://forum.xda-developers.com/showthread.php?t=741824">Ubuntu LiveCD</a> with instructions by shad0wf0x. Since I run Ubuntu (Karmic/9.10, but should work equally well for Lynx/10.04), here are some instructions:</p> <ul> <li>Download <a href="http://unrevoked.com/recovery/">Unrevoked 3</a></li> <li><a href="http://farm5.static.flickr.com/4122/4900184618_e9d120ce0e.jpg" rel="lightbox" title="Launching Unrevoked3 in Ubuntu"><img src="http://farm5.static.flickr.com/4122/4900184618_e9d120ce0e_m.jpg" class="alignright" /></a>Unzip <em>reflash.tar.gz</em> (you can double-click on it to open File Roller, and hit the extract button); the result is an executable called <em>reflash</em>. Let's assume you extracted it in your Downloads folder. Now, run it as root by opening Terminal (Applications > Accessories > Terminal) and typing in <code>sudo Downloads/reflash</code>. It'll ask you for your password, and then it'll launch Unrevoked3.</li> <li>The UI that comes up has the Unrevoked logo and the message "Waiting for device. Plug phone in now and enable USB debugging. You may require Linux root access."</li> <li>Enable USB debugging on your Evo by going to <em>Settings > Applications > Development > USB debugging</em> and plug in your phone.</li> <li>From there Unrevoked3 just runs-- it reboots a couple times, and drops you off in ClockworkMod recovery (a dark-colored screen with greenish text.) Select "reboot system now" by pressing the power button, and your system will restart.</li> </ul> <h3>Radio baseband and Wimax updates</h3> <p>When I compared my radio baseband version to those <a href="http://unrevoked.com/rootwiki/doku.php/public/forever#supported_devices">supported for Unrevoked Forever</a>, I was dismayed to discover that mine wasn't listed. Time for a radio update, and a Wimax update for good measure. Conveniently, after I installed these two updates I no longer had to remove the battery before I could turn my Evo on after turning it off-- an annoying quirk that'd plagued me since I got the phone.</p> <p>How can you tell what baseband version you're running? You could restart your phone while holding the "volume down" button like the Unrevoked folks suggest, but it's easier to look in the Evo UI: <em>Settings > About phone > Software information > Baseband version</em>.</p> <ul> <li>Go to <a href="http://forum.xda-developers.com/showthread.php?t=743352">this XDA thread</a> and download <em>Radio update: 2.15.00.07.28</em> and <em>Wimax Update 26023</em> from the first post. These are two zip files, <em>Radio-2.15.00.07.28.zip</em> and <em>Wimax26023.zip</em>. Save them to the root of your SD card.</li> <li><a href="http://farm5.static.flickr.com/4079/4899532791_b61b883e53.jpg" rel="lightbox" title="Evo bootloader, after using Unrevoked Forever-- note S-OFF at the top"><img src="http://farm5.static.flickr.com/4079/4899532791_b61b883e53_m.jpg" class="alignright" /></a>Turn off your phone, and turn it back on while holding the volume-down button. This will take you to the bootloader, a white screen with some Androids on skateboards at the bottom.</li> <li>The instructions say you can use the volume keys to navigate between options; on my Evo, it wouldn't let me do this for a few seconds, then it'd run HBOOT (a bunch of green text saying it's looking for various things and not finding them), and when HBOOT couldn't find anything <em>then</em> it would let me navigate to the other options.</li> <li><a href="http://farm5.static.flickr.com/4080/4899540611_d630b5c7cb.jpg" rel="lightbox" title="ClockworkMod Recovery"><img src="http://farm5.static.flickr.com/4080/4899540611_d630b5c7cb_m.jpg" class="alignright" /></a>Choose <em>Recovery</em>, and press the power button. This will launch ClockworkMod Recovery (the same dark screen with green text as before.)</li> <li>Select <em>install zip from sdcard</em>, then <em>choose zip from sdcard</em>. Scroll down until you see either of the update zip files you've just added to your SD card. (Depending on how many files and folders you have on the root of your SD card, this may take a while.)</li> <li><a href="http://farm5.static.flickr.com/4096/4899542487_b14b0d18f2.jpg" rel="lightbox" title="You can't install it accidentally"><img src="http://farm5.static.flickr.com/4096/4899542487_b14b0d18f2_m.jpg" class="alignright" /></a>Select the update zip file, scroll through all the "no"'s and select "yes". The update will run.</li> <li>Be sure to reboot after <strong>each</strong> update-- select <em>+++++Go Back+++++</em>, then <em>reboot system now</em></li> <li>Repeat this same process with the other update zip file.</li> <li>To double-check if the update went through, check on your radio baseband version again, like before.</li> </ul> <h3>Unrevoked Forever and custom splash screen</h3> <p>One of my irrational fears is that one morning, as the alarm is going off on my Evo, I'll fumble and accidentally hit the button accepting an unrootable OTA update. With <a href="http://unrevoked.com/rootwiki/doku.php/public/forever">Unrevoked Forever</a>, you can still flash a custom recovery image if that happens, so I went to install it. <em>(Update: it also lets you install <a href="http://lifehacker.com/5612338/adfree-blocks-ads-on-your-rooted-android-phone">AdFree</a>, which you can't do with a normal Unrevoked root.)</em> <strong>This step isn't necessary if you just want a rooted Froyo</strong>.</p> <ul> <li>Download the <a href="http://unrevoked.com/rootwiki/doku.php/public/forever#installation_instructions">latest version</a> -- it's a zip file, just like the radio and Wimax updates-- and put it on the root of your SD card.</li> <li>Follow the same process as before, using ClockworkMod Recovery to <em>install zip from sdcard</em>.</li> <li><a href="http://farm5.static.flickr.com/4080/4900130200_9458804877.jpg" rel="lightbox" title="Custom splash screen, courtesy of Unrevoked Forever"><img src="http://farm5.static.flickr.com/4080/4900130200_9458804877_m.jpg" class="alignright" /></a>When you reboot, if you hold down the volume-down button and go into the bootloader, you'll see <em>SUPERSONIC EVT2-2 SHIP <strong>S-OFF</strong></em> at the top if it's been successful.</li> <li>If you want a custom Unrevoked splash screen (their Unrevoked Forever logo in black, very tasteful, which will replace the HTC Evo 4G logo on startup), download PC36IMG.ZIP from their website. Put that exact file, same filename and all, in the root of your SD card.</li> <li>Reboot into the bootloader (holding down the volume-down key); this time, HBOOT will find what it's looking for when it runs, and it will ask if you want to start the update. Choose 'yes', and then say yes to rebooting the device.</li> </ul> <h3>Installing rooted Froyo</h3> <p>I didn't want to re-install all my apps and reconfigure my phone from scratch, so I first went in search of a backup option.</p> <ul> <li><strong>Backing up your data:</strong> download and install <a href="http://www.androidzoom.com/android_applications/tools/mybackup_dao.html">MyBackup</a> from the Marketplace. (The free version should be fine, so long as you're not planning on taking more than 30 days to finish this tutorial.)</li> <li>Choose <em>Backup</em>, then <em>Applications</em> (or <em>Data</em>-- you'll probably want to do them both), then <em>Local (SD Card)</em>. Select the apps you want to backup, give your backup a name and choose <em>APKs + DATA</em>. The process is essentially the same for backing up data.</li> <li><strong>Acquiring the ROM:</strong> Download <em>HTC OTA Froyo 2.2, *FINAL*, build 3.36.651.6 (Rooted) Odexed</em> from <a href="http://forum.xda-developers.com/showthread.php?t=743352">the first post</a> on XDA. It's about 167 MB. Move it to the root of your SD card.</li> <li><strong>Flashing the ROM:</strong> download and install <a href="http://www.androidzoom.com/android_applications/tools/rom-manager_fjxs.html">ROM Manager</a> from the Marketplace.</li> <li>Select <em>Flash ClockworkMod recovery</em>-- it's counterintuitive, if you've already run Unrevoked3, but necessary. Confirm your phone model, confirm the Superuser Request, and the app will do the rest of the work.</li> <li>Choose <em>Install ROM from SD card</em> and select the Froyo ROM you previously downloaded. It'll give you check-box options for backing up your existing ROM and wiping the phone; certainly agree to wipe it, and you might want to back up your current ROM just to be safe.</li> <li>This will reboot your phone into ClockworkMod Recovery, where the backup, phone wiping, and Froyo installation will happen</li> <li>When the Froyo installation is done, your phone will go black, and you'll see the HTC logo in Android green. My screen flickered to the horrible rainbow-colored default home screen for a moment, before going back to the HTC logo, when it kicked me into the setup screens for Froyo (using the onscreen keyboard, whether or not to allow Google location services, configuring e-mail clients, etc.)</li> <li><strong>Getting your stuff back</strong>: download and install MyBackup again, and this time choose <em>Restore</em>. You can choose between <em>Applications</em> and <em>Data</em>, and then select the backup you made before.</li> <li>Restoring from MyBackup will return all of your apps and data, including your home screen layout and saved logins for your apps. I still had to re-configure the home screen for my browser, allowing the installation of non-Marketplace apps, etc., but it still saved me a lot of time.</li> <li><strong>Wifi tethering</strong>: Froyo's native wifi tethering is still under Sprint's thumb, but <a href="http://code.google.com/p/android-wifi-tether/">android-wifi-tether</a> didn't let me down-- I installed <em>wireless_tether_2_0_5-pre8.apk</em>, and it works great.</li> </ul> <p><strong>Addendum</strong>: I initially had problems connecting to 4G after doing all this, and it seems I wasn't alone. The fix, helpfully suggested by cyberenz on the XDA forum, is to re-flash the Wimax update.</p> <p><em>Many, many thanks to the <a href="http://www.unrevoked.com/">Unrevoked</a> team: Matt Mastracci, Eric Smaxwill, Matthew Fogle, Joshua Wise, Ryan Pearl, and Koush Dutta. Not only do they do incredibly awesome work, they also direct all donations to the <a href="http://action.eff.org/goto/unrevoked">Electronic Frontier Foundation</a>. You guys are my heroes.</em></p> State of the projects (early July 2010) 2010-07-10T00:00:00Z http://www.quinndombrowski.com/blog/2010/07/10/state-of-the-projects-early-july-2010/ <h3>Birchbark letter XML</h3> <p>I have at least a first pass at the names-in-context data for documents 1-23, to supplement the proof-of-concept data I put together previously.</p> <h3>Medieval Slavic wiki</h3> <p>I've put together a <a href="http://www.medievalslavic.org/Medieval_Slavic:Current_events">work plan</a> (subject to change) with the articles I'd like to try to incorporate into the wiki by October. After starting to go through the articles, it seemed reasonable to first work through the first chapters of Zaliznjak's 2004 <em>Древненовгородский диалект</em> to have a framework with some general overview content that I can then flesh out with details, arguments, points and counter-points from the articles. To this end, I've added pages on the <a href="http://www.medievalslavic.org/Old_Novgorod_dialect">Old Novgorod</a> and <a href="http://www.medievalslavic.org/Old_Pskov_dialect">Old Pskov</a> dialects, along with related pages as necessary.</p> Why I've walked away from Apple 2010-07-01T00:00:00Z http://www.quinndombrowski.com/blog/2010/07/01/why-ive-walked-away-from-apple/ <p>Yesterday, a friend made the mistake of asking me why I switched from iPhone to Android, on an afternoon when I had some time to kill at the airport. His response to my long e-mail was that I should publish it on a blog somewhere. I've polished it up somewhat and added a few things, and the following is where I stand on the topic of device/OS choice. </p> <h4>Why Android?</h4> <p><a href="http://www.flickr.com/photos/quinnanya/4754719107" src="http://farm5.static.flickr.com/4093/4754719107_0491ddb798_m.jpg" alt="Android and iPhone" class="alignright"></a>For me, Android was an easy choice, simply on the merits of the device. It's just-- I think fairly objectively-- better. I wrote and e-mailed this on my laptop, while wirelessly tethered to my Evo 4G-- using a <a href="http://code.google.com/p/android-wifi-tether/">free app</a>, rather than the extra-charge Sprint plan. On the bus, I was playing one of my favorite childhood video game, using a <a href="http://phandroid.com/2009/06/12/snesoid-%E2%80%93-emulating-snes/">SNES emulator</a> that would never make it into the iTunes store.</p> <p>I have full <a href="http://www.unrevoked.com/">root access</a>. I can <a href="http://www.androlib.com/android.application.org-freecoder-widgets-overclock-zww.aspx">change the frequency</a> of the processor to save battery life. I can <a href="http://www.simplemobilereview.com/a-new-way-to-manage-rooted-android-%E2%80%93-rom-manager/">flash new ROMs</a> if I want; I'll likely be installing Froyo, the new OS, well sooner than the phone manufacturer will make it available. I'm particularly looking forward to streaming music from my home machine without having it directly on the device, and Flash 10.1 support-- two new Froyo features. Speaking of Flash, I enjoy being able to look at restaurant websites, a great many of which are Flash-based.</p> <p>My Android happily <a href="http://www.xperiax10.net/2010/06/22/rockplayer-divx-app-for-android-enters-public-beta/">ingests and displays video formats</a> that would cause the iPhone to choke. I can transfer those videos, and any other media, to and from the device like a normal hard drive. It comes with free, built-in turn-by-turn navigation. I can fully customize the UI-- themes, widgets, skins, multi-screen wallpapers. My Evo 4G has an 8 megapixel camera, and a 4.3" display.</p> <p>I personally think the hardware is better-designed, too: I picked up my old iPhone for the first time in a month today, and tried to figure out how the hell to do anything without the built-in "back" and "menu" buttons. No wonder Apple has such rigid design specifications in terms of how menus can be laid out and such: they've got to make up for their hardware sho‌rtcomings.</p> <p>I can now get calls in my apartment-- and pretty much anywhere else I've been in the last month-- through Sprint. And their 4G in much of Chicago is better than my home DSL.</p> <p>The iPhone 4? None of the above. I think the case for Android is an open-and-shut one.</p> <h4>Walking away from Apple</h4> <p>Less obvious, and less clear-cut, is my decision to eschew Apple in my personal life. It's an unusual position to take, given the role that Apple plays in my work life. Everyone with a laptop in my group has a Mac. The computers in our mini "lab" for faculty are Macs. One of my people has been developing software for the Mac (and, more recently, iOS) since before I was born. I'll be managing an adoption project for <a href="http://www.projectbamboo.org/">Project Bamboo</a> that involves using scholarly servies via an iPad app, and one of our ongoing projects is investigating interesting scholarly applications for the iPad. I recently had lunch with the university's Apple reps to talk about their role on campus, and what they can do to whip up some excitement about developing for the iOS platform.</p> <p>The easiest and most natural thing would be to let Apple permeate my personal technological life as well. I already have access to some of their best, most "magical" products as part of my work. And I used them for quite some time, since I started my job, three years ago yesterday.</p> <p>I haven't thrown out the cobbled-together old PowerPC Franken-towers I inherited over the years (that would just be stupid-- we use them as a TV replacement), but my husband and I are pretty committed to never purchasing another device from Apple. (As it happens, the only ones I've ever purchased myself have been two iPods and the iPhone in 2008.)</p> <p><a href="http://www.flickr.com/photos/quinnanya/4752354561"><img src="http://farm5.static.flickr.com/4076/4752354561_e393a82a4c_m.jpg" class="alignright" /></a>Other than when I end my day far away from my office, I leave my Macbook Pro at work. I have a laptop running <a href="http://www.ubuntu.com/">Ubuntu</a>, with a big <a href="http://shop.canonical.com/product_info.php?products_id=125">Ubuntu sticker</a> (and a smaller <a href="http://www.thinkgeek.com/homeoffice/stickers/5b43/">Tux sticker</a>) on the lid-- that's my primary machine outside of work. I find it a little distasteful going out in public with my work Macbook; I do <strong>not</strong> want to be part of the walking ad campaign for Apple. A remark <a href="http://twitter.com/jdrouin/status/16407291760">made at the most recent Bamboo workshop</a>, about almost all the laptops in the room being silver Macs, made me wince.</p> <p>Why, you may ask?</p> <p>I've never been thrilled with Apple's tight-- and at times, seemingly arbitrary-- grip over the iTunes store. I'm not a fan of their continued use of DRM on videos that people purchase. Or their inclination to restrict what people do with their hardware, like their efforts to brick jailbroken iPhones, or claim that jailbreaking a device <a href="http://www.cultofmac.com/apple-calls-jailbreaking-iphones-a-crime/8330">is illegal</a>. I was even less thrilled with their abuse of the patent system (yeah, I know everyone does it), applying for unreasonably broad patents and <a href="http://www.engadget.com/2010/03/02/apple-vs-htc-a-patent-breakdown/">filing suit against HTC</a>.</p> <p>But frankly, the final straw for me was their change in developer policy for iPhone apps. To a certain extent, if you buy into the Apple world, that comes with restrictions. It's a decision, it has consequences for the buyer, fine. But banning cross-compilers has an effect on the entire mobile ecosystem. Telling developers they have to choose-- iPhone, the biggest platform, or other devices-- will probably have a chilling effect on what's available on <em>all</em> platforms. It penalizes people who haven't made the choice to opt into the Apple world. A couple days after I heard about that announcement, when I'd had a chance to give it some serious thought, I sat down and bought a reasonably priced laptop that I could install Ubuntu on. And I've had no regrets.</p> <p>This, though, I will say: Apple strikes me as a legitimate option. Ubuntu is getting much, much better than even a year ago, in terms of ease of use, working out-of-the-box, and not making people go to the "scary" command line to fix things. But when things don't work, there's still the need to do some troubleshooting in ways that most people aren't used to, and I can understand why people who want nothing to do with tweaking any settings, who want something that other people will know and recognize and can help with, who aren't "computer people" or willing to stick a toe into that world-- I can see why they might want to go the Mac route. Windows, I don't understand, other than as a side option for people who have to use Windows-only applications that can't run on <a href="http://www.winehq.org/">Wine</a>. Why on earth would you choose both "proprietary" and "sucks"? The relative cost compared to a Mac is the only factor I can think of, though when my husband found himself in that situation a little over a year ago-- needed a new laptop, couldn't stomach Windows, couldn't afford a Mac-- it compelled him to try Ubuntu. He's not the biggest techie by nature, but it only took him a week or two to become a huge fan of Ubuntu.</p> <p>I'm not in that position, though. I'm a-okay with fiddling with things-- hell, I even enjoy it sometimes! Freedom (as in speech) and openness are very important to me; I can't really write code, but I license everything I do using Creative Commons. I'm not a fanatic-- when there are applications I really need where the open source equivalents are simply not up to par, and if I have to choose between not getting the results I want and using proprietary software, I'll go with the proprietary software. (I'm sorry, <a href="http://www.picsaypro.com/">PicSay Pro</a> on my Android has better brightness and contrast than GIMP. The ability to run Photoshop on Wine was non-negotiable for me when setting up my Ubuntu system.)</p> <h4>Why I support open source: an anecdote</h4> <p>Every now and again, something happens to remind me of the value of the open source community, rather than a tight-lipped corporation calling all the shots. I think it's fair to say that the Mac developer in my group is one of the world's <a href="http://en.wikipedia.org/wiki/Xcode">Xcode</a> experts. He's even written <a href="http://www.amazon.com/Fritz-Anderson/e/B001ILOBQO/">two books</a> on the topic.</p> <p>But right after his last book went to press-- when it was too late to make revisions-- Apple announced development for the iPhone. Since his book didn't cover iPhone development, this sudden and badly-timed news from Apple cut the book off from a large potential audience. And just a few weeks ago, as he was finishing up a new edition-- 350 pages, ready to go-- Apple announced Xcode 4 at WWDC. He has to start over.</p> <p>Banning cross-compiling for iOS applications, keeping major changes under wraps and springing them on developers without giving them a heads-up that would allow them to make more informed choices, an iron fist of control over the only legit channel for obtaining applications, and an inclination to change the TOS for that channel to suit their own purposes-- leaving people <a href="http://www.theregister.co.uk/2010/06/25/apple_location_terms_and_conditions/">no real recourse</a> if they don't like those changes. Given all this, I cannot support Apple.</p> <p><a href="http://www.flickr.com/photos/quinnanya/4755389800/"><img src="http://farm5.static.flickr.com/4096/4755389800_3480c33463.jpg" /></a></p> <p><em>Thanks to <a href="http://stevemasover.blogspot.com/">Steve</a> for prodding me to publish this, <a href="http://www.android.com/branding.html">Google</a> for releasing their Android logo under a <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution license</a>, <a href="http://www.openclipart.org/detail/29379">Ben Bois</a> for submitting an iPhone to <a href="http://openclipart.org/">OpenClipArt</a>, and <a href="http://www.xkcd.org/about/">Randall Munroe</a> for licensing <a href="http://www.xkcd.org/743/">xkcd</a> under a <a href="http://creativecommons.org/licenses/by-nc/2.5/">Creative Commons Attribution-NonCommercial license</a>.</em></p> New birchbark XML: names in context (NIC) 2010-06-27T00:00:00Z http://www.quinndombrowski.com/blog/2010/06/27/new-birchbark-xml-names-in-context-nic/ <p>To enable a more interesting proof-of-concept for the birchbark letter XML project, I've spent the last week making a new, limited data set (all documents from 1100-1120, plus some documents with the same names from the 12th century, and all the documents that include the name Boris) that lists all the names that occur in a given document and characterizes their role in the document. For the time being, I'm calling it "names in context" (NIC).</p> <p>I've been adapting the schema every time I come across some new aspect that seems significant. Each document contains one or more</p> <person> elements, which include:</person> <ul> <li>A name</li> <li>Optionally, a "second name"-- sometimes a patronymic or city of residence used to specify <em>which</em> Ivan is being referred to</li> <li>A role ("to", "from", or "3p" for 3rd party), and more optional details: <ul> <li><em>financial</em> <ul> <li>gen - general, mostly for lists of names and amounts without any context</li> <li>owes</li> <li>owed</li> </ul> </li> <li><em>orders</em> <ul> <li>giving</li> <li>receiving</li> <li>report</li> <li>an optional "polite" attribute to indicate particularly deferential language</li> </ul> </li> <li><em>personal</em> -- might get renamed to <em>other</em> if the "scope creep" continues like this <ul> <li>advice</li> <li>complaint</li> <li>news</li> <li>death</li> <li>religious-- for when the names refer to saints</li> <li>gen</li> <li>optional "polite" attribute here, too</li> </ul> </li> </ul> </li> <li>A section for relatives of the person: <ul> <li>Their relation (mother, father, brother, etc.)</li> <li>All options for the relative's role, as listed above</li> </ul> </li> </ul> <p>To illustrate, here's a few sample entries:</p> <h5><a href="http://gramoty.ru/index.php?no=49&act=full&key=bb">BBL 49</a>: from Nast'ja to her brother</h5> <p>Conveying the news of her husband's death</p> <p><code> <bbl_names><br /> <id>49</id></bbl_names></code></p> <person> <name>Настасья</name><br /> <role pos="to"> <personal>news</personal> </role><br /> <fam><br /> <relative><br /> <relationship>brother</relationship><br /> <role pos="to"> <personal tone="polite">news</personal> </role><br /> </relative><br /> </fam><br /> </person> <person> <name>Борисъ</name><br /> <role pos="3p"> <personal>death</personal> </role><br /> </person> <h5>BBL 736а: Ivan and Dristliv</h5> <p>Ivan tells Dristliv to collect money from Pavel and Prokopii.</p> <p><code> <bbl_names><br /> <id>736а</id></bbl_names></code></p> <person> <name>Иванъ</name><br /> <role pos="from"><br /> <orders>giving</orders><br /> </role><br /> </person> <person> <name>Дристливъ</name><br /> <role pos="to"><br /> <orders>receiving</orders><br /> <financial>owed</financial><br /> </role><br /> </person> <person> <name type="adj">Павелъ</name><br /> <role pos="3p"><br /> <financial>owes</financial><br /> </role><br /> </person> <person> <name>Прокопии</name><br /> <role pos="3p"><br /> <financial>owes</financial><br /> </role><br /> </person> Early results from a birchbark letter proof-of-concept 2010-06-27T00:00:00Z http://www.quinndombrowski.com/blog/2010/06/27/early-results-from-a-birchbark-letter-proof-of-concept/ <p>The frustrating thing about attempting a proof-of-concept for the birchbark letters is that many of the calculations I find most interesting need to be run over the entire corpus-- which means a lot more data preparation than I currently have finished. The sample "names in context" (NIC) XML only has entries for 42 documents, so there's a lot of work yet to be done.</p> <h5>Characterizing the context for different kinds of names</h5> <p>I've written the XSLT to do a number of calculations-- how often are women mentioned in the context of some kind of financial transaction? When women are mentioned in a financial context, are they more likely to be referred to by a derivative of their husband's name than when they are mentioned in other contexts? Are there contexts where certain kinds of names-- "church" names, non-Slavic names, female names-- appear with particular frequency, or not at all? Unfortunately, the output is meaningless until the full NIC XML is ready.</p> <h5>Building charts and graphs</h5> <p>I can see writing code to enable the user to generate-- and, more importantly, compare-- charts and graphs like those found on p. 26-33 of Zaliznjak 2004, but with greater detail. Within a given date range, is there a statistically significant difference between how frequently the jer merger, or cokan'e, occurs when the writer has a non-Slavic name, vs. writers with Slavic names? It didn't seem worth doing for this particular proof-of-concept, though; the only data set I could draw on for this would be the index of all the documents and their dates, and a chart showing how many documents were found in each 50-year time span or what-have-you doesn't seem worth the effort.</p> <h5>Actual results: names and genders</h5> <p>For some usable-- if not the most exciting-- results, I've turned to the fully-prepared index of names, which does allow for certain kinds of calculations. Keep in mind, all of these below refer to <em>unique names</em>, not instances of use ("Khrestina" appears 5 times, but is counted once for these calculations; I don't have the NIC data ready yet to account for multiple instances.)</p> <ul> <li>10.7% of the names with an identified gender are female (87 names).</li> <li>35.6% of the women's names that are used are derived from a male name, presumably their husband (31 names). There's an opportunity here to go fishing for the equivalent male names from the same time period and location, but my initial guess at reconstructing the male names suggests that there's no attestation-- contemporary with the woman's name or not-- of the male name in about 25% of the cases.</li> <li>12% of all names have no identified gender (110 names). One of my goals is to assign probable genders to as many of these as possible, after establishing the contexts where men and women are more likely to appear.</li> </ul> <h5>Actual results: Boris</h5> <p>When deciding how to build the sample NIC data set, I chose to include all documents that reference the name Boris. I wanted to see how I could organize the available data to facilitate the task of determining how many Borises are represented in the birchbark letter corpus, and my initial pass at 12th century documents surfaced 5 documents mentioning "Boris".</p> <p>What information is useful to help differentiate one Boris from another? I've listed each document where the name occurs, and sorted them using the earliest conditional date proposed. I've included the location where the document was found, but to put that information into the right context, it's important to know Boris's role in the document. Particularly where he's a sender or 3rd party, documents referring to the same Boris could easily be found in different locations. The value of the additional information concerning Boris's role varies; one could argue that whether he owes money or not is fairly inconsequential, but information indicating that the reference is to Saint Boris, or that the Boris in question has recently died are crucial the task at hand.</p> <div id="compact"> <ul> <li>Борисъ (m) <ul> <li>906 <ul> <li>1075 - 1100</li> <li><strong>3p: </strong>Троицк, Е </li> <li><strong>personal: </strong>religious </li> </ul> </li> <li>742 <ul> <li>1100 - 1120</li> <li><strong>to: </strong>Троицк, К </li> <li><strong>financial: </strong>owes </li> <li><strong>orders: </strong>receiving </li> </ul> </li> <li>237 <ul> <li>1160 - 1180</li> <li><strong>from: </strong>Нерев, И </li> <li><strong>personal: </strong>complaint </li> </ul> </li> <li>806 <ul> <li>1160 - 1180</li> <li><strong>3p: </strong>Троицк, Е </li> </ul> </li> <li>581 <ul> <li>1180 - 1200</li> <li><strong>to: </strong>Троцк, Е </li> <li><strong>financial: </strong>gen </li> </ul> </li> <li>671 <ul> <li>1180 - 1200</li> <li><strong>3p: </strong>Троцк, Г </li> <li><strong>financial: </strong>gen </li> </ul> </li> <li>819 <ul> <li>1180 - 1200</li> <li><strong>to: </strong>Троцк, Е </li> <li><strong>financial: </strong>owed </li> <li><strong>orders: </strong>receiving </li> </ul> </li> <li>935 <ul> <li>1180 - 1200</li> <li><strong>3p: </strong>Троицк, Е </li> <li><strong>financial: </strong>gen </li> </ul> </li> <li>714 <ul> <li>1200 - 1220</li> <li><strong>from: </strong>Троицк, К </li> <li><strong>personal: </strong>gen </li> </ul> </li> <li>343 <ul> <li>Борисъ Милославовъ</li> <li>1280 - 1300</li> <li><strong>3p: </strong>Нерев, Д </li> </ul> </li> <li>263 <ul> <li>Борисъ Пѧнтелѣѥвъ</li> <li>1360 - 1380</li> <li><strong>3p: </strong>Нерев, Е </li> <li><strong>financial: </strong>owes </li> </ul> </li> <li>579 <ul> <li>1360 - 1380</li> <li><strong>from: </strong>Нутн </li> <li><strong>orders: </strong>giving </li> </ul> </li> <li>701 <ul> <li>Борисъ Петаревъ</li> <li>1360 - 1380</li> <li><strong>from: </strong>Троицк, П </li> <li><strong>orders: </strong>giving </li> </ul> </li> <li>744 <ul> <li>1360 - 1380</li> <li><strong>3p: </strong>Федоровск </li> </ul> </li> <li>43 <ul> <li>1380 - 1400</li> <li><strong>from: </strong>Нерев, А </li> <li><strong>orders: </strong>giving </li> </ul> </li> <li>49 <ul> <li>1410 - 1420</li> <li><strong>3p: </strong>Нерев, Г </li> <li><strong>personal: </strong>death </li> </ul> </li> </ul> </li> </ul> </div> <p>So how many Borises are there? Probably somewhere between 10 and 12.</p> <ul> <li>Saint Boris - BBL 906</li> <li>Boris of the early 12th century - BBL 742; 40-60 years between this Boris reference and the next one make it unlikely that it's the same Boris</li> <li>Boris(es) of the late 12th century - BBL 237, 806, 581, 671, 819, 935 all range from 1160-1200. Two letters to a Boris (581, 819) and two where Boris was a third party (806, 935) were found in Troick. E, which may be a reason to connect those with a single individual. Other than BBL 237, from Nerev., all the other documents from this time period are from Troick.</li> <li>Boris of the turn of the 13th century - BBL 935 could plausibly be grouped in with the above if positioned on the earlier side of its 1200-1220 date range.</li> <li>Boris Miloslavov - BBL 343, 1280-1300</li> <li>Boris Pjantelejev - BBL 263, 1360-1380</li> <li>Boris Petarev - BBL 701, 1360-1380</li> <li>Boris(es) of the late 14th century - BBL 579 (Nutn., from), 744 (Feodorovsk., 3rd person); could be any of the two Borises above, the one below, or someone else.</li> <li>Boris and Nastas'ja - BBL 43 (1380-1400) and BBL 49 (1410-1420); BBL 43 features him giving orders to his wife, and BBL 49 is his wife complaining about his death.</li> </ul> <p>The next step-- assuming we had a full data set-- would be to look at the names that co-occur in documents, to try to build up a "social network". (The results may also help fine-tune our identification of individual Borises.) Some kind of "point system" would likely be involved to weight the connections between people, say, 5 points between a writer and an addressee, 3 points between the writer/addressee and each of the third parties in a document, and 1 point between each of the 3rd parties. I haven't by any means worked out the details, and am enthusiastically open to ideas and suggestions for how to handle that part, but there's a lot of data left to be entered before the project reaches that point.</p> The state of the birchbark letters XML project 2010-06-19T00:00:00Z http://www.quinndombrowski.com/blog/2010/06/19/the-state-of-the-birchbark-letters-xml-project/ <p>I was hoping to delay this until I had the Subversion repository ready to distribute the first versions of the XML, but setting it up is taking a bit longer than I anticipated. I'm working on a proof-of-concept for the kinds of analysis that can be done using the name and date indices together; I'm hoping to finish it in about a week or so. Here's the current status of the deliverables as of 20 June 2010:</p> <h4>Date index</h4> <p>A preliminary version is done and ready for release. It contains all the documents and all the different proposed date ranges found in Zaliznjak 2004 and gramoty.ru. A sample entry:</p> <p><code><br /> <bbl_date><br /> <id>380</id><br /> <year_ne m="услов">1140</year_ne><br /> <year_ne m="страт">1135</year_ne><br /> <year_ne m="внестрат">1100</year_ne><br /> <year_nl m="услов">1160</year_nl><br /> <year_nl m="страт">1170</year_nl><br /> <year_nl m="внестрат">1190</year_nl><br /> <year_pref_ne m="внестрат">1100</year_pref_ne><br /> <year_pref_nl m="внестрат">1140</year_pref_nl><br /> <loc>Нерев</loc><br /> <loc_id>И-1</loc_id><br /> </bbl_date><br /> </code></p> <h4>Name index</h4> <p>Finished, other than the metadata about whether a name is attested elsewhere, compositional, or none of the above. A sample entry:</p> <p><code><name gen="m"></name></code></p> <form>Матфѣи</form> <p> <adj>Матфѣѥвъ</adj></p> <patronym>Матфѣѥвичь</patronym> <alt>Матьфѣи</alt><br /> <rel>Мафѣи</rel><br /> <br /> <h4>Names in context</h4> <p>Starting work on this index (which shows all the names found in each document, and the role they play) is the next step in building a proof-of-concept for the work on the BBL names sub-project.</p> <h4>Unicode word index</h4> <p>Completed through page 62 out of 113.</p> <h4>Word index with vowel etymology</h4> <p>Pending completion of Unicode word index.</p> Modernizing Research through Collaborative Reference Tools: The Medieval Slavic Linguistics Wiki 2010-06-18T00:00:00Z http://www.quinndombrowski.com/blog/2010/06/18/modernizing-research-through-collaborative-reference-tools-the-medieval-slavic-linguistics-wiki/ <p><em>As a way of setting an actual deadline for myself to make some progress on the Medieval Slavic wiki, I submitted an abstract to the Fifth Annual Meeting of the Slavic Linguistic Society, which follows.</em></p> <p> The rise in scholarly materials accessible through Internet (JSTOR, SpringerLink, and/or PDFs published by individuals) has facilitated the research process for scholars worldwide. For Slavic linguists, however, many of the major reference works were published over 50 years ago, and are unavailable electronically. The success of Wikipedia as a general reference source for laypeople illustrates the potential of wikis as a way of organizing information from diverse sources. This paper aims to make the case for developing a separate wiki as a shared reference resource for Slavic linguists.</p> <p>While on­line publication of materials lowers one barrier to access, the research process itself has largely remained the same. It is often necessary for scholars to seek out information from areas where they are less familiar with the literature. This can involve consulting a reference work and tracking the topic through bibliographies. The amount of time necessary to look up facts takes away from the time the scholar can devote to the intellectual content of their research.</p> <p>A common approach to solving this problem is scanning materials. However, a tremendous amount of tedious work is involved in this process, and copyright is a non­trivial concern. A specialized wiki, compiled by Slavic linguists and Slavic linguistics graduate students, would reduce both tedium and copyright concerns, as the facts and conjectures contained within monographs and articles are not themselves subject to copyright.</p> <p>A test case is currently being developed, limited to topics relevant to medieval Slavic linguistics. The wiki contains two kinds of content: article/monograph summaries that lay out the major claims of a particular work, and topic-­based pages that bring together both undisputed facts and various conflicting scholarly claims on the topic, drawn from articles and monographs. Both kinds of wiki pages include copious, specific footnotes referencing the source material­­ both to enable fact­-checking and to allow the scholar to cite the original material rather than the wiki if desired.</p> <p>Mediawiki, the wiki software developed for Wikipedia also used for this test case, includes a number of features aimed to both encourage contribution and prevent abuse. Each user account comes with a page linking to that user's contributions on each of the pages where they have added (or removed) something. Even scholars without any specialized technology skills can contribute to the wiki, and include the link to their contributions on their CV to show their involvement in a digital humanities project. Every change made to a page is tracked in the database, and can be viewed, discussed, and/or reverted in cases of blatant abuse. The common graduate student assignment of writing article summaries could be redirected slightly towards writing summaries for articles not currently on the wiki, and breaking the information in those articles down into specific claims that can be added to topical pages encourages students to develop their analytic skills.</p> <p>In addition to arguing for the benefits such a wiki could provide the Slavic linguistics scholarly community, this paper will present a live demonstration of the Medieval Slavic linguistics wiki.</p> NITLE 2010: Medieval Slavic wiki meets Project Bamboo 2010-04-18T00:00:00Z http://www.quinndombrowski.com/blog/2010/04/18/nitle-2010-medieval-slavic-wiki-meets-project-bamboo/ <p>For the NITLE Summit 2010 poster session, I combined my <a href="http://www.medievalslavic.com/">Medieval Slavic wiki</a> with the work I've been doing as part of <a href="http://www.projectbamboo.org/">Project Bamboo</a>. The abstract is below:<br /> Even in a time when digital information can be accessed, searched, and filtered quickly, a number of academic disciplines rely heavily on print-only reference works and associated articles, many of which are not available on-line. Pulling together various scholars' assessment of any topic is painstaking work, taking up time that could be better spent on analysis. At the same time, article summaries are a common class assignment, but the students' work may never be seen by anyone other than the instructor. What if we could reduce the amount of scut work necessary for scholars, while making student assignments more meaningful?</p> <p>Medievalslavic.org is designed to be a working model of what such a system might look like. Using the Mediawiki platform, I am in the process of dissecting commonly-used reference works in medieval Slavic studies into cross-linked articles, and incorporating dissenting views, supporting evidence, and other insights fromWikifying Reference subsequent scholarly articles. Heavy page-level citation of the sources, just as one would find in a scholarly article, both ensures that all the information can be verified, and allows the scholar to cite the source--rather than the wiki--to avoid criticism from traditionally-minded colleagues. I also plan to illustrate how this project aligns with the future directions for digital scholarship mentioned during the Project Bamboo workshops, with the hope that someone in a larger field might be interested in trying something similar with a class of current students.</p> Balkan & South Slavic Conference: presentation materials 2010-04-16T00:00:00Z http://www.quinndombrowski.com/blog/2010/04/16/balkan-south-slavic-conference-presentation-materials/ <p>On April 17, 2010, we gave a talk on the Bulgarian Dialect Atlas at the Balkan and South Slavic Conference at the Ohio State University.<br /> You can <a href="http://www.quinndombrowski.com/assets/files/dombrowski_2010-04-17.pdf">download the slides here</a>.</p> Installing Cocoon on Ubuntu 2010-04-14T00:00:00Z http://www.quinndombrowski.com/blog/2010/04/14/installing-cocoon-on-ubuntu/ <p><strong>10/11/10 -- This guide was written for Intrepid, and doesn't work on the latest Ubuntu releases. An updated and working version of the guide is <a href="http://www.quinndombrowski.com/blog/2010/12/10/installing-cocoon-on-ubuntu-10-04-or-10-10">available here</a>.</strong><br /> This guide was prepared with help from a guide written on the GSLIS wiki by <a href="http://piez.org/wendell/">Wendell Piez</a>. If you try it and something doesn't work, please e-mail me (quinnd -at- uchicago +dot+ edu). This document is licensed <a href="http://creativecommons.org/licenses/by/3.0/us/">Creative Commons Attribution</a>.<br /> No knowledge of Ubuntu or Unix is assumed; the intended audience is someone who's managed to install Ubuntu and isn't too intimidated by the Terminal.</p> <p> Step 1: Installing Java SDK</p> <ol> <li>Open the Terminal (Applications > Accessories > Terminal)</li> <li>Type: sudo apt-get install sun-java6-jdk<br /> <em>(Hint: You can copy and paste, but in Terminal, pasting is Ctrl + <strong>Shift</strong> +C)</em></li> <li>There'll be some downloading, you'll have to scroll through a long TOS and agree to it, but then it will install on its own.</li> <li>Close Terminal.</li> </ol> <p> Step 2: Installing Maven<br /> Derived from <a href="http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html">Maven in Five Minutes</a>.</p> <ol> <li><a href="http://maven.apache.org/download.html">Download Maven</a> (choose tar.bz2)</li> <li>Open the tar.bz file; by default, it probably saved to the Desktop</li> <li>Extract it to the Desktop</li> <li>Open the Terminal again and type: cd /usr/local <p>sudo mkdir apache-mavenAt this point, the Terminal will ask you for your sudo password. It's the same as the password you use to log in to Ubuntu. Then:<br /> cd /home/YOUR_USER_NAME/Desktop (be sure to replace YOUR_USER_NAME with your user name)</p> <p>sudo mv apache-maven-2.0.9 /usr/local/apache-maven</p> <p>export M2_HOME=/usr/local/apache-maven/apache-maven-2.0.9</p> <p>export PATH=$M2:$PATH </p> </li> <li>Cross you fingers and type:<br /> mvn --version</li> <li>If everything worked right, it should display information about the version of Maven you have installed.</li> <li>Close Terminal.</li> </ol> <p>Step 3: Installing Cocoon</p> <p> Derived from <a href="http://cocoon.apache.org/2.2/1159_1_1.html">Your first Cocoon application.</a></p> <ol> <li>Make a directory for your Cocoon install. <ul> <li>Using the GUI: go to Places > Home Folder, then in that new window, File > Create Folder.</li> <li>Or, open the Terminal:mkdir cocoon</li> <li>In the following text, I'm assuming you make a folder called <em>cocoon</em> in your Home Folder; if you give it a different name or put it somewhere else, you'll have to change the commands accordingly.</li> </ul> </li> <li>Open the Terminal and change directory to your cocoon folder:cd cocoon <p>mvn archetype:generate -DarchetypeCatalog=<a href="http://cocoon.apache.org/">http://cocoon.apache.org</a></p> </li> <li>This begins the install process. <ul> <li>For archetype, choose 2</li> <li><em>Define value for groupId:</em> - This should be a unique value. A classic value to use is, if you own the namespace myurl.com, you could type <em>com.myurl</em></li> <li><em>Define value for artifactId:</em> cocoon</li> <li><em>Define value for version: 1.0-SNAPSHOT:</em> 1.0.0</li> <li><em>Define value for package:</em> - groupID.cocoon (i.e. <em>com.myurl.cocoon</em>)</li> </ul> </li> <li>After everything's done installing, you should see <em>[INFO] BUILD SUCCESSFUL</em></li> <li>Make sure you're in your cocoon directory in Terminal (does it say <em>~/cocoon$</em> right before the cursor?), and type mvn jetty:run</li> <li>There'll be a lot more installing, but it should conclude with <em>[INFO] Started Jetty Server</em></li> <li>Open a browser and go to <a href="http://localhost:8888/cocoonTest" title="http://localhost:8888/cocoonTest">http://localhost:8888/cocoonTest</a> - you should see a message saying Apache Cocoon: Welcome</li> </ol> <p> Step 4: Cocoon Add-ons<br /> There are a couple add-ons for Cocoon that are essentials-- like generators for HTML. If you want to use XSLT 2.0, Saoxn 9 is also critical. Posibly less important are the FOP processor (to generate PDFs from XSL-FO), Batik (for SVG) and Forms (to genrate forms). If you don't need to use XSLT 2.0, you can skip the first part of this section.</p> <ol> <li>Installing Saxon 9 <em>- a good idea</em> <ol> <li>Open your <em>cocoon</em> directory and navigate to src/main/resources/META-INF/cocoon</li> <li>Create directory <em>avalon</em></li> <li>Create the following files in Text Editor (Applications > Accessories > Text Editor), and place them in the avalon directory: <ol> <li>File named <strong>cocoon-core-xslt-saxon.xconf</strong><br /> <br /> <components><br /> <component role="org.apache.excalibur.xml.xslt.XSLTProcessor/saxon"></component> class="org.apache.cocoon.components.xslt.TraxProcessor"> <p> <parameter name="use-store" value="true"></parameter></p> <parameter name="transformer-factory" value="net.sf.saxon.TransformerFactoryImpl"></parameter> <br /> </components> </li> <li>File named <strong>sitemap-transformers-saxon-transformer.xconf</strong><br /> <p><components xmlns:map="http://apache.org/cocoon/sitemap/1.0"><br /> <transformers><br /> <transformer name="xslt2" src="org.apache.cocoon.transformation.TraxTransformer"><br /> <xslt-processor-role>saxon</xslt-processor-role><br /> </transformer><br /> </transformers><br /> </components> </p> </li> </ol> </li> <li>Download <a href="http://prdownloads.sourceforge.net/saxon/saxonb9-1-0-5j.zip" title="http://prdownloads.sourceforge.net/saxon/saxonb9-1-0-5j.zip">http://prdownloads.sourceforge.net/saxon/saxonb9-1-0-5j.zip</a></li> <li>Extract the zip file to you Home folder; you can delete everything but <em>saxon9.jar</em></li> <li>Open a new Terminalcd cocoon <p>mvn install:install-file -DgroupId=net.sf.saxon -DartifactId=saxon -Dversion=9.1.0.5 -Dpackaging=jar -Dfile=../saxon9.jar</p> </li> <li>Go to <em>cocoon</em> and open pom.xml</li> <li>At the bottom of <dependencies>, add: <p><dependency><br /> <groupid>net.sf.saxon</groupid><br /> <artifactid>saxon</artifactid><br /> <version>9.1.0.5</version><br /> </dependency> </p> </dependencies></li> <li>If for some reason you only want Saxon 9 and not the ability to generate HTML, skip to the bottom of this section</li> </ol> </li> <li>Installing HTML support <ul> <li>Still in pom.xml, at the bottom of <dependencies>, add: <p><dependency><br /> <groupid>org.apache.cocoon</groupid></dependency></p> <p><artifactid>cocoon-html-impl</artifactid><br /> <version>1.0.0</version><br /> </p> </dependencies></li> </ul> </li> <li>Installing FOP (for PDFs) <ul> <li>Still in pom.xml, at the bottom of <dependencies>, add: <p><dependency><br /> <groupid>org.apache.cocoon</groupid><br /> <artifactid>cocoon-fop-impl</artifactid><br /> <version>1.0.0</version><br /> </dependency></p> </dependencies></li> </ul> </li> <li>Installing Batik (SVG) <ul> <li>Still in pom.xml, at the bottom of <dependencies>, add: <p><dependency><br /> <groupid>org.apache.cocoon</groupid></dependency></p> <p><artifactid>cocoon-batik-impl</artifactid><br /> <version>1.0.0</version><br /> </p> </dependencies></li> </ul> </li> <li>Installing Forms <ul> <li>Still in pom.xml, at the bottom of <dependencies>, add: <p><dependency><br /> <groupid>org.apache.cocoon</groupid><br /> <artifactid>cocoon-forms-impl</artifactid><br /> <version>1.0.0-RC1</version></dependency></p> <p> </p> </dependencies></li> </ul> </li> <li>There's <a href="http://cocoon.apache.org/2.2/blocks/1204_1_1.html">a list of all blocks</a>, and the syntax for the dependency code is in there someplace.</li> <li><strong>Once you're done adding dependencies:</strong> <ol> <li>If you have a Terminal open with <em>[INFO] Started Jetty Server</em>, close it.</li> <li>Open a new Terminalcd cocoon <p>mvn compileAfter it's done...<br /> mvn jetty:run </p> </li> </ol> </li> </ol> <p> Redirecting the Sitemap<br /> You can add your pipelines to the <em>sitemap.xmap</em> in cocoon/src/main/resources/COB-INF, or (more conveniently) you can tell that base sitemap to look elsewhere for your files.<br /> I'm assuming here that you have a folder called <em>myproject</em> in your Home folder where you have all your files and your sitemap. Please change that, and your user name, accordingly.</p> <p>Included here is also the code to generate more useful error messages than a blank pages.<br /> In <em>sitemap.xmap</em> in cocoon/src/main/resources/COB-INF, at the bottom of the<br /> <pipelines section="" add:=""> <p><pipeline><br /> <handle-errors><br /> <generate type="exception"></generate> </handle-errors></pipeline></p> <p><serialize type="xml"></serialize><br /> <br /> <match pattern="myproject/**"><br /> <mount uri-prefix="myproject/" check-reload="yes"></mount> src="/home/YOUR_USER_NAME/myproject/sitemap.xmap" reload-method="synchron"/><br /> </match><br /> </p> <p> In this case, your project will be found at <a href="http://localhost:8888/cocoonTest/myproject/[things">http://localhost:8888/cocoonTest/myproject/[things</a> that match your pipelines]. But it doesn't have to match the folder name with your files. You can change the URL by chanigng <match pattern="myproject/**"> to <match pattern="whatever_you_want/**"></match></match></p> <p> Hints and Tips<br /> Every time you restart Ubuntu, you have to restart Cocoon:<br /> cd cocoon</p> <p>mvn jetty:run<br /> Be sure to keep that Terminal window open while you're working with Cocoon. You can always check if Cocoon is working by going to: <a href="http://localhost:8888/cocoonTest" title="http://localhost:8888/cocoonTest">http://localhost:8888/cocoonTest</a>.</p> </pipelines></p> Bulgarian Dialect Atlas at the 17th Meeting of the Balkan and South Slavic 2010-04-13T00:00:00Z http://www.quinndombrowski.com/blog/2010/04/13/bulgarian-dialect-atlas-at-the-17th-balkan-and-south-slavic-conference/ <p>Andy and I will be demoing the Bulgarian Dialect Atlas on April 17th at the <a href="http://bss17.osu.edu/program.html">17th Balkan and South Slavic Conference</a> at the Ohio State University. The <a data-file-id="50" href="http://www.quinndombrowski.com/assets/files/dombrowski2_2010_slides.pdf">slides</a> and <a data-file-id="49" href="http://www.quinndombrowski.com/assets/files/dombrowski2_2010.pdf">handout</a> will be posted after the talk.</p> <p>While there hasn't been much additional development on the project since its presentation at <a href="http://www.balisage.net/">Balisage</a> last summer, this will be the first presentation for a Slavist audience.</p> <p>Below is the abstract we submitted for the talk:</p> <p><strong>An XML-­Based Approach to Dialectological Data: The Development of Syllabic Liquids in Bulgarian</strong></p> <p>The reflexes of syllabic liquids (hereafter CrC) in East South Slavic are strikingly diverse and therefore of interest for linguists working on a wide range of topics. In particular, the distribution of CrC reflexes in standard Bulgarian has been a recurring topic in the phonological literature, due to the empirical observation that the place of the vowel (/ăr/ versus /ră/ or /ăl/ versus /lă/) is conditioned by the syllable structure (Scatton 1974, Scatton 1976, Petrova 1993, Barnes 1997). In this paper, we present a tool to facilitate the examination and analysis of CrC reflexes across the dialects of Bulgarian.</p> <p>This tool builds upon the word lists in the Bulgarian Dialect Atlas (BDA) by providing more accessible interfaces to the data. The words have been transcribed and marked up using XML to indicate lexeme, reflex, and place of stress (where applicable). Each site is listed with its associated words and geographic coordinates. This metadata is leveraged using XSLT stylesheets to generate views onto the data that would not previously have been possible. Each site has its own profile that shows what percentage of the tokens have which reflex, lists all tokens, and notes tokens of the same lexeme that have different reflexes. The profile for each reflex shows what percentage of sites have that reflex, which reflexes co­-occur with it, and which lexemes have the given reflex and a different reflex within a single site. One of the views onto the lexemes is a sort based on how many reflexes are attested for a given lexeme, which provides insight into the lexical diffusion of reflexes. The token view identifies where a token is the unique carrier of its reflex. Dynamically generated maps are provided for most views, using color­-coded location markers that better capture the nuances of the data than those found in the printed atlas.</p> <p>This allows for an extremely detailed micro-analysis of the dynamics of lexical diffusion involved in the development of Bulgarian CrC reflexes, while providing macro-analytic tools that facilitate the identification of larger­-scale trends in the data. The enhanced ability that this tool provides to identify locally divergent geographical points enables the easier identification of areas that may be of interest for more in­-depth research. The ability to compare CrC reflexes in different environments makes it more feasible to track regional variation not just in the specific tokens attested in the BDA, but also, when multiple reflexes are found, to characterize the functioning of each reflex within the overall grammatical structure of any given dialect. These features will be of use in future research on this topic by enabling the inclusion of Bulgarian dialect data to an extent that was previously not feasible. We will also discuss the applicability of similar markup schemes to other types of data sets.</p> <p><em>References</em></p> <ul> <li>Barnes, Jonathan. 1997. “Bulgarian Liquid Metathesis and Syllabification in OT.” in Bošković, Željko, Steven Franks, and William Snyder, eds. Annual Workshop on Formal Approaches to Slavic Linguistics: the Connecticut Meeting: 38­-53.</li> <li>Petrova, Rossina. 1993. “Prosodic Theory and Schwa Metathesis in Bulgarian.” in Avrutin, Sergey, Steven Franks, and Ljiljana Progovac, eds. Annual Workshop on Formal Approaches to Slavic Linguistics: the MIT Meeting: 319-­340.</li> <li>Scatton, Ernest. 1974. “Metathesis of Liquids and [Ъ] and the Bulgarian Verb.” in V Pamet na Prof. Dr. St. Stojkov – Ezikovedski Izsledvanija: 87­-90.</li> <li>Scatton, Ernest. 1976. “Liquids, schwa, and vowel­-zero alternations in modern Bg.” in Butler, ed. Bulgaria Past and Present. Columbus: 323­-327.</li> <li>Stojkov et al., ed. 1964­1975. Bălgarski dialekten atlas. BAN: Sofia.</li> </ul> Do It With Drupal: Drupal Under Pressure: Performance and Scalability 2009-12-10T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/11/do-it-drupal-drupal-under-pressure-performance-and-scalability/ <ul> <li>Browser | Apache | PHP | -SQL Queries | MySQL</li> <li>Common pattern for optimization: inspect each layer, add little buckets of caches everywhere</li> <li>"Fast track" through the different layers to get out requests more efficiently</li> <li>On browser side: Mod Expires, sends a message to the browser and says "I've got this info, you've already looked at it, we're good"</li> <li>Firebug will show you all the individual requests- says how many kb it takes to download (if you only have to download a little bit when you refresh, that's good)</li> <li>CDN - Content Delivery Networks and reverse proxy caches: any stuff that hasn't changed, you don't have to ask your internal infrastructure to handle that (hand it off to geolocated servers optimized to quickly serve out that info)</li> <li>Proxy cache can be in front of your infrastructure (offload things Drupal would keep doing over and over)</li> <li>PHP level: OpCode cache</li> <li>MySQL level: query cache - takes all the read queries (most of the select statements) and stores the results in memory</li> <li>Query cache, OpCode cache: half hour or less, significant improvements</li> <li>Proxy caches and CDNs are a bit larger of a task</li> <li>Component between database and PHP: MemCache - clone of some of Drupal's tables</li> <li>MemCache: take all the cached tables, hold it in memory</li> <li>MemCache also used for sessions - if your sessions table is locking up, your site is about to implode</li> <li>MemCache also used to speed up path aliasing stuff</li> </ul> <p><strong>Apache Requirements</strong></p> <ul> <li>Apache 1.3.x or 2.x, ability to read .htaccess fiels, AllowOverrideALL</li> <li>If we take information in .htaccess and put it in main Apache config file - it's faster, it might not be a huge bump in performance, turn off dynamic configuration of Apache</li> <li>mod_rewrite (clean URLs), mod_php (Apache integration), mod_expires</li> <li>MaxClients- number of connections you can have to Apache at once; if you set it too high for your server, you'll run out of memory</li> <li>RAM / AvgApache mem size = # max clients</li> </ul> <p><strong>mod_expires</strong></p> <ul> <li>ExpiresDefault A1209600 (AKA "two weeks") </li> <li>ExpiresByType text/html A1 (all images, CSS, javascript: they get cached for two weeks, except the text/html)</li> <li>We can't cache html in Drupal because that's dynamic</li> <li>This is telling Apache to send the headers to the browser that tell the browser it's ok to cache it</li> </ul> <p><strong>KeepAlive</strong></p> <ul> <li>There's overhead to opening TCP/IP connections</li> <li>"We can have a conversation this long" - Apache and browser can keep a conversation going long enough to download an entire page</li> <li>KeepAliveTimeout 2 (but you can monitor Apache threads to determine when a process turns into a wait process, refine it)</li> <li>Resources: linuxgazette.net/123/vishnu.html</li> </ul> <p><strong>PHP requirements</strong></p> <ul> <li>5.2.x, XMl extension, GD image library, Curl support, register_globals:off, safe_mode:off</li> <li>PHP Opcode Cache: removes "compile to operation codes" steps - go right from parse PHP to execute</li> <li>APC: <a href="http://pecl.php.net/package/APC" title="http://pecl.php.net/package/APC">http://pecl.php.net/package/APC</a></li> <li>php.ini: max_execution_time = 60, memory_limit = 96M</li> <li>If you're uploading big things, you might need more; if you're doing image handling/image manipulating (image cache to dynamically create image derivatives) may need to increase memory</li> <li>Opcode cache is going to increase size of each Apache process? Or maybe not? (Debate ensues)</li> <li>In any case, check and see if Apache is holding onto more memory</li> <li>Use PHP best practice (don't count things over and over - store that count and then move on)</li> </ul> <p><strong>True or False?</strong></p> <ul> <li>The more modules you enable, the slower your site becomes (TRUE!) <ul> <li>Sometimes you may not need a module for that - 5 lines of code and it's done (don't need a birthday module with candles, etc if you just need the number)</li> <li>"Do I really need to enable this module?"</li> </ul> </li> <li>When my site is getting hammered, I should increase the MaxClients option to handle more traffic (FALSE!) <ul> <li>You'll run out of memory, start swapping, and die</li> </ul> </li> <li>echo() is faster than print() (WHO CARES?) <ul> <li>This is taking things a little too far</li> </ul> </li> </ul> <p><strong>Database server</strong></p> <ul> <li>MySQL 5.0.x or 5.1.33 or higher (there's some problems before 5.1.33 with CCK)</li> <li>MyISAM by default</li> <li>In Drupal 7, there are changes - MyISAM locks the entire table from writing when one thing is getting written somewhere; the access column, user table, session table is getting written to on every page request - this can cause problems</li> <li>Drupal 7 uses InnoDB - row-level locking, transactions, foreign key support, more robustness (less likely to get corrupted tables)</li> <li>If you have a table that's primarily read, MyISAM is a little faster</li> <li>Query caching - specify query_cache_size (64M?), max_allowed_packet (16M?)</li> <li>Is query cache size relative to table size? - yes, basically a bucket for read queries; how many result sets do you want to store in query cache</li> </ul> <p><strong>Query optimization</strong></p> <ul> <li>Find a slow query (can look at slow query log in MySQL), debug the query using EXPLAIN, it shows what's getting joined together and all sorts of other details; save the query, save the world</li> <li>log-slow-queries = /var/log/slow_query.log</li> <li>log_query_time = 5 (5 milliseconds)</li> <li>#log-queries-not-using-indexes: little ones that get run a ton, if you tweak that, you'll optimize the site (voting API, casting a vote)</li> <li>Add an index to reduce the number of rows it has to look through (tradeoff: it adds a little bit of time before a write can happen)</li> </ul> <p><strong>Drupal</strong></p> <ul> <li>Use Pressflow: same APIs as Drupal core but supports MySQL replication, reverse proxy caching, PHP 5 optimizatinos</li> <li>pressflow.org</li> <li>Almost all Pressflow changes make it back to core Drupal for the next release</li> <li>Cron is serious business - run it</li> <li>Drupal performance screen (/admin/settings/performance)</li> <li>We can't cache HTML like we can cache other things... but there's a way to do it</li> <li>It's disabled by default; the normal version takes requests (stores anonymous-user-viewing-a-page and stores it in the database)</li> <li>Aggressive cache bypasses some of the normal startup-y kind of things</li> <li>Aggressive cache lets you know if there's any modules that might be affected by enabling aggressive caching (such as Devel module)</li> <li>MTV runs on 4 web servers and a database server - and has TON of caching/CDN</li> <li>CDN is great for a huge spike in traffic</li> <li>If you don't have $$ for a CDN, use a reverse proxy like Varnish: don't ask Drupal to keep generating stuff for anonymous traffic</li> <li>Block caching is good</li> <li>Optimize CSS = aggregate and merge (20 requests for CSS files can go to 2)</li> <li>JSAggregator does compression for javascript (but be sure that you've got all the right semicolons)</li> </ul> <p><strong>Tools of the trade</strong></p> <ul> <li>Reverse proxy caches: like your own mini mini CDN; Varnish (varnish-cache.com)</li> <li>Set time to live for your content - this leads to regulated traffic off the originating server</li> <li>whitehouse.gov is being served all through Akamai; when you do a search, or post something you start to hit the original Drupal</li> <li>Apache Benchmark - impact of your code on your site</li> <li>It's built-in with Apache (ab from command line)</li> <li>ab -n 10 -c 10 <a href="http://www.example.com/" title="http://www.example.com/">http://www.example.com/</a> (10 requests, 10 at a time)</li> <li>You get back a number (requests per second your site can handle)</li> <li>More complicated for authenticated users; first, turn off all caching (for worst case scenario), look at the cookie and get the session ID, and do: ab -n 10 -c -C PHPSESSID=[whatever it is] <a href="http://www.example.com/" title="http://www.example.com">http://www.example.com</a></li> </ul> <p><strong>devel module</strong></p> <ul> <li>Not suggested for a production site; Masquerade module is for switching users on a live site</li> <li>Print out database queries for each page</li> <li>Switch users</li> <li>View session information</li> <li>dsm()</li> <li>db_queryd()</li> <li>timer_start(), timer_stop()</li> </ul> <p><strong>MySQL Tuning Scripts</strong></p> <ul> <li>blog.mysqltuner.com</li> <li><a href="http://www.maatkit.org/" title="www.maatkit.org">www.maatkit.org</a> - makes human-friendly reports from slow query report</li> </ul> <p><strong>Kinds of scalability</strong></p> <ul> <li>Scalability - how long can you survive the load</li> <li>Scaling: viral widgets, there, the mantra isn't "protect the database", it's "protect the web servers" - get more web servers</li> <li>Spike in anonymous user traffic (getting Slashdotted): site is a place for authenticated users, offload anonymous user traffic</li> <li>Tons of authenticated users: 100k employees logging into an infrastructure from 9 to 5 - big, beefy servers in a hosting location</li> </ul> <p><strong>Where do you start?</strong></p> <ul> <li>Do the quick wins first</li> <li>Save time for load testing</li> <li>RAM is cheap, MemCache is a nice solution</li> <li>If you get a warning about upcoming spikes in traffic, that triggers reverse proxy cache, CDN</li> <li>Work with hosting companies that know their infrastructure; build a relationship with them early on to have these kinds of conversations</li> <li>Some crashes are just a misunderstanding about what Drupal needs (going from a static site to Drupal without making changes)</li> </ul> <p><strong>When your server's on fire</strong></p> <ul> <li>Always have breathing room if you can</li> <li>If you've done MemCache, query caching, gone through all of that... add another box</li> <li>Add another virtual server</li> <li>Scalability = redundancy; back yourself up</li> <li>If the site goes down, will you lose money? If yes, invest in infrastructure</li> </ul> Do It With Drupal: Drupal Under Fire: Website Security 2009-12-10T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/11/do-it-drupal-drupal-under-fire-website-security/ <ul> <li>Your site is vulnerable (really, it is)</li> <li>GVS offers security review service for Drupal</li> <li>Bad things: abusing resources, stealing data, altering data <ul> <li>Abusing resources: DDOS (extorting money from site owner), using open relay in a mail sending module for spam</li> <li>Stealing data: from users (their passwords, e-mail address)</li> <li>Altering data: defacement</li> </ul> </li> <li>You don't hear about security vulnerabilities much; Drupal core mentions vulnerabilities (and updates) but not so much for modules</li> <li>Worry in a prioritized way</li> <li>Choose your strategy: stay ahead of the pack, or protect valuable assets?</li> <li>Attacks focus on sites that are out of date</li> <li>Know about releases, have a method to update your site, do it</li> <li>Look into Aegir if you're running multiple sites</li> </ul> <p><strong>Configuration</strong></p> <ul> <li>Available updates- settings, e-mail notifications when modules you use are updated</li> <li>Security review module: drupal.org/project/security_review</li> <li>Will show if your site is under attack with a SQL injection</li> <li>Part of security review: check off which roles are considered "trusted" - trust-checks and points out which permissions are bad to give to untrusted users</li> <li>Can skip some of the checks so they don't nag you (if this is on a dev server, and it's not relevant)</li> <li>There is a hook to be able to run additional checks, but not sure whether modules should be able to declare their things (do we trust module developers to come up with the right set of rules?)</li> <li>If there's something that can take an action on your site, accessible via a link - that could be a vulnerability (i.e. the "turn off this check" feature of the security module)</li> <li>Run it before you launch, after you make big config changes; could do it as a periodic check and e-mail the report. Is ok to have always-on for a live site though</li> </ul> <p><strong>Vulnerabilities by type</strong></p> <ul> <li>Announcements from drupal.org; most sites have custom modules, almost always have custom themes</li> <li>Analysis of one site: 3-4 vulnerabilities in Drupal core, 20 in contrib modules, 100 vulnerabilities in custom theme/modules (no one else is reviewing that stuff except for you)</li> <li>XSS (cross-site scripting) - one of the hardest to fix</li> <li>Access bypass - good ways to fix this</li> <li>Cross site referral forgeries</li> <li>SQL injection - easy to protect against, only getting easier</li> </ul> <p><strong>XSS</strong></p> <ul> <li>Anything you can do XSS can do (better)</li> <li>XSS can change password for user 1</li> <li>Most people don't know they've been a victim of XSS; it's in your browser, browser just executes javascript, don't know until you try to log back in</li> <li>XSS tools exist to probe your network - even if your Drupal is on the intranet</li> <li>Automated tools are a great way to get started, but not all that valuable in actually identifying things (false positives, false negatives)</li> </ul> <p><strong>Insecure configuration of input formats</strong></p> <ul> <li>Input formats and filters are confusing - people do what they need, and forget about it, and open themselves up to XSS</li> <li>Anonymous users: shouldn't be allowed to have more than one input format</li> <li>Filtered HTML is the right thing for untrusted roles</li> <li>To this day, WYSIWYG modules say "give everyone access to full HTML and tinymce will just work" - NO! DON'T DO THAT!</li> <li>Defaults are good: filtered HTML is a good thing</li> <li>It's tempting to add images, spans, divs, etc - but different browsers have different vulnerabilities that way</li> <li>There's a page on drupal.org that talks about what's safe to put in (there's some gray area - depends on your users and their browsers)</li> <li>Weights: HTML corrector needs to go last</li> </ul> <p><strong>XSS for Themers/Coders (and reviewers)</strong></p> <ul> <li>Browscap module: analyzes user agents for people who go to the site</li> <li>Firefox extension (default user agent) - used to be for Firefox to pretend to be IE, but now people use it for other things</li> <li>Hackers can take normal user agent and replace it with jQuery that will be sent as the user agent - PWNED</li> <li>Is there a module that will strip in javascript from the input box? - Filtered HTML does that</li> <li>You can strip the script, or you can escape it (so it shows up as harmless text)</li> <li>Filtered HTML also gets rid of attributes</li> <li>There's a module that says which attributes can come through on which tags - well, the admin screen for it is huge, the input format area is a problem because it's confusing, so do you want to add an even more confusing module?</li> <li>Themers: Read tpl.php and default implementations; rely on your module developer for variables that are ready to be printed (hook pre-process)</li> <li>Developers: where does the text come from, is there a way a user can change it, in what context is it being used?</li> <li>More is from the user than you think (user agents are from the user)</li> <li>Filtered HTML makes things safe for the browser context</li> <li>When data leaves Drupal and goes into MySQL - need to escape the data to make it safe for putting into the database</li> <li>Contexts: mail (some clients sorta support javascript, need to specify plaintext), database, web, server</li> <li>Take an hour: <a href="http://acko.net/blog/safe-string-theory-for-the-web">http://acko.net/blog/safe-string-theory-for-the-web</a></li> <li>Drupal philosophy: make things secure by default</li> <li>Escape variables using the checkplain function</li> <li>If your site is translatable, it's also probably secure</li> <li>If you're using the API properly, you probably don't need to worry about security (but it takes a while to learn how to use the API property)</li> </ul> <p><strong>Cross Site Request Forgeries (CSRF)</strong></p> <ul> <li>Taking an action without confirming the intent of that action</li> <li>User Protect module - makes it harder to delete user 1; protects anonymous user, user 1, can add other users</li> <li>Drupal's form API has protection from this - using links doesn't</li> <li>An anonymous user can insert an "image" (the browser goes to look for it, and if that "image" is the link for User Protect that deletes the protection for user 1, that's bad)</li> <li>In the case of User Protect, there's now a confirmation form - browser would just fetch confirmation form and throw that away-- requirement that you have to click on "submit" button would save you from anything bad happening</li> <li>If you really want to use links like User Protect does, create a token based on something unique to the site, the user, and the action (and validate the token when the action is requested)</li> <li>User session ID (unique key private to site, generated randomly at login) + form ID</li> <li>When the action is submitted, Drupal will validate that it's still there</li> <li>Is it possible to give permissions to manage everything EXCEPT user 1? - that's what User Protect does</li> <li>Or, just use the form API - it includes this protection by default</li> </ul> <p><strong>Security and usability</strong></p> <ul> <li>Confirmation forms suck</li> <li>BUT, truly destructive actions <strong>should</strong> be hard to do</li> <li>Don't delete, archive and provide undo</li> <li>Choose links or forms for usability, not security</li> </ul> <p><strong>Resources</strong></p> <ul> <li>drupal.org/security-team</li> <li>drupal.org/security</li> <li>drupal.org/writing-secure-code</li> <li>drupal.org/security/secure-configuration</li> <li>heine.familiedeelstra.com</li> <li>crackingdrupal.com</li> <li>crackingdrupal.com/node/34 - XSS Cheat Sheet</li> <li>crackingdrupal.com/node/48 - CSRF</li> </ul> <p><strong>Questions</strong></p> <ul> <li>Rainbow tables - MD5 values for every possible password up to 6 characters</li> <li>crackingdrupal.com - has resources including list of security modules (Salt module has salting of passwords)</li> <li>Any way to hide you're running Drupal? - data in the CSS files, standard Drupal jQuery, a few files in the root directory, expiration date for anonymous is Dries's birthday; there's all sorts of things that fingerprint a Drupal site, trying to hide you're running Drupal takes more time than it's worth if you just keep up with updates</li> <li> </li> </ul> Do It With Drupal: Drupal In The Cloud 2009-12-10T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/11/do-it-drupal-drupal-cloud/ <p>Josh Koenig<br /> drupal.org/user/3313<br /> josh - at - chapterthree.com<br /> getpantheon.com<br /> <strong>About the cloud</strong></p> <ul> <li>"Cloud" as new model for hosting</li> <li>Traditional hosting = real estate (rack space)</li> <li>Most real estate customers are renters, few love their landlord - landlords sometimes cut corners and do the bare minimum to keep you happy... but you need this</li> <li>Owning comes with lots of responsibilities and hidden costs</li> <li>Large scale projects are expensive, slow, and prone to setbacks</li> <li>"The Cloud" = hosting as an API: on-demand availability</li> <li>Hourly pricing</li> <li>Reliable, reusable start-states: people make mistakes vs. programs that do things and you know exactly what they're going to give you</li> <li>You can say: I want a new server, here's the distro, here's the information, here's the configuration - and I want five of them</li> <li>The cloud = less waste, more freedom, flexibility... but not a silver bullet</li> <li>Performance can vary (don't use it for scientifically accurate benchmarks)</li> <li>Abstractions aren't the same as the real thing (not the same as physical servers - but for what it's worth this hasn't been a problem for Drupal)</li> <li>New tricks to learn - power of API</li> <li>The Cloud is Drupal's destiny - increasing Drupal's reach; you can start with pennies, scale to millions</li> <li>Create products cheaply</li> <li>Grow organically, but still grow fast</li> </ul> <p><strong>Launch a server in the cloud</strong></p> <ul> <li>ElasticFox - Amazon control panel for Firefox</li> <li>Amazon just added locations for US west coast</li> <li>Pantheon project: create images for cloud services that are targeted towards Drupal</li> <li>Three images: high performance production hosting image (all the tricks already done), another for an Aegir, another for a continuous integration environment for Drupal</li> <li>Grand vision for world-class Drupal infrastructure for pennies an hour</li> <li>High performance production has the most work since people have been the most interested</li> <li>Ubuntu 9.04 base config, whole LAMP stack, Pressflow pre-installed, memcached, APC, all of it is already there</li> <li>Can monitor processes, do everything you like to do as root</li> <li>v0.8.1 beta - but people are using it in production (in spite of disclaimer)</li> </ul> <p><strong>Who are the cloud providers</strong></p> <ul> <li>AWS: most mature, a lot of features, still moving quickly, added a load balancer earlier in the year; they're a utility, not interested in your particular use case; they don't tell people what they're working on or how it works</li> <li>AWS has infrastructure for giving away free images - most don't</li> <li>Rackspace - has Rackspace Cloud Sites (you don't get root, you put your Drupal in there, they scale it for you with mixed results); scaling any particular site requires deep knowledge of it; Rackspace Cloud Servers is better (Slicehost is built on top of Rackspace Cloud Servers)</li> <li>Rackspace is looking to break into the space; willing to do deals, talk to you, etc</li> <li>Voxel: smaller/smarter, also in Asia; cloud product just emerging from beta, but it's good - also lets you intermingle cloud and physical infrastructure</li> <li>And more every day!</li> <li>VPS is becoming quite cloudy (linode.com, slicehost, vps.net)</li> <li>Custom/managed cloud services (security, regulatory compliance issues - people will build a cloud for you: Eucalyptus, Neospire, others) </li> <li>Cloud value-adders: Rightscale, Scalr - cloud/cluster management services</li> <li>Cloudkick - cross-cloud services, managing different cloud providers (want to be able to move servers from one service to another); it's free; open-source LibCloud project to prevent people from getting locked into one provider</li> <li>Cloud tools for Drupal - getpantheon.com</li> </ul> <p><strong>Questions</strong></p> <ul> <li>How do you do a cost-analysis? You probably won't see the financial benefits right away, if you're going to leave it on all the time. But scaling with changing use patterns, adding/removing new instances.</li> <li>Cost/benefit comes in disk speed performance - most cloud providers have poorer I/O performance than a physical server</li> <li>How do you solve that problem for Drupal? - All performance/scalability work is about making Drupal do less work</li> <li>Oriented around Drupal doing only what it needs to, and not bogging it down with things like showing the user the same page he saw a minute ago</li> <li>Database replication for read-only queries</li> <li>Use other tools that are better at repeated-action type jobs for those things</li> </ul> <p><strong>What is it good for</strong></p> <ul> <li>Testing/continuous integration</li> <li>testing.drupal.org (Drupal testing Drupal) - not in the cloud, but will soon release cloud image of it</li> <li>People can spin these up if Drupal finds itself in a testing bottleneck, just for the day</li> <li>Development infrastructure: new server for each site</li> <li>Putting things like version control (unfuddle, beanstalk)</li> <li>Products and services: Lefora (forums), crowdfactory, olark (start with pennies, scale to millions)</li> <li>Database layer for Drupal can be a choke point - you can duplicate it</li> <li>High availability production hosting: Acquia is on EC2</li> <li>Most cloud infrastructure isn't cheap at this level (running many servers, keeping them always on-line), if you're really big you'll find yourself at the top end going to traditional managed hosting because there's some levels of performance that are capped by the virtualization layer</li> <li>Control costs for traffic patterns - geographically centralized audience for most people</li> <li>Turning things on and off to deal with daily peaks - two more servers only on during the day</li> <li>Instances fail, though not much more often than real servers (and remember that instances exist on real servers that do break)</li> <li>Performance can be impacted by other local activity</li> <li>Virtual disks tend to have relatively poor I/O performance</li> <li>Accept the inevitability of failure, embrace the paradigm of "rapid recovery", develop architecture with modular, replaceable parts (images for each server), minimize disk/CPU utilization for menial tasks</li> <li>"RAM is cheap" - the more you can push to things that read/write out of memory, the better</li> </ul> <p><strong>Production hosting in the cloud</strong></p> <ul> <li>Monitor your load - you have to look more carefully than just hits</li> <li>Spin up more instances (scale horizontally) as you need more power <ul> <li>How does this work?</li> <li>Could be manual process ("we need a server, let's do it") - does need some manual intervention somewhere, though in theory you could script it</li> <li>Amazon offers an auto-scaling feature (when we need more, add servers, up to X number of features - Amazon AutoScale)</li> <li>AutoScale is simple (doesn't cost anything, too)</li> <li>How does this work? How do the pieces work together?</li> <li>You need to have an image with all the pieces needed at the system level; you should use version control and have a boot script as part of the image (when the image start, the script checks out the current code base from the database and all the necessary connections), then AutoScale makes the pieces aware of what's out there</li> <li>You can also do load balancing more manually</li> <li>Role of sysadmin is changing - new set of things where now you don't have to worry about hard drives, but scaling up/down, saving money</li> <li>When you're doing horizontal scaling, you trigger your image to be built, it checks out the code; Amazon also offers virtual drive service (if you're working with an application with a lot of data in file system) - can connect that data quickly</li> <li>Bake in as much as you can to the image, then have automatic processes that fire that get the latest information, check it into infrastructure, start distributing load there</li> </ul> </li> <li>Add layers (scale vertically) when bottlenecks emerge</li> <li>Create images for each layer in your infrastructure</li> <li>Use best practices to keep things speedy</li> </ul> <p><strong>About best practices</strong></p> <ul> <li>Front-side caching: use Pressflow with Varnish and/or NgineX (Drupal 7 will support some of this natively)</li> <li>Drupal is slow: complex, wonderful, brainy tool - if you're looking at the same thing over and over again, go get a tool that does only that, and quickly</li> <li>Use APC and/or Memcached to minimize queries and the database to eliminate costly unserialize() calls</li> <li>Drupal's native caches are good, but it does it in the database (this isn't the highest performance option, serializing/unserializing big arrays/objects)</li> <li>Architect for vertical scaling by utilizing all service layers, even if it's one box</li> <li>This is what "Mercury" is about</li> <li>CREAM: Cache rules everything around me</li> </ul> <p><strong>Mercury</strong></p> <ul> <li>Freely available on Amazon, as VMWare image, in as many ways as we can</li> <li>Also on-demand as a service</li> <li>"Drupal hosting, 200 times faster"</li> <li>Standardized high-performance stack: single server image with everything you want for cluster infrastructure</li> <li>Features: Varnish, HTTP/PHP, APC Cache, Apache Solr, MySQL</li> <li>Make Drupal run fast, hold up under large traffic spikes</li> <li>From one box to cluster</li> <li>If you're running all four layers and are still falling down, or you're doing something horribly write (Twitter) or horribly wrong (all code embedded in php content nodes)</li> </ul> <p><strong>Questions</strong></p> <ul> <li>Mercury: going to implement configuration management system (BCFG2, probably)</li> <li>Mercury/Pantheon - not Amazon-centric, can roll the stack out anywhere (physical hardware, whatever)</li> <li>You'd probably make your own variant image, and sync as necessary using the configuration management system</li> <li>If you haven't customized things heavily, you can take the latest version of Mercury, re-apply changes, and you're done (if you don't want to use the config management)</li> <li>You can keep old images around for pennies a month</li> </ul> Do It With Drupal: The Power of Features 2009-12-09T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/10/do-it-drupal-power-features/ <p>See also <a href="http://drupal.org/project/features">Features</a> on drupal.org</p> <ul> <li>Jeff Miccolis & Eric Gundersen - Development Seed, building a lot of products (things like Open Atrium)</li> <li>Drupal is very configurable - but that's also a weakness: no distinction between what's configuration (views settings) and what's content</li> <li>Workflow problem: when you build a site, you build in a dev environment, but client/boss wants to see what it looks like before it goes live <ul> <li>So, you stage it somewhere, then move it over</li> <li>Development: where the action happens (possibly your laptop)</li> <li>Staging: where it's reviewed (much closer to where it's going to live)</li> <li>Production: where it's live. (developing on the live site is always a bad idea)</li> </ul> </li> <li>Three people working on a project that needs to go live <ul> <li>Musician, developer, themer</li> <li>Round 1 goes great - everyone works together and the site goes live</li> <li>Round two is a PITA: new views build on dev, rebuild on staging, rebuild on dev, rebuild on staging, over and over, rebuild on prod</li> <li>Extensive note taking, prone to human error, loads of repeated tasks</li> </ul> </li> <li>The solution? Make a distinction between config and content - views and settings are heavily and clearly distinguished from the actual content - then write this configuration to code and get it out of the database</li> <li>You can do version control with your config - this lets you track changes</li> <li>Node types, CCK fields, menu, blocks, views - these are config</li> <li>You can say "these components taken together define a feature" - something the site does</li> <li>"Features" module - Feature = Drupal parts that do something specific (Views, ImageCache presets, content types, fields, etc.)</li> <li>Features = Drupal module that allows for the capture of configuration into code</li> <li>(Sorry about the name; the Feature module makes Feature modules which have things)</li> <li>Feature modules have Core exportables: content types, permissions, input filters, menu items</li> <li>Contrib support: contexts, views, ImageCache, Ctools (panels, feeds, etc.)</li> <li>Features is a system to capture the various components that describe how your site behaves</li> <li>Features should be used throughout the development process - you can take a live site and capture existing features, but it requires you to change your thinking about how users interact with the site</li> <li>Concepting what's part of which feature, what's shared, etc. gives you stronger features</li> </ul> <p><strong>Making Features</strong></p> <ul> <li>Create a Feature: you can add components, cycle through various elements, clickthe ones you want in your module</li> <li>Features come as a nice tarball - turn it on in your website, you get all the stuff that comes with it</li> <li>But then people start changing the view - you can see the status in the Features module (has it been changed?)</li> <li>If something has been changed, it'll show you what</li> <li>"Recreate" button will give you another tarball, with the current state of things</li> </ul> <p><strong>Create, Update, Revert</strong></p> <ul> <li>Drush commands - features, features export, features update, features revert</li> <li>Views changes are made only once, each change has a commit log, if you check it into SVN like you should</li> <li>If you move your development to a real dev environment, and leave the staging site as a staging site (that you can show clients, etc without worrying it broke in the last five minutes) this is good</li> </ul> <p><strong>Distributing Features</strong></p> <ul> <li>Are your features appropriate for drupal.org?</li> <li>Is the configuration an IP issue?</li> <li>How can I get that nifty update status thing behind the firewall?</li> <li>If you can't/don't want to send it to drupal.org, but want to manage it internally over time: Features server</li> <li>code.developmentseed.org/featureserver</li> <li>Create projects, make new releases, subscribe to updates, etc</li> <li>For automatic packaging, try the Project module</li> <li>Feature server is much simpler, lets you get off the ground fast</li> <li>Based on implicit standards: update status xml, exportables, drush make</li> </ul> Do It With Drupal: jQuery 2009-12-09T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/10/do-it-drupal-jquery/ <p>See slides <a href="http://www.doitwithdrupal.com/2009/sessions/jquery-drupal">here</a>.</p> <ul> <li>What's jQuery: javascript library, circumvents browser incompatibility</li> <li>Known for things like opacity, AJAX requests that work across all browsers</li> <li>Visual effects and "wow factor"</li> <li>Reducing javascript code: getting elements by class name - 15 lines of javascript, 1-line snippet of jQuery $(".classname");</li> </ul> <p><strong>Selectors</strong></p> <li>jQuery selectors: CSS selectors by class (.), by ID (#), child elements/multiple elements ($('.sidebar a, .content a');), CSS3 select by attribute: $('input[type=text]'); also regular expressions on properties - see docs.jquery.com/Selectors</li> <p><strong>Effects</strong></p> <ul> <li>$('h1').hide(); - hides all h1's</li> <li>can also do .hide('slow'); or .hide(3000) - milliseconds</li> <li>.fadeOut('slow'), .slideUp('slow') - more at docs.jquery.com/Effects</li> </ul> <p><strong>Events</strong></p> <ul> <li>Trigger an action in response to user (click, change, toggle, hover)</li> <li>Toggle: two function names, the first time you click it does A, and the second time you click it does B</li> <li>You can do it inline (not suggested)</li> <li><em>return false</em> is useful if you want the hand icon to show up to click, but not take the person anywhere (ie AJAX toggle; degrades gracefully if javascript is turned off)</li> <li>Declared: gives a name to the function</li> <li>Take all your PHP knowledge, apply it to Javascript really easily - but there's lots of things that Javascript can do that PHP can't</li> </ul> <p><strong>Libraries and modules</strong></p> <ul> <li>Lots and lots of "wrapper" modules - so many nice jQuery plugins (equivalent of Drupal modules); make a module for every jQuery plugin (jCarousel, Lightbox, jqModal, Juitter, hoverIntent etc.) - there's a whole module for just one function</li> <li>People want to have dependencies - jCarouselViews module relies on jCarousel, even though there's only one function there</li> <li>You can end up with multiple copies of jQuery plugins all over the place</li> <li>"We need an API to handle all these javascript libraries!" - so now we have wrapper-wrapper modules! (Plugins, JQP, jQ, jQuery UI the module)</li> <li>Competing ways of adding multiple javascript libraries - different modules require different things</li> <li>jQuery UI isn't as bad as the other ones - so many modules need it</li> <li>In short, some modules have great implementation (jCarouselViews); a lot more modules do things in a totally unnecessary way - not worth having a module if it only does one thing and you only need it in one place</li> </ul> <p><strong>Adding JS in a theme</strong></p> <ul> <li>"It's not hacking, it's theming!"</li> <li>Open up info file, add some scripts (scripts[] = utilities.js)</li> <li>Name is always relative to the root of your theme</li> <li>After you do that, clear Drupal caches</li> </ul> <p><strong>drupal_add_js()</strong></p> <ul> <li>What if you only need it in certain places?</li> <li>Put this function in template.php; same thing that the .info file is doing for you</li> <li>Don't just put it in page.tpl.php</li> <li>Can aggregate and compress your CSS files - a lot less work for the web server</li> <li>Javascript can be all aggregated together</li> <li>Hosting your javascript elsewhere - well, it's only 15k, it'll slow down performance, it'll update to the latest version (but this might break your site</li> <li>If you add any javascript using drupal_add_js(), it'll add jquery and drupal.js - provides some extra functionality, utility functions, global variables</li> <li>drupal_add_js($data, $type); - $data is path to js, $type = 'module' (default) or 'theme'; theme stuff always goes last because it's assumed to be more important</li> <li>Pass PHP variables to JavaScript: drupal_add_js($data, 'setting'), where $data is an array of strings</li> <li>$(document).ready() - execute js when the page has finished loading</li> <li>Prevents content hang-ups, degrade gracefully; replaces body(onload)</li> </ul> <p><strong>References</strong></p> <ul> <li>visualjquery.com - whole library referenced on a single page</li> <li>docs.jquery.com - official documentation</li> <li>Drupal 6 uses 1.2.6 - there was an API change, and Drupal doesn't break APIs between major versions</li> </ul> <p><strong>jGarland</strong></p> <ul> <li>Can create a base theme in your info file, uses the stuff from the base module when you haven't written something custom</li> <li>Adding a bunch of javascript (jquery.countdown.js, cufon-yui.js - the new, hot thing in the world of fonts)</li> <li><a href="http://cufon.shoqolate.com/generate/">Cufon</a> is awesome</li> <li>Behaviors works on AJAX requests as well as page load</li> </ul> Do It With Drupal: Geolocation 2009-12-09T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/10/do-it-drupal-geolocation/ <ul> <li>You can use full html to input a map straight from Google</li> <li>Geo, Geocode, OpenLayers modules</li> <li>Standards compliance</li> <li>Example functions: within, touches, crosses - also, distance, area, perimeter, and others!</li> <li>PostGIS is a common way of doing it, but you can also "do it in Drupal"</li> <li>User friendliness: you shouldn't have to be a cartographer!</li> <li>"Geo-spacial data sets", shape files, projections, coordinates - this stuff can get messy fast</li> </ul> <p><strong>Collecting data</strong></p> <ul> <li>Run everything through CCK</li> <li>Geo Field</li> <li>Geocode</li> </ul> <p><strong>Lines</strong></p> <ul> <li>Can import a line (big mess of points)</li> <li>OpenLayers - takes your data and turns it into awesome, pretty, rendered maps</li> </ul> <p><strong>Data</strong></p> <ul> <li>Stuff you can geocode: image fields (exif), file fields (gpx track logs)</li> <li>Demo site: <a href="http://geoblog.geojune.org/" title="http://geoblog.geojune.org/">http://geoblog.geojune.org/</a></li> <li>Collecting tracks: dedicated GPS, gaiagps.com (iPhone), emacberry.com/gpslogger.html (Blackberry)</li> <li>Data sources: data.gov, zillow.com, DataFinder, etc.</li> </ul> <p><strong>Questions</strong></p> <ul> <li>Compatibility with other modules? - A lot of work is monolithic, people don't work together; there may be a CCK thing for Mapstraction</li> <li>GMapEasy module? No idea...</li> <li>Before, people were doing Location, but that was overwhelming; then people did a simple lat/lon field; the views code was starting to get messy</li> <li>You shouldn't write a module that has to hunt around and look for things - try to get all the people who work on geo stuff to express their data in a consistent way (rather than making a module check all the possible ways to store data)</li> <li>How many ways can you pull in data? - Geocode module is open, just tell it what kind of data you want to give it ("I'm going to give you an IP address"); no support for adding Geo stuff to users, but it's an easy API change</li> <li>In Drupal 7, when you can add CCK fields to users, the geo field becomes available</li> <li>Any way to define/create your own graphics? Mapping Middle Earth? - No technical limitation, Geo module doesn't care what you put in there; Geo just stores points/lines/polygons/3D, etc.</li> <li>OpenLayers - finding graphical tile sets for your map of Middle Earth, that's a whole secondary technical problem, even if you've got the right coordinates in there; there's pieces on the display side that need to be there</li> <li>There's a filter for "less than/equal to X miles of this point" in Views - this saves you from math</li> </ul> <p><strong>Modules</strong></p> <ul> <li>Geo - storing your data</li> <li>Gathering your data - geocode, postal</li> <li>Showing it - OpenLayers</li> </ul> Do It With Drupal: Configuring a Kick-Ass WYSIWYG Editor 2009-12-09T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/10/do-it-drupal-configuring-kick-ass-wysiwyg-editor/ <ul> <li>To make it easier for people to format text without knowing HTML, you could do filters, and/or editors</li> <li>Filters change stuff - people type things, filter changes that on output</li> <li>A ton of modules that provide filters in addition to the core</li> <li>Filter only makes its transformations on output: this means that whatever your user puts in the text box, it's stored right the way they did it, and you can transform it any way you want after the fact <ul> <li>Transformation happens <strong>after</strong> it gets stored, so you don't lose the data the person input; also, what if you want to filter it a different way later?</li> <li>Change the filter settings, you're not changing your data</li> </ul> </li> <li>"Input formats" become "text formats" in Drupal 7 <ul> <li>A format is a way to group a bunch of filters together</li> <li>This is an important distinction (format = collection of filters) when reading documentation</li> <li>Drupal Core comes with some formats: filtered html (default), full html</li> <li>Filtered html helps with security, strips things down - otherwise, you can put javascript in the text box (dangerous)</li> <li>Filtered html works as a whitelist</li> <li>Don't get frustrated and switch to "full html" - security nightmare; people do Google searches for text that allows full html for comments for anonymous users</li> <li>Core also offers PHP format - you have to turn on PHP filter module first (BIG DANGER)</li> <li>Filtered HTML: URL filter, HTML filter, line break converter, HTML corrector</li> <li>Full HTML has the same, but removes the whitelist</li> </ul> </li> </ul> <p><strong>An example</strong></p> <ul> <li>Even when you're using filtered HTML, if you put a script tag in there, it's still saved in the database just like you typed it</li> <li>The database also specifies what format to use</li> <li>URL filter, HTML filter, line break converter, HTML corrector fire in that order - order can be important (one filter can "clobber" another)</li> <li>Filtered HTML also strips attribute tags - sorry</li> </ul> <p><strong>Markup filters</strong></p> <ul> <li>Markdown, Textile, BBCode, Wiki Markups (Mediawiki, TikiWiki, etc)</li> <li>Other cool filters: code filter/GeSHi, SpamSpan (to avoid e-mail scraping), Paging, Pirate (Talk Like A Pirate Day), Typogrify (turns two dashes into an em-dash, etc)</li> <li>It depends on your user: if your users are used to Wikipedia and they want Drupal to be a wiki, you can do that</li> <li>Sometimes you don't need a WYSIWYG - a filter might get you what you need</li> </ul> <p><strong>WYSIWYG: just gimme what I want</strong></p> <ul> <li>There are also HTML helpers - it'll insert the HTML tags for you, that might be a good compromise for some people (BU Editor is the most popular one, probably going onto drupal.org)</li> <li>Back in the day: tinymce (awesome cool javascript thing)</li> <li>For a while, tinymce was what everyone used</li> <li>Also out there: fckeditor (name is changing to "ckeditor"; fck are the guy's initials, non-native speaker of English...)</li> <li>Huge threads on whether tinymce or fckeditor is better - comes down to preferences</li> <li>New: WYSIWYG API (actually just called WYSIWYG) <ul> <li>Central place for you to plug in whatever editor you want</li> <li>Flexibility to be able to have any editor, and more than one at a time - say when you want to use what</li> </ul> </li> <li>Dealing with images (arrrrrghhh!!!) <ul> <li>Things are getting better</li> <li>imagefield - can actually stick them in the body text</li> <li>imce - image browser integration</li> </ul> </li> </ul> <p><strong>Questions</strong></p> <ul> <li>How to strip out content from Word <ul> <li>People who want to just copy and paste stuff from Word - some of the WYSIWYG have a "strip Word crap out" button</li> <li>Alas, there's no module that does it right (been there, tried it all)</li> </ul> </li> </ul> <p><strong>Demo time</strong></p> <ul> <li>"Input formats" under "Admin" - filters are part of formats, so go looking there <ul> <li>If you go to modify a format, you can turn filters on/off (image resize filter, markdown, others can be added)</li> <li>Every filter can have its own configuration - things like maximum link text length</li> <li>"Rearrange" lets you specify what order the filters fire</li> <li>Check out the readme for filters; many of them will tell you what order they should be in</li> <li>Markdown should be before HTML for security, to strip out anything weird that Markup generates that's not on your whitelist</li> </ul> </li> </ul> Do It With Drupal: New York Senate 2009-12-08T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/09/do-it-drupal-new-york-senate/ <p><strong>Background</strong></p> <ul> <li>Transforming an anachronistic organization with Drupal</li> <li>In control of Republican party for 44 years</li> <li>Never had a CIO before January 2009 - focused on internal enterprise IT before</li> <li>People were cutting out and pasting articles from papers, scanning them, printing them, and distributing these reams of paper to offices every day - 1.5 million/year</li> <li>CRM (constituent relationship management) - command-line type system</li> <li>Intranet 1.0 - publishing info, no collaboration</li> <li>Desktop PCs</li> <li>Email 1.0 - intranet only, can't work from home</li> <li>Managing our own data center - not a core competency, but we do a reasonable job</li> </ul> <p><strong>NYSenate CIO Mission</strong></p> <ul> <li>Transparency</li> <li>Efficiency - more effective, less cost</li> <li>Participation - give people a participatory role in government</li> <li>Modeling 'best tech practices' for legislative bodies</li> <li>Organize/share data internally/externally, improve internal/external communications</li> </ul> <p><strong>Site dissection</strong></p> <ul> <li>No staff with web development experience in January; started out w/ consulting firm</li> <li>Built by April, launched in May</li> <li>Had to train hundreds of staff people to use it as content creators</li> <li>RSS feeds, Twitter, Facebook</li> <li>Popular/e-mailed/commented content, events, press releases/blogs/news clips</li> <li>Almost 100 sites in one: 62 mini-sites for senators, 40-ish mini-sites for committees, issues/initiatives, legislation, open senate, about, photos & videos, newsroom</li> <li>Previously, used proprietary CMS and external vendor - one party got better sites than the other, even with tax payer dollars covering everything</li> <li>Senator directory - shows RSS/Twitter/Facebook (when available - been actively promoting this)</li> <li>Senator pages: they stand on their own, all the info about the senator, he can post news releases/blog, news clips related to him, videos, RSS/Twitter/Facebook</li> <li>Senators can create stories with visuals for their pages</li> <li>Committees - each has its own stand-alone mini-site, with chairs, sign-up for newsletters, updates, video archive of meetings (will be live streams in January)</li> <li>Submitting testimony on-line available in January</li> <li>Issues & initiatives - marriage equality (aggregated all content from site), PSA (information about the census)</li> <li>OpenLegislation: information should be freely available, searchable, sortable, permalinks</li> <li>Open Senate initiative: OpenData (administrative info, how much who gets paid, what gets spent on what, etc.)</li> <li>Data available in different formats - PDF, CSV, TXT, XLS, DOC</li> <li>Contact forms for senators individually and for the site in general (press inquiry, webmaster)</li> <li>Photos and videos - recording and, soon, livestreaming everything</li> <li>Also available on YouTube; audio available on iTunes</li> <li>Working on adding automated transcription</li> <li>Blogger who works in the "newsroom" to create web-friendly content/press releases for the site</li> </ul> <p><strong>Modules</strong></p> <ul> <li>131 modules + core required: activism, petition, administration, gmap/location modules, content templates, interrelated date & calendar, imageAPI/imagecache, and more!</li> <li>Views: home page image carousel, event calendars, video/photo galleries, press releases, petitions, senators' pages</li> <li>CCK: constituent stories, senate districts, events, expenditure reports, photos, polls, press releases, video, senator, committee)</li> <li>19 custom modules - custom views/blocks for the most part, permissioning system for Office and Web Editors</li> <li>Upcoming: distributed authentication, ideas crowdsourcing, unified commenting</li> <li>Working on implementing SOLR search - Acquia is now hosting our site as of today, we've so far been using native Drupal search</li> <li>Embedded Media Field for video</li> </ul> <p><strong>Integration with other applications, social web</strong></p> <ul> <li>15,000 viewers on livestream.com for marriage equality debate</li> <li>Social bookmarking for all content on the site</li> <li>Some senators are using Facebook well and having open discussions with their constituents</li> <li>nysenate.gov was re-branding, now we use "nysenate" for everything</li> <li>API so developers can take any of our open data and do things with it</li> <li>Haven't made a final call about whether to keep using Discuss (external product) for commenting, or use Drupal's native commenting (there's a lot of configuring to do to get the seamless experience we want)</li> <li>Sign up for updates about anything on the website; integrating w/ Bronto for e-mail blasts</li> <li>Voting content up and down - needs to be elegant and incredibly easy, using a 3rd party solution right now and themed it like the main site</li> </ul> <p><strong>Everything else</strong></p> <ul> <li>New hosting - don't have the resources to host something like this; now moved to Acquia</li> <li>New domain name - wanted .gov to force the issue of what you can/can't say (previously, it'd been used to say partisan, sometimes nasty things)</li> <li>New policies (content creation, copyright, privacy, TOS, release of data, permissions)</li> <li>New processes (requirements gathering, quality assurance - people who had previously done phone service or legacy systems, content creation workflows)</li> <li>New talent (previously didn't have any web developers in-house, consulting contracts, staff)</li> <li>New tools (videoconferencing, IRC Chat, Central Desktop- lightweight project management, Redmine- bug/feature tracking, ticketing tasks)</li> <li>New training materials</li> <li>New communications/PR</li> </ul> <p><strong>Guidelines & miscellanea</strong></p> <ul> <li>No political or campaign information - conveniently, with .gov we're not allowed to</li> <li>Copyright policy - states can assert copyright if they want, but we went for CC BY-NC-ND for most things</li> <li>Privacy policy - mirrored White House</li> <li>Terms of participation - also mirrored White House</li> <li>Post all code to Github</li> <li>Use Daylife.com for replacement to paper clipping system</li> <li>Hope that other legislative bodies will be able to reuse code</li> <li>Had an Unconference (CapitolCamp) to hear what people think - some people were excited to pitch in, do things with API</li> </ul> <p><strong>Questions & feedback</strong></p> <ul> <li>Node Bulk Operations could be helpful</li> <li>Had to take screenshots for a while to allow very non-tech-savvy senior people to see private things without the risk of them doing anything wrong with it (finding a better way for this)</li> <li>Feedback from senators has been all over the map - actually the inverse of expected, where more Republicans were early adopters even when they weren't saying nice things about it in public</li> <li>More Republicans were effective using Twitter and Facebook, more internally organized to identify opportunities and make the most of them collectively</li> <li>Senators are learning that by making content easy for others to see and share, related content gets more views too</li> <li>Google Analytics stats available for all senators available; special reports around particular events</li> <li>1.5 mil page views a month, on a big day, 50,000 unique views (marriage equality)</li> <li>40-50 comments on a hot bill</li> <li>Not massive, shouldn't cause major performance headaches, but we had to do this in such a rush that we have a lot of refactoring to do to make sure it holds up okay under stress</li> <li>If there's something broken, blogs publish screenshots - we have to be very vigilant</li> <li>Want to make custom modules available; just haven't had the bandwidth, just have a code drop on github for now</li> <li>Building relationships with CIOs of various state agencies - some of them have a lot more developers</li> <li>PDFs have been the traditional publication format, including scanned documents; we've maintained that format for most data to accommodate the "I want to download and print" crowd - only last week got wifi in capitol building</li> <li>For born-digital content, making it available as feeds in ways that will make it easier for people to use</li> <li>More and more federal work being done in Drupal (whitehouse.gov); a couple state entities have put up rudimentary sites (liquor authority for state of New York)</li> <li>Contacted mostly about policy issues for other states - comment moderating, copyright</li> <li>Big national open data initiatives - community of practice around government transparency</li> <li>Haven't sat down with whitehouse.gov Drupal developers to talk about roadmaps yet - we feel overwhelmedly busy right now</li> <li>Third party to compare roadmaps, sort out implications for working together? It's a major undertaking</li> <li>Sunlight foundation - encourages getting data out in mashable form; they give us feedback</li> <li>Some senators have gamed the system by getting people to e-mail things they post so it gets on the "most e-mailed" list - this upsets other senators</li> </ul> <p>@ahoppin<br /> @NYSenateCIO<br /> NYSenate.gov/department/cio<br /> Hoppin - at - Senate.State.NY.US</p> Do It With Drupal: Fantasy Sites- Stack Overflow 2009-12-08T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/09/do-it-drupal-fantasy-sites-stack-overflow/ <p><strong>About Stack Overflow</strong></p> <ul> <li>Zero barriers to entry</li> <li>Reward good content by putting the best answers first</li> <li>Give people karma</li> <li>Destroy Experts' Exchange and answers behind a paywall</li> <li>Incredibly active, has sister sites superuser, serverfault - people collaboratively build great answers to pressing questions</li> <li>Spawning clones - can license software behind Stack Overflow</li> <li>"I could do that" tinyurl.com/bitquabit-so, tinyurl.com/mythical-weekend - this ignores how much "soft work" went into it, how the community would work, etc.</li> <li>24 hours of actual site-building behind this</li> </ul> <p><strong>Behind the site</strong></p> <ul> <li>You've got questions, people have answers, people can vote up/down, people can favorite, community moderation, collaborative editing - every question/answer can turn into a wiki page so people can edit/improve/tweak/correct content</li> <li>Lots of views of content - tagging, rich user profiles, badges, "karma crap" to get people hooked on contributing</li> <li>Mapping out architecture of site and how things are presented: <ul> <li>Current active list of questions - shows you votes, answers, how many views, tags</li> <li>Can sort by "karma bounty" (give up 100 points of my karma to person with best answer)</li> <li>Can sort by hot questions, current week, current month</li> <li>Newest, featured, highest vote-earning</li> <li>Tag cloud view of entire site</li> <li>View of all users and activity level</li> <li>Badges: all the different awards people have earned</li> <li>View of unanswered questions</li> </ul> </li> <li>"Ask a question" form</li> <li>Moderation tools - editing and flagging, and post an answer right below the question</li> <li>A lot of rich functionality, but totally dedicated to its core goal of Q&A</li> </ul> <p><strong>Drupal version</strong></p> <ul> <li><a href="http://www.array-shift.com/" title="www.array-shift.com">www.array-shift.com</a></li> <li>Can flag taxonomy tags that are interesting, and just see related questions</li> <li>Node add form: done some work to streamline</li> <li>BU Editor plugin - not WYSIWYG, but a tag helper - it puts the tags there, provides buttons</li> <li>Uses markdown, not HTML</li> <li>Markdown module in Drupal just provides an input filter</li> <li>BU Editor plugin, Markdown manager, Markdown = rough analog to Stack Overflow</li> <li>New module "Active Tags" - lets you accumulate tags as little flagged items rather than having them be in a list; just click a little X and it goes away - pure client-side stuff, nicer way of presenting the tag lists</li> <li>Turned it on, added some extra CSS to put nice boxes around it, that's it</li> <li>"Wikify" module lets you invert normal node access - like "Private" (checkbox for 'only people in specific codes can see this'), "Wikify" has the same thing, but the checkbox is for editing</li> <li>"Flag" module used for star, "user points" module awards karma points when something is starred</li> <li>(array-shift.com has major CSS problems in Safari)</li> <li>100 lines of code that intercept Drupal events and ward karma; could use "rules" module but it was easier to just do what I needed for this exercise</li> <li>"user points" automatically assigns roles when people pass karma thresholds</li> <li>"flag" is a "flag" module ... flag that lets you set up arbitrary toggle-able flags for things, even supports "when more than 10 people flag something, do X"</li> <li>Flagging something as offensive takes karma away (that's why there's a confirmation page to avoid mistakes), 10 offensive flags unpublish questions</li> <li>Module called "flag term" - taxonomy terms, that's how you track topics you care about</li> <li>Pure theming differentiates word "flag" and image of a star</li> <li>List of answers uses "node comments" module - stands in for built-in comments, has a content type "comment"</li> <li>Can have a view that shows the comments, where the arrangement is based on the rating</li> <li>Comments on comments wasn't implemented (Stack Overflow has in-line meta-discussion, we didn't have time to do this)</li> <li>Node Comment lets you use normal Drupal comments on things too</li> <li>User badges module exists for Drupal, but doesn't have enough API support to configure without a lot of work (Anyone want to rewrite User Badges from scratch?)</li> <li>Tabs for "newest", "hot", "etc" - each of these is a display on one view, set up with tabs</li> <li>Tags view is a view of taxonomy tags - sort by popularity/name</li> <li>Users - uses Gravatar module to pull in global avatar; set up user pictures like normal for Drupal, but Gravatar sits in the middle; generates unique geometric icons if you don't specify your own picture</li> <li>"Type to find users" - exposed filter</li> <li>Node Form Settings module - lets you do things like hide the revisions field, hide name of the title - exercise control over chunks of the node form</li> <li>Similar By Terms module used for "similar questions" - other questions tagged with the same tags</li> </ul> <p><strong>Stepping back for a moment...</strong></p> <ul> <li>This thing has Q&A, voting (vote up/down module), karma (user points module), moderation (simple tools for flagging), ability to track interesting taxonomy terms (flag module), community editing (wikify - people with permissions can say "this is an article everyone should update to consolidate discussion"), a bunch of views that slice and dice content</li> <li>Drupal didn't need a lot to do that basic functionality</li> <li>What it doesn't have: meta-comments (this could be done, just didn't have time), in-line editing and AJAXy goodness (when you hit "edit", you go to the Drupal edit page; in Stack Overflow the body turns editable), karma bounties (could be written), user badges/awards (user badges module is pretty rough, doesn't work so well beyond use case), user profiles are unthemed (Stack Overflow can pull in OpenID profiles, what you've voted on, chart of karma history, etc - there's tools for each of that; user points history module that will generate chart; views attach module - stack views onto user profile)</li> <li>Lots of polish isn't there</li> <li>Queued messages - if you're not on the site when you've earned a new badge, it'll prepare a message for you when you come back (maybe Activity module?)</li> <li>TOTALLY missing: performance tuning, no community around it (Stack Overflow has a great community - that's just as much work, and you can't install it)</li> <li>Doesn't have a theme that can be distributed. Ever.</li> </ul> <p><strong>Under the hood</strong></p> <ul> <li>20 contrib modules, 2 custom modules (one is just exported flags/views), 1 theme, lots of config work</li> <li>6 views with sub-tabs</li> <li>5 flags (just set up in flag modules user interface: favorite, wikify, offensive, interesting/ignored for taxonomy terms)</li> <li>3 behaviors: posting/editing, evaluating, filtering, suite of modules - vote up/down, voting API, user points; active tags, BU editor, markdown, markdown editor, node form settings</li> <li>Did not theme node form - CSS + those modules</li> <li>pathauto, token - clean URLS</li> <li>CCK isn't even installed</li> <li>2 custom modules: export (held exported versions of those views and flags), tweaks (intercepting voting API/posting hooks to give karma)- could've used Rules module to do this</li> <li>Theme has page templates</li> <li>Views have unformatted view, row-style template (has title, number of votes, times node has been viewed, listing of tags) - give me an array, I'll write markup</li> <li>Theming views was easy</li> <li>Custom node templates for question and answer nodes to position things correctly</li> <li>Flag module templates used to override things and get the little star</li> <li>Pre-process hooks to pull in user karma points, but no crazy theming hacks</li> <li>30 lines of PHP in a template file</li> <li>No overridden theme functions (user name, breadcrumbs, none of that)</li> <li>Extra credit: just learned about a module called "inline registration" - if user is anonymous, can enter desired username and e-mail at the top of the node form; when they submit, it'll create user account, node, and assign node to user account in one step</li> <li>Live preview of node editing can be done with "Live" module (used at groups.drupal.org)</li> <li>blittr vs arrayshift <ul> <li>Analysis and evaluation of what the sites do, and what modules there are - spent more time on Array Shift doing that evaluation, bigger site, more ways of looking at that data than what Twitter provides</li> <li>10 hours on that stuff</li> <li>Configuring the site - about 4 hours of going through and clicking on stuff in Twitter site, 3 hours for Array Shift</li> <li>After analyzing what Stack Overflow looks like, how it works - implementing it in Drupal with user points, flags, views was pretty straightforward</li> <li>Building the views took less time than doing it for the Twitter module - very clean mapping between the tabs and what they connect to</li> <li>UX mapped itself well to building some views</li> <li>Time for the more complex parts (custom code) kept going up for Twitter clone (7-ish hours) - kept going down for Stack Overflow (2 hours)</li> <li>Theming - tricky any way you look at it; 9-ish hours for Twitter, 13-ish for Stack Overflow</li> <li>Translating the info Drupal provides into the right markup for the theme</li> <li>This time is based on starting from a design in HTML + CSS (coming up with an idea would take a lot longer)</li> </ul> </li> <li>"Magic" category - took 11+ hours, creating the whole install profile</li> <li>Install profiles - use Aegir to install a copy of this on a sub-domain</li> <li>Writing the install profile took as long as writing the theme - now can spawn infinite copies of this website</li> <li>drupal.org/project/arrayshift - last pieces will be in place soon</li> <li>BUT there will not be a pretty theme with it</li> </ul> Do It With Drupal: The Economist 2009-12-08T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/09/do-it-drupal-economist/ <p>Rob <a href="mailto:robpurdie@economist.com">robpurdie@economist.com</a> - Scrum Practice Leader<br /> twitter.com/robpurdie<br /> facebook.com/robpurdie</p> <p><strong>Overview</strong></p> <ul> <li>Moving incrementally and iteratively to Drupal- making improvements as you move bit by bit</li> <li>User comments and recommendations served from Drupal, along with comment history pages, article comments pages</li> <li>Syncing data to Drupal every 5 minutes-- all content and comments</li> <li>Soon, article pages served from Drupal-- running into a few performance problems</li> <li>Next: channel pages served from Drupal, third-party services, registration</li> <li>We benefit from Drupal sooner by taking this approach; rather than building the whole site in the background and not benefitting until the end, this way we benefit from improved functionality sooner</li> <li>"The Economist is so old that the guy who started it had to be painted rather than photographed"</li> </ul> <p><strong>The old way</strong></p> <ul> <li>20-30 mil page views, 3-4 million unique visitors per month - lots of performance and scalability issues</li> <li>Want to build the foremost destination online for analyzing and debating global agenda; want to bring visitors into that debate; current system isn't enough to support this vision, that's why they moved to Drupal particularly for comments</li> <li>Increase publishing volume with user-generated content (more content w/o more costs)</li> <li>The old way: custom CMS built on proprietary stack (MS, ColdFusion, Oracle)</li> <li>Blogs were originally MovableType, now are all Drupal</li> <li>Broken waterfall processes meant frequent fire-fighting</li> <li>Needed to be more responsive to change, deliver business value sooner (projects take a long time to deliver value to organization), more sustainable, happier</li> <li>Making these changes incrementally and iteratively; "perfect is the enemy of better"</li> </ul> <p><strong>Why Drupal?</strong></p> <ul> <li>Looked at OpenCMS, Alfresco, Joombla, met with other newspapers, considered building a custom system, buying a proprietary system, or going open source</li> <li>Drupal as strategic fit: community and content publishing, robust development framework, development language, free software</li> <li>Strength of Drupal community</li> <li>Selling Drupal internally was a challenge: no suit-wearing Drupal sales force</li> <li>Attended DrupalCon Boston 2008, networking within community, engaging w/ Lullabot for workshops and training</li> <li>Proof-of-concept to reproduce article page in Drupal; how to use CCK fields to make a rich article content type</li> </ul> <p><strong>Using Scrum</strong></p> <ul> <li>3 million registered users, articles - data migration is daunting</li> <li>Manage the move using Scrum - selling it was easy with charts (developing business value sooner and throughout, management can see progress throughout, shining a spotlight on issues/dysfunction and attacking them along the way - risk decreases a lot faster)</li> <li>Take requirements, prioritize based on business value: which are the most important to organization, do those first</li> <li>Trained management team in Scrum, development team in Drupal, then started sprinting with help from consultants (2-week sprints, delivering something of value at the end)</li> <li>"Maybe not the largest Drupal project, but the most expensive" - lots of consultants</li> </ul> <p><strong>Integrating CMS's</strong></p> <ul> <li>Proxy approach: Drupal sends JSON over HTTP back and forth with Existing ColdFusion system</li> <li>Using native Drupal comments; comments have to be attached for nodes - there has to be a node for every piece of content on the legacy system</li> <li>Create nodes on the fly for every ColdFusion request that comes in</li> <li>Notion of proxy nodes is a pattern that comes up during integration of Drupal with other systems</li> <li>Voting API votes used for recommends; these are also attached to proxy nodes</li> <li>Started with proxy approach only; then moved to doing some with subdomain approach - hope to be doing neither soon after moving entirely to Drupal</li> </ul> <p><strong>Migrating data</strong></p> <ul> <li>Migrating and syncing data every 5 minutes - don't wait until the end to figure out that piece</li> <li>Table Wizard and Migrate modules</li> <li>Table Wizard writes Views integration for MySQL tables</li> <li>Migrate lets you migrate certain views, push into Drupal as nodes/users/taxonomy terms/etc</li> <li>Client is involved in how legacy data gets organized in Drupal</li> <li>Sat down with client to browse through content and decide what data needs to be moved and what it means</li> <li>Migrate keeps track of everything you've done, gives you a dashboard, tells you how far along you are - keeps a mapping table, legacy ID, you can check and see what came across and fix things; does your bookkeeping for you</li> <li>Drupal expects to have all the info it needs in its database; something getting published in Oracle needs to be in Drupal promptly - synchronization</li> </ul> <p><strong>Questions</strong></p> <ul> <li>How did you decide what to put into Drupal first? <ul> <li>Business value: comments, user profiles, recommends</li> </ul> </li> <li>How many Drupal servers does it take to scale that big? <ul> <li>Not entirely sure how many servers we have; let's say +/- 12</li> <li>Master MySQL server, a few slave MySQL servers - more important aspects have to do with Pressflow</li> <li>Pressflow = high performance variant of Drupal 6, completely API compatible with Drupal, but it takes some patches that are in Drupal 7 and moves them in to Drupal 6</li> <li>Use Varnish's full capability; Varnish = reverse proxy server, takes load off Drupal/PHP/MySQL</li> </ul> </li> <li>How do you stop people from trying to shove their emergencies into Scrum process? <ul> <li>Don't want people going directly to the team like they traditionally do</li> <li>Team, Scrum Master, product owner - customer, person who represents the client, has to have power to make decisions on behalf of organization, responsible for managing stakeholders</li> <li>Product owner comes to team w/ prioritized list of features for next sprint</li> <li>Had two teams in New York and one team in London all doing 3-week iterations in parallel</li> <li>Split up site into component parts: profiles, article pages, channel pages, had three product owners who had to manage stakeholders</li> <li>Works reasonably well; now we're doing two teams, one system that shows what all teams will do; someone has to keep "product backlog" in order, stopping people from shoving in their "one little thing"</li> </ul> </li> </ul> <p><strong>Features</strong></p> <ul> <li>Base theme is 960 px grid - laying out themes as a series of columns, all sections have to fit into the grid</li> <li>Selenium for "user journey" testing; building environments to help manage configurations</li> <li>Continuous integration using Hudson - needed a shared place where user tests could run</li> <li>Set of servers running on Amazon; Hudson sets off user tests every time there's a commit to the SVN repository</li> <li>Apache SOLR search hosted by Acquia- 100,000k articles that have to be available through site search</li> <li>People were unhappy with relevance of matches in old site search</li> <li>Acquia's hosted search service: really fast, good results</li> <li>Apache SOLR: can start filtering results further and further - faceting</li> <li>"How do I get SOLR running on my website?" - can self-host, but we went with Acquia</li> </ul> <p><strong>Questions</strong></p> <ul> <li>Other tools for managing people/process? <ul> <li>In Scrum, less about resource management - we just want dedicated co-located teams, don't worry about availability because of multiple projects: single focus</li> <li>Redundancy of function - generalizing specialists, specialists can create bottlenecks/risks</li> <li>"How many people need to be hit by a bus before your project fails?"</li> <li>agilemanifesto.org</li> <li>Use Google Docs a lot - project backlogs are all spreadsheets, a big wiki, project dashboards that "radiate information to the rest of the organization"</li> <li>Focus is on people, not tools</li> <li>Test-driven development, writing tests first can sometime be hard with Drupal</li> </ul> </li> </ul> <p><strong>Impediments to progress</strong></p> <ul> <li>Previous processes/structure/culture: command and control - hard habit to break</li> <li>Project manager telling people what to do and when to do it by - this is bad management; it has an impact on people</li> <li>We want self-organizing teams</li> <li>Previously, black box development: low visibility during the project process</li> <li>For Scrum, everything needs to be transparent, frequently inspect outcomes, adapt as we go - can't have a postmortem after everything's done, need to do that every day</li> <li>Hero developers who go off and solve problems heroically aren't compatible with Scrum</li> <li>Previously, developmental silos - departments based on function, these have been removed, but people still want to exist within their old silos</li> <li>People want to work on multiple projects like they used to, rather than working on a single project in a dedicated manner</li> <li>Previously, traditional line management: where you stack up in the line doesn't matter now, this was a big change</li> <li>Engineering practices (specifically quality) - big issue; Scrum is a wrapper for your existing engineering practices, doesn't say anything about testing</li> <li>Scrum assumes your engineering practices are great, or you'll make them great quickly</li> <li>You can say "we're going to do Scrum" but old habits die hard - focusing on what "done" means and providing a deliverable at the end of each sprint, have to deliver quality too-- have to go live successfully</li> <li>Want to deliver "potentially shippable code" at the end of each session - have to have a testing environment that's representative of live environment; been bitten by differences in configuration</li> <li>Everything has to be identical in the test environment (just with a scaled down number of servers) - same data center, same network issues, etc</li> <li>Hard to bite the bullet on the costs involved in building a testing environment, but it's important</li> <li>Hard to simulate kinds of traffic you get in production - plus, have to keep track of session cookies</li> <li>Form fields can hurt you - replaying post requests</li> <li>Cron jobs that run all the time - cron jobs can stack up and site starts to decay</li> </ul> <p><strong>Questions</strong></p> <ul> <li>Migration of real-time data: code changes are easier to migrate than content changes, what's the process for moving bits of content from development to production? <ul> <li>When there's content you need to work on for a while before it goes live, work on the live servers but make sure end-users can't see it</li> <li>Can use the unpublished flag on a Drupal node to do that; use "views" to see everything unpublished in sports category</li> <li>For a small team, that's a reasonable solution</li> <li>For bigger organizations with a lot of people working together, use "Workflow" module - nodes step through a series of states</li> <li>If it's a business requirement that content has to start off on staging servers and only then push to live, use module "Deploy" - push-button way to push nodes and their dependencies-- users, taxonomy terms, etc-- to another environment</li> </ul> </li> <li>Technical reason for using external searching - why use SOLR at all? What about Drupal search? <ul> <li>Drupal 6 is better than previous search mechanisms, but falls apart at a certain scale</li> <li>Slow queries, sub-optimal results</li> <li>A lot of non-Drupal people have worked on Apache SOLR, Drupal has integrated it well</li> <li>Self-hosting, or with Acquia - if you have the talent to run Java apps in your data center and keep it running, self-hosting is a great idea; will reduce latency</li> <li>Most of us are struggling to keep PHP/MySQL up as it is, this is where Acquia comes in</li> <li>Acquia service is pretty much plug-and-play</li> <li>Built-in search doesn't come with facets; can add on facets with the "Faceted Search" module</li> <li>SOLR is an enterprise search system; used by Netflix, Expedia, etc.</li> </ul> </li> <li>Could you use Views instead of facets? <ul> <li>There's a lot of overlap there, and different possible approaches.</li> <li>Full-text searches need SOLR rather than Views</li> </ul> </li> <li>Some of the wins you've had with Scrum/Drupal, and some weaknesses <ul> <li>Wins by development teams - prefer this way of working, where business people are only concerned with relative priority of requirements, have no say in how long it takes to implement</li> <li>Product owners prioritize "stories", developers size those stories relative to each other, rather than in hours of effort</li> <li>Stops the cycle of cutting corners on quality in order to get it done in a shorter timeframe</li> <li>Can't get productivity gains w/o changing the way you work</li> <li>Product owners need to be involved, can't change requirements mid-sprint</li> <li>Have "working agreements" - a kind of social contract</li> <li>Scrum isn't a prescription - you can pick and choose the parts that you want that meet your organization's needs</li> <li>Specific processes layered on top of simple framework of transparency, working together, and adapting to testing results, can vary</li> </ul> </li> <li>When will the Economist be fully on Drupal? <ul> <li>Description says "this month" - that was the plan</li> <li>People paying the bills get to make decisions; is it most important for us to go all-Drupal ASAP, or extend functionality of site to be competitive?</li> <li>Recent decision was for the latter</li> <li>Don't know when</li> </ul> </li> </ul> Do It With Drupal: Anatomy of a Distribution: Open Atrium 2009-12-08T00:00:00Z http://www.quinndombrowski.com/blog/2009/12/09/do-it-drupal-anatomy-distribution-open-atrium/ <ul> <li>Open Atrium is a "team portal in a box" (AKA Basecamp alternative)</li> <li>Can be behind a firewall, is free, openatrium.com</li> <li>Putting people in different groups</li> <li>Comes with six features:</li> <ul> <li>Blog: turned on/off on a group-by-group basis</li> <li>Wiki</li> <li>Calendar- iCal feeds too</li> <li>Shoutbox - like private Twitter</li> <li>Case Tracker - ticketing system</li> <li>Group dashboard</li> </ul> <li>75,000 downloads since July 17</li> <li>translate.openatrium.com - 31+ levels to various extents; get updates that don't overwrite your custom updates</li> </ul> <p><strong>What are people doing with it</strong></p> <ul> <li>Basic project management tool set</li> <li>Sprite-based theme (5.5 kb, 13.7 kb)</li> <li>Tailoring the system to your own needs</li> <li>Drupal Core, modules, plus Features module power Open Atrium</li> <li>People can customize their own dashboard</li> <li>Cross-posting to different groups disabled; also, Organic Group configuration much more simple (clear distinction between public and private)</li> </ul> <p><strong>Migrating into Open Atrium</strong></p> <ul> <li>It's just a Drupal site, so in theory you can turn on the Open Atrium modules around your existing site (but this isn't suggested) - use some other way (Feeds module?) to aggregate existing content and put it into the new framework</li> <li>Migration is a solvable problem, but probably not in a generic way useful for the core project</li> </ul> <p><strong>Extended features</strong></p> <ul> <li>Project status - time tracking and approval flow for a web shop</li> <li>World Bank did a highly customzied version; integration with Lotus Notes - their own internet behind a firewall; faceted search across their pre-existing staff directory; extended events system to help with scheduling</li> <li>Some custom coding went into the World Bank site, but a lot of what goes into it comes from configuring existing modules</li> </ul> <p><strong>How we use it</strong></p> <ul> <li>Over 50% tickets</li> <li>Use blog instead of e-mail for the most part</li> </ul> <p><strong>Atrium's rules</strong></p> <ul> <li>Works out of the box</li> <li>At least as simple as running straight from drupal.org</li> <li>Once you install it, it's clear what the next step is - unlike Drupal, where you install it and wonder "what now?"</li> <li>Works with Aegir</li> <li>Doesn't hack core or contrib (except occasionally- there's a hack to Views that makes it translatable)</li> <li>Doesn't do everything - does a few things that are widely useful for intranets, and you can extend it</li> </ul> <p><strong>Things we'll never do</strong></p> <ul> <li>Add a WYSIWYG; BUT, you can do that</li> <li>Add CVS integration (but see features.blackstormsstudios.com)</li> <li>Add Alfressco integration - but someone else has tried this</li> <li>Investing some time in Google Docs integration</li> <li>Won't ever clone Basecamp - but someone wrote a theme that looks a lot like it (drupal.org/project/atrium_simple)</li> <li>Add Sharepoint integration to base package</li> </ul> <p><strong>Things we will do</strong></p> <ul> <li>Clearer branding- Drupalisms & Atriumisms beware!</li> <li>Drag and drop dashboards (vimeo.com/7643255)</li> <li>Better admin experience (drupal.org/project/admin)</li> <li>Pluggable search</li> <li>Improved l10n support- Drupal only supports one language at a time, we want to fix this</li> <li>Rewriting core functionality - upgrading to Context and Spaces, when we say "beta", we mean it</li> <li>Rework the "user space"</li> <li>A calendar with a user story</li> <li>Rewrite Case Tracker - this powers the to-do system, people want to customize the states cases can be in, kinds of cases, etc. (github.com/miccolis/casetracker)</li> <li>This is going to be painful, we'll provide upgrade paths</li> <li>Move to drush make (drupal.org/project/drush_make)</li> <li>New on drupal.org: install profiles: lists of things that, all together, make a site</li> </ul>