All Articles

Ethernet Variations

Ethernet technology started with using the costly coaxial cables. Now it is possible to carry ethernet frames over cost-effective and cheaper twisted pair cables supporting greater speeds. Another variation of ethernet is to use cable like that of cable TV. This variation of Ethernet is called thin wire ethernet which is expensive but cover only…

All Articles

Ethernet Bridges

Ethernet bridge is a fast computer with two Ethernet interfaces and a fixed program that improve upon the functions of repeaters by replicating the packets, instead of amplifying them. Bridges, thus do not amplify the noise, errors or malformed frames like the repeaters, but only reproduces a completely valid frame. Ethernet bridges supports CSMA/CD mode…

All Articles

Ethernet addressing and frame format

Ethernet Addresses refers to the unique physical/hardware address assigned or hardcoded on to the Ethernet interface card in 48 bits machine readable form. Physical ethernet addresses are meant to be different for each interface card and moving the hardware to a new machine or replacing the existing card with a new one will change the…

All Articles

Collission detection and Recovery in Ethernet

Ethernet data transmission enabled by TCP/IP is a best-effort delivery method. i.e the sender is given no information about whether the data packets were received by the receiver or not. The hosts in the Ethernet participate in data communication over the common Ethernet bus by a process of carrier sense multiple access with collision detection…

All Articles

Ethernet Hardware and basic architecture

A cross section of a Ethernet cable is as shown below – Ethernet is typically a 10Mbps local area packet switched network technology. The cross section of an Ethernet cable is as shown above. The Ethernet coaxial cable is of 1/2 inch in diameter and is extendable upto 500-1500 meters. The outer insulating jacket and…

All Articles

LAN, WAN and MAN

WAN (Wide Area Network) connects machines over widely separated geographical locations. A WAN usually consists of various packet switches installed at various points on the network to carry the signals to long distances. LAN (Local Area Network) span shorter distances usually with an enterprise or within the enterprise department. Since LAN cover shorter distances, they…

All Articles

Differences between TCP/IP internet services and others

TCP/IP internet services and other internetworking services can be compared on the basis of following features of TCP/IP internet – Network Topology Independence While TCP/IP is based on conventional packet switching technology that defined datagram as the unit of data transmission, it is independent of any particular vendor’s hardware or other underlying network technologies.  …

All Articles

Internetworking

Internetworking is the technology that makes it possible to interconnect many disparate physical networks with diverse underlying hardware technologies and make them function as a coordinated unit. The internetworking/internet technology hides the details of network hardware and permits computers to communicate independent of their physical network connections. When we speak of internetworking technology, we speak of…

All Articles

ISDN – Integrated Services Digital Network

ISDN, though not popular in US, it is still one of the most popular data communication networks in UK, India and many other European countries. ISDN evolved from the IDN (Integrated Digital Network) in which both the transmission media and switches employs digital techniques. In this system, speech signals are converted to digital signal at…

All Articles

Basics setup of Mobile Communication services

One of the fastest growing telecommunication industry is obviously mobile radio communication. Below figure shows a basic architecture of such a mobile communication network – Radio telephones or cellphone, as they are generally called, provides a switched two way channel between two conversing parties like a conventional telephone. Telephones may be in vehicles which can…

All Articles

Digitized Telephone services

In the past, we had manual exchanges which involved a great task in switching and routing of calls to various subscribers that increased network traffic and longer setup times. Also fault checking and identification was very difficult. Now, with the introduction of electronic exchanges which uses a stored program concept for switching of calls and…

All Articles

Evolution of Data Communication Systems

Almost all of the Data communication systems across the world evolved from Telegraph systems. Later with developments in the telephone systems, it was now possible to interconnect various computer terminals for data communication. With the advancements in the network computing and the digitization of telephone networks, it was now possible to setup an efficient data…

All Articles

Data Communication – Basic Definition and setup

Data communication is the function of transporting digital signal from one digital device to another. Data transmission and data communications means two different things. Data communications has a much wider meaning which embraces not just electrical transmission but many other factors involved in controlling, checking and handling the movement of information in a communication-based computer…

All Articles

Simple HTTP log analyzer

