<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#CCCCCC" bgcolor="#333333">
    <style type="text/css">p { margin-bottom: 0.25cm; line-height: 115%; }a.cjk:link {  }a.ctl:link {  }</style>
    <p style="margin-bottom: 0cm; line-height: 100%">Hello everyone!</p>
    <p style="margin-bottom: 0cm; line-height: 100%">Let me introduce
      you
      to a project that I am currently working on.</p>
    <p style="margin-bottom: 0cm; line-height: 100%">The scope of the
      project is to provide an easy way to search KDE code and
      translations
      repository since I consider that such a kind of an infrastructure
      would help possible newcomers to easily obtain valuable
      information
      about the work of the community. For example:</p>
    <blockquote>
      <p style="margin-bottom: 0cm; line-height: 100%"> </p>
      <p style="margin-bottom: 0cm; line-height: 100%">- which projects
        exist</p>
      <p style="margin-bottom: 0cm; line-height: 100%">- which ones are
        the
        most active</p>
      <p style="margin-bottom: 0cm; line-height: 100%">- how developers
        describe their work on them</p>
      <p style="margin-bottom: 0cm; line-height: 100%">- find out the
        developers that currently work on them</p>
    </blockquote>
    <p style="margin-bottom: 0cm; line-height: 100%">To make the long
      story short, I was thinking that a google-like search engine would
      facilitate onboarding of newcomers to KDE </p>
    <p style="margin-bottom: 0cm; line-height: 100%">So, I ended up to a
      solution that:</p>
    <p style="margin-bottom: 0cm; line-height: 100%">1. Fetches git and
      svn commit messages from the kde-commits mailing list</p>
    <p style="margin-bottom: 0cm; line-height: 100%">2. Parses each
      message and creates a json file that contains the below
      information:</p>
    <p style="margin-bottom: 0cm; line-height: 100%">- commit subject</p>
    <p style="margin-bottom: 0cm; line-height: 100%">- commit message</p>
    <p style="margin-bottom: 0cm; line-height: 100%">- author</p>
    <p style="margin-bottom: 0cm; line-height: 100%">- project</p>
    <p style="margin-bottom: 0cm; line-height: 100%">- commit date</p>
    <p style="margin-bottom: 0cm; line-height: 100%">- isrevision (does
      a
      relative phabricator task exist?)</p>
    <p style="margin-bottom: 0cm; line-height: 100%">- istranslation (is
      it a translation commit?)</p>
    <p style="margin-bottom: 0cm; line-height: 100%">- fixesbug (whether
      the commit is bug-related)</p>
    <p style="margin-bottom: 0cm; line-height: 100%">The relative code
      can be found  here <a class="moz-txt-link-freetext" href="https://github.com/dimkard/kde-commits-solr">https://github.com/dimkard/kde-commits-solr</a></p>
    <p style="margin-bottom: 0cm; line-height: 100%">3. Loads the json
      recordset to an Apache Solr instance</p>
    <p style="margin-bottom: 0cm; line-height: 100%">4. On top of apache
      Solr, Banana (port of Kibana for Solr) has been added. A custom
      searching panel has been created to provide fuzzy searches against
      KDE repositories. <br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%"><br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%">Moreover, it could
      also be useful for KDE writers/promoters to get a clear view of
      the
      current development, either on code or translations, the new
      features, the bug-fixing work, etc</p>
    <p style="margin-bottom: 0cm; line-height: 100%"><br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%">To better
      illustrate
      the tool, let's simulate the creation of a post like
      <a class="western"
