Feb 23

I continued with my work in developing the search queries which would give our customer the data he wanted. Running time for the original all-inclusive query was around 4:30. I spent most of my time attempting to improve this. After dropping some of the tables from the search and using some Oracle specific tricks, I reduced the runtime for the query down to less than 15 seconds. I learned during this that oracle has a “Distinct” keyword that it can apply to a select statement, which allows the db to automatically filter out duplicate entries.

The next step will be to integrate these queries with Oracle Discoverer Administrator, which is sort of a GUI frontend to database code. It creates a layer of metadata that allows the user to reorganize database tables into useful views without actually affecting the database. A business area generated here can be used by Oracle Discoverer Plus to generate reports. I’ve already done some of the work here, which I’ll continue on next Wednesday.

Feb 19
honeyB Movie
icon1 benford | icon2 School | icon4 02 19th, 2008| icon3No Comments »

I’ve got a quick movie ready for anyone who wants to see how my senior project is going. Blue bees bring in food from the outside world and green bees deposit the food into honeycomb cells.  

Feb 16
Feb 15th at Cleanwater
icon1 benford | icon2 Internship | icon4 02 16th, 2008| icon3No Comments »

Well, it’s another Friday and that means another internship day at Cleanwater services. Today, since my previous task was completed, I was assigned to do a new project. One piece of software we use to compile reports about equipment and water services is Tabware. Unfortunately this solution was not working for one of our customers at all.  We use some Oracle database software called “Discoverer” to build front ends of our databases for customer use. It is somewhat like a highly sophisticated tool for generating views. I spent a good portion of the day working through example code in the manual. By the end I had a working “Business area” which could be used by another Oracle program to generate end-user queries. I also acquired experience with Toad, a program similar to MySqlAdmin, but for tailored for Oracle databases. Before I could generate any detailed reports I had to bring together the relevant information from at least a dozen different tables, typically with ambiguous relationships. The end goal would be to get all information about work orders paired up with equipment used during those work orders.  Fortunately for both myself and everyone else, a virtual machine was set up for testing purposes, so regardless of how taxing my queries are, they will not affect anyone else’s work. This was a Very Good Thing as I found out that a select * across half a dozen joined tables, totaling several hundred thousand records each can bring a modern desktop system to a standstill.Oracle 10g was deployed on my virtual server. I connected to the server using Microsoft Remote Desktop connection.

Feb 9

I started up my internship at Cleanwater Services again for the spring term. Cleanwater Services deals with maintaining the quality of the local water supply, which includes finding pipe breaks and sending crews out to fix them. They also do a significant amount of software development which is where I am involved.

After the fall term ended and before I went on my trip to Japan I started work at Cleanwater Services. Under the guidance of my managers I was assigned to update and improve a piece of software. The software in question was a program to record still frames from webcameras that were watching a construction site for some new water treatment equipment. The old program was unweildy and when one aspect of the picture taking process failed, the entire program failed, sending email every minute.

My task was to split the program into three discrete modules: An image capturer, a compiler and and archive cleaner. The image capture module is meant to grab images from the webcams and save them in an archival location. Snapshots are saved for different time periods. The compiler takes the existing still images in the archive and converts them into a movie (avi format) using mencoder, an open source video encoding program. The archive cleaner will clean out old still images from the archive, typically images that have already been compiled into a movie. I’ve put it through most of the stages of testing. It will be deployed to a testing server first to see how the programs run in the field. After that they will be transferred to an actual production server for use within the organization.

The program itself was written in C# using Visual Studio.NET 2005.

I found that programming in a corporate environment was quite different than programming for academic goals. Most notably, I was encouraged to ask for advice from higher-ups, rather than working entirely alone. When I started working on the program I was given some project specs which were quite similar in detail to the specs that I was required to write for my senior project modules.

Feb 4
Magnetic bees
icon1 benford | icon2 School | icon4 02 4th, 2008| icon3No Comments »

I’ve been making some headway on my senior project. One of my main concerns was how to tell a bee object to go to the location of its target (say, a honeycomb), and then proceed to go there while facing in that direction.  The cool thing is now I’ve solved that problem by making the bee take the difference between its current location and its target’s location, and travel along that vector. In other news, my roommate’s laptop and my router seem to be feuding. Regardless of which wifi card we put into his laptop, the router will refuse to give his computer an IP address. His computer uses a Chinese-language version of Windows XP, making things much more complicated for me to diagnose. Next on the “try to install windows list” is Windows XP 64 bit edition. This installer also bit the dust on my hardware (resulting in a  Machine Check Exception). I’m thinking that the problem centers around my add on SATA card. I have the driver disks but that does not seem to help. I might give vista another chance, but doing a slightly different install procedure. Evidently Vista will only recognize drivers if they are placed alone, on the root of a device. I’ll seriously have to consider dusting off some floppies now. I was surprised to see the day when Linux had better hardware support than Windows. Woohoo! 

Feb 2

Hello all. I’ve had some trouble with the server in the past week do to some IP address changes so I was unable to post for a while.

The Spring semester has started and though I have no significant homework in other classes, my senior project, set to be due in 8 weeks, is taking up the majority of my free waking hour. My goal is to make a simulation of a beehive, demonstrating how a distributed AI where many small things work together to make a collective decision can be more efficient than writing a monolithic AI to handle every task.

On the plus side my simulation (“honeyB”) can now do enough to cause significant slowdown on my less stellar testing machines, so I’ll have to work at the CS lab from now on if I want a lag free hive.

I also tried to install Windows Vista the other day, which was a less than stellar experience. It kept asking me for cd/dvd drivers yet it was obviously giving me this message from data on the dvd that it claimed it could not read. Good job with ~4 years of R+D Microsoft!