Alvin Alexander | Java, Scala, Unix, Perl, Mac OS X

Here's a link to a quick tip on using pax instead of tar to create a large archive. The thing that got me into this problem in the first place was the new Java source code warehouse, where you can "Learn Java by Example". I basically put a search engine on top of a bunch of good open source Java projects to create something that I hope is useful.

I had a problem using the tar command this morning while trying to create a large archive, and rather than figure out what in the world I was doing wrong with find, xargs, and tar, I decided to use pax instead. It worked great at creating an archive file that tar could still read, so instead of fighting with the find/xargs/tar three-headed monster to create a large archive, pax bailed me out.

Linux process question: How can I determine which files are open by a process on a Unix/Linux system?

It seems like a couple of times a year I run into a situation where I have a zombie process that I need to get rid of, but before killing it off, I want to make sure I'm killing the right thing. Some times when a Linux process is in a zombie state, you can't see the information you need with the ps command, so you need something else.

I don't know about the mental part, but physically I'm back from Alaska. While waiting for some sys-admin things to get done last night I wrote a few Unix/Linux tips in the "etc" section of the blog. This includes tips on extracting lines from the middle of a file, determining the free memory on a Linux system, using the nohup command, and displaying nonprintable characters from a file. Busy night.

Although I've written my own Perl program to extract lines from the middle of a file, I was just reminded that this can be done with the Linux sed command.

Here's a simple sed command example. Supposed you want to print lines 500 through 600 from a file named reallyBigFile.txt. Just issue this command and you'll get what you want:

sed -n '500,600p' reallyBigFile.txt


I'm often asked how you can determine the amount of free memory (RAM) available on a Linux computer system. Here are two ways I know:

cat /proc/meminfo



Linux nohup FAQ: What is the Linux nohup command? Can you share an example of how it's used?

So you want to log off and go home for the night, but you need to run a job (process) on your Linux or Unix system that's going to take a couple of hours? Fear not, the Linux nohup command ("no hangup") will help you out.

I just ran into a need to see what non-printable (non-visible?) characters were embedded in a text file in a Unix system, when I remembered this old sed command:

sed -n 'l' myfile.txt

Note that the character in that sed command is a lower-case letter "L", and not the number one ("1").

This command shows the contents of your file, and displays some of the nonprintable characters with the octal values. On some systems tab characters may also be shown as ">" characters.

Here's a quick example of how I create a box with borders using Latex. I also show how to include a box inside a table. My motivation for this is discussed there also.

Okay, now I'm getting into the crazy LaTeX code. I'm converting HTML UI prototype images into LaTeX so I can include the prototypes in my Requirements Specification docs.

So, that being my motivation, here's some LaTeX example code that shows how to display the equivalent of a textfield inside of a table. At the very least, this demonstrates how to use the LaTeX fbox command. :)

Unfortunately, time does not permit me the opportunity to delve deeply into my thoughts here. So, here's a short list of areas within the development process that developers think are "nonnegotiable":

  1. Code quality. No sloppy code, no repeated code.
  2. Source code control. Gotta have it.
  3. Repeatable build processes.
  4. Dedicated development, test, and production environments.

There is also a secondary list of items that are close to these ... but that will have to wait for another day.


One quality I've seen in great developers is that they are vigilant, merciless, and uncompromising in certain key areas. These are areas of the development process that are nonnegotiable. Even on their laziest days, these are the practices that they know that, if they break the rule once, they may break it again, or that this might open the door for another person to break this rule.

Big-time sick today, and I'm trying to slip in a little work between sleeping spells, but Flash is killing me on my slow home PC. Here's a link to uninstall the Flash plug-in. Seems like Macromedia could provide an uninstall program or otherwise make this easier (argh!). I don't think most people would be brave enough to follow these instructions ... but maybe that's the point.

I've done it -- I cracked the code to the Pandora's Box known as ABLE, the Agent Building and Learning Environment from IBM. Their documentation makes it almost impossible to get started with ABLE, but now the code has been cracked. :) More details soon ...

I'm not sure this is *the* reference, but here's a Latex help file that helps:

There's also a Postscript version available on the site for easier printing.

Here are a few others with different formatting styles, including some duplicates:

LaTeX FAQ: How can I print a chapter or section without a corresponding sectioning number?

Use the * version of the chapter and section commands, like this:

% a sample chapter
\chapter*{Latex FAQs}

% a sample section
\section*{Latex FAQs}

Note that the "normal" way of doing a chapter or section, which would include the correspond chapter or section number, is like this:

% a sample chapter
\chapter{Latex FAQs}

% a sample section
\section{Latex FAQs}


LaTeX line spacing FAQ: How can I control the line spacing in itemize and enumerate tags?

What I did was to create my own LaTeX command, and then use that command instead of the traditional enumerate tag. (This works just as well for the itemize tag.)

The LaTeX example below shows how to create your own command named packed_enum. After you define this command, just use it instead of enumerate or itemize, and your line spacing will essentially be reduced to single line spacing.

LaTeX FAQ: "How do I use font colors in LaTeX?"

Defining and using font colors in LaTeX documents turns out to be pretty easy, and it's a great LaTeX feature. Although my choice of colors may leave something to be desired, this example requirements specification was written with LaTeX, and converted to HTML using the latex2html conversion program.

In the example below I'm showing how you can change a bunch of LaTeX document length parameters. The values don't really make any sense -- I've just thrown some numbers in there. I just want to remember how to do this for the next time I need to create a LaTeX PDF document.

(For what I'm trying to achieve today my goal was to get rid of all the margins on the left side of the page. Then I decided to throw in a few other values.)

I found some of these LaTeX examples on pp. 84-89 of The LaTeX Companion.