a gitit front end for multiple research repositories

I switched a long time ago now to keeping all of my research, course notes, general reading notes, brainstorming notes, etc. in plain text files. I write them using the pandoc variant of markdown. And, I use Mercurial or Git to keep the repositories synced to Bitbucket. These are private repositories, but following on Caleb McDaniel’s open history experiement, I’ve been experimenting with using Gitit locally as a front end for one of my projects. It is based on pandoc, and essentially provides a wiki interface to a set of text files that are written in pandoc.

The most recent release of Gitit allows users to specify the default filetype of pages to be converted in the wiki. Originally, this was set to .page. This was fine for a new project, but I had tons of older repositories with lots of .txt files I didn’t want to change. So, I was excited to get the ability to specify the file type, which means I can use the front end on pre-existing projects filled with many folders and files.

What is more, I can use Gitit’s configuration file to simply spin up a wiki on any of my repos whenever I need or want the kind of search and display features that a wiki provides. I now have a folder named projects that includes all of my various research, teaching, and brainstorming repositories. Each of those repositories is source controlled with Git of Mercurial, and synced using source control to a repo on bitbucket:


and so forth.

In the conf folder, I have all the files needed for Gitit, including configuration files for each of the repos:


Using the configuration files, I can point Gitit to one set of static files and templates, one log file, and the appropriate repository of files for whatever I’m looking for. To do that, I change the default configuration file to search for the project folder, instead of the default wikidata folder Gitit usually uses. Then, at any point when I need to search for things have a different front end that the terminal window, I’ll spin up a wiki from the Projects folder with this command:

gitit -f conf/repoName.conf

I like this very much, because I’m not tied to Gitit’s default folder or filetype structure, I can work in my repositories the way I’m accustomed to, and still get the benefit of a wiki whenever I want it. Easy to do. Works like a charm.

Posted in Uncategorized

the meaning of de-tenure is typo

The University of Tennessee System has retracted the term “de-tenure” from the press release describing President DiPietro’s plan for cost cutting and revenue enhancement. The amended press release now begins with the following:

NOTE: A correction has been made to this press release regarding the review of the University’s tenure and post-tenure review process by deleting the inadvertent and incorrect reference to “de-tenure” under the sixth bullet of the president’s action plan noted below.

The new language in the sixth bullet point is:

Tenure and post-tenure review process: The UT System Administration, with involvement by the Faculty Council, will conduct a comprehensive review of the University’s established tenure and post-tenure review process.

While I think this retraction is a small victory, it strains credulity that a press release describing the plan presented to, and approved by the Board of Trustees would include such a toxic and alarming term as “de-tenure” by mistake. As a typo. I believe that the individuals who wrote, read, and approved the original language for release were transcribing the intent of the proposal to review P&T procedures at UT.

The System has had a procedure for post-tenure review, and even removal, since 2003. Cumulative Performance Review (CPR) is currently triggered after two consecutive years in the preceding five of an overall rating of 1 on a scale of 1-5 in the Annual Review process. Or, CPR can be triggered with three years in the preceding five of a combination rating of 1s or 2s. This is followed by a process of review by a specially-appointed committee of a faculty member’s performance.

Chancellor Cheek and DiPietro describe this process as ponderous or confusing or some such, and say that it is in need of change. And, this is brought up in the context of a plan for cost cutting. I see de-tenuring and firing-with-tenure as a distinction without a difference.

The larger context for the connection between the budget and seeking a path to dismissing tenured professors is Tennessee’s turn towards “Outcome Based Budgeting” which ties remittances to the University by the state to performance measures. This kind of fiscal discipline really has no place in public universities, who exist as a service to the citizens of the state. I can say with full confidence that the University of Tennessee Knoxville is more productive than it’s ever been by all kinds of rational measures. Our faculty are much more productive in research than in generations past. We graduate more students as a university, and have bigger incoming classes than ever before. We do so with demonstrably fewer resources. In fact, the College of Arts and Sciences would need close to 40 lines to get us back to the same level of FTE positions as we had in the mid-1990s. Additionally, quality education is an inherently inefficient process by the measures of capital. We give our most advanced and valued students (grad students) courses in a format that is most efficient at teaching them the values, methods, and content of historical practice. We do that in small seminars, not because they measure well on institutional efficiency, but because the seminar room in the most efficient means of teaching deep thinking, research, analysis, and the like.

