In graph based recommendation engine for Shopware I wrote about neo4j and implemented an experimental recommendation engine for Shopware.
In What is an item? I discuss terms like "item", "article" and "product" and show, how items are handled in Shopware
At the code.talks 2015 conference I had the pleasure to speak about "evolution of plugin systems". In that talk I had a quick look at the requirements developers usually have, when they decide to bring a plugin system into play. Furthermore I showed some examples of ways to extend software and discussed advantages and disadvantages.
If you missed the talk or want to have a look at the slides: Here you go
Most of the python projects, I build between 2007 and 2012, are currently located on launchpad and use bazaar as version control system. As most of my current stuff lives on github, I want to migrate some of my bazaar projects to git. This is actually quite easy:
sudo apt-get install bzr-fastimport
This will install the
fast import extension to bazaar, which will allow you
to import the bazaar commits to git using
git fast-import command.
Now navigate to your bazaar project and init the git repository, if
you haven't done so, yet:
In order to perform the migration run:
bzr fast-export . | git fast-import
Today I am starting to migrate my homepage from the existing Wordpress installation to Sculpin. There was not lot of traffic going on the last few years - but I hope, that I will be able to give a few of my last script and tools a quick update.
In Generating plugins with the CLI tools I show how to create shopware plugins with a simple code generator I wrote. This code generator is a command inside the SF2 based console application "sw-cli-tools".
In Bootstrapping shopware: The dispatch loop I show what happens, if a request hits Shopware and how Shopware figures out, which controller should be in charge to answer the request. I think it gives a fairly good overview of some basic Shopware internals.
In The Shopware SEO engine I discuss the internals of Shopware's SEO engine. It will help you not only to understand the details of Shopware implementation and how to extend it; it also gives an impression about how generally flexible SEO engines might be implemented.
In cross cutting concerns I generally discuss various types of "concerns" and especially "cross cutting concerns". This type of concern is usually hard to handle in OOP applications and might lead to duplicated or highly coupled code. I discuss different ways to address cross cutting concerns. As a follow up I also discussed aspect oriented programming as a way to address cross cutting concerns in a separate blog post.
In Understanding the Shopware hook system I discuss the Shopware hook system as one part of the plugin system of Shopware. Hooks are quite powerful and allow aspect oriented programming in PHP, even though PHP do not natively support AOP. In the blog post, also details of the implementation and pros and cons are discussed.
In Understanding the Shopware HTTP cache I give a more detailed overview of Shopware's caching system. It is not only about the general concept of HTTP caches, ESI and cache invalidation, but also about possibilities to influence the default behaviour from a plugin.