OK, this will be a scatter shot post since I have a few things to talk about, but not enough time to write full entries.
Orwell
This is the best essay I've read in a while, though after reading and agreeing with it, one is constantly in fear of violating it's advice. What I like most about the essay is Orwell's ability to demonstrate the alternative to dreary writing: he tells of an author using "an accumulation of stale phrases [that] chokes him like tea leaves blocking a sink" and a sentence in which "A mass of Latin words falls upon the facts like soft snow, blurring the outline and covering up all the details."
I would love for artists to apply this advice to their lyrics and songs. I don't need to hear another identical song asking me to "hold on to me, and never let me go." Does that make you envision anything unique or memorable? To contrast, "a kiss on your molten eyes" is a wonderful line from the Shins that engages many senses to make the song more intimate. "Love is watching someone die" is a direct lyric from Death Cab for Cutie that begs for discussion and thought. Postal Service gives even cliched metaphors more realism with "Will someone please call a surgeon \Who can crack my ribs and repair this broken heart."
PBWiki
I changed jobs! This is my second week at a start up that hosts websites that anyone can edit. Running a book club, coordinating travel plans, or taking notes for your CS class? Make a wiki and let me know how it goes.
Rescomp and my various small projects are like living alone: you get to have almost complete control over your situation, but it's somewhat lonely. A9 was like living with your family: you have a lot of resources, but always have someone looking over your shoulder, telling you how they want it done. I don't know what PBWiki's metaphor will be, which is exactly the experience I wanted; "Fight the temptation to choose the clear, safe course. That path leads ever down into stagnation."
In the saddle
One thing that has not changed is my enthusiasm for biking. J and I completed the Page Mill-Skyline-La Honda loop, with the obligatory stop at Alice's. I've started a more varied, aerobic workout that I hope will increase my sprinting abilities. I'll let you know how the Old La Honda test goes.
Wednesday, June 27, 2007
Monday, June 18, 2007
Bay Trail
I wanted to take it easy my first time back on the bike after the ride, so I set out to explore some of the San Fransisco Bay Trail. The Southbay has a lot of surprises: Sunday I discovered a little park that overlooked the bay, complete with picnickers, a small lake with kayakers, and many families on bike. Unfortunately, the path behind Mofit Field is incomplete, so I had to take the long way around to get to the Sunnyvale sections.
Riding this loop was quite a difference. For starters, the trail is gravel, which I foolishly believed would just be temporary. I road on, simultaneously hoping for smooth asphalt and trying to convince myself that this could be justification for buying a mountain bike. The loop takes you by the lovely water treatment plant, with it's accompanying lovely smells of sewage. Asphalt is most useful spread on the ground for your riding comfort, not piled up on the side of the road, which is where I finally came across it.

