www.BrettDaniel.com

Relationship Status Report

Laura and I are no longer dating. I have sent out a press release to all the major wire services.

Notebook Doodle #9

Christmas vacation's lack of boring classes has caused my supply of notebook doodles to dwindle. I took a sketch pad with me to New Orleans for just that reason. I mindlessly sketched this teddy bear after the Christmas Day festivities.

A teddy bear

A White Christmas in New Orleans

This year, my parents, sister, and I spent Christmas with Sue's family in New Orleans. It was three days of nonstop eating and giftgiving with family I hadn't seen in two years.

We flew down early on Christmas Eve. I don't remember the last time I flew. It must have been after my knee surgery but before September 11, 2001. I know the implant set off the metal detector, but I don't remember having to stand in a tiny glass-walled room while a chatty security guard patted me down. Dad had to mail his chrome cigarette lighter to himself because Mr. Homeland Security said, "he could empty the liquid somehow." Dad wisely ignored the fact that butane is a gas at room temperature and pressure.

I had a window seat and clear skies for almost the entire trip. The snow, still fresh from two days before, put the roads, rivers, and forests in stark contrast to the surrounding farmland. I could clearly see the highway corridors studded with exit ramp bowties stretching to the horizon. Small towns lay in jagged, organic splashes across the landscape. The snow diminished as we traveled further south, disappearing completely when we emerged from a cloud bank over southern Tennessee. I could have watched the scenery all day long. I told Erica, who sat next to me, "I wish the plane had a glass floor." She disagreed.

We transferred planes in Atlanta. I napped for most of the second leg of the trip but woke for the descent into New Orleans. I don't know why people joke about California falling into the ocean when it was obvious from the plane that New Orleans, perched on a waterlogged strip of land between Lake Pontchartrain and swampy Mississippi delta, already is.

The four of us stayed with my Aunt Donna and Uncle Geoff in the tightly packed checkerboard suburbs surrounding the city. We had the first of three gift exchanges at their house that evening. A few family members were unable to make it because the bridges connecting New Orleans to the rest of the country had frozen in a rare cold snap. Ironically, we had left subfreezing Indiana for freezing Louisiana. The possibility of snow dominated both the conversation and local news channels.

We spent Christmas Day at my grandparents' with the rest of the extended family. There was quite a crowd despite freezing rain and bridges. Food and drink abounded. After another gift exchange, someone glanced out the window and exclaimed, "It's snowing!" For the first time in 50 years, New Orleans had a white Christmas. The wet flakes accumulated on car windshields and eventually the ground. I could hear laughter all down the street as children who had never seen snow in their lives threw snowballs at each other.

All of us slept in the next day. We had a leisurely brunch and then set out to visit Aunt Mary's family in Baton Rouge. The rest of New Orleans felt the need to travel that day, too, so we took the back roads to avoid the traffic. We followed one winding two-lane highway for about an hour and a half, passing rundown plantations, sugar cane fields, and towering industrial installations that all fed off of the nearby Mississippi river.

We arrived at Aunt Mary's house to find another dose of food and gifts. We ate; we opened. Sue and her sisters gathered around the kitchen table to catch up. The males, meanwhile, watched football in the living room. I spent a good deal of the afternoon reinstalling Windows on my cousin's virus-infested laptop. The poor thing could barely run.

That was the last day of our whirlwind visit to Louisiana. We returned to Indiana the next day after another two-leg plane ride.

I hope your holiday contained just as much food and family as mine. Merry Christmas.

The Real Thanksgiving

Christmas, not Thanksgiving, is my time to give thanks. Not for gifts I receive, but the gifts I already have. Things like family, health, and the many opportunities life has presented me. Where would I be if my parents hadn't made it possible for me to go to college? What if I had been born ten years earlier and medical science could not handle my cancer diagnoses? I have a car, two computers, a welcoming home, a warm bed, medical care, political freedom, food every day; I could go on for gigabytes. If only the whole world was so fortunate.

I may not recognize these gifts every day of the year, but I do during the Christmas season. Who needs colorfully wrapped presents with everything I already have?

Timeless Constants of the Holiday Season

At the beginning of break I listed a few books on Amazon. Two sold quickly and at the perfect time for me to experience two of the holiday season's most timeless constants: long lines and hazardous snow conditions.