Here is a simple light weight HTTP analyzer written in PHP. I wrote this to brush up my skills writing schedulers for a typical LAMP stack. Nothing fancy, there are more things to implement on detecting malicious requests, but this will get you started – <?php /** //Simple http log parser and report generation script…

All Articles

Stack Vs Heap

Stack and Heap refers to 2 distinct memory areas utilized by an executing program based on the data type of data that it deals at a point during its execution. Stack is that part of memory that a program uses to keep track of its execution flow. For example it stores the currently executed method…

All Articles

MVC Architecture

MVC architecture has been in place since past 4 decades or so when GUI (Graphical Use Interfaces) started to be used widely. The idea is simple – to implement separation of concerns.  Plainly put, to separate 1) presentation (UI) 2) user interactions and 3) underlying data and logic/behavior. It might be easy to build a web…

All Articles

Constructor overloading in C#

Constructors need to be overloaded depending on what extend of data/properties need to be initialized in order to set the object to a particular state. Below a good example using a Customer / Orders example. Note that Customer constructor is overloaded in 3 different ways based on what data need to be initialized. Here we…

All Articles

Code Reuse via Composition in C#

Composition is a common object oriented concept that enables us to implement loose coupling as well as code-reuse. Lot of times we recommend our developers to use more composition and less inheritance due this very fact. Inheritance supports code-reuse, but makes application tightly coupled and creates long inheritance hierarchies that creates inter-dependencies. Inheritance implements a…

All Articles

Constructor Inheritance in C#

Like any other Object Oriented Programming language, C# does not allow parent constructor to be automatically inherited. It need to explicitly defined in the derived class. Below is an example to explain this – Below is the parent class – namespace ConstructorInh {     public class Fruit     {         private readonly string _color;         public Fruit(string color)         {             _color = color;             Console.WriteLine(“I am a Fruit with Color {0}”, _color);         }     } } Below is the…

All Articles

C# Generics

C# Generics are really useful when we want to reuse a class for different types and with constraints on what those types would be without rewriting those classes. C# allows at least 5 different kinds of Generics usage as related to the kind of constraints that we can use plus the most basic implementations such…

All Articles

C# Inheritance

We generally apply the concept of inheritance to implement a IS-A relationship. For example to implement a relationship that says an Apple is a Fruit or Earth is a cosmic object. We use inheritance very carefully so that it does not lead to long complex/un-maintainable object hierarchies, but to implement very specific object hierarchies with…

All Articles

C# Interfaces and how to implement loose coupling by Dependency (specific implementation of interface) injected via constructor overloading

Interface is a similar language construct such as class, but fundamentally different from a class. Some people claim that Interface is a way to implement multiple inheritance – this claim is also not true! If we were to implement inheritance via interfaces, then we would have re-used, but there is no code reuse while implementing…

All Articles

C# Abstract Classes Vs Interfaces

We use abstract classes when the base class can’t have concrete implementation and that we need the derived class to fully implement it. If at least one of the member is abstract, then the class will need to be declared as abstract. If a class derives an abstract class, then it needs to override all…

All Articles

Simple Stop Watch implementation in C#

Below is a simple stop watch implemented in C#, enjoy!StopWatch using System; namespace StopWatchApp {     public class StopWatch     {         public DateTime StarTime { get; set; }         public DateTime StopTime { get; set; }         public string ClockState { get; set; }         public void StartClock()         {             if(this.ClockState == “started”)                 throw new InvalidOperationException(“Invalid Operation”);             this.StarTime = DateTime.Now;             this.ClockState = “started”;         }         public void StopClock()         {             this.StopTime = DateTime.Now;             this.ClockState = “stopped”;         }         public TimeSpan ElapsedTime()         {             return this.StopTime – this.StarTime;         }     }  } Main Program using System; namespace StopWatchApp {     public class Program     {         public static void Main(string[] args)         {             Console.WriteLine(“Enter Start to Start the Clock,  Enter Stop to Stop the Clock to see the elapsed time.  Enter Quit to exit.”);             var clock = new StopWatch();             int alreadystarted = 0;             while (true)             {                 var inp = Console.ReadLine();                                 if (inp != “Quit”)                 {…

All Articles

Simple Workflow Engine Implementation in C#

Below is a simple implementation of work flow engine using interfaces and the concept of injecting overloaded class implementations via the dependent class method. The class constructor creates the List for storing the specific workflow implementations which are further executed.Interface – IWorkFlowActivities namespace WFEngine {     public interface IWorkFlowActivities     {         void Execute();     } } CarWorkflow using System; namespace WFEngine {     public class CarWorkflow : IWorkFlowActivities     {         public void Execute()…

All Articles

Building your Employee

Your Employee is your company’s pillar who keeps your company going and succeed. Their happiness, joy and right mental state is the core to your success. Below are some of the important things that you need to consider to make this happen – 1) Right Direction – The most important factor that leads to success…

Code First
All Articles

Using Code First first

Traditional ways of software development focus on DB-first implementation methodology. But we are in the realm of latest developments and ORM models has taken us to a level that is was a complex ordeal some years back. Eventhough a thorough domain/ERD based approach provides some advantages, there are far more overall improvements to development and…

All Articles

Using Extension Methods in C#

Extension methods are a way to add methods to a class without changing its source code or adding it into a derived class. Creating extension methods example Define extension method – public static class StringExtensions     {         public static string Reduce(this String str, int numOfWords)         {             if (numOfWords <= 0)                 return str;             var numWords = str.Split(‘ ‘);             if (numOfWords >= numWords.Length)                 return str;             return String.Join(” “, numWords.Take(numOfWords));         }     } Shorten is an extension class on the String class. Adding as above, we were able…

All Articles

C# Events and Delegates

We use events and delegates to extend applications and to implement loose coupling. Rather than adding various method calls within an implementation and then recompiling the class, we publish the need to call a set of methods as an event from the class that will invoke those methods (publisher). The publisher will thus define the delegate which will act…

All Articles

Using C# Delegates

  Delegates is a way to support addition of multiple features (eg: methods) to a framework without the need to recompile the core class that uses these methods. Delegate is a reference to a function/s and is itself an object (derived from MulticastDelegate) that knows how to call a method or group of methods. The…

All Articles

Preferred Multithreading in C# ASP.NET

Parallel execution has been one of the core techniques of programming languages that enables and stabilizes the heavy orchestrated flow of information across information management systems. All Object Oriented Programming languages provides couple different ways to implement this to function smoothly under heavy and stressful load 🙂 A better way was introduced in C# which…

All Articles

Software Project Size

Software Project Size is of great importance since it determines the level of management controls and the types of tools and technologies required for a software project. Accordingly, software projects are classified into 6 major categories as follows (this basic yard stick is used in all of the diversified software development and project management methodologies)…

Software Effort
All Articles

Effort Devoted To Building Software

Studies show that more effort is devoted to software maintenance (including software enhancement, adaption to new technologies and bug fixing) than for software development activities (that is about 40% for analysis + design + implementation). According to Boehm, the total effort spend during the software development life cycle is as follows – The following deductions…

Software Engineering
All Articles

Software Engineering then and now

Software Engineering is and will be the backbone and driving force behind the technological advancements that we enjoy and that will lead us to greater realms of information and knowledge management. Its good for us to refresh our basics and foundations. Software Engineering is a discipline which was conceptualized, developed and is constantly reviewed for…

All Articles

Importance Of Design Patterns

Design patterns in general helps you to implement standardized and efficient solutions to software design and programming problems. Design patterns are not pure inventions like a light bulb or a car. They are derived patterns that software engineers and architects found that could be standardized to be used to solve similar problems categorized across 3…

All Articles

C# Lambda expressions

Lambda expressions are anonymous methods that does not have access modifiers, name or a return. They are used for convenience (less code) and makes code more readable. Lambda expression takes the form below – arg => expression //spelled as argument goes to expression This can be used in 3 distinct ways as below – ()…

All Articles

Data warehousing – Defining data

Two kinds of definitions relevant to data warehouse design are the definition of business terms and definition of data elements. Data element definitions help the business person make sense of the data and to understand the meaning of data stored in their operational OLTP system. Business term definitions help the business person manage his business….

All Articles

Data warehousing – Data warehouse Project Management

Characteristics of successful data warehouse projects generally include the following aspects – Clear business justification for the project ie. measurable benefits must be defined for a data warehouse project Efficient project personnel Ensuring data quality & consistency Data warehouses deal with historical data from a variety of sources. So care must taken to ensure data…

All Articles

DATA WAREHOUSE PROJECT LIFE CYCLE – Ongoing maintenance and changing user requirements

Ongoing maintenance is the final phase of creation of a data warehousing system. The ongoing maintenance of data warehouse generally involves constant loading of new data and addressing the changing analysis requirements of end users Now as the end users gains confidence, satisfaction and control over the data warehousing system, they wish to switch over…

All Articles

DATA WAREHOUSE PROJECT LIFE CYCLE – Design and implementation-Engineering

Once the application is well defined, data warehouse developers are able to begin making technical decisions about building the logical & physical design of the data warehouse system. They may specify the system integration details, the database/software platforms to be used, baseline system models and architectures to be designed at the beginning of data warehouse…

All Articles

Data warehousing – Concept

In the present day competitive & technology centric information age, business enterprises are realising that the enterprise data is valuable resource just like other resources of the enterprise such as man, machine, raw materials & money. The great value of data lies in the fact that enterprises could manipulate this data and create valuable information,…

All Articles

Data warehousing – Data warehousing technology

Throughout the history of systems development, the primary emphasis had been given to the operational systems (simple OLTP -Online transact ion processing systems) and the data they process. Little effort was put on building up an integrated information management system that is capable of capturing, storing & handling the distributed operational data (current & historic…

All Articles

Data warehousing – Project Scope

A typical project scope for Data warehousing is as below – Title: APPLYING DATA WAREHOUSING The major goal & effort on working on the project is to study and analyse a typical system (eg: automobile servicing stations) for applying Data warehousing, study the scope of Data warehousing in the system and present a proposed system Perform Data warehouse…

All Articles

Data warehousing – Need for Data warehousing

The need for an effective information management solution is of top priority in today’s changing & competitive business environment. Various Information systems like OLTP systems, DSS& EIS has been serving this information management need for many years. Data warehousing is an Enhancement of such information management solutions in providing complete, integrated enterprise a information management…

Hospital Wiring
All Articles

How to do Hospital Wiring?

Ok, here is a definitive article on how to set up Hosptial wiring – hands on. Read on – List of material needed – 1) 230 V, 5A SPDT switch – 1;  230 V, 5A SPST switch – 1 2) Switch boxes – 2 3) 230V, 60W Lamp – 2 4) Round block – 2 5) Holder…

All Articles

Tunnel Wiring

Here is a definitive way to set up Tunnel Wiring by yourself – List of Materials needed 1) 230 V, 5A SPDT switches – 3 2) Switch boxes – 3 3) 230V, 60W Lamps – 3 4) Round blocks – 3 5) 4 way Junction box – 2 6) Bulb Holders – 3 7) T…

Staircase wiring
All Articles

Wiring Practice – Staircase wiring

A simple and practical way to set up staircase wiring is explained here. To operate a lamp from two different points by two switches at two different modes, connected with the help of staircase wiring. List of Materials required 1) 230 V, 5A SPDT switches – 2 2) Switch box – 2 3) 230V, 60W Lamp…

All Articles

Sample Linux server (web centric) back up script in PERL

Below is a sample, detailed, PERL script for backing up your web centric Linux server. It includes ways to creating tgz of required areas, pushing them to magnetic tapes, other backup servers and even on to desktops –   Code:   #!/usr/bin/perl use POSIX qw(strftime);   umask 0000;  #####################################################  # This Program is a custom…

Server Synchronization Technology for a Distributed server architecture
All Articles

Paper – Server Synchronization Technology for a Distributed server architecture (DSA)

Requirement: Company xyz has now decided to extend the current system as distributed server architecture, expanding over 46 locations. There will be a central server which will be running from xyz HQ. There will 46 independent host severs running at various locations across the nation, which will be loaded with product management software. These independent…

Web application architecture
All Articles

Sample (cheap) Web application architecture

A sample customized web application architecture is as shown below – As shown above, all the three tiers of the web server architecture, namely database server, business logic and presentation, are represented. The Apache web server, PHP engine, Database drivers and other utilities are closely compiled so as to improve speed and performance. The database…