Posts RSS Comments RSS 132 Posts and 25 Comments till now

Archive for September, 2004

45 days later

In the early summer I took the time to redo the graph generation code for our bandwidth graphs. The old setup was some custom C code, linking to the GD library. We are now generating them in PHP using the jpgraph package. The new way is much more flexible, you just pass arrays of data to jpgraph and the rest is magic.

So back in August Nick noticed a bug in the bandwidth graphs when displaying weekly data. I was bored in class today, and scribbled down some notes about what interval to display ticks at. It was a pretty easy fix, once I had all intervals calculated.


Styx weekly graph
New weekly graph

I think I’m doing an excellent job of clogging up the planet with images.

Also, comforting to hear than Nick is scared.

rate limits

So it’s probably a bad idea to have the router rate limit our proxy server.


bandwidth graph for odin
Guess when the limits were removed?

We are now pushing an impressive amount of data through the proxy. Just another remind that we need to push for the rate limit changes. At least once the madness of opening has settled down.

IE is really, really dumb

In an effort to further convince Internet Explorer to use our WPAD proxy autoconfiguration settings, I added the proper option to our DHCP settings.

        option wpad code 252 = text;
        option wpad "http://www.example.com/wpad.dat";

IE for some reason is a big dummy head and chops off the last character of the URL. I’ve been seeing quite a few lines like this in the webserver logs on our registration server.

10.242.7.194 - - [19/Sep/2004:13:53:54 -0700] “GET /wpad.da HTTP/1.1″ 302 - “-” “Mozilla/4.0 (compatible; MSIE 6.0; Win32)”

So by putting a newline at the end, you can trick IE into obeying a standard…

        option wpad "http://www.example.com/wpad.dat\n";

Thanks to the Squid Faq for clueing me into that.

TekHelp training, day 1

Free food in the dining halls is always nice. The first night of TekHelp training went well. Nick and Luke did a nice overview of the registration process. I think the TekHelps understand our reasoning for all the registration requirements, and the benifits they will provide.


Nick talking in front of the projector screen
Nick and Luke explaining the registration process and proxy settings


Nick talking in front of the projector screen
A bunch of the staff sat in the corner of the room hacking away on various things on our laptops

The staff seems to be surviving the ordeal of training fairly well.


Nick talking in front of the projector screen
Michael (my gunn) and Lawrence snapping photos

All this week we have been working like crazy to get the filters ready. Thanks to the swifty support of telecom we have make excellent progress. The filters are running in Bond Hall, with live management IPs. Mr. Router Man is ready to give us the live IP addresses that the filters will need for production. We are going to make a try at getting them in the networking loop this weekend. Nick and I had a very nice experience testing the filters on Thursday. After they were installed we were able to send data through them on the test network. You get a very odd feeling when you are plugging your laptop directly into ports on a brand new Cisco router. Redundancy seems to work nicely, but we were experiencing up to 3 second delays for the failover to happen. Reading the ifconfig man page specifies that the default timing for CARP notifications is 1 second. The algorithm for detecting a failure of the master interface is 3 times the advbase + advskew settings. So 3 seconds would make sense. I’m pretty sure we can tune the notifications to be quicker.

Last minute hacking

Just managed to get SLUICE actually working. I converted all of it’s weird internal database handling into low-level perl DBI calls. Messy, but it works. So we will have working limitation graphs soon. Also, SLUICE doesn’t limit servers again.

We found out today what the bandwidth will be for the 2004-2005 school year. I guess it’s still supposed to be a surprise, at least until we verify that the link is working at that speed. This little detail we learned today is basically the icing on the cake. After preparing all the server and networks tricks we can to minimize viruses and other “junk traffic” we now find out that we will have a comfortable amount of bandwidth.

This should be a great year for Internet in the residence halls. I can’t wait to sit back and watch all of our tools beat the network traffic into submission.

cvs commits from today

Did quite a lot of real, actual work today. I coded for most of the day again. The backend to the registration process is getting more robust. I have made changes to the DB structure and the various shared classes that operate on them. Should be more efficient, and cause less anomalies.

This finally solves the race condition when the next available IP in a subnet is picked. There is a brief period before the IP is actually recorded as registered, and other students could grab the same IP to register. The new holding table method insures that only one IP is picked and registered at the same time.


1.4 +5 -3 styx/frontend/admin/links.php
- condense something
1.5 +1 -1 styx/frontend/admin/links.php
- fix that one time that I totally <BAD WORD> up quotes in PHP
1.10 +7 -1 shared/restek.css
- CSS for form in sidebar
1.11 +5 -1 shared/restek.css
- OMG style the form more
1.6 +6 -0 styx/frontend/admin/index.php
- add in box for getting an IPs graph
1.13 +2 -1 styx/frontend/admin/graph.php
- fix infinite loop when there is no data in the DB for that time period
1.1 +11 -0 sluice/log.php (new)
- add a php script to ACTUALLY <BAD WORD> MADE THE STUPID DB INSERT.
1.91 +1 -3 shared/sluice/Sluice.pm
- instead of making a simple SQL insert, call a different script, in a different programming language to make the SQL insert.
1.4 +12 -9 styx/frontend/admin/sluice/config.php
- use db clas s
1.2 +0 -11 sluice/log.php (dead)
- move file
1.1 +11 -0 sluice/cronscripts/log.php (new)
- move file
1.29 +5 -5 shared/styx/limitHistory.php
- use seperate config db handle
1.10 +1 -1 styx/frontend/admin/sluice/graph.php
1.39 +3 -2 styx/frontend/admin/sluice/numLimited.php
- fix, by using seperate config db handles
1.9 +2 -2 CVSROOT/cfg_local.pm
1.8 +2 -1 CVSROOT/rcstemplate
- don't show tasktrack stuff
1.68 +75 -0 shared/Ipreg.php
- new holding code
1.28 +2 -31 ipreg/hallserver/frontend/register.php
- OMG redo pick IPs. We are now awesome.
1.69 +2 -9 shared/Ipreg.php
- correct type detection in register();
1.70 +1 -1 shared/Ipreg.php
- )) is not a line ending ); is
1.18 +5 -0 shared/RegException.php
- add dummy getPidnum function
1.19 +1 -1 shared/RegException.php
- exceptions are pidnum 1
1.71 +1 -1 shared/Ipreg.php
- setName(), not checkName()
1.72 +18 -1 shared/Ipreg.php
- use correct type names
1.27 +17 -10 ipreg/cronscripts/makeDhcpConfig.php
- perform holding
- sort by ip
- don't check for blank mac address
1.30 +1 -1 ipreg/hallserver/frontend/register.php
- fix Student registering

Next »