This talk of productivity shows that the failed business model under operation here is the model of treating university education like a business. Neither Cheek nor DiPietro agree.

Posted in Uncategorized

On the meaning of de-tenure

Update: UT changes the press release I quote below to remove the word de-tenure.

President Joe DiPietro and the UT Board of Trustees voted yesterday to make the tenure process, tenured compensation, and de-tenuring a key element of its plan to cut costs and expand revenues in the wake of reduced state support for higher education.

The Board of Trustees held its winter meeting on February 25-26 in Memphis. In recent meetings, the System President DiPietro has been talking up plans to deal with the University’s “failed business model.” This model, according to DiPietro, is based on replacing state dollars with tuition dollars. I’ll start off here by saying that that is not a “business model,” but rather a response to a “political problem.” The governor and state legislature, over the course of the last 10 years, have failed to fully fund the state’s own formula that determines its contributions to the university system.

At the June meeting, DiPietro forecast a $155M shortfall over the next ten years due to falling state contributions to the system. That forecast shortfall at the winter meeting has grown to $377M, a convenience in the context of the President’s presentation of a plan to cut costs and increase revenues. For most of the last year, I believed that DiPietro was playing a shame game with the legislature and governor (whose family name adorns myriad buildings and programs at UTK), prodding them to fully fund the state’s own formula.

Until today.

The plan DiPietro presented, and that the Board approved, centers on six points to address tuition shortfalls, forecasted salary gaps, and decaying infrastructure in the system:

  1. Program realignment and consolidation: campuses will address low-performing programs to fund program reinvestment and perform a feasibility analysis and develop a plan for program consolidations to save costs.
  2. Allocation and reallocation plans: set aside 3 percent of base year’s total unrestricted E&G expenditures to address strategic initiatives, address deferred maintenance and identify cost savings from voluntary retirement and other workforce development options.
  3. Unfunded mandates for tuition waivers and discounts: the UT System Administration will study these discounts, estimated to be $7.4 million annually System-wide.
  4. Tuition structure review: Options include expanding differential tuition, increase enrollment of out-of-state students and the 15-4 tuition plan.
  5. Non-formula fee structure: Non-formula units (Health Science Center, Institute for Public Service and Institute of Agriculture) will review whether outreach efforts are capturing actual cost of delivery and determine whether fees should be charged.
  6. Tenure and post-tenure review process: To be conducted by UT System Administration and with involvement by the Faculty Council, to look at awarding of tenure, post-tenure compensation and enacting of a de-tenure process.

The first five points read like standard responses to fiscal cuts– realignment and consolidation of programs (read, cutting departments?), fee structures (raising student costs without raising “tuition”), moving money around, etc. The last one caught my attention.

What in the world is a “de-tenure process”, and what place does tenure, a bulwark of academic freedom and security for the risks of academic training and employment, have in a conversation on cutting costs and increasing revenues?

To understand more, I watched DiPietro’s presentation of the plan to the Board of Trustees. The President noted to the board that from now on, in response to this manufactured economic crisis, all actions by the System must either cut costs or increase revenue. Here is a transcription of DiPietro’s comments on point six, which begin at 24:01 in the linked video:

The last item on the list which will be led by the System is to take a look at tenure and post-tenure review process and it will be conducted by us at the System level. This will be a review and make recommendations on needed revisions regarding post-tenure review. I would like it to include adjustments for compensation for high performers in that post-review time frame and also to look at policy for termination based on unsatisfactory performance. I will do this in concert with the Faculty Council and a group of people. We will keep them tuned in. But the reality is the post-tenure review processes that we currently have from the standpoint of the CPR program is not very effective.

So, here we have it. In a move that I don’t know any faculty were forewarned of, DiPietro has opened the door for the Board of Trustees to undo the protections of tenure at the University of Tennessee.

I tweeted that transcription, which immediately elicited a harsh response from the academics I know over there because they see it for what it is… a blatant attack on tenure in the name of cutting costs. DiPietro responded to @historianess on twitter, who called “de-tenure process” what it plainly is, an attack on tenure, with this:

@historianess I fully believe in the concept of tenure.
2/27/15, 5:55 PM

I’ve asked him to clarify how that is, on twitter, but you know, he hasn’t answered yet:

@utpresidentjoe @historianess Could you explain, then, how a tenure and a de-tenure process has any place in a convo on cost-cutting?
2/27/15, 5:59 PM

