Thursday, August 31, 2006

Free Web Hosts with Perl / CGI (CGI-BIN) Access

Prohosting Free Web Hosting You get Perl CGI access, Server Side Includes (SSI), 50MB of web space, the ability to configure the server using the .htaccess file (eg to password protect directories, define your own 404 File Not Found pages, etc). The reliability of this web host appears to depend on which web server your account is set up in. Tripod Free Web Hosting You are given 20MB for your web pages, 1 GB of traffic, Frontpage extensions, FTP access, and CGI-BIN access. CGI scripts on Tripod execute under a rather restrictive environment though, and most free CGI scripts you find on the Internet that deal with email will not work there. You get some choices as to to the advertising that displays on your site. Your URL will be http://members.tripod.com/yourname/, and most sites should be able to use a subdomain of the form http://yourname.tripod.com/ for their site (unless yourname clashes with one of their many reserved names). They also have an online site builder that allows you to design your website from your browser.

Free Partitioning Software (Partition Editors, Managers, and Recovery Tools)

Ranish Partition Manager Ranish Partition Manager is a hard disk partitioning tool that allows you to create, copy, resize primary and extended partitions. The later versions of the Partition Manager (2.43 and above) apparently allow you to work with up to 30 primary partitions. Also available from that same site is the XOSL (Extended Operating System Loader) Boot Manager that gives you the ability to choose which operating system (OS) you wish to boot from when you start your system. I think it works under DOS, so you can simply put it on a DOS startup disk, reboot to the disk, and work on your partitions from there. The Partition Resizer The Partition Resizer resizes and moves your existing partitions for hard disks up to 2 TB (that is, 2 terabytes). It can handle both primary and extended partitions. It is able to move your data (where necessary) so as to make space for (say) an expanded FAT which may be needed if you are increasing the partition table. You can resize (expand or shrink) or move FAT partitions (including FAT32 partitions) and move NTFS partitions (though not resize). The program is a DOS program, and you can put it on a startup disk, reboot to it, and work on your system from there. Diskman The author calls Diskman a "hard disk manipulation program". It essentially allows you to create, format and manipulate partitions, backup and restore long filenames, as well as search and edit data on a hard disk. It has a scripting language that you can use to automate the things you want to do. It supports FAT partitions. The current version (at the time I write this) is a DOS program. NTFS Resize NTFS Resize is a Linux program that non-destructively resizes NTFS partitions (enlarges and shrinks). It supports all NTFS versions, including those created and used by Windows NT, 2000, XP (both 32-bit and 64-bit versions), 2003 and Longhorn. TestDisk TestDisk is a tool to check and undelete partitions. It essentially searches for lost partitions, and allows you to repair errors in the partition table, create a partition table, create a new MBR, etc. It works with FAT32, FAT16, FAT12, NTFS (Windows NT, If you have accidentally lost (or deleted) a partition, you might want to try TestDisk to see if it can find the partition and recover it. 2000, XP), ext2, ext3, BeFS (used by BeOS), BSD disklabel, CramFS, IBM Multiboot, JFS, Linux swap (versions 1 and 2), NSS (Netware), ReiserFS 3.5 and 3.6, and XFS. The program runs under DOS, Windows 9x/NT/2000/XP/2003, Linux, FreeBSD, and Sun Solaris. It is licensed under the GNU GPL. Extended FDISK Extended FDISK allows you to create and delete partitions and logical disks on your hard disk. It appears to come with a boot manager (that allows you to choose between multiple operating systems when you boot). FreeDOS' FDISK The FreeDOS FDISK supports hard disks of up to 128GB. You can use it to create and delete primary and extended partitions. It works under DOS (FreeDOS, MSDOS and PCDOS). FIPS FIPS supports the non-destructive splitting of hard disk partitions. The program is distributed under the GNU GPL. Partition Logic Partition Logic allows you to create, delete, format and move partitions and modify their attributes. It can also clone hard disks, that is, make a copy of an entire hard disk onto another (possibly new) hard disk. It boots from a CD or a floppy disk and runs as a standalone system. At the time this was written, it has some limitations, including the ability to only format FAT partitions, the inability to partition SCSI hard disks, the lack of support for USB mice and keyboards, etc. SwissKnife SwissKnife is a Windows program that allows you to create and format partitions on fixed or removable disks as well as change cluster size during formats.

Free Web Email