I shipped the first book on Tuesday. At noon. From the biggest nearby post office. I failed to notice the full parking lot as I drove up, but the line inside was hard to miss. It stretched the entire 30 feet from the main desk— manned by a single clerk, of course— to the doors. With a sigh, I resigned myself to my fate and took a place at the end of the line. I'm sure mine was the only package containing something other than Christmas presents. Giddy, impatient children slalomed through the line as I waited. My turn finally came after 20 minutes, then I shot out of there like a prisoner holding a letter from the Governor.

I shipped the second package today. I wasn't eager to return to the post office, but thanks to last night's eight to ten inches of snow, I knew at least I wouldn't have to wait in line. The streets were plowed to varying degrees. Most had two parallel lines of clear pavement, but some, like my neighborhood's, were quite an adventure. My plucky little Celica made it through reasonably well. Its wide tires can handle ice but tend to pile up and slip on loosely packed snow.

Sue’s Birthday Present

It's easy for me to buy gifts for Dad because I can give him almost anything I would like. Sue, meanwhile, requires more creativity. I need to think harder about her gifts, and I need to do it twice in one month because her birthday is only about two weeks before Christmas. That is why I am proud of the birthday gift I gave her this year: two passes to a cooking class at a local gourmet food store. It was perfect. Sue loves to cook, and experiences make great gifts.

Sue invited me to accompany her to the class. The theme of the afternoon was "Duck, Duck, Goose". Duck gumbo, duck and pear salad, and a traditional Christmas goose. Sue has always made gumbo, but I have never taken the time to watch her prepare it from beginning to end. It was interesting to see. The duck and pear salad had— in addition to duck and pear, of course— all sorts of greens, bleu cheese, toasted walnuts, and a vinaigrette dressing. Surprisingly, the pears and bleu cheese complimented each other perfectly, making it one of the best salads I have ever tasted. I was also surprised at how easily the Christmas goose came together. The chef just stuffed it full of chopped celery, onions, green peppers, and spices and threw it in the oven. That was a good bird. It tasted more like a very light beef than poultry.

I'm glad to say Sue enjoyed her birthday present at least as much as I did. It made me look forward to having my own kitchen in the apartment next year.

Animal Intelligence

For anyone who may doubt the intelligence of animals, I provide the following anecdote:

I awoke early yesterday to a faint scratching at my door. I rolled over and tried to ignore it, but it was soon replaced by my dog's impatient barking. This was my first day home in weeks. BJ had not only remembered I was home, but knew I had remained in my room when my parents left for work. He was lonely, so I sleepily let him in.

Today I again woke to barking. My sister came home yesterday, and once again BJ had remembered. He was sitting between our rooms, barking and hoping one of us would let him in. Erica caved first.

He has trained us well.

Sharpen Your Sword

As a freshman in computer science, you hear whispers of a class called "compilers". The graduate TAs speak of it in hushed tones; classmates exchange stories of the student who jumped off an eight-story dorm before the final; older students make offhand work estimates ranging from 12 to 20 hours per day. You think to yourself, "This 'Intro to Java' course is tough! Surely compilers can't be that bad."

Yet you fear it. It looms over the horizon, two years away, waiting for you to reach your junior year. At first you consider it just an empty block on your progress report, but then it appears on your class schedule. Summer ends, and like Saint George you arm yourself to meet the dragon.

You work. Hard. Projects consume many evenings and weekends. Companions fall wounded 'round your feet, yet you press on, knowing you will emerge a true CS upperclassman.

Grades come in and you see the work has paid off. You entered hoping to pass; now you want to own the class. "A"s on every project? Why not? Your project partner feels it, too, and raises his bloody sword next to yours. The battle continues and you begin to enjoy it. Can't get sloppy now.

Finals. The old fear returns. This is nothing like the projects; no reference materials, no time, and no way to test. You study, but you fear it will not be enough. The test begins. You must skip some questions— too many— but a precious few answers come like rays of sunshine through stormclouds. You emerge bruised and beaten, yet content.

Now you rest over the holiday. You won the battle, but the war will continue in three weeks. Sharpen your sword.

New Backend

I started adding bits and pieces to this website after Thanksgiving, but I had to postpone a new build until I finished the Two Weeks O' Projects. Somehow I found the time between finals and studying to finish and post it today. Here are all the new features:

  • Cleaner stylesheet
  • Entry titles – I only titled a handful of the old posts. I may go through the more over Christmas break.
  • Private posts – I needed some way to save posts while I was working on them.
  • Search – This site was long overdue for a search box.
  • Reference links – This is cool. At the bottom of a permalink page, you can find a list of other weblog entries that reference that post.
  • Picture reference links – Pictures have reference links, too.

