I’m in ur code, reviewin’ ur ajax

December 6th, 2011
CR day!
  • various review
  • checked out johnduhart’s neat $wgDebugToolbar thingy — needs some tweaks but looks awesome
  • Reverted some tweaking of pagers which has caused some forms to break as parameter names are changed
  • more review
  • more bugs
  • poked at some search interface issues for mobile w/ patrick
  • test cases for a bug about edit section extraction
  • more stuff
  • walked petrb through initial ajaxification of OnlineStatusBar extension :D
  • got a great list of small-medium projects from Erik to look through

Math goodies and other work

December 5th, 2011
Queued up work from last week:
Done today:
  • sent hopefully helpful links to inquiry about updating an extension to use ajax for state updates
  • sent some comments/updates on potential changes to image metadata storage
  • various mailing list updates
  • trying to get de.planet.wikimedia.org updating bug sorted out — can’t get into RT to file an internal bug, trying to get ops to install the password reset extension for it or something. Mutante is doing some tests on the planet server to see if we can resolve… we think we got it, at least as a workaround.
  • thinking about replacing Planet with own aggregator. :P
  • lunch w/ features & community teams
  • commented on need for user self-deletion on bug report

BugTender updates

December 5th, 2011

Can now post comments on bugs! Auth prompt at post time. No offline queuing yet.

Bug list defaults to showing recently filed bugs. Various search and sort options, incomplete but a start. Doesn’t handle huge return lists well; server gives chronic order oldest first, we want the opposite.

Initial appcache for offline usage. Limited as there’s no persistent data cache yet, but you can load the page when offline.

Restructured bug view to put comments first.

More details in bug list items.

20111205-092116.jpg

High-density displays: mobile and beyond

December 4th, 2011

High-density displays are already here on small screens, and should start hitting tablets, laptops, and desktops in the next couple years. Apple’s iPhone 4 and current-model iPod Touch sport a best-of-breed 326dpi display, while lots of Android and Windows Phone devices have an intermediate 240dpi resolution. With the new Galaxy Nexus, Android’s entering the 320+dpi world as well.

The most immediate effect is of course that text renders as sharply on screen as in print. As a web-based application, Wikipedia gets this über-shiny text rendering  “for free”… but for graphics, we’ll have to work a little harder.

Most images you’ll find on the wikis are either largeish raster images that are being scaled down for in-article viewing, or scalable SVG drawings that are being rasterized to PNG on the servers for broadest browser compatibility.

Unfortunately neither automatically takes advantage of a high-density display!

For SVG drawings, we can simply start serving the original SVGs instead of the rasterized PNG images, and they’ll look lovely (images from Gas giant article mobile view, rendered on an iPod Touch, with high-res versions swapped in by this bookmarklet):

We’ll need to make sure we can do this with a good fallback to PNG however — while all major desktop and mobile browsers in their *latest* versions support SVG, there’s still a lot of Internet Explorer users and Android users who can’t view SVG. Some less capable mobile devices may also be unable to handle full SVG (Android is rare among smartphones; SVG support is missing on most Android phones today but is present in Android 3.x tablets and upcoming 4.x phones).

We also need to make sure that file sizes and rendering times are reasonable; large maps might be very expensive to transfer and render client-side when we really only need a small map. See my SVG-Open 2009 slides for some data on PNG vs SVG sizes and the need for work on shrinking files.

 

Other files are usually available in a size larger than they’re shown on default-density screens, so putting a 1.5-sized or double-sized thumbnail into the same screen space makes it match the screen’s actual density. This is particularly useful for diagrams that were created as raster images instead of SVGs, since they often contain fine lines and text which benefits from the full resolution:

SVG and PNG images used for icons and diagrams are probably the highest-priority for high-density images. Photographic images can also benefit, but usually scale up better than line drawings and text because they have fewer sharp edges to begin with.

For raster images of all types, doing dynamic replacement is extra work; CSS or JavaScript can be used in various circumstances but it can take work to make existing code using <img> tags “just work” without loading up extra versions of images, or loading higher resolutions than you need on other devices.

Math equations are another thing; currently we render most math equations to PNG images (via LaTeX); these also render poorly compared to other text on a high-density display. The best solution for this appears to be to migrate towards client-side math rendering based on the MathJax library; using MathML or HTML and CSS, this system is able to use the browser’s native text rendering much more effectively for math.  Equations rendered this way look stunning at high resolution!

 

Friday updates

