[Wikitech-l] Audio/video updates: TimedMediaHandler, ogv.js, and mobile

2015-06-11 Thread Brion Vibber
I've been passing the last few days feverishly working on audio/video
stuff, cause it's been driving me nuts that it's not quite in working shape.

TL;DR: Major fixes in the works for Android, Safari (iOS and Mac), and
IE/Edge (Windows). Need testers and patch reviewers.


*== ogv.js for Safari/IE/Edge ==*

In recent versions of Safari, Internet Explorer, and Microsoft's upcoming
Edge browser, there's still no default Ogg or WebM support *but* JavaScript
has gotten fast enough to run an Ogg Theora/Vorbis decoder with CPU to
spare for drawing and outputting sound in real time.

The ogv.js decoder/player has been one of my fun projects for some time,
and I think I'm finally happy with my TimedMediaHandler/MwEmbedPlayer
integration patch https://gerrit.wikimedia.org/r/#/c/165478/ for the
desktop MediaWiki interface.

I'll want to update it to work with Video.js later, but I'd love to get
this version reviewed and deployed in the meantime.

Please head over to https://ogvjs-testing.wmflabs.org/ in Safari 6.1+ or IE
10+ (or 'Project Spartan' on Windows 10 preview) and try it out!
Particularly interested in cases where it doesn't work or messes up.


*== Non-JavaScript fallback for iOS ==*

I've found that Safari on iOS supports QuickTime movies with Motion-JPEG
video and mu-law PCM audio https://gerrit.wikimedia.org/r/#/c/217295/.
JPEG and PCM are, as it happens, old and not so much patented. \o/

As such this should work as a fallback for basic audio and video on older
iPhones and iPads that can't run ogv.js well, or in web views in apps that
use Apple's older web embedding APIs where JavaScript is slow (for example,
Chrome for iOS).

However these get really bad compression ratios, so to keep bandwidth down
similar to the 360p Ogg and WebM versions I had to reduce quality and
resolution significantly. Hold an iPhone at arm's length and it's maybe ok,
but zoom full-screen on your iPad and you'll hate the giant blurry pixels!

This should also provide a working basic audio/video experience in our
Wikipedia iOS app, until such time as we integrate Ogg or WebM decoding
natively into the app.

Note that it seems tricky to bulk-run new transcodes on old files with
TimedMediaHandler. I assume there's a convenient way to do it that I just
haven't found in the extension maint scripts...


*== In progress: mobile video fixes ==*

Audio has worked on Android for a while -- the .ogg files show up in native
audio elements and Just Work.

But video has been often broken, with TimedMediaHandler's popup
transforms reducing most video embeds into a thumbnail and a link to the
original file -- which might play if WebM (not if Ogg Theora) but it might
also be a 1080p original which you don't want to pull down on 3G! And
neither audio nor video has worked on iOS.

This patch https://gerrit.wikimedia.org/r/#/c/217485/ adds a simple
mobile target for TMH, which fixes the popup transforms to look better and
actually work by loading up an embedded-size player with the appropriately
playable transcodes (WebM, Ogg, and the MJPEG last-ditch fallback).

ogv.js is used if available and necessary, for instance in iOS Safari when
the CPU is fast enough. (Known to work only on 64-bit models.)


*== Future: codec.js and WebM and OGVKit ==*

For the future, I'm also working on extending ogv.js to support WebM
https://brionv.com/log/2015/06/07/im-in-ur-javascript-decoding-ur-webm/
for better quality (especially in high-motion scenes) -- once that
stabilizes I'll rename the combined package codec.js. Performance of WebM
is not yet good enough to deploy, and some features like seeking are still
missing, but breaking out the codec modules means I can develop the codecs
in parallel and keep the high-level player logic in common.

Browser infrastructure improvements like SIMD, threading, and more GPU
access should continue to make WebM decoding faster in the future as well.


I'd also like to finish up my OGVKit package
https://github.com/brion/OGVKit for iOS, so we can embed a basic
audio/video player at full quality into the Wikipedia iOS app. This needs
some more cleanup work still.


Phew! Ok that's about it.

-- brion
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] [Multimedia] Audio/video updates: TimedMediaHandler, ogv.js, and mobile

2015-06-11 Thread Fabrice Florin
Nicely done, Brion!

We’re very grateful for all the mobile multimedia work you’ve been doing on 
your ‘spare time’ …

Much appreciated,