This is in direct conflict with the Knoxville campus’s push towards being a  Top 25 public university, our current campaign to improve UTK. It’s in direct conflict with many of the most cherished values of the academy and higher education. And, I’d love to provide DiPietro’s explanation for how his belief in the concept of tenure squares with having a “de-tenure process” that is not connected to disciplinary issues. If he provides one, I will post it immediately here, or provide a forum for him to do so directly. I’d really like to know, in the context of budget discussions, what the meaning of “de-tenure” actually is.

Posted in Uncategorized

What contribute…

What contributes to this misconception (that the Internet is chaotic rather than highly controlled), I suggest, is that protocol is based on a contradiction between two opposing machines: One machine radically distributes control into autonomous locales, the other machine focuses control into rigidly defined hierarchies. The tension between these two machines—a dialectical tension—creates a hospitable climate for protocological control.

Alexander Galloway, Protocol (MIT: 2004): p.8.

I like this quote very much, because it articulates the structure of control not just of the distributed network of the internets but also of the early modern Spanish empire. Which is to say, Spain’s empire exercised long term control over its territories in the Americas (and Asia) without a standing army through the mediation of the judicial protocol. Judicial protocols mediated contending claims to centralization and decentralization, of the king’s authority and local custom; of jurisdictional hierarchy and jurisdictional flexibility/conflict; of legal predation and legal protection. The ambiguities of this judicial mediation likewise created “a hospitable climate for protocological control.”

Posted in Uncategorized

getting started with github and prose.io

This is a cross-posted piece from the blog for my Digital History seminar. While I wrote it specifically for my students in that class, I figure it might have slightly larger appeal to other professors out there considering using GitHub with a digital history or digital humanities class. It covers how to get up and running with the combination of github and prose.io as the framework for a collaborative course blog.

Up and running

As we discussed during our first meeting, participation on the class blog will be a key component of our learning process. It will extend our discussions before and after class, and provide a platform for much of the important writing and critique that we will do together. In this post, I will provide the promised mini-tutorial on getting up and running on the class blog. But, I would also like to write a bit about the systems that form the foundation for the site. So, first up will be a step-by-step guide for getting GitHub and prose.io up and running, followed by some further discussion of jekyll, git, and HTML and Internet technologies.


Our course site this semester is built on a set of free and open source technologies that evolved in response to the culture of open source software development over the course of the past few years. First and foremost among these is GitHub. As the company explains of itself,

GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers.

We won’t exactly be sharing code (though I hope by the end of the semester, a few of you will be). Instead, we’ll be sharing our explorations of digital histories. Github still works really well for this, because our entire course site is built using GitHub Pages.

Each of you will need a GitHub account in order to access the front end for writing our blog posts. This is as simple as signing up for any other web service.

Step 1.

Sign up for a GitHub account. There, that was simple.


Ok, it’s only slightly more complicated than that. Two things to think about– what do you want your github identity to be and what do we do about passwords? You may make your ID whatever you’d like as long as your classmates know who you are. The ID name is important, because it is what you will use for the author info on your posts. Passwords are more difficult. If you use a password that is robust (ie, long and made up of a variety of types of characters, ie alphanumerics and symbols), it will be hard to remember. If you use a password that is easy to remember it likely won’t be very robust. Might I suggest you consider using a password manager to generate passwords for you? If not, then at the very least do not use the same password for all of your accounts– email, bank, gmail, github, etc. Doing that makes you more vulnerable. Onwrad, though.

Step 2.

Email me your GitHub username, so that I can add it as a collaborator on the course site repo. That’s even easier, assuming you have my email address. You do, don’t you? It’s up top over there.


Once you have been added as a collaborator to the course repo, it will show up as one of your own repositories on your Github home page. With that, you could clone the repository onto your local machine, write your posts there, and push them back to the repository. I’m guessing that you didn’t understand pretty much anything that I just wrote there, though. So, to make all of this easier on you, we are going to use a web editing interface provided through a service called Prose.io. To use prose, do the following.

Step 1:

Make sure that you are logged in to your github account.

Step 2:

Navigate your browser to http://prose.io. On the landing page, click on the “Authorize on Github” button.


Step 3

Once you’ve authenticated, you will see a list of repos on your account. Unless you’ve gone ahead and created your own repos, the only one will be history580.github.io. Click on the repo, and you’ll find yourself in the _posts folder, with access to all the previous posts written for the site and the ability to create new ones.

