Programming Links


C
Tutorials
Cambridge University C Tutorials, including Tim Love's Tutorial
Christopher Sawtell's C Tutorial
Steve Holmes (formerly of the University of Strathclyde) C Programming
C Programming Tutorial, by Brian Brown
Drexel C Tutorial
C for Computer Scientists - Course Outline, University of Malta, includes Random Number Generator Examples
University of Hawaii C Coursebook

gcc
The GNU C Programming Tutorial
GNU Coding Standards: Table of Contents
The GNU C Library Reference Manual, edition 0.10

Books
Teach Yourself C in 21 Days, sams.net online book
The C Programming Language, by Brian W. Kernighan and Dennis M. Ritchie
Linkers and Loaders, by John Levine, includes info on object and executable file types
Compilers and Compiler Generators
Programming Pearls

Memory Device Allocation
Main Memory vs. RAM-Disk Databases: A Linux-based Benchmark

Memory Management
Unix And C/C++ Runtime Memory Management For Programmers
Ravenbrook, The Memory Management Reference
Inside memory management, The choices, tradeoffs, and implementations of dynamic allocation, IBM Developer Works article
the Garbage Collection Bibliography, Richard Jones
GC FAQ -- draft, This is a draft FAQ for the GC-LIST
memory allocators & garbage collectors
The Hoard Multiprocessor Memory Allocator, a Fast, Scalable and Memory-Efficient Allocator for SMPs
A garbage collector for C and C++, The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new
ptmalloc, Wolfram Gloger's malloc homepage

Arrays and Pointers
Static and Dynamic Allocation of Multi-Dimensional Arrays, from Hermetic Systems
Pointer allocation, a review, how to allocate multi dimensional char arrays
A TUTORIAL ON POINTERS AND ARRAYS IN C, by Ted Jensen
The Function Pointer Tutorials

Linked Lists, Trees, and other Data Structures
Better programming through effective list handling, Techniques for using linked lists in C and -- smarter still -- Scheme, IBM Developer Works article
Implementing Sequences Using Linked-Lists
Linked List Basics, Stanford CS Education Library: a 26 page introduction to linked lists in C/C++

Callbacks
The Function Pointer Tutorials - Callbacks

Code, Utilities and Techniques
GNU make examples
Snippets of C Code, includes combinatoric algorithms
FFTW
Basic C++ Utilities for Primitive Numeric Data

Lists of Resources
Learn C/C++ Today
C Tutorial list from Cal Poly
Resources from University of Southhampton, England course
Assorted Documents from the Lysator Computer Society

FAQs
comp.lang.c FAQ
comp.lang.c Infrequently Asked Questions
comp.lang.c++ FAQ
C++ FAQ Lite
Stroustrup C++ FAQ
wikis
clc-wiki, an offshoot of the comp.lang.c newsgroup.

Notes on Standard C Libraries
threads
POSIX threads explained, IBM developer works article by GenToo CEO Daniel Robbins(include examples)
Linux Threads Frequently Asked Questions (FAQ)
Implementing a Thread Library on Linux
LinuxThreads Programming, Linux Gazette Article
The Linux Threads Library

Journals
C Scene, Freezine with many excellent articles
C/C++ Users Journal, includes code

External Libraries
precision
Article from C/C++ Users Journal, MAPM, A Portable Arbitrary Precision Math Library in C
MAPM Home Page
munitions - Cryptographic Software for Linux
GMP, GNU Multiple Precision Arithmetic Library, the fastest bignum library on the planet!
Text based libraries
Twin
ncurses
NCURSES Programming HOWTO
Curses Tutorial, text based interactive menus with terminal screen control (refreshing, color, etc.)
Writing Programs with NCURSES, by Eric S. Raymond and Zeyd M. Ben-Halim
Introduction to Ncurses


Unix C
System
Reference to Linux 2.{2,4,6} System Calls for Assembly Level Access
Linux Daemon Writing HOWTO
Programming in C, Unix System Calls and Subroutines in C, initiated and translated by Dave Marshall
Unix Programming FAQ

