Wednesday, October 1, 2008

Getting a Good Job in Software, Part II: Beginning the Process

As night follows day, so Part II follows Part I (eventually). So you've decided you want a new job, huh? By this time, you should have a rough idea of what you're looking for and what's out there. The first thing you should do is update your list. Your list might have entries on it a year old. Companies go out of business, get acquired, shift markets, etc. Make sure you have current information.

The next step is to filter your list of candidates more rigorously. I said before that you shouldn't be selective when getting your list of names. Well, now is the time to be picky. Now you're looking for reasons to take a company off your list. Map them to find out how far they are. Try to find out how big they are.

Go through that list. See who's hiring. Research their business. Look for news articles about your target company. Try your local newspaper, your local Business Journal, national newspapers, Infoworld, CNet, and the like. Look especially for information about deals, funding, product launches, and hiring. You want to get a feel for the company, and how it is running.

Find out not just how much money they make, but how they do it. Do they get a recurring fee for service? Do they get money from people who aren't their primary users, like in advertising? Do they get a big check up front for shelfware? These models have a pervasive effect on the culture and incentives in a company. Don't expect to find out all these things. You can't get a complete picture of the company, so don't try. What you're doing is trying to save yourself effort later on. If a company is a bad match, you want to find out sooner rather than later.

Look at the job listings they have. Are there jobs you want to do? Would anyone realistically hire you for them? Don't waste employers' time by applying to a job you're not qualified for, even if you're a fast learner. Maybe you can do the job. They have no way of distinguishing between you and someone who is just blowing smoke. If there's a must-have skill that you don't have, forget it and move on. If you can't offer evidence on your resume that you can do the job, skip it.

Contact the independent recruiters that you know. See what they have, what they're working on. Ask them about the companies on your target list. They're probably not working for any of them, but they might be. They'll also often be privy to industry gossip, and can tell you things you wouldn't learn otherwise. If you've been keeping in touch with them, they'll be happy to talk to you, especially if you're willing to talk about one of their prospects.

Use Linkedin to find out if you know anyone at your target. That's good for research, such as when a friend of mine vouched for two of the people at one company. It's also good for making contact, as when I discovered that an acquaintance of mine from years back had become a recruiter for one of my target companies. It's useful even when you don't know anyone there. By looking at the histories and profiles of people who work there, you can get a good idea for their styles and skills.

All of this should be used to narrow down your list. Your goal is to end up with 5-10 currently open positions at your target companies. If you can only come up with a couple, maybe you need to loosen your standards. Or maybe your current situation is tolerable, and you can stick with it. If you have more than 10, you need to prune your list, or at least prioritize it. Go ahead and be as frivolous as you have to in order to get that number down. A good job is not a commodity; different jobs will fit you in different ways, so you should focus on finding a good match.

Once you've narrowed down your list, you need to start thinking about specific openings. You were looking at companies before; now you're ready to take action on specific jobs. Work on your resume. There are lots of guides out there on how to write a resume; I'm not sure they're good, but I'm also not sure I'd be any better. I can just point to what seems to have worked for me.

Come up with a canonical, complete resume that describes every significant aspect of your work experience. Ignore the standard advice about length; you are not going to send this version to anyone. List your experience, skills, education, portfolio of work, and so forth. Leave out hobbies and side interests unless you can directly connect them to the job, or if your read of the company suggests they like that kind of thing (very fuzzy, I know). Spell check, grammar check, etc. Have someone else read it. You don't want to let any stupid errors slip through.

Once you have this resume, shaping it for specific jobs becomes easy. Remove or minimize the less relevant things. The travel web site won't care about your experience with card processors. Remove that section, or at least condense it. The programming tools vendor has no interest in your database experience. The company writing software for Windows won't care that you're a whiz at shell scripting. Use boldface to emphasize points of alignment; if the job posting says "Spring," and you have Spring on your resume, put it in bold. That can apply to inexact matches, too; if the job wants TopLink, and you know Hibernate, emphasis that.

