Technology Credits
In the old days of software development, engineers had to solve a lot of basic computing problems. Junior engineers often got to cut their teeth writing collection algorithms. Collection algorithms are means of organizing related data. Obviously, that kind of activity is far removed from the actual business goals.
Nowadays, a lot of the basic code has been packaged into libraries and frameworks. The open source movement has played a big role in driving down the price for them to free. The open source movement in contrast to commercial vendors is a world wide collaboration of engineers pooling the useful code together. The original pooling effort has created a quasi socialist movement, where engineers will build software for free to gain recognition, satisfaction, and plain fun. Over time, increasingly money has found its way to the pro bono folks in form of consulting dollars and strategic acquisitions by technology companies.
Below is a list of software technologies that make up the foundation that Play Posse is built on.
- Java is basic programming language. It has one a lot of popularity during the dot com days as language of the web
and challenger to Microsoft domination. The quintessential position of language as the web has perhaps been handed
to PHP and Ruby, which are much easier to learn and fuel the web amateurs and small to medium sized web site. Java
has established itself as a more sophisticated and powerful platform for larger e-commerce, enterprise, and online
services.
java.sun.com - Tomcat is the flagship of Java based web servers. A web server is run on a computer connected to the Internet at
all times, so that regular people can view web pages in their browsers that come from it.
tomcat.apache.org - Spring offers an inversion of control and web framework. To make a comparison, imagine that Java is your generic
stock car. Spring are the modifications to your car to specialize it for rock crawling. Okay, you had to know
about off roading to know about rock crawling :-).
www.springframework.org - Hibernate is an object relational mapping. One way to look at it is that code is generally written in an object
oriented paradigm. Databases generally work in a relational paradigm. While you may not know what those paradigms
are, note that they are somewhat incompatible. In the past, they required engineers to bridge the two by writing
SQL statements. SQL is a database language. Hibernate automatically, generates the SQL statement. If all of that
was too complicated for you, consider it the play card that takes days of busy work out of your development
schedule.
www.hibernate.org - JCaptcha is a Java implementation of "Completely Automated Public Turing test to tell Computers and Humans Apart",
short captcha. Basically, there are many bad people out there, who will try to abuse your online service to place
advertising for penis enlargement, porn, illegal software, and scams. They use automated scripts to overwhelm
anything in their path. Therefore, all over the web images with funny text has appeared to. The text is
(hopefully) too hard for the scripts to read, and (hopefully) still possible for humans to read, thus weeding out
the malicious automated scripts.
jcaptcha.sourceforge.net - FCKEditor are text boxes that allow formatting of the text. HTML the basic formatting of Internet pages started as
a personal project of researcher Time Berners-Lee to organize his personal notes. Thus, HTML is very simple.
FCKEditor does a lot of smart stuff to put word processing functionality inside of a text box.
www.fckeditor.net - Log4j is a logging library. Traditional desktop programs show up in a window on your desktop. Web applications run
on a web server, however the window shows up on the desktop of a lot of users, which the person running the web
server can't see. Thus, a web server is 'invisible' software for the person running the software. To know, what is
going on, what the users are doing, and most importantly, when problems happen, the software writes to a log. The
log is a long document of text, where the software says, what it is doing. It's kind of like telling a cop, what
you are doing to not freak him/her out with a sudden move: "I'm reaching for my glove compartment to get the
insurance paper." A beautiful example of a log is found in the TV show 'Battlestar Galactica'. The hybrid is the
a beautiful woman lying in a bathtub to act as the master controller of the space ship. Her rambling is considered
to be either meaningless or divine word. Whatever she is saying is what software would write in a log.
logging.apache.org/log4j - Google Analytics is a web traffic analysis reporting tool. It is a free service from Google that creates reports
to see traffic and site usage pattern. It is a lot of fun to stare at it all day long to see, if anyone looks at
your web site, as any fresh web sie owner can attest.
www.google.com/analytics - Google AdSense is an online advertising program. It takes a few minutes to sign up. It takes a day or so to get
the account set up. And, ads are showing up on your web site. There are many companies offering such a service.
The Google differentiator is that they use their search algorithm to serve ads relevant to the page content.
Write about Hawaii and travel ads show up.
www.google.com/adsense - Google Map API is a JavaScript API to put map information on your site to direct people to your business
location.
www.google.com/apis/maps - Stock.xchng is a service to find free stock photography. If you need photos with particular content quickly
and cheaply, get stock photography. Stock photography are libraries of canned photos to skip the photo shoot.
Stock.xchange is a free online service for photographers and photo users to exchange photos without having to
pay a company in between.
www.sxc.hu - Lucene is a search library. It powers anything on the site that requires searching. The hibernate search
integration is excellent and easy to use.
Apache Lucene - Quartz is a scheduling library. It allows tasks to be scheduled at a certain time. For example, there is
task that checks once a day, if teacher listings may be outdated. Two cool things about Quartz: (1) It's
integrated into Spring. (2) It has a cron scheduler. Cron is the powerful scheduling of Unix and Linux
operating systems.
Open Symphony Quartz - Velocity is a template notation and library. The cool thing is that it comes integrated with Spring and
makes creating e-mail text easy. The bad thing is that, I'd rather be using JSP notation to create e-mail
templates. That way the template notation for the whole system would be consistent.
Apache Velocity - POI-HSSF is a Java library to read and create spread sheets. Play Posse uses it to export student's
contact information, so that teachers can create mail merges with the data. POI-HSSF stands for stands for
Horrible Spread Sheet Format.
Apache POI Project - CardMe is a Java library to read and write contact information in the vCard format. Play Posse uses
it to import/export student contact information from/to Outlook.
CardMe - script.aculo.us is a JavaScript library that makes AJAX easy. Play Posse uses it to auto complete
fields.
script.aculo.us - Apache FOP is an XSL-FO implementation. XSL-FO is basically an XSLt transformation followed by a
formatting objects processor (FOP) to create an image output. Play Posse uses Apache FOP to create PDF files
with stationary for printing: Business cards, flyers, attendance sheets etc.
Apache FOP - JavaCC is a parser/compiler generator. Play Posse uses it to create a parser that translates the
wiki syntax into html.
JavaCC