href="https://pointieststick.wordpress.com/2018/04/29/this-week-in-usability-productivity-part-16-everything-else/">https://pointieststick.wordpress.com/2018/04/29/this-week-in-usability-productivity-part-16-everything-else/</a>
      , leveraging the functionalities offered by this solution.</p>
    <p style="margin-bottom: 0cm; line-height: 100%">At first, the
      promoter wants to get more info and add references to open/save
      dialog project improvements:<br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%"> <i>Open/Save
        dialog
        project</i></p>
    <p style="margin-bottom: 0cm; line-height: 100%"> <i>The dialogs
        now display previews for the same assortment of file types as
        Dolphin
        does (Alex Nemeth)</i></p>
    <p style="margin-bottom: 0cm; line-height: 100%"> <i>Grid Spacing
        in icons view has been tightened up to match Dolphin, allowing
        more
        to be shown in the window (Alex Nemeth)</i></p>
    <p style="margin-bottom: 0cm; line-height: 100%"><i><br>
      </i></p>
    <p style="margin-bottom: 0cm; line-height: 100%">In case that the
      writer remembers the name of the committer and knows that a
      relative
      bug report does exist, the facet in the left will be used and the
      relative
      time period will also be set (top-left):</p>
    <p style="margin-bottom: 0cm; line-height: 100%"> </p>
    <p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
        href="https://framapic.org/z4PtCZxEul5K/L3tJZ8visR4I.png">https://framapic.org/z4PtCZxEul5K/L3tJZ8visR4I.png</a></p>
    <p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
        href="https://framapic.org/DnveENis7bEa/BsKkske4RVPz.png">https://framapic.org/DnveENis7bEa/BsKkske4RVPz.png</a></p>
    <p style="margin-bottom: 0cm; line-height: 100%">The records
      returned
      are: </p>
    <p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
        href="https://framapic.org/8fv0crGCijf6/cPsbeZWO1CJH.png">https://framapic.org/8fv0crGCijf6/cPsbeZWO1CJH.png</a></p>
    <p style="margin-bottom: 0cm; line-height: 100%">so the commit in
      concern has been successfully found.</p>
    <p style="margin-bottom: 0cm; line-height: 100%"><br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%">In case that no
      committer name is available, the writer may search for sth like:</p>
    <p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
        href="https://framapic.org/wYn063MH0jPY/4zEdV8ngIidS.png">https://framapic.org/wYn063MH0jPY/4zEdV8ngIidS.png</a></p>
    <style type="text/css">p { margin-bottom: 0.25cm; line-height: 115%; }a.cjk:link {  }a.ctl:link {  }</style>
    <p style="margin-bottom: 0cm; line-height: 100%">Then following the
      search suggestion</p>
    <p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
        href="https://framapic.org/owrsQQ2a5HVW/gWUiTNz7xWTB.png">https://framapic.org/owrsQQ2a5HVW/gWUiTNz7xWTB.png</a></p>
    <p style="margin-bottom: 0cm; line-height: 100%">the relative commit
      will be returned as top result:</p>
    <p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
        href="https://framapic.org/bNDgq0cbR7J7/xVd3HJqQ40Kv.png">https://framapic.org/bNDgq0cbR7J7/xVd3HJqQ40Kv.png</a></p>
    <p style="margin-bottom: 0cm; line-height: 100%"><br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%">The same applies
      for
      the second search:</p>
    <p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
        href="https://framapic.org/qpddu38zvRJF/ssQO4MBEWt6s.png">https://framapic.org/qpddu38zvRJF/ssQO4MBEWt6s.png</a></p>
    <p style="margin-bottom: 0cm; line-height: 100%">since the relative
      commit is returned as well:</p>
    <p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
        href="https://framapic.org/g31g6x5mIOxR/5PNUInPMNxYw.png">https://framapic.org/g31g6x5mIOxR/5PNUInPMNxYw.png</a></p>
    <p style="margin-bottom: 0cm; line-height: 100%"><br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%">Moreover, although
      this is not its primary role, the solution provides some useful
      interactive visualization tools. For example, searching work on
      projects like plasma-phone-components, plasma-settings,
      plasma-mobile
      and kirigami, the tool would provide useful information regarding
      work on Plasma Mobile. So, a relative promo article could be
      accompanied with some useful statistics and references to real
      plasma
      mobile commits, like this:</p>
    <p style="margin-bottom: 0cm; line-height: 100%"><a class="western"
        href="https://framapic.org/2RW8LlxCjYkh/LbkUnVQZTyZV.png">https://framapic.org/2RW8LlxCjYkh/LbkUnVQZTyZV.png</a></p>
    <br>
    <p style="margin-bottom: 0cm; line-height: 100%">In the future, such
      a solution could be further extended indexing bugzilla data as
      well.
      As a result, reports about possible duplicates could be
      automatically
      generated and, why not, a fuzzy search engine could be offered to
      the
      bug reporters enhancing the reporting experience, avoiding
      duplicates
      and frustration about irrelevant results.</p>
    <p style="margin-bottom: 0cm; line-height: 100%">Nevertheless, there
      is a set of factors that should be considered as well. At first,
      the
      amount of commits on a project is just an indicator -among many
      others- of the activity of a project. A lot of work may happen
      behind
      the scenes, in terms of communications, design, testing etc, and
      this
      work may be committed as a single or a few commits. So,
      considering
      all commits as equal is a trap. In addition, since the tool
      measures
      the # of commits by each developer, we may think twice about the
      implications of such a tool regarding the psychological effects on
      the personality of contributors.</p>
    <p style="margin-bottom: 0cm; line-height: 100%">Do you think that
      such a tool could help KDE community? I look forward to hearing
      your
      thoughts, since I am not still convinced if working on this would
      really help the KDE ecosystem.</p>
    <p style="margin-bottom: 0cm; line-height: 100%">PS: We may look at
      other alternatives as regards to the technologies involved. I’ve
      opted for the aforementioned since I have already worked on them
      in
      the past.</p>
    <p style="margin-bottom: 0cm; line-height: 100%">PS1: If similar
      projects that I am not aware of currently exist in KDE  we
      may consider using them instead of this approach (or join efforts
      if
      they are compatible). My intention is just to start a discussion
      about how big data,
      indexing and fuzzy searching may improve onboarding and
      "promotion"
      work.</p>
    <p style="margin-bottom: 0cm; line-height: 100%">Dimitris<br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%"> </p>
    <p style="margin-bottom: 0cm; line-height: 100%"> </p>
  </body>
</html>