Network
Beej's Guide to Network Programming
W. Richard Stevens' Home Page, author of Unix Network Programming and TCP/IP Illustrated Book Series
Unix Socket FAQ

Kernel
Linux
Kernel Rebuild Guide
The Linux Kernel, Version 0.8-3 by David A Rusling
The Linux Kernel: The Book, Blueprints for World Domination

NetBSD
How to Build a Kernel, from the NetBSD documentation
NetBSD Kernel Programming FAQ, from the NetBSD documentation
A NetBSD kernel documentation overview
The Design of the NetBSD I/O Subsystems

Modules
Linux
Linux Loadable Kernel Module HOWTO, includes source code examples, by Bryan Henderson
The Linux Kernel Module Programming Guide, 2003-04-04 ver 2.4.0, by Peter Jay Salzman & Ori Pomeran
Linux Kernel Module Programming Guide, by Ori Pomeran
Porting Drivers to 2.6 Kernel, includes Makefile example for building the source against currently running kernel
(nearly) Complete Linux Loadable Kernel Modules -the definitive guide for hackers, virus coders and system administrators-

NetBSD
Writing a LKM Driver for NetBSD
Introduction to NetBSD loadable kernel modules
BSD
BSD SLIST, LIST, SIMPLEQ, TAILQ, CIRCLEQ examples

Device Drivers
Linux
Sys Admin Magazine: Writing Linux Device Drivers, by Arthur Donkers, includes a concise explanation of character and block device types, well written article
Getting Started on Linux Device Drivers
Writing Linux Device Drivers, O'Reilly book released under the GNU GPL
Linux Device Drivers in Assembly Language, supplement to Writing Linux Device Drivers from Randall Hyde's Art of Assembly Language Programming Page at UC Riverside
Programming Guide for Linux USB Device Drivers
HOWTO: Linux Device Driver Dos and Don'ts

NetBSD
Writing a pseudo device, from the NetBSD documentation
NetBSD-treiber_schreiden Device Driver Programming, in German
Writing Drivers for NetBSD, English translation of treiber_schreiden doc (above)
A Machine-Independent DMA Framework for NetBSD
NetBSD mailing list notes on FreeBSD->NetBSD dma

BSD
Daemon News: Writing a CAM SCSI controller (A.K.A. Host Bus Adapter) driver
Daemon News: How to Write Kernel Drivers with NEWBUS
Daemon News: Writing an ISA device driver
BSD Driver Database
BSD Programming Links

Wireless Specs -- for drivers
802.11(b)
IEEE 802.11 Wireless LAN, intro to network planning includes GSM
Anatomy of IEEE 802.11b Wireless, detail on packet structure
Developing a simple 802.11b driver (long), post on HostAP mailing list
Broadban -> Wireless Networking


GPUs

GPGPU
CUDA, nVidia
AMD Stream Processor

Assembly

Assemblers
HLA The High Level Assembler, Randall Hyde's Art of Assembly Language Programming Page at UC Riverside$
NASM, The Netwide Assembler, manual
yasm is a complete rewrite of the NASM assembler under the "new" BSD License
flat assembler
flat assembler support board
(g)as, GNU Assembler
blasm is an Assembler with a powerful IDE.

IDEs
Lince is an Intel x86-based, Linux source-level kernel debugger with the look and feel of SoftIce for MS Windows.

Tutorials & Docs
Tutorials >> Assembly Language Tutorials
ASM Tutorial/Ready to Start!
Linux Assembly Tutorial Step-by-Step Guide
Jan Wagemakers Assembly Tutorial
Jonathon Bartlett's Assembly Tutorial for GNU's Gas (as) assembler.
Matt's x86 Assembly Reference
int80h.org, Unix Assembly Language Programming, includes a FreeBSD Assembly tutorial
Daniels NASM bootstraps tutorial
Assembly Language Programming Tutorial, by Brian Brown
Gavin's Guide to 80x86 Assembly
PC Assembly Language
Assembly Tutorial, easy to follow tutorial on the 8086 Gentle Introduction to x86-64 Assembly

Books
Assembly Language - Free computer books

