Articles

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.

Governance of strategic alliances

Submitted by Kamal Wickramanayake on

Introduction

A strategic alliance is a purposive relationship between two or more independent firms that involves the exchange, sharing, or co-development of resources or capabilities to achieve mutually relevant benefits.

It is important that such relationships are well governed to make sure that the operational or strategic benefits the relationships purport to provide are actually realized.

Tags

Governing the adoption of cloud computing - presentation slides

Submitted by Kamal Wickramanayake on

In 2011, I did two presentations for an ISACA seminar on cloud computing. The slides were on that site, but now the site has been replaced. The slides that I used had content still applicable and useful. So here you find the deck of slides I used for the second presentation.

Presentation title: Governing the adoption of cloud computing

Topics covered:

Building applications for the cloud - presentation slides

Submitted by Kamal Wickramanayake on

In 2011, I did two presentations for an ISACA seminar on cloud computing. The slides were on that site, but now the site has been replaced. The slides that I used had content still applicable and useful. So here you find the deck of slides I used for the first presentation.

Presentation title: Building applications for the cloud

Topics covered:

How to create the dependencies when the dependency injection pattern is used?

Submitted by Kamal Wickramanayake on

In object oriented design of software, the dependency injection pattern (or inversion of control pattern – abbreviated as IoC pattern) is widely used to avoid key classes from instantiating their dependencies but to accept the dependencies from outside. Accordingly, the concern of object usage and the concern of object instantiation are separated. It is a case where "separation of concerns" is seen.

Difference between the Factory Method and Strategy design patterns

Submitted by Kamal Wickramanayake on

Gang of Four (GoF) collection of design patterns talks about these patterns where the beginners sometimes fail to see the difference between. They often look at the code example of a pattern and attempt to guess what it is but fail to read through the details and understand the real intent of it. The Factory Method and Strategy patterns are coded similarly but with minor code differences. These minor code differences make the two patterns very different in the way they are used and the problems they solve. In this article, I describe these differences.

How to install Python on Linux?

Submitted by Kamal Wickramanayake on

Python can easily be installed by using the package management software of the Linux distribution used.

In case of Ubuntu, "apt" command can be used as follows to install Python 3.8 from a terminal:

sudo apt install python3.8

Now, type "python3.8" in the terminal and the Python interactive shell should appear as follows:

Python interactive shell