OperaMail There doesn't seem to be much information about this email service, except that it is free, and it does not restrict the number of messages you send or receive (unless you spam). You also need to opt to receive their advertisements. Yahoo This service comes with folders to organise your email, filter them, attach files, automatically respond to mails received (autoresponder), and so on. You have up to 4MB of space to store your email. Note though, if you don't access your email in two weeks, your account will be deleted. There appears to be a secure login facility, although (if I'm to judge by other Yahoo services) I suspect that only the login takes place under SSL; the rest of the session uses unencrypted transfers. Hotmail This rather popular web email service, now run by Microsoft, gives you 2MB for your mail boxes. There are other limitations on your account as well. You will need to log into Microsoft Passport to use them, so if you have privacy concerns about Passport, this is not a service that you'll want to use. Wowmail This web based email service looks relatively new. They currently do not have a fully featured address book (with the ability to add and delete email addresses at will) nor a way to save sent messages nor folders to organise your email, nor filtering, but their FAQ says that these will be implemented in the future. They do, however, allow attachments.

Free Programming Language Grammars for Building Compilers

ANSI C++ Grammar This is not exactly a grammar of ANSI C++, since it actually accepts a superset of C++ constructs. However, if you're thinking of writing your own grammar, this might serve as a starting point for your own. It is taken from the Working Paper (1996) for the Draft Proposed International Standard for Information Systems--Programming Language C++. GNU ANSI C/C++ Grammar There's nothing like the grammar and source code of an existing world famous compiler, the GNU C/C++ Compiler, to use as a template for your own compiler design. This compiler, and consequently its grammar, actually tries to keep up with the ANSI standards (unlike the popular compiler from a certain well-known OS manufacturer, which only pays lip service to the term "standards compliance"). VS COBOL II Grammar According to their website, "this grammar has been recovered from IBM's VS-COBOL II Reference Summary" and is supposed to be "fully-tested". COBOL Language Grammar This grammar, in its current incomplete and uncorrected form, was apparently "recovered from IBM's COBOL Language Reference". OS PL/I V2R3 Grammar Using an automated tool, the grammar given in IBM's OS PL/I V2R3 Language Reference is available from this website. It is apparently still incomplete. Ada 95 Grammar This grammar of the Ada follows the Ada 95 Reference Manual. It is currently incomplete.

Free LOGO Implementations

Berkeley LOGO A free implementation of LOGO, complete with source code, for Unix, DOS/Windows and Macintosh. MSWLOGO An implementation of LOGO with multimedia enhancements. Runs on Windows with a GUI interface and extensions.

Free Spyware and Browser Hijacking Prevention

SpywareBlaster This nifty program prevents spyware ActiveX controls from being installed on your computer by adjusting your system so that these malicious controls are prevented from being installed or run. For the technically inclined, it sets the "kill bit" for these controls, causing IE to refuse to run them. It also blocks cookies from certain websites or companies that are known to use these cookies to track a user's surfing habits. SpywareGuard SpywareGuard runs behind the scenes to block spyware from being downloaded or run on your computer. It also has the ability to prevent browser hijacking (whether it is your start page or your ability to search using a search engine or otherwise).

Free DOS Extenders

Dos32 DOS Extender This is a 32 bit DOS extender for use with assembly language files. It comes with a debugger and linker. This is an old 1995 version of the extender. If I'm not wrong, the new versions are commercial programs, and are no longer downloadable from the Internet. However, the documentation for this version suggests that you can distribute applications linked with the extender freely without payment of royalties. PMODE/W PMODE/W is a DOS extender that you can use with that Watcom C/C++ compiler. It is designed to be a drop-in replacement for DOS4GW.EXE. Note that if you are using OpenWatcom, you do not have to download this. PMODE/W is already packaged with the OpenWatcom compiler

Free Programmer's Editors, Integrated Development Environment (IDE), ASCII Text Editors

PolySoft Crypt Edit Crypt Edit is a Notepad and Wordpad replacement that has cryptographical features (3 security levels using RC4 and MD5), ability to compress and encrypt binary files, has support for spell checking, OLE objects, templates, bookmarks, an integrated email client, configurable toolbars, ability to export to HTML/Unix/Mac, a clipboard viewer, find in files, Microsoft Word compatible (export/import/OLE), HTML syntax highlighting, line sorting, etc. Leonardo IDE Leonardo IDE is a Macintosh-based IDE, compiler and debugger for C programs. The Windows and Linux ports are said to be under development. It has a syntax highlighting editor, an ANSI C compiler, a compiler for the ALPHA visualization language, a graph editor, a reversible virtual CPU, etc. Note that the programs are not compiled to native code but to code to be executed for the virtual CPU. The virtual machine and debugger allows you to execute code forwards and backwards and supports multitasking. The IDE comes with animated algorithms, plus example source code for games like Tetris, Checkers, etc. The IDE is useful for checking and debugging your source code, search for memory leaks, etc. Editpad Lite In the days of bloated software, this editor is a real marvel. It's only about 400Kb in size in a single executable. It has the usual features (multiple files, tabbed document interface, etc) although not the advanced features of some (no syntax highlighting, project management, search and replace in disk files, etc). ConText Editor This syntax highlighting editor supports numerous programming languages including C/C++, Delphi, Pascal, Java, JavaScript, Visual Basic, Perl, HTML, SQL, FoxPro, 80x86 assembler, Python, PHP, Tcl/Tk, etc (you can customize the syntax highlighting). Other features include code templates, customisable help files for each file type, export to HTML/RTF, file conversion (DOS, Unix, MAC), bookmarks, commenting, uncommenting code, capturing the output from console applications, etc. It's a Windows editor. Nedit Text Editor Nedit is an X Windows text editor with a GUI interface reminiscent of Windows and Macintosh. It has a good support for mouse based actions including dragging selections, etc. Other features include syntax highlighting, for C++, C, Java, Ada, Fortran, Pascal, Yacc (the parser generator), Perl, Python, TCL, csh (C shell), awk, HTML, LaTeX, VHDCL, Verilog, etc; auto-indent; programmable language-sensitive smart-indent; block indentation adjustment; parenthesis flashing and matching; compiler errors matching to source lines; tab emulation; ctags support; C-like macro language; etc. Precompiled binaries are available for Silicon Graphics, Sun (Solaris and SunOS), HP-UX, Digital Unix, Ultrix, IBM AIX, Linux and VMS. Source code is also free, for those who want to tinker even further with it. You will need either Lesstif or Motif on your system to run the editor. Yudit Unicode Text Editor Yudit is a Unicode text editor for Linux that has direct True Type support. The website claims that you can easily edit Unicode text without having to learn a new keybinding. It also supports the older non-Unicde character sets like ISO 8859, KOI8, JIS, GB, BIG5, KSC, EUC, and HZ. UTF-8 is its default encoding. You can enter any language's characters either by configuring your keymap, or by Unicode number, SGML name or RFC 1345 mnemonic. Kdevelop IDE This XWindows C/C++ IDE has project management; a dialog editor which will generate the dialog box source code for you; a class browser; an integrated debugger; application wizards that can generate menu bars, toolbars, status bars, a mini KDE application, a Qt-only based application, a C/C++ terminal application; integrated editor with syntax highlighting; integrated Unix tools; a powerful help system; a class generator; etc. V IDE V IDE works with GNU g++, Borland C++ 5.5 and Java and runs on Windows and Linux. It includes a syntax highlighting editor for C/C++, Java, Perl, Fortran, TeX and HTML. It has a built-in code beautifier, macro support, ctags support, project manager, integrated support for the V applications generator and icon editor, integrated support for the GNU gdb and Sun's jdb (for Java), etc. FTE This syntax highlighting editor (for many languages and HTML) comes with source code and supports the Linux, Win32 and OS/2 platforms. It handles large files, has multiple levels of UNDO, support for an external spell checker, regular expression searching, support for executing a compiler, etc. It handles multiple documents but it loads them in split windows: the current version (at the time of this writing) does not support overlapping windows. Xenon Editor Xenon is a X-Windows editor that is supposed to be small and fast. It has unlimited undo and redo, and can handle multiple files in multiple windows. To get it to run, you need Linux, SGI or possibly other Unix implementations. Source code is provided. Dedit Programmer's Editor A programmer's editor complete with syntax highlighting. The program is currently still under development, and it lacks documentation. I also could not get certain keys (such as Ctrl-O) to work and other keys (such as Alt-C to invoke the Command menu) does other things (it restores the window size to its original size). Latest note: The software appears to be abandoned. Elvis (VI clone) Elvis is a VI clone with syntax highlighting, multiple files in multiple windows, integrated support for FTP and HTTP, etc. It has ports to Windows, Linux, Solaris, OS/2, MSDOS GNU Emacs Editor This is the well-known GNU Emacs editor. Some swear by it, others detest it and many flame wars have been fought by its adherents and its detractors. There are binaries for a multitude of operating systems (including the various flavours of Unix, Macintosh, and, would you believe it, DOS). It is supposed to be very configurable, and supports a number of computer languages. Jed Programmers' Editor A programmer's editor that can be used even on remote terminals. The editor is supported on Linux. I'm not sure about other systems. LE Terminal Text Editor A terminal text editor for Linux that has syntax highlighting, the ability to edit both Linux and DOS text files, and a configurable keymap. It runs on Linux and probably other Unix systems. LPE Editor A console mode editor intentionally designed to be lightweight and devoid of frills. It runs on the Linux platform and is released under the GNU GPL. Notespad A notepad replacement for Win32 and Win16 system, with the ability to edit multiple files in one go, spell check, etc. VIM (VI clone) VIM, or VI Improved, is an editor in the spirit of the Unix "vi" editor. It has many extensions and has a special mode that allows it to mimic the Unix "vi" exactly. There are versions for a multitude of operating systems, including Win32, Unix, DOS, MacOS, OS/2, VMS, etc.

Free AJAX Toolkits, Frameworks, Libraries and Source Code

Dojo, the JavaScript Toolkit Dojo is a library for JavaScript that may help speed up your development of JavaScript web applications by providing components that you can use to add functionality to your web pages and make them more responsive and usable. It supports Safari 2.0.x+, Opera 8.5+, Firefox 1.0+ (as well as Mozilla), Konqueror 3.5+ as well as Internet Explorer 5.5+ (Windows). Rico Rico is a JavaScript library that provides Ajax support, drag and drop management and a cinematic effects library. The library is released under the open source Apache 2.0 licence. At the time this description was written, the demos do not seem to work well under some browsers (such as Opera 9.01). Google Web Toolkit - Build AJAX applications in the Java language Google Web Toolkit helps you in developing AJAX web applications like Google Maps and Gmail by taking care of many of the browser dependencies under the hood. Your applications are built using Java, and the toolkit translates it into JavaScript and HTML that works across a number of browsers, including IE, Firefox, Opera, Mozilla and Safari. You can also intermix JavaScript into your code. Other features include the ability to create widgets and lay out widgets, debug your applications using advanced Java debugging facilities, simple remote procedure calls (RPCs), automatic management of the browser's back button, etc. Yahoo! User Interface Library Yahoo! supplies a number of utilities and controls for use in your AJAX and DHTML web applications. They are released under a BSD licence. The library is written in JavaScript. The library features a calendar, containers (which includes tooltips, dialogs, etc), menus, sliders, treeviews, autocomplete, a drag and drop utility, an animation utility, CSS fonts, CSS page grids, and so on. Yahoo! Design Pattern Library The Yahoo! Design Pattern Library features a variety of patterns, which are defined by them as optimal solutions to common problems. Each problem comes with text describing the solution. Among the many patterns described are animation transitions, collapse transitions (such as when you want to collapse an item on a page), dim transitions, expand transitions, fade-in transitions, self-healing transitions, slide transitions, spotlight transitions, page grids, tool tips, hover, etc.

Free Content Management Systems (CMS) PHP Scripts

TYPO3 Open Source Content Management System TYPO3 is an open source content management system that is multilingual; allows WYSIWYG editing using a rich text editor (this feature is only for IE Windows users); has wizards for making tables, bullet lists, mail forms, etc; allows multiple page editing; allows offline editing, preview of content online, scheduled publishing; has an indexed search engine, a direct mail or newsletter system, etc. Administrators have access control (the ability to control access to various parts of the system), statistics, logging, version control with unlimited undos, raw database access, etc. You can use HTML templates, PHP scripts, create protected areas, and so on. The entire system is released under the GNU General Public License. ezContents Content Management System ezContents is an open source website countent management system that uses PHP and MySQL. You can add authors that write content, manage permissions, workflow, create a layout, etc. It supports both sites with frames and those without. phpCMS - PHP Content Management System This PHP content management script includes a file manager, full text search engine, online editor, statistics, dynamic menus, etc. Unlike many of the other content management systems (CMS), this one works with flat files. Open-Medium CMS This content management script requires you to have PHP and MySQL installed on your server. It supports templates, WYSIWYG previews, a sitemap, a search engine, etc. It is released under the GNU General Public License. Back-End This content management system is template driven and has a search engine, dynamic navigation bar, article posting, banner management, news posting, link indexing, etc. It is released under the GNU GPL. arbplate According to the website, arbplate is a "PHP-based template system that allows the separation of code and design." It is released under the GNU GPL. It looks like you need MySQL.

Free Anonymous Surfing or Browsing

SurfShield SurfShield allows you to surf anonymously. It can remove cookies, scripts as well as hide the referrer when you surf through their site. Proxify Proxify provides you with secure (SSL) anonymous surfing. It removes cookies, scripts, ads, and referrer information. Guardster: Free Anonymous, Private Web Proxy You can surf the Internet from this free anonymous web service. @nonymouse Anonymous Web Surfing This free anonymous surfing service allows you to type into a URL into their website and it will retrieve that web page for you. the-cloak the-cloak allows you to surf to other websites, strip away JavaScript code that that site may place on your pages, remove images, cookies, etc, while at the same time prevent certain information about your location and computer from being transmitted to that site. They place a limit of the number of times you can use their free service from a particular IP address. Anonymizer Anonymous Surfing This service has been around for some time now. Like the other anonymous surfing services, this site allows you to visit websites without automatically leaving a trail of information about your site, your browser, where you had previously come from, etc.

Free Personal Firewall Software

Filseclab Personal Firewall Professional Edition
This Windows firewall filters inbound and outbound traffic. You can configure which applications on your system is allowed to access the Internet, although by default, it automatically allows certain applications (such as those from the company itself, or those signed by Microsoft) outbound access without question.

Comodo Personal Firewall
Comodo Personal Firewall is a Windows 2000/XP firewall, that filters both inbound as well as outbound traffic. Among its features are the ability to detect application hijacking attempts via its application and component behaviour monitor, self protection against termination attempts by malware, protection of your PC during startup, etc. Note: they require you to activate the firewall and supply your email address.

GhostWall
GhostWall is a packet filtering firewall with low resource usage and latency. It works on both 32 bit and 64 bit Windows.

Guarddog
Guarddog is a firewall configuration utility for Linux iptables. It also lets you maintain and modify the firewall in place. It uses a "what is not explicitly allowed, is denied" philosophy. The software is released under the GNU GPL.

SoftPerfect Personal Firewall
SoftPerfect Personal Firewall is a rule-based Windows network firewall that filters IP and non-IP traffic, supports configurations for multiple network adaptors, has a learning mode and comes with a set of predefined rules.

Jetico Personal Firewall
Jetico Personal Firewall is a Windows 98/ME/NT/2000/XP firewall that has network packet filters, network events filters (that allows you to block application level events) and process activity filters (that hopefully blocks application hijacking attempts where a trojan uses your browser to send information to the internet).

Firestarter - Free Linux Firewall Tool
Firestarter is an easy-to-use free firewall tool for Linux that has a wizard that allows you to customize your firewall, a real-time firewall monitor that allows you to view intrusion attempts, a graphical interface that works under GNOME and KDE, and support for Linux kernels 2.4 and 2.6. For those who aren't brave enough to muck around with netfilter / iptables, Firestarter is one way to set up your system so that it is protected from intrusions.

Sunbelt Kerio Personal Firewall
Kerio Personal Firewall is free for home use. It controls traffic from your computer to the Internet (thus useful for blocking spyware, adware, and other software that call home to the Internet behind your back) as well as traffic from the Internet to your computer. This is a Windows firewall.

ZoneAlarm
ZoneAlarm is an easy to use and free personal firewall that is used by many people on the Internet. The free versions allows you to decide which applications you can allow to access the Internet, but does not allow you to block specific IP addresses. This is a Windows firewall. If you want comprehensive protection for your computer, you might want to consider their commercial offering, ZoneAlarm(R) Internet Security Suite 6 which includes a firewall as well as antivirus, antispyware, antitrojan , identity theft protection, phishing and spam blocker, etc.

Sygate Personal Firewall
This firewall allows you to set policies regarding applications that may be allowed to access the Internet, trusted IP addresses, ports, protocols, etc. This is a Windows firewall. Warning: this firewall is no longer maintained. The link above points to a third party download site (Simtel) that loads pop-up windows.

Free AntiVirus Utilities

Clam AntiVirus ClamAV is a free command line antivirus scanner for Unix systems. You can also integrate it with your mail server for scanning your email messages and attachments. It is able to scan inside archives like RAR archives, Zip archives, Gzip and Bzip2 archives (that is, it has unpacking engines for those types of compressed archives). If you are a programmer, you can even integrate the antivirus scanner into your own programs. This free antivirus program comes with source code that is released under the GNU General Public License. Prebuilt binary packages are available for numerous Linux distributions (Debian, RedHat / Fedora, PLD Linux, Mandrake), Microsoft Windows, FreeBSD, OpenBSD, AIX, OSF and Solaris 8 (Sparc). AntiVir Personal Edition AntiVir Personal Edition is a free antivirus program for Windows computers. It has a resident component that monitors file movements for signs of viruses. It also allows you to scan your computer and repair files that have been infected. The program comes with a facility to automatically check the AntiVir website for updates to the virus definitions and download them. Updates are free. AVG Anti-Virus The AVG Anti-Virus software comprises a resident program that works in the background, an email scanner (checks your email for viruses), an on-demand scanner (eg, you invoke it to scan your system), the ability to repair certain infected files, and automatic updates of the virus definitions. F-Prot Antivirus for Linux, FreeBSD, OpenBSD, NetBSD and DOS F-Prot Antivirus for DOS, Linux and BSD (FreeBSD, OpenBSD and NetBSD) is free for personal use on personal workstations. (Note: these are separate downloads; scroll down on their page to find the link appropriate for your system. Also note that the Windows and Solaris versions are not free.) avast! Home Edition avast! Home Edition is free for home users on non-commercial computers. You have to register your copy and supply them your email address (get a free email address here if you wish) so that they can send you a license key to activate the program. Startest Startest is not a full fledged antivirus program like most of the others on this page. It checks your boot sector and certain Windows system files for changes. If they have been modified, the program will inform you and also display the changed code

Free Online Virus Scan

Freedom Free Virus Scan The free online virus scan from Freedom Internet Security and Privacy scans your hard disk, diskettes, CD-ROMs, network drives, directories and specific files for viruses, Trojans and worms. Jotti's Online Malware Scan This site scans any file that you upload to it with a variety of antivirus programs. It is particularly useful if you are suspicious about a particular file, and want to see if different antivirus software detect anything in it. BitDefender Free Online Virus Scan This free online virus scanning service will check your system for viruses. Note that the service only works if you use Internet Explorer on Windows since it uses ActiveX controls to do the scanning. Trend Micro Free Online Virus Scan Scan your computer for viruses free with Trend Micro's online service. You will need either Netscape (3.01 or above) or Internet Explorer (4.0 or above). The European version of this service supports IE, Netscape 6+, Mozilla 1+, Firefox (all), Opera 7.5+ on Windows, Linux and Solaris.

Free Hit Counters (Perl CGI Scripts)

HitMatic HitMatic is a graphical counter (Perl script). It creates an X-Bitmap images for the counter which graphical browsers are supposed to be able to display (it displayed fine on mine). MultiCount This is a text counter that requires you to have SSI. It can handle multiple counters. It is released under the GNU GPL. CounterLog This Perl CGI counter script requires server side includes (SSI) to be enabled. In return, it is able to generate a text-based counter and maintain logs on the the web browsers used to access your page as well as the site the user accessed prior to your page (referring page). Delorie Counter Script This counter requires you to have access to a C compiler as well as Perl. There may be other requirements. It generates a graphical counter for your web page. Dream Catcher's Counter This is a Perl counter which allows you to generate text counters. You need to have server-side includes (SSI) enabled on your web server to use the counter. Matt Wright's Text Counter This text counter can manage multiple pages, but it requires you to have Server Side Includes (SSI).

Free File Hosting and Storage

StreamLoad This free file host provides 10 GB of storage space for your files. The files are subject to a 10 MB limit each. You may only download 100 files or 100 MB per month, whichever comes first. You cannot host files or send email links, and may send up to 100 files per message. Their paid account provides unlimited storage without most of the limits imposed for the free accounts although there is a download limit (data transfer) depending on which plan you choose. Free File Hosting With this free file host, users can store an unlimited number of files of up to 150 MB per file. 2 persons are allowed to download your file at any one time. fileUPYOURS This free file storage host allows you to store up to 200 MB of files. You can organise your files into folders, rename files, delete them and create thumbnails of images. Spread-It Your file is limited to 500 MB in size, and will be kept up to 14 days. theFileHut You are given 250 MB file storage space where you can place your files and images. You can hotlink to those files and images from elsewhere if you wish (yes, hotlinking is allowed). UltraShare This free file hosting service allows you to upload files of a maximum size of 30 MB each. Files are deleted after 30 days of inactivity. SwiftDesk You are allowed up to 30 MB of file storage after registering for an account. Ushareit This free image hosting and file sharing host allows you to upload files up to 50 MB in size. bonpoo This file transfer service allows you to upload files up to 50 MB for transferring to others via email. Ftpz.us There is no information on this site except that your file size is limited to about 877 MB. FileBuffer This file storage host allows you to upload files up to 40 MB. Files are deleted after 14 days if they are not used. 35MB This file storage host gives you up to 35 MB of space with an additional 1 MB of space for each person who downloads your file. Unfortunately, your users have to use Internet Explorer and install an ActiveX control from their site before they can download anything. up.li.ru This is a free image host that allows you to upload your images, which, I think, you can hotlink from your website. The site does not seem to specify how large your files can be or how long they can be kept, but a user informs me that the files are limited to 32 MB and they are deleted after 3 days for a normal file or after 2 months if the file has a JPG or PNG extension. RapidShare The maximum file size for this file sharing host is 100 MB. However, there is a download limit, set at 30 MB per hour. This means that your friends can only download up to 30 MB in any given hour. This limit is set according to the IP address of the downloader. Your file is also deleted if it is not downloaded within 30 days. FileFront This free file host provides you with unlimited file uploads and downloads, unlimited bandwidth and unlimited space. Although I could not find the information on their site, there is a file size limit of 1 GB, and your file cannot take more than 10 hours to upload. You can give the public access to any of your files. Sendmefile You are allowed to upload files of up to 50 MB per file with this free file storage host. Your files are deleted after 14 days of inactivity. MegaUpload The maximum file size allowed for this free file storage host is 250 MB. Your file is deleted if no one downloads it for 30 days. Dropload Your files are limited to 100 MB each, and they will be deleted after 7 days. You use their interface to send your friends an email with instructions on how to download the file. Turbo Upload This file storage host allows you to upload files with a maximum size of 70 MB. PicaPic This is actually a free image host. You can host jpg, gif, png, bmp and even video files. The maximum file size is apparently 60 MB. SaveFile This file hosting site allows you to upload files up to 60 MB each. Inactive files are deleted after 14 days (or 10 days for what the site calls "extreme cases", whatever that means). Hotlinking is not allowed. FreeUploader You can share files and images up to 50 MB each with this free image hosting and free file hosting service. Since this is a free image host, it follows that you may hotlink the images and files from forums, personal websites and auctions. youSENDIT This free file storage service is designed primarily for people who want to send large files to their friends via email. Instead of sending the file by attachment and clogging up their mail box, you can use this host's interface to upload your file and send a message to your friend with the link to the file. As I understand it, there is a 1 GB limit to the file size, and your files are deleted after 7 days. TransferBIGFiles This free file storage host is designed primarily for people who want to send large files to their friends via email. Instead of sending the file by attachment and clogging up their mail box, you can use this host's interface to upload your file and send a message to your friend with the link to the file. Based on information from other users, there is apparently a limit of 1 GB to the file size, and your files are deleted after 5 days or 20 downloads.

Free Perl Search Engines

Fluid Dynamics Search Engine This is a Perl based search engine that builds either a flat-file text database or a MySQL database (at your option) at indexing time. When your visitor enters a search term, it will only search that database. It is template based, so you can customise its appearance with the look and feel of your site. Among the search engine scripts that I have evaluated, this probably offers the richest set of search queries possible, handling not only Boolean searches, but case-sensitive and case-insensitive searches, phrase searching, search for specific attributes (eg words in the body, title, keywords, etc), and so on. The author notes that since it is rich in features, it is likely to be a bit more server-intensive than other search engines which has less features. Note that it seems that you can either use the free version (which appears to have some limitations and obliges you to display the link to their site) or pay for the shareware version. Perlfect CGI Search Engine Script Perlfect Search is a Perl based search engine script designed for those with large sites. It's supposed to be able to handle even sites with 1000+ pages in a reasonable time. It is able to use any DBM compatible module found on the system, such as SDBM, NDBM, etc. The program is released under the GNU General Public Licence and is "sophisticated, powerful, versatile, customizable" and is loaded with features. If you have a huge site, you might need this to get fast search results. Like other search engine scripts designed for large sites, you have to run an indexer (or spider) separately on your site to update the search engine database. KSearch This is a Perl search engine script which you can install on your web server to provide your visitors with a means to search your website for the documents they need. Features of this engine include the ability to search for multiple terms and phrases, boolean searches, a configurable list of terms and files/directories to ignore, configurable number of results per page, ability to search within results, ability to sort results by matches, score, date, time, etc, ability to highlight the terms in results, ability to index PDF files, etc. KSearch Client Side Need to put a search engine on a floppy disk or CDROM distribution of your site? This script allows you to do just that. It does not need a web server, is compatible with Netscape and Internet Explorer, handles boolean queries, etc. Fluffy CGI Search Engine Script This Perl search engine CGI script highlights the relevant words in the search engine results that is displayed when your visitor does a search. It also allows you to mark areas on your web pages that are to be excluded from the search engine, configure the ranking criteria, etc. There is a script to index (spider) your site, and one that is run from your web page for your visitors to search your site. JASearch A Perl script that searches the documents on your site. It allows the Boolean AND and OR in your search strings. Hukilau Search Engine This Perl script can only be used for non-commercial purposes. You must also display the name "Hukilau Search Engine" on all pages returned by the script. Site Search A search engine CGI script that searches the documents on your site for keywords. You can request that your search string be matched exactly or as a pattern. Simple Search This Perl script is from Matt Wright's archive. It does a search of all documents on your site when the user requests for a search (ie, it does not pre-index your site). The engine supports Boolean expressions in your search string. Htgrep This powerful search engine script allows you to use either Boolean or regular expressions in your queries. However, you need to supply a search file, which will be used by the script to locate the appropriate documents. URL Search Engine This search engine scans a text database for the search expression and displays all the URLs that match. Unlike engines that search the HTML documents themselves, you need to set up a text file containing the various keywords and their respective URLs before using the search engine.

Free Cryptographic / Encryption Libraries and Source Code

Putty: Win32 SSH / SFTP Client with Source Code Putty is not a library, but a set of programs that implement Secure Shell access, Secure FTP (SFTP), Telnet, etc. Since it is open source, employing things like strong authentication and secure sessions, it may be a useful source of information for your own internet software. TurboPower LockBox This cross-platform toolkit supports Windows and Linux X11 applications (and possibly other Unix X11 environments as well). It contains components and routines for Delphi, Kylix and C++Builders that support data encryption. Algorithms supported include Blowfish, RSA, MD5, SHA-1, DES, triple-DES, Rijndael AES (Advanced Encryption Standard), etc. It also provides support for digitally signing messages with the standard Digital Signature Algorithm (DSA). LockBox is open source. OpenSSL If you are writing an application (browser, email, server, etc) that requires the use of either Secure Sockets Layer (SSL versions 2 or 3), or Transport Layer Security (TLS version 1), you can obtain this free open source "commercial-grade" OpenSSL library. The library allows you to add cryptographic functionality to your programs, apparently both server programs as well as SSL supporting clients. You can use it in both commercial and non-commercial programs. This is the successor to the well-known SSLeay library. (Trivia: in case you don't see the connection, OpenSSL = Open plus SSLeay minus eay where "eay" stands for Eric Young, probably his initials.) OpenSSH This is not a library but an open source suite of programs that support Secure Shell access (SSH), namely ssh (which replaces telnet and rlogin), scp (which replaces rcp and ftp), sftp (Secure FTP, which also replaces ftp), sftp-server, sshd (server-side), etc. Since the programs are open source, providing strong authentication and secure sessions, it may presumably provide the base for your implementation of SSH. It is supports a wide number of operating systems: OpenBSD, NetBSD, FreeBSD, AIX, HP-UX, IRIX, Linux, NeXT, SCO, SNI/Reliant Unix, Solaris, Digital Unix/Tru64/OSF, and Mac OS X. In SSH1 mode, the encryption algorithms supported include 3DES and Blowfish. In SSH2, 3DES, Blowfish, CAST128, Arcfour, and AES are supported. Network Security Services Used in Netscape and Mozilla products, NSS (Network Security Services a.k.a Netscape Security Services) allows you to develop security-enabled server applications that support SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #8, PKCS #9, PKCS #10, PKCS #11, PKCS #12, S/MIME, X 509 v3 certificates, RSA, DSA, Triple DES, DES, RC2, RC4, SHA-1, MD2, MD5, etc. The software is released under the Mozilla Public License and the GNU General Public License. GnuPG: The GNU Privacy Guard This is not a library but a fully functioning program that functions as a replacement for PGP. Since the primary function of the software is encryption, you can probably extract the encryption source code (released under the GNU GPL) for your own application if you wish. Crypto++: C++ Class Library Of Cryptographic Schemes This free C++ class library is a class hierachy with an API defined by the base abstract classes. It handles a large number of cryptographic schemes (including public key cryptography) and cipher modes. In no particular order, here's a list of some stuff supported: RC6, MARS, Rijndael, Twofish, Serpent, IDEA, DES, Triple DES (DES-EDE2 and DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish, Diamond2, TEA, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square, CBC padded, CBC ciphertext stealing (CTS), CFB, OFB, counter mode, ARC4, SEAL, WAKE, Sapphire, BlumBlumShub, RSA, DSA, ElGamal, Nyberg-Rueppel (NR), BlumGoldwasser, Rabin, Rabin-Williams (RW), LUC, LUCELG, Elliptic Curve Cryptosystems, PKCS#1 v2.0, OAEP, PSSR, IEEE P1363 EMSA2, Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, SHA-1, MD2, MD5, HAVAL, RIPEMD-160, Tiger, MD5-MAC, HMAC, XOR-MAC, CBC-MAC, DMAC, Luby-Rackoff, MDC, ANSI X9.17 appendix C, PGP's RandPool (for pseudo random number generation, PRNG), Shamir's secret sharing and Rabin's information dispersal schemes, DEFLATE (the gzip/zip/unzip compression), 32 bit CRC, prime number generation and verification, etc. Platforms supported include Win32, Unix and Macintosh. Cryptlib Use this library to add encryption and authentication services to your program. You can choose from a multitude of encryption and authentication algorithms: Blowfish, DES, triple DES, IDEA, Skipjack, CAST, AES, RC2, RC4, RC5, RIPEMD-160, SHA hash algorithms, HMAC-MD5, HMAC-SHA, HMAC-RIPEMD-160 Mac algorithms, Diffie-Hellman, DSA, Elgamal, RSA public key encryption, etc. There is also support for high-level capabilities like certificate handling, a database interface, S/MIME (allowing you to encrypt and authenticate, for example, email), etc. It can even make use of external crypto devices like hardware crypto accelerators. The library comes with source code for Unix, Windows 95/98/NT/2000/XP, Windows 3.x, MSDOS, OS/2, BeOS, Macintosh, and Tandem, with adaptations for VM/CMS and MVS mainframe environments.

Free Online SQL Documentation, Tutorials, References

PHP/MySQL Tutorial A tutorial on MySQL for people who plan to use PHP to access it. It's a useful getting started guide for people who are planning to develop web scripts in PHP that interface with MySQL. It assumes you know PHP. Setting Up a MySQL Based Website Part I A tutorial on using MySQL, the popular SQL server used on numerous web servers. Setting Up a MySQL Based Website Part II: Performing User Authentication via MySQL Part 2 of the tutorial on MySQL. PL/SQL Tutorials (for Oracle users) This tutorial deals with PL/SQL, and is probably relevant for Oracle users only. Interactive/On-line SQL Tutorial This tutorial comes with an online SQL interpreter and live practice database. Advanced/Intermediate Interactive/On-line SQL Tutorial This is the SeQueL to the interactive online SQL tutorial listed above.

Free Web Hosts with Free Domain Hosting

Portland Free Web Host This UK free web space provider gives you 15MB of web space with no ads. You get FTP access, multiple email forwarding, website statistics, and a subdomain name (eg yourname.port5.com or yourname.portland.co.uk). You can also host your own domain name free of charge. Unfortunately they limit you to 100MB of data transfer every month (which is usually only enough if you are putting up a personal web site with only a few visitors each month). Coolfreepages Free Web Host This free web host provides you with 50 MB of disk space, FTP access, PHP4 (but without functions like mail(), phpinfo(), and the sockets functions), MySQL, .htaccess access, and free domain hosting. If you're not buying a domain name from them and want free domain name hosting you must upload your website onto their servers (for them to check) before they'll set up your domain on their name servers. T35 Free Web Host T35 gives your site 35 MB of space, FTP access, unlimited bandwidth, PHP (but with the mail() function disabled), Server Side Includes (SSI), and free domain name hosting or a subdomain name like yourname.t35.com (if you don't have your own domain). The largest file that you can upload to your account is 250 KB (ie, there is a file size limit). The host places pop-up ads on your website.

Free Web Hosts with PHP Access / Support

Byethost
Depending on the free plan you choose, this free web host provides you with 100 or 250 MB of web space, 20 or 30 GB of traffic, 2 or 10 MySQL databases, PHP, FTP, sub-domains, Cpanel control panel, etc.

Tripod Free Web Host (UK)
Tripod (UK) provides you with PHP, MySQL, web statistics, FTP access (only for certain areas of the world - they block other countries), a site builder, a web-based FTP / file manager, 50MB disk space, unlimited traffic, unlimited file size, etc. The service is ad-supported. Your URL will be something like http://www.members.lycos.co.uk/yourname/.

Coolfreepages Free Web Host
This free web host provides you with 50 MB of disk space, FTP access, PHP4 (but without functions like mail(), phpinfo(), and the sockets functions), MySQL, .htaccess access, and free domain hosting. If you're not buying a domain name from them and want free domain name hosting you must upload your website onto their servers (for them to check) before they'll set up your domain on their name servers.

T35 Free Web Host
T32 gives your site 35 MB of space, FTP access, unlimited bandwidth, PHP (but with the mail() function disabled), Server Side Includes (SSI), and free domain name hosting or a subdomain name like yourname.t35.com (if you don't have your own domain). The largest file that you can upload to your account is 250 KB (ie, there is a file size limit). The host places pop-up ads on your website.

Free Compilers and Interpreters for Miscellaneous Programming Languages

XPL0 XPL0 is a block structured programming language that supports recursion, integers, double-precision floating-point (with or without a math coprocessor), generalized I/O for the console, printers, files and serial ports, unlimited-dimensional arrays, complex data structures using pointers, procedure and function nesting (up to 8 levels), built-in graphics and transcendental routines, peek, poke, port I/O, etc. According to its creator, the language is similar to Pascal although less restrictive, less cryptic than C and more powerful than BASIC. It can generate interpreted as well as native code. The compiler runs under DOS. To use the native and optimizing compilers, you will need an assembler. You can get many free assemblers from the Free Assemblers, Linkers and Object Module Librarians page. The Harbour Project Harbour is a free compiler that handles the Clipper superset of the xBase language (the language that originated with dBase). It can compile and run on Windows, MS-DOS, OS/2 and Linux. It is currently under development. REBOL REBOL, or the Relative Expression-Based Object Language, is an interpreted language for distributed Internet applications that runs on a variety of devices. The core interpreter is free for all uses, while the version that supports graphics is free only for non-commercial use. REBOL runs on Windows XP/CE/NT/2K/9x, Linux, FreeBSD, OpenBSD, Mac OS and OS X, Solaris Sparc, BeOS, NetBSD, HP-UX, AIX, etc. Lua Programming Language Lua is an interpreted procedural language with "data description constructs based on associative arrays and extensible semantics". It has dynamic typing, automatic garbage collection, etc. It is free, open source, and supports Windows, Windows CE, Linux, OS/2, BEOS, etc. RapidBATCH Freeware Edition RapidBATCH is a scripting language for Windows. The language appears to be somewhat of a cross between BASIC and typical scripting/batch file languages. It features control instructions like GOSUB and GOTO, the ability to create message boxes from within your script, built-in functions for system related functions, etc. Erlang To quote from the FAQ, "Erlang is a general-purpose programming language and runtime environment", with "built-in support for concurrency, distribution and fault tolerance." It is suitable for distributed, reliable, soft real-time concurrent systems like servers for Internet applications (eg, web servers, mail servers), telecommunications systems, database applications that require soft realtime behaviour, etc. Erlang is released free with source code, libraries of code, and documentation. FBSL: Free Basic Scripting Language This is a simple scripting language for Windows systems. You can create script files that run in GUI or console mode for use with this interpreter. Regina Rexx Interpreter Regina is a Rexx interpreter. The developers intend to make it 100% compliant with the ANSI Rexx standard. It has been ported to OS/2, MSDOS, Windows 95, Windows 98, Windows NT, Amiga, QNX, BeOS, OpenVMS, etc. Ruby Programming Language This is an interpreted scripting language designed for "quick and easy object-oriented programming." It has facilities to process text files and do system management tasks. Its syntax was partially inspired by Eiffel and Ada. Supported operating systems include Windows, Unix, DOS, Mac, BeOS, OS/2 etc. It even does OS independent threading. D++ Scripting Language D++ is a scripting language that supports I/O, expressions, loops, functions, etc. It comes with an IDE, and compiles your code to EXE for execution on a Windows machine. It is an open source (Visual Basic?) application. The compiler and language was created by a 13 year old child. Euphoria From their website, Euphoria is "a simple, flexible, and easy-to-learn programming language" that allows you to develop programs for DOS, Windows and Linux. It provides things like subscript checking, uninitialized variable checking and other runtime checks. It has apparently even been used to develop 32 bit games for DOS. Icon To quote from the FAQ, "Icon is a very high level general-purpose programming language with extensive features for processing strings (text) and data structures." It runs on MSDOS, Unix, Windows 3.1, Windows 95, Windows NT, Macintosh, VAX/VMS, Amiga, and the Acorn Archimedes. Older versions are available for the Atari ST, IBM CMS and MVS and OS/2. There is also a Java implementation called JCON that generates Java classes which can be executed in a Java virtual machine. JAL JAL, or Just Another Language, is a high level language for Microchip PIC 16x84 (16c68 and 16f84) and Scenix SX (SX18 and SX28) microcontrollers. It is Pascal like, and its libraries are released under the GNU LGPL licence. Versions are available for Linux, Windows and Mac OS X. POW! Programmers Open Workbench This integrated software development environment for Windows allows you to generate native Windows applications using Oberon-2, and it includes an Oberon-2 compiler. The IDE also supports Java and C/C++. The Oberon-2 compiler is a full implementation of the language and comes with the Oberon-2 library OPAL which allows you to create Windows programs without having to directly access Windows API. R R (a.k.a. GNU S) is a language and environment for statistical computing and graphics. R's implementation of the S language "provides a wide variety of statistical and graphical techniques (linear and non-linear modelling, statistical tests, time series analysis, classification, clustering...)". It is a true computer language and it has support for control flow, facility for adding new functions, and the ability to call C or Fortran code. SmallEiffel: The GNU Eiffel Compiler This is the GNU Eiffel compiler, which can compile to C or Java bytecode. For those not familiar with Eiffel, it is an object-oriented programming language. This implementation supports Linux, GNU HURD, BSD, HP-UX, IRIX, XENIX, Solaris, DOS, OS/2, Windows NT/95, Macintosh, NeXT, Amiga, VMS, BeOS and possibly other Unices. You can get more information on Eiffel from the Eiffel FAQ. JFS JFS comprises a compiler, a "runner" (runtime component?), "converters" (translates to C and HTML/JavaScript), learning tools (using evolutionary algorithms, Id3, and the Wang-Mendel method), "inverse compiler" (decompiler?) and source code for writing programs in the programming language Jfl, which is a "special-purpose language for function-writing" that "combines traditional features with fuzzy logic and machine learning". MZScheme MzScheme is an implementation of the Scheme programming language. Supported platforms include Windows 95, 98, NT, MacOS, Unix, and BeOS. The website notes that it is R4RS compliant and nearly R5RS compliant and provides support for pre-emptive threads (all platforms), generative structures (record data types), built-in exceptions, compilation units, object oriented system, regular expression matching, simple TCP communication, portable filesystem access, platform specific process control (including AppleEvent support), etc. You can compile your source code to either intermediate byte code or C source (which can be used to generate a native code binary or executable). Mercury A logic/functional programming language that "combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features." The compiler generates C code. Kiev This compiler is able to generate Java bytecode from extended Java source code with embedded Prolog source code. Extensions to the Java language include a Prolog-like engine, multimethods, parameterized types, closures, multiple inheritance by interfaces and delegation, arithmetic types, type states and cases, overloaded and user-defined operators, foreach statement, switch statements for types, goto, global method and variables, enum, virtual fields, variable number of arguments, packed fields, bit-fields, etc. It is now open source. Xscompiler This MSDOS compiler generates 32-bit protected mode programs from a language that is C compatible, but includes classes and multiple inheritance. It comes with the standard C library, graphics, sound, multitasking, compression, animation, GIF, PCX, FLI/FLC, and other libraries. The compiler itself is compiled using this language.

Free Sockets and Winsock Libraries

TurboPower Internet Professional (iPRO)
TurboPower Internet Professional is a set of VCL components (which means that you need to use Borland Delphi or Borland C++Builder to use it) that allows your program to access the Internet in numerous ways. In terms of email, it supports POP3, SMTP, and NNTP, attachments (encoding and decoding), MIME, etc. It also handles Instant Messaging (IM), multiple HTTP requests at the same time, rendering of HTML with support for PNG, JPEG, BMP, WMF, ICO (etc), non-visual HTML scanners (for writing web spiders and robots), logging, data conversion, address lookups, Remote Access Server (RAS) support, VT100 terminal emulation, Internet Control Message Protocol (ICMP) components (for ping and trace), FTP (including an FTP directory tree component), SNTP (for time clients/servers), troubleshooting protocols components (Echo, Discard, CharGen), client/server components for finger and whois, etc.

TurboPower Async Professional (FTP, VOIP, etc)
If you need to add speech to your programs, or enable it to process speech input, TurboPower's Async Professional provides you an easy access to Microsoft's Speech API (SAPI) allowing you to integrate voice/speech recognition and speech synthesis in your programs. It also handles the sending and receiving (as well as viewing and printing) of faxes (and converts BMP, DCX, PCX and TIF files automatically), alphanumeric and text (GSM/SMS) paging, high speed file transfers (including the major file transfer protocols like Zmodem and FTP), IP telephony (audio and video, Voice Over IP or VOIP), Internet communications (Winsock access), supports ISDN modems, RS-232 and RS-485 standards, and includes an XML-based modem database. And so on. Like most of the TurboPower tools, this open source toolkit may be used with Delphi and Borland C++ Builder and ActiveX environments like Microsoft Visual C++ and Visual Basic. If you use Borland Kylix on Linux, you might want to try the TurboPower Async Professional CLX version.

TurboPower Sy
sTools (with email MIME encoding/decoding) TurboPower SysTools contain numerous utility functions and classes for Borland Delphi and Borland C++ Builder as well as programming environments that support COM objects (like Microsoft Visual Basic, Microsoft Visual C++. Among the routines included in this library are string manipulation routines, date and time math routines, high-speed sorting, high-precision maths, runtime math expression analyzer, Microsoft Excel-like finance and statistical routines, email attachment MIME encoding and decoding, reusable containers (stacks, queues, trees, deques, hash tables), CRC data integrity checking, 1 dimensional and 2 dimensional (1-D and 2-D) bar codes, money routines, logging classes, patterns, random number distributions, text data manipulation and more. SysTools is open source, released by TurboPower under the Mozilla Public License. It works on Windows systems. There is also a version of TurboPower SysTools for Kylix.

The Standard Function Library
The Standard Function Library, or SFL, contains routines for compression, encryption, encoding, data type conversion, data output formatting, process control, dates, times, calendars, symbol tables, linked lists, configuration files, error message files, string manipulation, searching, Internet socket access, MIME, CGI, SMTP, batch programming, debug tracing, directory access, environment access, etc. It is designed with portability in mind. The library is written in ANSI C and is supported on MSDOS, Windows, OS/2, Linux, AIX, SunOS, HP/UX, Solaris, NetBSD, FreeBSD, SCO OpenServer, Digital Unix, and OpenVMS. The source code is also available.

Putty: Win32 SSH / SFTP Client with Source Code
Putty is not a library, but a set of programs that implement Secure Shell access, Secure FTP (SFTP), Telnet, etc. Since it is open source, employing things like strong authentication and secure sessions, it may be a useful source of information for your own internet software.

OpenSSL
If you are writing an application (browser, email, server, etc) that requires the use of either Secure Sockets Layer (SSL versions 2 or 3), or Transport Layer Security (TLS version 1), you can obtain this free open source "commercial-grade" OpenSSL library. The library allows you to add cryptographic functionality to your programs, apparently both server programs as well as SSL supporting clients. You can use it in both commercial and non-commercial programs.

OpenSSH
This is not a library but an open source suite of programs that support Secure Shell access (SSH), namely ssh (which replaces telnet and rlogin), scp (which replaces rcp and ftp), sftp (Secure FTP, which also replaces ftp), sftp-server, sshd (server-side), etc. Since the program is open source, providing strong authentication and secure sessions, it may presumably provide the base for your implementation of SSH. It is supports a wide number of operating systems: OpenBSD, NetBSD, FreeBSD, AIX, HP-UX, IRIX, Linux, NeXT, SCO, SNI/Reliant Unix, Solaris, Digital Unix/Tru64/OSF, and Mac OS X. In SSH1 mode, the encryption algorithms supported include 3DES and Blowfish. In SSH2, 3DES, Blowfish, CAST128, Arcfour, and AES are supported.

WindowSIL / X-SIL
WindowSIL and X-SIL are interface libraries to Winsock and the Unix Socket API. It allows you to use sockets in your programs using functions much like the standard ANSI C library functions, such as sockprintf() and sockgets(). WindowsSIL runs on Windows 95/98/ME/NT/2000 while X-SIL runs on Unix and Linux systems with TCP/IP networking. The source code is available.

Network Security Services
Used in Netscape and Mozilla products, NSS (Network Security Services a.k.a Netscape Security Services) allows you to develop security-enabled server applications that support SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #8, PKCS #9, PKCS #10, PKCS #11, PKCS #12, S/MIME, X 509 v3 certificates, RSA, DSA, Triple DES, DES, RC2, RC4, SHA-1, MD2, MD5, etc. The software is released under the Mozilla Public License and the GNU General Public License.

LCRZO Network Library
This library provides support for UDP/TCP clients and servers, sniff, spoof, packet creation, packet decoding, packet printing, address conversion, etc. Platforms supported include Linux, FreeBSD and Solaris. The library is apparently released under the GNU LGPL.

Datareel Database C++ Library
This is a collection of C/C++ libraries that purportedly "simplifies complex time-consuming database, socket, multithreaded programming tasks". It supports the Windows and Unix platforms.

MIMELite MIME C Library
This C library supports the subset of MIME that is required for the encoding and transfer of European character sets. Specifically, it supports the Content-Transfer-Encodings 7BIT, 8BIT, BASE64, and QUOTED-PRINTABLE. It also handles the conversion between the ISO Latin 1 character set and PC based character sets (eg CP-850, CP-437 and Macintosh). It was designed originally to work on MSDOS, where resources are scarce, but is apparently general enough for other contexts. The C source code is provided.

CYRUS SASL Library
To quote, "the Cyrus SASL library is a generic library for SASL authentication, as used in SMTP and IMAP protocols. It's used for authentication by the Cyrus IMAP server as well as the Sendmail 8.10 release." It also includes a Java SASL library. Note that the link above is to an FTP directory. Look for a file like "cyrus-sasl-1.5.20.tar.gz" (the numbers may change when newer versions are released) there.

MIME++ C++ Library
This C++ class library allows you to parse, create and edit messages in the MIME format. Their website notes that the library has a proven track record from field testing and is perfect for developing email, Usenet or web applications. It handles the quote-printable, base64, uuencode/uudecode, Binhex 4.0, MacMIME (applesingle and appledouble) encodings. It also supports SMTP, POP and NNTP protocols, multipart messages, messages with attachments. You can customize the class or extend it through inheritance and polymorphism. Price? Free for non-commercial, educational and personal use. It supports Win32 (Windows 95, 98 and NT), Linux, SGI Irix, Digital Unix, AIX, HP/UX, Solaris, and SunOS. If your application needs email capabilities, you can't afford not to check this out! Source code is available.

POP3 Client
Get the files POP3.ASC and POP3.ZIP from that page to obtain a C++ POP3 client that uses Winsock. The package is distributed in the form of C++ source code.

GNU Common C++
GNU Common C++ is a C++ framework for developing portable threaded applications. It has abstractions for threads, sockets, XML parsing, serialization, config files, and so on, hiding the differences between platforms in its classes so that you can write code that is (hopefully) portable. It is released under the GNU GPL license.

OPP C++ Class Library
A C++ class library that has a number of features, including classes for retrieving files via HTTP, sending and receiving email, etc. It supports Unix systems. The C++ source code is available.

LibTCP++ TCP/IP Client/Server Class Library
A C++ TCP client/server class library that is supposed to simplify and speed development of TCP/IP client/server applications. The Linux platform is supported. The C++ source code is available.

SMTP SendMail() (WDJ June 98)
Add email capabilities to your application by simply including the source code to this function in your application and calling the SendMail() function. This function sends email using the SMTP protocol (ie, it does not rely on MAPI being installed). This code is intended for the Windows platform. The actual source code is contained in one of the ZIP files in the archive downloaded (each ZIP file has a README.TXT file that explains its contents).

HTTP Client (WDJ Oct 99)
Add the ability to get web pages to your program. The source code here is short, so it is easy to read and understand, and will help you get started in understanding how to code for Winsock. Note though that the code is actually too simplistic and is not able to handle situations where the program has to use a proxy to access the outside world. The actual source code is contained in one of the ZIP files in the archive downloaded (each ZIP file has a README.TXT file that explains its contents).

Scanning TCP/IP Ports (WDJ Feb 98)
Source code for a utility program that will scan the TCP/IP ports under Windows 95 and NT. The actual source code is contained in one of the ZIP files in the archive downloaded (each ZIP file has a README.TXT file that explains its contents).

HTTP Client with MFC (WDJ Nov 97)
This is an MFC class for multithreaded HTTP downloads. Note that it requires your users to have the WININET.DLL installed. If they do not, you probably have to tell them to install Internet Explorer. Yeah, I know... I guess it depends on your user base. The actual source code is contained in one of the ZIP files in the archive downloaded (each ZIP file has a README.TXT file that explains its contents).

SendEmail() using MAPI (WDJ Nov 97)
Give your application email capabilities via MAPI (implying of course, that this package only applies to the Windows platform). Just call SendEmail() in your application with the addressee's email address, the subject and the text of your message and you're done. The actual source code is contained in one of the ZIP files in the archive downloaded (each ZIP file has a README.TXT file that explains its contents).

Copying files via FTP, HTTP, Gopher using Wininet.dll (WDJ Nov 96) With this library your Windows program can have the capability to get files from the internet using FTP, HTTP and Gopher. Alas, this tool relies on Microsoft's wininet.dll which is not necessarily present in every Windows platform. It is installed with Internet Explorer though, so if your users do not have it, you may have to persuade them to make a 70+MB download (for IE) before they can use your program! The actual source code is contained in one of the ZIP files in the archive downloaded (each ZIP file has a README.TXT file that explains its contents).

Mozilla Web Browser
If you've not heard of this, you must be truly new on the scene or you've been on a really long vacation. This is the source code for the free portions of Netscape (yup), released free of charge under an open source license. Writing an application that involves the HTTP protocol? Need code for an email client that supports SMTP, authenticated SMTP, POP3, IMAP, etc? Well, what are you waiting for?

War FTP Daemon
The source code for a FTP daemon that can only be used in freeware programs (but not if you are the government, military or any political organisation). You have to fill in a form and the author will inform you where to get the code.

Inettransferlib (HTTP and FTP Library)
InetTransferLib is a free library for Access 97 for obtaining documents via HTTP and FTP.

Apache Web Server
Source code for the most widely used Apache web server is freely available. It can be compiled and used on Unix systems as well as Windows (although at the time of this writing, the Windows code is not as stable as the Unix one).

Free 3D Engines, 2D Engines, Graphics Libraries / Source Code, Image Drawing

Open Scene Graph Open Scene Graph (OSG) is a high level 3D graphics toolkit that you can use in development of games, visual simulation, virtual reality, scientific visualizations and modelling. It is an object oriented framework written in standard C++, uses OpenGL, and supports Windows, Mac OS X, Linux, FreeBSD, IRIX and Solaris. OSG is released under a "relaxed version" of the GNU LGPL, allowing its use in both open and closed source projects (see the site for details). g2 2D Graphics Library This open source 2D graphics library is written in C and has a C, Fortran and Perl interface. It exposes functions that you can use to generate graphics for Postscript, X11, PNG, and Win32. The library has been tested on Linux, AIX, Digital Unix, SunOS, IRIX, VMS and Windows NT/2000. GD Library This is a well-known library for the creation of PNG and JPEG images. It is written in ANSI C, but you can also call the library from Perl, Tcl, Pascal, Haskell, REXX and possibly other languages. It has facilities for you to draw lines and arcs, write text, colour the images, cut and paste images, do flood fills, etc. Expression 3D Toolkit Expression is a C++/STL toolkit that supports interactive 3D graphics using OpenGL as well as non-interactive sphere tracing. It runs on Win32 and Linux, supports JPEG and 3DS filters, is MT-safe (thread-safe) (supports both POSIX and Win32 multithreading), handles 3D and homogenous coordinates, 3x3 and 4x4 matrices, quaternion, colour range maps, axis aligned bounding boxes, fogs, procedural textures, fullscreen and windowed modes, polygonal models (tri-mesh), primitive sky, particle systems, etc. Bolt3D Engine Bolt3D is a real-time 3D engine for Win32 systems. It supports real-time gouraud, phong, texture-mapping, particle systems (for stuff like smoke and bubbles), bilinear-filtering, surface mapping, artificial spotlights, fog effects, 3D object creation (spheres, cones, sweeps, cubes, hardware acceleration, etc. You can interface the code from Visual C++, Delphi and Visual Basic. The engine is free. libAfterImage libAfterImage is an image manipulation library for X Windows that supports loading, storing blending, rendering and manipulation of images. Image formats like XCF, XPM, PPM/PNM, BMP, ICO, JPEG, PNG, GIF, TIFF (full range) can be imported into the library, which also allows you to use TrueType fonts. The library may be used without X Windows, and handles scaling, tinting, flipping, tiling, textuarized, semi-transparent 3D text rendering, etc. Libart This 2D graphics library supports numerous data structures (vector paths, Bezier paths, RGB and RGBA images, sorted vector paths, MicroTile arrays, Affine transformations) and algorithms (converting Bezier paths into vector paths, antialiased rendering of SVPs, alpha-compositing, etc). GraphLib This C++ class library that can be used to represent graphs. It comes with a few graph algorithms and is extensible. It runs on Windows 9x and Linux. Interactive Visualisation Framework Ivf++ is a C++ visualisation framework for 3D rendering that encapsulates OpenGL and GLUT functionality. Its extensible foundation classes can be used either standalone or in conjunction with other GUI libraries such as FLTK, MFC and GTK+. It comes with tutorials and a user's guide. It runs on Windows and X11 (Unix systems) and apparently has been tested on Windows NT/2000, Linux and IRIX. Graphix This MSDOS graphics library is designed for the Free Pascal Compiler (which can be found, along with other free Pascal compilers) and Borland Pascal 7.0. It has various capabilities, including the support of various graphics modes from 320x200 to 1600x1200 (and above) using direct-RGB (15, 16, 24 and 32 bit), 8 bit graphics modes, mouse library, image handling library (BMP, GIF, ICO, JPG, PCX, PBM/PGM/PPM, PNG, TGA, etc), font library (FNT bitmapped fonts, CHR-BGI fonts, VGA-BIOS 16x8 font), graphics effects library (alphablending, masking operations, rotating, scaling), triangle-output library (for 3-D, etc), and video and animation library (AVI, FLI/FLC, GIF, Quicktime MOV). Dislin This is a plotting library for displaying data as curves, bar graphs, pie charts, 3-D colour graphics, 3-D graphics, elementary images, 3D-colour plots, surfaces, contours and maps. Versions are available for C, Fortran 77 and Fortran 90 compilers on Linux, FreeBSD, OpenVMS, MS-DOS, Windows 95/98/NT, and other flavours of Unix. On some operating systems, Java, Perl, and Python are also supported. (Not all versions of the library are free, though.) Gx2 Graphical Library GX2 is a graphical library for Borland Pascal 7 and the Free Pascal Compiler ("soon"). It uses an object oriented interface and supports the loading and saving of BMP, GIF, PNG, JPG and PCX files. It comes with 65 fonts (vector and bitmap) and supports True Type Fonts and the conversion of Borland CHR fonts. Most of the work in image handling (e.g. conversion, opening) is done by the library automatically. Other features supported include antialiasing of fonts, lines and circles, alphablending, alphamapping, transparency (add/sub), rotation, colour dithering, fading, colour printing to Epson and HP compatible printers, etc. The library uses 32 bit DPMI code, optimized to take advantage of the MMX. PASJPEG Compress and decompress JPEG files with this library, which is actually a port of the Independent JPEG Group's C sources into Pascal/Delphi. It was written for Turbo Pascal 7.0 and Delphi 2.0 but should work with other Pascal compilers which are compatible with these two. MESA A 3D graphics library with an API similar to OpenGL. It implements the OpenGL 1.2 API specification (as of version 3.0), and works on most Unix systems with X11. Drivers are available for Amiga, Windows, Macintosh, MSDOS, NeXT, BeOS, etc. 3D hardware supported include 3dfx Voodoo1, Voodoo2, Voodoo Rush, Voodoo Banshee, Voodoo3, nVidia, Amiga Warp3D, Matrox G200/G400, nVidia RIVA, ATI Rage Pro. Gizmo3D This C++ 3D engine is free for non-commercial use. It is available for Win32, Linux and IRIX. It provides for scene management and presentation, 3D graphical nodes, multipass rendering and effects, selection and collision detection, animation control, etc. LibXMI You can use this C library for rasterizing 2-D vector graphics primitives such as wide polygonal lines, circular and elliptical arcs and filled polygons. It does not interface with the screen directly, rather, it draws into a user-supplied matrix of pixels. Platforms supported include Linux, FreeBSD and Unix systems. However, the author notes that it should be possible to compile it and install it on any system with a C compiler. Scitech MGL SciTech, makers of the well-known Display Doctor, has released its Scitech MGL library under an open source public license. This full-blown graphics library has loads of features to allow you to write 2D/3D graphics programs (such as games, etc). It has a 3D API that can scale from software-only to full 3D hardware geometry acceleration. You use the OpenGL API to write your program, for the Windows and/or MSDOS environment, thus allowing you to maintain one set of sources for programs on these platforms. The library comes with complete source code, and a host of useful supplemental libraries (also with source code). There are too many features to list here. Check out the website yourself. The website boasts that this library was used in the development of games like WinQuake and Hexen II. ImageMagick ImageMagick is a well known package of libraries and tools for reading, writing and manipulating many image formats, including GIF, JPEG, PNG, PDF, Photo CD, etc. You can create the image, rotate it, resize it, add special effects, convert between formats, and so on. The library is in C, but there are C++, Perl, Java and Python interfaces as well. The object-oriented C++ interface provides integrated support for STL. Supported platforms include Linux, Windows NT/95, Macintosh, VMS, OS2 and "virtually any Unix". LibWMF LibWMF is a library that is able to parse Win16 WMF files and converts them to GIF or fig file formats, or X draw commands for use in an X Windows program. The library is released under the LGPL and should work on Linux. Paintlib Paintlib is a C++ class library that allows you to easily decode an image and manipulate it. It supports, with the help of publicly available libraries, the following formats: JPEG, TGA, TIFF, JPEG/JFIF, Windows BMP, Mac PICT, and TIFF previews in EPS files. It can be used on Win32, MSDOS, Linux, etc. There is apparently an ActiveX control as well. PNG Source Code, Library and Utilities The Portable Network Graphics format is a lossless compression image format. The site features lots of information about PNG and includes source code and libraries for you to implement PNG in your own program. There are even Java and JavaScript versions, converters, and a whole lot of other utilities and source code. JPEGFile A Win32 class library that allows you to read JPEG files into a RGB buffer and saves the buffer as a RGB file or a grey scale JPEG file.

Free Text Search and Replace Software

ReplaceEm
ReplaceEm allows you to search and replace text in files using regular expressions. You can specify a filter for the files in a folder that are to be used (eg *.c and *.html for all files ending with .c and .html), as well as apply the search and replace operation only to files that don't match your criteria. It generates a log for the find and replace operation as well as allows you to specify that the altered file is to be placed in a different location. This is a Windows program.

InfoRapid Search and Replace
InfoRapid is a Windows utility that allows you to search and replace text within ASCII text files, PDF files (with the help of a third party program), HTML files, RTF files and even Microsoft Office files. It also supports regular expressions for pattern matching. The program cannot be used on a commercially used computer.

K-free: Free Search and Replace
This program allows you to find a particular piece of literal text in a set of files and replace it with another piece of text. A backup copy of the changed file is made, as well as a log for the last replacement made. You can specify that the match must be of an entire word, whether the search be case sensitive, and a few other criteria. (It's not regular expression based though, so the criteria you can specify is somewhat limited.) This is a Windows program.

Search and Replace
This program allows you to search and replace literal text or blocks of text in files matching a particular filter. It also has the ability to replace text begining with a particular string (say, ) with a different text. It requires you to have installed the Microsoft .NET framework, and thus to be running Windows.

TextRep
TextRep is a simple text search and replace utility that allows you to replace a one-lined literal text with another piece of literal text in files that you select using their GUI. It is a Windows program.

Agent Ransack
Agent Ransack allows you to search and replace text using regular expressions. This is a Windows program.

AstroGrep
AstroGrep is a Windows GUI version of the Unix grep that allows you to search in files using regular expressions. Note that it does not have replace facilities. Unlike grep however, it includes a GUI facility that allows you to print various aspects of your search results. AstroGrep is open source.

GNU sed
The venerable sed utility is a command line utility to search and replace text from a set of files using regular expressions. It has been ported to a huge variety of operating systems. The link above points to the source code.

Free Java Compilers

Excelsior JET Personal Edition The Excelsior JET Personal Edition is a Java to native code compiler for Windows, that compiles your Java applications into native Windows executables and DLLs. It supports all J2SE 1.3.0 to 1.4.1 platform packages, including AWT/Swing, as well as JNI. There is some support for Java dynamic class loading and your applications can use JNI and Invocation API to interoperate with C, C++ and Delphi, or use COM to interoperate with C++, VB6, VBA (and probably any other language that supports the COM interface). This software requires Windows (obviously). Toba (Java to C Compiler) Toba translates Java applications to C source files, from which you can compile into native executables (binaries). The program is distributed in source code form, and has been tested on Linux, Irix 6.2 and Solaris 2.5. Borland JBuilder Foundation (Java Development Environment) Borland's JBuilder Foundation is available free of charge from Borland's site. JBuilder is a cross-platform Java development environment for Windows, Linux, Solaris and Mac OS. It includes the AppBrowser integrated development environment (IDE), graphical debugging, extensible source code editor, Java compiler, Java visual designers, wizards, and Two-Way Tools with no proprietary markers. Also included is BeanExpress, which allows you to create Java Beans. You can use CodeInsight to "speed up coding and reduce syntax errors". Java 2 SDK 1.3, JFC/Swing, Graphics2D, serialization, JavaBeans, JNI, etc, are all included in the package. You get a non-expiring free licence to use the package to develop personal, non-commercial software. AlphaWorks ADK for Win 3.1 (Java Compiler) Developing Java applications on a Windows 3.1? You'll need this Java compiler from IBM which handles the long filenames, threads, etc, required by Java. Note that development on this compiler has long ceased, although the compiler and documentation are still available. IBM's Jikes Java Compiler Jikes is IBM's Java compiler that is supposedly faster than most other compilers. It is also able to compute the dependency requirements in programs and so generate makefiles. If you want faster development cycles, you might also fancy its ability to perform incremental compilations. Platforms supported: Windows 95/NT, AIX, OS/2, Linux, Solaris Sparc. The compiler handles constructs exactly according to the Java specifications. Source code is available under an open source licence. Sun Microsystems' Java Development Kit (JDK) (Java 2 Platform Second Edition, J2SE) You can get free Java Development Kits for a number of platforms (Windows, Linux, Solaris SPARC, Solaris x86) from the creator of Java. The kits include the Java compiler, Java debugger and Java class libraries for generating Java bytecode. I find this compiler rather slow. GNU Compiler for the Java Programming Language (GCJ) This Java compiler is developed independently of the one by Sun. It is able to generate both Java bytecode and native machine code, as well as convert Java bytecode into native machine code (so theoretically you can even use this compiler to convert a Java program compiled by another compiler into a native binary/executable). It comes with its own class libraries. At the time of this writing, the libraries are still under development and the compiler can only handle version 1.0 of the Java language. It uses the same backend as the EGCS compiler (GNU's C compiler). The advantage of this compiler over Sun's is its ability to generate native machine code - so if you are not coding for the web and simply want to use Java as a programming language, this might be a good compiler to check out. Guavac Java Compiler for RISC OS This is the Acorn RISC port of Guavac, a Java source compiler. You can get the compiler, class libraries and the FAQ from the site. It is no longer supported and the last update was on 24 September 1999. Kiev This compiler is able to generate Java bytecode from extended Java source code with embedded Prolog source code. Extensions to the Java language include a Prolog-like engine, multimethods, parameterized types, closures, multiple inheritance by interfaces and delegation, arithmetic types, type states and cases, overloaded and user-defined operators, foreach statement, switch statements for types, goto, global method and variables, enum, virtual fields, variable number of arguments, packed fields, bit-fields, etc.