In the interest of promoting free
open source initiatives,
I want to explan how it is possible to very inexpensively setup a powerful web server, using completely free software.
Glassblower.Info is based on these technologies:
If you take the first letter from each of the above four technologies, they spell L-A-M-P, and entire books have been written about LAMP technology, including:
- Linux. Specifically
CentOS -- Community ENTerprise Operating System,
a "free rebuild of source packages freely available from a Prominent North American Enterprise Linux vendor."
CentOS conforms fully with the upstream vendor's redistribution policy and aims to be 100% binary compatible.
(CentOS mainly changes packages to remove upstream vendor branding and artwork.)
CentOS is free, and open source. The Linux mascot is Tux the Penguin, and with an overlay of the CentOS logo, he looks like this:
- Apache. The most widely available Web (HTTP) server on the planet. The purpose of a Web Server is to "serve up" web pages, which are requested by client browsers, across the Internet. Apache is open source and promoted by
The Apache Software Foundation.
Apache has an amazingly powerful feature named Server Side Includes (SSI)
which allow Apache to dynamically create web pages. Here is a list of some of the most common directives:
- The most often utilized SSI is to have the same headers and footers on every page of a website,
by utilizing the "include file" or "include virtual" directives.
- Today's date via the "DATE_LOCAL" variable.
- Last modification date of the web page via the "flastmod" element.
- Output the results of a CGI program via the "virtual" directive.
- Even conditional expressions, using the "#IF" directive, which is used, for example, to display an additional message box
at the top of every web page if glassblower.info is running from the backup server,
due to loss of the primary server, which will happen if the server loses its internet connection due to extreme weather, etc.
Netcraft.com has this fascinating
Web Server Survey graph on their website, which shows that Apache is, by far, the #1 web server in the World:
Basically, across more than 85 million websites, Apache is the clear leader, and Netcraft attributes the percentage increase in Microsoft IIS to the continued movement of some 1.6 Million parked domains at the Go Daddy ISP.
- MySQL. An open source Relational DataBase Management System
that uses Structured Query Language
the most popular language for processing (adding, changing, and deleting) information in a database.
More information can be found on the MySQL official homepage.
A few examples of big-name organizations that use MySQL are:
- PHP. An acronym for "PHP Hypertext Preprocessor"
(which is a recursive acronym, much like GNU is a recursive acronym for "GNU's Not UNIX").
The PHP Hypertext Preprocessor is a server-side (resident in a web server) programming language that allows web developers to
create dynamic content that interacts with databases (most often MySQL databases).
By "dynamic content" we are not referring to "flashy" graphic content,
but rather the fact that the web pages are created dynamically based on the contents of database(s).
PHP is cross-platform,
meaning that it can run on multiple operating systems, most often Linux or Windows.
The geographical super-search (and related programs) of Glassblower.Info comprises over 1,500 lines of PHP programs!
A small amount of PERL (another programming language that starts with the letter "P") is also used in glassblower.info.
The easiest way to experiment with Apache, MySQL, and PHP is to
download XAMPP from apachefriends.com
XAMPP can install to your PC in only a few minutes, and you can begin to experiment with these fascinating technologies.
By installing XAMPP, you are turning your PC into a web server, although probably not a publicly-accessible web server
(not avavailable to other Internet users), in part because you probably do not have a domain name registered to your PC.
Additional Software Tools
is a free cool tool written in PHP intended to handle the administration of MySQL over the web.
Currently it can create and drop databases, create/drop/alter tables, delete/edit/add fields, execute any SQL statement,
manage keys on fields, manage privileges,export data into various formats and is available in 50 languages.
It has been downloaded hundreds of thousands of times!
- MySQL Query Browser
MySQL Query Browser is a free and easy visual tool for creating, executing, and optimizing SQL queries for your MySQL Database Server.
The MySQL Query Browser gives you a complete set of drag-and-drop tools to visually build, analyze and manage your queries.
Plus, the integrated environment provides:
- Query Toolbar to easily create and execute queries and navigate query history
- Script Editor giving you control to manually create or edit SQL statements
- Results Window so you can also easily compare and work with multiple queries
- Object Browser enabling you to manage your databases, bookmarks, and history using a Web Browser like interface
- Database Explorer where you can select tables and fields to query, as well as create and delete tables
- Table Editor allows you easily create, modify and delete tables
- Inline Help giving you instant help access to selected objects, parameters, and functions
- MySQL Administrator
is a free and powerful visual administration console that enables you to easily administer your MySQL environment and gain significantly better visibility into how your databases are operating. MySQL Administrator now integrates database management and maintenance into a single, seamless environment, with a clear and intuitive graphical user interface. By using MySQL Administrator you will be able to:
- Achieve higher database availability through improved management
- Reduce errors through visual database administration
- Lower database administration costs through improved productivity
- Deliver a more secure environment through easier privilege management
Just about any old computer can be used, and
ebay is a good source of inexpensive used computers and servers.
(ebay is also a good source of glassblowing items)
The interesting technology about the geographical super-seach is the ability to calculate which studios/schools
are closest to your origin zip code, using math based on converting
street addresses into latitudes and longitudes
-- for both the origin zip code and each studio/school).
In the US, we based the search origin on the center of a zip code, as provided by the US Census Bureau.
To find this public domain data, go to
google and search for "census ZIP 1999".
Normally such "great circle" distance calculations involve heavy use of trigonometric functions
(equation courtesy of Wikipedia)
but with some clever simplification and pre-computations, we can reduce this to a small amount of "normal math"
calculations involving a few additions, substractions, and multiplications (of 6-decimal-digit floating point numbers),
to a reasonable level of accuracy for selecting and sorting nearby schools/studios. As an example,
Bucks County Community College is at GLatLng(40.237889,-74.958449) where
"GLatLng" is a Google Map Function specifying the Latitude and Longitude of a map point.
More information about Google Maps can be found on these websites:
Special Thanks to my friend, security guru, and open source advocate