Symlink issues with Vagrant and Composer

Recently we converted one of project to use Vagrant Rsync Folders instead of the default VirtualBox shared folders setup. After running the vagrant rsync-auto command for a while we realized that the symlinks in Composers ./vendor/bin/ where replaced with the content of the previously symlinked files. This made the commands unusable.
After a bit of investigation is was clear what was happening: Vagrant does not by default pass the -l flag to rsync which means symlinks are not preserved (even though the vendor folder was not copied to the guest vm). To fix this we had to adjust the rsync options by setting the rsync__args for the folder to:

mehr lesen...

Verfasst von Stephan Hochdörfer am 17.09.2014 | 0 Kommentare

Vagrant Rsync Folders on a Windows host

Since quite a while Vagrant has support for syncing folders via rsync. While it is quite easy to set things up on a linux box, I was struggling a bit to get things going on a windows host. As the vagrant docs recommended I installed rsync and ssh client via the Cygwin package. After running "vagrant up" I got an error from the Vagrant rsync plugin stating "No such file or directory". Via Google search I came across a bug report on Github. As it turns out the problem seems to occur because Vagrant "tries to be smart and detect the environment but it obviously doesn't work reliably". The proposed solution is to patch the Vagrant ruby sources. You have to edit the file C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.6.3\plugins\synced_folders\rsync\helper.rb and change line 43 to:

mehr lesen...

Verfasst von Stephan Hochdörfer am 31.07.2014 | 0 Kommentare

Phing Exec Task and Argument Escaping

Recently I needed to run a script on server via SSH. To automate things I wanted to execute the script via Phing. The command I wanted to execute looked like this:

mehr lesen...

Verfasst von Stephan Hochdörfer am 28.07.2014 | 0 Kommentare

Npm in need of current Git version

Recently we were in the need to create (and host) an own npm module. Setting up a private repository with sinopia seemed like a bit too much work for hosting just a single npm package. So I decided to use the built-in functionality of npm to directly refer to a git repository in the package.json file. This worked fine on "my machine" but failed on my co-workers machine. It turned out that we were both using the same version of nodejs and npm but we were running different versions of git. I had a recent version of git running. My co-worker`s git version was pretty old (1.7.x). I advised that we should upgrade git any try again. And guess what, after the upgrade npm install worked perfectly fine.

mehr lesen...

Verfasst von Stephan Hochdörfer am 21.07.2014 | 0 Kommentare

International PHP Conference 2014

Vom 26.10.2014 bis zum 29.10.2014 findet in München die International PHP Conference 2014 statt. Ich freue mich als Sprecher dabei sein zu können und meine Vorträge "From Vagrant to Production" und "The seven deadly Sins of Dependency Injection" präsentieren zu können.

mehr lesen...

Verfasst von Stephan Hochdörfer am 14.07.2014 | 0 Kommentare

PHP North West Conference 2014

Vom 03.10.2014 bis zum 05.10.2014 findet in Manchester die PHP North West Conference 2014 statt. Ich freue mich als Sprecher dabei sein zu können und meinem Vortrag "Composer for corporate use" präsentieren zu können.

mehr lesen...

Verfasst von Stephan Hochdörfer am 05.07.2014 | 0 Kommentare

Developer Week 2014

Bereits zum zweiten Mal findet in Nürnberg die Developer Week statt. Die Konferenz findet vom 14.07.2014 - 17.07.2014 im Nürnberg Convention Center NCC Ost statt und vereint die drei Sub-Konferenzen die NET Developer Conference, die Mobile Developer Conference und die Web Developer Conference. Ich freue mich mit meinen Vortrag "PostgreSQL: Die NoSQL Datenbank die niemand kennt" dabei zu sein. Der Vortrag zeigt auf wie man PostgreSQL als NoSQL Datenbank einsetzen kann und stellt dar warum dies in bestimmten Situationen durchaus Sinn machen kann.

mehr lesen...

Verfasst von Stephan Hochdörfer am 08.06.2014 | 0 Kommentare

Speeding up your Satis run

Since we have to deal with a lot of private packages which cannot be shared on packagist I set-up a private Satis repo. Whenever a new version of a package gets created the Satis build process is started by our Jenkins build server. In the last couple of months this process takes quite a while because Satis rebuilds the index for every repo it knows about. Since we deal with quite a few repos containing a large amount of versions it slowed down the "build time". Obviously it does not make any sense to run Satis on a repo that has not changed. Since Satis was lacking this feature I started hacking on it and I am happy that the feature got merged into master this morning. If you have to deal with large repos or a large number of repos you might want to give it a try.This is how things work:

mehr lesen...

Verfasst von Stephan Hochdörfer am 01.05.2014 | 0 Kommentare

JS Unconf 2014 Retrospektive

Am 26 und 27.April besuchten wir (Jan-Felix Weber und Katrin Schäfers) die JS Unconf in Hamburg, welche in der Uni Hamburg stattfand, um die neusten Informationen bezüglich JavaScript mitzunehmen.

mehr lesen...

Verfasst von Katrin Schäfers am 28.04.2014 | 0 Kommentare