A quick guide to writing good code

Are you writing a high quality code? Most of the developers would probably say yes. The really honest one would say that it might not be perfect but it’s OK. Both answers are fair. Most of us are very serious about the job we do and we always try to give our best (at least most of the time). The big question here is that if we’re all genuinely convinced about a reasonable quality of our code why there is so much technical debt wherever we look?
Continue reading “A quick guide to writing good code”

Parsing binary data in PHP on an example with the PCAP format

Not every problem should be solved with PHP. For certain types of applications it’s simply more appropriate to select a different programming language. You might be glad to hear that parsing binary data, is **NOT** one of them. If you don’t have to worry about microseconds and the biggest concern is development time, PHP might be in fact a very good tool for the job.
Continue reading “Parsing binary data in PHP on an example with the PCAP format”

A painless guide to Apache CouchDB for a PHP developer

World of technology loves buzzwords. There is always something new which allegedly is the game changer, and we all should upgrade in the matter of urgency. On the other hand, absorbing new knowledge costs time and effort. It’s difficult to decide which technology is worth sacrificing brain glucose levels.
Continue reading “A painless guide to Apache CouchDB for a PHP developer”

API-based Web Application with Backbone, Require.js and Slim framework

A single-page application (SPA) was something I’ve been exploring for the last few months. I always liked the idea of moving certain responsibilities to the client’s side. After all, why would you like to waste server’s RAM/CPU to buil a HTML page (and pay for a transfer to deliver it) when a web browser is perfectly capable of doing that on its own? You will not only save money but also provide a better user experience. In addition to the performance, moving the presentation layer to the web browser gives a clearer division between back-end and front-end code.
Continue reading “API-based Web Application with Backbone, Require.js and Slim framework”

Continuous Integration for PHP with Jenkins

Today I would like to show you how to setup an continues integration server for a PHP project with Jenkins. If you don’t know what the continues integration is have a look at Wikipedia. In a simple words It can be explained as a process of frequent commits to the project’s mainline and running all sort of automated tests to discover problems as soon as it’s possible. CI comes with a long list of benefits and only two disadvantages (according to Wikipedia). One of them is “Initial setup time required”.
Continue reading “Continuous Integration for PHP with Jenkins”

Sucesfull planning in software development

All successful people have a plan. They plan literally everything from work related stuff to details of their personal live. One of my friends used to plan how much he’s going to earn the next day. He used to make up a number and write a short sentence in his notebook like “Tomorrow I’m going to earn £5,000” (It was actually 25,000zl because he lives in Poland). In some mysterious way he was able to earn that money which was astonishing even himself. Obviously if you don’t own a business your salary won’t spontaneously change over a night but a good plan will help you to manage your boss, the development and ultimately will contribute to your success.
Continue reading “Sucesfull planning in software development”

Load testing with BlazeMeter

Some time ago I wrote a post about using jMeter to benchmark performance of a web application. Apache jMeter is a great piece of software and I strongly recommend it but it’s not everything. You also need a high capacity bandwidth and a reliable hosts to run a test from. You often need more than a one testing server because it’s impossible to generate real concurrent connections from a single computer. The reason for that is a network interface can physically send only one packet at the time. People from BlazeMeter recognised this problem and created a web based service which makes the load testing very simple.
Continue reading “Load testing with BlazeMeter”

How to improve PHP programming skills

“How do I improve my PHP skills?” is a recurring question on various boards and chats. It’s often asked by newbies but even experienced developers ask themselves the same thing. After all trying to be better is in the human nature. This is a deep question and when you think about it there isn’t a straight forward reply. Nevertheless I will try to give a comprehensive answer which hopefully is going to be useful not only to the beginners but also to the people with some commercial experience.
Continue reading “How to improve PHP programming skills”

Reading PHP session from Varnish Cache

In my previous post I showed how to integrate Varnish Cache with a PHP application. The example can solve various simple problems but it might not be enough for a complex software. A good example is a multilingual application. One URL can have multiple caches. You might also need to know more about a user (is he logged in? has he received a notification? etc) to make some additional caching decisions.
Continue reading “Reading PHP session from Varnish Cache”