Agile Methodologies: Agile Manifesto and Principles

As part of my learning process about Agile Methodologies, I am adding a few notes about Agile in general and some of its methodologies in particular. Part of a series of posts, the first entry is about the Agile Manifesto and Principles. This and the following entries rely on the 'Agile Software Development Ecosystems' book, by Jim Highsmith (co-author of the Agile Manifesto and co-founder of the Agile Alliance, and the Agile Project Leadership Network), and materials from the 'Agile Methods' course, at Oxford University.

Continue reading Agile Methodologies: Agile Manifesto and Principles

Part 3: Real-Time Browser to Browser Communication, ExtJS Based Chat Application Using Node.Js and Socket.Io

In the previous entries, found here and here, I wrote about how to enable browser to server communication, using Node.Js and Socket.Io and how to emit events and return responses. In this entry I will describe how to route those events among different connected browsers, and how to create a basic chat application using Sencha ExtJS as a user interface, to notify clients when a new user is connected/disconnected and enable chat messaging.

Continue reading Part 3: Real-Time Browser to Browser Communication, ExtJS Based Chat Application Using Node.Js and Socket.Io

Part 2: Real-Time Browser to Browser Communication, Adding Application Specific Events

In the previous part of this article, I wrote an introduction to Node.js and Socket.Io; presenting a basic server and client communication model. In this entry I am writing an extension to the Server and Client JavaScript objects, to allow for Application Specific Events. This provides the basic framework to writing an application that routes messages between two or more browsers.

Continue reading Part 2: Real-Time Browser to Browser Communication, Adding Application Specific Events

Part 1: Real-Time Browser to Browser Communication Using Node.Js and Socket.Io

Usually browsers communicate with the server, sending a request and getting a response. But what if it would be possible to link two or more browsers, while using the server to route requests between the two? With the advance of server side JavaScript, using node.js, and socket connections supported by HTML5 capable browsers (or frameworks to emulate the functionality in older versions – i.e. Socket.Io) this task has become trivial. 

Continue reading Part 1: Real-Time Browser to Browser Communication Using Node.Js and Socket.Io

FreeBSD Git Server Granular User Permissions using File System Access Control Lists (ACLs)

Previously I wrote about how to create a multi user git server on FreeBSD using standard UNIX file permissions, allowing users that belong to the same group to read and write from and to the same repository. But what happens when some users outside the group, should only read, while others should also write? Standard file permissions are limited, and do not provide sufficient user permission granularity. To workaround this issue, you can use the FreeBSD File System Access Control Lists (ACLs). 

Continue reading FreeBSD Git Server Granular User Permissions using File System Access Control Lists (ACLs)

Identifying bottlenecks in your PHP scripts, using XDebug and KCacheGrind

This entry focuses on how to identify slow parts of your scripts using the PHP/Xdebug profiling feature along with KCacheGrind for profile data visualisation. Xdebug is a PHP extension used for debugging scripts, supporting stack and function traces and information and memory allocation profilling. KCacheGrind is a profile data visualisation tool, allowing for easy browsing of performance results. In this article, Xdebug is installed in Ubuntu Linux side by side with FreeBSD, and KCacheGrind is installed in Ubuntu Linux only.

Continue reading Identifying bottlenecks in your PHP scripts, using XDebug and KCacheGrind

Web Application Performance Testing using Apache JMeter, Part 2: Monitor Server Resources

In Part 1 of Web Application Performance Testing using Apache JMeter I wrote about how to install Apache JMeter and create a test. In this part I am writing about how to monitor server resources, using the PerfMonAgent Server Agent and the PerfMon Metrics Collector Listener plugin. These are particularly useful when trying to measure the impact over your server during perfomance tests. 

Continue reading Web Application Performance Testing using Apache JMeter, Part 2: Monitor Server Resources

Web Application Performance Testing using Apache JMeter, Part 1: Install and Create Tests

PHPUnit and Selenium provide means for testing application functionality. But how can you test your application's performance? Here Apache JMeter comes in handy, as a tool used for load testing functional behaviour and measure performance.

Continue reading Web Application Performance Testing using Apache JMeter, Part 1: Install and Create Tests