www.BrettDaniel.com

Camping

Last weekend I went camping with a group of CS and Parkland friends. We did not go far: only a few miles northwest to Mahomet, Illinois. It was close enough that I biked there from campus. The wind whipping across the open cornfields made it a difficult ride, but I turned into the campground just as the other members of the group arrived in their cars.

We quickly set up camp. I assembled my small one-person tent while the others fought with two mansions that Lyndsy and Dave got as wedding gifts.

Me with my bike and tent (Manish's picture, used with permission) Josh, Dave, Karin, and Zach in front of the tent they assembled (Karin's picture, used with permission) Manish, Lyndsy, and Alejandro in front of the tent they assembled (Karin's picture, used with permission)

We relaxed for the rest of the afternoon with several rounds of 500 and a campfire as it got dark.

Me throwing the football in a game of 500 (Karin's picture, used with permission) Alejandro, Lyndsy, and Dave cooking marshmallows by the fire (Karin's picture, used with permission)

The frigid night made me glad I packed my cold weather sleeping bag. The next morning we breakfasted on eggs from Zach's family's chickens. We originally planned to spend part of the day at Lake of the Woods, but gathering rain clouds prompted us to break camp early. Fortunately, the rain held off and the wind was at my back for my ride back to Champaign.

Despite cutting the trip short, we all had a great time.

You can find more pictures in Manish and Karin's Facebook albums.

Load, Modify, Recompile, and Execute Java Classes with Spoon

I have been using Spoon as part of some recent research. Spoon allows one to analyze and transform Java source code using a very elegant abstract syntax tree library and several parsing and compiling tools. Spoon assumes that one writes "processors" that act on all occurrences of a particular program element prior to compilation and execution. I required a different approach for my project. Rather than transforming code prior to compilation, I needed to load classes, modify their source code, recompile the changes, and execute the modified code at runtime. I found that there is very little online documentation describing this usage, so I posted my solution over on my research site.

Champaign Construction

I have often said that Champaign and Urbana seem bigger than their populations would imply. There are two interesting and walkable town centers (three if you count campustown); a reasonably dense street plan; and a good amount of culture through the university. Champaign is even getting a skyline thanks to several impressive construction projects. I recently took pictures of the most visible projects.

The imposing 18-story Burnham 310 building is just two blocks from my apartment. Every morning I see the construction crane from my bedroom window. The building, scheduled to open in August, will house retail shops and a grocery store. It will be nice to be able to walk down the street for groceries. Right now, the outer walls are nearing completion.

310 Burnham highrise apartment construction looking northeast 310 Burnham highrise apartment construction looking north from Green Street 310 Burnham highrise apartment construction looking southwest

One can see Burnham 310 and the Tower at Third for miles, but the 24-story highrise at 309 East Green Street will eventually become the tallest building in Champaign. It sits on the former location of a Burger King, hence its nickname "The Whopper". It does not look like much right now, but it will eventually have a fitness center, pool, and 17 floors of apartments over parking and businesses.

309 Green and Tower at Third 309 Green highrise apartment construction looking northeast

There are three comparatively short infill projects nearby, one at 507 East Green Street, Presby Hall on John Street, and the Saint John's Catholic Newman Center on the western edge of campus.

507 Green Street construction Presby Hall student housing under construction St. John's Catholic Newman Center under construction

The university is also renovating the Memorial Stadium for reasons that no one seems to be able to explain.

University of Illinois stadium construction

Finally, M2 on Neil will provide nine floors of retail, office space, and high-end condos in the center of downtown Champaign. I heard a story that the university bought one of the condos to house rich alumni for fundraisers and sporting events.

M2 on Neil condo construction looking southwest M2 on Neil condo construction looking northwest

It has been interesting to watch these construction project progress over the winter. A fellow Champaign resident named Dan O'Brien has posted some more pictures of construction around town.

Earthquakes

Several minor earthquakes occurred in southeastern Illinois this morning. I slept through the first at 4:37 AM, but felt a second at 10:14 AM just as I was leaving my apartment. It felt like a gentle shifting. My curtains swayed, but nothing fell over or made noise.

Illinois earthquake intensity. April 18, 2008, 4:37 AM (map from USGS) Illinois earthquake intensity. April 18, 2008, 10:14 AM (map from USGS)

I did not feel a single earthquake during my summer in California. Honestly, I felt a bit cheated. The only other ground movement I have felt happened in Indiana whenever a quarry near my home blasted rock.

Update (4/21/08)

Last night I felt a third earthquake just as I went to bed.

Illinois earthquake intensity. April 21, 2008, 12:38 AM (map from USGS)

Pictures of UIUC

Yesterday I finished some classwork earlier than expected, so I took part of the afternoon off to enjoy the beautiful spring weather. I brought my camera and took some pictures of campus.

The Main Quad and the back of the Union Engineering quad The Bardeen Quad facing southeast

Google Games 2008

Last Saturday, the Google Games returned to UIUC. Like last year's games, teams of five had to solve puzzles and build a device using Lego blocks. The organizers changed and improved the games by starting with a trivia contest, removing the long athletic event, and adding a second puzzle session. Lucas, Sam, Zack, and I resurrected Team YAY!, and Josh filled in for Wade who was out of town. We did better than last year, but failed to win a prize.

The trivia contest had three categories: "Computer Science", "Math", and "Geek Trivia". A rotating panel of contestants from different teams had to provide questions for Jeopardy-style answers like, "This programming language was named after a French mathematician and philosopher", "93", "This person invented Tetris". It is unfortunate that we had to answer (question) individually since at least one member of Team YAY! knew the answer (question) to every question (answer). Despite that, Zack propelled us to the lead when he knew the answer (question) to "This was Sega's original name".

The puzzles were more varied and required less brute force than last year. We were given two programming problems, a tesselation question, a variation on Sudoku, two graph traversal problems, a faulty network puzzle, and a paper-folding task, among others. I tackled the programming problems. In the first session I had to determine what characters three convoluted functions printed. Lucas solved the function written in Logo that drew its characters. I solved the other two functions written in Python and C that involved deep recursion and factoring polynomials, respectively. In the second session I had to determine what conditions defined several sets of numbers (for example, x is a third power) and then find several additional numbers that satisfied multiple conditions (for example, x is a third power containing the number 4).

We solved the required five out of six questions in the first session, but only three in the second.

For the Lego contest we had to build a trebuchet that could throw a small Lego tire into a bucket eight feet away. Each team was given a bag of standard Lego blocks and a one-pound fishing sinker to use as a counterweight. I was unable to build since I was busy with the programming questions, but I still found the task particularly interesting for two reasons. First, unlike many throwing contests, we were judged on accuracy rather than distance. That factor definitely affected the designs. Second, like last year's bridges, Lego bricks do not naturally lend themselves to building a war engine. Several teams had ingenious ways of reinforcing the throwing arm, but most, including our trebuchet, failed to hit the bucket.

Our trebuchet and the second set of puzzles caused us to fall from our initial lead. Vilas and Alejandro's team, Four Normal People and a Nerd, completed the contest in 3 hours 46 minutes, winning faster than the teams at MIT, Harvard, Berkeley, and Stanford. Even though we did not win this year, all of us enjoyed the games. I was pleased to see that Google improved the organization and content according to last year's feedback.

Final Prosthetic

On February 1, I graduated to a sleek aluminum and carbon fiber prosthetic.

Final prosthetic Final prosthetic ankle

Most of you reading this weblog probably already know about "my new leg" since it took me forever to write about it. Sorry about that.

It fits much more snugly and is much more comfortable than my last temporary. The springier toe and more flexible ankle make it much easier to walk. I also think the woven black shell and curving ankle look a lot better. The prosthetist asked if I wanted to get it covered with fake flesh, but I told him I preferred the technical look.