Champaign-Urbana empties every summer as students leave for home or jobs. Those of us who remain have to be creative when thinking of ways to entertain ourselves. My friends and I have come up with some unique ideas. We made up a game involving chopsticks and M&Ms, cooked hairy hotdogs, and tried (and failed at) stargazing.
M&M Chopstick Challenge
One night, several friends and I were debating different ways of holding chopsticks. That discussion led inevitably to a contest to determine who was the best at handling chopsticks. We set up a round-robin tournament in which pairs of participants had to move 15 M&Ms from a plate to a bowl. Whoever cleared their plate fastest won.
We used smooth chopsticks and ceramic plates, which made it infuriatingly hard. I was eliminated in the first round. Kevin won in a photo finish against Yun Young with a time of just under a minute.
I don't know who first had the idea to skewer hot dogs with uncooked spaghetti, but it likely came from somewhere in Russia. The idea spread across the internet and inspired Alejandro, Yun Young, and me to make it ourselves.
A while back my father gave Yun Young his old six-inch reflector telescope that he was hoping to sell. Two nights ago Yun Young and I took the telescope to a dark cornfield to see what we could see.
Unfortunately, storm clouds rolled in as soon as we set up the telescope, but we did see some impressive lightning in the distance.
Nine friends1 and I built an enormous igloo in the courtyard between Siebel Center and the NCSA building.
How enormous? It is nearly eight feet tall and eight and a half feet in diameter. The doorway is four feet high and two wide. All 10 of us could easily fit inside. We estimate that it took over 80 man-hours to complete: we worked from 5 to 8 PM on Friday, then from 4 PM Saturday to 5 AM (!!!) Sunday. In that time, the temperature never got above 15° F.
It was a team effort. Yun Young and Alejandro deserve credit for initiating the construction and for their inspiring enthusiasm. Ellick documented the construction process with over 600 pictures (some of which I have used with his permission here). Nathan, being the tallest, was instrumental in completing the roof. Jeff O., Kevin, and Alejandro formed an efficient snow-brick-making machine. Lucas, Jeff D., and Jeremy provided much-needed reinforcement when they arrived near the end of construction. Finally, I helped for a few hours on the first night, then observed, supported (read: bought pizza), and provided unsolicited engineering advice on the second night.
None of us expected it would turn out so big or take so long to complete. Construction was completely unplanned and proceeded organically by trial and error. We eventually converged on the following process: pack snow into bricks, lay the bricks, pack the gaps with snow, smooth the edges, and spray water on the surface to strengthen the walls.
We created bricks by packing snow into two small trash cans. It was difficult to form the dry, powdery snow into solid bricks. Our first attempts did not turn out very well.
However, Alejandro realized he could use one trash can to compress the snow inside the other. After that, he became the brickmaking expert. He could produce solid bricks that slid out of the molds like muffins out of a muffin tin. Later, he found we could alternate the wide and narrow ends of the bricks to make the joints flush.
At the end of the first night, we had three uneven layers of bricks. But there was a problem: they rose straight up, not inward as is needed to form the roof of a proper igloo. We seriously considered simply making an open snow fort. However, after adjusting the pattern of bricks on the second night, the walls started curving inward.
The next challenge was the doorway. Compressed snow has zero tensile strength (as we learned through bitter experience), but somehow we were able to make a lintel by forming a rough stairstepped arch.
The walls sloped more and more precariously.
A small opening remained at the peak of the igloo. This was the most difficult part because it was too large for a single brick and the surface was too steep to hold more bricks. Yun Young and Kevin furiously packed handfulls of snow around the edge, spraying many bottlesful of water to make sure the snow stuck. Eventually, the hole shrunk enough that Nathan and Alejandro could jam three bricks together to form a peak at the top of the igloo. They filled the remaining space with rubble.
The igloo was enclosed! The final step was smoothing the inside and outside surfaces and reinforcing joints with snow and water.
Frozen to the bone and exhausted, we collapsed on the couches inside Siebel Center.
Here is an overhead view of how the igloo came together.
The next morning, Yun Young, Kevin, Ellick, and I visited the igloo in daylight. We met a group of students who complimented us on the project. Throughout the day we observed many other people stopping to look and take pictures.
We are all incredibly proud with what built and hope that others who pass by Siebel Center will enjoy it for however long it lasts.
The igloo has been extremely popular. We saw a steady stream of visitors all day yesterday, and our guestbook already has several pages of signatures. It even caught the attention of the local news. WILL radio and WCIA both briefly mentioned the igloo, and WICD, the local ABC affiliate, interviewed Alejandro and Yun Young.
A full day of above-freezing temperatures and light rain proved too much for the igloo. It had noticeably shrunk, and the sides had been bulging outward all day. It finally collapsed yesterday evening around 6:30 PM.
Judging from the orientation of the debris, it looks like the walls exploded outward and roof fell straight down onto the floor. Only the right side of the door frame remained standing.
Yun Young, Alejandro, and I paid our last respects and rescued the guestbook, which had been buried under the pile of snow.
Here are some of the best quotes from the guestbook.
You've brought joy to many.
Amazing – I'm tempted to skip work today and just chill in your igloo
This is what the Blue Waters building should be. I love it.
Sweet! will you come to my house & build one for my kids?
Get back to work!
You have a marvelous island of quiet in the busy world & it was great fun watching you build it
I've been trapped outside for the weekend.
Thank you for a shelter from the wild beasts.
The end was near the light shines through.
Godspeed to all who may encounter this oasis of warmth.
Great igloo. How about an ice pane window? We love it.
—Erin and Spencer
So proud to be an alum of UI!
Is this igloo internet accessible too?! [It was! —ed.]
—Jill & Tom
This is a real gift to our community . Many people have stopped to enjoy your creation. Thank you!
—Mark & Teddy
Wow this is one of "the seven wonders of UIUC"
This igloo is not just a shelter; no sir for that purpose has been thwarted by modern architecture. It is actually an icon of something very very special - the perseverance which grad students show in making something completely useless yet incredibly beautiful. Its a symbol of all the free time grad life provides and the crazy ideas it fills us with; ideas of finding ways of killing that free time. Who invented Ping Pong - I am sure it was a student of Confucius. Who created Olympics - the grad student mentioned somewhere in Illiad. Gustave Eiffel was a grad student too! And so, dear Yum Yum [Yun Young's nickname. —ed.], this Igloo is not anyone's baby - its bigger than a baby or for that matter, any of us. It is indeed one of the foremost exemplar of the primary grad student trait I have so painstakingly just described.
Goodbye, Siebel Center igloo. You were a testament to friendship, teamwork, and determination despite cold and discomfort. While you may have at first appeared completely useless, you brought joy to everyone who passed by.
Here is a scenario that may sound familiar to Linux users: say you want to do something in a terminal but don't know the appropriate command. A quick web search yields a number of possible solutions, but every one is a long, impenetrable command with several unexplained flags. One should avoid running unknown commands that may do something malicious (e.g. "rm -rf ~"), but it is difficult to search through each command's documentation to find the meaning of all of the flags.
I wrote a small utility program that addresses this problem. The utility, called explain, prints short documentation for a given command string, including the documentation for all flags passed to the command.
For example, say you want to copy a file only when it is newer than the destination file. This superuser.com thread suggests the following commands:
cp --update src dest
rsync -avz /from/where/ /to/dest/
explain shows what both of these commands actually mean:
$ explain cp --update src dest
cp - copy files and directories
copy only when the SOURCE file is newer than the destination
file or when the destination file is missing
$ explain rsync -avz /from/where/ /to/dest/
rsync - copying tool
This is equivalent to -rlptgoD. It is a quick way of saying you
want recursion and want to preserve almost everything (with -H
being a notable omission). The only exception to the above
equivalence is when --files-from is specified, in which case -r
is not implied.
This option increases the amount of information the daemon logs
during its startup phase. After the client connects, the dae‐
mon’s verbosity level will be controlled by the options that the
client used and the "max verbosity" setting in the module’s con‐
With this option, rsync compresses the file data as it is sent
to the destination machine, which reduces the amount of data
being transmitted — something that is useful over a slow connec‐
This documentation is simpler than a command's full man page, provides a more focused view of only the flags that one cares about (including their synonyms), and makes it easier to compare different commands. Thus, explain is complementary to existing Unix utilities like man, whatis and apropos.
internally explain parses the command's man(1) page and searches for sections that look like flag documentation. This is somewhat challenging because the file contains no semantic markup and there is no "standard" format, just ad-hoc suggestions on what it should contain. These two factors are probably part of the reason why a utility like explain doesn’t already exist.
explain currently handles just one command at a time. I hope to improve the utility by explaining more complex commands with sub-commands, pipes, and redirects. I would also like it to explain non-flag arguments such as the source and destination arguments in the examples above. Finally, certain common commands use nonstandard flags that explain could probably handle as special cases. For example, it would be good if explain could show documentation for commands like "java -Xmx1024M" or "chmod +x". If you have any other feature requests or if you find any bugs, please post them on the issues page.
Over the past week, I have used explain at least once per day. I hope others find it useful, too.
I cannot comment on how Siebel Center's architecture compares to The Guggenheim or Fallingwater, but the building has some interesting features that were a challenge to translate into Lego. In particular, choosing the correct scale, building the angled sections, and sculpting the topology of the courtyard took a lot of experimentation. Fortunately, Siebel Center is one of the most photogenic buildings on campus, so the web is filled with pictures that I could reference [
The key to figuring out an appropriate scale came from this detailed floor plan. I needed a scale that provided a good level of detail, allowed walls and other structures to be subdivided into "nice" Lego sizes, and produced a model of reasonable size. As is often the case, the simplest solution was the best: if I used a single 1×1×1 block for each window, then everything fell together like magic. At this scale, the full model is about 70 studs (≈22 inches) long by 60 studs (≈19 inches) wide. I have not yet measured the actual size of Siebel Center's windows to determine the Lego-to-real life scale.
I started with the western wall of the building since it is a sheer face of brick and windows and I had a picture reference handy. From there, I continued roughly counterclockwise until I reached the glass-faced northern facade which angles out from the main body of the building. I built this pie-shaped section separately and slid it into place against an otherwise blank wall. Many angled "wing" pieces hide the gap.
A patio sits in a depression at the bottom of the angled section. I first attempted to orient the depression to the main building and rest of the courtyard but found that the grass and stairways did not meet the patio nicely. Instead, I connected the slope to the patio and slid the slope under the rest of the grass using stubless plates.
You can view the digital model in Lego Digital Designer. I would love to build the model in real life, but according to LDD, it would cost around $850. I could probably reduce the price by refining the design and buying bulk pieces. Maybe the computer science department could sponsor its construction?
Charlie travels a lot. I started a half-serious collaborative map (how?) to track his location à la Where The Hell is Matt. If you know Charlie (and if you read this weblog, you probably do), contact me to view or contribute to the map.
I love my bicycle, but its high, straight bars made riding into the wind difficult. I thought about adding drop bars to make myself more aerodynamic, but then I would have had to replace my brakes and shifters. I found the solution while reading a forum thread discussing National Bike Month. A member posted a picture of his butterfly-shaped trekking bars (also called Euro touring bars), and I knew they would be perfect.
Instead of lowering the grip like drop bars, trekking bars extend the rider's arms forward. They also offer many more hand positions, and I could attach my existing brakes and shifters to the rear grips. I ordered some bars last week and attached them this evening.
First, I removed the hardware and the old bar.
Then, I attached the new bars to the stem and reattached the hardware.
I left the bolts loose and took the bike outside to adjust the angles of the bar, brakes, and shifters. I could tell the front grips would give me a much lower and faster ride. The rear grips were slightly closer and higher than the straight bars, but it felt good to be more upright when starting or stopping.
With everything tightened, I took the bike back inside to wrap the bar with spongy grip tape. I trimmed the ends with electrical tape. The only difficulty came on the inch and a half stub between the shifters and the end of the bar. The tape barely fit between the bar and shifter housing. I had to use a small flathead screwdriver to push it through.
I took a test ride around the block. The bars feel great, and I love how unique they look. I am going to donate the old straight bars to a local bike charity.
The were three main events: puzzles, Lego bridge building, and a Wii tournament. For the puzzle event, the organizers gave each team an envelope containing six problems to solve. Our team started out well—I was the first to complete a paper-folding puzzle, and we quickly completed two others— but we failed to complete the final three. One was a Sudoku variant in which we had to fit the letters GOOGLE into a hexagonal grid. Another was a logic puzzle in which we had to determine from a set of clues where people lived on a map. I had completed three of four programming sub-problems involving loop expansion when time ran out.
Unfortunately, we were not allowed to keep the puzzles, and the organizers never announced the correct answers. No doubt they wanted to keep people like me from posting the questions and answers online, but, still, it would have been nice to experiment with the questions at home.
We lost in the first round of the Wii tournament, so while the other teams competed in Wii tennis, we played ping-pong in another room.
I thought the Lego bridge building was the most interesting part of the games. We had to build a bridge that the organizers would judge based on aesthetics and strength. I had to span 24 stubs, rise at least four blocks high, and allow an eight-stub-wide car to cross it. In addition, we had only a set number of basic Lego pieces (no Technics), and could only trade pieces with an equal number of stubs.
Unfortunately, we did not have a cohesive plan for our bridge and ended up with a very, very disappointing and ugly mess that I am ashamed to admit I had a part in building. However, the problem is certainly interesting: how can one build a weight-bearing structure out of materials that perform very poorly under tension? The winning team's bridge held 102 pounds because the core of their main span consisted of 2x6 plates turned on their side. This is an excellent idea, and it got me thinking of other possible designs.
Last night I downloaded the Lego Digital Designer and started building bridges. I feel the following would hold a lot of weight:
The main span is modeled after floor joists. It is made up of laminated 2x8 plates connected at the joints with 2x2 blocks. These long plates perform very well under tension, and the 2x2 blocks prevent twisting and "delamination". The span rests on footings made of normal 2x4 and 2x2 blocks. The green 1x4 blocks keep the span from sliding off the footings and help prevent the footings from falling over.
I know a few engineers read this website; what do you think of the design? I have posted the Lego Digital Designer model file if you would like to play with it.
I cook a lot, probably more than the average graduate student, and yesterday while grocery shopping I got the urge to make a pizza. I bought some ingredients and today set out to make a pizza from scratch.
A pizza made from scratch requires flour and yeast to make the crust:
I used this pizza dough recipe, substituting honey for sugar because that is what I had in my cupboard. After following the directions, I had a nice ball of dough.
While it rose, I prepared the toppings.
Oops! Almost forgot the onion.
I cut the chicken into small cubes and cooked them until they were no longer pink. Then, I mixed all the ingredients together and added some red pepper and basil. By that time the dough had risen, so I spread it out on a pizza pan and added the sauce and toppings. I ended up omitting the pineapple— even though I do so love pineapple on pizza— because the crust got pretty full with just the chicken and vegetables.
Thirty minutes later I had a beautiful homemade pizza.
I am convinced that food tastes better when you make it yourself.
I briefly mentioned the small desk that came with my apartment. It did not take long for me to realize that it would not work for the several years I would expect to use it. The following terrible pictures captured from a video I sent to Dad and Sue when I moved in will illustrate the problems:
I had to remove the annoying shelves over the desk so my monitors would fit.
It had barely any space for my keyboard, much less paperwork.
I used my filing cabinet to make space for the mouse, but the metal would periodically interfere with the wireless signal.
It was crammed in the space between the wall and my bed.
It had no storage space to speak of.
I seriously considered building a loft with an attached desk. I drew beautiful scale diagrams and went home one weekend expecting to build it. After poring over the plans and much discussion, Dad and Sue convinced me to instead use a drafting table we had stored in the basement. They also suggested moving my "office" to the living room where I have more space. I am glad they were so persuasive because it was an excellent setup (and my bed got to remain on the floor).
But it still felt like a temporary solution.
During the discussion that weekend, Sue proposed that I take her large executive desk because, as she said, "it is a real piece of furniture that would look good in your living room." I felt the drawing table was a better choice, but her idea got me thinking about a "real piece of furniture". Over the next few weeks I casually browsed some of the online office furniture retailers.
I eventually found The Desk. It was large (66"x30"), it looked superb, and the price was excellent.
I ordered it several weeks ago, and it arrived on Monday in two 100-plus-pound packages. With the promise of beer, I recruited Josh, a friend in the human-computer interaction group, to help me carry them up the stairs to my apartment. I started assembly on Tuesday.
First I had to unpack everything.
The top and sides came together pretty quickly.
Next, I had to put together the main body and supports.
The connectors that held the boards together were pretty interesting. Here are some videos that show how two of them work:
I also thought the drawer joinery was very ingenious. The sides had an angled tongue that would lock into place when perpendicular to the front. The other end of the side slid into a T-shaped groove on the back. The bottom slid into another groove and was held in place by plastic clips and nails. [Pat. #6413007]
I felt like an assembly-line worker while putting together the drawers.
After screwing in the final drawer handle, I was ready to take apart the drafting table to make room for its replacement. Fortunately, the drafting table packs up nicely.
It took some straining to turn the desk over and slide it into place. Yesterday I reconnected all the computer equipment, and now I have a large, well-lit, good looking, and enjoyable workspace.
In the long time since I last posted, I finished my summer of programming at the software company, moved into my first apartment, and started the first semester of my senior year of college. I am not going to write about any of those things just yet. Instead, for my return to weblogging, I wanted to write about the project I undertook during my last two days of summer.
My grandmother gave me an old dining table and six chairs to take with me to the apartment. (Thanks again, Grandma, if you are reading this.) It was well-made furniture that had stayed with the family for 50 years. My father remembers sitting around it for dinner in his family's first house. It has filled my grandmother's informal dining room for as long as I can remember. All that history showed in the wood and seats, so when I loaded the first four seats into the trunk of my car, I knew I would need to do something to revitalize them and make them my own.
When I got home I brought one of the chairs and my dad's orbital sander out to the back porch. I turned over the chair, turned on the sander, and gingerly sanded a hidden surface on the bottom of the leg support. The chair did not burst into flames or scream out in pain, so I sanded a little more. Underneath the old varnish and years of use, the wood was still bright and beautiful. I knew then that I would have to go all the way. I retrieved some more supplies from the workshop and dove into sanding.
After I finished with the orbital sander, I rubbed each of the chairs with steel wool and then a wet paper towel to remove any remaining dust. Then, I sprayed each of them a thin layer of acrylic clear coat to protect the wood and bring out the color some more. I think the results are extraordinary.
My next task was to replace the thin and worn vinyl upholstery on the seats. I went to the fabric store and picked out a medium gray suede-ey fabric and some 1½ inch padding. I had never reupholstered a chair before, so I used packing tape to set the fabric and see how it would look. I mangled my first attempt at cutting foam— I now know that it is not necessary to bevel the edges of the foam with one's scissors— but everything went smoothly after that.
I used Dad's electric stapler to attach the fabric to the bottom of the chair. I just pulled as hard as I could to compress the foam into a nice curve and stapled where I was pulling. The corners required a little bit of work to prevent creases from showing. The stapler did not shoot the staples all the way into the wood, so I went back with a small hammer to finish the job.
Finally, I reattached each new cushion to the sanded chairs. It took me two afternoons to complete four of the six chairs. The last two had to wait because I needed to start packing for the move. I plan to finish them and perhaps the table during some vacation.
I love it when a project turns out better than expected.
After a month of annotating books, a week of outlining, and two solid days of writing, I am finally free of the Babbage paper. I proudly laid it on the front desk before my history class this afternoon and breathed my first breath as a free man.
I have temporarily posted it here. I took it down.
I found plucking the hundreds of sticky tabs like chicken feathers strangely therapeutic. Mel suggested that I leave them in for whomever gets the books next. It would have been nice if someone had done that for me.
You may think I have had my fill of Babbage, but working on that paper has left me with a burning desire to see the working Difference Engines at London Science Museum.
I met my daily reading quotas since switching topics on the history term paper. I finished reading and annotating my primary source yesterday.
That is about 225 sticky tabs marking important passages in that 276-page book. I wrote a little note on each of them explaining what is important about that particular sentence or paragraph.
I also got a fourth source from a hidden back shelf of the mathematics library: Babbage's own Passages from the Life of a Philosopher. It is a tattered old tome containing 36 chapters of humorous anecdotes and philosophy. All the other books quote from it, and so will I. The title page says it was published in 1864. It looks like someone put in a poor effort of rebinding it since then, but I would not be at all surprised if the pages are really that old. They are brittle, yellowed and falling out in places. It is an interesting feeling to hold a book from the same time period as the very person I am writing about.
2003 was a busy year. I put this poster together after reading my quota in the new history sources. It took a bit longer than 2002's because I had more pictures and events. I also had to mess around with the different resolutions from four different cameras: my old Kodak, my Olympus, my Dad's camera, and couple from Eric's camera that he sent me.
The events on this one are easier to figure out, so I am not giving out extra credit.
I was lying in bed just now, couch cushion on my stomach supporting the book I have been diligently reading for the history term paper, when I had an epiphany. It was not a good epiphany. No lightbulb over my head or angelic choir descending from the heavens; just the realization that I had been reading this book for a week and understanding less and less with each passing chapter. Early on it was interesting, but lately I have been hitting phrases like, "...[T]he stepped vee pulleys between the bearings are used as a feed drive for the cross slide. This was effected by a lead screw rotated by worm and wheel from the pulley-driven layshaft."
Vee pulleys? Cross slide? Layshaft?
The epiphany was this: I realized that reading further would not make the book any more clear. How could I expect to write a coherent term paper on a subject I have no experience with using a source I do not understand? I could research all the technical jargon peppered throughout the book, but that is hardly the point of a history paper.
And so I am switching subjects, returning to the womb of computer science by writing a paper on Charles Babbage. It fits the time frame of the class, it is closer to my area of expertise, and I still have three weeks to do it. That is a week longer than I had for Kepler, which means it will be only slightly less painful. I will exchange the machine tool books for biographies tomorrow.