LLTI Archives

August 2002, Week 1

LLTI@LISTSERV.DARTMOUTH.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
LLTI-Editor <[log in to unmask]>
Reply To:
Language Learning and Technology International Information Forum <[log in to unmask]>
Date:
Wed, 7 Aug 2002 16:35:23 EDT
Content-Type:
text/plain
Parts/Attachments:
text/plain (278 lines)
--- Forwarded Message from "Jason Filice" <[log in to unmask]> ---

>Date: Wed, 07 Aug 2002 09:31:33 -0700
>Subject: Re: Fwd: #6773 Language Lab
>To: [log in to unmask], [log in to unmask],        [log in to unmask]
>Cc: [log in to unmask]
>From: "Jason Filice" <[log in to unmask]>

------------------

>--- Forwarded Message from Aleta Anderson <[log in to unmask]> ---
>
>>Date: Tue, 6 Aug 2002 12:02:00 -0700
>>To: [log in to unmask]
>>From: Aleta Anderson <[log in to unmask]>
>>Subject: Language Lab
>
>Does anyone have any ideas about daily (or weekly) restoring hard drives
>in
>a lab? We are hesitant to try RevRDist, as it may not work with both
>Macintosh OS 9 and OS X on the machine. The graphics program (with whom we
>share the lab) will be using OS X, but the language programs do not work
>in
>OS X, even in the Classic mode.
>
>It would be very convenient to be able to run a program that would restore
>the language part of the disk, removing all applications and files that
>have been added by individuals over the week. Please let us know your
>thoughts and experience.


=======================================

There are several options for keeping a lab hard drive refreshed, even if
you want it to be free.  As with most things, you'll have to work a little
harder for the free stuff--in this case that mostly means writing some
AppleScript.  I will assume that your booting Mac OS 9 and into Mac OS X
with Classic mode.  If you don't need Classic mode while booted into OS X,
it simplifies things considerably; more on that later.

*Mac OS 9 booted*
If you have or are able to get Mac OS X Server, then the easiest solution
for the OS 9 environment would to boot into Netboot for the classes that
need it.  In that way you never have to worry about maintaining an OS 9
load set that needs to be refreshed, because all you have to do is
re-Netboot the Macs.  The added benefit is of course that when you no
longer need to boot into OS 9, you can repurpose the Server as a web
server or the dozens of other things OS X Server can do.

If you need to do things on the cheap and do not have an OS X Server, then
I suggest you go with Mac OS 9's built-in Multiple Users abilities to
create a restricted account (not panels), which you can optionally have
automatically log in when the Mac starts up.   Alternately, you can use
some third party software, as we do, such as FoolProof or On Guard.  I've
had more success with On Guard than with FoolProof, but that's another
email.

