• Fix for Travis CI failure in forked Golang Repositories

    If you have an open source Golang project on Github and the project is forked, the Travis CI build will no longer work for the forked project. The reason is that Travis fetches the Golang project and puts it inside the Gopath according to your repository path. In my case, I forked the project github.com/elastic/packetbeat to github.com/ruflin/packetbeat. On my local setup I still put it under the path $GOPATH/src/github.com/elastic/packetbeat as this is where the package is expected by Golang. But as Travis pulls the project from my repository, it puts it into $GOPATH/src/github.com/ruflin/packetbeat. To solve this issue, the following code must be added to your .travis.yml file: More...

  • Measuring your software quality standards must be easy

    Quality in Software projects is important, as already elaborated upon in the previous post, it matters from day one. But as long as measuring and running quality metrics isn’t easy, it will be hard to follow through with quality. More...

  • Quality in software projects matters from day one

    As I see quality in software as one of the most important features when building software, I will dedicate my next blog posts on software quality and quality standards. For most non-engineers, quality in software projects is something very abstract. I will therefore now and then make comparisons to building a car, since most people are more famliar with cars and objects they can actually touch and feel. My first post will be about why it matters to get quality into your software project from day one. More...

  • What HTTP Has To Offer Besides Code 418

    The internet is an integral part of our daily lives. We would be lost without the internet at work, and we depend upon it to guide us to a good restaurant or hotel on our holidays. None of this would be possible without internet protocols. TCP/IP, DHCP, DNS, HTTP and many other internet protocols have been around for the last 20 years. Even more amazingly, they have changed only very little. More...

  • Getting started with the Internet of Things

    The term Internet of Things has been around for quite some time. Until recently, however, the things were mostly offline and could only connect to the internet through a mobile phone, for example via scanning a QR code. This changed in the last months and years with quite a few start-ups that entered the market, such as Ninja Blocks or SmartThings and devices such as Knut or Twine, as well as larger companies such as Philips with the Hue Lightbulb. Some of them are based on standards such as Zigbee or have their own implementation. More...

  • From Joomla to Octopress

    After more than a year, I finally managed to upgrade my private website / blog. My blog and gallery used to be based on Joomla, as I was a contributor to Joomla some years ago and had built some extensions which were running my site. Every time Joomla released a large update I ran into trouble because either I was too lazy to upgrade my extensions or another external extension didn’t work properly with the upgrade. Naturally, it always took me forever to upgrade my website (even for security updates) and when I did upgrade, some stuff was broken. More...

  • Include Elastica in your project as svn:externals

    As most of you know, Elastica is hosted on github, which means it uses git as its revision control system. I have several projects which include Elastica but use subversion as its version control system. Until now, I included Elastica as an external svn source by hosting my own Elastica svn repository. But yesterday I discovered that the code from github can also be checked out through svn. I immediately asked google to get more details about this feature and discovered several blog entries on the github blog which I had somehow missed. More...

  • Using Elastica with multiple Elasticsearch Nodes

    Elasticsearch was built with the cloud / multiple distributed servers in mind. It is quite easy to start a elasticsearch cluster simply by starting multiple instances of elasticsearch on one server or on multiple servers. Every elasticsearch instance is called a node. To start multiple instances of elasticsearch on your local machine, just run the following command in the elasticsearch folder twice: More...

  • How to Log Requests in Elastica

    In the Elastica Release v0.18.4.1, the capability to log requests was added. There is a general Elastica_Log object that can later also be extended to log other things such as responses, exceptions and more. The Elastica_Log constructor takes an Elastica_Client as param. To enable logging, the config variable log for the client has to be set to true, or a specific path the log should be written to. This means that every client instance decides on its own whether logging is enabled or not. More...

  • Storing and Analyzing Social Data

    From July 2010 to December 2010 I worked on my master thesis "Storing and Analyzing Social Data". It is about the structure of social data, how to store social data (i.e. NoSQL solutions) and the processing of social data. You can download the full thesis here. More...