Jump to: navigation, search
No photo
James Montalvo

About me

I'm a MediaWiki user, administrator and developer. Darenwelsh and I introduced Semantic MediaWiki at NASA's Johnson Space Center to solve massive knowledge management problems within the EVA community, and we're currently trying to expand that to other organizations within Flight Operations.

My work

My day job is at NASA training astronauts to perform EVAs (spacewalks), writing procedures for those EVAs, and helping astronauts execute the EVAs as an EVA flight controller in MCC.

Contact me

My extensions and other MediaWiki development[edit]

Software I've created:

WatchAnalytics -- SemanticMeetingMinutes -- Wiretap -- CopyWatchers -- ParserFunctionHelper -- Wikify -- Sharepoint-to-MediaWiki

Extensions I've taken over as maintainer:

Talkright -- Header Footer -- NumerAlpha

Extensions I've made substantial additions to:

Approved Revs (see my fork on Github, hoping to get it merged into WMF Gerrit summer 2015)

Software in development:

ExtensionLoader -- AvoidMediaCache -- Botcast -- Meza1

An overview of my MediaWiki career[edit]


In late 2011 one of my coworkers, Darenwelsh, attempted to convince me that it was a good idea to organize the vast quantities of EVA knowledge using a wiki. I was not convinced, thinking it a more structured database method would be more effective, but I setup an installation of MediaWiki for him to experiment with. In an attempt to meet him halfway in the wiki-vs-structured-database debate, I installed the External Data extension and created a very simple CRUD interface to populate our structured data.


The EVA Wiki took off as an unsanctioned but incredibly useful source of knowledge. By the end of the year it has a relatively large user base and many regular contributors, despite not being an approved project. To get to this point we created a product with so much useful content that was so easily accessible that people couldn't help but use it. Once we had that critical mass of content, other people found it so useful that it bothered them when they didn't find the information they were looking for on the wiki. This encouraged those people to contribute. Often it started with them coming to us with statements like "hey the ABC page doesn't have any info about XYZ...can you add it?" We'd respond to this: "no, but you can".

The visibility of our wiki spread by word-of-mouth. Since we weren't an officially approved source of information we didn't want to publicly announce our existence. Instead we told people about it, told them it wasn't official, but that if editors were doing their jobs they should be citing official sources. In time, management learned about the wiki, and many other problems came up. Initially it seemed like we might get shut down, but then out of nowhere the opinion shifted and instead management wanted the wiki as the primary knowledge management tool.


With our wiki as an approved project we had to get it put on an approved server. The bureaucracy involved with that took the first half of 2013. See NASA Embarks on Epic Delay (The Onion). There were also technical issues to accompany the political. I became a MediaWiki developer at this point by necessity, as we upgraded from MW 1.17 to 1.20 (then 1.21), and several of the extensions we relied upon required modification. Additionally, I created the CopyWatchers extension to allow our Meeting Notes form (which uses Semantic Forms) to automatically add watchers from pages related to the meeting minutes.

As transition to the new server was completed the concept of spreading the good word of MediaWiki to other organizations became a reality. One of the major issues involved with that is easily converting existing documentation into MW syntax. The first thing I'm working on there is a direct conversion of Sharepoint Wiki into MediaWiki. This should be complete soon. It currently works, but is an awful kludge. After it is complete I'll likely make it work on Microsoft Word as well (it probably already does), and make it crawl websites other than Sharepoint and scrape content.

After we transitioned to the new server, new usages of the wiki were requested. One was to use it to manage our lesson plans. These documents required more control than plain MediaWiki, so we started looking at the Approved Revs and Flagged Revs extensions. Unfortunately neither completely satisfied our needs. As such, I overhauled the permissions structure of Approved Revs, making it possible to specify exactly who can approve certain pages. At this writing these changes have not been rolled into the version of Approved Revs available on, but can be attained from my github.


In June I attended the Enterprise Wiki Summit at ConocoPhillips in Houston along with my colleagues User:Darenwelsh and User:ScottJWray. This conference opened our eyes to how many organizations are using MediaWiki, and how these organizations should be working together rather than operating in silos and recreating a lot of the same work. This conference led us to create, which we started using as a way to demonstrate enterprise usage of MediaWiki. In December we co-hosted another Houston meetup with Chevron, which attempted to further the goal of collaborating across organizations.

In July we noticed on our wiki that many people were not reviewing changes to pages they were watching. We visualized the state of all watchers of our wiki to show how the "crowdsourced accountability model" was not working for us. To address the issues I created Extension:WatchAnalytics starting in August. Major developments started in late October.

In October 2014 User:Darenwelsh and I attended SMWCon Fall 2014 in Vienna, Austria. We presented the History of the EVA Wiki, our method of recording meeting minutes in MediaWiki, and our improvements to Extension:Approved Revs.

In late 2014 my colleagues User:Darenwelsh, User:Ssjohnston, User:ScottJWray and Costa Mavridis started working on proposals to get funding from within NASA to work on a number of MediaWiki-related projects. None in 2014 were successful, but some were considered strong proposals which we will be continuing to pursue in the future. One project was called Wiki Conversations.


In progress...

  • Many more improvements to WatchAnalytics
  • Attended SMWCon Spring 2015 in St. Louis (presented WatchAnalytics and did a tutorial on creating a basic parser function)
  • Attended Wikimedia Hackathon 2015 in Lyon, France
  • Hosted a knowledge management event at NASA JSC on June 9th and discussed WatchAnalytics (see video)
  • Given maintainer status for the NumerAlpha extension on Gerrit
  • Finally getting ApprovedRevs fork merged
  • Presented about EVA Wiki at SGT Tech Day