When it comes to keeping the software refreshed, the Multiple Users or
third party solution will allow you to keep users from changing everything
except the individual applications' preference settings, any documents
that you allow the user to save to the hard drive (such as in the local
disk's Documents folder), and possibly the Mac's chosen desktop printers
(because most labs leave the Chooser accessible, even though Network
Browser works perfectly well--it can even connect to FTP servers if you
start the address with ftp://).  

*Refresh OS 9 with AppleScript*
A solution is to delete the contents of such Documents folder and to
refresh the contents of the Preferences folder.  I believe RevRDist could
provide this, as well as Apple's Network Assistant, but I like to use an
AppleScript to do it.  The advantage of using AppleScript over RevRDist
(and the sometimes unreliable and spotty Network Assistant) is that
AppleScript can delete and recreate desktop printers, while using
something like RevRDist will require knowing exactly what visible and
invisible files in the System Folder need to be refreshed, and even then
the printer's icon (for those who care about such things) tends to revert
to the generic printer icon.  Also, you could use both and have RevRDist
do some of the work and AppleScript do the rest.

Basically what the AppleScript needs to do is move the contents of the
Documents folder to the Trash, then do the same with the contents of the
Preferences folder, keeping any files which should be unique to each Mac,
such as TCP/IP Preferences, AppleTalk Preferences, Norton Schedule File
and LiveUpdate Preferences, File Sharing CP prefs, and the Users & Groups
Data File.  Next, refresh the preferences with a backup copy either
elsewhere on the local drive or from a file server.  

The final two steps would be to empty the the Trash and restart the Mac to
use the refreshed settings.  However, that won't work for one or two
reasons: locked items and in-use items (files that are still open in some
application, including preferences used by system software).  These two
reasons are also the reason why you cannot simply use a "duplicate with
replacing" command to refresh the contents of the Preferences folder; the
Finder simply will not let you replace a file that is open or locked.

First of all, if any of the items moved to the Trash were locked, then you
cannot empty the trash using an AppleScript command (there is no
AppleScript command for holding down the option key while emptying the
Trash).  Therefore, you need to unlock all the locked items in the Trash,
and the algorithm to do such a thing can be complicated.

The second obstacle, open files, usually requires restarting the Mac.  For
that reason, I have the Trash emptied after the Mac is restarted.  You can
create a separate AppleScript application that only empties the trash.  I
like to have the cleanup script, just before restarting the Mac, simply
create an alias of this empty-trash script to the Startup Items folder. 
Then, after startup, the empty-trash script can move that alias to the
Trash, and then empty the trash.

As long as you restart the Mac first, however, the emptying the Trash can
be done manually by lab staff, which also negates the need to unlock the
contents of the Trash because the staff can just Option-empty-Trash.

Deleting and recreating desktop printers is a process which basically
involves stopping all the desktop printer print queues, deleting all
queued print jobs, deleting the printers, and creating the desktop
printers with the correct settings (including the PPD file).  These
desktop printing commands can be found on Apple's
<http://www.apple.com/applescript/help_mods.html> web site.  If you would
like to see my AppleScript code for all of the above, just ask me.

*Mac OS X*
Now, for the OS X lab, it is also possible to use Netboot if you install
Apple's latest version of Mac OS X Server 10.2 (Jaguar Server), because it
finally adds that ability for Mac OS X clients.  However, if you intend to
spend most of the time booted into OS X, and especially for video and
graphics programs, that is probably not a good solution.  If the OS X
Netboot works the same as the OS 9 version, then everything written to a
hard drive is actually being written to the server temporarily, which is
not good unless you have one heck of a fast server and some wicked fast
network bandwidth (full gigabit Ethernet from the workstations to the
server).

Mac OS X Server 10.2 will also include a feature for automatically pushing
out software installs, and in conjunction with Apple Remote Desktop,
should solve this refresh problem nicely--but for a price.  However, if
you need to keep things cheap, below is how  I would do it.

With Mac OS X, refreshing things get much simpler (especially if you can
stay away from Classic).  If you create your setup such that the default
user(s) only have normal NON-administrator privileges, OS X will keep them
at bay by default.  Almost all of the stuff users can change or mess up
will all be kept in one tidy place (with the exception of the Mac OS 9
Applications and System Folder, which are both left unprotected by the Mac
OS X folder privileges).  

The users will be kept out of certain System Preference panes, and will
only be allowed to save and make changes to files within his or her own
directory (e.g. /Users/labuser/).  The user's Desktop, Documents,
preferences, and anything else the user tries to install will only be
installed or changed within the appropriate locations in the user's home
directory, found within the Users folder (again, except for the Mac OS 9
Applications and System Folder).

I am still developing the exact scripting to accomplish this, but
basically the process is as follows: (1) log the user out; (2) delete the
contents of the generic lab user's folder; (3) copy the refreshed settings
backup (similar to the OS 9 stuff above) from another location on the
local drive or from a file server.  Bare in mind that all of this needs to
be done using root level privileges, meaning you cannot simply log in as
an administrator and expect to be able to start deleting a user's
directory and replace it with a new one--that's where AppleScript's
fantastic integration with Mac OS X's Unix side comes in.  In other words,
you need to have AppleScript execute some Unix commands that it will
execute as the root user and do all these things.  Don't worry about that,
however;  when I come up with the code, I would be glad to post it to this
listserve.


As for all the automated AppleScript stuff above, I haven't gotten it all
quite automated in the sense of automatic scheduling.  I just found it was
easier creating an AppleScript application that our lab staff could walk
up and double-click once a week or could use some other software (Apple
Network Assistant, remote program linking, etc) to remotely invoke the
scripts.

*Mac OS X with Classic*
When you are using Classic in Mac OS X, things get a bit more complicated.
 You can still refresh the OS X user folder as I described above. 
However, because you cannot lock down Classic's System Folder with OS X
(you can, but then Classic will refuse to startup).  My solution was to
keep the Classic System Folder unprotected, but to create a copy of it
which could be refreshed when the rest of the OS X user environment is
refreshed.  

The thing to do is to create a System Folder that is intended just for
booting into Classic.  This folder will include only the extensions
required for Classic to startup and have networking, plus any extensions
required by any of your Classic applications.  This will keep the Classic
system a few hundred megabytes smaller and make it startup and operate
much faster.  Directions for creating an optimized Classic folder can be
found at many web sites listed below.

Then, use Disk Copy to create a compressed read-only image of that Classic
System Folder.  This will give you an image file that is as small as half
the size of the actual Classic system folder.

Leave the Classic System Folder in the root of the hard drive and make
sure the Classic system pane is set to use it for Classic.  The Classic
system folder should have read/write access by everyone (use OS X's Show
Info command).

If you also have a normal System Folder (or any other folders that may be
on another partition on the Mac and for which you need protection), be
sure to set Mac OS X to give all users ("Owner," "Group," and "Everyone")
read-only access to it.

When the automated script runs, it should shut down Classic (not necessary
if the user is already logged out), mount the disk image created above,
delete the contents of the Classic System Folder, and copy the contents of
the mounted disk image to replace the Classic System Folder.

I am still working on this script "on paper," but as soon as I have a few
machines to test, I think I will finally be able to make some real
progress.  I'll let you folks know.

*Other Resources*
Also, although it may seem like it at times, you are not the only one
trying to do the exact same things in creating an OS X lab.  For that very
reason, there is a great site with a great deal of information including
techniques, documentation, software tools, thought process of developing a
lab, and even an explanation of why on Earth even create a Mac OS X lab. 
The following are several other resources on the Web:

Mac OS X Labs
http://www.macosxlabs.org/

Optimizing Classic
http://www.macosxhints.com/article.php?story=20010413120058733

Optimizing Classic
http://www.bombich.com/mactips/optimize.html

Classic minimum System Folder
http://mc04.equinox.net/informinit//exposf2002.html

Using the Classic Environment in OS X
http://www.InformINIT.com/exponyc2001.html

Troubleshooting the Classic Environment
http://kbase.info.apple.com/cgi-bin/WebObjects/kbase.woa/111/wa/query?type=id&val=PQ.106677

Classic Playing Nicer (faster)
http://www.macosxhints.com/article.php?story=20001221185034927

Setting up Macintosh OS X 10 Web Browsers for Multilingual and Unicode
Support
http://www.hclrss.demon.co.uk/unicode/macbrowsers_osx.html

Mac OS X: About the "Install Mac OS 9 Drivers" Option in Disk Utility
http://docs.info.apple.com/article.html?artnum=75275
http://www.info.apple.com/kbnum/n75275

Mac OS X 10.1: How to Set up Open Firmware Password Protection 
http://www.info.apple.com/kbnum/n106482 

HideOrShowPreviousLogin: How to disable the feature in which the prior
user's login name appears in the login window in Mac OS X
http://www.info.apple.com/kbnum/n106691 

ASM: the reincarnation of the application switcher menu.
http://asm.vercruesse.de/

BatChmod: manipulates file and folder privileges and empties a stubborn
Trash in Mac OS X . 
http://www.macchampion.com/arbysoft/


--Jason Filice

  Student Systems Administrator
  Language Lab, Institute for World Languages and Cultures
  http://LanguageLab.csumb.edu
  CSU Monterey Bay
  100 Campus Center, Building 48, Room 119
  Seaside, CA 93955-8001
  831.582.5046

ATOM RSS1 RSS2