C Programming

When you start writing your code in C, C++ or any other programming language, your first objective might be to write a program that works.

After you accomplished that, the following are few things you should consider to enhance your program.

  1. Security of the program
  2. Memory consumption
  3. Speed of the program (Performance Improvement)


Wireshark is an open source network packet analyzer.

It can capture, dissect, and decode various protocols. This helps Linux sysadmin to troubleshoot network issues.

Apart from using wirehshark as a standlone application for debugging network packets, you can also write your own extension or plugin using wireshark libraries for your custom application.

This tutorial explains how to use wireshark libraries to write custom code to debug network packets using a C example program.

If you try to solve some combination problem in programming using simple combination approach where you check all possible variations with repetition or permutations of some kind, you would realize that you would have way too many tries that are not necessary.

You should reduce the poll of possible candidates as much as you can, and find a better solution that will use less processor time.

One of possible technique to solve a combination problem is to use backtracking.

Dynamic programming approach was developed by Richard Bellman in 1940s.

It was an attempt to create the best solution for some class of optimization problems, in which we find a best solution from smaller sub problems.

This approach is recognized in both math and programming, but our focus will be more from programmers point of view. This is not an algorithm that could be applied to all problems of optimization.

There are three types of cryptography techniques :

  1. Secret key Cryptography
  2. Public key cryptography
  3. Hash Functions


How to Debug Programs on Remote Server using GDBServer Example

by Lakshmanan Ganapathy on April 28, 2014

GDBRemote debugging is the process of debugging a program running on a different system (called target) from a different system (called host).

To start remote debugging, a debugger running on host machine connects to a program which is running on the target via network.

The debugger in the host can then control the execution of the program on the remote system and retrieve information about its state.

PAL stands for Physics Abstraction Layer.

Physics engine is a programming library that can model most of the essential factors (e.g. gravity, collision) of the physical world.

With the help of physics engines, we can enhance the reality of computer games or make an accurate emulation of physics experiment.

There are many different physics engine with various programming interfaces, and this leads to the demands of an abstraction programming layer, which can hide engine specific details and expose a common layer for programmers.

Few GDB Commands – Debug Core, Disassemble, Load Shared Library

by Lakshmanan Ganapathy on March 11, 2014

GDB is an essential tool for programmers to debug their code.

This article explains how you can use gdb to debug a program with the core file, how to display assembly language instructions of your program, and how to load shared library programs for debugging.