Fabrice


 On Jun 11, 2015, at 7:34 AM, Brion Vibber bvib...@wikimedia.org wrote:
 
 I've been passing the last few days feverishly working on audio/video stuff, 
 cause it's been driving me nuts that it's not quite in working shape.
 
 TL;DR: Major fixes in the works for Android, Safari (iOS and Mac), and 
 IE/Edge (Windows). Need testers and patch reviewers.
 
 
 == ogv.js for Safari/IE/Edge ==
 
 In recent versions of Safari, Internet Explorer, and Microsoft's upcoming 
 Edge browser, there's still no default Ogg or WebM support but JavaScript has 
 gotten fast enough to run an Ogg Theora/Vorbis decoder with CPU to spare for 
 drawing and outputting sound in real time.
 
 The ogv.js decoder/player has been one of my fun projects for some time, and 
 I think I'm finally happy with my TimedMediaHandler/MwEmbedPlayer integration 
 patch https://gerrit.wikimedia.org/r/#/c/165478/ for the desktop MediaWiki 
 interface.
 
 I'll want to update it to work with Video.js later, but I'd love to get this 
 version reviewed and deployed in the meantime.
 
 Please head over to https://ogvjs-testing.wmflabs.org/ 
 https://ogvjs-testing.wmflabs.org/ in Safari 6.1+ or IE 10+ (or 'Project 
 Spartan' on Windows 10 preview) and try it out! Particularly interested in 
 cases where it doesn't work or messes up.
 
 
 == Non-JavaScript fallback for iOS ==
 
 I've found that Safari on iOS supports QuickTime movies with Motion-JPEG 
 video and mu-law PCM audio https://gerrit.wikimedia.org/r/#/c/217295/. JPEG 
 and PCM are, as it happens, old and not so much patented. \o/
 
 As such this should work as a fallback for basic audio and video on older 
 iPhones and iPads that can't run ogv.js well, or in web views in apps that 
 use Apple's older web embedding APIs where JavaScript is slow (for example, 
 Chrome for iOS).
 
 However these get really bad compression ratios, so to keep bandwidth down 
 similar to the 360p Ogg and WebM versions I had to reduce quality and 
 resolution significantly. Hold an iPhone at arm's length and it's maybe ok, 
 but zoom full-screen on your iPad and you'll hate the giant blurry pixels!
 
 This should also provide a working basic audio/video experience in our 
 Wikipedia iOS app, until such time as we integrate Ogg or WebM decoding 
 natively into the app.
 
 Note that it seems tricky to bulk-run new transcodes on old files with 
 TimedMediaHandler. I assume there's a convenient way to do it that I just 
 haven't found in the extension maint scripts...
 
 
 == In progress: mobile video fixes ==
 
 Audio has worked on Android for a while -- the .ogg files show up in native 
 audio elements and Just Work.
 
 But video has been often broken, with TimedMediaHandler's popup transforms 
 reducing most video embeds into a thumbnail and a link to the original file 
 -- which might play if WebM (not if Ogg Theora) but it might also be a 1080p 
 original which you don't want to pull down on 3G! And neither audio nor video 
 has worked on iOS.
 
 This patch https://gerrit.wikimedia.org/r/#/c/217485/ adds a simple mobile 
 target for TMH, which fixes the popup transforms to look better and actually 
 work by loading up an embedded-size player with the appropriately playable 
 transcodes (WebM, Ogg, and the MJPEG last-ditch fallback).
 
 ogv.js is used if available and necessary, for instance in iOS Safari when 
 the CPU is fast enough. (Known to work only on 64-bit models.)
 
 
 == Future: codec.js and WebM and OGVKit ==
 
 For the future, I'm also working on extending ogv.js to support WebM 
 https://brionv.com/log/2015/06/07/im-in-ur-javascript-decoding-ur-webm/ for 
 better quality (especially in high-motion scenes) -- once that stabilizes 
 I'll rename the combined package codec.js. Performance of WebM is not yet 
 good enough to deploy, and some features like seeking are still missing, but 
 breaking out the codec modules means I can develop the codecs in parallel and 
 keep the high-level player logic in common.
 
 Browser infrastructure improvements like SIMD, threading, and more GPU access 
 should continue to make WebM decoding faster in the future as well.
  
 
 I'd also like to finish up my OGVKit package 
 https://github.com/brion/OGVKit for iOS, so we can embed a basic 
 audio/video player at full quality into the Wikipedia iOS app. This needs 
 some more cleanup work still.
 
 
 Phew! Ok that's about it.
 
 -- brion
 ___
 Multimedia mailing list
 multime...@lists.wikimedia.org
 https://lists.wikimedia.org/mailman/listinfo/multimedia

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] [Multimedia] Audio/video updates: TimedMediaHandler, ogv.js, and mobile

