Google Code University: Learn How To Code / Program

Posted on in Categories C Programming, Howto, News, Open source coding last updated March 19, 2008

Good learning stuff – at no cost!

From the page:

This website provides tutorials and sample course content so CS students and educators can learn more about current computing technologies and paradigms. In particular, this content is Creative Commons licensed which makes it easy for CS educators to use in their own classes.

The Courses section contains tutorials, lecture slides, and problem sets for a variety of topic areas:

* AJAX Programming
* Distributed Systems
* Web Security
* Languages

In the Tools 101 section, you will find a set of introductions to some common tools used in Computer Science such as version control systems and databases.

The CS Curriculum Search will help you find teaching materials that have been published to the web by faculty from CS departments around the world. You can refine your search to display just lectures, assignments or reference materials for a set of courses.

=> Google Code University (via Digg)

Coverity Scan: Security Holes Found in Open Source Projects

Posted on in Categories Links, News, Open source coding, php, programming, Security last updated January 9, 2008
Coverity Logo

Coverity is a company that creates tools for software development. Its premiere product is Prevent, a static-analysis code inspection tool. Coverity offers the results of Prevent’s analysis for free to open source developers.

From the project home page:

In collaboration with Stanford University, Coverity is establishing a new baseline for software quality and security in open source. Under a contract with the Department of Homeland Security, we apply the latest innovations in automated defect detection to uncover some of the most critical types of bugs found in software.

So the most notable use of Prevent is under a U.S. Department of Homeland Security contract, in which it is used to examine over 150 open source applications for bugs. Popular open source projects, such as Samba, the PHP, Perl, and Tcl dynamic languages used to bind together elements of Web sites, and Amanda, the popular open source backup and recovery software running on half a million servers, were all found to have dozens or hundreds of security exposures and quality defects.

For example, over 75% of the defects Scan identified in Samba were fixed within two reviews of the Scan analysis.
Over 75% of the defects Scan identified in Samba were fixed within two reviews of the Scan analysis.
(Fig. 01: Samba Project Code Scan Result)

=> More information about project and bugs (including charts) available at offical web site.

A total of 7,826 open source project defects have been fixed through the Homeland Security review, or one every two hours since it was launched in 2006, according to David Maxwell, open source strategist for Coverity, maker of the source code checking system, the Prevent Software Quality System, that’s being used in the review.

This project is really helping out to improve overall open source software quality.

Linux Fibre Channel over Ethernet implementation code released

Posted on in Categories Linux, Linux Scalability, Linux Virtualization, Networking, Open source coding, Storage last updated December 18, 2007

Intel has just released source code for Fibre Channel over Ethernet (FCoE). It provides some Fibre Channel protocol processing as well as the encapsulation of FC frames within Ethernet packets. FCoE will allow systems with an Ethernet adapter and a Fibre Channel Forwarder to login to a Fibre Channel fabric (the FCF is a “gateway” that bridges the LAN and the SAN). That fabric login was previously reserved exclusively for Fibre Channel HBAs. This technology reduces complexity in the data center by aiding network convergence. It is targeted for 10Gps Ethernet NICs but will work on any Ethernet NIC supporting pause frames. Intel will provide a Fibre Channel protocol processing module as well as an Ethernet based transport module. The Open-FC module acts as a LLD for SCSI and the Open-FCoE transport uses net_device to send and receive packets.

This is good news. I think one can compare bandwidth and throughput for copper and fiber Ethernet. If you are going to use copper you need to stay within 15m of the switch. This solution will try to bring down cost. One can connect to 8-10 server to central database server with 10G and there could be few more applications.

=> Open FCoE project home page

Download of the day: Bazaar Distributed Version Control System

Posted on in Categories Download of the day, Links, Linux, Linux distribution, Open source coding, Save money with FOSS, Ubuntu Linux last updated December 15, 2007

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

Posted on in Categories Howto, Linux, Open source coding last updated July 5, 2007

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

Posted on in Categories C Programming, FreeBSD, Gentoo Linux, GNU/Open source, Linux, Open source coding, OpenBSD, RedHat/Fedora Linux, Suse Linux, UNIX, Windows last updated April 7, 2007

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

Posted on in Categories C Programming, GNU/Open source, Howto, Linux, Linux Embedded devices, Open source coding last updated April 6, 2007

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

Posted on in Categories C Programming, Download of the day, GNU/Open source, Howto, Links, Open source coding last updated February 20, 2007

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.

Topics

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

Posted on in Categories Download of the day, FreeBSD, Howto, Linux, Open source coding, OS X, php, Windows last updated February 7, 2007

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