2/27/2001 -- I fixed a small bug in buoyBrowser where the date strings would overwrite each other if there was so much missing data that they pushed together.

2/21/2001 -- I added to the buoyBrowser Java code to force a repaint on mouseEnter. I did this to clean up tearing of the image after scrolling the browser. Since repaint causes an annoying flash I do some timer tricks so it doesn't happen during normal use where the mouse might stray out of the applet briefly.

2/7/2001 -- I fixed the data gathering code for the Java buoyBrowser so it won't update the site with a truncated file.

1/28/2001 -- I see I REALLY haven't been keeping up these notes... I guess that's because the project has been mostly operational through 2000. I did develop a new display for directional NOAA buoys using GIF images. Than in 12/2000 I developed a Java directional buoy gadget and those project notes are at That one works for CDIP buoy but before summer I hope to have a data converter so we can watch south swells hit SW Hawaii.

I just fixed a bug where during data rectification, if the first line of a file had "MM" missing data too far to the right it would be replaced by null which, today, made the air pressure show up as the swell period!! last[] wasn't initialized for the full line length of all files -- now it is. Rare bug but an easy fix.

12/7/99 -- I added day-of-the-week to the dates printed on the buoy and spec images.

9/25/99 -- I added a feature to trim the data at 101 hours so all the buoy images will be just small enough to fit a 640 pixel wide screen. This is nice for my buddies with old laptops but I really had to do it when the Weather Service stopped trimming their data. Looks like they need to fix their timing function.

7/11/99 -- I'm out of school for the summer but I got a programming job so I still don't have much time to work on my own projects, but... I did add the beach wind reports extracted from the SAN FRANCISCO BAY WIND PATTERNS model.

6/27/99 -- I finally got around to changing to a summer buoy pattern.

5/29/99 -- I haven't had time for anything but maintenance during the semester but I have a list of changes I'll be making to the site. Goes like this, more or less in order of easiness and so likeliness of getting done sometime soon:

o Add the latest Weather Service discussion text to the page
o Add interpage navigation buttons.
o Add a how to use this site/ what's it all mean page.
o Change rectify to add blank lines if the latest reports are missing. This way things will line up on the right when one has missing data and you can tell when the WS has a problem and I'm still updating.
o Do something to keep the right hand side of graphs inside a 650 pixel screen for laptop users (Change the image making code as a last resort).
o Add spectrum display to main swell image.
o Add predicted swell direction to swell image
o Build code to work with CDIP buoys and work out a directional display method.
o Other stuff I can't think of now...

4/8/99 -- I added a $DAYLIGHT_SAVINGS flag to buoyTool. The graphs were an hour off since Sunday and I just noticed yesterday *blush*. It wasn't hard to fix but it should have been in there already

4/6/99 -- I added the tide time correction table

2/14/99 -- I added the feature to graph3 that draws the grayed bars for missing hours of data. The hardest part was deciding what colors to use.

2/9/99 -- The Weather Service ftp site has been much less available the last few weeks so I took some time to make buoyShow's downloading code more robust. I implemented a retry on error system so it will now try up to 3 times to get each file and to be nice I added a 30 sec. wait between file requests.

2/6/99 -- I found a version of rasdial for W95 on a Russian Perl programmers web site so I can finely move buoyshow to my laptop and turn my workstation off once and a while.

2/2/99 -- Made a little change to windvane so the red fill in the beaks would start one pixel further out since I got a red circle instead for a wind that was exactly west... strange.

1/30/99 -- I changed the rectify code to replace single missing data items (which are replaced by MM in the NWS files) with the last good value. It would be good to interpolate here like I do for missing lines but I don't have time this morning.

1/22/99 -- I added experimental swell spectrum images. When I revisit this part of the project I want to try to remap the data to favor the longer end of the spectrum and use fewer colors so the changes in the bands will be clearer. For now I'll be interested to see what this display will do as different swells roll through

1/16/99 -- I added the buoy number with the name on the buoy graphs so you can look at the map and find the buoy... I still need a table with buoy name and numbers.

1/15/99 -- Put day-of-week into the tide display so it's easier to tell which day is which (and people may not be used to having yesterdays tide in a display)

1/14/99 -- Finished doing the maps of the buoy locations. It was more work then I planed (just like the rest of it is ;). It came out fairly well though and I learned a lot of Photoshop doing it.

1/12/99 -- Discovered an interesting Y2K bug in my graphing code. This is what I posted in a software forum:

 I ran into my first real life Y2k situation.  I'm crunching on some
 Weather Service data files using Perl and a JulianDay module to do
 some time and date math and I got this beautiful error message:

 "warning: julian date 1757228 pre-dates British use of Gregorian calendar"

 Sure enough the data file used 99 for this year.  The math was working
 out OK too in that I got the right days and months back in the year 99.
 Trouble is, next year they will either put in 00 or 2000 (or ???).  I tried
 the year 0 like this:

    inverse_julian_day(julian_day(0, 1, 12))

 and got back (0, 2, -15) which isn't going to do. 2000 works fine though.
 So I put in this without thinking about it too hard:

    ## Y2K hack since they put year 99 in the data file
    #  and I don't know what they will do next year but lets
    #  hope it's 00 or 2000! Then this should be good till 2099

    $yr = "19" . $yr if $yr < 2000;
    $yr = "20" . $yr if $yr < 99; 

1/10/99 -- This morning I put in a safety and copyright notice, and changed the colors in Tide_graph. Tonight I changed buoy image code to scale the image height to the longest bar in the graph to cut down on wasted white space and download time. Before, I had to leave room for a 25ft 25sec swell which is rare (but some day it might still not be enough!) I also added two lines of text with the latest swell and wind -- Nice evenings work.

1/9/99 -- Added the tide display to the surfcaster page.

1/7/99 -- I left my workstation on for 4 days while we were out of town and it worked fine 'till the water boys cut a big phone cable. Modem line out for a few days (!), voice line on another cable so I limp along. Took my laptop along to AZ and worked up a tide image program which I will deploy in the next few days

1/3/99 -- I have auto-update and cron working fine on my NT box. I almost have it on my laptop but due to the non-scriptabiliy of W95 DUN I can't get it to hang up and then redial the next time due to a button that has to be clicked. This is almost there.

12/28/98 -- Implemented auto-upload so updating the buoy site is now a one click operation. The plan is to automate the system using my laptop which can be left on 24 hours a day without the noise or power waste of my workstation

12/22/98 -- Added wind speed and direction display. Number is wind speed in knots, red "beak" points in the direction the wind is going. Also started using "rectified" data where missing hourly reports are replaced with sensible values so there will always be 24 bars for each day. I'm still working on the look.

12/20/98 -- changed to another buoy data table (the .txt one) that has just one height and period entry and also has wind data which I will be using.

12/13/98 -- I changed the 5 unit horizontal lines to be inside the bars and in the red period bars they now start at the top of the blue height bars making it easier to count out the value... Not sure I like the way it looks as much though.

This first effort gets data from the weather service tables that are reduced from fft analysis of the raw sensor output. I will be looking at the other tables available with the full spectral data intact. I'm hoping to be able to extract a "surfability" index of some sort, i.e. try to separate a clean swell from an equally big but messed up storm surf.

Ideally the graph images would start at the same time on the left and times should line up with each other. Problem is the buoy data is not synchronized and has gaps where no data is collected. I may need to look at all the data and start at the oldest common time and substitute sensible values for massing data. Maybe a better solution would be to fold new data into my own rectified database so I could always start as far back as I want and the image creation code won't have to do much error checking.