tag:blogger.com,1999:blog-66979262941085378162024-02-20T19:25:28.894+01:00Pool of oblivionBecause the World Wide Web keeps on growing - as the universe does - chances are that most that is added to it, will be lost or forgotten.Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.comBlogger157125tag:blogger.com,1999:blog-6697926294108537816.post-50397221506792052642018-08-21T18:36:00.001+02:002019-01-02T14:04:23.975+01:00This was 2018!<div dir="ltr">
</div>
<div>Well, an intense 2018 : traveling and climbing with old and new friends, making steady progress in climbing level, learning new techniques, practising and refining them, both in climbing and professionally :</div><ul>
<li>FOSDEM<br></li>
<li>Config management Camp in Ghent</li>
<li>Climbing in Gorges du Tarn en Gorges de la Jonte with Vertical Thinking, including two multipitches (Le jardin enchanté, and diagonal du Gogol)</li>
<li>Climbing in Fontainebleau with Alex and Tom, doing lots of yellow, orange and blue routes in L'éléphant, Apremont <u>and</u> Roche aux sabots.</li>
<li>Climbing trip to Ettringen, practicing some trad techniques, first time climbing Basalt</li>
<li>Climbing trip with Vertical Thinking to Guillestre (Haut Val Durance), doing 2 nice multipitches (4-5 pitches including a 6a)</li>
<li>Climbing day with Koen and Wouter in Moha</li>
<li>Visiting Romania (Moldova and Transilvania region) with Eduard and Ecatarina : Lady's rock, Vatra Dornei, Dochia Caban and Toaca Peak, Transfagarasan, Sighisoara, Bran castel, Brasov, Iasi</li>
<li>Short citytrip in Vienna (during a 22h layover between two flights)</li><li>Multipitch climbing with Koen in Yvoir, also exploring Anhée</li><li>Climbing training working towards 6c.</li><li>Percona Live Europe in Frankfurt</li><li>Climbing trip to Siurana with Rouslan and Rat : leading my first 6b (redpoint), 6b+ toprope and projecting a 7a</li><li>Quick visit to Barcelona</li><li>Visiting 35C3 conference in Leipzig, another 4 days of infosec, IT, technology and science. First year as an 'angel', volunteering to help with some tasks at the conference. Unfortunately, bound to my hotel room due to illness for half of the conference. Luckily, all talks are recorded and streamed, so I could I could follow a few from my bed : https://media.ccc.de</li><li>Spending New Year's Eve in a doctor's office and looking for a pharmacy, due to earlier mentioned illness.</li>
</ul><div><br></div><div>Plans for 2019 :</div><div>- more climbing : training for 6c/7a, fall-training to get more comfortable while leading, climbing trip to Buis-les-baronies in April, maybe a trip to Boulder, Colorado, possibly an alpine experience in the summer or a climbing trip in the US west coast in autumn</div><div>- continue Rock maintenance with Belgian Rebolting Team.</div><div>- find a new house, preferably with a small garden</div><div>- conferences : FOSDEM, Config Management Camp, Percona Live (Austin, Texas), Percona Live Europe, 36C3</div><div>- first time Rock Werchter (Tool is coming)</div>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-70679860262620203452018-01-01T16:38:00.000+01:002018-01-01T16:41:13.112+01:00Overview of 2017<div>
Well, 2017 was exciting! A new job and a lot of climbing in Belgium, California and France : KVB4 training, crag maintenance weekends with BRT, trips to Fontainebleau and Freyr :</div>
<div>
<br /></div>
<ul>
<li>First BRT weekend of the year : exploration and first works in new climbing site in Spontin, some langlaufing on Sunday</li>
<li><a href="https://archive.fosdem.org/2017/">FOSDEM 2017</a></li>
<li>Got selected for a sysadmin position at the ICT department of Ghent University</li>
<li>Joining BRT on Sunday for climbing in Freyr</li>
<li>More rock maintenance in Spontin, climbing a few routes in Pont-a-Lesse on Sunday</li>
<li>Climbing in Gorge du Tarn and Gorge de la Jonte with Vertical Thinking, leadclimbing up to 6a, finished a 6a+ toprope (Fuck the Curve, De Que Fas a Qui), 3 multipitches (Jardin Enchanté, Roc d'Aiguile, Le Bitard), discovered a nice and quiet climbing area at the end of the Jonte valley, called Pauparelle, close to Meyrueis, well equiped, 4 to 6a)</li>
<li>Introducing Alex and Tom to bouldering in Fontainebleau during a 4 day climbing trip.</li>
<li>Second trip to Fontainebleau with Alwyn, Pieter and Maene.</li>
<li>Started working as Linux System Administrator at the ICT department (DICT) of Ghent University</li>
<li>Icinga2 training in Amsterdam</li>
<li>Trip to Le Marche in Italy, visiting Rome and Milan on the way home by train.</li>
<li>KVB4 training in La Bérarde, learning basics of trad climbing, using mobile protection, (self) rescue techniques, a lot of knots (HMS and Alpine slipknot to the rescue!) and tips and tricks to avoid tricky situations when climbing in semi-alpine areas and how to get out of them.</li>
<li><a href="https://ruleant.blogspot.be/2018/01/climbing-in-california-2017.html">Climbing trip to California</a>, visiting Yosemite, Bishop and Joshua Tree, being fortunate to meet some nice people to climb with. It was a nice combination of comfortable sports climbing (Owens River Gorge), getting some experience in trad and crack climbing in Yosemite, and toproping harder crack climbing routes in J-Tree.</li>
<li>positive final evaluation for the trial period in my new Linux Sysadmin position</li>
<li>Visited <a href="https://media.ccc.de/c/34c3">34C3</a>, for the first time in Leipzig. Yet again an interesting 4 days of conference on IT, security, policy and science.</li>
</ul>
<div>
<br /></div>
<div>
<div>
Plans for 2018 :</div>
<div>
<ul>
<li>More crag maintenance with BRT and climbing (trad), maybe another climbing trip to California or multipitch climbing in France</li>
<li>Conferences : FOSDEM, 35C3</li>
<li>Pick up on contributing to Open Source again</li>
</ul>
</div>
<div>
</div>
</div>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-20483962065969984572018-01-01T16:05:00.000+01:002018-01-01T16:27:34.790+01:00Climbing in California 2017From October 25th 2017 to November 9th 2017, I went to California on a climbing trip. The goal was to build experience in trad and crack climbing and explore some climbing areas :<br />
<h2>
Yosemite</h2>
<h3>
Day 1 : Glacier Point Apron</h3>
<div>
With Patricia</div>
<br />
<ul>
<li>Harry Daley (5.8, 2 pitches)</li>
</ul>
<h3>
Day 2 : Swan Slab </h3>
<div>
With Rhea and Dan :</div>
<ul>
<li>Oak Tree Flake (5.6) : trad lead</li>
<li>Grant's Crack (5.9)</li>
<li>Lena's Lieback (5.9)</li>
<li>Claude's delight (5.7)</li>
</ul>
<div>
With Rhea :</div>
<ul>
<li>Unnamed Crack (5.9) * : first trad lead while placing gear</li>
<li>Unnamed Crack (5.7) *</li>
</ul>
* Swan Slab, route E (5.7) and F (5.9) in Super Topo Yosemite Valley Free climbs (p. 96)<br />
<br />
<h2>
Bishop</h2>
<h3>
Day 1 : Owens river Gorge (Central Gorge)</h3>
<div>
With Spence and Sierra, bolted routes</div>
<div>
<br /></div>
<h4>
Warm Up wall</h4>
<div>
<a href="https://www.mountainproject.com/area/105891387/warm-up-wall">Mountain project info</a></div>
<div>
<ul>
<li><a href="https://www.mountainproject.com/route/105891401/clip-jr">Clip Jr.</a> (5.6)</li>
<li><a href="https://www.mountainproject.com/route/105897513/high-seas">High Seas</a> (5.6)</li>
</ul>
<h4>
Great Wall of China - Left</h4>
</div>
<div>
<a href="https://www.mountainproject.com/area/105846087/great-wall-of-china">Mountain project info</a></div>
<div>
<ul>
<li>Enter the dragon (5.8)</li>
<li>China Doll (5.8)</li>
</ul>
<div>
<h3>
Day 2 : Owens river Gorge (Upper Gorge)</h3>
<div>
With Spence and Sierra, bolted routes</div>
<div>
<br /></div>
<h4>
Upper Elbow Room</h4>
<div>
<a href="https://www.mountainproject.com/area/105907277/upper-elbow-room">More info</a></div>
<div>
<ul>
<li>For Patricia (5.7)</li>
<li>Frank (5.9)</li>
<li>Stella (5.8) : very fun!</li>
</ul>
<h2>
Joshua Tree</h2>
</div>
</div>
</div>
<h3>
Day 1 : IRS wall</h3>
<div>
With Patricia and Dave</div>
<div>
<br /></div>
<div>
<ul>
<li>Tax Man (5.10a)</li>
<li>Bloody Tax Break (5.10b)</li>
</ul>
</div>
<div>
<h3>
Day 2 : Hemingway Buttress</h3>
<div>
With Patricia and Dave</div>
<div>
<br /></div>
<div>
<ul>
<li>Poodles are people too (5.10b)</li>
</ul>
<div>
<br /></div>
</div>
</div>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-76167696922558386632017-01-01T16:09:00.000+01:002017-01-01T16:09:48.507+01:00This was 2016!<div>
Yet, another exciting year, learning new skills and meeting new people, here are some highlights of 2016 :</div>
<ul>
<a href="https://www.blogger.com/web/20160109173921/http://4.bp.blogspot.com/-pMTa2eoI2_E/VN88J85hY1I/AAAAAAAAE9M/SCjJcTY2lsY/s1600/Buildtimetrend_Openhub_hotprojects.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a>
<li>visited FOSDEM; giving a <a href="https://fosdem.org/2016/schedule/event/buildtime_trend/">lightning talk about Buildtime Trend</a>; meeting Rouslan, Eduard, Ecaterina and many others</li>
<li>attended a Massive Attack concert in Paleis 12.</li>
<li>visited <a href="http://mountexpo.be/">Mount Expo</a>, the outdoor fair organised by <a href="http://www.klimenbergsportfederatie.be/">KBF</a></li>
<li>saw some amazing outdoor films on the BANFF film festival</li>
<li>spent a weekend cleaning routes with the Belgian Rebolting Team (BRT) in Comblain-La-Tour. On Sunday we did some climbing in Les Awirs, where I finished a 6b after trying a few times.</li>
<li>First time donating blood plasma</li>
<li>First academic publication (as co-author) : https://biblio.ugent.be/publication/7204792</li>
<li>Climbing trip to Gorges du Tarn with Vertical Thinking : climbing 6 days out of 7 (one day of rain), doing multipitch Le Jardin Enchanté, sending a lot of 5, 6a and 6a+ routes, focusing on reading the route, looking for footholds and taking small steps.</li>
<li>Some more route cleaning with BRT, this time in Flône, removing loose rock and preparing to open new routes.</li>
<li>went to DebConf16 in CapeTown, <a href="http://ruleant.github.io/presentations/oss365/oss365_debconf16_03jul2016.pdf">talking about 365 days of Open Source</a> (<a href="http://gensho.acc.umu.se/pub/debian-meetings/2016/debconf16/What_I_learned_from_365_days_of_contributing_to_Open_Source_projects.webm">video</a>) and made a <a href="https://twitter.com/dcadriaenssens/status/751144082991349760">first contribution to Debian</a>.</li>
<li><a href="https://goo.gl/photos/LpULpkAPnVWUNWHU8">Visited South Africa</a> and climbed in Rocklands/Cederberg</li>
<li>became a (Junior Developer) member of the <a href="https://alioth.debian.org/project/memberlist.php?group_id=31110">Debian MySQL Maintainers Team</a></li>
<li>10th blood/plasma donation</li>
<li>visited Amsterdam for the MariaDB developers meetup</li>
<li>climbing trip to Orpierre in France. It was cold during the night, but as soon as the sun came out it was T-shirt weather. Plenty of climbing with Adriaan, Mathias, Bert, Stijn en Corentin (a local French climber) : a very nice multipitch (Diedre Sud, 7 5b/5c pitches) and quite a few 5's en 6's single pitch routes, with a few 6a's leading and 2 6b's toprope.</li>
<li>Another cleaning weekend with BRT, learning how to glue bolts. Slipped on a greasy forest trail and bruised a rib.</li>
<li>went to <a href="https://events.ccc.de/congress/2016/wiki/Main_Page">33C3</a> in Hamburg : 4 days of talks about IT, technology, science, security and privacy.</li>
<li>celebrating New Year's Eve in Ghent with some friends, good food and an exciting quiz</li>
</ul>
<div>
<br /></div>
<div>
Plans for 2017 :</div>
<div>
<ul>
<li>Clean some rock with BRT, climb, both indoor and do a few climbing trips</li>
<li>Conferences : FOSDEM, DebConf, FrosCon, 34C3</li>
<li>Contribute to Debian and MariaDB</li>
</ul>
</div>
<div>
<br /></div>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-4509415260500835372016-06-09T17:53:00.000+02:002016-06-09T17:53:53.073+02:00You can learn anything you wantThis morning I was reminded that, 4 years ago, I was looking for a project to get some experience with Java, C or C++.<br />
Looking back, I started working on an <a href="https://ruleant.github.io/getback_gps/">Getback GPS</a>, an Android app (learning some Java) and later on another project called <a href="https://buildtimetrend.github.io/">Buildtime Trend</a>, which gave me some Python and JavaScript experience.<br />
So in 4 years, I started 2 Open Source projects, learned 3 new programming languages, and some other technologies and frameworks along the way.<br />
<br />
I can say I learned a lot the last few years, on a technical level, but it also made me realise that it is possible to learn new things, if you set your mind to it. You just have to start doing it, try things, fail, learn from it, try again, read a tutorial, look for questions and answers (fe. on Stack Overflow), go to conferences, talk to experienced people, join a project that uses the technology you want to learn.<br />
<br />
And this is not limited to technology. Want to learn a musical instrument? How to make a cake? How to become a great speaker? Learn to swim longer or faster?<br />
<br />
This is all possible. You just have to start doing it and practice. Taking small steps at the start. Allow yourself to fail, but learn from it and improve. You might need some guidance or coaching, or take a course to give you a headstart.<br />
<br />
I'm not saying it won't be hard, sometimes you keep failing, stop making progress and you get frustrated. And that's a time to take a step back, monitor your progress, examine the goals you have set yourself. Are you doing it the right way? Can it be done differently? Do you have all the required skills to make progress? Maybe you need to practise something else first?<br />
<br />
Anyway, keep the end goal in mind, take small steps and enjoy the journey. Enjoying what you are doing or achieving is an important motivator.<br />
If you set your mind to it, you can learn anything you want.<br />
<br />
Which reminds of this video, how to learn anything in 20 hours :<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/5MgBikgcWnY/0.jpg" src="https://www.youtube.com/embed/5MgBikgcWnY?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
<br />
<br />
<br />
<br />Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-14574603913139330942016-05-21T16:53:00.000+02:002016-05-21T17:01:08.508+02:00Some guidelines for writing better and safer codeRecently, I came across some code of a web application that, on brief inspection, was vulnerable to XSS and SQL injection attacks : the SQL queries and the HTML output were not properly escaped, the input variables were not sanitized. After a bit more reviewing I made a list of measures and notified the developer who quickly fixed the issues.<br />
<br />
I was a bit surprised to come across code that was very insecure, which took the author only a few hours to drastically improve with a few simple changes. I started wondering why the code wasn't of better quality in the first place? Did the developer not know about vulnerabilities like SQL injection and how to prevent them? Was it time pressure that kept him from writing safer code?<br />
<br />
Anyway, there are a few guidelines to write better and safer code.<br />
<br />
<h3>
Educate yourself</h3>
<div>
As a developer you should familiarize yourself with possible vulnerabilities and how to avoid them. There are plenty of books and online tutorials covering this. A good starting point is the <a href="http://cwe.mitre.org/top25/">Top 25 Most Dangerous Software Errors</a> list. Reading security related blogs and going to conferences (or watch talks online) is useful as well.<br />
<br />
<h3>
Use frameworks and libraries</h3>
About every language has a framework for web applications (Drupal, Symfony (PHP), Spring (Java), Django (Python), ...) that has tools and libraries for creating forms, sanitizing input variables, properly escaping HTML output, handling cookies, check authorization and do user and privileges management, database-object abstraction (so you don't have to write your own SQL queries) and much more.<br />
Those frameworks and libraries are used by a lot of applications and developers, so they are tested much more than code you write yourself, so bugs are found more quickly.<br />
<br />
It is also important to regularly update the libraries and frameworks you use, to have the latest bugs and vulnerabilities fixed.<br />
<br />
<h3>
Code review</h3>
More people see more than one. Have your code reviewed by a coworker and use automated tools to check your code for vulnerabilities. Most IDEs have code checking tools, or you can implement them in a Continuous Integration (CI) environment like Jenkins, Travis CI, Circle CI, ... to check your code during every build.<br />
A lot of online code checking tools exist that can check your code every time you push your code to your version control system.<br />
There is no silver bullet here, but a combination manual code review and automated checks will help to spot vulnerabilities sooner.<br />
<br />
<h3>
Test your code</h3>
Code reviewing tools can't spot every bug, so testing your code is important as well. You will need automated unit tests, integration tests, ... so you can test your code during every build in you CI environment.<br />
Writing good tests is an art and takes time, but more tests means less possible bugs remaining in your code.<br />
<br />
<h3>
Coding style</h3>
While not directly a measure against vulnerabilities, using a coding style that is common for the programming language you are using, makes your code more readable both for you, the reviewer and future maintainers of your code. Better readability makes it easier to spot bugs, maintain code and avoid new bugs.<br />
<br />
<br />
I guess there are many more ways to improve code quality and reduce vulnerabilities. Feel free to leave a comment with your ideas.<br />
<br />
<br /></div>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-77656668538221848762016-01-01T00:00:00.000+01:002016-03-24T16:07:42.290+01:00This was 2015 and plenty to do in 2016!2015 was an amazing year, learning a lot and making some progress in my Open Source development and climbing activities.<br />
<a href="https://www.blogger.com/web/20160109173921/http://buildtimetrend.github.io/">Buildtime Trend</a> keeps growing, with Angular and a Facebook Open Sourced project as new users, improving my Python and JavaScript skills, setting up a CherryPy based service on Heroku, backed by a Celery/RabbitMQ task queue to make the service more responsive.<br />
<br />
I have no real resolutions for 2016, I'll just spend my time on climbing and Open Source software development, learning new skills along the way and putting them into practice :<br />
<br />
<ul>
<li>use Ansible (or another configuration management tool) to provision a Vagrant based development environment for Buildtime Trend</li>
<li>start using Django to add user management to Buildtime Trend as a Service</li>
<li>learn how to climb safely in less equiped areas using friends, nuts, and other mobile protection</li>
<li>apply the lessons learned form "The Rock Warrior's Way' while climbing</li>
<li>visit a few conferences : FOSDEM, 33C3 and Newline, and maybe some more : LinuxTag, DebConf, FossAsia, KeenCon, ...</li>
<li>do some improvements to my house</li>
</ul>
<br />
<div>
Plenty to do in 2016! I wish anyone an joyful year full of insights and opportunities to learn and improve.</div>
<div>
And remember, it's all about enjoying the journey!</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Here are some highlights from 2015 :</div>
<ul>
<li>Celebrated New Year in Lisbon.</li>
<li>Reached a <a href="https://www.blogger.com/web/20160109173921/http://ruleant.blogspot.be/2015/01/what-i-learned-from-365-days-of.html">365 day commit streak contributing to Open Source projects</a>, with 2300+ commits over that period. </li>
<li>visited <a href="https://www.blogger.com/web/20160109173921/https://fosdem.org/2015/">FOSDEM 2015</a>, another great weekend of Open Source enthousiast meeting and sharing knowledge in Brussels, with over 500 speakers and 5-10.000 visitors. Happy to meet Eduard and Ecaterina again who came over from Romania, and many others.</li>
<li>Buildtime Trend was mentioned in the Black Duck newsletter <blockquote class="twitter-tweet" lang="en">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/web/20160109173921/http://4.bp.blogspot.com/-pMTa2eoI2_E/VN88J85hY1I/AAAAAAAAE9M/SCjJcTY2lsY/s1600/Buildtimetrend_Openhub_hotprojects.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<a href="https://www.blogger.com/web/20160109173921/https://twitter.com/hashtag/OpenSource?src=hash">#OpenSource</a> Wrap Up featuring new projects from <a href="https://www.blogger.com/web/20160109173921/https://twitter.com/hashtag/Facebook?src=hash">#Facebook</a> and <a href="https://www.blogger.com/web/20160109173921/https://twitter.com/hashtag/Google?src=hash">#Google</a> and a <a href="https://www.blogger.com/web/20160109173921/https://twitter.com/hashtag/ProjectSpotlight?src=hash">#ProjectSpotlight</a> on <a href="https://www.blogger.com/web/20160109173921/https://twitter.com/buildtime_trend">@buildtime_trend</a> <a href="https://www.blogger.com/web/20160109173921/http://t.co/WPo18wndI9">http://t.co/WPo18wndI9</a><br />
— Black Duck Software (@black_duck_sw) <a href="https://www.blogger.com/web/20160109173921/https://twitter.com/black_duck_sw/status/566360608799731712">February 13, 2015</a></blockquote>
<script async="" charset="utf-8" src="/web/20160109173921js_/http://platform.twitter.com/widgets.js"></script></li>
<li>Buildtime Trend made it to the top 3 of <a href="https://www.blogger.com/web/20160109173921/https://www.openhub.net/explore/projects">hot projects on OpenHub</a><div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/web/20160109173921/https://www.openhub.net/explore/projects"></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</li>
<li>Reached the most active developers top 10 on OpenHub</li>
<li>Released <a href="https://www.blogger.com/web/20160109173921/http://ruleant.blogspot.be/2015/02/buildtime-trend-v02-released.html">Buildtime Trend v0.2</a> and launched a <a href="https://www.blogger.com/web/20160109173921/https://buildtimetrend.herokuapp.com/">Heroku app hosting the service</a>.</li>
<li>Visited Cork and Dublin with Sofie, attending Jeroen's PhD graduation ceremony and meeting Rouslan and his friends.</li>
<li>Attended Newline 0x05 and did two talks : <a href="https://www.blogger.com/web/20160109173921/http://ruleant.github.io/presentations/buildtimetrend/buildtimetrend_newline_05Apr2015.pdf">Buildtime Trend : Visualise what's trending in your build process</a> and <a href="https://www.blogger.com/web/20160109173921/http://ruleant.github.io/presentations/oss365/oss365_newline_05Apr2015.pdf">What I learned from 365 days of contributing to Open Source projects</a></li>
<li>Ended my commit streak after 452 days</li>
<li>Went on a <a href="https://www.blogger.com/web/20160109173921/http://ruleant.blogspot.be/2015/04/gorges-du-tarn-2015.html">climbing trip to Gorges du Tarn</a></li>
<li>Flashed my first 6a lead climbing on rock.</li>
<li>Traveled to the US, East coast this time, visiting Washington DC, meeting Lieven H and Wim, exploring New York City with Tine, Lukas and Marie-Hélène.</li>
<li>One-day climbing trip to Freyr with Peter.</li>
<li>And another climbing trip to Beez with Lieven V, Ben, Patrick and others.</li>
<li>4th blood donation, convinced Tine to join me for her first donation! Well done!</li>
<li>Deployed a Celery/RabbitMQ based worker to Buildtime Trend as a Service on Heroku, taking some load off the webservice and improving the response times.</li>
<li>Climbing trip to La Bérarde, with Bleau, doing my first multipitches (Li Maye laya and Pin Thotal) with Mariska and lead climbing a few 6a+ routes. Weather was great, atmosphere was superb, climbing was fun!</li>
<li>Went to Fontainebleau for the birtdayparty of Andreas. Great fun, nice people, lots of routes. Finished my first red route in Fontainebleau.</li>
<li>Travelled to California and made roadtrip from San-Francisco, to Yosemite, over Tioga Pass to Mojave Dessert, Red Rock Canyon, Las Vegas, Zion National Park, Bryce Canyon, Grand Canyon and flying back from Phoenix to San-Francisco. I did some climbing and hiking, took a climbing course on using cams and nuts. On the way I met a lot of nice people, with whom I had interesting conversations.</li>
<li><a href="https://www.blogger.com/web/20160109173921/http://ruleant.blogspot.be/2015/11/buildtime-trend-v03-is-out.html">Released Buildtime Trend v0.3</a></li>
<li>Finished online Stanford University course <a href="https://www.blogger.com/web/20160109173921/https://www.coursera.org/course/algo">Algorithms: Design and Analysis, Part 1</a></li>
<li>Read <a href="https://www.blogger.com/web/20160109173921/http://warriorsway.com/the-rock-warriors-way-mental-training-for-climbers-2/">The Rock Warrior's Way</a>, a must read for any climber</li>
<li>Visited 32C3 in Hamburg, 4 days of lectures, writing software and talking to other developers. It was amazing, next year again!</li>
</ul>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-50311644389417258772015-11-24T21:14:00.000+01:002015-11-29T21:21:06.658+01:00Buildtime Trend v0.3 is out<h3>
Visualise what's trending in your build process</h3>
<div style="text-align: left;">
<a href="https://buildtimetrend.github.io/" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Buildtime Trend Logo" border="0" height="125" src="https://buildtimetrend.github.io/images/logo.png" title="" /></a></div>
I'm happy to inform you that Buildtime Trend v0.3 is released. Those of you using <a href="http://buildtimetrend.herokuapp.com/">Buildtime Trend as a Service</a> had a running preview of all the new features :<br />
<br />
<ul>
<li>introduction of a worker queue to make processing build job logs more scalable</li>
<li>dashboard chart data can be filtered on build properties </li>
<li>several new dashboard charts and layout improvements</li>
<li>enable Keen.io query caching to improve chart loading speed</li>
<li>the dashboard takes url parameters to set the refresh rate and the default settings for time interval and filter properties</li>
<li>a statistics dashboard is added to monitor usage of Buildtime Trend as a Service</li>
</ul>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://buildtimetrend.herokuapp.com/dashboard/buildtimetrend/python-lib/index.html" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="Dashboard example" border="0" height="289" src="https://buildtimetrend.github.io/images/screenshot_buildtimetrend.png" title="" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Dashboard example</td></tr>
</tbody></table>
<div>
More new features, improvements and changes can be found in the release notes and the Changelog files of the project components :</div>
<div>
<ul>
<li><a href="https://github.com/buildtimetrend/service/releases/tag/v0.3">Buildtime Trend as a Service v0.3</a></li>
<li><a href="https://github.com/buildtimetrend/dashboard/releases/tag/v0.3">Dashboard v0.3</a></li>
<li><a href="https://github.com/buildtimetrend/python-lib/releases/tag/v0.3">Python Library v0.3</a></li>
<li><a href="https://github.com/buildtimetrend/python-client/releases/tag/v0.3">Python Client v0.3</a></li>
</ul>
<div>
<br />
<h3>
Try it out</h3>
<br /></div>
</div>
<div>
You can check out the dashboards of the projects that are already using Buildtime Trend as as Service :<br />
<br />
<ul>
<li><a href="http://buildtimetrend.herokuapp.com/dashboard/angular/angular/index.html">Angular</a></li>
<li><a href="http://buildtimetrend.herokuapp.com/dashboard/musescore/MuseScore/index.html">MuseScore</a></li>
<li><a href="http://buildtimetrend.herokuapp.com/dashboard/nijel/weblate">Weblate</a></li>
<li><a href="http://buildtimetrend.herokuapp.com/dashboard/phpmyadmin/phpmyadmin">phpMyAdmin</a></li>
<li><a href="http://buildtimetrend.herokuapp.com/dashboard/pyca/cryptography">pyca cryptography</a></li>
<li>...</li>
</ul>
<div>
</div>
<br />
Do you want to enable Buildtime Trend for your the build process of your project on Travis CI? It is easy to <a href="https://buildtimetrend.herokuapp.com/">set up</a>.<br />
<br />
Buildtime Trend as a Service is currently available for free for Open Source projects, thanks to the kind people of <a href="https://keen.io/">Keen.io</a>.<br />
<h3>
Donate</h3>
If you like Buildtime Trend, you are welcome to support the project, by making a <a href="https://buildtimetrend.github.io/donate.html">donation</a>. Donations will help pay for the hosting and support further development.<br />
<br />
You can help make the project better : we welcome any kind of <a href="https://github.com/buildtimetrend/python-lib/wiki/Contribute">contributions</a>.<br />
<br /></div>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-3423929634300132092015-04-21T14:15:00.001+02:002015-04-21T17:03:49.943+02:00Gorges du Tarn 2015It was an amazing week, climbing in Gorges du Tarn with Bleau Climbing team during the second week of the Easter holiday.<br />
Beautiful weather, nice people, good atmosphere, a lot of climbing, some personal bests and climbing improvements on both a physical and mental level.<br />
<br />
Some impressions :<br />
<br />
<ul>
<li>Flashed my first 6a lead climbing on rock : <a href="http://www.rockclimbing.com/routes/Europe/France/12-_Massif_Central_southern_part_with_foothills/Gorges_du_Tarn/Figues_au_Cul/Nique_le_li_re_77821.html">Nique le lière</a> in the Figues au Cul sector.</li>
<li>Cooked spaghetti for approx. 50 people with a great team (Peter, Lieven, Hanne, Anneke, Jasper and Tim)</li>
<li>Finished a lot of 5s on sight or flashed them.</li>
<li>Discovered that my tent isn't waterproof anymore. Luckily there was a bridge that kept part of the camping site dry, so I moved my tent there during the rainy night. Yes, I slept under a bridge. ;)</li>
<li>Almost finished a 6a+ on Noir Désir and started working in a very exciting 6c on La Muse, two projects for next time, so I know what I'll be training for the next few months. :)</li>
</ul>
<div>
Great trip, looking forward to the next one!</div>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com1tag:blogger.com,1999:blog-6697926294108537816.post-54895356044898722642015-02-22T20:21:00.000+01:002015-02-22T21:35:18.983+01:00Buildtime Trend v0.2 released!<h3>
Visualise what's trending in your build process</h3>
<div style="text-align: left;">
<a href="https://buildtimetrend.github.io/" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Buildtime Trend Logo" border="0" height="125" src="https://buildtimetrend.github.io/images/logo.png" title="" /></a></div>
What started as a few scripts to gain some insight in the duration of stages in a build process, has evolved into project <a href="https://buildtimetrend.github.io/">Buildtime Trend</a>, that generates and gathers timing data of build processes.
The aggregated data is used to create charts to visualise trends of a
build process.<br />
<br />
The major new futures are the support for parsing <a href="https://travis-ci.org/">Travis CI </a>build log files to retrieve timing data and the introduction of the project as a <a href="https://buildtimetrend.herokuapp.com/">service</a> that gathers Travis CI generated timing data, hosts a dashboard with different charts and offers shield badges with different metrics.<br />
<h3>
Try it out!</h3>
The <a href="https://buildtimetrend.herokuapp.com/">hosted service</a> supports Open Source projects (public on GitHub) running their builds on Travis CI. Thanks to the kind people of <a href="https://keen.io/">Keen.io</a> hosting the aggregated data, the hosted service is currently available for free for Open Source projects. <br />
Get started! It's easy to set up in <a href="https://buildtimetrend.herokuapp.com/#get_started">a few steps</a>.<br />
<h3>
A bit more about Buildtime Trend</h3>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://buildtimetrend.herokuapp.com/dashboard/buildtimetrend/python-lib/index.html" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="Dashboard example" border="0" height="289" src="https://buildtimetrend.github.io/images/screenshot_buildtimetrend.png" title="" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Dashboard example</td></tr>
</tbody></table>
Buildtime Trend is an Open Source project that generates and gathers timing data of build processes.
The aggregated data is used to create charts to visualise trends of the
build process.<br />
These trends can help you gain insight in your build process : which
stages take most time? Which stages are stable or have a fluctuating
duration? Is there a decrease or increase in average build duration over
time?<br />
With these insights you can improve the stability of your build process and make it more efficient.<br />
<br />
The generation of timing data is done with either a <a href="https://buildtimetrend.github.io/python-client">client</a> or using <a href="https://buildtimetrend.github.io/service">Buildtime Trend as a Service</a>.<br />
The Python based client generates custom timing tags for any shell based
build process and can easily be integrated. A script processes the
generated timing tags when the build is finished, and stores the
results.<br />
Buildtime Trend as a Service gets timing and build related data by
parsing the logfiles of a buildprocess. Currently, Travis CI is
supported. Simply trigger the service at the end of a Travis CI build
and the parsing, aggregating and storing of the data is done
automatically.<br />
<br />
The aggregated build data is used to generate a <a href="http://buildtimetrend.herokuapp.com/dashboard/buildtimetrend/python-lib/index.html">dashboard</a> with charts powered by the <a href="https://keen.io/">Keen.io</a> API and data store.<br />
<br />
Check out the <a href="https://buildtimetrend.github.io/">website</a> for more information about the project, <a href="https://twitter.com/buildtime_trend">follow us on Twitter</a>, or subscribe to the <a href="https://groups.google.com/d/forum/buildtimetrend-dev">community mailing list</a>.Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-47351625539121318842015-01-13T20:49:00.001+01:002015-01-14T11:11:30.787+01:00What I learned from 365 days of contributing to Open Source projectsToday I reached a <a href="https://github.com/ruleant">365 day commit streak on GitHub</a>, with over 2300 commits to Open Source projects in that period. In this post I'd like to share my experiences during this past year and the lessons I learned.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://github.com/ruleant" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-KbFihLVYJjc/VLV3gLAtfqI/AAAAAAAAE8Q/ENxV4pAKCvU/s1600/github_oss365_13jan2015.png" height="128" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://github.com/ruleant">Github contribution overview</a></td></tr>
</tbody></table>
<br />
It started one year ago, on January 14th, 2014, the day I returned from a two week trip to Malaysia. I didn't take a laptop or smartphone on that trip, in order to be 'disconnected' from PC, internet and E-mail for some time. I've taken a habit to have a 'unplugged' holiday about once a year.<br />
I had a streak of over 100 days running before I left on holiday, and had reached 2000+ commits during that year, so I was eager to start committing again, to keep the running total of commits close to 2000 and to start building a commit streak again.<br />
I don't remember if I had a clear goal at that time of the total consecutive days of committing to Open Source projects I aspired to reach. I guess at first I wanted to match the previous record and see how much further I could get.<br />
<br />
At the end of June, I got inspired by Josh (<a href="https://twitter.com/dzello">@dzello</a>) from Keen.io who had <a href="http://dzello.com/blog/2014/06/23/open-source-365-ship-every-day-for-a-year/">pledged to commit to Open Source projects for 365 days</a> in a row. I had an extensive streak going on at that time, so I decided to try and reach a 365 day streak as well.<br />
<br />
<blockquote class="twitter-tweet" data-cards="hidden" lang="en">
<a href="https://twitter.com/dzello">@dzello</a> Good luck, I'm currently at <a href="https://twitter.com/hashtag/oss162?src=hash">#oss162</a> <a href="https://t.co/LlWBoGzDwQ">https://t.co/LlWBoGzDwQ</a> but I take a PC/internet free holiday every now and then.<br />
— Dieter Adriaenssens (@dcadriaenssens) <a href="https://twitter.com/dcadriaenssens/status/481539804363235328">June 24, 2014</a></blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script>
Until then it had been fairly easy to keep the streak going. Doing at least one commit every day is not that hard, and I usually did more than one. I was working on <a href="http://ruleant.github.io/getback_gps/">my Android app</a> and I started working on what I called '<a href="http://buildtimetrend.github.io/python-client/">my side project</a>' at first. In the last few months my focus has shifted to that 'side project', making it my main project basically, but that's a different story.<br />
So I had plenty to do and I was well motivated to work on my projects regularly, so it was easy to keep committing daily.<br />
<br />
Until summer I didn't do any long trips, so I was either at home at some point during the day or had my laptop with me (when going to Berlin for LinuxTag, for example) so finding a few minutes every day to do at least one commit wasn't a big challenge. Although sometimes, it required some planning.<br />
If I had a social, cultural or sports activity planned in the evening after work, I planned for an 'easy' commit on those days, usually cleaning up some code, fixing coding style, writing a small test, improving documentation or doing a few translations. I kept the bigger work, implementing a new feature, figuring out an API or framework, or doing some bigger refactoring for days when I had more time available.<br />
<br />
Then summer arrived and I planned to go on a climbing trip for a week. I was in doubt if I would have time and opportunity to keep committing during the trip. But in the end I decided to take my laptop and give it a try. I worked on <a href="https://github.com/ruleant/getback_gps/blob/master/.utility/crop_scale_screenshot.sh">bash script to crop and scale Android screenshots</a> that week, something I could easily develop and test without access to internet. On some days I barely managed to contribute, finishing the commit only a few minutes before the end of the day, but in the end I managed to keep the streak going.<br />
<br />
<blockquote class="twitter-tweet" data-cards="hidden" lang="en">
Continued committing during my summer holiday and reached <a href="https://twitter.com/hashtag/oss190?src=hash">#oss190</a> Now on my way to <a href="https://twitter.com/hashtag/oss365?src=hash">#oss365</a> <a href="https://t.co/LlWBoGzDwQ">https://t.co/LlWBoGzDwQ</a><br />
— Dieter Adriaenssens (@dcadriaenssens) <a href="https://twitter.com/dcadriaenssens/status/491610198428377088">July 22, 2014</a></blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script>
With this hurdle taken I imagined reaching the 365 day goal was achievable. I didn't know back then I was to go on a few long weekends to Fontainebleau during the Fall, but again I took my laptop with me on the trip and found time to contribute some code.<br />
<br />
In the end of October I went to California for the Google Summer of Code 10 year Reunion and I had the opportunity to meet Josh, and <a href="https://twitter.com/elof">Justin</a>, also from Keen.io. Josh published a blogpost by that time explaining <a href="https://gun.io/blog/why-i-ended-my-open-source-contribution-streak-at-burning-man/">why he ended his commit streak at Burning Man</a>, and why he wasn't planning on starting the streak again. <br />
<br />
I read his post, and it got me thinking. Is this continuous streak a good thing? Sure, it was a motivation on its own, you want to keep going because you don't want to break the streak, you'd have to start all over again for a long time to reach the same number of consecutive days.<br />
Some days you don't have time, or you've had a rough day and don't feel like turning on your PC and doing the required commit for the day, but would rather do something else, forgetting about that ongoing streak.<br />
<br />
But I decided to go for it and finish the pledge to reach 365 days of committing to Open Source projects. I found out that my motivation wasn't only in keeping the streak going, but mostly in making progress with my projects.<br />
<br />
Now that I've reached the 365 day goal I've come to some conclusions:<br />
<br />
<ul>
<li>Setting a goal helps to keep you going, but it doesn't necessarily has to be a streak of consecutive days commiting code. Josh mentioned this in his blog post as well, there are other metrics or goals you can aspire. Choose one that works for you and that is realistic.</li>
<li>A minimum of one commit per day worked for me, and usually I reached more (6,4 per day on average, with a maximum of 27 at some point). But it would be harder for me to set goal of, for example, 30 commits per week. It would put pressure on me every week to reach that goal and it would be counterproductive, for me at least.</li>
<li>Now that I've reached this 365 day goal I will keep the streak going as long as I'm comfortable with. As I mentioned, the one commit a day goal works for me as long as it doesn't interfere with my other commitments : I have a day job and regularly enjoy social, cultural and sports activities.</li>
<li>Next time I'm going away for a few days, being it a holiday or a climbing trip I will not take my laptop with me. It will break my streak, but I'm OK with that. Disconnecting from everything for a few days every once in a while is more important to me. Afterwards I'll probably pick it up again and start a new streak, but it doesn't matter how long it will be. I'm glad I reached the 365 days goal, but I don't necessary feel the need to repeat it.</li>
<li>As mentioned earlier, I found that my motivation lies in working on my projects, in seeing progress as I continue adding features and improving them.</li>
<li>I noticed a few similarities in motivation for doing sport (and other) activities. When you're running, for example, it helps to set a goal (a total distance or an average pace to reach) or a metric (once or twice a week, no matter how long the distance or time spent). Choose one that works for you to keep you motivated. But also allow yourself to take break if you need one and pick up later again. In the end you should enjoy the activity, setting a goal is just a way to keep you going, but the fun of doing the activity should drive you.</li>
</ul>
Many thanks to Josh to inspiring me to reach these conclusions, to all who supported me during the past year and good luck to everyone aspiring a goal, being it a commit streak or something else.<br />
<br />
Kudos to those who still have <a href="http://longeststreak.net/">a very long commit streak</a> going!Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-21625523279239151242015-01-01T00:00:00.000+01:002015-01-01T00:00:11.933+01:00Happy 2015!<div>
I wish you all an exciting 2015 in good health, with a lot of fun and
big achievements in your projects! Good luck and joy to all my friends
who are expecting a child this year! <br />
<br />
<h4>
Reviewing 2014</h4>
<br />
Well, 2014 was quite busy. Looking at my <a href="http://ruleant.blogspot.be/2014/01/this-was-2013-and-plans-for-2014.html">plans for 2014</a> a lot more happened than I expected : I learned Python when I started a new project, visited 7 capital cities and 3 continents, did a few climbing trips and got to visit San Francisco and Yosemite again :</div>
<div>
<br /></div>
<ul>
<li>celebrated New Year in Cebu, Philipines</li>
<li>visited Malaysia (Kuala Lumpur, Melakka, ...), Singapore and Hong Kong</li>
<li>bought a Google Nexus 5 </li>
<li>attended <a href="http://ruleant.blogspot.be/2014/02/an-impression-of-fosdem-2014.html">FOSDEM 2014</a></li>
<li>resigned as a phpMyAdmin team member, creating some more time for other projects</li>
<li>finished a first blue route at Bleau</li>
<li>coorganised an <a href="http://ruleant.blogspot.be/2014/03/google-summer-of-code-2014-meetup-at.html">info session about Google Summer of Code</a> at Ghent University</li>
<li>started working on <a href="http://ruleant.github.io/buildtime-trend/">a tool to generate a trend graph of a build process</a>, my first Python experience</li>
<li>attended <a href="http://0x20.be/Newline_2014">Newline 0x04</a> and talked about reducing iptables configuration complexity</li>
<li>attended <a href="http://www.linuxtag.org/2014">LinuxTag 2014</a> and <a href="http://www.linuxtag.org/2014/en/program/talk-details/?eventid=1152">talked about 'Reducing iptables configuration complexity'</a> (<a href="https://ruleant.github.io/presentations/iptables/iptables_linuxtag_8May2014.pdf">presentation slides</a>)</li>
<li>Finished a 10km race (Gentse stadsloop) in <a href="http://prod.chronorace.be/classements/QRCode.aspx?id=djO4&eventId=243988502151168&hash=Lg-MffOp1mQeWtAaeMHfZoWcGS0">less than 55 minutes</a></li>
<li>Visited <a href="http://www.makerfaireparis.com/">Maker Faire Paris</a> : A lot of interesting stuff, mainly 3D printers, but some with a twist : pancake maker, an industrial welding robot mounted with an extruder, lots of hinges, bearings and other stuff printed ready to be used : no need to assemble</li>
<li>First time to <a href="https://plus.google.com/photos/+DieterAdriaenssens/albums/6027458045206491937">visit Paris</a>, I finally got to see the Eifel tower, Avenue des Champs Elysées, Arc de triomphe, Le Louvre (outside), Notre Dame, La Seine, Musée d'Orsay, Musée Rodin, Montmartre and Sacré Coeur</li>
<li><a href="http://ruleant.blogspot.com/2014/07/getback-gps-03-is-released.html">Released version 0.3 of Get Back GPS</a></li>
<li>Participated in a climbing training in L'Argentière-La Bessée and received a certificate for lead-climbing and multi-pitch climbing (KVB3), had a lot of fun : climbing a lot and sending several 5b's and 5c's lead-climbing, some of them on sight.</li>
<li>Visited <a href="https://plus.google.com/photos/+DieterAdriaenssens/albums/6038845684387718081">Amsterdam</a>, the 6th capital city I went to this year</li>
<li>performed a lead-climber's fall at Klimax II</li>
<li>did a <a href="http://runkeeper.com/activity?userId=11049859&trip=406094055&fb_action_ids=10152605505884111&fb_action_types=fitness.bikes">55km cycling trip around Ghent</a></li>
<li>Donated blood for the first time</li>
<li><a href="http://ruleant.blogspot.be/2014/08/buildtime-trend-v01-released.html">Released the first version of Buildtime Trend</a>, a tool to create visual trends of a software build process, written in Python and JavaScript</li>
<li>GetBack GPS had <a href="https://www.openhub.net/p/getback_gps/contributors/summary">more than 10 contributors during 1 month</a>, most of them are translating the app</li>
<li>Ran 16km/10mi for the first time</li>
<li>Spent a weekend in Fontainebleau with Maxime, Seba and Wolf, opening some routes.</li>
<li>Went to San Francisco to attend the GSoC 10th Anniversary Reunion and spent a few days in San Francisco and did a trip to Yosemite with Madhura Jayaratne. Shared a few beers with Justin and Josh of Keen.io, talking about Open Source commit streaks and Buildtime Trend.</li>
<li>Released <a href="https://github.com/ruleant/getback_gps/releases/tag/v0.4">GetBack GPS 0.4</a>, introducing 7 more languages.</li>
<li>Spent a long weekend climbing in Fontainebleau with Peter, Dorinne, Cécile, Stef, Aline, Senne, Nik, Chris, Andreas, Luke and Barbara, climbing several yellow and blue routes.</li>
<li>and a second blood donation</li>
<li>finished a red climbing route</li>
<li>traveled to Lisbon.</li>
</ul>
<div>
Things to do in 2015:</div>
<div>
<ul>
<li>Continue working on <a href="http://buildtimetrend.github.io/python-client/">Buildtime Trend</a> : offer it as a <a href="https://github.com/buildtimetrend/service">service (SaaS)</a>, add more stats, support more CI environments, ... </li>
<li>Climb as much as possible, both indoor and outdoor, with trips to France during the Easter and summer holidays, and weekend trips to Fontainebleau or one of the climbing areas in the south of Belgium.</li>
<li>Visit Open Source and related conferences : FOSDEM, LinuxTag, EuroPython, DebConf and KeenCon.</li>
</ul>
<div>
I'm looking forward to where 2015 will bring me. Looking back at 2014 it is bound to be an exciting year again.</div>
</div>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-88716323970063760182014-10-09T20:52:00.000+02:002014-10-10T00:33:08.571+02:00Custom multiseries trend using Keen.io APIThe initial goal was to create a trend of event data related to the time of day or day of week when the event occured. Later on, it seemed like a good idea to display different timeframes on the same trend.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-vPzaa94gdT8/VBqGaQS-ayI/AAAAAAAADyc/cTyNEI81vRQ/s1600/multiseriestrend.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://2.bp.blogspot.com/-vPzaa94gdT8/VBqGaQS-ayI/AAAAAAAADyc/cTyNEI81vRQ/s1600/multiseriestrend.png" height="200" width="320"></a></div>
The end result shows a trend, calculating an average value of a metric (buildtime duration, in this example) for all events that occured in the same time interval (day of week, in this example), for different timeframes (last week, month and year, in this example), which are displayed as different series in the same chart, to be able to compare them and visually notice an evolution or an anomally.<br>
<br>
This trend is part of the <a href="http://ruleant.github.io/buildtime-trend/">Buildtime Trend project</a>, you can see the code in action <a href="http://ruleant.github.io/buildtime-trend/buildtime-trend/index.html#chart_avg_buildtime_weekday">here</a>.<br>
<br>
Read on to see how it is done.<br>
The <a href="http://keen.io/">Keen.io</a> service and API is used to store, analyse and visualise the event data. I'd like to refer to the <a href="https://github.com/keenlabs/keen-js/wiki/Visualization">Keen.io tutorials on how to create a query and generate a chart</a>.<br>
<br>
<h2>
Generate and group by time intervals</h2>
<h2>
</h2>
First of all, the event data has a timestamp, so in a simplified example, an event would look like this :<br>
<br>
{ id: "1234abcd", duration: "97", timestamp: "2014-10-09T18:32:14Z"}<br>
<br>
But to group events on time intervals, like day of week, or hour (time of day), the timestamp has to be split into its components <span style="font-family: sans-serif;">(thanks to Ryan Spraetz of Keen.io for the suggested workaround), </span>for example :<br>
<br>
{id: "1234abcd",<br>
duration: "97",<br>
timestamp: {<br>
isotimestamp: "2014-10-09T18:32:14Z",<br>
day_of_week: 4,<br>
hour_24: 18,<br>
hour_12 : 6,<br>
hour_AMPM : PM,<br>
... <br>
} <br>
}<br><br><br>
Look <a href="https://github.com/ruleant/buildtime-trend/blob/master/buildtimetrend/tools.py#L70">here for the code</a> to split the timestamp (in Python) and a
<a href="https://github.com/ruleant/buildtime-trend/wiki/Structure#event-collection-build_stages-example-">full example of a split timestamp.</a> <br>
<br>
A query to group events by day of week, calculating an average value of <i>duration</i>, for all events of the last week, would look like this :<br>
<br>
<pre class="tr_bq">var queryLastWeek = new Keen.Query("average", {
eventCollection: "builds",
timeframe: "last_week",
targetProperty: "duration",
groupBy: "timestamp.day_of_week"</pre>
<pre class="tr_bq">}); </pre>
<pre class="tr_bq"> </pre>
Using <a href="https://github.com/keenlabs/keen-js/wiki/Visualization#example-usage">an example</a> from the Keen.io tutorial, you could easily create a chart with one series of data.<br>
If <i>timeframe</i> is changed to '<i>last_month</i>' or '<i>last_year</i>', you get the same query for a longer timeframe.<br>
<br>
<h2>
Combine several queries in one chart</h2>
<br>
So now we have 3 queries : <i>queryLastWeek</i>, <i>queryLastMonth</i> and <i>queryLastYear</i><br>
<br>
Which are passed as parameters to the Keen.io client.run method, where the result of the 3 queries are merged to one array by method mergeSeries (see below). This merged array (chart_data) is passed to keen.Visualisation to draw the chart you can see at the top of this post : <br>
<blockquote class="tr_bq">
var request = client.run([queryLastWeek, queryLastMonth, queryLastYear], function() {<br>
series_captions = ["Last week", "Last month", "Last year"];<br>
index_captions = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];<br>
chart_data = mergeSeries(<br>
this.data,<br>
index_captions,<br>
"timestamp.day_of_week",<br>
series_captions<br>
);<br>
// draw chart<br>
window.chart = new Keen.Visualization(<br>
{result: chart_data},<br>
document.getElementById("chart_avg_buildtime_weekday"),<br>
{<br>
chartType: "columnchart",<br>
title: "Average buildtime per day of week",<br>
chartOptions: {<br>
vAxis: { title: "duration [s]" },<br>
hAxis: { title: "Day of week" }<br>
}<br>
});<br>
});</blockquote>
<br>
You can find the full code <a href="https://github.com/ruleant/buildtime-trend/blob/master/trends/trends.js#L396">here</a>.<br>
<br>
<h3>
Merge data series</h3>
First this methods creates a multilevel array with <i>i</i> rows (one for each series, in this example i = 3 (week, month, year)) and <i>j</i> columns (one for each index value in the query, in this example j = 7 : 'Sun' to 'Sat').<br>
Then the methods takes the Keen.io <i>data</i> array, with the results of all queries as a parameter, loops over the result from each query and assigns the values to the corresponding index in a multilevel array. As a result all values corresponding to 'Monday' will be in the same place in the array.<br>
<blockquote class="tr_bq">
function mergeSeries(data, index_captions, value_caption, series_captions) {<br>
chart_data = [];<br>
// create and populate data array<br>
for (i = 0; i < index_captions.length; i++) {<br>
chart_data[i]={caption: index_captions[i]};<br>
// populate all series<br>
for (j = 0; j < series_captions.length; j++) {<br>
chart_data[i][series_captions[j]] = 0;<br>
}<br>
}<br>
// loop over all query result sets<br>
for (j = 0; j < data.length; j++) {<br>
timeframe_result = data[j].result;<br>
timeframe_caption = series_captions[j];<br>
// copy query data into the populated array<br>
for (i = 0; i < timeframe_result.length; i++) {<br>
index = parseInt(timeframe_result[i][value_caption])<br>
chart_data[index][timeframe_caption] = timeframe_result[i]["result"];<br>
}<br>
}<br>
return chart_data;<br>
}
</blockquote>
<br>
<h2>
Some improvements</h2>
Some ideas to make it more efficiently:<br>
<ul>
<li>A special 'groupby' parameter for timestamps as part of the Keen.io API, would avoid splitting a timestamp and storing all the components in the database</li>
<li>Currently, 3 almost identical queries are created to generate the results for the different timeframes. It would be more efficient to repeat the same query several times with only the timeframe changing. Still something to investigate.</li>
</ul>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-46449978390161839142014-09-19T10:30:00.000+02:002014-09-19T15:44:28.503+02:00How I got more relaxed by no longer commuting by carYesterday was car free day, at least in Belgium, and by a happy coincidence I came across an <a href="http://www.fastcoexist.com/3035700/almost-every-way-of-getting-to-work-besides-driving-is-better-for-your-mental-health">article</a> that pointed out a correlation between mental well-being and the means of transportation when commuting to work. It turns out that not using a car, fe. going by bike, on foot or by public transport increases your mental health. The author wonders about the reason for this.<br />
<br />
I'm not a psychologist, nor have I done scientific research to investigate this, but from my personal experience, I can think of a few reasons why not driving by car to commute is better for you.<br />
<br />
A few years ago, I was commuting daily by car. Construction works were going on for a few months, so every morning I spent 20-30 minutes in a traffic jam (on top of the 30 minute drive it took me to get to work).<br />
Those 20-30 minutes of waiting, driving slowly, accelerating and breaking again, more waiting, ... well, it annoyed me, and I guess a lot of other people don't like traffic jams either.<br />
<br />
A few months later, I was told the contract of my company lease car was about to end and I would get a new one.<br />
Then I started wondering if I really liked spending that much time in traffic jams every day, 50-60 minutes of doing nothing else but stare at the car in front of me. So I started looking for alternatives. It turned out there was a train station at walking distance from my office, and it would take me 50-60 minutes to get from home to work. No gain in travel time (and it would take me less time by car if there would be no traffic jam), but I would spend about 45 minutes in a train, not having to pay attention to the cars in front of me, not having the stress and boredom of waiting in a traffic jam. I could listen to some music, read a bit, take a nap, stare out the window enjoying the scenery passing by or having a chat with a fellow commuter.<br />
So instead of spending about an hour getting annoyed and stressed, I could relax while the train driver got me to work and I could get some things done in the mean time.<br />
<br />
So I declined the offer of a new lease car and decided to commute by train. I couldn't have made a better decision. From that moment on I arrived more relaxed at work and at home. Of course, commuting by train can be stressful as well : delayed or cancelled trains, crowded with noisy people. But I was lucky to have a quiet commuter train in the morning, and I could usually avoid rush-hour in the evening, so I usually had a comfortable commute, arriving at work or at home much more relaxed.<br />
<br />
Commuting by train can be annoying as well, if you have to cope with long commutes, multiple stop-overs, delays and crowded trains on a daily basis, as I experienced a few years later on another job (but at least I could still doze off or read a bit).<br />
But I was relieved, when I found a job closer to home that would take me 20 minutes by bike. No reading this time while commuting, but having the daily physical exercise and cruising past rows of waiting cars was enjoyable (I'm not gloating, actually, I took a route through the car free city center, so I didn't see that much cars on my way to work), but I knew that if I would go to work by car I would end up in a traffic jam and it would take me much longer to get to work.<br />
<br />
I don't use the car that much anymore, only for longer drives, places that are hard to reach by public transport, or when transporting heavy or bulky loads. And I like it. I can't imagine losing multiple hours waiting in traffic jams every week.<br />
Overall I'm more relaxed because I don't get annoyed waiting, can do some enjoyable things while commuting or get some physical exercise (which is also known to reduce stress levels).<br />
<br />
A a consequence you have to make some compromises and it will take some extra planning, but it's worth it.Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com2tag:blogger.com,1999:blog-6697926294108537816.post-35271640269673079622014-08-06T12:33:00.001+02:002014-08-06T12:33:19.434+02:00Buildtime trend v0.1 releasedEveryone likes graphs, trends and stats. This is also true when building software. Did you ever want to know how the total duration of your build process evolved over time? Did you ever wonder why your build process took so much longer all of a sudden, trying to figure out what part of the build process was responsible for this?<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://ruleant.github.io/buildtime-trend/buildtime-trend/" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://ruleant.github.io/buildtime-trend/images/screenshot_buildtimetrend.png" height="290" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://ruleant.github.io/buildtime-trend/buildtime-trend/">Build time trend example (click for realtime stats)</a></td></tr>
</tbody></table>
<br />
<a href="https://ruleant.github.io/buildtime-trend/">Buildtime trend</a> lets you measure the time of all parts of the build process and creates nice graphs showing how long each build stage takes, and more.<br />
You can easily <a href="https://ruleant.github.io/buildtime-trend/#integrate-with-travis-ci">integrate it with your Travis CI build process</a>, or integrate it with <a href="https://ruleant.github.io/buildtime-trend/#usage">your build process</a>.<br />
The timing data of your build process is then stored, analysed and visualised, using the Keen.io API, resulting in nice graphs and charts.<br />
<br />
In a future version, Buildtime trend will be able to get timing data from Travis CI, without having to manipulate the build config file. Support for other CI environments is on the roadmap as well. And of course, a lot more stats and charts and trends. <br />
<br />
Suggestions and comments are welcome. Follow us on <a href="https://twitter.com/buildtime_trend">Twitter</a> or submit a feature requests to the <a href="https://github.com/ruleant/buildtime-trend/issues">issue tracker</a>.<br />
<br />
<b>Update :</b> An example script in release v0.1 didn't handle extracting the release tarball well, it is fixed in v0.1.2Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-89722291647220891132014-07-12T13:15:00.000+02:002014-07-29T12:09:08.260+02:00GetBack GPS for Android v0.3 is releasedGet the <a href="https://f-droid.org/repository/browse/?fdid=com.github.ruleant.getback_gps">latest version</a> on F-Droid. <br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://raw.github.com/wiki/ruleant/getback_gps/screenshots/MainActivity_Dest_portrait.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="" border="0" height="320" src="https://raw.github.com/wiki/ruleant/getback_gps/screenshots/MainActivity_Dest_portrait.png" title="GetBack GPS screenshot with compass rose and arrow point to destination" width="179" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Arrow pointing to destination and compass indicating North</td></tr>
</tbody></table>
<br />
<a href="https://github.com/ruleant/getback_gps/releases/tag/v0.3">GetBack GPS for Android v0.3</a> is now available. It adds a realtime compass and detects your travel direction. This way the arrow pointing to your destination will still point in the right direction, even when travelling backwards.<br />
And there are some small UI improvements.<br />
<br />
The app is now also available in Danish, Brazilian Portuguese, Traditional Chinese and French. A <a href="https://github.com/ruleant/getback_gps/wiki/Credits#translators">big thanks</a> to the translators and supporting services!<br />
<br />
A complete list of features and available languages is available on the <a href="http://ruleant.github.io/getback_gps/">website</a>.<br />
<br />
<br />Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-72133389559679770512014-07-11T15:40:00.001+02:002014-07-11T15:40:49.080+02:00Remove bars from Android screenshotsHow to remove the Status Bar at the top and return/home/screens button bar on the bottom/side from Android screenshots, using commandline ImageMagick. <br />
<br />
<h4>
Portrait screenshot</h4>
Command : <br />
<br />
<pre>convert -size 1080x1920 -extract 1080x1700+0+75 original_screenshot.png screenshot_after.png</pre>
<br />
<i>1080x1920</i> is the original size of the image (portrait)<br />
<i>1080x1700</i> is the new size, <i>+0+75</i> the x and y offset where the extraction starts<br />
(sizes may differ if you have a phone with a different screensize and resolution)<br />
<br />
<br />
Result: <br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-dTa2fuo9Qe4/U7_hLp5lPqI/AAAAAAAACS8/GFqx91QjqSA/s1600/MainActivity_atDest.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-dTa2fuo9Qe4/U7_hLp5lPqI/AAAAAAAACS8/GFqx91QjqSA/s1600/MainActivity_atDest.png" height="320" width="180" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Original portrait screenshot, before cropping</td></tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-7asHSYXliVM/U7_hRLElxpI/AAAAAAAACTE/4KJPx5hFWtE/s1600/MainActivity_atDest_cropped.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-7asHSYXliVM/U7_hRLElxpI/AAAAAAAACTE/4KJPx5hFWtE/s1600/MainActivity_atDest_cropped.png" height="320" width="203" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">After cropping</td></tr>
</tbody></table>
<h4>
Landscape screenshot</h4>
Command : <br />
<br />
<pre>convert -size 1920x1080 -extract 1792x1005+0+75 original_screenshot.png screenshot_after.png</pre>
<br />
<i>1920x1080</i> is the original size of the image (landscape)<br />
<i>1792x1005</i> is the new size, <i>+0+75</i> the x and y offset where the extraction starts<br />
<br />
(sizes may differ if you have a phone with a different screensize and resolution)<br />
<br />
<br />
Result:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-bZYgA3JZVUk/U7_k__tzWTI/AAAAAAAACTQ/VxpeFW6OCEo/s1600/MainActivity_Dest_landscape.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-bZYgA3JZVUk/U7_k__tzWTI/AAAAAAAACTQ/VxpeFW6OCEo/s1600/MainActivity_Dest_landscape.png" height="180" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Original screenshot (landscape), before cropping</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-gYiBqiHs5SA/U7_lCuoZoyI/AAAAAAAACTY/xxbrx-rithk/s1600/MainActivity_Dest_landscape_cropped.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-gYiBqiHs5SA/U7_lCuoZoyI/AAAAAAAACTY/xxbrx-rithk/s1600/MainActivity_Dest_landscape_cropped.png" height="179" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">After cropping</td></tr>
</tbody></table>
<br />
<div style="text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-3112515645906201092014-06-23T13:36:00.003+02:002014-06-24T11:04:01.666+02:00File recovery using foremostQuick note on using <a href="http://foremost.sourceforge.net/">foremost</a> to retrieve files from a harddrive with a faulty partition table :<br />
<br />
<pre>sudo foremost -dT -i /dev/md2 -t jpeg -o /path/to/restore2/</pre>
<br />
This scans /dev/md2 hd, looking for jpeg files and puts the restored files in /path/to/restore2/<br />
Foremost can retrieve a lot of different file types (including images, MS Office files, PDF's and zipfiles), look at the <a href="http://linux.die.net/man/1/foremost">man pages</a> for a complete list. It is also possible to define your own filters.<br />
<br />
Modify (or copy first) the foremost.conf file and add a line for every file type fe. :<br />
<br />
<pre>ex1 y 4096000 \x50\x4b\x03 \x74\x78\x74
ex2 y 4096000 \x50\x4b\x03???\x44 \x74\x78\x74
</pre>
<br />
where you specify :<br />
<ul>
<li>file extension</li>
<li>case sensitive pattern (if ASCII codes are used in the pattern)</li>
<li>maximum size of a file in bytes</li>
<li>starting pattern</li>
<li>end pattern</li>
</ul>
The pattern can be in hex code or ASCII, use a ? as a wildcard for one character. In the second example above, a wildcard for 3 characters is added.<br />
<br />
Now run foremost, using the custom config file : <br />
<br />
<br />
<pre>sudo foremost -dT -i /dev/md2 -c /tmp/foremost.conf -o /path/to/restore2/</pre>
<br />
This scans /dev/md2 hd, using the rules in /tmp/foremost.conf and puts the restored files in /path/to/restore2/ Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-9989892819305824312014-03-06T21:21:00.001+01:002014-03-06T21:24:56.545+01:00Google Summer of Code 2014 meetup at Ghent UniversityWednesday evening, March 5th, 19u, about 30 students of Ghent university (Belgium) showed up for an info session about <a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2014">Google Summer of Code 2014</a>. Some of them already heard about it, but for most of them it was new.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.google-melange.com/soc/content/2-1-20140213/images/gsoc/logo/banner-gsoc2014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="66" src="https://www.google-melange.com/soc/content/2-1-20140213/images/gsoc/logo/banner-gsoc2014.png" width="400" /></a></div>
Google Summer of Code is a yearly initiative of Google, this year held for the 10th time, to introduce students in higher education to Open Source development, by offering them a stipend of 5500 USD for 12 weeks of coding on an Open Source project during the summer. It gives the students realworld experience, writing code that will be used by many users worldwide, collaborating with the teams of the Open Source organisation they will contribute to, improving their teamwork and communication skills.<br />
<br />
After a brief introduction about the program, 4 (of the <a href="https://www.google-melange.com/gsoc/org/list/public/google/gsoc2014">190 selected</a> for GSoC 2014) Open Source organisations presented themselves.<br />
<br />
<a href="http://www.sagemath.org/">Sage</a> is an Open Source collection of mathematical tools, ranging from solving differential equations to plotting functions. Some of their <a href="https://docs.google.com/document/d/15v7lXZR1U4H2pT21d2fyPduYGb74JAFjkXJ6CWYmYfw/pub">projects this year</a> focus on improving the user interface, but there is also a need for adding mathematical tools, fe. for knot theory.<br />
<br />
<a href="https://www.gnu.org/software/octave/">GNU Octave</a> is also related to mathematics, but is mostly used for simulations and numerical computations. Their <a href="http://wiki.octave.org/Summer_of_Code_Project_Ideas">ideas pages</a> contains several projects, one of them is adding a library for doing finite element simulations.<br />
<a href="http://3.bp.blogspot.com/-TLv4V2ea2Ug/UxjYdRXXraI/AAAAAAAAB1g/hJaOQgvf1Yw/s1600/IMG_20140305_185928.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://3.bp.blogspot.com/-TLv4V2ea2Ug/UxjYdRXXraI/AAAAAAAAB1g/hJaOQgvf1Yw/s1600/IMG_20140305_185928.jpg" height="236" width="320" /></a>Both these projects are interesting for students with an affinity for maths and programming, but also for students wanting to improve the GUI or add other supporting tools.<br />
<br />
Next up was the <a href="http://www.phpmyadmin.net/home_page/index.php">phpMyAdmin project</a>, a webbased user interface for MySQL databases. Having participated to GSoC for many years, the list of <a href="http://wiki.phpmyadmin.net/pma/GSoC_2014_Ideas_List">projects to work</a> on range from improving the AJAX error reporting tool that was added in GSoC 2013, to also report PHP errors, over a tool to normalize and check the structure of a database to interface improvements. If you are proficient in PHP or JavaScript and interested in databases, one of these projects might be for you.<br />
<br />
<a href="http://musescore.org/">MuseScore</a> was the last project to present itself. It is a free and Open Source music annotation software, but there is also a version for tablets and an online music sheet library to share your compositions. Their <a href="http://musescore.org/en/developers-handbook/google-summer-code/ideas-2014">ideas for this year's GSoC</a> range from support for visually impaired users to tools for adding lyrics to a music score. Interested students should be proficient with C++ and Qt.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-gOpL3UmIAI0/UxjZFImWL9I/AAAAAAAAB1o/jX38O2WyKG4/s1600/IMG_20140305_190047.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-gOpL3UmIAI0/UxjZFImWL9I/AAAAAAAAB1o/jX38O2WyKG4/s1600/IMG_20140305_190047.jpg" height="236" width="320" /></a></div>
All projects mentioned that communicating with the development team and the mentors, using either the IRC channel or the mailing list is very important and the best way to get into contact with them.<br />
<br />
At the reception afterwards, the mentors of the Open Source projects talked to the students answering their questions about GSoC, on how to apply, how to write a good proposal, and many more question that are also answered in the GSoC <a href="https://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2014/help_page">FAQ</a>.<br />
<br />
Thanks to the Open Source organisations (<a href="http://www.sagemath.org/">SAGE</a>, <a href="https://www.gnu.org/software/octave/">GNU Octave</a>, <a href="http://www.phpmyadmin.net/">phpMyAdmin</a> and <a href="http://musescore.org/">MuseScore</a>) for their talks and sharing their experience, and to the student associations (<a href="https://vtk.ugent.be/">VTK</a>, <a href="http://zeus.ugent.be/">Zeus WPI</a>, <a href="http://student.ugent.be/ceneka/">Ceneka</a>) and <a href="https://www.ugent.be/en">UGent</a> for their help in organising the event.Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-67412133309433102862014-02-09T00:54:00.001+01:002014-02-13T18:38:47.323+01:00An impression of FOSDEM 2014Sunday evening, 19:30, leaving Brussels by train, heading home.<br />
48 hours earlier I arrived here for <a href="https://fosdem.org/2014/">FOSDEM</a> : another amazing weekend of Open Source, sharing knowledge, meeting people, getting new ideas, geekiness, and well, also a bit of beer.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-8xIohwVU_3I/Uuy_3BZzXtI/AAAAAAAAA78/48Bq4HO-H9A/s1600/IMG_20140201_101820.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="Opening talk of FOSDEM 2014" border="0" src="http://1.bp.blogspot.com/-8xIohwVU_3I/Uuy_3BZzXtI/AAAAAAAAA78/48Bq4HO-H9A/s1600/IMG_20140201_101820.jpg" height="240" title="Opening talk of FOSDEM 2014" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Opening talk of FOSDEM 2014</td></tr>
</tbody></table>
With more than 500 talks and presentations spread over 2 days in 22 rooms held at the ULB in Brussels, with 5-10 thousand visitors, it is impossible to attend and see everything. Luckily, thanks to an amazing team of origanisers and volunteers everything went smoothly and all talks are recorded and the videos will be <a href="http://video.fosdem.org/">available</a> soon.<br />
<br />
Some highlights, some inspiration and some ideas to work on :<br />
<ul>
<li>There is a need for a Europe based umbrella org (fiscal sponsor).</li>
<li><a href="https://fosdem.org/2014/schedule/event/no_more_ipv4/">Drop support for IPv4, time to switch to IPv6</a> : start convincing your employer, ISP, school, ... and support <a href="https://www.facebook.com/groups/ipv6.only.day">IPv6 Only Day</a></li>
<li>Use <a href="https://www.languagetool.org/">LanguageTool</a> to check grammar of (translatable) strings in software.</li>
<li><a href="https://fosdem.org/2014/schedule/event/android_sensors_101/">Sensors in Android</a></li>
<li><a href="https://fosdem.org/2014/schedule/event/virtiaas04/">Autoscaling best pratices</a> </li>
<li><a href="https://fosdem.org/2014/schedule/event/memory_tuning_android_for_low_ram_devices/">Memory Tuning Android for Low-RAM Devices</a></li>
<li><a href="https://fosdem.org/2014/schedule/event/testing_in_the_php_world/">The history of testing and quality control tools for PHP</a> code by the author of phpUnit : <i>'Writing tests for your code makes you write better testable code.'</i></li>
<li><a href="https://f-droid.org/">F-droid</a> : an open source app market for Android</li>
<li>Governing an Open Source organisation based on <a class="ot-hashtag aaTEdf" href="http://www.communitywiki.org/en/DoOcracy" rel="nofollow">Do-ocracy</a> : if you want to get something done, do it.</li>
<li><a href="https://fosdem.org/2014/schedule/event/the_xpcc_microcontroller_framework/">XPCC</a> : an object oriented framework embedded controllers</li>
<li><a href="https://fosdem.org/2014/schedule/event/making_the_linux_kernel_better/">Making the Linux Kernel better (without coding)</a> : On how to help increasing the number of supported USB devices in the linux kernel by linking USB IDs to the correct driver</li>
<li>...</li>
</ul>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-73293071168572568072014-01-21T11:30:00.000+01:002014-01-21T11:31:46.981+01:00going to FOSDEM 2014It's <a href="https://fosdem.org/2014/">FOSDEM 2014</a> again in two weeks time. And I'm looking forward to it : attending lectures, meeting people, talking about Open Source, ...<br />
<br />
After having a quick look at the <a href="https://fosdem.org/2014/schedule/">schedule</a> with more than 500 (!) lectures over a period of a weekend, I made a selection of interesting talks, because obviously, it is impossible to attend them all :<br />
<ul>
<li>Saturday<ul>
<li><a href="https://fosdem.org/2014/schedule/event/who_ate_my_battery/">Who ate my battery?</a></li>
<li><a href="https://fosdem.org/2014/schedule/event/how_we_found_600000_grammar_errors/">How we found a million style and grammar errors in the English Wikipedia</a> ...and how to fix them</li>
<li><a href="https://fosdem.org/2014/schedule/event/virtiaas04/">Autoscaling best practices</a></li>
<li><a href="https://fosdem.org/2014/schedule/event/debicancontribs/">Debian Contributors</a> A new, automatic, doocratic membership to change the face of Debian</li>
<li><a href="https://fosdem.org/2014/schedule/event/governance_round_table/">Open Source Governance best practices roundtable</a></li>
<li>... </li>
</ul>
</li>
<li>Sunday<ul>
<li><a href="https://fosdem.org/2014/schedule/event/f_droid/">F-Droid</a></li>
<li><a href="https://fosdem.org/2014/schedule/event/html5_video_part_deux/">HTML5 Video Part Deux</a></li>
<li><a href="https://fosdem.org/2014/schedule/event/memory_tuning_android_for_low_ram_devices/">Memory Tuning Android for Low-RAM devices</a></li>
<li><a href="https://fosdem.org/2014/schedule/event/android_sensors_101/">Android Sensors 101</a></li>
<li><a href="https://fosdem.org/2014/schedule/event/no_more_ipv4/">No more IPv4</a></li>
<li><a href="https://fosdem.org/2014/schedule/event/futurecopyleft/">Considering the Future of Copyleft</a></li>
<li><a href="https://fosdem.org/2014/schedule/event/licensecompat/">Taking license compatibility semi-seriously</a></li>
<li>... </li>
</ul>
</li>
</ul>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-55408413026724451842014-01-01T00:00:00.000+01:002014-02-05T15:12:15.621+01:00This was 2013 and plans for 2014!<div>
<br />
It's this time of the year again, reviewing the cool things that happened, learning from the stuff that didn't go as planned and adjusting the <a href="http://ruleant.blogspot.be/2013/01/ambitions-2013.html">goals of last year</a> accordingly. <br />
<br />
2013 was busy, here are some achievements : <br />
<ul>
<li>visited <a href="http://ruleant.blogspot.be/2013/02/roundup-of-fosdem-2013.html">FOSDEM 2013</a> and did a talk on <a href="http://ruleant.blogspot.be/2013/02/present-and-future-of-phpmyadmin-talk.html">phpMyAdmin</a></li>
<li>visited <a href="http://www.0x20.be/Newline_2013">Newline 0x03</a></li>
<li>co-organised a <a href="http://ruleant.blogspot.be/2013/04/google-summer-of-code-2013-info-session.html">GSoC info session at UGent</a></li>
<li>first Wagner experience : Parsifal, long but musically beautiful </li>
<li>phpMyAdmin is accepted as a mentoring organisation for GSoC 2013 and
has 6 students. I'll be a co-mentor and co-org admin this year</li>
<li>got promoted to a higher pay grade </li>
<li>did a citytrip to Berlin, visited LinuxTag 2013 and moderated a few
sessions. I've also got some ideas for my Android app while attending
the Android session.</li>
<li>finished a few yellow routes at Bleau.</li>
<li>did some outdoor rock climbing in Fontainebleau.</li>
<li>did a presentation introducing Latex to my colleagues. </li>
<li>visited <a href="http://debconf13.debconf.org/">Debconf13</a> held in Vaumarcus, Switzerland, were phpMyAdmin had a team meeting and did a <a href="http://ruleant.blogspot.ch/2013/08/phpmyadmin-tutorial-debconf13.html">phpMyAdmin tutorial</a>.</li>
<li>went to GSoC Mentor Summit 2013 at Google Headquarters, Mountain
View, California, organised a Key Signing Party and a session on
international acceptance of Open Source licenses.</li>
<li>did some climbing in Yosemite National Park</li>
<li>released <a href="http://ruleant.github.io/getback_gps/">GetBack GPS</a>, my <a href="http://ruleant.blogspot.com/2013/12/first-android-app.html">first Android app</a></li>
<li>prepared sabayon for the first time.</li>
<li>made more than 2000 contributions (commits and created issues) in one year on github.</li>
<li>travelled to the Philipines. </li>
</ul>
Check out my plans for 2014 :<br />
<ul>
<li><b>Android app development :</b> After releasing an Android app this year for the first time, I plan to explore this path a bit more. Improving the GetBack GPS app a bit more, I still have some ideas as you can see on the <a href="https://github.com/ruleant/getback_gps/issues/milestones">roadmap</a>, getting some more experience on automated testing, test driven development (TDD), Java and object oriented programming along the way.<br />Another Android project for this year will use Bluetooth communication, in a small project I will work on with a friend.</li>
<li><b>Bouldering/climbing :</b> Last year I started climbing in the gym and I did some outdoor climbing as well. I utterly enjoy this, so I definitely want to spend some more time on it. Hopefully with some outdoor climbing trips during the upcoming year.</li>
<li>Visit <b>FOSDEM</b> and <b>LinuxTag</b>.</li>
</ul>
I'm looking forward to an exciting year.<br />
I wish you and your family the same, with good health and successful projects.<br />
<ul>
</ul>
</div>
Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-58167816578285632662013-12-15T21:44:00.000+01:002013-12-15T22:09:09.251+01:00First Android appThis week I <a href="https://plus.google.com/100320805089155566073/posts/7aErRyihvby">released</a> GetBack GPS, my first Android app, day to day one year after the first commit that started the development.<br />
<br />
During this year, I put my newly acquired Java skills to use, explored the huge possibilities of the Android framework, and experimented with Test Driven Development and Continuous Integration.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://ruleant.github.io/getback_gps" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="GetBack GPS logo" border="0" height="200" src="http://ruleant.github.io/getback_gps/images/logo.png" title="" width="200" /></a></div>
The result so far is a simple navigation app, called <a href="http://ruleant.github.io/getback_gps/">GetBack GPS</a>, that helps you find your way back to a previously visited location, using the GPS functionality of your Android device.<br />
You can get it at <a href="https://f-droid.org/repository/browse/?fdid=com.github.ruleant.getback_gps">F-Droid</a>, a website that distributes Open Source software.<br />
<br />
The app is Open Source, freely available and it does it what <a href="http://ruleant.github.io/getback_gps/#features">it is supposed to do</a>. If it doesn't, please report an <a href="https://github.com/ruleant/getback_gps/issues">issue</a>. ;)<br />
<br />
<br />
So what's next? First some small improvements to the interface, some refactoring and creating a class to make rotating of the arrow easier.<br />
Increasing the test coverage is on my list as well, but I have to figure out a way to automatically test the app, with my current setup (maven, cobertura, junit3, Jenkins, Travis CI, coveralls). I might have to make some changes to the setup to get coverage from instrumentation tests.<br />
Unit testing classes that extend (or use) Android classes, is not possible, because the Android API is an just an interface, the implementation of the classes is only present in the System Images of Android devices. So to test the actual implementation, you need to test on an actual or emulated Android device.<br />
<br />
Some future ideas for the app:<br />
<ul>
<li>store multiple locations, from which you can choose when you set a destination</li>
<li>support both the metric and imperial system</li>
<li>share your location with others and use the current location of a friend as a destination</li>
</ul>
More ideas can be found in the <a href="https://github.com/ruleant/getback_gps/issues/milestones">milestones</a>.<br />
<br />
I also plan to work on some other Android projects that will use Bluetooth communication and barcode or QR code scanning.Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-44131348021904964042013-11-14T17:46:00.000+01:002013-11-14T17:55:59.589+01:00Choosing a name for my Android appAfter finding out that the working title of my <a href="https://github.com/ruleant/ariadne/wiki">Android app</a> already seems taken, and with a first release upcoming, it seems time to look for a good name.<br />
<br />
First some explanation of what my app does (and will do in the future).<br />
<br />
It is an Open Source Android app for finding your way back to a previously visited location, using GPS coordinates.<br />
<br />
Imagine visiting a town, going to an event or doing some hiking. When
finished, you have to find your car again, or the way to the station,
or any other point where you started.
Then the app is what you need. Store a location when you start
your trip, and at the end of the day, use the app to find your way back
to where you started.<br />
<br />
In future it will be possible to
share your location with friends, so that you can easily find each other
at a festival or in town, or the ability to store multiple locations to
select as a destination.<br />
<br />
This is the result of a brainstorm so far :<br />
<br />
<ul>
<li>Theseus, Knossos (in line with the current working title)</li>
<li>GoTo, GoToDestination, GoToLocation</li>
<li>FindDestination, FindMyDestination, DestinationFinder</li>
<li>FindLocation, LocationFinder </li>
<li>DestinationRadar, LocationRadar (inspired by future feature of the app to locate friends who also have the app, where 'FriendsRadar' could be an appropriate name)</li>
</ul>
Any other suggestions for a good name?Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0tag:blogger.com,1999:blog-6697926294108537816.post-29136564864973496072013-10-07T20:31:00.001+02:002013-12-08T15:54:50.240+01:00Travis and AndroidIf you're looking to build your Android app on <a href="https://travis-ci.org/" target="_blank">Travis CI</a>, using SDK r22.3 and
API 19 (Android 4.4), put this in configuration file <i>.travis.yml</i> :<br />
<br />
<pre><div class="line" id="LC2">
<span class="l-Scalar-Plain">language</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">java</span></div>
<span class="l-Scalar-Plain">before_install</span><span class="p-Indicator">:</span><span class="c1"> </span></pre>
<pre><span class="c1"> # install necessary x32-libs for Android SDK</span><span class="p-Indicator"> </span></pre>
<pre><span class="p-Indicator"> -</span> <span class="l-Scalar-Plain">sudo apt-get update -qq</span>
<div class="line" id="LC6">
<span class="p-Indicator">- sudo apt-get install -qq libstdc++6:i386 lib32z1</span><span class="l-Scalar-Plain"></span></div>
<span class="c1"> # download the latest android sdk and unzip</span> </pre>
<pre><span class="p-Indicator"> -</span> <span class="l-Scalar-Plain">wget http://dl.google.com/android/android-sdk_r22.3-linux.tgz</span>
<div class="line" id="LC9">
<span class="p-Indicator">-</span> <span class="l-Scalar-Plain">tar -zxf android-sdk_r22.3-linux.tgz</span></div>
<span class="p-Indicator">-</span> <span class="l-Scalar-Plain">export ANDROID_HOME=`pwd`/android-sdk-linux</span>
<div class="line" id="LC11">
<span class="p-Indicator">-</span> <span class="l-Scalar-Plain">export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools</span></div>
# only update the sdk for the tools and platform-tools and required api level
# (run "android list sdk --extended" to get the full list)
- echo "y" | android update sdk --filter tools,platform-tools,build-tools-19.0.0,android-19 --no-ui --force
</pre>
<br />
Up to date version is <a href="https://github.com/ruleant/ariadne/blob/master/.travis.yml" target="_blank">here</a>.<br />
<br />
What it does (and why):<br />
<ul>
<li>The Travis virtual machines are running 64 bit kernels, but the Android SDK needs 32 bit, so packages <i>libstdc++6:i386</i> and <i>lib32z1</i> are needed.</li>
<li>The Android SDK is not installed on the Travis instance, so you need to download and install it yourself.</li>
<li>Update the <i>tools</i> and <i>platform-tools</i> and API (here API 19) related packages. </li>
<li>There is no command line option to accept the license, so piping a "y" to the installer is necessary. Please note : if you have to accept multiple licences, this will not work.</li>
</ul>
<b>Update (08Dec2013) :</b> Only install required x32 packages, use names of SDK packages<br />
<br />
Thanks to <a href="https://raw.github.com/leviwilson/android-travis-ci-example/master/.travis.yml" target="_blank">Levi Wilson</a> and <a href="http://rkistner.github.io/android/2013/02/05/android-builds-on-travis-ci/" target="_blank">Ralf Kistner</a> for inspiration to get it working.Dieter Adriaenssenshttp://www.blogger.com/profile/02113174187540531952noreply@blogger.com0