https://agateau.com/tags/side-projects/feedPosts tagged side-projects2014-11-26T18:36:38+01:00Aurélien Gâteaupython-feedgenhttps://agateau.com/2014/lightweight-project-managementLightweight Project Management2014-11-13T22:52:09+01:00<p>Hi, my name is Aurélien and I have a problem: I start too many side projects. In fact my problem is even worse: I don't plan to stop running them, or creating new ones.</p>
<p>Most of those projects are tools I created to fill a personal need, but a few of them evolved to the point where I believe they can be useful to others. I restrain from talking about them however because I don't have the time to turn them into proper projects: creating a home page for them, doing regular releases and so on. This means they only exist as git repositories and end up staying unknown, unless I bump into someone who could benefit from one of them, at which point I mention the git repository.</p>
<p>Running software from git repositories is not always a great experience though: depending on how a project is managed, upgrading to the latest content can be a frustrating game of hit-and-miss if one cannot rely on the "master" branch being stable. I don't want others to experience random regressions. To address this, I decided that starting today, I will now run such potentially-useful-to-someone-else side-projects using what I am going to pompously call my "Lightweight Project Management Policy":</p>
<ul>
<li>
<p>The "master" branch is always stable. You are encouraged to run it.</p>
</li>
<li>
<p>There is no "release" branches and no manually created release archives, but there <em>may</em> be release tags if need arise.</p>
</li>
<li>
<p>All developments happen in the "dev" branch or in topic branches which are then merged into "dev".</p>
</li>
<li>
<p>To avoid regressions, code inside the "dev" branch does not get merged into "master" until it has received at least three days of real usage.</p>
</li>
<li>
<p>The project homepage is the README.md file at the root of the git repository.</p>
</li>
<li>
<p>The policy is mentioned in the README.md.</p>
</li>
</ul>
<p>Any project managed with this policy should thus always be usable as long as you stick with the "master" branch, and it should not take me too much time to keep them alive.</p>
<p>In the next weeks, I am going to "migrate" some of my projects to this policy. Once they are ready, I'll blog about them. Who knows, maybe you will find some of them useful?</p>2014-11-13T22:52:09+01:00https://agateau.com/2014/colorpickColorpick2014-11-26T18:36:38+01:00<p>Recently I wrote about my so-called "<a href="http://agateau.com/2014/lightweight-project-management">lightweight project management policy</a>". I am going to start slowly and present a small side-project: Colorpick.</p>
<p>Colorpick is a color picker and contrast checker. I originally wrote it to help me check and fix the background and foreground colors of the Oxygen palette to ensure text was readable. Since then I have been using it to steal colors from various places and as a magnifier to inspect tiny details.</p>
<p>The main window looks like this:</p>
<p><img alt="Main Window" src="https://agateau.com/2014/colorpick/mainwindow.png"/></p>
<p>Admittedly, it's a bit ugly, especially the RGB gradients (KGradientSelector and the Oxygen style do not play well together). Nevertheless, it does the job, which is what side-projects are all about.</p>
<p>Here is an annotated image of the window:</p>
<p><img alt="Annotated Window" src="https://agateau.com/2014/colorpick/annotated.png"/></p>
<ol>
<li>
<p>The current color: clicking it brings the standard KDE color dialog. The main reason it's here is because it can be dragged: drag the color and drop on any application which supports color.</p>
</li>
<li>
<p>The color in hexadecimal.</p>
</li>
<li>
<p>Luminance buttons: click them to adjust the luminance of the color.</p>
</li>
<li>
<p>Color picker: brings the magnifier to pick a color from the screen. One nice thing about this magnifier is that it can be controlled from the keyboard: roughly move the mouse to the area where you want to pick a color then position the picker precisely using the arrow keys. When the position is OK: press Enter to pick the color. Pressing Escape or right-clicking closes the magnifier.</p>
<p><img alt="Magnifier" src="https://agateau.com/2014/colorpick/magnifier.png"/></p>
<p><em>Picking the color of the 1-pixel door knob from the home icon. The little inverted-color square in the center shows which pixel is being picked.</em></p>
</li>
<li>
<p>Copy button: clicking this button brings a menu with the color expressed in different formats. Selecting one entry copies the color to the clipboard, ready to be pasted.</p>
<p><img alt="Copy menu" src="https://agateau.com/2014/colorpick/copy-menu.png"/></p>
</li>
<li>
<p>RGB sliders: not much to say here. Drag the cursors or enter values, your choice.</p>
</li>
<li>
<p>Contrast test text: shows some demo text using the selected background and foreground colors, together with the current contrast value. It lets you know if your contrast is good enough according to <a href="http://www.w3.org/TR/WCAG20/#visual-audio-contrast">http://www.w3.org/TR/WCAG20/#visual-audio-contrast</a>.</p>
</li>
</ol>
<p>Interested? The project is on GitHub at <a href="https://github.com/agateau/colorpick">https://github.com/agateau/colorpick</a>. Get it with <code>git clone https://github.com/agateau/colorpick</code> then follow the instructions from the <a href="https://github.com/agateau/colorpick/blob/master/INSTALL.md">INSTALL.md</a> file.</p>2014-11-26T18:36:38+01:00