Some job postings emphasize business skills, so leave in the section about how you worked with product marketing to develop business requirements. Put that in bold, too. Other jobs are more about heads-down coding, so you can leave that out. If you can't find a number of places where your job overlaps with the opening, maybe the job isn't for you. This isn't just an exercise in adapting your resume; it's also about double-checking the match. Make sure you save the job posting you're applying to; you'll want that for later so you can confirm what you're getting into, and you can't cont on it to remain where you found it.

This should go without saying, but your resume must be completely true and accurate. Besides being the right thing to do, anything and everything on your resume is fair game for questions in an interview. If it's been a while since you worked with a particular tool, and your skills are rusty, you can leave it in the experience section, but exclude it from the current skills section.

Once you've got a resume customized to a particular job, figure out how you're going to make contact. It's always good to go through someone you know, but I've had surprisingly good results just contacting them cold. I figure if a company is posting a job on their web site, they probably have someone paying attention. In my recent experience, I contacted 6 companies. I knew the recruiter at one of them. Another one came up due to a recruiter contacting me. The rest of them were cold contacts. Two were via their web site, one was via a Craig's List posting, and the last was directly to a specific recruiter whose contact information I'd gotten from a third party. I heard back from all of them.

I'm assuming your contact is via email. Does anyone do anything else these days, at least in software? You must include a message with your resume. It doesn't have to be anything elaborate. Aim for something between 1 and 4 paragraphs. The basic points to cover are who you are, where you heard about the company, what job you're applying for, why you like the job, and a brief justification for why they should consider you. You can often do that in 100 well-chosen words. Sometimes that's all you need. If you are particularly interested in this job or company, you should say that. That indicates you've done your research. A company would rather hire someone particularly interested in them than someone who's looking for a generic job.

Your resume should be an attachment. Don't include it in the main part of the message because your introductory message serves a distinct purpose. Use whatever file format that the ad calls for. If it doesn't say, you'll have to pick one. Word files are common, but there's a proliferation of versions. Text always works, but it's ugly. On my recent search, I sent out all my resumes as PDF. That seemed like the safest attractive option, and it seemed to work.

Once you contact a company, you should expect it to take up to 2 weeks for them to get back to you. It's unfortunate, but it's true; for a number of reasons beyond your control, companies can be slow. There's nothing you can do about it. Often, companies don't even acknowledge that you've contacted them. It's rude, but again, there's nothing you can do about it. It is acceptable to send a single follow-up message if you don't hear anything, but I would only do that if you have reason to believe that your email was lost. Otherwise, give up on them and move on.

It is perfectly acceptable to talk to multiple companies at once. In fact, it's desirable. It gives you better perspective on your options, while also mitigating the frustration of the glacial pace of the process. Let's not forget that this is a financial transaction. You want to establish a positive relationship built on trust and mutual respect, but you're also looking out for number one. Balancing those can be tricky, but nobody worth working for should question you examining all of your options.

Assuming you get a positive response you should expect the process to take at least 3 weeks from initial contact to an offer, unless of course you or the company declines to continue. Usually it will take 4-6 weeks, though in some cases it may be as much as 12 weeks. 3 months is totally not cool, but it can happen. It can be a frustrating experience because you'll have bursts of activity where you're making rapid progress, followed by days or weeks of stasis. That's where it can help to be talking to multiple companies at once. Hopefully, you'll be making progress with at least one company every couple of days. There's a lot that's outside your control, though, so you should know what to expect. These are important decisions, so you should expect it to take a while.

Next time I'll write about what to do when they respond.

Labels: , ,

Wednesday, September 10, 2008

iTunes spurs a cleanup

iTunes doesn't respect existing directory structures and isn't very useful for files without good ID3 tags. I had little luck finding good alternative mp3 players for the Mac, so I bit the bullet and cleaned up my mp3s.

