Thursday, August 31, 2006

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).