Small Computer Support Page

Over the course of my work, I have come across a variety of information sources that I would have liked to have seen earlier. For this reason, I have assembled a “Guide to Computer Issues for People Like Me” - just in case there are others out there with the same problems I had.

A terse primer on using UNIX/LINUX. (postscript, or pdf)


Summary of some special HTML Characters


Operating Systems

Fedora
OSX

Web Browsing / Editing

Get Firefox I've been an Apple user from the very beginning, so it was a no-brainer for me to use Safari when I hooked up with MacOS X. One of the nicest things about Safari is that, with a .Mac account, I could have all my bookmarks synced over different machines. The posting of iCal files was also super handy. But .Mac is ∼$100 per year... Well, the iCal business is solved by running a WebDAV server, but what about the bookmarks? Enter Firefox. This is a really great browser, with all sorts of customizable themes and pluggins/extensions. And one of the extensions is the Foxmarks bookmark synchronizer! You plug this into Firefox, and set up a free account on their server, and voila! The really slick thing about this is that Firefox is a cross-platform browser. So if I do a little browsing directly from my LINUX server, I still have all my bookmarks. Firefox definitely gets my vote.
Amaya from W3C I haven't had much experience with this thing yet, but I've been experimenting with it, and it seems pretty cool. This program is put out by the World Wide Web Consortium, so you know it's W3C compliant. This means it will render pages accurately. But it's also an editor with a fairly straight-forward interface. It's a WYSIWYG editor, so you don't have to know a bunch of HTML/CSS/XML, and you don't have to use vi (though this latter point is sort of a downer for me...). And possibly the best feature: it's free! Give this a shot if you are looking for a web authoring tool. I think you'll be very happy.

Office / Productivity Software

OpenOffice.org I drop this in just to remind folks that one need not sell one's soul to the evil Microsoft empire to use standard productivity software. A while back, Sun began dropping their “Star Office” suite into RedHat distributions. Yeah, it was ok, and even kind of cool in that one didn't have to use Word or Excel. But it was immature. Well, here comes the most recent open source version: OpenOffice.org. I've been using it mostly for it's spreadsheeting (my text processing is still firmly rooted in TeX and LaTeX), and it works like a charm. I run it on MacOSX, and it seems to run under the X11 package. But that's easy these days on Mac. Just double click the UserX11.pkg on your startup disk and it's done! Openoffice.org is smooth, complete, cross-platform, and free. Check it out. Try it out. Use it. And just say “No” over-priced, monopolistic, vulnerable, and generally second-rate Microsoft products.
Sunbird Sunbird is the other piece to extricating one's self from .Mac. This is a stand-alone calendar program (by the Mozilla folks again) that read and writes the standard .ics calendar files that iCal generates. The really nice thing about Sunbird is that you can store your calendar files on a remote server and allow others to access and alter them. Well, this is bad if you let nasty people access them, but in terms of coordinating schedules and such, it's excellent. Since the calendar files can be placed on a remote machine, you don't ever need to worry about syncing issues. Of course, if you don't have access to the internet, then there's a problem... Sunbird is still in its infancy - it's only at version 0.3 as of this writing. But I've found it to be relatively robust. Try it out!

Programming Web Resources

Programming Books

I've found a number of books very helpful. Learning Perl, is an excellent introduction to PERL. I was able to get useful programs up and running within 24 hours of reading the first chapter or two. For an intro into C++, try C++: The Core Language. This book assumes you know C, and introduces C++ in terms of what C programmers already know and use. It is the only book I have found so far that could explain object oriented programming to me in comprehensible terms. The only problem with the book is that it doesn't include discussions of the C++ standard library. Practical C++ Programming does have a discussion of the libraries, as well as some more details on other aspects, but I find the programming style in this book rather horrid.