2015-06-11 Thread Michael Dale
Very impressive, amazing progress for a part time project ! 

Thats interesting that iOS supports M-JPEG, had not heard that before. 

Per M-JPGEG in wikipedia app ... They have WKWebView webview in iOS8 and above 
no? so in theory could run the JS engine against the same subset of iOS devices 
at similar performance as a stop gap there. But of course the native player 
would be ideal ;)

—michael


 On Jun 11, 2015, at 7:05 PM, Fabrice Florin fflo...@wikimedia.org wrote:
 
 Nicely done, Brion!
 
 We’re very grateful for all the mobile multimedia work you’ve been doing on 
 your ‘spare time’ …
 
 Much appreciated,
 
 
 Fabrice
 
 
 On Jun 11, 2015, at 7:34 AM, Brion Vibber bvib...@wikimedia.org 
 mailto:bvib...@wikimedia.org wrote:
 
 I've been passing the last few days feverishly working on audio/video stuff, 
 cause it's been driving me nuts that it's not quite in working shape.
 
 TL;DR: Major fixes in the works for Android, Safari (iOS and Mac), and 
 IE/Edge (Windows). Need testers and patch reviewers.
 
 
 == ogv.js for Safari/IE/Edge ==
 
 In recent versions of Safari, Internet Explorer, and Microsoft's upcoming 
 Edge browser, there's still no default Ogg or WebM support but JavaScript 
 has gotten fast enough to run an Ogg Theora/Vorbis decoder with CPU to spare 
 for drawing and outputting sound in real time.
 
 The ogv.js decoder/player has been one of my fun projects for some time, and 
 I think I'm finally happy with my TimedMediaHandler/MwEmbedPlayer 
 integration patch https://gerrit.wikimedia.org/r/#/c/165478/ for the 
 desktop MediaWiki interface.
 
 I'll want to update it to work with Video.js later, but I'd love to get this 
 version reviewed and deployed in the meantime.
 
 Please head over to https://ogvjs-testing.wmflabs.org/ 
 https://ogvjs-testing.wmflabs.org/ in Safari 6.1+ or IE 10+ (or 'Project 
 Spartan' on Windows 10 preview) and try it out! Particularly interested in 
 cases where it doesn't work or messes up.
 
 
 == Non-JavaScript fallback for iOS ==
 
 I've found that Safari on iOS supports QuickTime movies with Motion-JPEG 
 video and mu-law PCM audio https://gerrit.wikimedia.org/r/#/c/217295/. 
 JPEG and PCM are, as it happens, old and not so much patented. \o/
 
 As such this should work as a fallback for basic audio and video on older 
 iPhones and iPads that can't run ogv.js well, or in web views in apps that 
 use Apple's older web embedding APIs where JavaScript is slow (for example, 
 Chrome for iOS).
 
 However these get really bad compression ratios, so to keep bandwidth down 
 similar to the 360p Ogg and WebM versions I had to reduce quality and 
 resolution significantly. Hold an iPhone at arm's length and it's maybe ok, 
 but zoom full-screen on your iPad and you'll hate the giant blurry pixels!
 
 This should also provide a working basic audio/video experience in our 
 Wikipedia iOS app, until such time as we integrate Ogg or WebM decoding 
 natively into the app.
 
 Note that it seems tricky to bulk-run new transcodes on old files with 
 TimedMediaHandler. I assume there's a convenient way to do it that I just 
 haven't found in the extension maint scripts...
 
 
 == In progress: mobile video fixes ==
 
 Audio has worked on Android for a while -- the .ogg files show up in native 
 audio elements and Just Work.
 
 But video has been often broken, with TimedMediaHandler's popup transforms 
 reducing most video embeds into a thumbnail and a link to the original file 
 -- which might play if WebM (not if Ogg Theora) but it might also be a 1080p 
 original which you don't want to pull down on 3G! And neither audio nor 
 video has worked on iOS.
 
 This patch https://gerrit.wikimedia.org/r/#/c/217485/ adds a simple mobile 
 target for TMH, which fixes the popup transforms to look better and actually 
 work by loading up an embedded-size player with the appropriately playable 
 transcodes (WebM, Ogg, and the MJPEG last-ditch fallback).
 
 ogv.js is used if available and necessary, for instance in iOS Safari when 
 the CPU is fast enough. (Known to work only on 64-bit models.)
 
 
 == Future: codec.js and WebM and OGVKit ==
 
 For the future, I'm also working on extending ogv.js to support WebM 
 https://brionv.com/log/2015/06/07/im-in-ur-javascript-decoding-ur-webm/ 
 for better quality (especially in high-motion scenes) -- once that 
 stabilizes I'll rename the combined package codec.js. Performance of WebM is 
 not yet good enough to deploy, and some features like seeking are still 
 missing, but breaking out the codec modules means I can develop the codecs 
 in parallel and keep the high-level player logic in common.
 
 Browser infrastructure improvements like SIMD, threading, and more GPU 
 access should continue to make WebM decoding faster in the future as well.
  
 
 I'd also like to finish up my OGVKit package 
 https://github.com/brion/OGVKit for iOS, so we can embed a basic 
 audio/video player at full quality into the Wikipedia iOS app. This needs 
 some 

