My Journal

Week One ¤ Week Two ¤ Week Three ¤ Week Four ¤ Week Five
Week Six ¤ Week Seven ¤ Week Eight ¤ Week Nine ¤ Week Ten/Eleven
Sunday: Today I walked into downtown Amherst. It wasn't too far and the weather was gorgeous. I walked around enjoying the atmosphere - downtown Amherst is a very nice area with little shops and restaurants - and bought a new CD. Then I sat out on the common to read in the sunshine, and to my surprise and delight, there were local musicians playing outside on the grass. It was a great Sunday afternoon.

° ° ° ° ° ° ° ° ° ° ° °

Monday: Today I made the switch from a Windows machine to a Linux machine so that I could connect the applet to the database. It all worked well, which was a big relief. I then depracated about fifteen files that were no longer necessary now that the database, which now holds the Relationships File, was working - such as the files that used to open, close and load the relationship file that is now stored in the database. I also tested the applet and found that a few large graphs that threw an OutOfMemory exception before, now work with the database in place, and reworked the Zoom In and Zoom Out functions in the Applet so that they work. Then Jane and I tested the application to try to find the infamous memory leak that had been giving us trouble since I arrived. After using many combinations of depth and number of paths, we think we finally figured out what the problem is. The problem arises most when at depth 1, not at depth 50 like we had hypothosized, so we think that since at depth one the nodes drawn in a vertical line while at depth fifty the nodes are spread across the window, perhaps we're maxing out the height capabilities of graphPanel. So now we're thinking about different ways to draw the nodes at lower depths.

° ° ° ° ° ° ° ° ° ° ° °

Tuesday: Today I rewrote the five Draw Neighbors Only functions, as well as the Show Originating Prefix function, to use the Retriever and not the Reader (so they'll use the Database and not the text files when we add the Bgp Table to the database and connect the applet to it). We then configured the applet to use the Database for the Bgp Table and once that was loaded I depracated ten files that had been used to read the bgp text file.

° ° ° ° ° ° ° ° ° ° ° °

Wednesday: Today I fixed several functions which when cancelled threw an exception instead of just returning to the applet. Also, Jane and I teamed up and wrote a longest prefix match algorithm. This alogorithm maps a given IP address to the AS that owns it, however it maps any IP address, not just the originating IP addresses that are stored in the database. At first glance, we thought this was going to be difficult to write, but after some internet research and planning it out on paper, it actually wasn't too hard. This afternoon we also had a meeting with the research group and Professor Gao.

° ° ° ° ° ° ° ° ° ° ° °

Thursday:Today I configured the applet to use the longer prefix match algorithm that Jane and I wrote yesterday as well as the algorithm which maps an AS number to it's commercial name which Jane reworked to use the database to retrieve the names. Now it is possible to map an IP Address to it's AS number and name or just an AS number to it's name. It is also possible to visualize from the source to an AS number or to an IP Address. By combining these functions and having the information stored in the database, I was able to depracate ten more classes.

° ° ° ° ° ° ° ° ° ° ° °

Friday: Today added the get commercial name functionality to both the right-click pop-up menu and the main menu. I also reworked the menus so that what was once under the title of mapping was now grouped in with the information. This was done because I then configured all the information menu options to take either an AS number or an IP address as input, so there was no longer any distinction between mapping from an IP address and extracting information about an AS. I then fixed a few kinks in the Visualize neighbors only functions, such as ensuring the graph was drawn in a circle and that the right type of edge was being drawn. I also arranged for all of these functions to take either an IP address or an AS number as input - so this capability is now standard for every function called. I also took care of some user-friendly house-keeping, such as setting default inputs, ensuring the graph is completely drawn without needing the mouse to be clicked and having functions clear the screen before they draw on it.

° ° ° ° ° ° ° ° ° ° ° °

Saturday:Home for my sister's graduation party!