Below are a few projects I've been considering. If you've found anything similar, please let me know.
Web traffic analyzer
I view web traffic logs to improve my website, not just to look at a bunch of tables. The usual web traffic analyzers do a poor job of answering a number of questions I have, such as:
- Where is my bandwidth going?
- I'd like to see my traffic broken apart by virtual host (slamb.org vs. visualdistortion.org), and by type of access (me, normal web visitor, spider, worm) with pretty graphs. I'd like to see the most bandwidth-sucking files, with different, possibly orthogonal, groupings (all Axamol SQL Library downloads, all downloads, etc.)
- Where are there dead links?
- I'd like to see the top 404s and their top referrers, so I can fix hyperlinks and/or set up RewriteRules. Maybe there should be an option to sort by the latest occurrence, so I can know which ones are still a problem. And exclude or include search engines, as they sometimes come up with silly URLs when looking through my Subversion repository. I don't care much about those.
- What brings visitors to my site?
- I'd like a list of latest searches, with ones from the same IP grouped. (If they have to refine their search to find the page they want, I want to know why.) As well as the usual listing of all searches as a percentage of traffic. And grouped/expandable referrers as a percent of traffic (Google vs. google.com, google.it, google.br, etc.)
- Are visitors finding what they want?
- I'd like to see correspondences between search strings/referrers, entrance pages, exit pages, lengths of visit, and downloads. (Will have to expand this more.)
I'd like the user interface to feature at the top of each page multiple-selection lists of the type of visitor and site, as well as a field to enter the duration. Consequently, it'd have to be dynamically-generated—there'd be too many combinations for static pages, and there'd need to be code to interpret the query strings. Besides, I'd like it to be updated frequently.
So there'd need to be two components:
- An always-running database updater. It'd essentially
tail -f Apache's logfile and insert rows into the database. - A web application. I'd probably run it with code based on Axamol SQL Library and Axamol SAX Pipeline.
I could distribute it with a .war, some PostgreSQL setup files, a manual, and the log analyzer .jar. Assuming there's already a PostgreSQL database and a servlet container running, it'd be easy to install.
Exercise/diet tracker
I'd like an integrated program that can help me watch my diet, plan biking/running routes, and track my progress. It'd need to have a database of nutritional information and track calories injested/expended. It could have a place for me to enter my resting heart rate, weight, and body measurements, then give graphs of these through time. It could also generate graphs of my distances/times over time. Ideally, it would be able to make maps of biking/running routes, with distances, elevations, and traffic information. It could even interface with heart rate monitors and automatically get my distance/time information, as well as type of activity. (If my Cat-Eye monitor returns a speed, I'm biking. Otherwise, running.) It could compare heart rate throughout the workout to the map I've given it and wind information to see where I was lagging.
There are a few existing diet tracking programs, but they tend to on losing weight. Not too helpful. I want to make sure I'm getting enough calories for the exercise I'm doing.
SQL Query Monitor
Most of the existing SQL query monitors suck. Especially Oracle's SQL*Plus Worksheet—in typical Oracle fashion, its user interface is awful in every way. I'd like to design a good one. I've got a lot of notes about what makes the perfect SQL query tool. In the meantime, the best I've found are:
- SQuirreL SQL has tabs, a ResultSet widget with alternating colors, and a cancel button for long-running statements.
- DBTree has a beautiful workbook output format.
- JFaceDbc is an Eclipse plugin. It's a true IDE for SQL—hovers that show you table definitions, auto-completion of table names, etc.
Universal remote control
When I watch a DVD, I need to switch between three different remotes—the TV remote, the DVD remote, and the stereo remote. There are a lot of "universal remote control" products out there, but none quite what I want. They all seem to make me switch between the different sources with a button. I want to have the TV, stereo, and DVD player switch on when I enter the DVD tab. I want the DVD tab to have the stereo's volume control, not the TV's or the DVD's which I never use.
The hospital bought me a Pocket PC with, among other things, 802.11b and an infrared emitter. I'd like to put it to use to solve this problem.
There are a lot of other things I could do, too. Instead of copying physical remotes (as most Pocket PC remote applications seem to do), I could use smarter widgets. For example, I could replace the numeric channel entry buttons with a poplist of the channels I actually get. I could even have a TiVo-style listing of what's on, using the 802.11b connection to fetch the information from Yahoo.
Financial software
I'd like to have a single Quicken-like package I can use on OS X, Linux, Windows, and my Pocket PC. gnucash is the closest existing thing, but it doesn't have a Pocket PC version, and I don't think it has a real native UI for OS X. I could work on adding those. Syncing between the Pocket PC and the desktops would probably be the hardest part.
Text editor
I'd like a vim-like editor that integrates well with Cocoa. It looks like yzis is designed to be ported to new GUIs easily.
Copyright © 2003–2005 Scott Lamb <slamb@slamb.org>.