Thursday, March 06, 2014

Google Summer of Code 2014 meetup at Ghent University

Wednesday evening, March 5th, 19u, about 30 students of Ghent university (Belgium) showed up for an info session about Google Summer of Code 2014. Some of them already heard about it, but for most of them it was new.

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.

After a brief introduction about the program, 4 (of the 190 selected for GSoC 2014) Open Source organisations presented themselves.

Sage is an Open Source collection of mathematical tools, ranging from solving differential equations to plotting functions. Some of their projects this year focus on improving the user interface, but there is also a need for adding mathematical tools, fe. for knot theory.

GNU Octave is also related to mathematics, but is mostly used for simulations and numerical computations. Their ideas pages contains several projects, one of them is adding a library for doing finite element simulations.
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.

Next up was the phpMyAdmin project, a webbased user interface for MySQL databases. Having participated to GSoC for many years, the list of projects to work 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.

MuseScore 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 ideas for this year's GSoC 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.

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.

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 FAQ.

Thanks to the Open Source organisations (SAGE, GNU Octave, phpMyAdmin and MuseScore) for their talks and sharing their experience, and to the student associations (VTK, Zeus WPI, Ceneka) and UGent for their help in organising the event.

Sunday, February 09, 2014

An impression of FOSDEM 2014

Sunday evening, 19:30, leaving Brussels by train, heading home.
48 hours earlier I arrived here for FOSDEM : another amazing weekend of Open Source, sharing knowledge, meeting people, getting new ideas, geekiness, and well, also a bit of beer.

Opening talk of FOSDEM 2014
Opening talk of FOSDEM 2014
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 available soon.

Some highlights, some inspiration and some ideas to work on :

Tuesday, January 21, 2014

going to FOSDEM 2014

It's FOSDEM 2014 again in two weeks time. And I'm looking forward to it : attending lectures, meeting people, talking about Open Source, ...

After having a quick look at the schedule 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 :

Wednesday, January 01, 2014

This was 2013 and plans for 2014!

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 goals of last year accordingly.

2013 was busy, here are some achievements :
  • visited FOSDEM 2013 and did a talk on phpMyAdmin
  • visited Newline 0x03
  • co-organised a GSoC info session at UGent
  • first Wagner experience : Parsifal, long but musically beautiful
  • 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
  • got promoted to a higher pay grade
  • 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.
  • finished a few yellow routes at Bleau.
  • did some outdoor rock climbing in Fontainebleau.
  • did a presentation introducing Latex to my colleagues.
  • visited Debconf13 held in Vaumarcus, Switzerland, were phpMyAdmin had a team meeting and did a phpMyAdmin tutorial.
  • 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.
  • did some climbing in Yosemite National Park
  • released GetBack GPS, my first Android app
  • prepared sabayon for the first time.
  • made more than 2000 contributions (commits and created issues) in one year on github.
  • travelled to the Philipines.
Check out my plans for 2014 :
  • Android app development : 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 roadmap, getting some more experience on automated testing, test driven development (TDD), Java and object oriented programming along the way.
    Another Android project for this year will use Bluetooth communication, in a small project I will work on with a friend.
  • Bouldering/climbing : 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.
  • Visit FOSDEM and LinuxTag.
I'm looking forward to an exciting year.
I wish you and your family the same, with good health and successful projects.

Sunday, December 15, 2013

First Android app

This week I released GetBack GPS, my first Android app, day to day one year after the first commit that started the development.

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.

GetBack GPS logo
The result so far is a simple navigation app, called GetBack GPS, that helps you find your way back to a previously visited location, using the GPS functionality of your Android device.
You can get it at F-Droid, a website that distributes Open Source software.

The app is Open Source, freely available and it does it what it is supposed to do. If it doesn't, please report an issue. ;)

So what's next? First some small improvements to the interface, some refactoring and creating a class to make rotating of the arrow easier.
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.
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.

Some future ideas for the app:
  • store multiple locations, from which you can choose when you set a destination
  • support both the metric and imperial system
  • share your location with others and use the current location of a friend as a destination
More ideas can be found in the milestones.

I also plan to work on some other Android projects that will use Bluetooth communication and barcode or QR code scanning.

Thursday, November 14, 2013

Choosing a name for my Android app

After finding out that the working title of my Android app already seems taken, and with a first release upcoming, it seems time to look for a good name.

First some explanation of what my app does (and will do in the future).

It is an Open Source Android app for finding your way back to a previously visited location, using GPS coordinates.

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.

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.

This is the result of a brainstorm so far :

  • Theseus, Knossos (in line with the current working title)
  • GoTo, GoToDestination, GoToLocation
  • FindDestination, FindMyDestination, DestinationFinder
  • FindLocation, LocationFinder
  • DestinationRadar, LocationRadar (inspired by future feature of the app to locate friends who also have the app, where 'FriendsRadar' could be an appropriate name)
Any other suggestions for a good name?

Monday, October 07, 2013

Travis and Android

If you're looking to build your Android app on Travis CI, using SDK r22.3 and API 19 (Android 4.4), put this in configuration file .travis.yml :

language: java
  # install necessary x32-libs for Android SDK 
  - sudo apt-get update -qq
  - sudo apt-get install -qq libstdc++6:i386 lib32z1
# download the latest android sdk and unzip 
  - wget
  - tar -zxf android-sdk_r22.3-linux.tgz
  - export ANDROID_HOME=`pwd`/android-sdk-linux
  - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
# 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

Up to date version is here.

What it does (and why):
  • The Travis virtual machines are running 64 bit kernels, but the Android SDK needs 32 bit, so packages libstdc++6:i386 and lib32z1 are needed.
  • The Android SDK is not installed on the Travis instance, so you need to download and install it yourself.
  • Update the tools and platform-tools and API (here API 19) related packages.
  • 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.
Update (08Dec2013) : Only install required x32 packages, use names of SDK packages

Thanks to Levi Wilson and Ralf Kistner for inspiration to get it working.