Yes, that's correct: the road had actually been de-paved. My carbon renforced tires prevailed, though, and despite some fierce crosswinds I completed the loop without an accident. Without being pooped on either: I managed to disturb a huge flock of seagulls who proceeded to circle over me. Continuing the bird theme, I surprised a hawk while biking by its hiding place. What do hawks hide from? Well, as soon as it was out in the open, a group of crows started cawing and diving at it, chasing it 3 blocks along my route. "Common, you're a hawk," I wanted to yell, "end those jerks." Oh well, sorry about that, Mr. Hawk.
Even with some misadventures, being back on the bike was a great feeling. I look forward to navigating the rest of the Bay Trail soon.
Riding this loop was quite a difference. For starters, the trail is gravel, which I foolishly believed would just be temporary. I road on, simultaneously hoping for smooth asphalt and trying to convince myself that this could be justification for buying a mountain bike. The loop takes you by the lovely water treatment plant, with it's accompanying lovely smells of sewage. Asphalt is most useful spread on the ground for your riding comfort, not piled up on the side of the road, which is where I finally came across it.
Yes, that's correct: the road had actually been de-paved. My carbon renforced tires prevailed, though, and despite some fierce crosswinds I completed the loop without an accident. Without being pooped on either: I managed to disturb a huge flock of seagulls who proceeded to circle over me. Continuing the bird theme, I surprised a hawk while biking by its hiding place. What do hawks hide from? Well, as soon as it was out in the open, a group of crows started cawing and diving at it, chasing it 3 blocks along my route. "Common, you're a hawk," I wanted to yell, "end those jerks." Oh well, sorry about that, Mr. Hawk.
Even with some misadventures, being back on the bike was a great feeling. I look forward to navigating the rest of the Bay Trail soon.
Tuesday, June 12, 2007
I've Returned!
The AIDS/Lifecycle was an amazing experience again. I met another great set of people, stayed free of injuries, and felt much more confident on the bike this year. Here are a few interesting things I discovered on this year's ride:
- I didn't miss TV at all. Talking with new people let me hear all the interesting stories I could want.
- It's weird not seeing yourself for a long time. I only shaved twice on the trip, which were also the only two times I saw myself in a mirror. It was a strange feeling realizing you're not sure what you look like after all the sun and riding.
- People can snore really loudly. At one point two people seemed to be having a snore war; I don't know how they are even breathing hard enough to produce noise at that volume.
- I always looked forward to riding. I'm taking this week off to let my butt recover, but I'm looking forward to the next time I'm in the saddle.
Saturday, May 19, 2007
Are You Ready?
Last year, not knowing what to expect on the ride, I was over prepared. This turned out to be great, though: I was able to have fun on the ride, lead a lot of drafting lines, and do harder events later in the year. This year, I have not had as much time to prepare, but I still feel ready.
Yesterday, J and I did 50 mile ride up to the Crystal Springs Reservoirs. Today, in an effort to practice back-to-back days on the saddle, I'm going try this ride out to the Pacific. Riding these distances is very liberating; with planning, I can basically travel anywhere in the Bay area without relying on anything other than my bike and my own legs.
Yesterday, J and I did 50 mile ride up to the Crystal Springs Reservoirs. Today, in an effort to practice back-to-back days on the saddle, I'm going try this ride out to the Pacific. Riding these distances is very liberating; with planning, I can basically travel anywhere in the Bay area without relying on anything other than my bike and my own legs.
Wednesday, May 9, 2007
What We Do
"I'm programming in the Bay Area," I usually reply. This superficial answer is unfortunately about as deep as non-tech people want to hear. Computer science has the dubious distinction of being the most popular profession that most people don't understand. It's certainly not helped by a media image of a loan hacker sitting in front of a glowing screen in a dark room. I'm going to try to boil it down so that my mom and sister can understand the basic areas of the computer profession. I try to avoid metaphors because I want people to understand what I *do* do, not what I "like" do.
Coders
OK, maybe not the best group to start with, since this group includes the load hacker in the dark room. But more commonly, these are the folks that write detailed instructions which tell the computer how to handle specific situations. For example, at Amazon, when you search for products, the words you type in the box have certain rules applied to them. When you type "shirts" products labeled with "shirt" need to come up, so you need a rule to singularize the words. But think about the English language: this isn't easy. Boxes, hoodies, shoes. So a coder needs to come up with instructions to handle all of these cases, the rule to "remove the last 's' from words that end in s" will only be a part of it.
Engineers
Computer engineers take real world problems, break them down into smaller sub-problems, and describe a general way to solve them. Coders take that general solution and write specific instructions to the computer to solve the sub-problem. Continuing the search example, engineers took a problem -- how can people find products they're looking for? -- and broke it into sub-problems: if people tell us what they're looking for, how can we give them suggestions? if we have a list of suggestions, how can we show them? Then they arrive at a general solution: people type in a short description of the desired product to tell us, we make a list of products that have all of the words they're looking for in their description, then we show some of the products on the web page.
Operations
This is my group. 'Ops' is in charge of keeping the software running. Sometimes programs crash; we develop software called 'cradles' which can restart a program in the event of a failure. Sometimes programs get overloaded when everyone logs in at once to begin their Christmas shopping; we set up new computers and faster networks to handle increased number of users. Sometimes software mysteriously starts running slower than usual; we discover assumptions that coders or engineers made that aren't valid and try to work around them. One example is if a machine runs out of disk space. We either produce software that detects this and removes old files, or do it manually.
Quality Assurance
QA teams develop and run tests against the software. They make sure that a search for 'shoes' matches products with 'shoe,' not 'sho.' Many techniques are involved in this: regression (comparing a new version of the software to the old), unit test (compare each part of the software, for example just feeding words into the part of the software the singularizes), corner cases (what happens in weird situations like using foreign languages).
Scientist
Computer scientists usually write two types of research: papers which solve hypothetical problems, or papers which analyze a class of solutions. The hope is that hypothetical problems will eventually become real problems for the former, or that by analyzing a class of solutions, an improved solution to an existing problem will make itself apparent. For the class I am taking, an example of the former is papers from the 1980s which try to solve how computers should keep in sync with each other: when I transfer money to your bank account, that money shouldn't disappear, it should either be in my account or yours. However, the techniques that were proposed at that time aren't working so well, so more recent papers are analyzing the techniques that engineers ended up implementing.
Now You Understand Completely
Well, not really. It turns out that most jobs are a combination on these fields. Engineers often code the specific instructions after they describe the general solution. QA folks have to understand what real world problems a program is trying to solve in order to think of test cases. Scientists work with companies to develop solutions for specific problems.
Additionally, this is just a taxonomy I wrote down after a little thought. Certainly there can be other ways to organize the field, and you won't get a definitive answer if you ask people "what category are you in?" Hopefully, though, this can give you a background for some of the issues that are discussed around the computer industry.
Outsourcing
Coding jobs are the main target of outsourcing. Because the process of coding is often closed -- general solution in, computer instructions out -- coding teams can be separated from the end customer.
Schools
Universities want to produce engineers, but often they produce a mix of the worst qualities of scientists and coders. They produce a scientist's attention to implementation details and a coder's attention to the overall problem being solved. Classroom projects are run in an academic setting and don't need to worry about security, portability, or decade long maintenance issues. Without a bigger picture, coders can product instructions that are technically correct, but which fail to anticipate customer needs and implicit requirements.
"Why aren't you programming?"
Graduate classes in computer science focus on the science aspect, not coding. That's why my assignments don't involve programming and why professors often need help setting up their Windows computer. When programming is involved, it is used to assess how well you understand a problem. If you can write instructions to the computer for every situation in a problem space, then you've demonstrated good comprehension of the problem and solution.
The Story Continues?
Agree, disagree? Write comments :)
Coders
OK, maybe not the best group to start with, since this group includes the load hacker in the dark room. But more commonly, these are the folks that write detailed instructions which tell the computer how to handle specific situations. For example, at Amazon, when you search for products, the words you type in the box have certain rules applied to them. When you type "shirts" products labeled with "shirt" need to come up, so you need a rule to singularize the words. But think about the English language: this isn't easy. Boxes, hoodies, shoes. So a coder needs to come up with instructions to handle all of these cases, the rule to "remove the last 's' from words that end in s" will only be a part of it.
Engineers
Computer engineers take real world problems, break them down into smaller sub-problems, and describe a general way to solve them. Coders take that general solution and write specific instructions to the computer to solve the sub-problem. Continuing the search example, engineers took a problem -- how can people find products they're looking for? -- and broke it into sub-problems: if people tell us what they're looking for, how can we give them suggestions? if we have a list of suggestions, how can we show them? Then they arrive at a general solution: people type in a short description of the desired product to tell us, we make a list of products that have all of the words they're looking for in their description, then we show some of the products on the web page.
Operations
This is my group. 'Ops' is in charge of keeping the software running. Sometimes programs crash; we develop software called 'cradles' which can restart a program in the event of a failure. Sometimes programs get overloaded when everyone logs in at once to begin their Christmas shopping; we set up new computers and faster networks to handle increased number of users. Sometimes software mysteriously starts running slower than usual; we discover assumptions that coders or engineers made that aren't valid and try to work around them. One example is if a machine runs out of disk space. We either produce software that detects this and removes old files, or do it manually.
Quality Assurance
QA teams develop and run tests against the software. They make sure that a search for 'shoes' matches products with 'shoe,' not 'sho.' Many techniques are involved in this: regression (comparing a new version of the software to the old), unit test (compare each part of the software, for example just feeding words into the part of the software the singularizes), corner cases (what happens in weird situations like using foreign languages).
Scientist
Computer scientists usually write two types of research: papers which solve hypothetical problems, or papers which analyze a class of solutions. The hope is that hypothetical problems will eventually become real problems for the former, or that by analyzing a class of solutions, an improved solution to an existing problem will make itself apparent. For the class I am taking, an example of the former is papers from the 1980s which try to solve how computers should keep in sync with each other: when I transfer money to your bank account, that money shouldn't disappear, it should either be in my account or yours. However, the techniques that were proposed at that time aren't working so well, so more recent papers are analyzing the techniques that engineers ended up implementing.
Now You Understand Completely
Well, not really. It turns out that most jobs are a combination on these fields. Engineers often code the specific instructions after they describe the general solution. QA folks have to understand what real world problems a program is trying to solve in order to think of test cases. Scientists work with companies to develop solutions for specific problems.
Additionally, this is just a taxonomy I wrote down after a little thought. Certainly there can be other ways to organize the field, and you won't get a definitive answer if you ask people "what category are you in?" Hopefully, though, this can give you a background for some of the issues that are discussed around the computer industry.
Outsourcing
Coding jobs are the main target of outsourcing. Because the process of coding is often closed -- general solution in, computer instructions out -- coding teams can be separated from the end customer.
Schools
Universities want to produce engineers, but often they produce a mix of the worst qualities of scientists and coders. They produce a scientist's attention to implementation details and a coder's attention to the overall problem being solved. Classroom projects are run in an academic setting and don't need to worry about security, portability, or decade long maintenance issues. Without a bigger picture, coders can product instructions that are technically correct, but which fail to anticipate customer needs and implicit requirements.
"Why aren't you programming?"
Graduate classes in computer science focus on the science aspect, not coding. That's why my assignments don't involve programming and why professors often need help setting up their Windows computer. When programming is involved, it is used to assess how well you understand a problem. If you can write instructions to the computer for every situation in a problem space, then you've demonstrated good comprehension of the problem and solution.
The Story Continues?
Agree, disagree? Write comments :)
Sunday, May 6, 2007
Take that, AIDS!
First, the awesome news: because of the generosity of many people, we broke the $7000 mark for AIDS ride fundraising! I'm so glad I decided to do the ride again this year, because my experience already has been very different. Last year, I started fundraising and training much earlier. Donations came in from mostly close friends and relatives: a steady stream that was encouraging. This year I began late, but if anything that seems to have made folks more motivated! I have been getting donation from a wider range of people, and my repeat sponsors are giving inspiring amounts.
For those who haven't had a chance to donate yet, even though we've surpassed my fundraising goal, I want to point out that we still haven't met the goal of defeating an epidemic that has killed 25 million people. Your support is still needed and appreciated!
Second is a change in plans. Earlier this year I had really wanted to do the Tour de Cure, 1 day cycling rides that raise funds and awareness for diabetes. Unfortunately, because of scheduling conflicts, I won't be able to do these rides this year. I encourage the other cyclists who read this blog to look into them, though, as I think charity rides are a great way to take the next step in the sport.
Thanks again for everyone's support!
For those who haven't had a chance to donate yet, even though we've surpassed my fundraising goal, I want to point out that we still haven't met the goal of defeating an epidemic that has killed 25 million people. Your support is still needed and appreciated!
Second is a change in plans. Earlier this year I had really wanted to do the Tour de Cure, 1 day cycling rides that raise funds and awareness for diabetes. Unfortunately, because of scheduling conflicts, I won't be able to do these rides this year. I encourage the other cyclists who read this blog to look into them, though, as I think charity rides are a great way to take the next step in the sport.
Thanks again for everyone's support!
Sunday, April 29, 2007
Beautiful Backyard
Thank you for the donations so far, guys. I got a late start this year, so if you're thinking of donating, don't delay! Today I completed a big training ride around the Open Spaces area. The weather was awesome, the hills were green, and I got to meet a bunch of people.
The route.
I think Moody is easier than the lower part of Page Mill because it slowly elevates before the big hills. Page Mill was very challenging, as usual: I think I set a new record on my heart rate monitor: 194bpm. Here's my favorite turn on Page Mill, taken last year:

