A Good Day to be a System Administrator

(Warning: a nerdy post)

I work as a systems engineer at the “Big Ol’ IT Company” (BOITC) and so I have to know the typical skills of a systems administrator/engineer:

  • Linux/Unix administration – This includes more than just installing systems. You really, really need to know how everything works underneath: what happens when a file is deleted, what is /proc, and so on. A fantastic book on the subject, recently with a new edition is the Unix and Linux Systems Administration Handbook. This is a book you should read end-to-end (I know from experience it all comes up sooner or later).
  • Good TCP/IP Fundamentals – Knowing the difference between TCP and UDP packets, and how traceroute actually works (not just what it does) can really be useful especially when working in larger environments. Same book above helps. More on that later.
  • Scripting! – Every technician seems to know a little BASH shell scripting, but anyone who wants to advance their career should become pretty familiar with either Perl or Python language.

Of the three, I tend to be weakest in scripting. I’ve been using Perl since I was in college (wow, already 12 years past!) but I’ve never had a computer-science background and most of what I learned, I learned on the job. So, I can script OK, but not like some colleagues I know.

To be honest, I’ve never really liked Perl. It’s something I use because it works, but the “there’s more than one way to do it”, just tells me “there’s more than one way to break it”. I learned it because I had to, and because it helped my career.

But lately things are changing. First, I was very excited when the latest edition of Unix and Linux Systems Administration Handbook (“ULSAH book”) came out. I bought the 3rd edition, used, a few years ago and still read it sometimes. I even read it at night sometimes while sitting next to my sleeping daughter.1 :)

When I was younger, and first learning how to do all this, I spent countless hours reading O’Reilly books cover to cover, but over time the books were very long and topical in nature, and not enough of a general overview for someone who has little time, but has to deal with a large number of technologies. So the ULSAH book has been a more enjoyable read.

But in one section of the book, they provide an overview of Python language. Python language is something I’ve tried to learn before, but I found to be too hard for someone like me. I wanted a quick overview, not an exhaustive tome. I had a few Python scripts I wrote, but nothing big. Fortunately, the new ULSAH book has a nice introduction to both Perl and Python, and I found both very useful.

I was surprised to discover that Python can very easily manage languages like Japanese, and in a matter of minutes, I had this basic little script working:

# -*- coding: utf8 -*-
#!/usr/bin/python

import sys
import japanese
import encodings.utf_8

a = sys.argv[1]
print 'こんにちは,', a,'さん。'

Which worked beautifully:

$ python hello-jp.py Doug
こんにちは, Doug さん。
$

Thank you Python! I know from experience that trying to make this work in Perl is pretty hard, even with recent efforts. Perl just doesn’t handle non-European languages and UTF8 as easily while Python makes this so smooth and easy. This is really important to me, because I want to be able to print out Buddhist sutras like the Amitabha Sutra with both English and Classical Chinese more efficiently, instead of copying and pasting all the time. There has to be a better way to do it. With Perl I could never make this work. A Perl guru probably could, but it shouldn’t be that hard to begin with.

The book suggested further reading about Python with this online book, and I am eager to see what else I can do in Python more efficiently than Perl.

I still have to use Perl for work, but consider this a good-bye letter to Perl. You’ve been my default scripting language for 10+ years, and it was fun in the beginning, but I’m moving to Python from now on. It’s been fun, but I’ve had enough. A system admin has to stay fresh with latest technologies, and learn new technologies as they come, and

Between the new ULSAH book and discovering Python language for Japanese, today has been a good day to be a system administrator.

Update: I switched to Ruby instead for posting Buddhist sutras because it natively handles Unicode while Python requires modules that aren’t always available. It’s ironic that Ruby was created by a Japanese programmer too Still, both Python and Ruby rock. :-)

1 I do have hobbies outside this blog, Japan and Buddhism. But they all seem to converge though, as this post shows. :p

About Doug 陀愚

A Buddhist, Father and Japanophile / Koreaphile.
This entry was posted in Japanese, Language, Linux, Technology. Bookmark the permalink.

2 Responses to A Good Day to be a System Administrator

  1. Jeremias says:

    I have some experience of Perl from a project in a computational linguistics course, and I’m not sure I like it either. Python is rather interesting though and I still want to learn it some day. So basically it looks like I agree with you here :)

  2. Doug 陀愚 says:

    Hi Jeremias, good to hear from you. To be honest, I switched again from Python to Ruby, as I found Ruby more what I needed. I’ve also found it easier to transition from Perl to Ruby, rather than Perl to Python, and I know some developers who prefer it as well. Learning Python, even a little bit, was a nice way to break out of the Perl and try something different, but in the long-run I am finding Ruby even more suitable.

    Just my opinion. :)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s