Magazines & Articles
Introduction to UNIX Assembly Programming #53, Linux Gazette Article
apj Assembly Programming Journal

Resources
Linux Assembly
assemblylanguage.net
Assembly Language (x86) Resources
Software optimization resources
Freebyte's Guide to... Free Assembler programming, Free tools for the assembler programmer for a variety of platforms and processors.
Welcome to Fidonet's 80xxx Snippets, A file site for 80x86 Assembly Language enthusiasts
Paul Hsieh's x86 Assembly Page

Code Tables
Intel Assembler 80x86 CodeTable Overview of instructions

Code
Sample nasm programs
Linux Assembly Utilities
Tiny Programs, Muppet Labs
Programmers Heaven Assembler Zone
Assembly Language under Linux gnu C & nasm Makefile wrapper
Assembly Gems

Format Conversion
Assembly Code for Linux (or MASM to NASM)
Code Template conversion between NASM for linux and MASM for dos

FAQs
comp.lang.asm.x86 host page


Integrated Development (IDEs)
WideStudio/MWT, for Japanese apps
anjuta

Eclipse & Plugins
Eclipse


Debugging, Disassembly, Decompilation, & Reverse Engineering Code
debuggers
strace, outputs all system calls of a specified process/program
Valgrind, Linux debugger and profiler
Splint, "Annotation-Assisted Lightweight Static Checking", debugging and security checks
gdb, The GNU Project Debugger
GNU DDD, The GNU Data Display Debugger
The ups debugger for C, C++ & Fortran,
GVD: The GNU Visual Debugger
SmartGDB, scriptable and thread aware debugger from the University of Kansas

libraries
Ctrace, multi-threaded trace/debug library
Go Straight To The Source with CTrace, Linux Journal Article

front-ends
Insight, Insight is a graphical user interface to GDB, the GNU Debugger

disassemblers
Boomerang, An attempt at a general, open source, retargetable decompiler of binary files
dcc, an implementation of Boomerang
bastard, The Bastard Disassembly Environment

decompilers
REC - Reverse Engineering Compiler, "It reads an executable file, and attempts to produce a C-like representation of the code and data used to build the executable file."
resources
Program-Transformation.Org : The Decompilation Page : Decompilation Resources
Modern Day C++ Decompiling

Reverse Engineering
Wine Developer's Guide: 14.4. Doing A Hardware Trace
fravia's pages of reverse engineering
Introduction to Reverse Engineering Software


Lisp Coming!


Python
Python Editors
Numerical Python
Py, The Online Zine devoted to Python
pygame
PyOpenGL
also see: Video & Graphics Programming Links: (wx)


PHP
PHP Freaks
PHP: Hypertext Preprocessor
PHP Wizards
Free-Php.net, At Free-Php.net, you will find several FREE PHP SCRIPTS and other useful PHP Resources

PHP Programmers PHP News
php-editors
The PHP Resource Index
PHP Hideout - The PHP Reference site run by SuperHero's complete with articles and tutorials
International PHP Magazine

PHP, Web, and Web Content Management
PHP-Nuke, the future of the web...
CPG Nuke Dragonfly CMS
Post Nuke
XOOPS is an extensible, OO (Object Oriented), easy to use dynamic web content management system written in PHP

PHP & db (+LAMP)
The phpMyAdmin Project
PHP/MySQL Tutorial
Using MySQL from PHP
Apache Friends , with XAMPP an easy to install Apache Distribution for Linux, Windows, Mac OS X, and Solaris
(also see: db links)

PHP & P2P
(also see: Distributed Node Computing Links)

PHP & Parrot
Teaching Parrot to Say "PHP"

html parsing
HTML Parser for PHP-4


Perl
The Perl Foundation
CPAN, Comprehensive Perl Archive Network
The Perl 5 Module List
Perl IAQ, infrequently asked questions about Perl
GUI
wxPerl