prose folder

Click on the green button to create a new post.

Writing with Markdown

Prose.io was created by the web development team behind the government’s new healthcare.gov site, which provides a portal to resources and the exchanges mandated by the Affordable Care Act. It is intended to be a web editor that provides an easy place to write text snippets that will be inserted into web page templates. Thankfully, it does not require you to write raw HTML, but rather uses a simple language syntax known as Markdown. Markdown was created by John Gruber with the intention of making it easier to write content for the web, and it has been an almost unbelievable success. There are now many favors of Markdown in the wild, but all of them share some basic syntax originally defined by Gruber. This syntax allows you to write in plain text, but signal to a processor how the text should be transformed into more semantically rich HTML. The syntax is not complicated, but does require a little bit of a learning curve. With it, you will be able to make links, embed images, write footnotes, use block quotes, produce ordered and unordered lists, and clearly define code snippets.

You can find Gruber’s original documentation on Markdown here.

I’m also writing a complete list of options for our version of Markdown here. Once it’s done, you can simply print it out as a cheat sheet.

There is also help from within prose.io by clicking on the ?.

Back to creation

After clicking on the new button, you may enter your markdown-flavored text into the editor directly, or paste it in from a plain text file you wrote on your computer. If you go this route, it’s important to use a text editor and not Word.

Note too that you can click on Edit to revisit a post, or the trash can to delete it.

In any case, there are three last steps to publishing your post.

  • Enter a title. Click on the lightly-shaded word Untitled and give your post a title. It should be descriptive of the content. Please don’t go the lazy route of naming your post something like “Post 1” or “Print Proposal”.

  • Click on the metadata button on the right side of the screen. This will bring up a dialogue box. Fill your github username in as the author of the post. This is the name that will show up on our homepage listing of new posts, and also on the post itself.

meta button

meta box

There are other metadata possibilities for that can be entered in the box, but we can leave that discussion till later.

  • Save your changes. Really, what you’re doing in saving is committing your changes to the repository, which is tracking every change made to the files on which the site is built. Each commit produces a new state. Make sure to enter a short message into the commit box documenting the changes that you made. If you don’t enter anything, prose.io provides some boilerplate that will be recorded.

commit dialogue

Note that the metadata that I’ve set to automatically generate, along with the metadata that you’ve entered, shows up appended to the top of your post between a set of triple dashes.

layout: post
published: true
title: your title
author: your name

That information helps jekyll create the site by setting important variables and choosing the appropriate template to put the new html into.

How it works

I was going to end this post with a bit on the architecture of this site, and how it works so that you understand how our site is made. Instead, I think I’ll encourage you to do two things:

  1. Right click on this page and choose ‘View Source’ and take some time to look at the html. Where did the content I wrote for this post get inserted? Where did the rest of the information come from? What does it do?

  2. Take some time to poke around the files on the course site repo, available to you through github, and see if you can intuit/figure out what each of them are doing. What do the various folders do? See what you can figure out. The jekyll documentation might be a good source.

Looking forward to your own first posts.

Tagged with:
Posted in Uncategorized

breaking bad and the cancer of neoliberalism

People certainly have written too much about Breaking Bad. And, no I don’t ever write about these kinds of things on this blog.

But Breaking Bad holds a dear place in my Albuquerque-missing heart.

Our house in Albuquerque was scouted as a possible location for Ted Beneke’s fall, but we missed out on that brush with fame. A fair bit of Season Five was filmed at the end of our street.

It’s not just proximity to the show, though. For me Vince Gilligan and the show’s production has shown Albuquerque and New Mexico as a place of beauty. For the landscapes involved, meth production and distribution are distractions to beauty and perseverance. The skies. The wind. The browns. And the saturating light.

I moved to Albuquerque in 1997 for graduate school. I chose UNM for what, by the standards of advice I give to students now, were very wrong reasons. Northern New Mexico reminded me of parts of Ecuador’s Andes. I wanted to be near that. In one of the first weekly issues published after I moved of Albuquerque’s weekly paper, the Alibi ran the results of a contest for a new nickname for the Duke City. I don’t remember what won, but runner ups included “Stripmallbuquerque” and “Shit Hole.” I laughed, but quickly came to see something else. I always liken Albuquerque to a dandelion growing through a crack in a worn piece of pavement. One can look at that and see failing infrastructure and weeds. Or, one can see perseverance and beauty in a stark landscape. That’s how I saw Albuquerque.

