Piment Noir Blog - Mot-clé - FOSS
The personal blog of a problem solver and a visual thinker
2023-08-05T11:58:28+02:00
Piment Noir Corp.
urn:md5:12b9090e33ddd6f31a6edee0c681de61
Dotclear
LibreELEC for ODROID-U3
urn:md5:c5c09eaee2db673400938c71c3dcbc4d
2016-12-25T22:07:00+01:00
2016-12-25T22:08:19+01:00
fraggle
Computer Science
ARM
FOSS
Innovation
Kodi
Smart Mediacenter
<p>During the last weeks, I've finally managed to find some time to work on the <a href="http://wiki.piment-noir.org/doku.php?id=fr:annonce_beta_test" hreflang="fr" title="smart media center project">smart media center project</a>.<br />
For the beta-test, I've made a <a href="https://kodi.tv" hreflang="en" title="XBMC/Kodi">XBMC/Kodi</a> portage to <a href="http://www.hardkernel.com/main/products/prdt_info.php?g_code=g138745696275" hreflang="en" title="ODROID-U3">ODROID-U3</a> hardware on the default GNU/Linux distribution shipped by <a href="http://www.hardkernel.com/" hreflang="en" title="hardkernel">hardkernel</a>. The portage was heavily patched to permit to gather media usage statistics : number of view, usage total time, usage frequency, and so on.<br />
And for that purpose, the <a href="http://piment-noir.org/SD%20images/" hreflang="fr" title="image">image</a> based on the previous Ubuntu LTS I've shipped with a repackaged <a href="https://kodi.tv" hreflang="en" title="Kodi">Kodi</a> was good enough !<br />
But the sole purpose of this work was to automate <a href="https://kodi.tv" hreflang="en" title="Kodi">Kodi</a> with some AI behind the scene, which was not a wise idea, I have to admit. Most people are pissed off when a machine decide for them. And AI algorithms were too hard to tune and computing heavy to guess when and which next media will be played based on previous usage and user feedback.<br />
But because of this issues throwing away all the work done would have been a huge mistake, so I've decided to keep the data collected so far and changed the project goal into making a smart library view instead of the <a href="https://kodi.tv" hreflang="en" title="Kodi">Kodi</a> automation. And I've finally found what I need to make this smart library view for music : <a href="http://lelele.io/bliss.html" hreflang="en" title="bliss music analyzer">bliss music analyzer</a>.<br />
So I've decided to :</p>
<ul>
<li>Use <a href="https://libreelec.tv" hreflang="en" title="LibreELEC">LibreELEC</a> GNU/Linux distribution for <a href="https://kodi.tv" hreflang="en" title="Kodi">Kodi</a> to integrate my <a href="http://www.hardkernel.com/main/products/prdt_info.php?g_code=g138745696275" hreflang="en" title="ODROID-U3">ODROID-U3</a> portage work to avoid to loose the current beta testers;</li>
<li>Implement a <a href="https://kodi.tv" hreflang="en" title="Kodi">Kodi</a> add-on based on <a href="http://lelele.io/bliss.html" hreflang="en" title="bliss music analyzer">bliss music analyzer</a> to build the smart music library view and smart music playlist;</li>
<li>Integrate <a href="http://lelele.io/bliss.html" hreflang="en" title="bliss music analyzer">bliss music analyzer</a> and my <a href="https://kodi.tv" hreflang="en" title="Kodi">Kodi</a> add-on into upstream <a href="https://kodi.tv" hreflang="en" title="Kodi">Kodi</a> and <a href="https://libreelec.tv" hreflang="en" title="LibreELEC">LibreELEC</a> projects.</li>
</ul>
<p>So far, only the first item is almost finished. The first images of the latest <a href="https://libreelec.tv" hreflang="en" title="LibreELEC">LibreELEC</a> alpha for <a href="http://www.hardkernel.com/main/products/prdt_info.php?g_code=g138745696275" hreflang="en" title="ODROID-U3">ODROID-U3</a> are available here : <a href="http://people.piment-noir.org/~fraggle/download/libreelec/Odroid_U2/" hreflang="en" title="http://people.piment-noir.org/~fraggle/download/libreelec/Odroid_U2/">http://people.piment-noir.org/~fraggle/download/libreelec/Odroid_U2/</a>. You can download them either for a microSD card (directory SD) or a eMMC module (directory eMMC). The gunziped images can be installed with the <a href="https://libreelec.tv/downloads/" hreflang="en" title="LibreELEC USB-SD creator">LibreELEC USB-SD creator</a>.<br />
The 16 Go zipped images are pre-configured for french people, mainly the former beta testers, to ease the transition. This french localized images can be installed with <a href="http://wiki.piment-noir.org/doku.php?id=smc:documentation#image_disque" hreflang="fr" title="dd">dd</a> or <a href="https://sourceforge.net/projects/win32diskimager/" hreflang="en" title="Win32 Disk Imager">Win32 Disk Imager</a>.<br />
This <a href="https://libreelec.tv" hreflang="en" title="LibreELEC">LibreELEC</a> <a href="http://www.hardkernel.com/main/products/prdt_info.php?g_code=g138745696275" hreflang="en" title="ODROID-U3">ODROID-U3</a> portage have known issues :</p>
<ul>
<li>You can't install <a href="https://libreelec.tv" hreflang="en" title="LibreELEC">LibreELEC</a> add-ons;</li>
<li>Auto update is currently not working, but manual updates are really easy to do.</li>
</ul>
<p>It's my Xmas gift, let's hope you will enjoy it ;-)</p>
Upstreaming your code (or designing a proper code flow)
urn:md5:61f46d25e5e35ec9e546c1eba1f9f353
2016-11-09T15:13:00+01:00
2021-09-20T18:53:59+02:00
fraggle
Computer Science
Development
FOSS
Hacking
<p>When it comes to Free and Open Source Software (aka FOSS), one of the most critical part to make a project successful is the code flow handling. It indeed represents the way you're going to welcome external contributions.<br />
Most projects have their own contributions rules that differ from one project to another and depend on the very nature of the project. A web application written in PHP/SQL will have very different requirements in this aspect than a GNU/Linux distribution.<br />
The <a href="https://fr.wikipedia.org/wiki/Gestion_de_versions" hreflang="fr" title="SCM">SCM</a> tool used by the project will orient the technical details of external contributions. If the project is hosted on <a href="https://github.com" hreflang="fr" title="github">github</a> or <a href="https://gitlab.com/" hreflang="en" title="gitlab">gitlab</a>, all theses details are already set in stone.</p>
<p>All the other aspects then need to be defined. It goes from coding style to very specific rules like the need for a unit test for every single <a href="https://fr.wikipedia.org/wiki/Interface_de_programmation" hreflang="fr" title="API">API</a> change that contributors might push. Most of the time these rules are written in a document in the source code that every single contributor should read before submitting changes.<br /></p>
<p>So for people that might contribute to a bunch of FOSS projects like me, it's a pain in the ass to remember all theses rules. There's not even a basic skeleton that FOSS projects might have used to incorporate their specific needs. Someone should really write such a document (and this someone will not be me :-)).<br />
I'll say that external contributors might or not continue to push changes to upstream given the way their contributions are welcomed, especially the one that disrespect the contribution rules. If the contributor is gently guided during the code incorporation process, the project might win a regular contributor, if he is ignored because of the disrespect or rejected without any explanations and even worse blamed in public after the code review, the project will loose this contributor forever. Trust me, being ignored, rejected or ashamed during the review of your contribution is way too frequents in FOSS projects. All of these set the global project ambiance and I'll say that a bunch of FOSS projects out there do not have a friendly ambiance and still stand because of one or two contributors that do not understand why nobody stay in the long run.</p>