Posted: September 24th, 2011 | Author: Alex | Filed under: Advice (Unsolicited), School | 1 Comment »
It looks like it’s about time for school to start again. Inspired by Justine’s post, I’ve decided that it’s time for yet another set of unsolicited advice for new students. This is the start of my fifth (oh jeez) year as a graduate student, so I feel that I can share some things that I didn’t quite grok in the early part of my graduate career. I apologize if any of these pieces of advice are cliched or obvious. This is particularly geared toward students in the systems and networking sub-disciplines of computer science, since that’s what I know. YMMV.
I’ll start with the one that all first-year graduate students hear and most completely fail to act on: grades don’t matter as long as they’re good enough. By this I mean that, as long as you pass, your grade in a graduate-level course does not matter at all. Nobody will ever look at your grades in graduate coursework, for internships, jobs or otherwise.
This will be really hard for you to accept, because you have been in the business of performing well in classes your entire life. Resist the temptation to spend more time than absolutely necessary on coursework. Make every effort to make every course project you do relevant to your research or publishable in some way. Time spent on your research is time spent productively. Time spent on anything else is time you should be spending on research (or, heaven forbid, actually enjoying yourself outside of work).
Graduate school is an emotional rollercoaster. You will have really good weeks. Who’s-the-man, major-results-every-day, high-fives-all-around weeks. If you’re anything like me, you’ll also have weeks when you feel like you haven’t gotten anything done. This is completely normal. If it happens more than once or twice in a row, take some time to step back and reconsider what you’re doing or how you’re doing it.
Some of your papers will be rejected. Some of them will be rejected several times in a row. Some might never even see the light of day. This does not mean that you’re a failure as a graduate student or that your research is garbage. You probably aren’t and it’s probably not.
The thing that is hard to come to grips with coming out of college is that papers aren’t accepted or rejected based on some objective rubric. A great deal of the selection process is very unscientific. Program committees are comprised of people, and everyone has their own opinions and biases. You might just have caught a reviewer on a bad day.
Treat every failed submission as a learning experience. Act on the legitimate complaints, ignore the inscrutable, bizarre and mean-spirited ones, and move on. Most importantly, don’t let it reflect on your opinions of yourself or your work. It doesn’t do you or anybody else any good. The only thing you can do is consider any constructive criticism and produce the highest quality work you are capable of producing. As long as you keep doing that, you’ll do fine.
Don’t be afraid to discard an idea you’ve been working on for a while or a piece of code that took you a long time to write if it’s clear that you’re going in the wrong direction. At the same time, don’t be too quick to abandon an idea if it doesn’t work out immediately.
Write down everything you try. If you run an experiment for a paper, write down how you ran it, when you ran it, and what the results were. In general, take good notes. They will save you a ton of time down the road.
There will be times during your career as a graduate student when you’ll ask yourself, “Why, oh why didn’t I just take that job at Large Software Company X out of college, with its hefty salary and reasonable hours?” The answer, hopefully, is that you wanted to gain a depth of understanding in a portion of your field and advance the state of the art. Eventually, probably when you start to see a tangible endpoint, you’ll feel like you’ve done that. Hang in there.
Posted: September 18th, 2011 | Author: Alex | Filed under: Random | Comments Off
What a convenient excuse for not having content this week!
As is usual for this time of year, I’m in the middle of a conference deadline push, so there isn’t going to be a whole lot of celebrating until that’s done, unfortunately. Thanks to everyone for your kind birthday well-wishes.
Posted: September 10th, 2011 | Author: Alex | Filed under: Computers | Comments Off
Sometimes when I’m bored or I’m losing focus at work, I’ll start doing what I call the “social network polling loop”:
- Repeat until several loops proceed without update:
- Check e-mail
- Refresh Facebook
- Refresh Google Plus
- Refresh Reddit
- Refresh Google Reader
- Load latest tweets on Twitter
- Check website stats on Google Analytics
It’s almost a reflex action, and it’s one that eats time. I’ve been trying to get myself out of the habit; it wastes time that I should be spending doing something productive. In addition to polling sites like these, I find that I spend far too much time every day looking at them when nothing has changed.
Thankfully, software can be a big help on both fronts here.
Eliminating the Need to Poll
There’s a lot to be said for just stopping yourself from polling websites in the first place. The knee-jerk reaction to this sort of approach is, “But what if I miss something?”
I’ve talked about RSS feeds here before; they’re a really good way to stay on top of changes to websites without polling them. Unfortunately, many social networking sites don’t make RSS feeds of their content available. I’ve basically given up checking Facebook regularly because of this; I’ll only look at it when the mobile app pings me or it sends me e-mail.
Other sites make RSS feeds available, but put them behind an authentication mechanism. Sadly, Google Reader still lacks support for authenticated RSS feeds. This is kind of a drag, since most major user-specific feeds are behind some sort of authentication these days.
My typical workaround for something like this is to build a wrapper around the protected RSS feed in Yahoo! Pipes. The wrapper performs the authentication and reads out the resulting RSS. After subscribing to the pipe’s private URL, I’ve got a feed that Google Reader will be able to read. The thing that’s great about Yahoo! Pipes is its ability to pass the feed through all manner of operators (filters, joins, and so on). This is great if you want to only get news on a particular topic from a site that only provides one “firehose” feed.
Changing the Access Method
Twitter is one of those services that lends itself quite well to polling; follow enough people and you’re guaranteed to be receiving at least one update every couple of minutes. They even make it easy to leave Twitter open and tab back in to load new tweets every few minutes “so that you don’t miss anything”.
Getting the Twitter RSS feed set up was pretty easy thanks to Steffen Grunwald’s status feed service; I was worried that I’d have to mess around with OAuth to make it work, but thankfully Steffen did the hard work for me.
Once the feed was up I found that there were just too many incoming tweets for me to get through, so I passed the feed through Yahoo! Pipes. Specifically, I filtered out any tweets that don’t a) contain links or b) contain a question mark. This essentially creates a “tweets that are asking questions or sharing a link to something” feed, which are the tweets I would least like to miss. I might expand this to include retweets at some point, but usually retweets include links anyway, so it works pretty well as-is.
Upper-Bounding the Time Suck
When it comes to quashing this social network poll loop, the spirit is willing but the flesh is often weak. This is where enforcement comes in. In Chrome, I use the StayFocusd plugin to limit myself to 15 minutes of total social network/feed reader time between 8 AM and 8 PM. StayFocusd isn’t very feature-rich (it doesn’t support multiple block sets with different timings, for example), but it serves its purpose pretty well. Whenever I have to bypass the block, I can just open a window in Incognito mode or disable the plugin. Unfortunately it still takes a deal of willpower to keep myself from abusing that ability.
E-Mail, The Time Waster Du Jour
The one piece of the polling loop that I haven’t managed to remove quite yet is e-mail. Usually I don’t poll my e-mail account, but I do get a lot of mail and have gotten myself into the habit of reading and/or responding to it pretty quickly after I receive it. I’m convinced that the frequent new e-mail notifications I keep getting are distracting, but the nature of my job and the way my co-workers and I typically use e-mail makes only checking my e-mail twice a day impractical. If any of you have strategies or experiences with this, I’d really like to hear them.
Posted: September 3rd, 2011 | Author: Alex | Filed under: Advice (Unsolicited), Computers | Comments Off
Last week, I talked about the bathtub curve and what it can tell you about bad hard drive reviews. I’m going to expand on that a little this week and talk about how replacing your drive doesn’t necessarily mean you’re solving the problem. Then we’ll briefly touch on another common source of consumer angst, hard drive sizes.
Correlated Failures
A common pattern in one-star hard drive reviews is the following:
First drive failed, sent it back. Replacement failed two weeks later. You computer people are all monsters. I’m going back to using a typewriter.
If you buy a drive from a company and it hits the wrong end of the bathtub curve, they will usually replace it. This is basically what hard drive warranties are for: they prevent customers on the wrong side of the bathtub from getting screwed over. Unfortunately, they will probably just pull the next hard drive box off the wall and send you that one. Those two drives probably arrived at their warehouse on the same shipping palette, which probably means that they were manufactured and left the factory at approximately the same time. If there was an unnoticed defect in that particular production batch, you’re much more likely to see the same problem on the replacement that you had with the original.
Incidentally, this is why you should never buy multiple instances of the same drive at the same time if you’re planning on building a RAID array with them; correlated failures might come back and bite you in a big way.
Drive Sizes Lie to You
Stop me if you’ve heard this complaint before:
I bought a 500GB hard drive, but it’s only got 465.7GB of space! I want my 34.3GB back!
I talked about this last year in the context of Wolfram Alpha. The short answer is that drive manufacturers are advertising their capacities in powers of ten and shipping with capacities in powers of two.
Operating systems vendors seem to be converging on lying to their customers rather than confusing them; Apple’s Disk Utility, for example, gives capacities in powers of two and units in powers of ten (500GB when it’s really 500 GiB). In my opinion, this is like setting the value of pi to 3.2; not only does it mask the problem, it hides some of the fundamental truths underlying it.