And that’s what Albuquerque does for a dark show set in a land of drenching sun.

So, I’m going to write about Breaking Bad a bit as the final season comes to a close, and probably in conversation with the show that has marked perception of my new city, Baltimore’s The Wire.

At the start of this final half season, one of the things strikes me most about the arc of Breaking Bad is the relationship between Walt’s cancer and involvement in the drug trade. Walt’s relationship to cancer is an inverse of his relationship to meth. Meth is a social and familial cancer, and it destroys everything around him. But it doesn’t destroy him. When he’s cooking he’s healthier, as if the act or decision itself is what staves off death. And, when he leaves the business, his cancer returns. The system he finds himself in is either one of corporeal decay or social decay. And, in both cases those processes are moderated by markets (one regulated, the other not).

In the beginning of the show, Walt was compelled to enter the drug trade in search of cash– to protect his family and to fund the exorbitant costs of cancer treatment. He becomes a knowledge worker in the unregulated, neoliberal market of illicit drugs in order to survive the regulated pharmaceutical cancer economy, at least long enough to do for his family what he believes needs to be done.

This decision, which sparks the emergence of Heisenberg, shifts Walt’s existence from one in which property rights (including the intellectual property rights of his wildly successful former friend and business partner) mask the social and personal violence of markets to one in which the reality of that violence is laid bare. As Walt embraces that violence, he gets relief from the compulsion of the licit pharmaceutical market and the cancer goes into abeyance. And yet, Walt has to embrace that violence to escape a repetition of the alienation of his labor that put him in a high school classroom in the first place. And so he rises as an antihero, who uses the violence-laid-bare of neoliberal markets to overcome alienation. It’s ugly, but its the underlying truth of neoliberalism everywhere. The cancer that symbolized his alienation is shifted to damaging, parasitic amorality at a social and familial level because that is what neoliberal markets do.

Some complain that, like Mad Men of late, there are no likable characters in Breaking Bad. And, maybe, as with Mad Men, that needs to be, because what the meth trade does is to show markets in their true colors, bathed in gorgeous light and framed by unending blue skies of expansive possibility.

Posted in Uncategorized

forget the MOOA, how about admin by algorithm

Benjamin Ginsberg has made the completely reasonable suggestion that we forget the MOOC, and instead turn to Massively Open Online Administrations (MOOA). After all, administrative positions (and costs) have far outpaced growth in full time faculty positions, and all those administrators are facing the same issues with the same set of neo-liberal presuppositions. I like it.

But it got me thinking.

Why entrust to even a single group of administrators decision-making ability for hundreds of campuses? We can engage in a little creative destruction in the interest of leveraging the efficiency gains of an algorithmic approach to administrative decision making. No need for any humans to be involved at all. Netflix, eHarmony, Amazon and the rest of our technological overlords have already showed us the magical future of “the algorithm.” Sure, Siva Vaidhyanathan has warned us about such googlization. But, in the case of university administration, I can’t see how much more harm could be done by automation.

So, let’s design this algorithm.

Here’s a start:

adminHealth = 0
Policies = [policy1, policy2, policy3, policy4]

def policyChange(policy):
    x = policy()
    if x == helpsFaculty:
        return adminHealth -= 1
    elif x == helpsStudents:
        return adminhealth -= 1
    elif x == helpsAthleticDepart:
        return adminhealth += 3
        return adminHealth += 5 

while adminHealth <= 1000000:
    for policy in Policies:

Please, add some new functions so we can get this algorithm right. That way, we can dismantle the university much quicker, and the denizens of the algorithmic future can feel good about themselves as they save us all from the inefficiencies of, you know, values, morals, leisure, depth, thought, consideration, and all the rest.

Posted in Uncategorized

Hacer juicio ú dictamen acerca de alguna cosa... significando que el objeto excita el juicio ú dictamen en la persona que le hace.

Deducir ante el Juez la accion ú derecho que se tiene, ó las excepciones que excluyen la accion contrária.

RAE 1737 Academia autoridades
Buy my book!

Chad Black

I, your humble contributor, am Chad Black. You can also find me on the web here.

Get every new post delivered to your Inbox.

Join 60 other followers