The CS department is part of the MSDN/AA program. You can find information about gaining access to this software here. Mathematica is available through a campus-wide license held by the Physics department. Follow the link and log in with your UT EID to gain access.

Reluctantly, UTCS has started using hard quotas on home directories. You can read more about it here.

Not being able to save things to disk, or experiencing editor save failures are signs that your home directory may have reached quota. Use chkquota to see if you have reached yours. You can use du -sk ~/* ~/.??* | sort -n to see what is taking up the most space. Try removing some files to see if that fixes your issues. If the problem is still occurring, send mail to gripe@cs.utexas.edu describing the problem. We are NOT ABLE to raise your quota.

Changing your shell, mail forwarding address and granting yourself MSDN access can be done online. To change any additional information, send mail to udb@cs.utexas.edu from your CS email address with the changes and a staff member will take care of it.

We have no way of finding out what your password is, so you'll have to change it. You should visit our password update webpage and log in using your UTEID to change your password. Please read the instructions and information provided carefully. If that fails for some reason, go to ENS 31NE with a picture ID and talk to the staff there to have it changed. For security reasons, passwords are never sent via email. Also, any password update by any method can take a couple of hours to propogate through our network, so please be patient.

Yes, you can have your current account upgraded. Contact udb@cs.utexas.edu after the beginning of the semester in which you become a CS major -- we don't get registration information until then -- and request your account be changed to an under account.

You can see the expiration date for your account by typing finger username@cs.utexas.edu on the command line. Under and tmpclass accounts are automatically extended each semester provided the student who holds the account is enrolled in a Computer Science course that semester. For all types of accounts, notice will go out two weeks prior to expiration. If you have received an expiration notice, do the following, according to the type of account you have:

under - contact the undergrad advising office - they must verify that you have not yet graduated and are still a CS major. They will then contact us to extend your account.

tmpclass - email udb@cs.utexas.edu. If you are not enrolled in a qualifying CS class, however, your account will not be extended.

tmpmicro - email udb@cs.utexas.edu. You must be enrolled in an Elements of Computing course to maintain this type of account.

grad - grad accounts are changed to guest accounts upon graduation and extended for one year. To keep your account beyond that, you will have to have a faculty sponsor. They must request that the account be extended.

guest - an extension must be requested by the sponsor of the account. They will also receive the notice.

The public labs are located in GDC 3.302 and GDC 1.310. Each station contains a UNIX machine and a Windows machine with a KVM switch to go from one to the other. You can also access the UNIX computers remotely via ssh; view the public UNIX host status page for a list of the UNIX computers and their current status. These labs are open to all students currently enrolled in a CS course.

A lot of information about printers, including location, is stored in the file /etc/printcap -- you can look there for the location of a specific printer. You can also run man printers for usage and location information about the public printers.

A "public" machine is a machine that can be logged into by anyone with a CS account; the name linux.cs.utexas.edu is always aliased to a public Linux machine. You can use the command cshosts to find out more information about other machines on the CS network; type cshosts help or man cshosts for more information about how to use it. Alternatively, you can visit the public host status page for a list of public hosts and their current status.

You may be able to increase or decrease the resolution by typing "Ctrl Alt +" and "Ctrl Alt -" in X, using the + and - keys on the number pad rather than the ones between '0' and 'backspace'. If your windows are hanging partly off your screen, Ctrl Alt + will fix it; they're set up for a higher resolution than the default. If you have troubles with the default resolution on a machine in your office, please email gripe@cs.utexas.edu describing your problems and specifying your machine and we will attempt to fix things. We can typically change the default resolution or refresh rate upon request.

Assuming you want more than wireless networking, you have two options. One is only intended for short-term visitors and students such as undergrads without offices. These users can again use Horatio with the public DHCP network jacks located in all of our public unix labs. These jacks should be clearly labelled as public, Horatio connectors. Most will have ethernet cables already attached.

For longer term / office usage, we are happy to offer you a static IP address or a DHCP address. For DHCP, please submit a shopreq requesting a dynamic address, and informing us of the building, room #, and wall jack #, and we will set up a connection to horatio. For those wanting a static IP address, we'll need the following submitted in a shopreq (type 'shopreq' at the command line on a unix machine or visit this web page):

A requested hostname (in csres.utexas.edu).

Computer vendor make/model (e.g. Dell/Precision-390n).

The location of the computer. Please provide a Building AND a room number. (Please don't say something like Prof Smith's Laboratory)

The walljack number, or the label on the cable in some buildings, any number which identifies where the computer is to be physically connected to the network.

Operating system(s).

Name of computer's owner (i.e. who paid for it).

Name of the system administrator for this machine. This will be the "Responsible Person" and will be expected to be able to respond quickly and knowledgeably to reports of security violations and other types of abuse. He or she is expected to install, maintain, and run the computer in a responsible manner.

The UTID, if owned by the university. This will be a six digit integer, probably beginning with an '8' if it is a recent purchase. It will appear on a tag which has been attached to the computer by the University, and not the vendor.

If there is no UTID, then please provide the vendor's serial number. This is typically on the back of a computer, sometimes identified by "SN".

The CS department install of procmail which filters your mail upon delivery is specially configured for our environment. It is set up as usual via your ~/.procmailrc file, but with two caveats:

You may not run a program from your .procmailrc. This is to protect our mailserver (and thus your mailbox), not only from deliberately malicious actions but also from accidental misconfigurations which would swamp the server. Since our mail server does not allow user logins for the same reasons, this is an extension of existing policy.

You may not forward mail to another user via the '!' mechanism in a procmail recipe. This is to protect the mail server from the high load and eventual meltdown that can be caused by a mail loop.

With these restrictions in mind, the main use of procmail during message delivery at CS is to filter your mail in real-time into different folders based on headers (such as the score it received from our spam-analysis system, the sender, a mailing-list-specific header, or the subject).

Since we have disabled execute and forward functionality in procmail during delivery, we suggest using the example in the procmail(1) man page for a template in creating your own post-processing scripts. The version of procmail in /lusr/bin which you can run manually does not suffer these limitations.

(Search for the third occurrence of the string 'cron' in this man page to find the example script.)

Two changes you will need to make to that script are to change the $ORGMAIL variable to point to the actual location of the folder, and to provide a separate procmail recipe file to the executed version of procmail in the script (the line formail -s procmail < .newmail && will need to be changed to formail -s procmail /path/to/your/recipefile < .newmail && ).

These scripts can be run periodically via the cron(1) command to do the actions automatically, or you can run them before you read mail to do something like filter out the messages or text you don't like.

PLEASE NOTE: To avoid clobbering mail folders make sure all recipes start with :0:, not just :0. The procmailrc(1) and procmail(1) manpages have more details."

While there may be any number of reasons for the failure, lately there has been a trend among the big ISP's to start blocking outbound network traffic intended for mailservers on the internet, such as mail.cs.utexas.edu. The reason for the change is typically cited as spam prevention, a goal which the department supports fullheartedly. We recommend configuring your machine to connect with TLS or SSL encryption (see our faq entry: http://www.cs.utexas.edu/facilities/faq/406); if this fails please do not hesitate to email gripe@cs.utexas.edu and we will try to help you resolve the problem.

The POP/IMAP servers use this "dummy" message to maintain state across different instantiations of the server. When you read mail with a POP client like Eudora, that message gets created. You can't see it when you read mail with a POP client, but if you use another mail reader (such as mush) it will show it to you as a regular message. It's true that if you delete the message, your POP mailer will lose data about where things are stored, etc.

You will need to create a SMTP email password to authenticate with our SMTP mail server. This is not the same as your CS account password and must be set separately. You can do this online. The smtp authentication process is case sensitive for both the login name and the password.

Server: mail.cs.utexas.edu

Connection security: STARTTLS

Authentication method: Encrypted

Port: Default (or 587, see below)

If you are experiencing login failures, your ISP may be blocking/redirecting port 25/tcp, or your client (e.g. Outlook) may not be able to initiate a secure connection on port 25. In that case you can use port 587/tcp instead.

You can easily use the CS webmail to connect to your CS mail account. Simply log in using your CS account and password.

You can also use a third party webmail server, such as Yahoo. You can select options to have that service automatically pull mail from your CS account. This option is not recommended as we have no control over, or access to Yahoo's operations and you have no recourse if something goes wrong (ie they delete all your mail and fail to show it to you). But for those who already have Yahoo or similar service setup, it may be easier than setting up or visiting yet another location to retrieve mail. On Yahoo, select the mail tab, then "mail options", then "mail accounts" and add the CS mail server and your account. This transaction will NOT be encrypted, nor is their transmission to/and from UT so your password and mail contents are visible to any bad guys between you and yahoo and between yahoo and the CS department. Please see the previous questions in this FAQ section for the POP, IMAP and SMTP settings.

Forward your mail to a separate offsite address which already provides webmail, such as hotmail or gmail.

Use the 'vacation' program. You can read the vacation(1) man pages for usage info, but the quick-start method is to create a message you'd like to send in response to emails you receive and save it as ~/.vacation.msg, and then run vacation -i. To turn this off, simply remove ~/.vacation.msg.

All mail forwarding on the CS system is handled by a central user account database; .forward files won't work. To get mail forwarded, you should visit our mail forwarding webpage and log in with your UTEID. Mail is never forwarded past the lifetime of an account; however, alumni can request a lifetime @alumni.cs.utexas.edu forwarding address. In case you want to learn more about how to use procmail on our systems, check out the FAQ on procmail.

Our spam filtering relies partly on a bayesian filter, which requires constant training to keep up with the ever changing tactics of spammers. You can help us by sending a complete copy of your spam emails to nospam@cs.utexas.edu. Please note, this must be a *complete* copy of the email, including all headers. The easiest and best way to send the mail is to use your mail client's ability to "Forward as an Attachment".

You can type "man printers" for information on how to use the printers, what the printer names are and how to refer to them, etc. The commands to use the printer are: lpr -Plw[printernumber] [yourfile] - prints "yourfile" to the named printer lpq -Plw[printernumber] - displays the current print queue for the named printer lprm -Plw[printernumber] [job ID] - removes the job with ID job-ID from the print queue for the named printer. Job ID's are found with 'lpq'.

A lot of information about printers, including location, is stored in the file /lusr/share/etc/printcap -- you can look there for the location of a specific printer. You can also run man printers for usage and location information about the public printers.

Type 'lpq -Plw[printernumber]'. This will often display an error message such as "Out of paper" or "Paper jam". If one of these errors has occurred, correct it (put more paper in the printer or open it and clear the jam if the printer is not physically locked). If that doesn't fix the problem, or if no such problem is displayed, restart the printer daemon with the command /lusr/etc/restart_lw -Plw[printernumber] and see if that fixes it. If the printer seems to be hanging on a specific large job, try cancelling that job and restarting the printer daemon. If none of these steps clears the problem, submit a shopreq and describe the problems and the steps you've taken.

An Oracle database server is installed for use by some classes; check with the class instructor about how to get access to it and how to use it. The MySQL database system is installed in /lusr/etc, with the database server program (mysqld) installed only on the Linux machines and client programs and libraries on all of the architectures. MySQL was installed originally to support a staff project, which is why it is installed in /lusr/etc and not on the default path as why the server is installed only under Linux. We don't really have the resources to support a dedicated database for everyone to use, and we don't have the resources to let everyone run a copy of the database server on production machines all the time. However, if you want to run MySQL while you are actively logged in, you can use the --datadir=path argument to mysqld to tell it to look for the database files somewhere in your home directory. Try not to use too much space or processor time, and remember to shut down the server before you log out. Also, be careful about unauthorized access since the security of your database is up to you. If MySQL is abused to the point of causing problems for other people, we will have to turn the bits off to prevent anyone from using it. At the moment, we don't plan to install any web-based interfaces or any other additions to MySQL. For more information about MySQL, check the documentation available online.

Also, in some cases we can support your MySQL needs on a less-supported but departmentally maintained server. The faq page on Z has more information about the services provided there.

GNU gcc is available in /usr/bin/gcc. g++ is the C++ compiler based on gcc and is located in /usr/bin/g++. There are several additional versions of each of these (4.1, 4.3 and 4.4 found by adding -4.1, etc to the path).

Yes, the directory location is: /usr/bin/perl. Perl (Practical Extraction and Report Language) is a scripting language often used under UNIX. Perl provides access to all operating system calls but is interpreted (not compiled), so it is faster to code and easier to debug than writing, say, C; but it typically runs more slowly.

Yes, Python is located in the directory: /usr/bin/python. Python is an interpreted, interactive, object-oriented programming language that combines power with clear syntax. See "man python" for more information.

GNU gdb (/usr/bin/gdb) is available on all of the supported machines. ddd (/usr/bin/ddd) is a graphical interface to gdb. All debuggers should work for either C or C++, and possibly FORTRAN and Pascal as well.

In our continuing effort to keep UTCS a secure network, FTP access will no longer be allowed from outside of our network. The FTP protocol transmits your password in cleartext which presents a security concern.

If you need remote file access, we recommend using an SFTP or SCP client, both of which use strong encryption to protect your password.

New UNIX groups, for the most part, are only created for "official" department purposes (students working together in a class created at the request of the professor, for example). If you have a reason to need a group, Email udb@cs.utexas.edu, giving the name of the group you want, the login names of the people who need to be in it, and the purpose of the group. The group, if approved, will be created within one or two business days.

That functionality is typically provided by the GNU Readline Library, which is used by many applications such as shells (bash, tcsh, zsh), mailreaders (mutt) and many others. However, some applications are not readline-aware but fear not, there is a way to make them behave like they are! We have installed the program rlwrap which provides readline functionality to any text input program. It is in the standard path and can be run with any client application, though there are many applications (anything graphical for instance) with which it would not make sense. An example execution would be:rlwrap acl which starts the allegro common lisp interpreter with readline functionality.There is a man page (rlwrap(1)) for your edification.

The ImageMagick suite is capable of all types of conversion. Using it is simple: convert originalfile.format newfile.newformat convert automatically determines the original filetype from the file itself and chooses the output format based on the file extension you provide for the newfile. For example, convert file.ps file.gif will convert the file from postscript to GIF. see the convert(1) man page for more information on the formats it supports.

While ImageMagick supports multi-page GIF files, many utilities and viewers do not, so you may wish to either convert single pages of the PS file to GIF format, or first use the psnup command to reduce (the relevant pages of) your document to a single page

You can connect to a public CS unix machine via SSH. PuTTY and SSH Secure Shell are available for free from Bevoware. Alternatively, you can view the documentation on setting up a VNC server and use that method to connect to a CS host.

System news can be found on the System Status blog. A RSS feed of this blog is available for news tracking. If you prefer to receive these updates through email as they are posted, you can send mail to udb@cs.utexas.edu requesting to be added to the mailing list for system news.

The directory for this is /usr/spool/ftp/incoming. Change directory from any host on the CS production network, and create an upload directory for yourself with whatever name you wish and with mode 1777. That is,

$ cd /usr/spool/ftp/incoming

$ mkdir MySpecialDirectory

$ chmod 1777 MySpecialDirectory

Then tell your colleague to ftp into ftp.cs.utexas.edu, change to incoming/MySpecialDirectory, and upload the files.

Some notes:

Files can't be uploaded into the top level incoming directory. You must create a subdirectory for yourself.

Uploaded files cannot be downloaded by ftp again. You must retrieve them by logging into Unix and copying them to another directory.

Uploaded files are owned by the FTP server. For you to be able to read them, they must be public. This means other users can read them as well. You should watch for the upload, retrieve your files promptly, and remove them when done.

Incoming files older than 7 days are automatically deleted, and any upload directories thus left empty are also deleted.

To find a runaway process, use the ps command. On linux machines type ps -augx. The man pages (man ps) show all possible flags.

To kill a process once you've found its process ID (PID), type "kill PID". If that doesn't work, you can use "kill -9 PID".You should never issue the kill -9 -1 command unless you are outside of the X window system. Doing so with X running will freeze the console and require a reboot by the staff.

To find out which machine Firefox is running on, type:ls -l ~/.mozilla/firefox/*/lock

