From 7d345eb06f373daf6e2536004f98558792a61202 Mon Sep 17 00:00:00 2001 From: Dan Scott Date: Thu, 26 Apr 2012 23:48:33 -0400 Subject: [PATCH] Add quotable quotes and instrumentation details Also add a one-liner description of what the TPAC is and why people might be interested in this discussion. Signed-off-by: Dan Scott --- eg2012_tpac.txt | 73 +++++++++++++++++++++++++++++++++++++++++++----- images/instrumental.png | Bin 0 -> 54655 bytes 2 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 images/instrumental.png diff --git a/eg2012_tpac.txt b/eg2012_tpac.txt index ed202051b..f6d5a2b53 100644 --- a/eg2012_tpac.txt +++ b/eg2012_tpac.txt @@ -1,5 +1,5 @@ Template Toolkit OPAC Customization : Nuts and Bolts -===================================================== +==================================================== :author: Bill Erickson and Dan Scott :copyright: 2012 Equinox Software, Inc., 2012 Laurentian University :backend: slidy @@ -8,6 +8,10 @@ Template Toolkit OPAC Customization : Nuts and Bolts :icons: :duration: 45 +The Template Toolkit OPAC (_TPAC_) is a new catalog built for low-bandwidth +connections and easy customization. This session will teach you how it is +constructed and how to customize and contribute to it yourself. + This talk is licensed under a http://creativecommons.org/licenses/by-sa/3.0[Creative Commons, Attribution, Share Alike license]. image::images/cc_by_sa_360.png[CC BY SA] @@ -22,7 +26,7 @@ Scratch Outline * Alotted time is 45 mins * Why TPAC? -- 5 mins * Template Toolkit Syntax Basics -- 5 mins - * Common modifications -- 10 mins + * Common modifications -- 10 mins ** Skinning/Localization w/ vhosts * Where does the context / data come from? -- 5 mins * Debugging - 3 mins @@ -35,12 +39,46 @@ Scratch Outline Why TPAC? --------- +Thus spake Dan Scott on January 7, 2011, in the thread +http://markmail.org/message/udp6h5wf6ax35mye[Planning for Evergreen +development, post 2.0]: + + Provide a full-featured OPAC that requires no JavaScript, but uses + JavaScript for enhancements + + Why: The current OPAC takes an agonizing amount of time to load when + the JavaScript is not cached: 10 - 15 seconds on a DSL connection is + pretty normal http://www.useit.com/alertbox/response-times.html has + some interesting observations on Web response times, but we all know + that 10 seconds is not fast. The underlying HTML of the current OPAC + is also useless to Google and other search engines; a rewrite that + generated semantically meaningful HTML could actually provide + another entry point into our catalogues. + +On March 4th, 2011, Bill Erickson said in the thread +http://markmail.org/message/z34qkdrkcmg5tvii[Server-side OPAC development +project: an introduction]: + + As some of you may know from various IRC discussions, etc., Equinox + (ESI) is partnering with the King County Library System to build a + server-side (i.e. non-Javascript driven) Template Toolkit OPAC. + The purpose of this project is to re-architect the OPAC with a set + of web development tools that will allow us to manage the logic of + data retrieval and display on the server instead of in the client + to provide a faster and more consistent OPAC experience. This work + will improve OPAC rendering across browsers as well as have a + significant impact on overall performance, particularly for users + on slower networks. + +Why TPAC (as of April 2012) +--------------------------- + * Speed (initial page loading and rendering) + * Reduced per-feature speed cost * Cross-browser consistency * Flexible template engine (overlays, etc.) improves skinning * Accessibility * Dynamic, gettext-based string translations - * Reduced per-feature speed cost * Simplified error detection. Errors occur on the server. * Reduced variability of code in the wild (JS caching) * Reduced bandwidth requirements @@ -73,9 +111,26 @@ image:images/JSPACvsTPACNetworkDiagram.png["JSPAC vs TPAC Network"] *100% Accurate Representation. -Instrumentation ---------------- -foo +Instrumenting TPAC +------------------ + +*Lesson*: Hackfests _can_ produce http://git.evergreen-ils.org/?p=working/Evergreen.git;a=commitdiff;h=18524ec34d43f4da378cea7b5eb9ea83ccd963c3[working code]! + +* 2.5 seconds is better than JSPAC, but still slower than ideal. + So where's the bottleneck? +* Approach: if debug timing is enabled, capture timing & event + descriptions from the Perl modules behind the scenes in a context + variable, then display those results in the page footer + +.OpenILS/WWW/EGCatLoader.pm +[source,perl] +------------------------------------------------------------------------------ +use constant DEBUG_TIMING => 1; + +$self->timelog("Returned from get_records_and_facets()"); +------------------------------------------------------------------------------ + +image:images/instrumental.png["Page footer timings"] Template Toolkit (TT) Syntax ---------------------------- @@ -255,12 +310,16 @@ Common customizations - styles * TPAC CSS lives in `/openils/var/web/css/skin/default/opac/style.css` ** Could then create variants for each required skin and point to it from the template overrides - * Or you could template the CSS itself: + ** Or create individual CSS files for each skin that override aspects + of the core skin + * Or you could http://git.evergreen-ils.org/?p=working/Evergreen.git;a=commit;h=71d934a774df5957508754a3b5b882708b4b1aa6[template the CSS itself]: . Hack EGWeb.pm to return content-type "text/css" for some file name(s) and move the CSS file into a TT-aware directory . Define colors in templated CSS based on CGI.virtual_host() value . Change templates/opac/parts/base.tt2 to point to the templated CSS . Stop maintaining many slight variations of the same CSS + * _To-do_: Enhance the templated CSS to separate foreground + from background colors Context Data: OpenILS::WWW::EGCatLoader diff --git a/images/instrumental.png b/images/instrumental.png new file mode 100644 index 0000000000000000000000000000000000000000..fe150a2d133a7f96d054f40649d84102c365ebad GIT binary patch literal 54655 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 XlI#VcVDS9Tyfy#?+yqvA*E#xMsPBA2 literal 0 HcmV?d00001 -- 2.11.0