Articles

Using Git to deploy PHP software - Part 1

Submitted by Kamal Wickramanayake on

Last time I wrote an article about Gitolite titled "Create and manage your own Git repositories with Gitolite". In this article, let us explore how to securely distribute and deploy PHP software using Git. Here we will use Gitolite but other Git repository management software may also be used with the technique mentioned below.

Create and manage your own Git repositories with Gitolite

Submitted by Kamal Wickramanayake on

Gitolite is a Git repository management software. It can be used to easily setup Git repositories on a server. It allows authentication with SSH keys and provides fine-grained access control.

Gitolite doesn't have a graphical user interface. Nor it needs a database. It's simple to install and use.

Tags

What should be minimally learnt to get a job as a software developer?

Submitted by Kamal Wickramanayake on

Someone asked me about studying a programming language aiming for a job. I thought I would expand and write a bit about it. What should be minimally learnt to get a job as a software developer?

From job to job, the exact requirements differ. In general, a lot of software developers make database driven web based applications. Taking into consideration such a job and as per how software is developed these days, below is a list of key areas that one might want to learn in general.

What can be considered a good effort estimate for a software project?

Submitted by Kamal Wickramanayake on

The effort required to complete a software project is a prime factor that is used to arrive at the price. A good effort estimate for a software project also helps create a realizable development plan and support realizable plan revisions. A good estimate is not the only factor that determines the success of the software project. Nevertheless, having a good estimate is surely a factor that has significant benefits.

Here are the characteristics of a good software project estimate:

What is omnichannel architecture?

Submitted by Kamal Wickramanayake on

Omnichannel architecture is a form of how an organization communicates with engaging people over a number of communication channels. It can be called a user experience architecture with respect to how people experience it. It can be called a business architecture with respect to how business processes are organized to deliver an omnichannel experience. It can be called an IT architecture with respect to how IT is organized to deliver an omnichannel experience.

To distinguish omnichannel architecture, let us explore some other forms too.

Postfix email server spam reduction using DNSRBL services for both blacklisting and greylisting

Submitted by Kamal Wickramanayake on

Even if DNS Real-time Blackhole Lists (DNSRBL) are used to blacklist the IP addresses of e-mail spammers, spammers could change to unlisted IP addresses and continue spamming. While greylisting reduces the spam since spammers don't always reattempt to send the same e-mails, it also has the advantage that the delay introduced gives some time for the DNSRBL services to blacklist the IPs of bad senders. However, greylisting could delay legitimate messages. An improvement is to apply greylisting only for the e-mails sent from suspected IP addresses.

What level of detailing is sufficient for software architecture documentation?

Submitted by Kamal Wickramanayake on
Developing software with no documentation is not uncommon. It could be that the bulk of software is developed like that. I have seen even the significantly large systems and product suites with no documentation about architecture, design or other technical aspects. Even though the documentation process could be seen as a burden by some developers, documentation provides multiple benefits to development teams. How to determine what level of detailing is sufficient for software architecture? Put in another way, at what level should we stop documenting?

Make the business case development process efficient

Submitted by Kamal Wickramanayake on

Development of business cases is a time consuming process. So as evaluating them. An effective way organizations can employ to optimize the whole process is by following a two stage process. Here, the business cases are first described in a brief manner and send through an initial evaluation phase. Those that pass the initial evaluation can then be fully dressed, made more accurate and sent through a detailed evaluation.

Preparing an agenda for an effective meeting

Submitted by Kamal Wickramanayake on

Meetings in many instances are organized without much clarity about what the ultimate objectives are. It is also possible to find meetings where time is spent unnecessarily. Someone who is result oriented and keen in effective time management can achieve better outcomes from a meeting by spending a bit of time to prepare a focused agenda.