On Monday and Tuesday I was attending the „Beyond Tellerrand“ conference in Düsseldorf – a curated conference targeting frontend development, design and creativity. Or to sum it up: about shaping the experience for users on the web.
the conference mug
After having visited the really inspiring „sister“-conference „Play! Beyond Tellerrand“ (which is more code-focused) a year ago I was very glad and excited that I could go to Düsseldorf this year (thanks Mayflower!). When I arrived at Capitol Theater and checked in I was surprised by the adorable location: a lot of open space, people were chatting everywhere, everything was branded with this year’s artwork, the staff was so friendly, there were artists and sponsors giving small exhibitions, … Weiterlesen
When you have a virtual machine that connects both to the host directly and to the network via bridging, you can run into troubles with DNS resolution if you use DHCP on both network interfaces. Since the solution is somewhat cryptically hidden in the DHCP client manual, here’s a walkthrough.
Nowadays, if you want to have an online shop, you have a choice between a number of software solutions, from small and slim to large and comprehensive. Oxid eShop, Shopware, Magento, XT-Commerce are a couple of the more well-known solutions. Every vendor tries to provide the best experience for their target audience, so a couple of compromises is made to cover all use cases. All have in common a web-frontend with an underlying database. The latter is one such compromise. A database in itself is a compromise between storage and retrieval. Since all shopping systems come with a built-in search facility based on the database, searching is subject to a compromise.
To cater all but the most basic needs with a search facility, it needs to be tuned to find the right data, be fast at it and present the results in a meaningful manner. That is where Apache SOLR comes into play. Its main focus is on being a search engine, it does not suffer from the drawbacks that databases have.
You must be the change you want to see in the world
– Mahatma Gandhi
As things change fast, reacting to these changes is not a matter of some new actions but a challenge for a real shift of mind. To realize the necessity of shifting your mind again requires being aware of your underlying mental model. Which means recognizing that you have a mental model and qualifying it against a changing reality in order to detect possible misfits. A learning organization needs individual learning and both are woven into another in a multitude of complex relations.
I’m following Peter M. Senge’s The Fifth Discipline which I try to break down into some main points and sentences that might serve as a basic guideline for systems thinking and personal mastery, two concepts widely discussed in the book. As I would like to keep reading easy and do not intend a political career, I only mark quotations I literally took from the book. Weiterlesen
When we first thought about writing this post we were rather tempted to title it „MongoDB – 10 things I hate about you“, but that wouldn’t be fair after all.
We learned the hard way how painful it can be to replace a working MySQL installation with a mongoDB, especially in a large scale project environment, but blaming mongoDB for that would be like blaming a microwave for not being able to prepare an exquisite 3-course menu.
So we won’t (or at least we do not intend to) write your common mongoDB rent, especially because in the end we were able to make it work. But this won’t be a praise on the new hip database either.
Just like human beings, machines need to communicate with each other – and they do this by passing messages around. The simplest form is to use a protocol like TCP and build some sort of API on top of it. But sometimes this just isn’t enough, especially if you want the connection to be reliable and you can’t afford to loose a single message.
Many people tend to implement it with the use of a database. They just save all messages to a table and let the other system fetch those messages and process them. But there are many pitfalls in such implementations and that’s why it’s considered an anti-pattern to use a database for these tasks. Better use a message queue system, these are particularly built for these types of tasks!
Guzzle has come to a certain fame recently as the framework powering Amazon Web Services new SDK2 for PHP. But what exactly is Guzzle? Guzzle is a framework for building RESTful web service clients. As such it is obviously a very potent HTTP-client library, that presents us with an easy way to send subtly crafted HTTP requests of all flavours to a server and deal with the resulting responses.
But Guzzle is still more than that. Based on a service description file written in JSON – similar to a WSDL-file from the SOAP world – Guzzle builds entire web service clients from scratch and as such relieves us from tedious and repetitive tasks in their implementation.
Setting up the infrastructure for new projects can be quite a pain in the ***. Even after the initial setup is done, adding new developers to the team requires a lot of time. Besides explaining the project to the new team member, the project’s development environment has to be installed on the new developer’s computer. This includes setting up virtual machines, web- and database-servers, updating libraries etc.
Many IT companies use the same technologies repeatedly which leaves them with multiple development environments that look very similar but have been set up separately. This problem can be solved by using a configuration management software and a smart tool for handling virtual machines.
My main motivation for writing a blog post about that topic can be summarized in a single sentence
“The developers produce software that the customer really needs!”
It sounds simple but means that developers require appropriate information in order to deliver output that corresponds exactly to the input that the customer provides, or rather to what the customer really needs. Based on many observations I think the input which is given is influenced by communication paths that vary according to the project.
Build systems have a long tradition in software development infrastructures. They allow for easy automation of tedious tasks that have to be run often while a software product is in development. And there is a great variety of such tasks: compiling source files, running unit tests, gathering metrics from the code and finally deploying it.