Re: [Wikitech-l] Tech Talk: Kanban: An alternative to Scrum?

2015-06-11 Thread Rachel Farrand
Reminder:This talk will be taking place on Monday. Hope you can join!

On Mon, Jun 1, 2015 at 6:10 PM, Rachel Farrand rfarr...@wikimedia.org
wrote:

 Please join us for the following tech talk:

 *Tech Talk**:* Kanban: An alternative to Scrum?
 *Presenter:* Kevin Smith
 *Date:* June 15th
 *Time:* 22:00 UTC
 http://www.timeanddate.com/worldclock/fixedtime.html?msg=Tech+Talk%3A+Kanbaniso=20150615T22p1=%3Aah=1
 Link to live YouTube stream http://www.youtube.com/watch?v=zT8cUtMTGPI
 *IRC channel for questions/discussion:* #wikimedia-office
 Google+ page
 https://plus.google.com/u/0/b/103470172168784626509/events/cg2sb5m878c8ot3nhf2uk4mii34,
  another
 place for questions


 *Summary: *Kanban is becoming a popular buzzword in software development.
 Some teams are looking at starting with a Kanban process as a stepping
 stone toward Scrum, while others are considering switching from Scrum to
 Kanban. Meanwhile, the author of The Kanban Method claims that Kanban is
 NOT a software development lifecycle or project management methodology!
 This talk will attempt to clarify what Kanban is (and is not), how it
 compares to Scrum, and why a team might choose to use it.


 *About the speaker: *Kevin has been practicing agile software development
 for over 15 years. He joined the WMF as an Agile Coach in March 2015.

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] Facebook's HHVM performance sprint retrospective highlights MediaWiki gains

2015-06-11 Thread Ori Livneh
On Thu, Jun 11, 2015 at 9:02 PM, Ori Livneh o...@wikimedia.org wrote:

 a parse of the Barack Obama article.


A parse of *English Wikipedia's* Barack Obama article. I am trying, I am
trying... :)
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] Please help a patch not to become two years old

2015-06-11 Thread Quim Gil
 Sorry for breaking the thread with a serious post.  ;)

While Andre or me possible cannot help reviewing the code of a 2 year old
patch, we are trying to help avoiding to run into such situations in the
first place. Check our plan to organize a Gerrit Cleanup Day [1] as a
possible beginning of a deeper change [2], and join the structured-ish
discussion on what should the Wikimedia Foundation do differently to
address this problem.[3]

[1] https://phabricator.wikimedia.org/T88531

[2] See the proposed goals in the Engineering Community roadmap
https://phabricator.wikimedia.org/T101099 (still in its infancy)

[3] https://phabricator.wikimedia.org/T101686
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

[Wikitech-l] Facebook's HHVM performance sprint retrospective highlights MediaWiki gains

2015-06-11 Thread Ori Livneh
Facebook's HHVM team just completed their first performance lockdown, which
they spent focusing on the performance of open-source PHP frameworks under
HHVM. The achievement which they chose to highlight in their blog posts is
a gain of 19% in their MediaWiki performance benchmark, which is – you
guessed it – a parse of the Barack Obama article.

https://code.facebook.com/posts/902199373155728/-inside-the-hhvm-lockdown/

http://hhvm.com/blog/9293/lockdown-results-and-hhvm-performance
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l