Week one. A lot of the first week was learning about the project, which is incredibly complicated. The prof also teaches a class that revolves around this, so Lauren and I started working through those exercises. If you take the New Students link from the developer's page, you can get a feel for what I was working on. The NOIS browser exercises were sometimes a bit complicated, but easy enough to understand; the SQL was just fun, I like SQL, if a little outside the scope of my knowledge at the end. We skipped the PL/SQL and the framework exercises, since we won't really be here long enough to need to know that.
Week two. More doing exercises; the Java servlet and the form generation, both of which either work or mostly work. I'm getting used to the Unix part of things, which is frustrating especially in moving around directories. The large screens and small text don't give me headaches as much anymore. There are several different projects going on at the same time; some of those include working with Rational Rose, comparing Dulcian's Archetemp with Acuity's Automatic Form Generator, and creating a GUI for Acuity form generating. Lauren's working on the comparison with Dulcian's and the AFG, and I finally decided to work with Sukhdeep, a grad student, on the GUI.
Week three. They put me to work on figuring out how to query the database for elements in combo boxes and such in the java forms that will make up the GUI. This week, doing that consisted of rooting around the java files and trying to figure out exactly which java classes the existing forms use to do this, so that we could copy them. It didn't get very far.
Week four. This week was a break from the Java stuff: we needed a web-based html form for the participating institutions to use to input their data, instead of sending Excel files or, heaven forbid, hardcopy. So I did that and felt useful for once! It was the first time I'd done HTML forms, so was useful to me as well.
Week five. Back to Java. Did I mention I don't know Java? This was getting frustrating as we were trying to unravel the path of the database queries. Finally we figured out which two classes we needed, and copied them. Since all we're doing is select queries, we don't really need the full functionality of select/insert/delete which these classes gave us, but they don't do any harm left in. Next I had to start writing the code to query the database and spit out a form with combo boxes with the query results, so I poked with that.
Week six. Woo! The first queries work: grab a list of views in the database and return them, and grab the list of all procedures. However all the returned fields had &&// stuck after them, so I had to go learn about Java strings and string functions to figure out how to chop those off. It was a charge to have these actually work and look like they ought to.
Week seven. Sukhdeep asked that I take the query code out of the form code and put in in the class which interacts more closely with the database. I was a little panicky but after rewriting and debugging, it worked like it was supposed to on the first try! That was very rewarding. The rest of the week was spent in writing additional query functions; these went very quickly since I could model them after the one I'd already written. We ran into a burp since one thing we needed was a list of field names and field types, which would normally be obtained using a 'desc table' -- we had to find the table that command was based on and modify it into a 'select' statement.
Week eight. Java stuff done, I now have to write a DTD specification algorithm explaining where the values we'll get from the wizard will fit in, and what functions we'll need to write. Example: if this field is null, do nothing, otherwise, insert this value. The functions range from that simple to one in which we take an array of fields, sort them by the numbers the user selects, and return each field in order. Since the user will be going through some of the screens in the wizard many more times than once, some sections of the DTD will be repeated. This was a short three-day week as I had to go be a bridesmaid.
Week nine. Made changes to the DTD as Prof. Mamrak suggested, and stepped through the process of creating a simple form to test if this will return a valid DTD spec. This was put on hold: Lauren had written cgi-scripts to go with that form I did back in week four, and since she was busy with something else I was needed to modify the cgi scripts to return the values of all the fields on the follow-up page, to make it easy for the users to print. I spent the week doing that and they were finished on Friday.
Week ten. This week was mostly wrap-up week, finishing up all the loose ends from the various things I'd worked on all summer, and making sure that everything was documented and saved on the network where others could access it. Tested the step-through to check for valid DTD, found a few problems, but mostly it went fine. Got all my stuff packed, gave the key back, and.. goodbye summer.
What I picked up from this summer - Unix, definitely! and that's been helpful, and also learning how to look at a piece of code or a program and pick out what it does and what other files it uses. Finding out about DTDs was interesting, and I enjoyed creating the spec. Mostly, I enjoyed everything I did - from the HTML form to the more advanced Java code, and it's an interesting feeling to know that code I wrote is actually out there working (or going to be eventually.) I am glad I had the chance to spend the summer in a graduate research lab, even though I think I've decided not to go on to graduate school directly after I graduate.
Other stuff? Well, the first weekend we were here, Lauren and I toodled off to the German village, where I bought fudge. Yummy fudge. Mmmmm. No Net access in the apartment proper until the end of the second week, so spent some time playing other computer games, and after Sandy loaned me some books, reading. Can't get a library card without something official-like with my address here on it. The weather's been nice enough, not as hot and humid and miserable as home (near Cincinnati). Lauren's been gone on weekends a fair bit, but I've only been home twice: once, to plan a bridal shower party thing and try on my bridesmaid dress - the mother of the bride sewed both mine and hers - and then for the wedding and a dentist appointment.. yay. Both went just fine. And finally we had a storm in Columbus! most of the time the weather here is just completely boring, but that night the water in the gutters on the street out front almost reached to the center of the street. ..What else? We went to lunch with graduate students and Prof. Mamrak, and saw what they're working on afterwards; motion capture, very interesting stuff. We also went for lunch with some of the other computer science professors the next week. One evening there was a problem with smokers in the hallways setting off the fire alarms, so they went off continually the whole evening, and then also we had a brownout which set off the alarms, and we all sat around in front of the building watching firefighters. Never really figured out what that was all about, but it was interesting.