Parrot
Parrot Code Page
CPAN parrot module list, Leopold Tötsch > parrot-0.1.1
mod_parrot mod_parrot embeds the Parrot virtual machine in the Apache web server.
Andy Wardley's Parrot Page
Articles
Parrot: Some Assembly Required, O'Reilly Article
Introducing Parrot SDL, O'Reilly Article
Linux Magazine | April 2003: The Soul of a New Machine
Related Enviroments
Pirate, Python on Parrot
Code Examples
Andy Wardley's Parrot Page
PMCs
Beginning PMCs

OS
The JKOS-project, Making an OS in Perl...
Green Parrot, my own attempts at a Parrot-based OS


AJAX
XML HTTP Request object
Using the XML HTTP Request object
PHP On-The-Fly!, reloading PHP through Javascript

RSS & Atom
MagpieRSS: RSS for PHP
Add RSS feeds to your Web site using MagpieRSS
Feed on Feeds
What Technology Atom

compiled c & cgi
Programming CGI in C, Sometimes Perl isn't the best tool for CGI programs
How CGI interacts with C ?
Getting Started with CGI Programming in C

javascript & x/d/html
page refresh
JavaScripts Page Refresh/Reload
Detecting Page Refreshes :: Using JavaScript on Client-Side
parsing
Javascript Parse Query String Script

general design sites
css Zen Garden
a list apart
QuirksMode - for all your browser quirks, excellent core resource

sprite, animation, video
Sprite

image replacement
png.js, Scott Schiller's library
Panoramic Image Viewer, another great site from Scott Schiller
Cross-Browser Variable Opacity with PNG: A Real Solution
Image Replacement Methods
JavaScript-enhanced image replacement
The GIR Image Replacement Technique (GIR)
Using Background-Image to Replace Text
Facts and Opinion About Fahrner Image Replacement
Image Replacement -- No Span, by Seamus Leahy
A new image replacement technique, Stuart Langridge
Replacing Text By An Image, Petr Staníek's site
In Defense of Fahrner Image Replacement, by David Shea
Dynamic image galleries using CSS and DOM
Creating Liquid Layouts with Negative Margins
Accessible Image Replacement
Sliding Doors of CSS

plotting
Fourier Transform in JavaScript
Online Function Grapher, written entirely in JavaScript
also: Graphing, Plotting, & Meshes

more ajax
Dynamic Drive, dhtml scripts for the real world
Cross-Browser Animation, includes details on image zooming
JavaScript Tutorial - NetScape 6 compatible
JavaScript Tutorial and free code
Brendan's Roadmap Updates
Ajaxian Blog, Ben and Dion's AJAX Mission

benchmarking
XML HTTP Performance and Caching

ajax articles and news
Mastering AJAX, IBM developerworks
Ajax Mistakes
adaptive path >> Ajax: A New Approach to Web Applications
State of Ajax: Progress, Challenges, and Implications for SOAs
Ajax (programming) From Wikipedia, the free encyclopedia.
Ajax.NET Professional From the author of the first and free Ajax library for .NET
Ajax Mistakes
swik ajax
Curiosity is bliss: AJAX Debugging with Greasemonkey
The Last Craft? Marcus' blog on Agile Web Development » Listen kids, AJAX is not cool

ajax libs
Survey of AJAX/JavaScript Libraries

graphics libs
Slider Demo (WebFX)
snowstorm.js, Javascript snowstorm effect API
Fireworks.js, Javascript fireworks effect API
Javascript3D real time rendering
Active Widgets :: Professional JavaScript GUI Tools, incredibly useful javascript/css database spreadsheet GUI (GNU)

gamelibs
Fun: Javascript Gamelib, Ben and Dion's AJAX Mission
Javascript Gamelib: Javascript games programming library

games
3D Panda Game, breakthrough javascript game
dHTML Araknoid, by Scott Schiller
Wolfenstein 5K The classic shooter, miniaturized
Def-Logic Videogames
K.Moriyama's Javascript Game list
Javascript Games: Intro to the tutorial!
Astrodragon.com: JavaScript games


SVG
KevLinDev - Geometry - SVG 3D
Pike's 3D SVG Cube

mailto:sthigpen@freeshell.org
http://sthigpen.freeshell.org