May 312012

A decompiler performs, as far as possible, the reverse operation to that of a compiler. In case of Microsoft.NET, it translates an assembly that has the IL code into a human readable form, which means in one of the Microsoft.NET languages. It is not guaranteed that the decompiler would generate exactly the same code as originally used to compile a program. I tried to collect [… read more]

May 292012

In which scenario should we use the interfaces and in which scenarios we use abstract classes? At the first sight the two provide a very similar ability, but we will see what makes them different. Abstract Class Defines the interface for a hierarchy of classes while deferring the implementation to subclasses. Abstract Class lets subclasses redefine the implementation of an interface while preserving the polymorphism [… read more]

May 222012

Being a Leader means working with people. This automatically involves the interaction at many levels and with different kind of personalities. The “real leader” needs to be able to deal with all kind of situations by keeping in mind that the pre-set goals need to be achieved. Delegating In general, people don’t like delegating as this often means loosing control or wasting the time explaining [… read more]

May 202012

This post is a continuation of the earlier post Object Oriented Javascript – Object Creation, on which are explained the different ways of creating objects in javascript. With this post I would like to explain the other possibilities javascript offers when it comes to the method and properties creation. Adding and deleting methods and properties Javascript is so flexible that we are able to attach [… read more]

May 092012

This post goes a bit away from the usual topics I am writing about. One of the reasons why am I starting this post in particular is to give credit to other bloggers which posts I followed and found useful, and to obviously share my findings with you and help you by giving you the information I haven’t had when I started. I started this [… read more]

May 072012

The primary key of a table on an RDBMS uniquely identifies each record in the table. It can either be a normal attribute that is guaranteed to be unique or it can be generated by the RDBMS (such as a globally unique identifier). Primary keys may consist of a single attribute (single key) or multiple attributes in combination and in that case we speak about [… read more]

An introduction to NoSQL

 Posted by on May 7, 2012
May 072012

In my working career I had to deal with databases since my first day at work and it is a bit a hate-and-love relationship. Usually well working application is always backed up by a good designed database schema and good accessing mechanism. So far I always used RDBMS – Relationship databases such as Microsoft SQL Server, Oracle, MySql, Sybase. Right now there is a big [… read more]

May 052012

Transactions are an integral part of any (serious) database development when there is need for data consistency. Transactions in a database environment have two main purposes: To provide reliable mechanism to allow correct recovery from failures and keep a database consistent To provide isolation between programs accessing a database concurrently. It’s impossible to mention transactions without mentioning the ACID (Atomic, Consistent, Isolated and Durable) attributes [… read more]

May 052012

The following is a list of books that I would recommend to every experienced (or not) software developer. Very often I take inspiration by reading again and again some chapters as very often the knowledge (theory), if not practiced, tends to blurry overtime. Please take the list as it is without any order of precedence. Every book is important for its own topic. Patterns of [… read more]

May 042012

We mention Cohesion and Coupling when we are talking about Software Design Principles. Those two principles were first introduced in the book Structured Design: Fundamentals of a discipline of computer program and system design many years ago, even though the principles were around Structured Programming, they are still valid in the Object Oriented world. Cohesion Cohesion represents the degree of the systematic or logical connection [… read more]

May 022012

In order to be agile team in today’s quite stressful and demanding time, software programming team should try to follow some if not all of the below listed practices in order to succeed: Test-first programming (or perhaps Test-Driven Development) Regular refactoring Continuous integration Follow a Simple design (YAGNI) Pair programming / Code Reviews Sharing the codebase between programmers A single coding standard to which all [… read more]

May 022012

This post is an introduction to the Object Oriented functionality in JavaScript. I will discuss the ways of creating, instantiation and inheriting objects in JavaScript. JavaScript itself doesn’t contain the class keyword and there are mainly three ways of creating objects in JavaScript, by using: Literal notation new Object() Object templates Literal notation By using the Literal Notation, the object description is a set of [… read more]