December 4th, 2011
Looks like my Friday notes didn’t make it out — probably missing a few things from the tail end.

  • started on message documentation (including some screenshots) for wikipedia mobile app on translatewiki.net
  • participated in mozilla open web apps test day; mostly things didn’t work for me :)
  • test & fix for regression in jquery.delayedBind
  • participated in mediawiki 1.18.0 bug triage session, commented on some bugs

Starting work on a decent center for a notification framework is going to be very fun — expect more updates from Jorm’s team on this.

Daily grind

December 1st, 2011
  • monthly metrics meeting
  • more internal banner feedback :)
  • tossed some mobile feedback around
  • various bugs & a little code review
  • Tested new mobile beta bits; fullscreen search works ok on Firefox Android except for old known problems triggering on keypress, yay! Fails to show results on Opera Mini.

Wenesday’s updates

December 1st, 2011

Wednesday’s updates:

  • followup reviews & tracked down a 1.18 compat bug for MaxSem’s ApiSandbox (now live – try it out!)
  • chatted w/ some folks at the office about Amazon Kindle Fire and how it handles our site & app
  • while other things were running, attempted to build Firefox for Android to help test bug fixes. Can build, but it crashes my phone. Yay?
  • Benefits meeting at office.
  • some misc bug & patch work
  • Confirmed that the lang attribute on interlanguage links helps screen readers (at least iOS’s VoiceOver screen reader accessibility mode), went ahead and applied that.
  • More internal fundraising banner idea feedback.
  • Commented on a number of threads, which I have mostly forgotten. Not at key turning points yet. :)
  • Found an apparent regression in IE 10 platform preview which breaks one of our tests, could break various JS things :P Reported upstream through Microsoft Connect.

 

See ya later, LATER

November 29th, 2011

There was a question on wikitech-l about bugs resolved LATER and what to do with them. As part of my review time today I went through a bunch of them to see if that was further action; a number of other folks participated via IRC.

Between things that could be reopened cleanly (sometimes with new dependencies) or closed out as already-fixed, WONTFIX, or INVALID, we took it down at least from 324 LATERs to about 250. Nice!

Also poked some miscellaneous bugs and a couple code review bits.

Gave some internal feedback on a test fundraising banner.

Hopefully helped some guy in Spanish on IRC with his group permission question, but might have just confused him further. We’ll see. :)

 

Spare time spent tonight on further work on BugTender:

  • basic cleanup to search screen
  • ability to select a set of resolutions (‘open’, ‘fixed’, or ‘other’ pseudo-states covering several resos each)
  • can sort bug list by id, creation date, last mod date, prio, resolution. prio & reso are alpha order. Dates may not work in some browsers.
  • URL and bug links in comment text — bug links open the bug in the app, URLs open in separate window/tab

Yay productivity

November 28th, 2011

Today:

  • review & feedback for MaxSem’s API Sandbox extension
  • a few misc bits of review & bug trackery
  • did some more research & testing on high-density displays (iPod Touch w/ Retina Display, fake HiDPI mode on my Mac)
  • Gave Patrick some feedback on finding some login-related stuff
  • Finally got rid of the horrid extra math rendering options (for 1.19 track)
  • Found out how Blahtex gets its baseline information from dvipng, planning adding that to texvc / Math extension
  • Looked into doing double-density math renderings for high-res displays, was diverted back to more future-friendly MathJax for density-independent client-side rendering \o/
  • Prepping some notes for RFC page & bug updates about MathJax
  • Hoping to get more feedback from folks with experience with this tool

If daily updates like this are super uninteresting to people, or vice-versa, let me know as well. :)

Introducing BugTender: mobile Bugzilla frontend

November 27th, 2011

I’ve been looking for a good solution to catching up on bug reports on my morning commute. The regular Bugzilla user interface doesn’t scale down well to mobile, and using the regular web interface is too flaky when connectivity goes in and out.

Enter BugTender: a preliminary HTML web app with a mobile-friendly interface to browse (and later, comment on & triage) your bugs.

Using HTML and jQuery Mobile lets the app run on multiple platforms and browsers — it won’t be tied to just WebKit, and works in a regular desktop browser as well. Wrapping that in PhoneGap for a ‘native app’ will allow further integration, such as access to the camera and photo gallery on iOS and older versions of Android — think uploading screenshots straight from your phone about problems in the browser!

Anyway, that’s how I spent chunks of my Thanksgiving weekend… more to come. :)

 


I love Wikipedia!