ServerFault Revisited: It’s Not Just About Servers Anymore…

I’ve mentioned ServerFault in the past: ServerFault is a web site dedicated to questions and answers about server administration. About the same time, the companion site StackOverflow was created, dedicated to programming questions and answers.

This group of questions and answers (Q&A) sites has grown incredibly, and now covers a wide array of topics. These sites all have similar capabilities and appearance, but have different (and beautiful!) design. Here are some of the current crop of topics/sites available from the brains behind ServerFault (otherwise known as StackExchange):

This is only a few; there are many more, including a Q&A site dedicated to creating new sites by user request (this is Area 51). Some of the current suggestions (in no particular order) include Q&A sites on: Emacs, Running, Japanese, Exercise and Fitness, Books, Government, Politics, Military, and many more!

So why not give the StackExchange sites a try? You’ll learn new things, teach others, and gain a reputation for knowledge in your areas of expertise.

I’m not attached to or beholden to StackExchange in any way except as a satisfied user of ServerFault and others.

5 Reasons for Admins to Know TCP/IP

As a system administrator, one can be forgiven for thinking that knowing the details of TCP/IP is unnecessary. However, knowledge of TCP/IP will be indispensable at times.

Knowing your TCP/IP and TCP protocols will assist you in debugging network problems in your systems.

  1. Server connection failures. When server connection fails, knowing the details of TCP/IP protocols will assist you in figuring out why. Is the connection attempted at all? Does the TCP connection fail or is the connection made only to be denied or dropped?
  2. Routing. Is the network connectivity down? Knowing the details of TCP can assist you in figuring out why.
  3. Physical connectivity. Is there activity on the wire? Is the link up? Are you using an old 10Base-2 network? If so, can you debug connectivity problems with it? Is your duplex set correctly on your 10Base-T networks?
  4. Internet connectivity. Is your firewall working correctly? Can you make connections to disallowed sites? Are there holes in the configuration? Are your Internet accessible sites really accessible from the Internet?
  5. Testing network services. Is that DHCP server serving correctly? Is the NFS server actually using TCP throughout? Is the load balancing working properly?

Even if you have a dedicated networking team, knowing the TCP protocols will help you to tell them what is wrong and exactly what is happening – and might just let you resolve it yourself.

Learning the network protocols is not difficult. Start by downloading the network utilities tcpdump and wireshark. These utilities will let you see what is actually happening on the network – real live traffic you can analyze.

Before you start analyzing real traffic, make sure that you can. Sniffing network traffic can violate corporate security rules; make absolutely sure you have authorization.

Secondly, get a general book on TCP/IP protocols; you can learn protocols in-depth later. The TCP/IP Guide from No-Starch press is one such book. Another good book would be one about Ethernet – Ethernet: The Definitive Guide from O’Reilly is one such good book.

Of course, if you aren’t using TCP/IP (as in a OpenVMS cluster, for instance) – then you need a different book…

UNIX and OpenVMS Online Resources

It is possible to get free online access to UNIX or to OpenVMS; these can be useful in building up your experience on a platform when starting from scratch – or when a review is required.

One of the oldest public access systems in the country is the Super Dimension Fortress (or SDF as it is usually called). SDF offers free accounts, but does ask for US$1 to gain standard access. This isn’t because access is expensive, but because too many people have used the facilities for nefarious purposes (the process suggests that the new user is not a person who will strike and leave).

SDF runs NetBSD on DEC Alphas; this was driven mainly by security and stability. Previously, Stephen Jones, the proprietor, ran SDF using Linux on Intel for several years (which he describes as “the dark years”). BSDTalk had an interview with him back in 2006.

You could also try PolarHome – this shell provider provides access to hosts running Linux (Red Hat, Debian, SUSE, Ubuntu, or Mandriva), OpenVMS (Alpha or VAX), OpenBSD, FreeBSD, NetBSD, HPUX, IRIX, QNX, Solaris, Ultrix, AIX, Tru64, and OpenStep. Unfortunately it requires payment for shell accounts – again because of abuse. The payment is 10 units of your local currency or US$2, whichever is more – and this is per host as well. No other site provides this diverse of a selection.