I hope to add categories and an RSS feed over break. Any other ideas?

Update

I have gotten word that the new design breaks for some Internet Explorer users. I'm ashamed to say I didn't even test outside of Firefox before posting. Bad form, I know. Experience failed me this time. Usually if a design works in a Gecko browser, it will work in IE. Rest assured a fix is on the way. Thanks for the feedback, everyone.

Update #2

I traced the problem back to a negative margin on the dates underneath the post titles. IE just couldn't handle it.

Tips for Purdue Computer Science

After delivering pizzas for the last six months, Jason is returning to Purdue next semester. He's starting over completely with computer science as his new major. I talked to him yesterday, and it got me thinking: what would I have liked to know before going into my first CS course? I came up with the following list. I hope it helps some incoming freshman who may stumble across it.

Install Linux On Your Home Computer

Purdue CS uses nothing but Solaris Unix boxes for project testing and graded labs. They're annoying, but with your own Unix clone you won't have to mess with them very much. I've found three benefits to having a Linux box:

  1. It will get you accustomed to the Unix command line which will make graded labs much, much easier. Linux in a Nutshell can help you get started and will act as a great reference down the road.
  2. Transferring files back and forth between two Unix machines is much easier than between Windows and Unix. This is especially important if you need to check output against a reference program. (See Automate)
  3. You will be able to develop projects at home in an environment similar to the one on which you will be graded. You won't have to worry about subtle Unix/Windows portability issues, nor will you have to mess with the build process.

You can either buy Linux or download it from a bunch of different places.

Emacs and IDEs

With Linux installed you can start playing with Emacs. This is the only text editor you get in labs (aside from vi which blows. Seriously.), and it pays to know the shortcut keys. At first it's hard to remember the combinations, but once muscle memory kicks in, editing goes a lot faster.

For more complex projects, sometimes Emacs just doesn't cut it. Instead, you'll need an IDE. The main benefit of an IDE is that it helps you remember your own code by providing code hints and automated documentation. I used Netbeans all semester and loved it.

Automate with Shell Scripts and Make

Once you get comfortable with Emacs, you can write shell scripts and makefiles. These are powerful timesavers that I wish I had learned sooner. Shell scripts allow you to automate a series of command line tasks. Makefiles are similar, however they are usually used to build large projects. Most class projects will require a makefile.

I only started using shell scripts heavily in my compilers class this year. I was constantly uploading testfiles by hand to run on the server. I soon tired of that and wrote a quick shell script that uploads a test file to the server, runs it, and downloads the result, all with one command. I also had a similar script to create numbered backups. Stuff like that is incredibly easy on Linux and saves an amazing amount of time. A "toolbox" of useful scripts will help you throughout the semester.

Debug Intelligently

I used to fall into the trap of shotgun debugging; that is, I would find a problem and just hack away at my code until it went away. At one point I realized I was spending more time fixing my fixes than fixing the bug. I go about things differently now. First I find the location of the bug using a debugger or print statements. Then I try to understand the bug before modifying any code. This has decreased my total debugging time and indirectly cut down on big blocks of commented code because I'm more confident in my changes. My programs probably work better now, too.

This article gives some good debugging advice as well.

Plan Against Late Nights

I'll admit I haven't always followed this advice, but I'm better than most. I would guess that the majority of CS students have on some occasion stayed up longer than 24 hours coding. I haven't, and I don't like how ridiculously long hours have become part of the culture of programming. Yes, there will be an incredible amount of work, but I believe it is possible to succeed in computer science without resorting to lost sleep and rushed code. Know how fast you code and plan ahead.

The Tests Will Suck

There's nothing more to say about CS tests. They reach a unique plateau of suckage unknown to mere mortals. This is the way of the world, so don't let it get to you. (I could have used this advice many times freshman year.)

Conclusion

This is certainly not an exhaustive list. It is just a small sample of the philosophy I have learned over the past five semesters. If you feel I have forgotten something, please feel free to leave it in the comments.

I hope someone out there finds this useful.

Just Glad I Don’t Have Ulcers

I haven't been sleeping well, my stomach has been upset, I had a headache all afternoon on Wednesday, and I think it was all due to the stress of having two major projects in as many weeks.

It's finally over.

Fortunately, I didn't even have to sacrifice quality for time. Lee and I finished the compilers project a day early, and the paper stretched to 10 single-spaced, thoroughly-researched pages.

Now on to finals...

Notebook Doodle #8

