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.

Monday, August 12, 2013

phpMyAdmin Tutorial at DebConf13

The phpMyAdmin team is visiting DebConf13 in Vaumarcus, Switzerland.

On Tuesday August 13th, at 15:30 (CEST), four members of the phpMyAdmin team will do a tutorial on basic features and showcase some exciting advanced functionality, in the second talk room at DebConf13.

You are welcome to visit us if you are around, or tune in on the live stream.

It will be recorded, so you can watch it later as well.


Friday, June 21, 2013

upgrade Dell PERC6 firmware with Debian

How to upgrade the firmware of a PERC6 RAID controller in a Dell PowerEdge R510 server, that's running Debian 6 (Squeeze).
Dell does not officially support Debian, thus the provided upgrade package does not run automatically. But with some tweaking, you can get it done.

This manual works for both PERC6/E and PERC6/I integrated (onboard chip). I haven't tested it with PERC6/I, but I guess it will work as well.

Step 0 :

Install the latest Dell OpenManage Server Administrator software (OMSA 7.1). This is not necessary for the upgrade, but useful all along, because you get a (web)interface and some command line tools to manage the server hardware. You get log messages also.

There is a community supported port of OMSA for Ubuntu, but it works fine on Debian Squeeze.

Step 1 : get the firmware


You can get the firmware update packages at the Dell support pages. Select the binary for RedHat.

You will have to get the actual firmware upgrade file from this package :

bash SAS-RAID_Firmware_F96NR_LN_6.3.3-0002_X00.BIN --extract perc6e_fw

This will extract the contents of the binary into folder perc6e_fw. Using bash is needed because the scripts are intended for sh, but give errors when run on Ubuntu or Debian. You can also change the intended shell in the first line of the BIN file and run it.

The firmware upgrade file is located in perc6e_fw/payload/*.rom

Step 2 : get the firmware uploader

I couldn't get this Dell binary package to actually update the driver, so I used the firmware updater from LSI. The PERC 6 RAID controllers are rebranded LSI controllers, so this works.

Get the StorCli tool from the LSI website, choose the Linux version, it is a zipped RPM package.

First unzip it :

unzip Storcli_linux_10175.zip


Then retrieve the upgrade tool from the rpm package :

rpm2cpio storcli-1.01.75-1.noarch.rpm | cpio -idmv


This will convert the rpm to a cpio archive and extract the files from that cpio archive.

Now you have the storcli tool to upload the firmware upgrade file to the PERC controller. Here is a manual on how to use it, but we'll only need a few commands.

Step 3 : Upgrade the PERC controller firmware

Now you just have to upload the Dell PERC6 firmware to the RAID controller with the LSI tool :

storcli /c0 download file=FW1371E.rom


This will start downloading the firmware file into the controller.

After the download is finished, you have to reboot your server. The new firmware will be installed when the server is booting.

Please note that the /cX parameter defines which RAID controller you will send the firmware upgrade to. If you have only one PERC RAID controller in your server, you can use /c0. If you have multiple, it is safe to assume that the onboard PERC6/I is in 0 and that a second one is in 1. If you have more than 2, you will have to find out which controller is which. You can do this with this command :

storcli show

Monday, June 03, 2013

git subtree module, with .gittrees config file

I have written about the git subtree module before.
It has been improved, to allow defining your subtrees and imported projects in a config file, in order to update them without having to specify the repo url and branch every time you push to or pull from an imported project.

So, first you need to setup the subtree :

$git subtree add --prefix=other_project \
     git://github.com/your_tree/your_project.git master

It imports the master branch of a git repository located in git://github.com/your_tree/your_project.git into the folder other_project of your git repo.

A file .gittrees in the root folder of your git repo is created :

[subtree "other_project"]
    url = git://github.com/your_tree/your_project.git
    path = other_project
    branch = master

With the subtree being defined in .gittrees, you can make changes to this imported project and you want to push them back to the original project, you can use this :

$git subtree push --prefix=other_project

Or if you want to update the imported project with changes from the original project, you can use this :

$git subtree pull --prefix=other_project

You can also push all changes in imported projects to the original projects, with

$git subtree push-all

It will push all changes to projects that are defined in the .gittrees config file.
Pull changes from all defined subprojects is done with :

$git subtree pull-all

BTW : All subtree commands must be run in the root folder of your git repo.

BTW2: the subtree module is not part of the core git package. So if you want to use it, you will have to install the module first.

Clone the subtree project :

$git clone https://github.com/helmo/git-subtree

In the git-subtree directory, run as root :

#./install.sh

This will copy the git subtree module to the git script folder. You can now use the git subtree module.

Tuesday, May 28, 2013

phpMyAdmin accepts 6 students for GSoC 2013

phpMyAdmin is pleased to announce that it has accepted 6 students/projects for Google Summer of Code 2013 :

  • AJAX error reporting : Mohamed Ashraf
  • Automated Testing : Adam Kang
  • Automated Testing : Ayush Chaudhary
  • Interface improvements : Kasun Chathuranga
  • Re-factoring: server view : Bin Zu
  • Refactoring: SQL Executor, Column's Structure Manipulation : Supun Nakandala

Details about the accepted projects can be found on the wiki.

Congratulations, good luck and happy coding to all the students.
phpMyAdmin looks forward to their contributions to the project.