Archive for November, 2010

2010/11/27

Gratitude Journal 20101126

I am thankful for or that

  1. Rain.
  2. A parking spot close to the office on a cool, rainy morning.
  3. My unlimited text plan from Verizon.
  4. LEB’s reawakened hotness.
  5. Being able to go back to sleep after taking GAB to work.
  6. Money to buy food.
  7. The ability to walk.
  8. All of the technical documentation available on the web, particularly for NetApps.
  9. A warm, dry house on a cold, damp night.
  10. LEB picking up GAB from work.

I acknowledge myself for

  1. Doing laundry.
  2. Fulfilling my on call responsibilities for work.
  3. Eating leftovers.
  4. Taking several short walks through out the day.
  5. Taking my prescriptions.
  6. Putting off impulse purchases.
  7. Turning off the Alabama vs Auburn football game and going to an AA meeting.
  8. Sharing during the meeting.
  9. Doing personal development reading.
  10. Going to bed early.
Advertisements
2010/11/26

Gratitude Journal 20101125

I am thankful for or that

  1. My daughter, GAB cooking green bean casserole from scratch!
  2. LEB cooking Macaroni and cheese from scratch!
  3. My son, CIB baking an apple pie from scratch!
  4. LEB driving us to ATL to my mom’s house.
  5. All the other food that my mom and sister cooked!
  6. BillD helping me figure out and solve the email/spam problem that was killing our customer email platform.
  7. High speed internet and wireless networking.
  8. Money to buy a Honey Baked Ham.
  9. LEB driving us home to Greenville, SC from ATL.
  10. A day spent with family.

I acknowledge myself for

  1. Working diligently on my problems on the job.
  2. Staying awake with LEB during the second half of the drive home.
  3. Loading up the car to come home.
  4. Doing some laundry.
  5. Taking a shower.
  6. Taking a walk at the rest stop on the way to ATL.
  7. Reading personal development books.
  8. Taking out the garbage and recycle.
  9. Drinking lots of water.
  10. Resting when I could.
2010/11/24

Gratitude Journal 20101124

I am thankful for or that

  1. I was able to wake up and drive into work early to fix a problem.
  2. GAB getting home safely late last night.
  3. High speed internet.
  4. My Motorola Droid.
  5. Citrix XenApp.
  6. PuTTY.
  7. A good nights sleep.
  8. Hot, clean water for showers.
  9. A warm, dry house.
  10. Electricity.

I acknowledge myself for

  1. Having a frank, calm discussion w/ GAB.
  2. Working diligently on the job.
  3. Doing laundry.
  4. Walking two miles today.
  5. Walking long routes from & to my parking lot at work.
  6. Going to the library.
  7. Tracking my tasks and the time spent on them w/ the Pomodoro Technique.
  8. Asking for help when I needed it.
  9. Ordering our honey baked ham yesterday.
  10. Sending LEB a $6 off coupon for the ham!
2010/11/20

Gratitude Journal 20101119

I am thankful for or that

  1. The Ubuntu Linux distribution.
  2. The human brain, particularly mine!
  3. Free and open source software.
  4. All the food colleagues brought to work to share yesterday.
  5. Sunshine.
  6. My Android phone.
  7. GAB washing dishes.
  8. Medicine for CIB and MJB.
  9. Books and audio books from the library.
  10. Our house.

I acknowledge myself for

  1. Doing my morning routine of chores.
  2. Doing my work morning routine.
  3. Helping colleagues at work.
  4. Taking walks through out the day.
  5. Practicing the Pomodoro Technique.
  6. Reading rather than watching TV.
  7. Taking the trash & recycle out to the street.
  8. Completing my benefits enrollment.
  9. Allowing GAB to use the car.
  10. Picking up MJB from school.
2010/11/19

Gratitude Journal 20101118

I am thankful for or that

  1. A beautiful autumn day.
  2. Friends of GAB allowing her to use their phones to call me.
  3. CIB cooking porkchops & apples for dinner.
  4. GAB running the dishwasher.
  5. A warm house on a cold night.
  6. Gas to drive around town as needed.
  7. Fresh water to drink.
  8. Our laundry washing and drying machines.
  9. Our dish washing machine.
  10. Electricity.

I acknowledge myself for

  1. Taking walks throughout the day.
  2. Speaking up in our team meeting.
  3. Picking up GAB and MJB from after school stuff.
  4. Taking MJB to school.
  5. Continuing my quest to have the kids keep their rooms reasonably neat.
  6. Continuing my quest to have the kids do chores around the house.
  7. Continuing my quest to have the kids clean up after themselves.
  8. Doing laundry.
  9. Going to bed early.
  10. Helping to resolve numerous problems at work.
2010/11/13

Gratitude Journal 20101112

I am thankful for or that

  1. LEB inviting me to lunch.
  2. Money to buy gas.
  3. GAB getting home safely.
  4. A beautiful autumn day.
  5. Cyanogen Mod for the Droid.
  6. GAB cooking dinner.
  7. A warm house.
  8. My Motorola Droid.
  9. Linux.
  10. All of the various Google apps.

I acknowledge myself for

  1. Going to lunch with LEB.
  2. Leaving work early.
  3. Picking up MJB from the afterschool program.
  4. Doing laundry.
  5. Going to sleep early.
  6. Taking short walks throughout the day.
  7. Keeping this journal.
  8. Waking the kids up for school.
  9. Running the dishwasher.
  10. Brushing me teeth before bed.
2010/11/12

Gratitude Journal 20101111

