<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/124176/">https://git.reviewboard.kde.org/r/124176/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On June 26th, 2015, 2:05 a.m. CEST, <b>Thomas Pfeiffer</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Review from a user perspective: If a user has lots of contacts (e.g. in an enterprise setting with an LDAP containing a few thousand coworkers), will the service running in the background take up a lot of memory? And if so, can it be deactivated by those who don't want to use that much memory for that feature?
We don't want KPeople to be a burden on anyone, and we have to consider cases with many contacts.
If the memory footprint would remain small (let's say no bigger than a few dozen MB) even with a few thousand contacts, it's fine.</p></pre>
 </blockquote>




 <p>On June 26th, 2015, 10:33 a.m. CEST, <b>Martin Klapetek</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Currently the use case is not as much for Plasma desktop as it is for another project, suffice to say that there are no plans for usage of this service on desktops yet. On desktop, however, the service could be made self-killable-when-idle and dbus-started-on-demand. I can't say how big the mem footprint would be for some thousands of contacts. For about 500 it's ~15MB. There's certainly room for optimizations ;)</p></pre>
 </blockquote>





 <p>On June 26th, 2015, 11:38 a.m. CEST, <b>Alexander Potashev</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I'm writing this on Android, and I have an app that works as an offline GPS navigation and a phone book (it's called 2GIS). It includes contact info for around 300k companies in Moscow, 130k in St Petersburg and some more in other cities in Russia and a few other countries. I estimate the total number of companies to be around 2M. Let's say there's one phone number per company.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Now, any of these companies can possibly call me and I want to know which one it was. Ok, I never received calls from commercial companies in Russia from outside of Moscow and St Petersburg, but we can't disable a workflow when the user is called from numerous companies all over the world. So to implement the same as 2GIS does with the help of KPeople we need to load all these 2M phone numbers into KPeople. A resident RAM storage is clearly unacceptable here because it would take at least some hundreds of megabytes.</p></pre>
 </blockquote>








</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">KPeople is also meant to power the phonebook. Now if you do have all those phone numbers present on the phone _and_ in the actual phonebook, then I think you have other problems than this service. Just opening the address book powered by kpeople would load all those 2M contacts into memory and would probably take ages just to show up. So for your use case, KPeople is probably not what you're looking for anyway (and it's not meant to be).</pre>
<br />










<p>- Martin</p>


<br />
<p>On June 25th, 2015, 3:33 p.m. CEST, Martin Klapetek wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for KDEPIM and Telepathy.</div>
<div>By Martin Klapetek.</div>


<p style="color: grey;"><i>Updated June 25, 2015, 3:33 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kpeople
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This is a dbus service that runs in the background and returns contact ids for queried contact details, for example asking for a phone number would return a contact id from which a PersonData class can be constructed, thus making all contact data available for display.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This is very useful when eg. receiving a phone call, a tp approver starts up showing the incoming call (this needs to be instant) and once it's shown up, it should show a contact name for the number as soon as possible. However loading all the datasources and populating the model can be slow and speed is critical in this case. Therefore it's a dbus service which responds very fast and there's no need to initialize anything as it can be loaded in the background after system starts and it keeps itself always up to date.</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Unit test included; also tested with qdbus.</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>autotests/CMakeLists.txt <span style="color: grey">(233e7d9)</span></li>

 <li>autotests/servicetest.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/servicetest.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/CMakeLists.txt <span style="color: grey">(59bc915)</span></li>

 <li>src/backends/abstractcontact.h <span style="color: grey">(ce22cbc)</span></li>

 <li>src/backends/abstractcontact.cpp <span style="color: grey">(f01236b)</span></li>

 <li>src/global.h <span style="color: grey">(e1d07ce)</span></li>

 <li>src/global.cpp <span style="color: grey">(b3595ca)</span></li>

 <li>src/service/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/service/main.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/service/org.kde.KPeople.service.in <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/service/service.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/service/service.cpp <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/124176/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>







  </div>
 </body>
</html>