From: Bill Erickson Date: Wed, 19 Feb 2014 18:13:10 +0000 (-0500) Subject: eg 2014 browser client presentation X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=81dee38db0c894ee3299625cbc1472477daea4a4;p=working%2Frandom.git eg 2014 browser client presentation Signed-off-by: Bill Erickson --- diff --git a/browser_client.txt b/browser_client.txt index 23543a841..1a7c0dc5c 100644 --- a/browser_client.txt +++ b/browser_client.txt @@ -1,14 +1,26 @@ -= Building a Browser-Based Evergreen Staff Client = -Bill Erickson += A Browser-Based Evergreen Staff Client = +:author: Bill Erickson +:email: +:copyright: 2014 Equinox Software +:duration: 35 +:data-uri: +:backend: slidy +:max-width: 45em == Why Are We Talking About This? == -== What's Wrong with XULRunner? == +[role="incremental"] + * The time has come + * and gone + * The XULRunner version (14.0.1) used by Evergreen was released July 2012. + * As of February, the latest version of XULRunner is version 28. + +== Why Can't We Update XULRunner? == image:images/jonah-api.jpg[Used The Documented API] Here we see a young Jonah Hill expressing frustration when his -decision to choose a seemingly wise course of action backfires. +decision to choose a seemingly reasonable course of action backfires. '*' Consarn ye, XULRunner! @@ -16,61 +28,74 @@ decision to choose a seemingly wise course of action backfires. [role="incremental"] * We've been treating XULRunner like a development platform, which defines - features for developers, and then maintains the features going forward. + features for developers, and then maintains those features. * XULRunner is more accurately a test bed for Firefox. As browser features evolve to fall in line with other browsers, unused features are discarded. + * Too bad we are using some of those "unused" features. -== The Lost Features of XULRunner == +== The Big Lost Features of XULRunner == [role="incremental"] * Remote XUL - ** Gives XULRunner the power of a browser -- remote updates + ** Gives XULRunner the power to read UI templates from the server + ** Template changes do not require desktop application updates * E4X (ECMAScript for XML) ** Used by MARC Editor - * multipart/x-mixed-replace messages (streaming responses) + * multipart/x-mixed-replace messages ** Streaming responses +== What do we do about it? == + +[role="incremental"] + * We have a significant amount of work to do, regardless of how we proceed. + * Why not take this opportunity to improve our basic building blocks? + == Enter: The Browser == - * It will no longer be necessary to install an application to - update the client. It all happens on the server. - * Browsers, HTML, and JavaScript are all evolinging and rapidly - improving, with lots of public and corporate momentum. - * A wealth of resources - ** It's hard to find a software developer that does not have a basic - understanding of HTML and JavaScript. - ** Using the same tools lots of others use means any problems we encounter - have likely been solved 100 times over by others. Compared to - XULRunner, the available resources (help, documentation, developers, etc.) - is +[role="incremental"] + * Remote updates + * The browser is the de facto client development environment + * Aggressive competition between browsers + * Developers as far as the eye can see + * Most of our problems have already been solved + * Browser interfaces work on mobile devices + ** Inventory on a Nexus? + ** Real-time holds pull list on an iPad? + ** Running reports in the browser built into your refrigerator? + * Much of the staff client is already developed as individual web pages. + * Browser Features are publicly documented and di + * Browser support for a given feature is a good litmus test for long-term + viability. + * Good support for assistive technologies, like screen readers, etc. + * Existing, proven tools for local template customization and translations. + * Deep links to resources (patrons, items, etc.) -Any approach we choose will come with its own set of technical challenges. -The trick is to find the best feature to technical hurdles ratio. +== What Challenges Come with Using a Browser? == -== How do we avoid the XULRunner pitfalls? == + * Seemlessly printing to different printers + * Secure file storage + ** offline transactions + ** workstation registrations - * Only use features which are supported by multiple browsers. +== Browser Developer Tools == -== Why Not Another Desktop Client? == + * http://angularjs.org/[AngularJS] + * http://getbootstrap.com/css/[Bootstrap CSS] -The tr -No approach is free of technical hurdles. As as the browser goes, the -benefits to challenges ratio is high. +== AngularJS == -== What Challenges Come with Using a Browser? == +== Bootstrap CSS == - * Printing - * Secure file storage for offline, workstation registration(s), etc. +== Staff Client Prototype Project == -== What is AngularJS and Why Use it? == +image:images/browser-client-patrons.png[Patron Search] -== What is Bootstrap CSS and Why Use It? == == Staff Client Prototype Project == -link to report -http://wiki.evergreen-ils.org/doku.php?id=dev:browser_staff:manifesto + * http://yeti.esilibrary.com/dev/pub/web-staff-report.html[Prototype Report] + * http://wiki.evergreen-ils.org/doku.php?id=dev:browser_staff:manifesto[Browser Client Development Manifesto] == Future Development == @@ -84,22 +109,22 @@ http://wiki.evergreen-ils.org/doku.php?id=dev:browser_staff:manifesto == WebSockets Streaming Example == -Comparing Patron Search with traditional XMLHttpRequest and WebSockets. +Patron Search via XMLHttpRequest vs WebSockets. -Skit? +https://docs.google.com/a/esilibrary.com/drawings/d/1zt3S0vaaRBLj2fmPKhQjFUZ0tpA9cWsjpwqD-8LHnvY/edit -https://docs.google.com/a/esilibrary.com/drawings/d/1U-MaNLBGJJFdfkdEl1zVDFLu8MsZyVq1-ii-7_r8jVM/edit +== WebSockets Streaming Example == -https://docs.google.com/a/esilibrary.com/drawings/d/1_n1eNuQFUN5rr-21V4jo6rIs-cz9Aj-k75p4yqtcP0Q/edit + * With 50 search results + ** XMLHTTPRequest requires 102 messages + ** WebSockets requires 51 messages + * -== WebSockets Streaming Example == +== What's Next? == - * With 50 results, XMLHttpRequest requires 102 messages, and - WebSockets requires 51 messages. +== Comments and Questions == //// vim: ft=asciidoc //// - - diff --git a/images/browser-client-patrons.png b/images/browser-client-patrons.png new file mode 100644 index 000000000..5afa66312 Binary files /dev/null and b/images/browser-client-patrons.png differ