2007 Google Summer of Code Ideas

Technocation provides educational resources for IT professionals and aspiring IT professionals.  We also provide software that we and others build.  To that end, Technocation is hoping to participate in the 2007 Google Summer of Code with the following projects:
 



MySQL Auditing Software
Building on the concept of the "poor man's query profiler" at http://forge.mysql.com/snippets/view.php?id=15 , this project entails developing a process to listen to network packets to find MySQL packets destined for a server, and keeping a copy of the packet to use in the auditing of what commands are sent to that MySQL server.  This project can accommodate a light or heavy workload, and one or more students.



 
The separate aspects of the software are:
Network process:  process to intercept network packets on a separate machine (in the same network range) for full access to information being sent to the database without causing any load on the MySQL server or interference with the queries.  This process should also parse the queries and be able to store them in its own database.



 
Graphs and reports:  This module will show statistics and graphs.  This is obviously a very open-ended part of the project, great for students who are worried about time constraints on their summer.  



 
Administrative interface:  This will take user input and write to the configuration file that the "network process", described above, will read to determine which queries to keep and which to not worry about.  It will also configure the "graphs and reports" desired by the user.  This may actually be 2 separate interfaces, and therefore can become 2 separate tasks for students.

 



Students should have some familiarity with the different types of DML and DDL.  A semester-long course using SQL will be sufficient; if students have taken a course that used SQL in one part it may be sufficient; apply, because you never know!  Students should also be familiar with at least one of writing programs in Perl, PHP or shell scripting, preference is given to students who know more than one and can make reasonable decisions on what functions are best written in what languages.
 



A Collection of Nagios Plugins 
Nagios is an open source monitoring and alerting system. The task for the student is actually a series of plugins, each which may take a week or more to write.  The most important skill needed is familiarity with shell scripting.  Plugins to be written include:
 
NTP monitor to check that the time is actually sync'd.  This would entail getting the NTP configuration, optionally checking that the server matches an argument to the script,  then checking that the time on the NTP server matches the time on the current box.
 
NFS monitor to check for stale filehandles.  Anything with a ? or flashing to the result of a "df" command should be alerted upon.
 
Web Site checker -- not just a check to see if HTTP or HTTPS is up, but fully configurable with ports.  Should also maintain either an "alert list" of text that indicates problems, or maintain the "correct" version of the page to compare in the check.  Advanced features:  authenticate (via htaccess type auth and application form specific auth), check dynamic pages with GET or POST headers.  This will likely be the bulk of the work and can take the rest of the summer, and the first 2 checks are more "Warmups".
 



RT Enhancements
RT is an open source issue tracking software. Enhancements live and are maintained at:
Each one is likely a separate project, depending on experience.