≡ Menu

Open source coding

Download of the day: Bazaar Distributed Version Control System

Canonical Ltd the creator of Ubuntu Linux has released a new software called Bazaar. It is a distributed version control system available under the GPL that reduces barriers to participation in your project. If you can run Python 2.4, then you can run Bazaar.

There are many really good VCS tools such as Subversion and Git. Bazaar is a decentralized revision control system. Revision control involves keeping track of changes in software source code or similar information, and helping people work on it in teams.Bazaar features
=> Reliable
=> Ease of use
=> Portable software (Works on *nix / Windows)
=> Flexible
=> GPL Code
=> Good performance
=> Safe with your data etc

The program is simple to deploy. It doesn't require a dedicated server. Any Web server that includes ftp will work as a Bazaar server. Canonical also states that because developers can commit their code locally whenever they want, they're less dependent on the central code base.

Download Bazaar VCS

=> Visit project home page to download Bazaar Distributed Version Control Software

Linux device driver tutorial using kernel driver frameworks

A device driver is computer program allowing other computer programs to interact with a computer hardware device. Writing a Linux device driver is considered as a black art by many. If you ever been tempted to try writing a device driver, this howto will serve as a kick start guide:

For many seasoned Linux developers, device drivers still remain a bit of a mysterious black art practiced by a select few. While no single article could possibly attempt to covered everything there is to know about writing drivers, Valerie Henson gives us a brief taste of what's involved, by implementing a device to return "Hello World" using all the major driver frameworks.

On a related note if you just want get a comprehensive overview of kernel configuration and building, a critical task for Linux users and administrators, try Linux Kernel in a Nutshell

/dev/hello_world: A Simple Introduction to Device Drivers under Linux (linuxdevcenter.com)

Understanding and using GNU GCC Compiler Parameters

The GNU Compiler Collection (GCC) includes C, C++, Fortran and other programming languages. GCC was originally written by Richard Stallman in 1985. GCC is the only compiler you can find under wild verity of operating systems / hardware architectures (CPU).

gcc gives us many useful options to make our code into whatever we like. By understanding what these options really do, we can make the program faster and slimmer.

gcc (GNU C Compiler) is actually a collection of frontend tools that does compilation, assembly, and linking. The goal is to produce a ready-to-run executable in a format acceptable to the OS. For Linux, this is ELF (Executable and Linking Format) on x86 (32-bit and 64-bit). But do you know what some of the gcc parameters can do for you? If you're looking for ways to optimize the resulted binary, prepare for a debugging session, or simply observe the steps gcc takes to turn your source code into an executable, getting familiar with these parameters is a must. So, please read on.

Understanding and using interrupt management under Linux

This article describes the most important concepts related to the Linux kernel's interrupt handling mechanisms.

A clear understanding of the Linux kernel's interrupt handling mechanism is essential if you are to write solid, reusable device interrupt handlers. It is also mandatory if you are to successfully port Linux to custom hardware.

Bill Gatliff provides a walkthrough of the portions of the Linux kernel that manage interrupts and describes how Linux interacts with interrupt controllers and how to adapt code for custom hardware.

Interrupt handling is a fundamental part of the Linux kernel. Most of the kernel's functionality, in particular the parts of interest to embedded developers, in some way involve interrupt handling.

=> Interrupt Management Under Linux - Using the Interrupt Controller API

Download advanced Linux programming book PDF version

If you are a developer for the GNU/Linux system, this book will help you to write and/or develop GNU/Linux software that works the way users expect it to.

Advanced Linux Programming is published under the Open Publication License, Version 1, no options exercised. (Due to an oversight in final production, the copyright notice on the book is incorrect.) The full text may be downloaded from this site. Code samples in the book are covered by the GNU General Public License and are also available.


Chapter 01 - Advanced Unix Programming with Linux
Chapter 02 - Writing Good GNU/Linux Software
Chapter 03 - Processes
Chapter 04 - Threads
Chapter 05 - Interprocess Communication
Chapter 06 - Mastering Linux
Chapter 07 - The /proc File System
Chapter 08 - Linux System Calls
Chapter 09 - Inline Assembly Code
Chapter 10 - Security
Chapter 11 - A Sample GNU/Linux Application

Download link

=> Advanced Linux programming book, by Mark Mitchell, Jeffrey Oldham, Alex Samuel (via Digg)

How to program or integrate Paypal website payments using PHP 5

There is a nice and open source program called Website Payments Pro 4 Paypal.

From the project page:
It is an object-oriented PHP5 framework engineered to integrate easily with the Website Payments Pro API from Paypal. Complete the DoDirectPayment, SetExpressCheckout, GetExpressCheckoutDetails and DoExpressCheckoutPayment operations in just 3 lines or less.

Version 0.2.0 has been released.

=> Software name: Website Payments Pro 4 Paypal

=> License: BSD License

=> Download link: Click here to download

Howto share application data using UNIX System V IPC mechanisms

Learn how to use message queues, semaphores, and shared memory to connect your applications

UNIX provides several methods for IPC. The SysV IPC methods are message queues, semaphores, and shared memory. Message queues allow one application to submit a message that other applications can pick up later, even after the sending application has finished. Semaphores ensure that multiple applications can lock resources and avoid race conditions. Shared memory allows multiple applications to share a common segment of memory, which provides a fast method of communicating and sharing large amounts of data. You can also use these methods together. For example, you can use a semaphore to control access to a shared memory segment.

IPC methods are helpful to application developers because they provide a standard way to communicate between applications and are portable across different UNIX flavors. The next time you find yourself needing to lock resources or share data between processes, try the SysV IPC mechanisms.

Read more at IBM developerworks