Forgot your password?
typodupeerror
GUI Programming Software Technology

10 Dos and Don'ts To Make Sysadmins' Lives Easier 246

Posted by timothy
from the sorry-dave-can't-let-you-do-that dept.
CowboyRobot writes "Tom Limoncelli has a piece in 'Queue' summarizing the Computer-Human Interaction for Management of Information Technology's list of how to make software that is easy to install, maintain, and upgrade. FTA: '#2. DON'T make the administrative interface a GUI. System administrators need a command-line tool for constructing repeatable processes. Procedures are best documented by providing commands that we can copy and paste from the procedure document to the command line.'"
This discussion has been archived. No new comments can be posted.

10 Dos and Don'ts To Make Sysadmins' Lives Easier

Comments Filter:
  • by XanC (644172) on Thursday December 23, 2010 @04:10PM (#34654378)

    The article author is also behind The Practice of System and Network Administration [amazon.com], truly an excellent text into the practicalities of work in IT.

  • Windows CAL cost (Score:5, Informative)

    by tepples (727027) <tepples@gmaiBLUEl.com minus berry> on Thursday December 23, 2010 @04:36PM (#34654580) Homepage Journal
    From the article:

    8. [...] Similarly, use the operating system's built-in authentication system and standard I/O systems.

    This can be a bad thing if your application runs on a platform whose built-in authentication is a nickel-and-dime revenue stream for the platform's publisher. Microsoft Windows Server is like this: each user account on the built-in authentication system requires a Client Access License.

  • by greed (112493) on Thursday December 23, 2010 @04:58PM (#34654764)

    Which is a perfect example of a terrible error message. And there's plenty of bad examples like that to crib from, too. (In your particular example, sure, you'll have the "at line XXX" so someone can start digging around in the code... but that's something only suitable for quick-and-dirty hack scripts.)

    What you need to know is WHAT, WHERE and HOW. You know WHO (the program), and are trying to figure out WHY. I've often had to resort to strace -etrace=file to find out "What file couldn't be opened? Why couldn't it be opened?"

    So, sticking with perl:

    open FILE,"filename.txt" or die "Cannot open \"filename.txt\" for reading--$!\n";

    Your example will give only the errno, which is what I'm calling HOW [it went wrong]. WHAT went wrong is the "open for reading". WHERE it went wrong is "filename.txt".

    I generally wrap such calls with a library; that way, I don't have the error handling littering up every call-site. But if you're using an exception-oriented language, we need the SAME INFORMATION once it turns into an error message!

    Oh yeah: For error recovery code, files can't be opened for more reasons than just, "It's not there." You can try all you want, but if (say) the filesystem has gone read-only due to a disk controller failure resulting in journal abort, you might want to do something different. That one's strictly hypothetical, haven't had it happen in over a week--ever since I replaced that faulty cable....

  • by perpenso (1613749) on Thursday December 23, 2010 @05:56PM (#34655276)

    10 is an even number. There's no duplicates. None of them are filler. I don't understand how this happened. Did someone plan this before they wrote it? What gives?

    Its an acm.org article. Not only did the author probably plan, re-read and revise the article before submitting it but a technically knowledgable editor probably read it and may have offered useful and insightful suggestions. Now there may not have been a formal peer review process but the editor may have also had one or more experts in the field read it and offer comments and suggestions.

    Yes the above seems an archaic process but consider that the acm is full of old people who had experience publishing back when things were done with dead trees. ;-)

I am a computer. I am dumber than any human and smarter than any administrator.

Working...