<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hello,</p>
    <p>I've just seen there is some chat about plugins.<br>
    </p>
    <p>I wanted to add to Opac-details a list of "patron who issued this
      book also issued *** " doing such the Amazon/Ebay way of
      advertising resources.</p>
    <p>I've experimented a little with the Plugin functionnality, I
      tried to write a "Recommendation" plugin based on old issue
      analysis.</p>
    <p>The code is here :
      <a class="moz-txt-link-freetext" href="https://github.com/Liliputech/KohaReadSuggestion">https://github.com/Liliputech/KohaReadSuggestion</a><br>
    </p>
    <p>It kind of works, however I stumbled on a little problem.</p>
    It seems not possible to run a plugin publicly (like public
    reports), one has to be connected to execute a plugin, right? Do you
    see any mean to overcome this limitation?<br>
    <br>
    Thanks a lot in advance for your answers<br>
    <br>
    Best regards and happy HackFest!<br>
    <br>
    Arthur<br>
    <br>
    <div class="moz-cite-prefix">Le 08/10/2016 à 14:25, Kyle Hall a
      écrit :<br>
    </div>
    <blockquote
cite="mid:CACpVHfyMbmUy6g2j-9=Y=FYRy0LLREUpARoy_yykqW-zsS5XKQ@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <p dir="ltr">Thanks for the overview Jonathan! I know I for one
        have the react discussion as a top priority for the jacket.</p>
      <p dir="ltr">Kyle</p>
      <p dir="ltr">Sent from my phone. Please excuse my brevity.</p>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Oct 8, 2016 2:20 PM, "Jonathan
          Druart" <<a moz-do-not-send="true"
            href="mailto:jonathan.druart@bugs.koha-community.org">jonathan.druart@bugs.koha-community.org</a>>
          wrote:<br type="attribution">
          <blockquote class="quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello
            librarians and developers,<br>
            <br>
            I send a "What's on in Koha devel" email to koha-devel list
            each<br>
            month. But this one is a bit special as I will focus on the
            different<br>
            subjects you may heard of if you attend the hackfest in
            Marseille next<br>
            week.<br>
            It can be helpful for both librarians and developers!<br>
            <br>
            A lot of things are going on in the Koha ecosystem so it
            might be hard<br>
            to follow all the discussions or to jump into one.<br>
            <br>
            So my attempted goal here is to compile the topics currently
            "à la<br>
            mode" for Koha developers.<br>
            In this email I will go a bit more into details than usual,
            to let you<br>
            the opportunity to better understand the themes and to ask
            questions<br>
            next week if you want to know more. I hope it will help you
            to choose<br>
            the subject you want to be involved in during the hackfest.<br>
            <br>
            = Sandboxes =<br>
            <br>
            Sandboxes have been developed with the aim to help people
            without any<br>
            technical skills to test patches submitted on the Koha
            bugtracker.<br>
            You will find all the information you want on the dedicated
            wiki page<br>
            <a moz-do-not-send="true"
              href="https://wiki.koha-community.org/wiki/Sandboxes"
              rel="noreferrer" target="_blank">https://wiki.koha-community.<wbr>org/wiki/Sandboxes</a><br>
            <br>
            = Refactoring =<br>
            During the last 3 (more?) years we have integrated
            DBIx::Class (a Perl<br>
            ORM, Object-Relationnal Mapping) into Koha, for several
            (sometimes<br>
            disputed) reasons.<br>
            To take advantage of it, we are using it as much as possible
            through a<br>
            home-made object module called Koha::Object.<br>
            For the last year, a lot of legacy code has been rewritten
            and moved<br>
            out of the C4 namespace to the new Koha namespace. For
            instance<br>
            Koha::Virtualshelves replaced C4::VirtualShelves::Page (bug
            14544),<br>
            Koha::Libraries replaces C4::Branch (bug 15293).<br>
            At the moment, the job focusses on moving the legacy
            authorised values<br>
            from the C4::Koha module to Koha::AuthorisedValues (bug
            15799) and the<br>
            patrons/borrowers/users/<wbr>members code from C4::Members
            to Koha::Patrons<br>
            (bug 16846).<br>
            For an overview of this refactoring work, please have a look
            at bug<br>
            15449 and its scary dependency graph:<br>
            <a moz-do-not-send="true"
