Friday May 20, 2005

Updating my Open Source project

I updated my Print Directory (pd) project page today.  I added a contribution section to the webpage which includes value-added utilities, updates, and pre-packaged distributions.   If you have a chance, take a look at my open source project, I'd like to know what you think.  There are links to Print Directory under the "Project" section of the "Links" on my (this) blog page.

Creating this project under freshmeat.net has been a great experience.  I started writing the "pd" utility before I came to Sun, Jan 1991.   I started writing it while I was working for Prime Computer (Computervision).  The Prime system's used an operation system called PRIMOS, it had a directory listing utility called LD.  My first exposure to UNIX was with SunOS 3.x on systems manufactured by Computervision (they had an OEM license to make Sun systems, I think the only one).  Using any new OS is challenging, you might know what you want to do but you don't know how to get there.  One big thing that frustrated me was UNIX's ls command.  I was use to PRIMOS's LD command.  It would (by default) display the full pathname of the directory being listed, tell you the number of FILES, show the FILES, tell you the number of SUB-DIRECTORIES and then show the SUB-DIRECTORIES.  It was visually very easy to tell which entries, in the current directory, where files (you could edit, view or execute) versus the sub-directories (which you could list).  I can't begin to tell you how many times I tried to "more" or "cat" a sub-directory or tried to "cd" to a regular file.  I suffered with this problem for a little while until I got use to adding the various options to "ls", which would somehow flag the non-regular files, making it easier (just a little) to "pick-out" the sub-directories.  This helped but I still wasn't happy ... I missed PRIMOS's LD command.

I decided to solve this problem myself with the help of a compiler.  After figuring out which system calls and library functions gave me what  I needed, I had my PRIMOS LD for UNIX.  One problem ... I couldn't use "ld", UNIX already had that two-letter command taken.  Some other trivial utility called the link-editor was named "ld".  The PRIMOS "LD" command became the UNIX "pd" command:

# pd

/   54 Entries.

13 Files.

.ICEauthority       .TTauthority        .Xauthority         .bash_history
.bashrc             .dtprofile          .esd_auth           .fonts.cache-1
.gtkrc-1.2-gnome2   .mysql_history      .profile            .recently-used
strcmp.d

41 Directories.

.Trash              .dt                 .gconf              .gconfd
.gnome              .gnome2             .gnome2_private     .gstreamer-0.8
.idmgr              .java               .mcc                .metacity
.mozilla            .nautilus           .sunw               .vnc
Desktop             Documents           TT_DB               bin
boot                cdrom               dev                 devices
etc                 export              home                kernel
lib                 lost+found          mnt                 net
opt                 platform            proc                sbin
system              tmp                 usr                 var
vol


There's a lot more options and features in "pd", please download the package or look at the manpage which has more output examples.

I wish I had contributed this utility to the community a long time ago.  The feedback has been great.  I got input from co-workers on how to improve the build / distribution process (I had to learn more about autoconf and automake).  The community keeps me updated on which platforms they're running the utility on.  I recently got contributions and references from people that are posting pre-compiled distributions.

I encourage everyone to consider either starting a open source project or at least contributing to one.  You'll get a good felling when you contribute and it's always a great learning experience.
About

Scott Fehrman

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
News

No bookmarks in folder

Projects

No bookmarks in folder

Ref. Material

No bookmarks in folder