There's a Y in the road where Alpine turns West that I like to stop and eat my snacks. Today there were a couple of bikers hanging out there as well, so I stopped to chat. They had driven from the Central Valley just to do this ride with a few friends. "You have a beautiful backyard here," they said. I'd have to agree, I can't think of a better place to train and improve. The hills are hard, but the scenery, bay views, and redwoods make every turn exciting.
There used to be this random water fountain on the south side of Page Mill. It was great because there are basically no other places to get water up on Skyline. It was removed some time during the winter, though, and all that's left is PVC pipe sticking up out of the ground. Luckily, though, I ran into a ranger who, when asked where the nearest fountain was, offered two of his own water battles. After ensuring that he didn't need them, I talked to him while I refilled my bottles. Apparently a rancher had set up the fountain for folks passing by, but the cold snaps we had last winter broke the water lines.
Coming back up La Honda, I stopped at my favorite burger place, Alice's, for refueling. The tables are big picnic tables, so I happened to sit with some mountain bikers. After a delicious burger and ale, I swooped back down the mountain, passing a couple slow cars that were polite enough to move over.
I do need to concentrate on training in the next couple weeks: ALC is only 5 weeks away!
The route.
I think Moody is easier than the lower part of Page Mill because it slowly elevates before the big hills. Page Mill was very challenging, as usual: I think I set a new record on my heart rate monitor: 194bpm. Here's my favorite turn on Page Mill, taken last year:
There's a Y in the road where Alpine turns West that I like to stop and eat my snacks. Today there were a couple of bikers hanging out there as well, so I stopped to chat. They had driven from the Central Valley just to do this ride with a few friends. "You have a beautiful backyard here," they said. I'd have to agree, I can't think of a better place to train and improve. The hills are hard, but the scenery, bay views, and redwoods make every turn exciting.
There used to be this random water fountain on the south side of Page Mill. It was great because there are basically no other places to get water up on Skyline. It was removed some time during the winter, though, and all that's left is PVC pipe sticking up out of the ground. Luckily, though, I ran into a ranger who, when asked where the nearest fountain was, offered two of his own water battles. After ensuring that he didn't need them, I talked to him while I refilled my bottles. Apparently a rancher had set up the fountain for folks passing by, but the cold snaps we had last winter broke the water lines.
Coming back up La Honda, I stopped at my favorite burger place, Alice's, for refueling. The tables are big picnic tables, so I happened to sit with some mountain bikers. After a delicious burger and ale, I swooped back down the mountain, passing a couple slow cars that were polite enough to move over.
I do need to concentrate on training in the next couple weeks: ALC is only 5 weeks away!
Subscribe to:
Posts (Atom)