What software tools do we use to build the web site? What do we use to build the portable applications? What is used for deploying the web site and serving it to the world? How do the portable applications communicate with the XOWComics.com central data repository? These questions and so many more can be answered here. Learn about the tools and technology used to build all of the parts of the XOWComics.com web site and the suite of XOWComics.com portable applications.
PostgreSQL is the database used to store the core data used throughout the XOWComics.com web site. PostgreSQL is by far the most respected database tool in the world and is quite arguably the most robust database tool available. Best of all, PostgreSQL is completely open source and free to use by anyone in the world under the GNU Public License.
PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. It runs on all major operating systems, including Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), and Windows. It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages).
There is a wonderfully thorough yet compact comparison of PostgreSQL to MySQL. The key item to note in this comparison report is the responsiveness of PostgreSQL compared to MySQL when the number of concurrent users increases. Like any database, the total continuous load on the database may have a dramatic impact on the responsiveness of the end application. With MySQL, there is a clear failing when load concurrency is tested; oppositely, PostgreSQL is very well behaved with an increasing load concurrency. You can read this report direct on the Tweakers.net web site or you can read a PDF version of the report. Note: this report was actually part of a larger series of tests comparing different servers with different processors, but this part dealing with databases is very informative.
A detailed description of comparing PostgreSQL to MySQL is also available directly from the PostgreSQL Performance Wiki.
There are literally hundreds of performance reports available online. Merely doing a search for "postgresql comparison performance test" on Google will give you load of results for you to browse through at your leisure.
PHP (recursive acronym for "PHP: Hypertext Preprocessor") is a widely used open source general purpose scripting language that is especially suited for web development and can be embedded into HTML. PHP can be used on all major operating systems, including Linux, many Unix variants (including HP-UX, Solaris and OpenBSD), Microsoft Windows, Mac OS X, RISC OS, and probably others. PHP has also support for most of the web servers today. This includes Apache, Microsoft Internet Information Server, Personal Web Server, Netscape and iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, and many others. For the majority of the servers, PHP has a module, for the others supporting the CGI standard, PHP can work as a CGI processor.
Furthermore, PHP allows the choice of using procedural programming or object oriented programming, or a mixture of them. PHP 5 introduces a complete object model within the language. And, with PHP you are not limited to output HTML. PHP's abilities includes outputting images, PDF files and even Flash movies (using libswf and Ming) generated on the fly. You can also output easily any text, such as XHTML and any other XML file. PHP can autogenerate these files, and save them in the file system, instead of printing it out, forming a server side cache for dynamic content.
One of the strongest and most significant features in PHP is its support for a wide range of databases. Writing a database enabled web page is incredibly simple. PHP also has a database abstraction extension (named PDO) allowing transparent use of any database supported by that extension. Additionally, PHP supports ODBC, the Open Database Connection standard, so connecting to any other database supporting this world standard is supported.
PHP also has support for talking to other services using protocols such as LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (on Windows) and countless others. You can also open raw network sockets and interact using any other protocol. PHP has support for the WDDX complex data exchange between virtually all Web programming languages. Talking about interconnection, PHP has support for instantiation of Java objects and using them transparently as PHP objects. You can also use our CORBA extension to access remote objects.
PHP has extremely useful text processing features, from the POSIX Extended or Perl regular expressions to parsing XML documents. For parsing and accessing XML documents, PHP 4 supports the SAX and DOM standards, and you can also use the XSLT extension to transform XML documents. PHP 5 standardizes all the XML extensions on the solid base of libxml2 and extends the feature set adding SimpleXML and XMLReader support.
The Apache Software Foundation is a non-profit corporation that supports a wide variety of open source software products. Apache, the web server (technically, the "HTTP Daemon" or "httpd"), has been the most popular web server online for almost 15 years. Apache is considered, deservedly, the de facto standard for HTTP servers in the world. The reliability, security, and extensibility of Apache make it an ideal platform for serving web sites.
Apache supports a variety of features, many implemented as compiled modules which extend the core functionality. These can range from server-side programming language support to authentication schemes. Some common language interfaces support Perl, Python, Tcl, and PHP. Popular authentication modules include mod_access, mod_auth, mod_digest, and mod_auth_digest, the successor to mod_digest. A sample of other features include SSL and TLS support (mod_ssl), a proxy module (mod_proxy), a URL rewriter (also known as a rewrite engine, implemented under mod_rewrite), custom log files (mod_log_config), and filtering support (mod_include and mod_ext_filter).
The overall flexibility, security, reliability, and total cost of ownership make it obvious why Apache is universally accepted as the standard for web serving software. And, that makes it a real "no-brainer" for it to be used for serving the XOWComics.com site.
The Firefox web browser, developed and maintain by the Mozilla Foundation, is an open source browse designed for consistency across platforms, standards compiancy, security, reliability, and modern convenience features. For almost a decade through the late 1990s and early 2000s, closed browsers created and maintained by private corporations competed for market share on the web. This time frame and the conflict that existed amongst these companies is now known as "The Browser Wars".
Though there were earlier efforts to make an open source browser that kept the average user from being tied to any individual corporation, it was not until the Mozilla Foundation was created and Firefox was released that a serious open source alternative web browser finally had a chance. And, to a large extent, Firefox has flourished since its first release in 2004.
The robust performance and absolute adherance to standards compliance makes Firefox a wonderful web browser to use during development of a web site. Firefox also has extensive customization capabilities, especially as it relates to technical tools for developers. With the addition of these technical add-ons to Firefox, it then becomes the most ideal tool to develop and test web applications. Of course, other browsers are also used to test the XOWComics.com site before deploying each release, but the standard used during conception, development, and initiale testing is Firefox.
Is any explanation even needed why Apple hardware and MacOS X is used as the serving platform for XOWComics.com? In terms of servicability, reliability, security and total cost of ownership, nothing can beat going with Apple for a serving platform.
It must be remembered that when working with MacOS X, we are really working with Linux. The underlying operating system is just a particular implementation of Linux, the same OS that has received so much positive press in the last decade for being open source, reliable, and secure. The difference with using MacOS X is two-fold. First, you get the Finder, which is basically a GUI on top of the operating system. Second, Apple's vigourous testing and security ethos provides for the most secure, reliable environment that can be used for serving web applications.
TCO, or "Total Cost of Ownership", has always been a question for the Apple platform, too. Most would even credit this factor as being the leading cause for the dominance Windows platforms have enjoyed for so long (well, throw in a great deal of intertia in the business world). There is little dispute that the initial cost of hardware and software is usually more expensive when you go with Apple as a platform. But, once the length of viability, upgrade cost, and most importantly the somewhat more intangible costs associated with platform servicing, platform support, data integrity and security, etc., then Apple as a platform becomes the clear and undisputed leader.
A good, concise article dealing with Apple's TCO can be found on the Macsimum News web site or you can read a PDF version of the report. Doing a search for "apple total cost of ownership" on Google will provide literally hundreds of articles and studies to this effect.