User:Jdforrester (WMF)

Jump to: navigation, search

James Forrester
Product Manager, VisualEditor team, Wikimedia Foundation
James Forrester, Product Manager, VisualEditor team

About me

I've been a Wikipedia editor since 2002 on the English Wikipedia and a few other Wikimedia projects (see my personal account). In May 2012 I joined the Wikimedia Foundation as the "Product Manager" for the VisualEditor team.

My work

My job is to help make sure the VisualEditor team understands what the community wants and needs, is focussed on the things that matter, and is engaging with and understood by the community.
Disclaimer: Although I work for the Wikimedia Foundation, contributions under this account do not necessarily represent the actions or views of the Foundation unless expressly stated otherwise. For example, edits to articles or uploads of other media are done in my individual, personal capacity unless otherwise stated.

Contact me

  • E-mail:
  • IRC: "James_F" on freenode
  • Skype: jdforrester
  • GTalk IM:

Current projects[edit | edit source]

VisualEditor[edit | edit source]

Dialogs now use a "pending" animation of moving diagonal lines such as in the template and the save dialogs, instead of the previous animated GIF images. The animation of opening a template dialog should now be smoother and not open and then close a tray. The content language editor, soon to be released as a Beta Feature, now uses a simplified ULS interface rather than the whole one. A careful audit of all Wikimedia wikis led to fixing broken local MediaWiki:Common.js (and similar) pages; these were each fixed to ensure that VisualEditor runs on all of them (bug 60842).

Edit notices for globally-blocked users and cascade-protected pages now show correctly (bugs 53009 and 53893). The "Print/Export" MediaWiki tools are now hidden whilst VisualEditor is active (bug 57940). The preference to not warn a user when they leave the editor mid-edit is now functional in VisualEditor too (bug 51057). When editing categories, you can now set or change the __HIDDENCAT__ and __NOGALLERY__ attributes if you so wish (bugs 57169 and 57170). In preparation for VisualEditor working better on multi-script wikis like Chinese, on those wikis you can now set or change the __NOCONTENTCONVERT__ and __NOTITLECONVERT__ attributes (bugs 57171 and 57172). The dummy "wikihiero" hieroglyphics editor, available on testing wikis as a demonstration editor, now updates live, like the formula editor did before. 

VisualEditor now uses Parsoid, not MediaWiki, to preview fragments of the page (like new or updated templates); there should be no obvious changes, except a slight speed improvement (bug 48524). The calls to parse edit notices and templates were corrected to know the context of the page, and not just mysteriously claim to be run on the API (bugs 50172 and 63600). Similarly, pre-save transforms (like converting template substitution calls or the "pipe trick") are now performed when the edit's preview of the wikitext diff is shown in the save dialog (bug 52345). The language links page is now populated for non-articles like categories and user pages as well as articles (bug 49226).

A bug with an improvement to inspectors' support for forced language directionality was fixed and released early to avoid breakage (bug 64072). A bug with the forthcoming mobile integration of VisualEditor that meant re-opening the editor would break nastily was also fixed and released early (bug 64034). Another bug with mobile which meant that the code to fetch a new edit token if your edit timed out was missing, breaking the editor; this was fixed (bug 64267). VisualEditor now works around a browser bug in Chrome that wrongly doesn't show a bullet for blank bullet list items other than an image inside it (bug 64117).

A bug that meant that existing <strong> tags on the page would make adding boldness to a selection irreversible was fixed (bug 64244). Some fixes were made to the soon-to-be-arriving citation dialog (bug 64199).

In preparation for the formula editor being made available to all users, some minor issues were corrected, including inserting a new formula into a "block slug" (bug 58286), trying to insert a formula when a template or reference was selected would crash (bug 56644), and inserting one when selecting an image would cause the formula to try to be inserted into the image's caption (bug 58045).

An issue that meant that clicking out of an inspector wrongly caused the selection to get restored was corrected (bug 63906), as was an unrelated issue that meant that inserting a new reference would move the cursor to the top of the document (bug 64041); this last one was released early to prevent disruption for a key community workflow. A bug that meant that one of the FlaggedRevisions-related checkboxes didn't show up inside VisualEditor's save dialog was fixed (bug 59608). VisualEditor now updates local Javascript variables to help other gadgets that use the page revision IDs (bug 56532).

You can monitor the live results of the automated browser tests (triggered every twelve hours) on the server. A complete list of individual code commits is available in the 1.24/wmf2 changelog, and all Bugzilla tickets closed in this period are on Bugzilla's list.

Parsoid[edit | edit source]

March saw the Parsoid team continuing with a lot of unglamorous bug fixing and tweaking. Media / image handling in particular received a good amount of love, and is now in a much better state than it used to be. In the process, we discovered a lot of edge cases and inconsistent behavior in the PHP parser, and fixed some of those issues there as well.

We wrapped up our mentorship for Be Birchall and Maria Pecana in the Outreach Program for Women. We revamped our round-trip test server interface and fixed some diffing issues in the round-trip test system. Maria wrote a generic logging backend that lets us dynamically map an event stream to any number of logging sinks. A huge step up from our console.error based basic error logging so far.

We also designed and implemented a HTML templating library which combines the correctness and security support of a DOM-based solution with the performance of string-based templating. This is implemented as a compiler from KnockoutJS-compatible HTML syntax to a JSON intermediate representation, and a small and very fast runtime for the JSON representation. The runtime is now also being ported to PHP in order to gauge the performance there as well. It will also be a test bed for further forays into HTML templating for translation messages and eventually wiki content.

ResourceLoader (maintenance-only)[edit | edit source]