February 2011 Archives
There are 10+ different organizations that have to give me some kind of tax form so that I can file my taxes. I'm really happy that they are now all electronic. It is much easier to download them off the organization's website than to get them in the mail.
However, if these organizations are going to generate a PDF, can't they also generate a .irs file? A .irs file is an imaginary XML format that I wish existed. It would include all the data from the PDF but in a parsable format. I could take all the .irs files put them on a USB stick and hand it to my tax preparer or feed them into TurboTax.
I know it wouldn't completely automate tax preparation, but imagine how much easier tax prep would be if this existed? I wouldn't have to suffer though watching my tax preparer slowly retyping things (Why am I paying him to do that?). Tax prep software would take each file and, possibly with a little human help, know where to apply the numbers.
I can't be the first to have thought of this.
Why doesn't it exist?
On a Mac, if you SHIFT-CLICK the green dot on a window it opens it as wide and tall as possible (instead of the application-defined behavior)
Even though "ls -l" displays a files permissions as "-rw-r--r--", you can't use "-rw-r--r--" in a chmod command. This is probably one of the most obvious but overlooked UI inconsistencies in Unix that nobody has fixed after all these years. Instead we force people to learn octal and type 0644. Meanwhile every book on Unix/Linux spends pages explaining octal just for this purpose. Time would have been better spent contributing a patch to chmod.
If a network problem always happens 300 seconds after an event (like a VPN coming up or a machine connecting to the network) the problem is ARP, which has to renew every 300 seconds. Similarly, if it times out after exactly 2 hours, the problem is your routing system which typically expires routes after 2 hours of not hearing them advertised.
Git rocks. I should have converted from SubVersion to Git years ago. Sadly I like the name SubVersion better. I hear Hg / Mercurial is better than Git, but Git had better marketing.
Keep all your Unix "dot files" in sync with http://wiki.eater.org/ocd (and I'm not just saying that because my boss wrote it).
People that use advanced Python-isms should not complain when I use features that have been in bash forever and, in fact, were in /bin/sh before most of us knew how to read.
Years ago IETF started telling protocol inventors to avoid using broadcasts and use "local multicast" instead because it will help LAN equipment vendors scale to larger and larger LANs. If your LAN network vendor makes equipment that goes south when there is a lot of multicast traffic because it is "slow path'ed" through the CPU, remind them that They're Doing It Wrong.
The best debugging tool in the world is "diff". Save the output /tmp/old. As you edit your code, write the output to /tmp/new then do "diff /tmp/old /tmp/new". When you see the change you want, you know you are done. Alternatively edit /tmp/old to look like the output you want. You've fixed the bug when diff has no output.
Attend your local sysadmin conference. Regional conferences are your most cost effective career accelerator. You will learn technical stuff that will help you retain your job, do your job better, get promoted, or find a new job. Plus, you'll make local friends and contacts that will help you more than your average call to a vendor tech support line. There are some great ones in the Seattle and NJ/NY/Philly area all listed here.
It was broadcast on Feb 9 but you might still be able to catch it on your local PBS station. It is an hour long and is in-depth without requiring a CS PhD to understand.
Cascadia IT Conference has moved the early-bird deadline to Wednesday, the 23rd of February. Call it a President's day sale.
Some talks I'm particularly excited about:
- Incident Command for IT: What We Can Learn from the Fire Department, Brent Chapman
- Chose your own Adventure, Adam Jacob
- Talks on Chef, Puppet and Cfengine
- ...and the entire training schedule looks top notch!
My apologies for flogging my employer's product, but I enough people have asked me "how can I protect my gmail account" that I feel this is worth it.
Google has enabled 2-factor authentication for GMail. I highly recommend you enable this. Attacks on gmail accounts (and all accounts) are increasing in frequency.
The Cascadia IT Conference wants to remind you that this is the last week you'll be able to save money on registration by getting the Early Bird discount!
Each half day tutorial is $125, and each half day tech session is $100, but with the Early Bird discount, they're only $105 and $80, respectively. You can save even more money by purchasing a bulk pack of 2 days of tutorials for $399 (or one day of training, one day of tech sessions for only $359!).
The Early Bird discount ends on February 16th, which is this coming Wednesday. Register now so you don't forget!
This conference is the premier opportunity to meet Information Technology experts and professionals and get the inside track on one of the hottest regions for IT in the world. Talks, presentations, poster sessions, lightning talks, and DIY unconference sessions will be available. Exchange ideas, learn, and enjoy the all-important "Hallway Track" networking with other conference attendees and world-renown speakers.
Get more information at http://casitconf.org
Keith Albright and Steve Murawski do a great sysadmin podcast called "Mind Of Root". It is mostly Windows-focused but has a lot of great Linux stuff too. Recently they've been reviewing chapters of The Practice of System and Network Administration one or two chapters per epidsode. They pre-announce which chapter will be discussed so you can read it before the next episode.
They usually record the podcast live, and you can join in a chat room and be involved in the show.
I'm really enjoying listening to people talk about the book. When they agree they usually have an excellent story to tell, and when they disagree they're right 99% of the time (I keep saying to myself, "D'oh! Why didn't I change that in the 2nd edition!")
It looks like one (or both?) of them will be at the LOPSA PICC Conference, April 29-30 in New Brunswick, New Jersey. It will be great to finally meet!
Here are the episodes where they've discussed chapters so far:
- Episode 147 - Snow Reboots (Chapter 5 - Services)
- Episode 146 - The Blue Cables Are Faster (Chapters 4 and 6 - Servers and Data Centers)
- Episode 145 - State Of The Workstation Address (Chapter 3 - Workstations)
- Episode 144 - Gross. Get it? (Chapter 2 - Climb Out Of The Hole)
- Episode 143 - Did I mention the Book Club?
Enjoy the podcast!
P.S. Hey guys! One of you (can't tell who said it) mentioned they'd gotten a Kindle for Christmas. Nearly a day later Amazon and our publisher worked out whatever technical problem they were having and TPOSANA finally appeared on the Kindle store! Coincidence??
System Administration Soft Skills: How can system administrators reduce stress and conflict in the workplace? by Christina Lear
Christina is a co-author of The Practice of System and Network Administration. The article is a great overview of the soft skills needed by system administrators and for non-sysadmins it is an interesting peek into sysadmin life. Check it out! (If you didn't recognize her name, that's because it changed when she married this guy.)
Handling HDD failures with Ganeti by Lance Albertson
Lance uses the Ganeti virtual cluster manager (think: VMWare ESX with Vmotion but completely open source) and has written another great post about how it is making his life easier. I work on the team that develops Ganeti.
Testable System Administration: Models of indeterminism are changing IT management. by Mark Burgess
Mark is the author of cfengine and explains the new thinking in system administration. If you've heard terms like "Configuration Management", "cfengine", "Puppet", or "Chef"(http://wiki.opscode.com/display/chef/Home) and weren't sure what they're about, this article will give you the theory behind it all.
[This post is part of a series on improving your memory.]
People say they are bad at remembering names so often it is trite. The truth is that everyone is bad at it so stating this fact out loud is like reminding people "I breathe air." You don't naturally remember someone's name, you have to work at it. People that are good at remembering names employ various tricks, i.e. they work at it.
There is one fact you must know to improve your memory: Remembering something is a two-step process. First you must have the information. Then you have to commit it to memory. It may sound obvious but if you don't have the information you can't commit it to memory. However it is not obvious is that these are two distinct, separate, steps.
Most of the time we don't do the first step, but think the problem is a failure of the second step. It is only common sense: if we are bad at recalling something it must be because we didn't commit it to memory! However, the way the brain works is rarely logical. The truth is that that first step is what gets botched. We didn't hear the name in the first place!
Most of the time when you are introduced to someone you don't hear their name. You are in a noisy room, you aren't fully paying attention, are distracted, or you just weren't ready. Sometimes you believe you heard the name but what you are thinking is is "Amy's Husband" not "Matthew".
Sometimes the names just fly by too fast. Someone introduces many people at once, rattling off, "This is Joe, Mark, Mary, Shankar and Sara" so quickly you don't have a fighting chance. Your neck isn't turning fast enough to see who is who.
Tip 1: Help other people learn names by introducing people slowly. "This is Joe [pause], Mark [pause], Mary [pause]...". Better yet, let each person introduce themself. Each person will pause as the person you are introducing them to acknowledges each person.
Tip 2: Don't let the conversation continue until you know the person's name.
There is a difference between the audio waves colliding with your ear-drum and actually knowing what the person said.
A file transfer protocol doesn't know the data got to the destination until the sender receives a valid checksum. You don't know that you know something without checking that you know it.
Literally stop the conversation until you are sure you've heard the person's name. You can do this without others realizing what you are doing and without it feeling abrupt. (Side note: It may feel abrupt but others will see it as you as being conscientious and caring enough to make the effort to remember their names. That's a compliment to them and makes them feel good.)
There are two ways I do it without anyone realizing it. Usually I simply ask a question about the name, such as what is the first letter. If I know the first letter, I'm pretty sure that I've heard the name. I always phrase it the same way, "Oh, is that spelled with an 'M'?" (or whatever the first letter is). Sure, there isn't any other way to spell "MARY" but they'll see you as being conscientious. For less common names I ask the person how their name is spelled. Either way, the name is now verified.
At work I can use a different technique because we all wear ID badges. I read their name off the badge. The problem is that people's badges are usually down at their waist and it looks funny to bow and look at their pelvis. What does work is to say, "I'm a visual learner, may I see your badge?" Then I read their name and thank them. Luckily I work with geeks and saying something like "I'm a visual learner" sounds astute. I wouldn't use this technique at, say, they gym.
Step 2: Commit it to memory
Now that we know the information we want to remember we have to commit it to memory. The secret here is "repetition" and "mnemonics."
Repetition is powerful. Sometimes just saying the name to yourself s-l-o-w-l-y in your head a few times might trigger your brain to remember it.
A mnemonic is a symbol or thought that will trigger your memory about a subject. A mnemonic not have to be complicated. Just associate something, anything, with their name. The first letter is a "C" and her face looks like a "C". That will stick in your mind and remind you of C the next time you see her, which is enough to jog your memory and recall her name is "Chris."
The reverse often works. Her face doesn't look like a C, well that's just weird enough to make you remember the letter "C" when you see her. The beauty of mnemonics is that they work even when they fail. If every time you see someone you remember the time you tried to associate "C" with the shape of her face, and failed, you've just remembered the letter "C", which reminds you that her name is "Chris". It worked!
By the way... Never ever ever tell someone the mnemonic you use to remember someone's name. Really. Don't. There's no way it will end well. Fred doesn't want to know that you remember is name because his eyebrows are furry; Barry doesn't want to know that you think his nose is big, like Barbara Streisand, and both start with "B"; Neither Laurence nor Bob wants wants to know that you remember who is who because Bob has the shorter name and he's shorter than Laurence (or that Bob is the ugly one, which is ironic because "B" stands for "Bob" and "Beauty"). Keep your mnemonics to yourself.
I hope you found this tip useful. If you run into me at a conference and I remember your name, please don't ask for the mnemonic I used: I'm just reading it off your conference badge.
[My longer blog posts are usually on Mondays and Wednesdays. Please check back or subscribe to my RSS feed.]
[For the next week or so I'll be posting the techniques I use to help me remember things. I'll be covering topics like memorizing short lists, oddball things, and names.]
I prefer to write something down so that I don't forget it, but sometimes I forget the list!
For example, I often have an idea right as I'm falling asleep. I keep a pad of paper by my bed just for this reason. However the next day I forget to look at the list.
Therefore I need a way to remind myself to look at the list. All I need is for something to be "out of place" in the morning and that will jog my memory.
One thing I do is throw the pad of paper onto the floor instead of putting it back on my nightstand. Now when I wake up it is out of place, I see it, and I know to look at the pad.
Someone once told me that they do something similar. They reach down to the floor, pick up a sock, and drape it over their alarm-clock! Next time someone complains about leaving dirty socks on the floor you have a new excuse!
When I plan a trip I keep two lists. One is my "packing list". Things that I need to bring. I maintain that list in my PDA or PAA so that it is always with me. I might be at home, work or elsewhere when I think, "Oh! That conference is at a hotel with a pool! I should pack a swim suit!" I write it onto the list so I don't forget.
The other list is my "carry list". Often I'm leaving for the airport very very early, sometimes as early as 4am. At that early hour I can't expect my brain to be functioning properly. I don't want to leave without my suitcase, tickets, phones, laptop, etc. Previously I'd be on the way to the airport worried that I've forgotten something. Now I have a separate list of things to be carrying when I leave the house. I usually build the list as I'm packing. This has prevented me from forgetting to bring training materials to LISA, my airplane tickets, or directions to the airport!
Speaking of forgetting things as you leave the house, this last item may seem obvious but it wasn't obvious to me. If there is something you need to bring to work tomorrow, lean that thing against the door so you can't avoid it as you leave. If I'm bringing a batch of cookies to my co-workers I don't leave the box in the kitchen where I won't see it. I leave it on the floor against the front door. (It's in tupperware, don't worry). As I'm leaving the house I can't forget to take it with me.
If the item is too big to put at the door, putting anything else there will jog your memory. For example, hang a sock on the door.
[Next tip will be posted Monday: "How to remember names"]
Thanks to everyone that participated in the fundraising for Lyon-Martin Health Services (LM). We exceeded the goal of raising $1000 from readers of this blog. I received email from Dr. Harbatkin calling this effort "Amazing!"
Blog readers have donated $1365. I matched the first $1000. Since we made the goal before Thursday, I donated an additional $500 as promised. That's a total of $2865!
Wait... there's more!
Many of the people that donated work for employers with a "gift match" program, which doubles their donations. If my math is right, this will increase the total to more than $4500!
Dr. Harbatkin asked me to remind people that there is a "Save Lyon-Martin" page on Facebook, fundraisers and other events on listed on http://lyon-martin.org/events.php, and to check out their web site http://lyon-martin.org for periodic announcements.
I'm really proud of the readers of this blog for participating. It is fantastic what we can do when we all chip in a little. This is yet another reason I am so proud to be involved in the system administration community.
Hopefully this and other fundraisers will enable Lyon-Martin to reorganize and keep their doors open.