MusicBrainz was a real time saver. It's a site that stores fingerprints of mp3 files. You can use software such as their Picard to identify your mp3s. Then you can use it to group them by album, set the ID3 tags, rename the files, and move them somewhere, all in bulk. It knows what songs go in an album from its database, so if it can't automatically figure out what song/album a file goes to, you can drag-and-drop it to the right place.

Picard makes this whole process a lot simpler. What would have been days of work was only a couple of hours (for ~1100 files in ~100 albums). It is only at version 0.10, so it's still pretty rough, but it's free, and it gets the job done better than anything else I've tried.

Labels: , ,

Thursday, August 28, 2008

Getting a Good Job in Software, Part I: Before you're actually looking

I've spent a lot of time looking for jobs, talking to prospective employers, interviewing, etc. I am much more effective at finding jobs than I was when I first got out of college. I'd like to think I've learned a few things that may be useful for others. There are some for whom what I've learned will not be useful, some for whom I don't want it to be useful.

If you're in software for the money, this is not for you. If you're just looking for any acceptable job, this is not for you. If doing a professional job is not important to you, this is not for you. If you're not interested in constantly learning new things, this is not for you. If you're in software because you like it, because you want to make cool things that do something interesting, then we can talk.

You should start looking well before you're actually looking. You have to prepare. Even if you're happy with your job now, you may not be forever. Your employers may be happy with you, but their opinion may change. They may go out of business. The company may get acquired. Things change. It would be foolish not to have a backup plan. You don't want to have the world change around you and have to start looking for a new job with nothing. Use the time you have now to get ready, even if you know you won't be looking for years.

Start off by compiling a list of candidate employers in your area. Do not be too picky. Do not research them thoroughly. Just accumulate names, keeping in mind that not all companies that do software are software companies. You do need to eliminate companies you know you won't work for. Check their jobs page to see if they use languages and technologies you know or want to use. Get a little bit of a feel for the company. Save their URLs. del.icio.us is good for this, as is a personal wiki. As an indicator, I had a list of about 90 Austin companies after doing this for about a year.

I assume you just kind of come across software companies in your daily readings and listenings. If you need more sources of info, the local newspaper can be helpful. So is Business Journal. Start-up Warrior claims to map startups around the world; they're worth a shot. Find venture capital firms, and look at their portfolios of companies. Also keep track of postings on Craig's List. Usually the ads don't include the company name, but some do. Add those to the list. Use the other ads to give you an idea of what skills are in demand. Set up a job alert on Indeed. Do searches from time to time to see who's hiring for what roles.

Look at more specialized job boards: Joel Spolsky, The Daily WTF, 37 Signals, Smashing Magazine, and Ars Technica all have them. No doubt there are more. Remember, you aren't trying to make a perfect decision about a company the first time you see them. What you are looking for is a long list of possibilities.

Talk to recruiters. This is one where you need to be careful. There are some really good and reliable recruiters out there. Then there are the ones who will just blast your resume to any company with a pulse, who will lie about what you can do, poisoning the well before you even start looking.

A good recruiter will talk to you first about each and every opening. They won't present you to a client until they've gotten the OK from you. I've been pleased in my interactions with HireStarter, but I don't think they operate outside of Austin.

A good recruiter is someone you have a relationship with. I first talked to HireStarter in 2005. I've talked to them several times a year since then. Sometimes it was about specific jobs, sometime it was helping them find someone else, and sometimes it was just catching up. A good recruiter will want to get to know you even if you're not looking right now, because one day you will be looking.

Use Linkedin. Knowing what your peers are doing will help you with your list of candidates, plus a decent network can help you later in the process.

You should be developing in your mind your ideal job. You may be happy with your current job, but it probably isn't perfect. Look back on the jobs you've had. Figure out what worked and what didn't. There are two kinds of requirements, the ones that apply to every job seeker, and the ones that matter to you personally.