href="https://bugs.koha-community.org/bugzilla3/showdependencygraph.cgi?id=15449"
              rel="noreferrer" target="_blank">https://bugs.koha-community.<wbr>org/bugzilla3/<wbr>showdependencygraph.cgi?id=<wbr>15449</a><br>
            <br>
            Another refactoring work is about moving the
            biblioitems.marcxml<br>
            content out of the biblioitems table. The idea is to create
            another<br>
            table (biblio_metadata) to add the ability to store a record
            in<br>
            different formats. The direct and major addition of this
            move would be<br>
            to bring performance speed. See the comment 1 of bug 17196
            for more<br>
            information.<br>
            <br>
            = Speed improvements =<br>
            <br>
            During the last 2 releases, we have made a lot of speed
            improvements.<br>
            That has been achieve with the consolidation and the
            stabilisation of<br>
            our caching system and plack integration.<br>
            If you are running a recent version of Koha (3.22, 16.05 or
            later) you<br>
            should set them up correctly to fully enjoy the improvement.
            To be<br>
            fair I must say that we have had to concentrate our efforts
            on these<br>
            points because of our previous technical decisions (mainly
            related to<br>
            DBIx::Class).<br>
            Two main playgrounds: Plack and Memcached, that I will
            explain now.<br>
            <br>
            == Plack ==<br>
            I bet you already have heard of Plack, because Koha
            developers have<br>
            been talking about it for ages.<br>
            Basically it is just an interface between the web server
            (Apache,<br>
            starman, etc.) and the perl application (Koha).<br>
            When a user hits the a Koha url, a lot of files (Perl
            modules) are<br>
            compiled. In CGI mode, this compilation step is done for
            every<br>
            request. Using Plack they are compiled only once. The code
            will be put<br>
            in RAM and other requests won't need to process all the
            modules again.<br>
            It is an advantage since we are using DBIx::Class more and
            more and<br>
            its schema is heavy to load. With Plack it is only loaded
            once.<br>
            Koha is now considered as stable under Plack for the last
            versions of<br>
            Koha, so you must use it.<br>
            To know about known bugs, you can follow bug 7172 which
            gather Plack<br>
            related known bugs together. At this time there is only one
            patch not<br>
            yet pushed, bug 17392 (ping QAer!).<br>
            <br>
            Note that a timeout issue seems related to Plack and is not
            yet resolved, see:<br>
            Bug 16714 - Unexpected logout with "IP address change" (with<br>
            SessionRestrictionByIP set)<br>
            <br>
            == Caching system ==<br>
            The way we are caching "stuffs" in Koha has really been
            improved<br>
            recently and will continue to!<br>
            Important steps have been done in this area.<br>
            We are using Memcached - a memory caching system - to store
            big bunch<br>
            of data that we do not want to recalculate or retrieve from
            the<br>
            database everytime.<br>
            For instance:<br>
             - the sysprefs. A lot of them are retrieved from the
            database for each request<br>
             - the biblio frameworks<br>
             - the holidays<br>
             - ... a lot of other things could/will be cached!<br>
            <br>
            A big step has been done when we decided to introduce a
            2-level<br>
            caching mechanism (bug 16044): we have now a in-memory L1
            cache (flush<br>
            at every request) and a L2 cache (Memcached).<br>
            To understand how this mechanisms are useful, imagine a
            simple<br>
            scenario: launch a search which will return 20 results.<br>
            For each result we need to know the MARC bibliographic
            framework of<br>
            the record. Say they are all using the default
            frameworkcode. Without<br>
            any caching mechanism, we retrieved from the database the
            whole<br>
            structure, 20 times, once per result.<br>
            With our new caching mechanism, the information for the
            default MARC<br>
            bibliographic framework will be retrieved on the first
            request, then<br>
            put in both L1 and L2 cache. The 19 other results will
            retrieve it<br>
            from the L1 cache.<br>
            If the same or another user does a search, the framework
            info will be<br>
            retrieved from the L2 cache for the first result, and the L1
            cache<br>
            will be populated. The other results will retrieve it from
            the L1<br>
            cache.<br>
            Not sure this is clear, but catch me if you need more
            details :)<br>
            <br>
            All of that to say that if you are a developer, there are 3
            other bugs<br>
            with ideas to improve again the caching mechanism. They are
            all of<br>
            them in discussion:<br>
            Bug 16140 - Only clear L1 cache when needed<br>
            Bug 16079 - Retrieving system preferences from database via
            DBIx is<br>
            not fast enough<br>
            Bug 15341 - Performance - Retrieve all sysprefs at once<br>
            <br>
            One which would be nice to have is:<br>
            Bug 17261 - Add memcached configuration info to <a
              moz-do-not-send="true" href="http://about.pl"
              rel="noreferrer" target="_blank">about.pl</a><br>
            It will permit to display the memcached configuration in the
            about page.<br>
            <br>
            <br>
            = MySQL 5.7 compatibility =<br>
            If you are interested in using Koha with MySQL 5.7 (the
            default<br>
            version for the last Ubuntu 16.04), you should take a look
            at bug<br>
            17258 and its dependencies.<br>
            Koha is not ready at all for the new default sql_mode
            configuration of<br>
            this version of MySQL (STRICT_TRANS_TABLES).<br>
            <br>
            = Security issues =<br>
            A lot of security issues (CSRF and XSS) have been fixed for
            the last 4<br>
            months, and almost all of these fixes have been backported
            to stable<br>
            releases.<br>
            They are all reported under the 2 following omnibus:<br>
            Bug 17096 - [OMNIBUS] CSRF protections<br>
            Bug 14568 - [OMNIBUS] XSS in Staff Client<br>
            Only one known bug is waiting to be QAed (but 17365).<br>
            <br>
            = Elastic search =<br>
            There are no big new features pushed since the first big
            push.<br>
            But a few bug fixes and enhancement are waiting to be QAed.
            You can<br>
            find them on the dependency graph of bug 12478.<br>
            Note that there are 2 known bugs, without patches:<br>
            <br>
            Bug 16660 - Elasticsearch broken if OpacSuppression is
            activated<br>
            Bug 17373 - Elasticsearch - Authority mappings are not
            defined for UNIMARC<br>
            Are there some UNIMARC users around? :)<br>
            <br>
            = RESTful API =<br>
            Tons of patches have been submitted on bugzilla, but only
            few got<br>
            attention from signoffers.<br>
            If you are interested in testing of them, search for "rest
            api".<br>
            <br>
            = ReactJS =<br>
            React is a JS library aimed to easier DOM manipulations.<br>
            This topic is a recurrent one and developers involved in
            this<br>
            discussion will be present at the hackfest.<br>
            They should organise a discussion to reach a consensus once
            and for<br>
            all. If accepted, it would be good to define guidelines and
            write<br>
            complete examples.<br>
            <br>
            = Koha plugin system =<br>
            It seems that people are curious about our plugin system.<br>
            It would be good to revive the discussion on new and more
            powerful<br>
            plugin system.<br>
            See the discussion on the koha-devel list at<br>
            <a moz-do-not-send="true"