For truly free UNIX shell accounts, one can try Grex, which is a more professionally-run system (Polarhome and SDF are sole proprietorships). Grex offers totally free shell accounts, but also has memberships (for people to help support the site). It is possible that Grex has the most users as well. Like the others, paid membership does have its privileges – but unlike the others, membership is mainly to provide support for Grex, rather as a security feature.

For OpenVMS, there is a very unique online shell provider: Deathrow Cluster. This is a cluster of three machines running OpenVMS 7.3 – one VAX, one Alpha, and one emulated VAX (SIMH) on a dual Xeon machine. This last is a perfect example of what can be done with an emulator, especially with SIMH which can emulate all manner of old Digital and IBM hardware. However, SIMH does not emulate the Digital Alpha, unfortunately. Like Grex, Deathrow provides completely free shell accounts; like SDF and Polarhome, it is (or appears to be) mainly one person’s purpose to keep it running with a lot of volunteer help.

Any of these will be good sources to keep your shell skills sharp – and in some cases, programming as well. They’re also good people to support; why not offer them some donations if you can?

10 Programming Languages Worth Checking Out [from H3RALD]

This article (10 Programming Languages Worth Checking Out) over at H3RALD is very interesting. If you seek out new things to learn, and new computer languages to program in, then this article should pique your interest.

The languages listed are: Haskell, Erlang, Io, PLT Scheme, Clojure, Squeak, OCaml, Factor, Lua, and Scala. There is also a To get you started… section for each language with pertinent links for learning more.

I was surprised to find that at least six of these languages have significantly caught my attention already. I find Lua to be absolutely beautiful and a delight to program in (my PalmPilot has PLua loaded all the time). Squeak is just Smalltalk-80 kept alive – and Smalltalk has been of interest to me ever since I learned of it decades ago. Haskell and Erlang are interesting, too – but I’ve not followed that up with learning yet.

Now Scala and Clojure have my attention. Unfortunately, Clojure almost seems like it takes the simplicity of Common Lisp and trades it in for complexity. I don’t find the “complaints” against Common Lisp to be valid; I’d rather see Common Lisp implemented in Java than a Lisp-derivative.

I expect I’ll be talking more about Scala as time goes on – this language has caught me good.

Learning resources

A lot of the stuff an admin deals with day to day isn’t based on what we know, but on what we can find out. We spend our days researching problems and looking for solutions. What are the best resources?

Each operating system vendor has their own knowledge base or forums. For example, HP has the HP ITRC (IT Resource Center) which provides a one stop source for forums, documentation, technical notes, patches, and more. Other vendors have similar portals for technical support.

Another lesser-known resource is Usenet. The people in the Usenet newsgroups include some very knowledgeable people, and often can help resolve problems faster than you can alone.

There are a number of books that one can turn to as well; however, books on certification may often be overlooked. These books cover more obscure areas of an operating system and its maintenance, and can point you in the right direction when nothing else will. Many times, these tomes are also written to be on-desk references as well, and as such include the author’s experiences and knowledge beyond what is needed for certification.

Core Linux on USB Stick (and the EeePC)

I can’t believe I haven’t mentioned the Core Linux distribution yet. It has been described as a Linux From Scratch version prebuilt with just enough to compile your favorite sources. Core Linux is not a distribution for the new Linux user; it is a distribution that is handcrafted by the user to do what the user wants. There is no packaging system; everything is done by compiling the sources onto the machine.

There was an article on the Core Linux forums recently which detailed one person’s experiences in installing Core Linux onto a USB stick in preparation for installation onto a EeePC. No word on how the installation went, but apparently booting from USB was perfect.

Using a distribution like Core Linux will give you an excellent education on how things work in Linux, and how to do things from the ground up. Using Linux From Scratch takes that one step further: starting with a Linux system, you compile everything – everything – and build your own Linux system starting from nothing.

Linux From Scratch takes a long time however, and can be quite challenging to get set up properly; Core Linux may be a better choice to start with. Both are excellent.

FreeBSD 6.3 running on the Armada E500

Things are working well with the combination of the new FreeBSD 6.3 and the Compaq Armada E500. The machine has a great feel to it, and despite the huge applications of today, 128M can still be used for a KDE environment.