To some extent, everyone wants the same thing. They want to be paid well. They don't want a boss who yells at them. They don't want to drive 2 hours each way. The company needs to have a useful product. They need to be making money, if not a profit. Some of these requirements can be flexible. How do you define getting paid well? Then there are early stage companies. They often don't have a product yet. In fact, they may not even know exactly what they are going to build, and they're certainly not making any money. In that case, you're going to have make a gut call.

Beyond those requirements are issues of personal taste. Those are the specific things that you need. You can tell it's personal if you can invert it and it still makes sense. Some people like small companies, while other people prefer large ones (or so I infer). On the other hand, everyone wants to work for a company that's solvent; nobody wants to work for one headed down the drain.

When I was recently looking, there were three main things that I was looking for. I wanted something where I had to apply all those algorithms and data structures I learned in school. That excluded many business applications, which was only a good thing. Additionally, it had to be something with flexible hours because of the small children. Finally, I wanted to work on a sharp team. It wasn't enough to have smart immediate co-workers; I also wanted to know that the management team knew what they were doing and had effective development practices. There were more considerations, but that's the gist.

You should also establish things that are not important to you. For me, offices are nice, but I can live with cubicles. The particular industry was also not all that important. I was averse to working for a bank, but I didn't have strong feelings about whether it was telecoms, search, or travel & leisure. I did want it to be something I could relate to, but I can relate to a lot.

Once you have an idea of what types of jobs you want, critically evaluate your skills and knowledge. Your work experience demonstrates only part of what you can do. There may be a gap between what you can prove you can do and what you will need to be able to do for the jobs you want. At the very least, you want to know what those gaps are.

The next step is to learn more about the things you don't know. If those skills aren't compatible with your current job, try to develop some side projects exploring those other skills. It's find if you lack knowledge. It's not ok to be satisfied with that, not if you really want the job. If you can't demonstrate the exact skills necessary, make sure you can demonstrate the ability to learn them.

Next time I'll write about how to narrow down your list of companies and make contact.

Labels: , ,

Saturday, August 16, 2008

Interviewer tips

I have been on the receiving end of a lot of technical interviews, and it surprises me how often companies let their employees do a bad job. I have come up with some suggestions for running such a session based on that experience. I have experienced every one of the problems that the following tips are meant to solve:

Preparation



Read the resume before the interview - you should not be studying it for the first time with the candidate sitting right in front of you. This is one of my biggest pet peeves. Waiting until the interview to learn about the candidate demonstrates a lack of seriousness and professionalism.

Be prepared. You should know in advance what questions you're going to ask, and think about various ways the conversation could go. The candidate is sacrificing a lot to be there, so don't waste the candidate's time while you struggle to think of something to talk about.

Coordinate with other interviewers so you don't make the candidate repeat himself unnecessarily.

Arranging the Interview



Let the candidate know what the schedule is in advance. The candidate should know:

  1. how long will he need to be on site

  2. how his time be divided

  3. who will be meeting the candidate, and what their jobs are (not just titles)

  4. what each part of the interview is meant to accomplish


Actually, before you tell the candidate all of that, you should make sure you yourself know all of that.

If two people will be sharing a time slot, they need to coordinate their questions so they both get the information they need without conflict.

Don't put a candidate with more than 2 interviewers at a time. For some, it may be intimidating, and it also poses a bit of a coordination challenge to get everyone's questions out of the way.

Minimize the number of on-site visits necessary. For local candidates, you can ask for two visits before making an offer. For candidates traveling more than 40 minutes, find a way to do everything in one visit. If you can't get all the necessary people squeezed in, reschedule, or redefine "necessary." Be mindful of rush hour and other timing concerns. If the candidate travels more than 100 miles, you need to compensate him for expenses. It is fine if you need the candidate to come on-site to sign offer paperwork, and the candidate can come back to if he wants to discuss an offer in person.

