| CARVIEW |
Select Language
HTTP/2 200
server: GitHub.com
content-type: application/xml
last-modified: Sat, 30 Sep 2017 16:29:18 GMT
access-control-allow-origin: *
etag: W/"59cfc65e-5660"
expires: Sat, 27 Dec 2025 11:24:30 GMT
cache-control: max-age=600
content-encoding: gzip
x-proxy-cache: MISS
x-github-request-id: 6999:3ABDEF:63D5E9:6FE1F7:694FBF95
accept-ranges: bytes
age: 0
date: Sat, 27 Dec 2025 11:14:30 GMT
via: 1.1 varnish
x-served-by: cache-bom-vanm7210097-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1766834071.696301,VS0,VE204
vary: Accept-Encoding
x-fastly-request-id: 62e52a2af9e7e04088b3829a1715ecceba232a92
content-length: 5106
Gasuleg
Hi, welcome to my blog!
https://gasuleg.github.io//
Sat, 30 Sep 2017 16:29:16 +0000
Sat, 30 Sep 2017 16:29:16 +0000
Jekyll v3.5.2
-
Conclusion Google Summer of Code 2017 with GNU
<p><img src="https://developers.google.com/open-source/gsoc/resources/downloads/GSoC-icon-192.png" alt="alt text" title="GSoC" />
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/The_GNU_logo.png/220px-The_GNU_logo.png" alt="alt text" title="GNU" />
<img src="https://ring.cx/profiles/tatooine/themes/naboo/images/ring-bomor/tagline/logo-ring-tagline-EN-couleur.svg" alt="alt text" title="Ring" height="100px" /><br /></p>
<h2 id="gnu-ring-project-with-gnu-organisation">GNU Ring project with GNU organisation</h2>
<h1 id="1-me">1. Me</h1>
<p>Before getting into the thick of my project, let me present myself: <br />
I am Olivier Grégoire (Gasuleg), and I study IT engineering at École de Technologie Supérieure in Montreal. <br />
I am a technician in electronics, and I study now computing sciences. <br />
I applied to GSoC because I love the concept of the project that I worked on and I really wanted to be part of it.</p>
<h1 id="2-my-project">2. My Project</h1>
<p>During this GSoC, I worked on the <a href="https://ring.cx/"> GNU Ring </a> project. <br />
<strong>What is ring?</strong><br /></p>
<ul>
<li>A telephone: a simple tool to connect, communicate and share.</li>
<li>A teleconferencing tool: easily join calls to create conferences with multiple participants.</li>
<li>A media sharing tool: Ring supports a variety of video input options, including mutliple cameras and image and video files, and the selection of audio inputs and outputs; all this is supported by multiple high quality audio and video codecs.</li>
<li>A messenger: send text messeges during calls or out of calls (as long as your peer is connected).</li>
<li>A building block for your IoT project: re-use the universal communications technology of Ring with its portable library on your system of choice. <br />
<a href="https://ring.cx/en/about/practical">– <cite>ring.cx</cite> </a></li>
</ul>
<p><strong>What I need to do?</strong><br /></p>
<p>This project is, at the moment, unstable due to a lack of automated tests. Only a part of the code is tested. I need to improve this. <br />
To do that, I need to:</p>
<ul>
<li>Research and test automation strategies that integrate the compilation system and Jenkins verification like the SIP tests</li>
<li>Implement some unit tests to check the components <br /></li>
</ul>
<p>See more in <a href="https://github.com/Gasuleg/proposal-GNU/blob/master/proposalGNU.pdf">my proposal</a>!</p>
<h1 id="3-the-code">3. The Code</h1>
<p><strong>Links to my work</strong> <br /></p>
<p>Here are the links to the code I was working on all throughout the Google Summer of Code:</p>
<table>
<thead>
<tr>
<th style="text-align: left">Patch</th>
<th style="text-align: left">Status</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/7167/">Black box testing sip </a></td>
<td style="text-align: left">Merged</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/7677/8">New unit test: smartools </a></td>
<td style="text-align: left">Merged</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/7679/8">New unit test:account_factory </a></td>
<td style="text-align: left">Merged</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/7680/8">New unit test: util classes </a></td>
<td style="text-align: left">On Review</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/7681/7">New unit test: archiver, conference, preferences</a></td>
<td style="text-align: left">On Review</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/7682/7">New unit test: dring, threadloop </a></td>
<td style="text-align: left">On Review</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/7799/3">Documentation </a></td>
<td style="text-align: left">On Review</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/7311/">Refactoring + video_input unit test</a></td>
<td style="text-align: left">Abandoned</td>
</tr>
</tbody>
</table>
<p class="mbtablestyle"><br />
<strong>How to use the code?</strong><br />
Follow the instructions to <a href="https://tuleap.ring.cx/plugins/mediawiki/wiki/ring/index.php/Build_Instructions">build the daemon</a> and instead of doing “make”, do “make check”. You will see something composed of:<br /></p>
<ul>
<li>Test automation strategies<br />
<img src="https://github.com/Gasuleg/gasuleg.github.io/blob/master/_includes/sipTest.png?raw=true" alt="alt text" title="test SIP" /><br /></li>
<li>Unit test
<img src="https://github.com/Gasuleg/gasuleg.github.io/blob/master/_includes/unitTest.png?raw=true" alt="alt text" title="unit test" /><br /></li>
</ul>
<p><strong>Some explanations of the code</strong><br />
The tests are based on <a href="https://cppunit.sourceforge.net/doc/cvs/index.html">CPPunit framework</a>.<br />
I created some Black box testing to do some calls using SIP protocol. To do that, I created scenarios using <a href="https://sipp.sourceforge.net/doc/reference.html">SIPp</a> . <br />
I also create a lot of unit tests.<br /></p>
<p><strong>Difficulties encountered</strong><br />
My project was a little bit difficult to setup because I never touch autotools before that.<br />
The sip tests were not really difficult to create. <a href="https://sipp.sourceforge.net/doc/reference.html">SIPp</a> is really easy to use.<br />
The unit test part was more tricky. It’s really easier to do the tests before coding like the <a href="https://en.wikipedia.org/wiki/Test-driven_development">Test-driven_development</a> said. Here the code is already written and I need to test it. So, I needed to create tests based on the code and not what he needed to do. Also, I got some issues with classes who were really linked together so I couldn’t make unit test with it.</p>
<h1 id="4-whats-next">4. What’s next?</h1>
<ul>
<li>Merge all the patchs</li>
<li>Add <a href="https://https://gerrit-ring.savoirfairelinux.com/#/c/7799/cc.gnu.org/onlinedocs/gcc-4.7.3/gcc/Gcov.html">gcov </a>to know the code coverage</li>
<li>Increase the code coverage</li>
</ul>
<h1 id="5-thanks">5. Thanks</h1>
<p>I would like to thank the following:<br /></p>
<ul>
<li>The <a href="https://summerofcode.withgoogle.com">Google Summer of Code</a> organisation, for this wonderful experience. <br /></li>
<li><a href="https://www.gnu.org">GNU</a>, for accepting my project proposal and letting me embark on this fantastic adventure. <br /></li>
<li>My mentor, <a href="https://github.com/yomgui1">Mr Guillaume Roguez</a>, and all the ring team, for being there to help me.</li>
</ul>
Sat, 19 Aug 2017 12:57:51 +0000
https://gasuleg.github.io//gsoc2017/final_report/2017/08/19/Final-Evaluation.html
https://gasuleg.github.io//gsoc2017/final_report/2017/08/19/Final-Evaluation.html
GSoC2017
Final_report
-
Conclusion Google Summer of Code 2016
<p><strong>SmartInfo project with Debian</strong>
<img src="https://developers.google.com/open-source/gsoc/resources/downloads/GSoC-icon-192.png" alt="alt text" title="Gsoc2016" /></p>
<p><strong>1. Me</strong></p>
<p>Before getting into the thick of my project, let me present myself: <br />
I am Olivier Grégoire (Gasuleg), and I study IT engineering at École de Technologie supérieure in Montreal. <br />
I am a technician in electronics, and I began object-oriented programming just last year. <br />
I applied to GSoC because I loved the concept of the project that I would work on and I really wanted to be part of it. I also wanted to discover the word of the free software.</p>
<p><strong>2. My Project</strong></p>
<p>During this GSoC, I worked on the <a href="https://ring.cx/"> Ring </a> project.</p>
<p><em>“Ring is a free software for communication that allows its users to make audio or video calls, in pairs or groups, and to send messages, safely and freely, in confidence.</em></p>
<p><em>Savoir-faire Linux and a community of contributors worldwide develop Ring. It is available on GNU/Linux, Windows, Mac OSX and Android. It can be associated with a conventional phone service or integrated with any connected object.</em></p>
<p><em>Under this very easy to use software, there is a combination of technologies and innovations opening all kinds of perspectives to its users and developers.</em></p>
<p><em>Ring is a free software whose code is open. Therefore, it is not the software that controls you.</em></p>
<p><em>With Ring, you take control of your communication!</em></p>
<p><em>Ring is an open source software under the GPL v3 license. Everyone can verify the codes and propose new ones to improve the software’s performace. It is a guarantee of transparency and freedom for everyone!”</em> <br />
Source: <a href="https://ring.cx/en/about/practical">ring.cx </a></p>
<p>The problem is about the typical user of Ring, the one who don’t use the terminal to launch Ring. He has no information about what has happened in the system. My goal is to create a tool that display statistics of Ring.</p>
<p><strong>3. Quick Explanation of What My Program Can Do</strong></p>
<p><strong>The Code</strong> <br /></p>
<p>Here are the links to the code I was working on all throughout the Google Summer of Code (You can see what I have done after the GSoC by clicking on the newest patchs):</p>
<table>
<thead>
<tr>
<th style="text-align: left">Patch</th>
<th style="text-align: left">Status</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/4315/44">Daemon </a></td>
<td style="text-align: left">Merged</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/4388/30">Lib Ring Client (LRC) </a></td>
<td style="text-align: left">On Review</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/4384/37">Gnome client </a></td>
<td style="text-align: left">On Review</td>
</tr>
<tr>
<td style="text-align: left"><a href="https://gerrit-ring.savoirfairelinux.com/#/c/4234/2">Remove unused code </a> </td>
<td style="text-align: left">Merged</td>
</tr>
</tbody>
</table>
<p><br />
<strong>What Can Be Displayed?</strong> <br />
This is the final list of information I can display and some ideas on what information we could display in the future:</p>
<table>
<thead>
<tr>
<th style="text-align: left">Information </th>
<th style="text-align: left">Details</th>
<th style="text-align: left">Done?</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">Call ID</td>
<td style="text-align: left">The identification number of the call</td>
<td style="text-align: left">Yes</td>
</tr>
<tr>
<td style="text-align: left">Resolution</td>
<td style="text-align: left">Local and remote</td>
<td style="text-align: left">Yes</td>
</tr>
<tr>
<td style="text-align: left">Framerate</td>
<td style="text-align: left">Local and remote</td>
<td style="text-align: left">Yes</td>
</tr>
<tr>
<td style="text-align: left">Codec</td>
<td style="text-align: left">Audio and video in local and remote </td>
<td style="text-align: left">Yes</td>
</tr>
<tr>
<td style="text-align: left">Bandwidth</td>
<td style="text-align: left">Download and upload</td>
<td style="text-align: left">No</td>
</tr>
<tr>
<td style="text-align: left">Performance use</td>
<td style="text-align: left">CPU, GPU, RAM</td>
<td style="text-align: left">No</td>
</tr>
<tr>
<td style="text-align: left">Security level</td>
<td style="text-align: left">In SIP call</td>
<td style="text-align: left">No</td>
</tr>
<tr>
<td style="text-align: left">Connection time</td>
<td style="text-align: left"> </td>
<td style="text-align: left">No</td>
</tr>
<tr>
<td style="text-align: left">Packets lost</td>
<td style="text-align: left"> </td>
<td style="text-align: left">No</td>
</tr>
</tbody>
</table>
<p><br />
To launch it you need to right click on the call and click on “Show advanced information”.<br />
<img src="https://raw.githubusercontent.com/Gasuleg/gasuleg.github.io/master/_includes/smartInfo.png" alt="alt text" title="SmartInfo" /><br />
To stop it, same thing: right click on the call and click on “Hide advanced information”.<br /></p>
<p><strong>4. More Details About My Project</strong></p>
<p>My program needs to retrieve information from the daemon (LibRing) and then display it in gnome client. So, I needed to create a patch for the daemon, the D-Bus layer (in the daemon patch), LibRingClient and the GNU/Linux (Gnome) client. <br /></p>
<p>This is what the architecture of the project looks like. <br />
<img src="https://raw.githubusercontent.com/Gasuleg/gasuleg.github.io/master/_includes/organisation.jpg" alt="alt text" title="Ring organisation" /> <br />
source:<a href="https://ring.cx/en/about/technical"> ring.cx </a></p>
<p>And this is how I implemented my project.<br />
<img src="https://raw.githubusercontent.com/Gasuleg/gasuleg.github.io/master/_includes/globalSchema.png" alt="alt text" title="My project" /> <br /></p>
<p><strong>5. Future of the Project</strong></p>
<ul>
<li>Add background on the gnome client <br /></li>
<li>Implement the API smartInfoHub in all the other clients <br /></li>
<li>Gather more information, such as bandwidth, resource consumption, security level, connection time, number of packets lost and anything else that could be deemed interesting<br /></li>
<li>Display information for every participant in a conference call. I began to implement it for the daemon on <a href="https://gerrit-ring.savoirfairelinux.com/#/c/4315/25"> patch set 25 </a>.</li>
</ul>
<p><strong>Weekly report link</strong></p>
<ul>
<li><a href="https://lists.debian.org/debian-outreach/2016/06/msg00006.html"> Week 1 & 2</a><br /></li>
<li><a href="https://lists.debian.org/debian-outreach/2016/06/msg00026.html"> Week 3</a><br /></li>
<li><a href="https://lists.debian.org/debian-outreach/2016/06/msg00045.html"> Week 4</a><br /></li>
<li><a href="https://lists.debian.org/debian-outreach/2016/06/msg00068.html"> Week 5</a><br /></li>
<li><a href="https://lists.debian.org/debian-outreach/2016/07/msg00006.html"> Week 6</a><br /></li>
<li><a href="https://lists.debian.org/debian-outreach/2016/07/msg00021.html"> Week 7</a><br /></li>
<li><a href="https://lists.debian.org/debian-outreach/2016/07/msg00046.html"> Week 8</a><br /></li>
<li><a href="https://lists.debian.org/debian-outreach/2016/07/msg00064.html"> Week 9</a><br /></li>
<li><a href="https://lists.debian.org/debian-outreach/2016/08/msg00005.html"> Week 10</a><br /></li>
<li><a href="https://lists.debian.org/debian-outreach/2016/08/msg00011.html"> Week 11</a><br /></li>
<li><a href="https://lists.debian.org/debian-outreach/2016/08/msg00038.html"> Week 12</a><br /></li>
</ul>
<p><strong>Thanks</strong></p>
<p>I would like to thank the following:<br /></p>
<ul>
<li>The <a href="https://summerofcode.withgoogle.com">Google Summer of Code</a> organisation, for this wonderful experience. <br /></li>
<li><a href="https://wiki.debian.org/SummerOfCode2016">Debian</a>, for accepting my project proposal and letting me embark on this fantastic adventure. <br /></li>
<li>My mentor, <a href="https://github.com/yomgui1">Mr Guillaume Roguez</a>, and all his team, for being there to help me.</li>
</ul>
Fri, 19 Aug 2016 12:57:51 +0000
https://gasuleg.github.io//gsoc2016/final_report/2016/08/19/Final-Evaluation.html
https://gasuleg.github.io//gsoc2016/final_report/2016/08/19/Final-Evaluation.html
GSoC2016
Final_report