There are a number of nice features, including a ton of connectors (10BaseT, WinModem, USB, serial, parallel, PS/2, PCMCIA). The machine just keeps going, though I have had a few (few!) lockups (normally with Amarok and something else running). With the appropriate tweaks, the KDE desktop can be as polished as any from Red Hat or Novell.

Some of the things I did:

  • Replace the shutdown picture with something else; the picture of the dragon was too smarmy.
  • Replace the background (of course!) – personalization to the max.
  • Switch to the “Macintosh” version of menu layout; it’s the most user-friendly.
  • Load KDM from ports, then activate and theme it.
  • Load a splash screen for the boot loader
  • Switch the boot loader to grub then use a splash screen to start it off.
  • Configure the special buttons to work.
  • Change the KDE menu for something easier to use (such as TastyMenu or KBFX).

When all of these are combined, the environment is very slick and professional. It still wants more than 128M though.

One pet peeve of mine I might mention with regards to menus (such as KMenu or KBFX): menus should respond instantly!! I absolutely despise hiccups and watch cursors because the menu is loading its stuff. It should just pop! into place, not thrash the hard disk. Maybe one day…

What was the best part of this? I learned a ton about themes, X keys, configuring KDM, configuring the boot loader, and using grub. And learning is the best part, right?

FreeBSD 6.3 DesktopFreeBSD 6.3 Desktop

Presentations (and Life and Creativity)

It’s time I put these links up and let you see some very (in my opinion) thoughtful and delightful lectures – and on topics that are very relevant to our lives today.

The first has been around for quite a while (a week or so) – and it is quite possible you know of it already. This is a lecture in a series that was once called the Last Lecture Series (but is now called Journeys), and was given at Carnegie-Mellon University. While the series was renamed, the concept remains the same – and in this specific lecture by Dr. Randy Pausch, it was no hypothetical lecture – it was very likely his last lecture. The lecture was not just poignant, but excellent in delivery, presentation, and in content.

Do yourself a favor – listen to Randy Pausch’s lecture. Listen to the entire thing. The entire thing.

You won’t regret it – and you may find things to use in your work – and your life – and your presentations. Listen to what he says – and watch how he uses the slides. Watch how he handles “The Elephant in the Room.”

The second lecturer, Tony Buzan, is a lecturer and researcher on the mind and on creativity and learning. He speaks earnestly and deeply about the importance of creativity in the young student, attempting to encourage the audience of teachers to develop creativity in their students. Listen, too, to what he says – and how he says it. He doesn’t have the flair of Steven Jobs or the high impact delivery of Randy Pausch, but he does it well.

No ums, ahhs, or ya’know from these speakers.

I have taken to watching presentations of late, looking for and watching for quality speakers. These two educators are, while very different, with different styles and different messages, are nonetheless quality speakers.

Want to learn more? Join with the local Toastmasters.

Learning Something New

Every day, a system administrator may come across something new, or a way to apply some new knowledge. Don’t stop learning, and take whatever steps are necesary in order to learn whatever you can.

Don’t stop at knowing just enough to get by – what buttons to push, what commands to execute – aim to master something new. Dave Thomas (the writer of the Ruby “pick axe book”) suggests learning a new programming language every year.

Do you use Korn shell in your daily work. Master it! Learn the intricate details. Learn ways to be more efficient, to do things faster, to do things quicker. Learn the intimate details of awk scripting. Learn the many details of sed.

Are you bored with the everyday? Then stretch your mind and start in on something unusual – even unnecessary. Learn how to run the TECO text editor (EMACS was written in it!). Learn COBOL and use OpenCOBOL.

Learn something new and useful but unutilized – such as Lua or TCL.

Alternately – since we are all system administrators here – put a new server environment to work in your home network. Install Kerberos and the Andrew File System. Start working with the Berkeley amd automounter. Set up an IPv6 network.

What does all of this learning get us?

  • Opportunities for improving speed of current operations
  • Opportunities to improve implementation time (of scripts etc.)
  • Faster debugging
  • Knowledge ready for new business initiatives
  • Stretches your mind into new directions
  • Sharper mind throughout a lifetime

So what are you waiting for? Pick something to learn and stick to it – and do it just for you. Sooner or later, if you keep it up, your employer will notice.