eg 2014 browser client presentation
authorBill Erickson <berick@esilibrary.com>
Wed, 19 Feb 2014 18:13:10 +0000 (13:13 -0500)
committerBill Erickson <berick@esilibrary.com>
Wed, 19 Feb 2014 18:13:10 +0000 (13:13 -0500)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
browser_client.txt
images/browser-client-patrons.png [new file with mode: 0644]

index 23543a8..1a7c0dc 100644 (file)
@@ -1,14 +1,26 @@
-= Building a Browser-Based Evergreen Staff Client =
-Bill Erickson <berick@esilibrary.com>
+= A Browser-Based Evergreen Staff Client =
+:author: Bill Erickson
+:email: <berick@esilibrary.com>
+: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 (file)
index 0000000..5afa663
Binary files /dev/null and b/images/browser-client-patrons.png differ