Skip to content

VersionEyeBundle for Symfony2

At last week's Webmontag Frankfurt (?), Robert Reiz talked about continuous updating of dependencies with VersionEye. VersionEye, in its own words, is a

cross-platform search engine and crowdsourcing app for open source software libraries.

Essentially, the service tracks more than 170.000 libraries in languages like Java, Ruby, PHP, Python, and many more, and monitors any updates to those libs. Registered users can keep track of their projects and the libraries used in these projects. If any updates occur upstream, VersionEye sends out a mail. As a developer, you don't have to manually check on all the GitHub repositories anymore, VersionEye does that for you.

VersionEye also allows you to create beautiful graphs like this one here on the right. It also lists all the licenses of all the libraries used in your project, an let's you see which libraries you use most often.

Using it with PHP

Adding a PHP project to the service couldn't be simpler (if you use Composer, which you should!): Just upload your composer.json to VersionEye, and you're all set up. The same goes for project files like package.json (node.js), requirement.txt (Python Package Index), pom.xml (Maven) or Ruby Gemfiles. You can also connect VersionEye to your GitHub account, and it will notify you of outdated dependencies in your repositories.

Robert also said that there already is a VersionEye module for ZF2 and the ZendDeveloperTools that calls the VersionEye JSON API to track dependencies. However, I could not find a Symfony2 bundle with this functionality. So I wrote one.

"VersionEyeBundle for Symfony2" vollständig lesen

My PHP Benelux 2013

I suppose this post has to be in English because the PHP Benelux Conference 2013 was an international conference with participants from 17 countries. It took place in Edegem near Antwerp last weekend. Friday and Saturday that is.

Closing Time

Day 1

After four hours on the road, I arrived at the venue on Friday shortly after noon. The keynote by The Grumpy Programmer Chris Hartjes was scheduled for 13:20 so I had enough time to register and chat to some people. Most of them were from Belgium and the Netherlands, but I also met some German and Swiss guys there. The keynote was fun and addressed some important issues concerning software quality and security.

Next up was Igor Wieder's session on Silex Anatomy and Symfony Components, and it was a solid session although the focus was not on Silex so much, but on his microframework YOLO. Like Silex, it's based on the Symfony Components, but does some things differently.

I then skipped the next session slot and checked in at my hotel. Fortunately, I made it back in time for Kris Buytaert's session 7 tools for your DevOps stack. I really think DevOps is a great movement and would love to use more tools like those he talked about. But there's definitely a learning curve ...

Sadly, I missed the so-called "Social", the social event that evening, because I felt tired and slightly ill, so I preferred to go to bed early and collect my strength for ...

"My PHP Benelux 2013" vollständig lesen

How to build the latest Tomahawk Player on Ubuntu 11.04

Tomahawk Player Banner

Tomahawk Player is a next generation music player. It features custom stations (building upon the beatuiful Echo Nest), a playlist importer, social connection to Twitter, Google Chat, and Jabber. Maybe most important of all: It's able to find and pull music from different sources like YouTube, last.fm, SoundCloud, Skreemr, Spotify, and more using the Playdar approach. Of course, it can also play songs from your local library. Make sure to check out the video if you like to know more.

First a word of warning: Tomahawk is still beta, version 0.1.0 is the most current release, but there's no PPA yet for Ubuntu systems. The instructions in the wiki are for Maverick and didn't work for me. That's why I thought I write a short tutorial on how to compile Tomahawk Player on Ubuntu 11.04 (Natty Narwhal).

Update: No need to build version 0.1.0 yourself anymore if you are on Ubuntu 11.04, because the PPA has been updated! Just add ppa:paulo-miguel-dias/tomahawk to your sources, update, and install. In more detail:

sudo add-apt-repository ppa:paulo-miguel-dias/tomahawk
sudo aptitude update
sudo aptitude install tomahawk

Meet the dependencies

First of all, make sure you have all the dependencies installed. I am not 100% sure if the following list is complete because I might have already had some of the necessary libs on my system. Anyway:

sudo apt-get install build-essential cmake libtag1c2a libtag1-dev libqt4-dev libqt4-sql-sqlite \
    libphonon-dev libboost-dev zlib1g-dev libqjson-dev libz-dev \
    libqca2-dev pkg-config git-core phonon-backend-gstreamer

This should install all required packages. More experienced users could als try a different backend for phonon.

Furthermore, libechonest and Clucene are prerequesites for Tomahawk, so download the latest tarball from https://projects.kde.org/projects/playground/libs/libechonest/ and extract it. Step into the new directory libechonest-* and run these commands:

mkdir build && cd build
cmake ..
make
sudo make install

Now, clone CLucene from their git repository and install it:

git clone git://clucene.git.sourceforge.net/gitroot/clucene/clucene
cd clucene && mkdir build && cd build
cmake ..
make
sudo make install

Resolvers

Resolvers are small plugins to Tomahawk that enable the player to search and stream music from differen sources. There's already a collection of resolvers for a number of third-party services which can be used.

git clone https://github.com/tomahawk-player/tomahawk-resolvers.git