I am thankful for or that

  1. Having money to go to lunch w/ some colleagues.
  2. Time away from the office for lunch.
  3. A beautiful autumn day.
  4. Gas to drive around town as needed.
  5. LEB drying a couple loads of clothes.
  6. A warm house on a cool evening.
  7. The fan in our bedroom.
  8. Hot water for showers.
  9. Clean water to drink.
  10. Leftovers for dinner.

I acknowledge myself for

  1. Handling lots of incoming tasks at work.
  2. Going to lunch with colleagues.
  3. Picking up GAB from track practice.
  4. Picking up MJB from after school program.
  5. Keeping this journal.
  6. Writing a list of tasks for the day.
  7. Locking the car doors at night.
  8. Going to bed early.
  9. Running the dishwasher.
  10. Doing laundry.
2010/11/12

Gratitude Journal 20101110

I am thankful for or that

  1. Tai Chi class in front of the downtown Courtyard by Marriott courtesy Equilibrium Zen Gym.
  2. Money to buy breakfast.
  3. Gas to drive.
  4. VLC media player.
  5. Food for dinner.
  6. The Brew & Ewe where I got breakfast.
  7. A beautiful autumn day.
  8. The gift of mobility.
  9. LEB and the kids.
  10. GAB’s discus coach.

I acknowledge myself for

  1. Doing laundry.
  2. Going to tai chi class.
  3. Having a healthy breakfast.
  4. Making the coffee.
  5. Taking MJB to school.
  6. Interacting w/ people via Twitter and FaceBook.
  7. Keeping this journal.
  8. Taking walking breaks.
  9. Picking up and taking my prescriptions.
  10. Reading.
2010/11/09

Gratitude Journal 20101108

I am thankful for or that

  1. The oldest of my younger brothers, Dreck, who was born on November 8.
  2. Dreck has been able to survive Lymphoma.
  3. A beautiful autumn day.
  4. Being able to walk.
  5. The Greenville Public Library.
  6. Coffee.
  7. Gas to drive around town as needed.
  8. LEB getting dinner together.
  9. National Public Radio.
  10. Seeing my former coworker, DLowry.

I acknowledge myself for

  1. Working diligently on numerous tasks on the job.
  2. Helping one of the DBAs understand our MySql infrastructure which we will be turning over to their care.
  3. Solving the ldap/tacacs problem.
  4. Tracking down latency issues, which caused number 3, on the Netapp to a particularly troublesome application volume.
  5. Doing laundry.
  6. Eating dinner w/ LEB.
  7. Reading.
  8. Listening to personal development material in the car.
  9. Picking up GAB from track practice.
  10. Walking two miles.
2010/11/04

Agile Systems Administration

I found the following on /.

To me the word “agile” in programming has come to mean “a renaissance of best practices”. In other words, an excellent programmer is already agile, but a mearly”good” programmer might benefit from having it spelled out.

But by giving it this new name, there’s a risk of backlash. I guess that’s happened already, judging by the utterly vapid responses to this post!

To me, agile means the following things:

* don’t do work until you need to

* do everything in the simplest way you can

* write tests for everything

* make your work relocatable and reusable

* use version control

* communicate with customers

* release your work to the customer as rapidly as practical

Now, I happen to wear both a sysadmin and a programmer hat depending on the time of day. Mostly sysadmin, but since discovering this philosophy of programming, I’ve started doing more coding. It’s a pretty amazing feeling to have 100% code test coverage with everything tucked away in version control, with single-command deployment and distribution to client machines. They never taught me this stuff in school.

So, if you’re a syadmin, and you’re not as cynical as the other slashdotters here today, can you see anything in that list that might help you?

Here’s some things I do as a sysadmin:

* use version control for /etc configs (if you’re using dispatch-conf + RCS on your gentoo box, you’re doing this already .. just start checking YOUR changes in the RCS files too.. this saves my butt at least once a week)

* practice “test-first sysadmin” .. does your machine need a certain config? Write a script that verifies that the config is present. Run it, it will fail. Fix the config, run it again, watch it succeed. Now put the script in cron and forget about it (you might want to build a framework for this if you have a lot of these little scripts puttering around). This too has saved my butt: I have scripts that make sure ports are CLOSED on certain machines.. when the firewall config was accidentally erased I detected it right away.

* do everything in as simple a way as possible: for your next script, use environment variables and the presence/absence of files in a directory to configure it, instead of inventing Yet Another Config File format .. your scripts will be shorter and more robust. Use programs like djb’s daemontools to run daemons, instead of this bizarre thing where they put themselves in the background and you need all this scaffolding to track them down to start/stop/watchdog (wtf is up with that anyway).

Use the filesystem instead of MySQL .. use publicfile instead of Apache .. etc.. just do the simplest thing that can work.

Don’t ever install things by hand. Build a custom package. If your OS doesn’t let you do this easily, switch to one that does (gentoo rocks for this as well).

* document everything: when you do something, make a note of it on a wiki or a text file. Give the other sysadmins access and chide them when they don’t keep the file up to date. lead by example.

* automate: don’t do anything 3 times. anything you do a third time, automate it. (you will appreciate the simplicity of using the filesystem as your config file when you do this, by the way). need to watch something on a box? create an rss feed. you don’t need a web server, just build the rss feed and scp it from your laptop every hour. do whatever it takes for you to work as little as possible yet meet your goals.

Yeah, you probably do a lot of this already, but you’d never think of calling it “agile” or anything else other than “a good job”. Fine, whatever. Agile is more of a mindset than anything else, based around simplicity and being ready for change.

See Also: http://www.infrastructures.org/