If there is a lock, it will be a symbolic link pointing to a file with the IP address of the computer where it is running followed by the process ID it is using. To translate IP-ADDRESS to a host name, type:host <IP-ADDRESS>

The process id should also be present, so type:rsh <HOSTNAME> kill PID

If your file starts with a minus, use the -- flag to rm; if your file is named -g, then your rm command would look like rm -- -g. As well, and especially if you have an unprintable character (output from ls looks like ?ile) you might try something like rm -i ./*ile which will also work for commands other than rm (grep for instance).

The "public" software is anything installed in the /p or /public directory (typically, actual programs are in /p/bin). This software is installed by non-staff (students, researchers, or professors) and is not monitored, installed or maintained by the staff; if you're having trouble with a particular program, contact the person who installed that package (as shown by ls -l) directly, or email public@cs.utexas.edu, which is a mailing list of all people who maintain programs in /public. If you want to enable your account to install software in /public, email udb@cs.utexas.edu and they'll add you to the group and mailing list.

Please don't use "find /", as it's very slow and a real drain on the network. Use locate by typing locate [string], where [string] is the name of the file you want to find, or part of the name. It's more appropriate to use find to find something in a fairly small area, such as your home directory or a /projects directory, neither of which are searched by locate. The basic find syntax is 'find [path to search] [expression to search for]'; please read the man page for find, for more detailed information.

You can find out how much disk space is in a particular directory (such as someone's home directory) with the command du -sk, if you have permissions on that directory -- if it's yours or if it's world-readable. You can also check the directory /lusr/share/doc/disk-usage for reports on who's using how much space on specific disks, although that information is updated hourly, not in real-time.

The default font for terminal windows run via the 'xterm' and 'rxvt' programs is set in your ~/.Xdefaults file; the line looks like XTerm*font: 9x15 . Change the 9x15 to the font you want to use. You can change the font for any application in the same way. To pick a font, use the "xfontsel" application. (10x20 is slightly larger than 9x15, and 8x13 is slightly smaller.)

You can also set the font upon startup to most Xwindows applications and terminals (including xterm, rxvt, konsole, gnome-terminal, etc) via arguments to the command, like so: rxvt -fn '-sony-*-*-*-*-*-*-*-*-*-*-*-*-*' Don't forget to put the argument in single quotes (') if it contains shell metacharacters such as asterisks.

By default, CGI scripts running on our server execute as the web user www; this user has no special permissions. Thus, the directory in which the script resides must be world-searchable, the script must be world-executable, and files read or written by the script must be world-readable or world-writable.

In certain applications, you may prefer that a script execute with your Unix account permissions so as to access protected data. We provide a "Secure CGI" mechanism for doing this.

Warning: Please carefully weigh your need for this feature against the security risks of a script running with the full permissions of your user account. You are responsible for the use of that account, whether by your own hand, by someone using a workstation where you left yourself logged in, or by someone exploiting a poorly written script which you have made available on the Web. You may wish to review our policies.

The basic guidelines for setting up a secure CGI script are:

Full script pathnames should contain only printing ASCII characters. They should not contain relative path components.

Script directory should be searchable by the owner and have the same owner/group as the script file. They should not be writable by anyone other than the owner

Script files should be a regular file (not a symlink), be executable by the owner and have the extension ".scgi".They should not be setuid or setgid or writable by anyone other than the owner.

Other notes:

Non-parsed-header scripts may be used with the usual nph- prefix.

Access control directives (in a .htaccess file) will not work for a .scgi script. Normally, this is not a problem, since the script is typically the action associated with a form in a .html file, which can be access controlled. Of course, the script is at liberty to implement any authentication for itself that it chooses.

This is a tough question; there is definitely some content such as sounds and images which will never be universally available to blind or deaf users. However for the most part, staying standards compliant and making sure that your pages have no syntax errors or dependency on a specific browser is the best way to be sure of reaching the widest possible audience.

The canonical reference for the most popular and most widely supported markup languages, HTML and XHTML, is published by the World Wide Web Consortium. This documentation is the agreed-upon standard for web markup across the entire internet. It is likely to be supported by all browsers, from cell phones and text-only browsers for the blind to the latest version of Internet Explorer.

To be sure you've created pages that not only meet the standards but fail to have any content-impairing typos, you should probably run them through the XHTML and HTML validator and potentially through the CSS validator as well, if you have used cascading style sheets for further page layout. Be warned that older or less capable browsers may not support CSS so do try reading your page without the CSS in the source to see if all text displays fully and legibly in its absence.

Although it is popular to write browser-specific code targetting IE or mozilla/netscape, and although such code may work on the majority of the browsers available today, you do limit your site's usefulness by doing so. Consider whether you think the cute tricks with the cursor or ActiveX controls are worth someone not being able to find the link to your resume or research-- Old, small, and handicapped accessible browsers may be unable to use your site and often will just ignore it instead of informing you. The "Viewable With Any Browser" campaign may serve to further enlighten you as to the rationale behind creating more compatible web pages.

If your computer is connected to the internet, you can run ssh -X hostname where hostname is the name of the computer that you want to log into. The -X flag enables X forwarding. You can then run X applications within that ssh window and they will display on your local desktop. For further information, such as getting this to work on the Windows operating system, see the SSH X Forwarding documentation page.

VNC is also available, although we generally discourage its use when X forwarding is an option.

There are a number of options available for your use. Some of the choices are: Fvwm, GNOME, KDE, TWM, and Xfce. You can set your windows manager by changing the drop box next to Sessions on the login screen that asks for your password.

If you have logged into our UNIX machines before they were all updated to Lucid, you will need to remove your old config files for the windows manager you are using. You can use Ctrl+Alt+F1 (Ctrl+Alt+F7 or F8 will get you back to the graphical login screen) to get to a virtual console and the dotfiles/directories in question are:

If you are using gnome as your windows manager and you try to use MATLAB, you may run into this issue. To fix the problem, go to System Menu -> Preferences -> Appearance, then select the 'Visual Effects' tab. Set the effects to 'None' and close the window. MATLAB should behave normally once this is done.