That's it for now, I show you how to enable various resolvers once we got the player up and running.

Optional Spotify support

If you live in a country where you have access to Spotify, you might want Tomahawk Player be able to stream music directly from this wonderful service. In order to do so, download the archive for your architecture from http://developer.spotify.com/en/libspotify/overview/ and extract it.

cd libspotify-*-linux*
sudo make install prefix=/usr/local

Now, cd into the tomahawk-resolvers directory that was created in the last step.

cd spotify
mkdir build && cd build
cmake ..
make

there should be an executable spotify_tomahawkresolver in the build directory. You can leave it there for the time being.

Build the actual player

Let's compile the Tomahawk Player itself alreaddy:

git clone https://github.com/tomahawk-player/tomahawk.git
cd tomahawk
git submodule init && git submodule update
mkdir build && cd build
cmake -DINTERNAL_JREEN=ON -DINTERNAL_QTWEETLIB=ON ..
make

You can probably go and drink a cup of coffee because the process takes a while ;-)

After this has finished, it's time to run the player for the first time: ./tomahawk. You can set up the location of your local music collection, you can enter various accounts, and you can add resolvers. In order to do so from the Tomahawk settings dialog, klick and the add button, navigate into the respective directory beneath tomahawk-resolvers, and select the *.js/*.py/*.php file or the above-mentioned spotify_tomahawkresolver executable. Play around with your new player a little to get to know all of its features.

Enjoy the future of music listening today!

Update: According to domme's comment, libgnutls-dev libgloox-dev are not required anymore, so I removed them from the instructions.

Sudan Vote Monitor

I blogged about Sudan before, but neglected the country for quite a while (if only here in the blog), although many important things happened there over the course of the past months. Among them a nationwide election. I will not write about it here; if you're interested and want to read up on the topic, Wikipedia is a good starting point.

What I want to cover here is a project that I've been keeping tabs on for quite a while now: It's called Ushahidi - Swahili for "witness" - and is, actually, a non-profit software company based in Kenya. It's goal is to develop software for collaborative information collection and visualization. Initially, the platform was created after Kenya's 2007 presidential election when violence erupted all over the country. Ushahidi used a crowdsourcing approach to gather information about when and where violent acts were committed. People could send in information by email or text message, and thes reports were subsequently placed on a map. Watch the video for a general overview of what Ushahidi does:

Now, Ushahidi can be used for many different things, from tracking crisis events to mapping snowball fights. There are services like Crowdmap that make it possible to set up an Ushahidi instance within minutes, or Swiftriver to filter and manage realtime information from a variety of different channels. The project has become a veritable success story. And this is where I want to get back to events in Sudan. On January 9, 2011, Southern Sudan will hold a referendum on whether or not it will secede from Northern Sudan.

Many observers fear that there will be controversy about the results, media censorship, even the return of civil war after five years of relative calm. Sudan Vote Monitor, a project of the Sudan Institute for Research and Policy, will soon reopen and accept reports of violence and other incidents. In an announcement today, they provide reasons why one should report to Sudan Vote Monitor even though many other initiatives are monitoring the referendum, too: Easy accessibility, real time reports, and aggregation of information. Since the site was blocked in Sudan for a couple of days during this year's elections, it will be revealing to see if this will happen again in two weeks.

Everyone interested in the referendum in Southern Sudan should try to follow the reports on Sudan Vote Monitor and become a follower on Twitter.

Of course, other initiatives exist. The Enough Project by the (left-leaning) Center for American Progress aims to end genocide and crimes against humanity, especially in Sudan. Its most famous activist is arguably George Clooney. He also supports the idea of using satellite based surveillance to monitor troop movements in Southern Sudan during the referendum. According to an online article in TIME, the website www.satsentinel.org will go live tomorrow (though it really doesn't look like it because the domain is for sale right now for a little over 50 €) while the satellite will take up work on Thursday. Let's wait and see ...

Google releases OpenID demo store and mod_pagespeed

Google just released two interesting projects into the wild. One is an OpenID demo store with accompanying documentation, the other an open-source module for the Apache web server.

Google's OpenID demo store

Although OpenID has seemingly been adopted by all major players on the web (aside from Facebook, maybe), I wonder how often their users log in with their OpenID. Most smaller sites are afraid of the overhead of an OpenID implentation, or simply don't know how to do it. Now, Google set up a sample store that makes heavy use of OpenID. Equally important, it's supplemented by an extraordinary documentation. As Carsten correctly states, such a documentation was needed for quite some time. It will be interesting to see if any larger online shops jump on the bandwagon an implement OpenID for their businesses.

mod_pagespeed

According to Google, page loading times become increasingly important, not only for the customer experience, but also for the ranking in Google's search index. Performance hints and tools are abundant on the web, but Google goes even beyond those recommendations and released an extension for the popular Apache web server: mod_pagespeed. I installed it on my local box, but there are lots of options, and I haven't found the time yet to fiddle with them all. It seems that you can achieve most of the optimizations by optimizing your default Apache installation. However, mod_pagespeed might make configuration a lot easier. I guess, we'll have to wait and see.