Consider weekend interviews. It's less convenient for your interviewers, but chances are the best candidates are very busy people. Being flexible is worth it. You can always offer your interviewing employees an extra day off to make up for it.

When setting up the interview, make sure the candidate has an immediate contact number in case they run into last-minute problems like a flat tire, getting lost, or the like.

Logistics



Someone needs to take charge of basic logistics: greeting the candidate, getting beverages and/or snacks, getting interviewers to the interview room at the right time, arranging breaks, and showing the candidate out at the end. This can be a recruiter, a hiring manager, or one of the potential co-workers, depending on who is available.

Consider recording interviews. That way, interviewers who aren't in the room for that particular session can still assess the candidate. Of course, you should get permission, and don't penalize candidates who are reluctant to be recorded.

Reserve a clean, quiet room with a whiteboard, a table, lots of paper and pens, enough chairs, and whatever supporting equipment is necessary, before the candidate shows up.

If you're going to keep the candidate in a single room for the duration, pick one with a window.

If you are going to have the candidate write code on a computer, find out in advance what their preferred editor is: emacs, eclipse, vim, netbeans, etc. If it's a common one, have it set up for them. If it's an uncommon one, ask them to bring a USB memory key with the appropriate environment already set up.

Attitude



Pay attention to the candidate, even if it's a pair interview and the other person is talking. No Blackberries allowed.

Remember that this is a personal interaction like any other, so don't be rude. It is not your opportunity to pontificate on your opinions. Don't be dismissive of what the candidate says.

Be sure to introduce yourself properly; don't just dive in.

Do not bad mouth your company, other companies, former employees, management, the recruiters who work for you, XYZ technology, or really, anything at all.

Questions



The candidate should write code. On a whiteboard is acceptable, but some things may be better done on a computer.

It is acceptable to assign "homework," some programming problem that the candidate should do on their own time. Aim for something that would take a good candidate between 45 and 90 minutes. Anything that takes more than 3 hours is too much to ask; anything that takes less than a half hour may be too easy to be useful. In my experience, these problems are usually posed with a blank slate for an answer. I suggest you consider instead giving the candidate existing code and ask them to extend it in some fashion. It is rare in the real world that you write fresh, new code, so your questions should reflect that.

Avoid brain teaser type questions. Too many of them rely on a trick, and it can often seem like you're giving a candidate a hard time just because.

Along with that, make sure it is apparent how a question relates to the qualifications and responsibilities of the job. If it's not apparent, explain the connection.

Do not ask the following:

  1. What was a project that you worked on that posed a particular challenge?

  2. Where do you see yourself in 5 years?

  3. Why do you want to work here?

  4. Rate yourself in X



Instead of the first one, ask about specific challenges posed by specific items on the resume (you read the resume, right?). Instead of the middle two, ask what the candidate wants to do. The last one is your job.

Don't ask questions that give you no useful information. For example, "what do you do when you have a technical disagreement with a co-worker?" There is only one right answer, and everyone knows what it is. The information content of any answer is zero.

The best questions are open-ended. That does not mean vague. If the candidate doesn't get your meaning, explain yourself using different words, and describe the sort of answer you are looking for.

Have more questions than your candidate has time to answer. Sometimes they've heard your questions before (perhaps even the day before), and you don't want to be caught flat-footed.

In some cases you want to spend the whole time going over just one problem. Choose a deep and subtle problem. That way you see if your candidate thinks deeply and subtly. You don't get as much information as you think from a variety of questions that you only explore shallowly. Nevertheless, as in #24, make sure you have backup questions, as if your candidate for some reason can't get over the initial hump, you may be spending a very awkward 45 minutes (or however long).

Test your questions on co-workers to make sure they're neither too hard nor too easy. It will also help your delivery; often, candidates will be unable to answer a question not because they're dumb, but because the interviewer asked it badly. In interviews, like anything else, practice is beneficial.

