Salt and Pepper — Running native code within the browser with Google Native Client

When the web started off in 1989 at CERN, it was just a collection of static HTML documents, the first browsers were little more than document viewers, and computing still happend largely on big servers connected to many thin-client workstations. Much has changed over the last 20 years. Computing has moved from a the server-terminal model to the personal computers we know, and as web browsers are rapidly transforming from document viewers into sandboxed Javascript runtime environments, something amazing is happening: computing is moving back to a client-server model, with servers located in the cloud serving web applications running in the browser sandbox.

With browsers transforming into target platforms for general application development, there comes a desire for software running at near-native speed, something which a highly dynamic language like Javascript still has a hard time to deliver (even though Javascript runtimes have improved speed tremendously over the last years). It is not surprising that Google has come up with their own answer to this problem: Google native client (NaCl) allows native C/C++ code to be compiled to run directly in the browser and has been part of Chrome since version 14 (November 2011). In this blog post, I’ll take a closer look at this technology and explore how it works. Weiterlesen

Einstieg in Zend Framework 2 mit Composer

Am 05.09.2012 wurde das Zend Framework 2 in seiner ersten Stable-Version veröffentlicht. Aktuell befindet sich das Framework nun in Version 2.0.5. Das neue Zend Framework 2 versucht gegenüber seinem Vorgänger vieles anders zu machen und sich stärker an aktuellen “Standards” aus der PHP-Welt zu orientieren.

Da das ZF2 (abgekürzt für Zend Framework 2) aktuell noch relativ selten und wenig verwendet wird, soll dieser Artikel einen einfachen Einstieg bieten, wie man schnell und unkompliziert die ersten Schritte auf dem Weg zu seiner eigenen Anwendung bewältigt.
Weiterlesen

Symfony2: Bundle your libraries!

In vielen Software-Projekten kommen Entwickler irgendwann an einen Punkt, an dem Funktionalität implementiert wird, die in anderen Projekten wiederverwendet werden können soll. Nachdem ich in der jüngeren Vergangenheit von mehreren Kollegen gefragt wurde, wie man dies in Symfony2-Projekten bewerkstelligen kann, wollte ich schriftlich eine Zusammenfassung der wichtigsten Punkte bereitstellen. Das Resultat ist dieser Blog-Artikel, der eine Schritt-für-Schritt-Anleitung enthält, wie man wiederverwendbaren Code kapselt und in einem eigenen Symfony2-Bundle bereitstellt.

Das Wissen, welches ich hier verpacke, habe ich teils aus der Symfony2-Dokumentation, teils aus der Erfahrung, welche ich in den letzten Jahren in Symfony2-Projekten gesammelt habe. Nachdem ich des Öfteren Library-Code aus Projekten ausgelagert hatte, konnte ich einige Patterns identifizieren und vor allem feststellen, dass diese Vorgehensweisen in Symfony2-Projekten (abgesehen von syntaktischen Eigenheiten) denen in beliebigen anderen Umgebungen sehr stark ähneln.

Die folgende Liste ist als Template zu verstehen, welches in einfachen Projekten genau so verwendet werden kann, in komplexeren jedoch wahrscheinlich erweitert werden muss. Weiterlesen

Development environment for Magento, OXID and Shopware

Developers in smaller and larger e-commerce agencies/shops are often faced with different development environments. Customers who want to evaluate e-commerce platforms like Magento, OXID or Shopware have to handle everything from downloading the packages, their LAMP stack and installing it on-the-go. Of course, you might have your own virtual machine, but for a quick shot you have to create another virtual host etc.

But there’s a solution for that: a vagrant/puppet based development environment for Magento, OXID and Shopware. It consists of a Vagrant build and uses standard puppet recipes for Apache, PHP etc, as well as own (open source) recipes for Magento, OXID and Shopware and installs the appropriate shop system in a box together with a lot of PHP tools.

All you have to do is clone the commerce-dev-environment repository from GitHub and vagrant up :-)

Feature enhancements and Pull Requests are welcome.

Mayflower-Donnerstagsvortrag, 30. August

Am 30. August gibt es wieder zwei einen kostenfreien Mayflower-Donnerstagsvortrag, zu denen unsere Kollegen bei Pizza und Kaltgetränken aus dem Nähkästchen plaudern. Beginn ist ab 18 Uhr, ein Vorbeischauen lohnt sich. Infos und (optionale, aber willkommene) Anmeldung über Xing und Facebook. Und wer uns noch nicht kennt – unsere Büros sind ganz leicht zu finden. Wir freuen uns schon!

München

Unser Experte Alberto Assmann nimmt sich das Ökosystem rund um die Code-Hosting-Plattform GitHub vor.