href="http://lists.koha-community.org/pipermail/koha-devel/2016-May/042673.html"
              rel="noreferrer" target="_blank">http://lists.koha-community.<wbr>org/pipermail/koha-devel/2016-<wbr>May/042673.html</a><br>
            <br>
            = Transactions & exceptions =<br>
            It would be good to see some developers organise a
            brainstorming<br>
            session on the different topics that Tomas raised on his
            email to<br>
            koha-devel a few weeks ago.<br>
            <a moz-do-not-send="true"
href="http://lists.koha-community.org/pipermail/koha-devel/2016-September/043032.html"
              rel="noreferrer" target="_blank">http://lists.koha-community.<wbr>org/pipermail/koha-devel/2016-<wbr>September/043032.html</a><br>
            <br>
            = Mana =<br>
            Paul presented us Mana<br>
            (<a moz-do-not-send="true"
              href="https://lists.katipo.co.nz/pipermail/koha/2016-July/045739.html"
              rel="noreferrer" target="_blank">https://lists.katipo.co.nz/<wbr>pipermail/koha/2016-July/<wbr>045739.html</a>)
            at<br>
            the beginning of July.<br>
            Morgan finished her internship and will be there are the
            hackfest to<br>
            show us what she developed.<br>
            Testers and QAers would certainly be welcomed to test and
            review this feature.<br>
            <br>
            = Hea =<br>
            Hea is a website (<a moz-do-not-send="true"
              href="http://hea.koha-community.org" rel="noreferrer"
              target="_blank">http://hea.koha-community.org</a><wbr>)
            collecting usage<br>
            statistics from different Koha installations around the
            world.<br>
            This feature is not enabled by default but is very useful
            for<br>
            developers and other people loving statistics (so librarians
            isn't<br>
            it?).<br>
            If it is not done yet, you should enable this feature to
            join the 496<br>
            libraries already registered!<br>
            One enhancement is developed and waiting for testers:<br>
            14608 - HEA : add possibility of sharing usage statistics in<br>
            Administration page and Web installer<br>
            <br>
            Hope to see you ready to fix, translate, test or QA patches
            (and drink<br>
            beers when everything is done) this week!<br>
            <br>
            Cheers,<br>
            Jonathan<br>
            ______________________________<wbr>_________________<br>
            Koha-devel mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:Koha-devel@lists.koha-community.org">Koha-devel@lists.koha-<wbr>community.org</a><br>
            <a moz-do-not-send="true"
href="http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel"
              rel="noreferrer" target="_blank">http://lists.koha-community.<wbr>org/cgi-bin/mailman/listinfo/<wbr>koha-devel</a><br>
            website : <a moz-do-not-send="true"
              href="http://www.koha-community.org/" rel="noreferrer"
              target="_blank">http://www.koha-community.org/</a><br>
            git : <a moz-do-not-send="true"
              href="http://git.koha-community.org/" rel="noreferrer"
              target="_blank">http://git.koha-community.org/</a><br>
            bugs : <a moz-do-not-send="true"
              href="http://bugs.koha-community.org/" rel="noreferrer"
              target="_blank">http://bugs.koha-community.<wbr>org/</a></blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Koha-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Koha-devel@lists.koha-community.org">Koha-devel@lists.koha-community.org</a>
<a class="moz-txt-link-freetext" href="http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel">http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel</a>
website : <a class="moz-txt-link-freetext" href="http://www.koha-community.org/">http://www.koha-community.org/</a>
git : <a class="moz-txt-link-freetext" href="http://git.koha-community.org/">http://git.koha-community.org/</a>
bugs : <a class="moz-txt-link-freetext" href="http://bugs.koha-community.org/">http://bugs.koha-community.org/</a></pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Arthur SUZUKI
Service informatique des bibliothèques
BIBLIOTHÈQUES UNIVERSITAIRES
Université Jean Moulin Lyon 3
6 Cours Albert Thomas - B.P. 8242 – 69355 Lyon Cedex 08
ligne directe : +33 (0)4 78 78 79 16 | <a class="moz-txt-link-freetext" href="http://bu.univ-lyon3.fr">http://bu.univ-lyon3.fr</a>
L'Université Jean Moulin est membre fondateur de l'Université de Lyon</pre>
  </body>
</html>