You should always give the candidate the opportunity to ask you questions, but don't use that as an excuse to avoid your duty to inform as well as evaluate. Anticipate common questions and answer those pre-emptively. Some of these are about the company and only need to be mentioned once. Others are per person, and each interviewer should discuss them. Imagine every candidate asks the following questions:

  1. How big is the company?

  2. What is the breakdown of employees?

  3. How does the company earn its money? e.g., advertising, subscriptions, licensing fees, etc.

  4. What has growth been like?

  5. What exactly is your role?

  6. How long have you been there?

  7. What do you like about working there?

  8. What don't you like?

  9. Where did you work before?



After the Interview



Hiring decisions should be unanimous. If someone's opinion isn't important enough to block the hire, that person doesn't need to be interviewing. I had hiring manager willing to override his team to hire me a few years back. That is flattering, but I don't think I'd want to work for him.

Always always always contact the candidate after. Never leave anyone hanging. You also want to find out how well your company presented itself. If a candidate is leaving with a bad impression, you want to know it so you can fix it.

Let the candidate know within a week what the next step is. You don't have to commit to an offer, but you do need to let him that progress has been made. A week is the maximum; try to respond within 2 business days.

Labels: ,

Monday, July 14, 2008

Drying clothes in a hurry

Use the microwave carefully to dry small articles of clothing if you're in a rush. Do it in 30 to 45 second phases. Doing it in bigger chunks is risky because if your clothes get dry partway through, they'll char and burn. Not fun. Don't put anything with metal in, either.

If you're not quite so daring, or your clothing is too big, you can use your regular clothes dryer, though it takes a little longer. Don't just put that one item in by itself, though. If you do that, it'll just stick to the drum by centrifugal force; it won't tumble. Thus, it won't get exposed to the stream of hot air. Put a couple of bath towels in with it. They'll knock it around. As a bonus, they'll also pick up some of the moisture. And, of course, if it's something you need to iron anyway, you don't need to dry it all the way.

Labels:

Sunday, June 29, 2008

Blackout windows

If you have, say, a 3-year old* who has trouble sleeping when there's lightning out, you can use painter's paper and painter's tape to improvise a quick opaque window covering. The 3-foot wide paper is perfect for our windows. That only really works as a one-off. If it comes up more frequently, just get some big sheets of cheap, stiff, opaque material like paper board or poster board. Assemble a single piece exactly the right size to fit inside the window frame, and just squeeze it in. Or you can make it big enough to fit all the way around and over the window frame. Then just tack, tape, or hook in place (if you need it a lot, mount hooks in the wall).

* She didn't have this problem before 3, so don't assume you're safe.

Labels: ,

Tuesday, June 24, 2008

Transcoding Canon SD400 videos for Google Video

Google Video has been glitchy lately when I've uploaded the .AVI files I get from our Canon SD400. Every time I uploaded one, it would just give me 2 silent seconds of grey. I did a little poking around and came up with the following mencoder (part of mplayer) incantation to transcode to MPEG-4 (with MP3 audio):

mencoder -o out.mp4 -oac mp3lame -ovc lavc -srate 11025 \
-channels 1 -af-adv force=1 -lameopts preset=medium \
-lavcopts vcodec=mpeg4:vbitrate=2048 in.avi

That gets Canon's slightly weird format into something Google Video can handle, at a pretty good quality level. If you've got a batch of files to transcode, you can use the following shell script:

#!/bin/bash

for f in "$@"
do
mencoder -o "${f/%\.[Aa][Vv][Ii]/.mp4}" -oac mp3lame -ovc lavc
-srate 11025 -channels 1 -af-adv force=1 -lameopts preset=medium \
-lavcopts vcodec=mpeg4:vbitrate=2048 "$f"
done

That will create X.mp4 from X.avi without altering the latter. As a plus, it will drop the size by about 85% to 90%.

Labels: , ,

Sunday, June 22, 2008

The smarter side of Sears