Der Sourcecode vieler Open-Source-Projekte ist bereits auf Github zu finden. Neben den eigentlichen Services von GitHub haben auch die richtigen Tools rund um die Plattform zu eben diesem Erfolg beigetragen. So lässt sich eine ansehnliche Porjekthomepage mit Twitter Bootstrap und Jekyll in wenigen Stunden erstellen und das eigene Projekt damit richtig vermarkten.

Durch Continuous Integration Tools wie Travis CI können die Test des eigenen Projektes nach jedem neuen Commit automatisch ausgeführt werden und die Ergebnisse lassen sich öffentlich einsehbar machen. Sämtliche Abhängigkeiten zu anderen Projekten können mithilfe von Composer und Packagist abgebildet werden, einem Service, der GitHub-Projekte in einer Form listet, die es ermöglicht, diese jederzeit mit Composer in das eigene Projekt zu intergrieren.

Wie diese Tools im Zusammenspiel funktionieren soll der Vortrag an einem Praxisbeispiel zeigen.

Würzburg // Der Vortrag muss leider kurzfristig entfallen!

Unser PHP-Experte Paul Seiffert hat einen Schnelleinstieg in die Entwicklung mit dem beliebten Symfony2-Framework vorbereitet. Das PHP-Framework Symfony2 hat sich mittlerweile gut etabliert und kommt in vielen neuen Projekten zum Einsatz. Immer häufiger stellen sich jedoch die Fragen:

  • Wie schnell kann ich mit Symfony2 von 0 auf 100 kommen?
  • Wie lange braucht es, bis ich die erste Webseite sehe?
  • Welche Tools muss ich kennen, um einen schnellen Start mit Symfony2 zu schaffen?

Der Vortrag wird zeigen, wie man in einem neuen Projekt schnell zu einem Punkt kommt, an dem man sich auf das Wesentliche konzentrieren kann und Boilerplate Code minimiert.

Interview with Mage+ creator

[You may have heard about the Magento fork Mage+.]

 

Lee, just tell us: who are you and what are you doing?

I’m a Magento technical architect, developer and contributor to Magento CE. I specialise in architecting and building large scale and complex installations of Magento – having built enterprise Magento platforms for Warner Music Group both in Europe & USA, and for Rebate Networks, who operate a collection of localised flash-sales websites throughout the world. I’m also the founder of the London Magento Users Group.

I created a fork of Magento CE called Mage+, after the frustrations I’d experienced whilst working with Magento.

Weiterlesen

Magento CE 1.7 forked on GitHub

[This blog post is also available in German.]

 

Yesterday, it was the news of the day: Magento CE 1.7 was forked on GitHub by some community people. After the spectacular departure of Yoav Kutner, then-CTO at Magento (TechCrunch reported), it was just a matter of time until Magento was forked. Indeed, as Vinai Kopp pointed out on twitter, there have been some forks of Magento already (project agent-ohm, a fork of Magento 1.3), but Mage+ seems to be another case.

What are the reasons of the fork of Magento? And what’s in it for the Magento community?

Weiterlesen

Magento CE 1.7 auf GitHub geforkt

Die Nachricht des Tages: Magento CE 1.7 wurde auf GitHub von der Community geforkt. Nach dem spektakulären Weggang von Yoav Kutner, CTO bei Magento (ExcitingCommerce und TechCrunch berichteten), war es wohl nur eine Frage der Zeit, bis Magento geforkt wurde.

Was sind die Gründe des Forks von Magento? Und was kann dieser Schritt für die Community bedeuten?

Weiterlesen

Dependency Management mit Composer

PHP befindet sich aktuell auf dem Weg, wieder eine angesehene Plattform für professionelle Webanwendungen zu werden. Dieses Ansehen muss sich erst wieder erkauft werden. Noch zu oft leidet die Sprache unter dem Bild, ihre Produkte bestünden nur aus schlecht strukturierten und unprofessionellen Scripts.
In vielen Fällen mag dies richtig sein und man muss zugeben, dass die Verwendung von PHP oft dazu verleitet, einen „Quick & Dirty“-Ansatz der sauberen Lösung vorzuziehen. Als professionelle Software-Entwickler müssen wir aber stets versuchen, mit unserer Arbeit hoch-qualitative und nachhaltige Software zu produzieren.

Ein Anspruch, den sich sicher jeder Entwickler stellen muss, ist, die Produkte seiner Arbeit wiederverwendbar zu halten. In diesem Kontext fallen oft die Begriffe Kapselung und Modularisierung. Um Module wiederverwendbar zu machen, müssen diese eine klare Schnittstelle besitzen und möglichst nur eine Aufgabe – und diese Aufgabe dafür richtig – erledigen. Beim Design modularer Applikationen merkt man schnell, dass bestimmte Module bereits an anderer Stelle entwickelt wurden und eventuell wiederverwendet werden können.
Dieser Artikel beschreibt eine Software, die das Wiederverwenden von PHP-Modulen automatisiert.

Weiterlesen