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
before_install: 
  # 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 http://dl.google.com/android/android-sdk_r22.3-linux.tgz
  - 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.

phpMyAdmin and Google Summer of Code 2013

phpMyAdmin logo
GSoC 2013 was great for phpMyAdmin. We selected 6 students out of 25 project proposals. The number of proposals was slightly smaller than previous years.

Students Bin Zu and Supun Nakandala refactored many scripts this summer. All the scripts in the Server view and those regarding the SQL executor, along with scripts dealing with the table Structure were cleaned up. Code was moved into functions, variable names were improved, and one of the students wrote unit tests for his newly-created functions.

Through Google Summer of Code, Kasun Chathuranga did much work on implementing new feature requests and improving the interface of phpMyAdmin. Kasun's efforts implemented a number of features requested by users and improved the interface in a number of ways.

Mohamed Ashraf has successfully contributed an error reporting tool to the phpMyAdmin code base. The tool will aid end users in reporting JavaScript-related issues and help phpMyAdmin developers deliver fixes for such issues quicker.

Ayush Chaudhary and Adam Kang were selected for the Automated Testing project. Since it was not planned to take two students, code sections to do unit testing had to be split among them.
While writing unit tests for string manipulation functions in phpMyAdmin, one of the students identified that the functions were not implemented in a way that would facilitate unit testing and went on to refactor them to add new classes before writing unit tests for them.
Besides unit tests Selenium tests for interface testing were added. Existing tests were migrated to Selenium2 and helper classes were added that are needed to write Selenium tests.
Overall the test coverage of phpMyAdmin has increased.


All six students successfully finished their projects and their code is merged with the phpMyAdmin codebase which will be part of the upcoming 4.1 release, which you can expect in the next few weeks.
Some of the students are still around fixing bugs, we look forward to more contributions from them in the future.

Thanks to Google Summer of Code, we had again some great contributions and improvements to the phpMyAdmin project. Now that GSoC 2014 is announced already, we can start preparing for the next edition and another awesome summer of coding and mentoring.

Monday, August 26, 2013

Recordings of phpMyAdmin tutorial at DebConf13 available

The phpMyAdmin team visited DebConf13 and did a tutorial about phpMyAdmin.
The tutorial was recorded and it is now available in four parts on our brand new Youtube channel :
  • part 1 : introduction and basic features
  • part 2 : relation between tables
  • part 3 : display inline picture, zoom search, using table relations, display GIS data
  • part 4 : triggers/routines/events and server status monitor

Thanks to Debian for recording our talk and making it publicly available.