Sears has actually turned into a pretty decent place to shop. They have a wide selection of items, good prices, and they've finally addressed most of the failings of what was once a pretty crappy web site. You can shop in person, order online for delivery, or order online for pickup within an hour if you're in a hurry.

They also sell books and music. Their book prices are nothing special, but their CD prices are significantly cheaper than Best Buy, and they somehow manage to be cheaper than Amazon, too, even with sales tax and shipping.

On top of the decent prices, you can usually find Sears gift cards for 10%-15% off through eBay, Card Avenue, or your local Craig's List. You'll get a similar 10% directly from Sears, but you have to give Sears your entire tax rebate check.

I was rather surprised by Sears, which is why I'm posting about it. I'm more than happy to see it if only so that Amazon, Target, Kohl's, and Home Depot have to compete harder for my business. Maybe I should buy the stock...

Labels: ,

Tuesday, June 17, 2008

A Huge, Ever-growing Brain That Rules From the Center of the Ultrawiki

I got a tip a while back from Rich to set up a wiki for personal/family use. Use the magic of Web 2.0 to run your life. I finally got around to doing it a little while back. My web host makes it really easy to set up MediaWiki, the software that powers the ever-more-awesome Wikipedia.

I've taken to using it more and more as I get used to it. Some stuff that used to go in my little now goes in there on a scratch page. I'm probably going to buy some glasses online soon, so I have a wiki page to track candidate frames. We have a page of home improvement projects, both completed (for reference at sale time) and TODO. I keep track of URLs that I discover at work that the censor proxy won't let me see, as well as URLs I discover at home that would be more easily read at home.

At some point in the future, we're going to move to a new house and buy a new car, so I've compiled a list of notes on both as I think of criteria and candidates. I've started tracking books I've read* on there as well. We'll probably start a page of movies to see, with indicators for movies we both want to see and ones just one of us wants to see. I won't link to it right now because some of the pages are private, and I haven't gotten around to fine-tuning the permissions settings.

That's just the list of things I've been putting in it for the last few months. It's handy because it's accessible from nearly anywhere, while also being easy to use and reliable; Dreamhost does daily backups for me. If you don't have a web host already, or don't have one that easily supports a wiki, or just don't want to bother, there are hosted solutions out there, like Google Sites (formerly JotSpot) and PB Wiki. You can see a more complete list of options at Wikipedia, in a nice little bit of circularity. Give it a shot; it'll change your life (if only a little bit).

* Still planning on posting here, but until I do, I need to record them somewhere.

PS - unembeddable reference

Labels: ,

Tuesday, June 10, 2008

Dis-disassembly

If you like to fiddle with the stuff you own, you know that it's harder to put things back together than it is to take them apart. You end up with extra screws. You forget which part faced which way. It's tricky. My suggestion is simple: set up a video camera and record yourself as you take the thing apart. Then if you have any trouble, you can go back and see the way things were before you screwed them up.

Labels:

Tuesday, June 3, 2008

Regarding medical staples

You usually have the option of getting anesthetic. My advice is to take it if you're getting more than, say, 5 staples. Otherwise, skip it, because the needle hurts more than a staple or two. With lots of staples, though, it gets worse as you go. At least the needle is quick. In other words, pain(1 needle) = pain(5 staples). Optimize accordingly.

The doctor seemed to think it was very important to remind me that I should come to the office to have the staples removed, and that there was no fee for this service. I guess he thought I was indigent. I did dress kind of like a bum, which was partly due to the early hour, and partly because I was dripping blood.

The doctor said, "you really opened yourself up." I'm always a little gratified when I hear something like that. I need medical professionals to tell me I'm not being a wuss and wasting everyone's time with a tiny scratch.

Labels: ,

Friday, May 2, 2008

Opera tab switching

Hold down the right mouse button and use the scroll wheel to switch tabs. It's super handy. I always miss it when I'm stuck in Firefox.

Labels: ,