Tag: software

What is SemVer or Semantic Versioning?

In the Linux world, kernel releases follow MAJOR.MINOR.PATCH version format. Semver is a similar concept. It advises to follow a simple set of rules: Major version is changed for incompatible changes. Minor versions are changed for new functionality Patch version is changed after bug fixes. Versions are always incremented and reset to zero: Patch version is set to zero if…

A Software Design Document Template

The design document is a key piece of a project and used throughout the lifecycle of the product. The following is a sample template for a software design document: Introduction – A paragraph about project/product Objective – A paragraph on the problem being solved Requirements – Specifications, expectations High-Level Design – How the new product/feature fits/interacts with existing systems Low-Level…

MVC Explained

MVC is an architecture to separate an application in three cohesive, loosely coupled verticals. Model: The data of your application and methods to access it. View: The final output/expected result. Controller: The interface that handles requests from the model I’m trying to map it to a Linux Filesystem (e.g. ext2). Model: The file system block manager and allocator for the…

XMPP, Pidgin and Openfire: Capturing a message packet

This weekend Pritam sir and I sat again to nail the problem of hacking chat messages from Openfire server. As expected, we started afresh (our failing memories :D). Here are the takeaways: Our pidgin client (version 2.10) could not connect (error: Not authorized). Add your buddy carefully. Username/ password, domain (IP address of hosting Openfire server) and in advanced setting,…