Agile Methodologies: Retrospective

At the end of each Sprint/Iteration, team members (developers, customers, managers) get together and analyse how to become more effective.  What is a Retrospective? Retrospections are the time when processes are inspected in order to be improved, successes shared, real numbers are collected to be used for future projects and successful actions are reinforced in […]

Install Jenkins on Debian

Installing Jenkins on Debian is a trivial task – a package is available, through aptitude, and default configuration is sufficient. This tutorial does not cover advanced security topics. By default, port 8080 is open and no authentication required – this poses a major security risk; thus if you rely solely on the instructions below, you […]

Agile Methodologies: Estimation

Once User Stories and Acceptance Criteria are created, developers being estimating tasks. This is done in a “Planning Poker”. Each team member having a set of “cards”, consisting of numbers in the Fibonacci sequence, and assigning a number in this sequence to each task. Planning Poker The Planning Poker aims at providing estimates as accurate […]

Continuous Integration and Deployment using Debian, Jenkins, Capistrano, NodeJS and Git

This series of entries provide a short tutorial on how to install Jenkins and Capistrano on a Debian machine; and how to integrate the two to continuously integrate and deploy NodeJS applications. The following topics are covered: Continuous Integration and Delivery Processes, Install and Configure Jenkins and Capistrano, Prepare your NodeJS Project and Create Capistrano […]

PHP 7 Object Properties Type Safety with Setters and Getters

PHP 7 introduces scalar type definitions: your function parameters can be of a given type, and function return type declarations ensuring your function will return results of a given data type. This can increase your code quality by enforcing a specific behaviour of your code, almost similar to how a strongly typed language does. However, […]

CodeIgniter folder structure overview

Below is a quick overview of each CodeIgniter folder, starting from the repository root. application/ – stores the CI core extensions, libraries, configuration, cache, controllers, views, helpers, hooks, languages, logs, models and third_party extensions application/cache/ – stores the application cache application/config/ – stores the autoload, main configuration, database, constants, doctypes, foreign characters, hooks, migration, memcache, […]

Javascript Function Usage Patterns

In programming, patterns mostly apply to code design. However, patterns may also apply to usage of language specific functionality, either to ensure best practices or to avoid common issues. Patterns below focus on function usage patterns. Functions in JavaScript are of two types: Named functions: functions having a given name (e.g.: function functionName() {} ) […]

Create Jenkins Jobs using Capistrano 3 for NodeJS

Final component of the Continuous Integration and Deployment process using Capistrano and Jenkins, is …Jenkins. Jenkins is an open source Continuous Integration services tool, that allows users to define a set of tasks to be run either manually, or triggered by 3rd party applications. This page presents how to integrate Jenkins and Capistrano 3; in […]

PHP 7 Object Properties Type Safety with Setters and Getters

PHP 7 introduces scalar type definitions: your function parameters can be of a given type, and function return type declarations ensuring your function will return results of a given data type. This can increase your code quality by enforcing a specific behaviour of your code, almost similar to how a strongly typed language does. However, […]