Despite the bad review it gets on Amazon.com, I thought Managing Projects with make was a good addition to my library. Yes, you might be able to get all this info from the man page, but I liked reading the book better. A couple of chapters, and you will find make is a rather powerful and helpful utility. I got Learning the vi Editor a while back, but have not used it very much. This is probably due mostly to my laziness rather than any problems with the book itself. Maybe one of these days I'll rediscover it... And just to prove that I don't read Oreilly books exclusively, if you are interested in learning about TCP/IP programming in C, check out Internetworking with TCP/IP (vol 3) by Douglas Comer and David Stevens. These guys have a really good introduction to this topic from a coding point of view, and I learned a little something from their programming style.

Plotting/Analysis Packages at a Glance

GnuplotGnuplot (no relation to the GNU Project): I haven't used this package for quite some time, but as memory serves, it is a fairly easy to use plotting package. Its major weakness is that seems a little too unsophisticated. I've had trouble making presentation quality plots with it. But, as a generic work-horse for throwing up points and things, it does fine.
SMSuper Mongo (SM): This package is my tool of choice for making all kinds of plots. The program is a bit harder to use than Gnuplot, but the results are much more to my liking. It is highly customizable, and supports macros (which really makes life easier). You can also compile SM commands into C programs very easily, which makes it very nice for graphical display of data. The catch is that SM is not freeware. You need to purchase the source code for a small fee.
PAW: This is a full-blown, and widely used analysis package from CERN. In my opinion, its primary strengths are in histogramming and function fitting. The down side is that it is fortran/kumac based - neither of which make it super friendly to C/C++ folks. The documentation is tough. Much of it seems to presupposes a working knowledge of the program. PAW is a top-level analysis tool, but you can call many of its core functions from your own programs with the HBOOK package. HBOOK, like PAW, is fortran based, but with Cfortran, you can use it in C programs as well. Here are the manuals for both. I think the HBOOK manual is much better than the PAW manual.
ROOTROOT (User's Guide): This is the C++ response to PAW. Also released by CERN, this package is an “object-oriented” version of the analysis routines in PAW. This makes the syntax much easier to remember/use for C/C++ folks. However, be warned that ROOT does not conform to the OOP practice of encapsulation. This is especially dangerous when you compile ROOT functions into your own C++ code. In fact, the package looks and feels like a fortran program that has been pushed through a fortran→C++ converted (rumor has it, this is, in part, true). If you are familiar with PAW, and you know some C++, ROOT should be fairly straight forward. However its documentation does tend to suffer from the same problems as PAW's.
Igor ProIgorPro

Analysis

Email

Email can be an extremely useful part of life - especially when you are working with a physically diffuse group of people such as I do. I used to use elm for reading email, but have recently changed to mutt because it comes as a standard part of the Fedora LINUX distribution. As with any tool, I think it is important to be aware of its limitations, risks, and consequences. In my opinion, one of the most important things to remember about email is that, under most circumstances, it is insecure and may be forged. You can sort and filter email messages with a variety of tools. One of the more ubiquitous is procmail. This filtering system may seem rather cryptic, but with a little patience, it seems to work fine for me. I'd strongly suggest checking out this Procmail Quick Start Guide first. It was the most helpful resource I've yet found. If you have procmail on your system, there is a nice little procmail-based spam filter called SpamBouncer. The maintainer puts out regular updates, and I've found that this keeps my inbox fairly clean. Finally, for folks looking to get more physical with spammers, here's a site dedicated to Spam Laws.

Secure Shell (SSH)

I'm a little surprised at the number of people I know who still use unencrypted login protocols such as telnet and ftp. But I suspect much of the reason is that folks don't want the hassle of switching. In fact, I find SSH to be a much more convenient way to connect to machines because it can be set up to work without a password (to be more exact, it can be set up so that you don't have to type your password in more than once per session). I currently use OpenSSH, and found this guide to OpenSSH Public Key Authentication Setup to be a relatively straight-forward way to bypass all that password typing. There is a competing commercial version of SSH that I used to use because it was free for academics (and everyone else in my department used it). But I currently like OpenSSH better. There are SSH clients available for those of you not on LINUX/UNIX machines. For Windows, PuTTY works fine. And for Macs, well, they now have a UNIX underbody! So all the nifty LINUX/UNIX ssh features are already packaged under OSX.

Other links

I haven't had a chance to browse through all these other links yet, but here they are in case you have the time...