Projects and homework have not kept me from drawing on my notes during class. When I find time, I'd like to retrace this musician, add color, and him and stick him on the main site.

A medieval piper with a fluffy collar and a huge feather in his hat

Unlike his brother who could entrance small mammals and children, the Pied Piper of Güber could only attract North American grizzly bears.
The townsfolk had little respect for him, as the New World had yet to be discovered.

As usual, comments are open for your captions. What do you think he's playing?

http://www.livejournal.com/users/johanneskepler/

Johannes Kepler, upon whom I am writing my history term paper, had numerous health problems throughout his life. In one of his many personal notes, he describes his troubles as such:

I have investigated the matter of my conception, which took place in the year 1571, May 16, at 4:37 a.m. [he knew this because he practiced astrology and wanted to know the exact position of the heavens at the time of his birth]... My weakness at birth removes the suspicion that my mother was already pregnant at the marriage, which was the 15th of May... Thus I was born premature, at thirty-two weeks, after 224 days, [9 hours, and 53 minutes of pregnancy]...

1575 [aged four] I almost died of small pox, was in very ill health, and my hands were badly crippled...

1577 [six] On my birthday I lost a tooth, breaking it off with a string which I pulled with my hands...

1585-86 [fourteen-fifteen] During these two years, I suffered continually from skin ailments, often severe sores, often from the scabs of chronic putrid wounds in my feet which healed badly and kept breaking out again. On the middle finger of my right hand I had a worm, on the left a huge sore...

1587 [sixteen] On April 4 I was attacked by a fever...

1598 [nineteen] I began to suffer terribly from headaches and a disturbance of my limbs. The mange took hold of me... Then there was a dry disease...

1591 [twenty] The cold brought on a prolonged mange... A disturbance of body and mind had set in because of the excitement of the Carnival play in which I was playing Mariamne [At the time, male actors filled the female parts in plays, and Kepler was chosen in this case because of his small frame]...

1592 [twenty-one] I went down to Weil [the city where he was born] and lost a quarter florin at gambling... At Cupinga's I was offered union with a virgin; on New Year's Eve I achieved this with the greatest possible difficulty, experiencing the most acute pains of the bladder... (Koestler, 231)

In addition to poor health, he had few friends at school. He often wrote about his peers, many of whom he saw as enemies:

Kolinus did not hate me, rather I hated him. He started a friendship with me, but continually opposed me... My love of pleasure and other habits turned Baunbaum from being a friend into an equally great enemy... I willingly incurred the hatred of Seiffer because the rest hated him too, and I provoked him although he had not harmed me. Ortholphus hated me as I hated Kolinus, although I on the contrary liked Ortholphus, but the rivalry between us was manysided... I have often incensed everyone against me through my own fault: at Adelberg [a protestant seminary analogous to middle school] it was my treachery [in denouncing his schoolmates]; at Maulbronn, my defense of Graeter; at Tübingen [his undergraduate university], my violent request for silence. Lendlinus I alienated by foolish writings, Spangenberg, by my temerity in correcting him when he was my teacher; Kleberus hated me as a rival... The reputation of my talent annoyed Rebstock and also my frivolousness... Husalinus opposed my progress... With Dauber there was a secret rivalry and jealousy... My friend Jaeger betrayed my trust: he lied to me and squandered much of my money. I turned to hatred and exercised it in angry letter during the course of two years... Lorhard never communicated with me. I admired him, but he never knew this, nor did anyone else. (Koestler, 235-6)

Someone get that man a LiveJournal!

Few Mistakes

I have made very few notable mistakes in my academic career. I have never bombed a test— at least not in relation to the rest of the class— nor have I missed any large homework assignments in recent memory. I manage my time reasonably well, and I know if I stay on top of things, I tend to do well. However, I failed to keep on top of my history term paper over break, and I fear it will become one of those notable mistakes. I already know it was a mistake to put it off.

I have my topic: Johannes Kepler. I have my sources: two actual books and a handful of websites. The difficulty lies in assimilating all that information and condensing it into a coherent paper while the compilers project, end-of-semester homework, and impending finals assault me from all sides. When I started reading on Monday, I made a rough calculation that told me I needed to read for about two hours per day to be ready to start writing as soon as Lee and I finish the compilers project. Normally I could easily read for that long, but that's without paying too much attention to the text. Here I must highlight and annotate information needed for the paper and fit those two hours into the cracks between classes and the rest of the work.

*sigh*

Compilers, a marathon writing session, finals, and then winter break. It's doable, but don't expect to hear much from me.