Category Archives: Software

FileZilla

I have taken over our webmaster’s job, following the departure of that esteemed and highly valued person a week or so ago. We are going to miss him in ways that we haven’t even figured out yet.

I’m scrambling to find out everything that the webmaster does…and finding that his tool set was basic in the extreme; roughly a text editor and and the superb open-source FTP program called FileZilla. With these two tools, he maintained two major web sites, and several minor mini-sites, built on-demand web pages for special projects, ran our DNS, managed our open-source survey system called LimeSurvey, did our analytics and search-engine-optimization (SEO), slung PHP code like a master, and managed a series of third-party advertising tiles and several mailing lists.  Whew!  
Advertisements

A Database for Grant Research

I put together a grants database screen (click to view full size) to consolidate information for funding sources, and to track dates and interactions.

It is definitely an evolving project, but contains the basic information need to contact the funder, the deadline dates involved, the funder’s areas of interest, and the typical range of a grant award.

So far, I’ve been concentrating on foundation funding. Many foundations typically ask for a letter of interest before you put together a full proposal. So, I’ve included multiple date fields, a deadline for a letter of interest, a deadline for a full proposal, and a date when they announce their award.

Originally I thought that this database would be mostly for research, but after working with the online grants database, Grantstation, I think I will reserve this database for funders that I really expect to submit to. Some ideas for future enhancements include:

  • Links to standard “boilerplate” paragraphs that are used in an application. 
  • Links to edit the proposal or letter directly in Word. 
  • Links to the PDFs of the proposal. 
  • Reports that create a grants calendar. 
Before anyone comments that “you should really use X software” for this purpose, I just want to say that I’ve used several in the past, including DonorPerfect and Blackbaud, and evaluated many others. Right now, I’m in the process of rethinking my entire workflow automation from the ground up, and this very lightweight approach is just what I’m looking for. Plus its in FileMaker, so I can run it on my Windows machines at work, or my Macs at home.     

Alabama Eye Bank runs on FileMaker Pro.

Over at  Tech for Home Healtcare,  I’ve described how the Alabama Eye Bank uses FileMaker Pro to manage the process of receiving donated corneas thorough finding a recipient and scheduling the surgery. It is an amazing application that shows the cross-platform versatility of FileMaker, hosted on Windows servers, and deployed to Mac workstations, iPads, and iPhones.  

FreeNAS: Automate Drive Mappings for Windows Users

This is the third in a series about FreeNAS, the free network attached storage application which allows you to create an inexpensive but highly capable network file server for backups, iTunes, and general file sharing. Our application is a server for student data. We want to give each student a secure folder in which to store files that they create and use when working in our student computer labs.  The two previous postings are:

Creating a FreeNAS server for student data

Adding students and creating folders 

Note that the first link picks up at the point that the FreeNAS server software has been installed on to server hardware with a minimal configuration. The FreeNAS web site has links to several tutorials as well as the official setup guide.

By the way, FreeNAS installs really nicely within a virtual machine so you can easily test it out. I’ve got it running in Parallels on my MacBook, with software RAID 5 providing redundant disk storage.

Mapping a drive to a student folder

Once I set up the student’s folder and account on the FreeNAS server, I wanted to be able to give them the opportunity to access it from any workstation in our student lab.  The cleanest way I could think of was to create an icon on the desktop which runs a script. The script does the following:
1. Asks for the student login name
2. Asks for the student’s password
3. Maps the H: drive to the student’s folder on the FreeNAS server.

Student folders are named exactly the same as the student login, and they all appear under a shared folder called “StudentData”.  The full path is /mnt/StudentData/.  So, when student Myron Kapoodle logs in with his user name mkapoodle, the script takes him to: 

/mnt/StudentData/mkapoodle

Thus, when the student accesses drive H:, they find themselves in their own folder. They can’t select a folder “above” their own, and they can’t access anyone else’s folder, even if they can see it when browsing around the network neighborhood.

The Script

' VBScript to map a network drive.
' Heavily borrowed from ....
' Guy Thomas http://computerperformance.co.uk/
' Larry Keyes http://www.techfornonprofits.com
' ------------------------------------------------------'
Option Explicit
Dim strDriveLetter, strRemotePath, strUser, strPassword
Dim objNetwork, objShell, objFSO
Dim CheckDrive, AlreadyConnected, intDrive
strUser=""
strPassword=""

' This section gets the name and password
strUser=InputBox("Enter your User Name")
strPassword=InputBox("Enter your Password")

' The section sets the variables.
strDriveLetter = "H:"
strRemotePath = "\\freenas\StudentData\" & strUser

' This sections creates two objects:
' objShell and objNetwork and counts the drives
Set objShell = WScript.CreateObject("WScript.Shell")
Set objNetwork = WScript.CreateObject("WScript.Network")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set CheckDrive = objNetwork.EnumNetworkDrives()

If objFSO.DriveExists(strDriveLetter) Then
objShell.Popup "The H: Drive is already mapped"
objNetwork.RemoveNetworkDrive strDriveLetter
strRemotePath = "\\freenas\StudentData\" & strUser
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath , false, strUser, strPassword
Else
strRemotePath = "\\freenas\StudentData\" & strUser
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath , false, strUser, strPassword
End if

'Section which actually (re)names the Mapped Drive to eliminate naming problem.
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace(strDriveLetter & "\").Self.Name = strUser
Wscript.Echo "Check : "& strDriveLetter & " for " & strUser
WScript.Quit

There is some extra stuff in there that attempts to fix an issue that appeared in Windows 7, where if the drive mapping is reused, it shows up with the name of the previous user.

Our student workstations have a single “student” local account.  Every student logs in to that account when they use the workstation. There are no individual user profiles. In some cases I have the student account log in automatically, and I’ll probably do this on all machines that use the FreeNAS network so that a student doesn’t have to log in twice…once to the desktop and once with their own user name and password on the FreeNAS server.

This script should be installed on each Windows workstation, with a desktop icon to appear on the desktop of the student account.

Two other observations and questions:

1. Obviously you can simply map a drive from the command line using Start->Run->CMD, and then at the prompt  type MAP H: /freeNAS/StudentData/mkapoodle.

2. I searched all over for a more elegant way to have a screen that came up that would ask for the name and password and then make the call to create the drive mapping. First I looked at C#, then, because Visual Basic has a “shell” command, I switched to VB. However that required a full-blown Windows installation of the .exe file, as well as a batch file which was called by the VB program. I finally decided I could live with two windows popping up; one asking for the name and another for the password.

Vista to Windows 7 upgrade on Mac Parallels


Earlier, I did a couple of fresh installations of Windows 7 and found it agreeable, so now I’m upgrading the Vista VM running on my iMac with Parallels 4.0. This has presented various points of interest .

1. You can do an in-place upgrade from Vista to Windows 7, but not from Windows XP.

2. I had to increase the size of the Parallels Vista VM disk from 30 gigs to 48 gigs to accommodate the installation files for Windows 7. You do this in Parallels through the Parallels Image Tool which expands the disk partition size. Before doing this is will merge any snapshots that you’ve taken. I had only a single snapshot that I had created when first installing Parallels a year ago. Rather than allow this merge, which would have taken several hours, I exited out of the program, deleted the snapshot through the snapshot manager, then reentered the Image Tool and performed the expansion in a about 30 seconds.

3. I increased the available RAM from 1 gig to 2 gigs, at least for the installation, since it was a stated requirement to have more than 1 gig. I may crank it back to 1 afterwards.

4. Among the steps during an upgrade, there is “Gathering files, settings and programs” The count of these was 414,061. That is not a misprint. Amazing, after less than a year of running this particular Vista workstation how much crap you accumulate. I’m also wondering at how they calculate the percentage in the upgrade status screen (above) which doesn’t seem to correspond with the numbers.

My guess is one reason XP isn’t supported for an upgrade is that XP still runs nicely on smaller, older machines, and these are probably not good candidates for a Windows 7 upgrade… notwithstanding the fact that Win7 is supposed to have a smaller footprint both in disk space and memory requirements than Vista. Accordingly, any machine that can run Vista should be able to accommodate Windows 7.

Rosetta Stone Language Learning Software

You’ve probably seen the silly ads in those upscale magazines… “she was an Italian supermodel, he was a farm boy from Omaha”… or something similar. Very weird ad campaign, perhaps, but the consensus among many foreign language educators, and teachers of English for speakers of other languages (ESOL) is that Rosetta Stone is a powerful program for teaching a second (third, fourth… ) language.

One of my clients, a provider of literacy and workforce development education has been happily using the standalone version of Rosetta Stone for some years. A couple years ago they somehow got talked into buying a network version which requires installation on a network server, and some hours of configuration and installation. This was probably not a good choice for them; they don’t really have the wherewithal or the need for this. After several weeks of phone calls and eMails attempting to exchange the licenses for single-user copies, we gave up and are now attempting to install the network version. (To be fair, their exchange policy states that there is a 180 day period after purchase in which to return their products…and we’re actually attempting this project 18 months or more after they purchased the program).

Rosetta Stone is available in several different configurations, including an online subscription which can be used via a web browser. Either this or single user copies would have been ideal. Instead, what they were sold appears to be the Rosetta Stone Enterprise version which includes a management server which tracks student progress.

One ironic twist is that this network edition includes the open source MySQL database and the Apache web server. Yet the Rosetta Stone server requires a Windows machine to run. So, instead of the server running under Linux, you have to have some kind of Windows box to host the server applications. The server installer then installs MySQL and Apache for Windows running as services and also installs Ruby. The server requires a static IP.

This was not something we wanted on our organization administration file server which is a a Windows 2003 Server. Hence the Dell T105 mentioned previously, running Windows XP.

Once the server applications are installed, you install the languages. In our case we have three levels of English, each on a its own CD. There is an installation program which prompts for the language CDs, and then gives you the option to activate them.

Activation is rather like activating Windows over the internet. For each language/level you’ve purchased, you can have one student running the program at a time. The license keys are similar to windows…. four groups of six letters and numbers. If you have already activated a language license elsewhere, then activation will fail…you have to go back to the computer on which you originally performed the activation, and “remove a language”. How this would be resolved if a hard drive had crashed or the computer was otherwise unavailable, I’m not sure.

The Rosetta Stone Manager is the management interface that allows managers to create user accounts for Rosetta Stone. This program is installed separatly from the server and is available in a Windows or a Mac version. The Mac version appeared to work OK, even on Snow Leopard.

Before going further, I called Rosetta Stone Tech support to inquire about updates. I figured that since the software was 2 years old, they probably had updated it within that time and there were no obvious links in the screens to obtain updates. Oh, yes… they would send new disks, and I need to do a complete reinstall. (Sigh), another three hours out the window. As Jerry Pournelle says….”we do these things so you don’t have to”.

After preparing the server. and adding myself as a user, I then attempted to install the workstation version of the software onto my Vista machine. This runs an Installshield installation. It worked great on an XP box. I was able to log in to the account that I set up in the Rosetta Stone server, and run the program. Seemed to work fine in a Vista session on my Mac with Parallels.

There is also a native Mac installer; this seemed unusual as I don’t recall ANY Mac software, no matter how complex, which actually requires an installation process on the Mac other than copying the application file to the Apps folder. This installer, “powered by Vise X” so far seems to be doing a search of all my hard drives. Once it does the search however, it then installs over 2000 files (!) including a Flash Player and a ton of JPG and Gif graphics files. Still, the application came up fine.

So, we’ve now got Rosetta Stone running on a Mac machine, a Vista virtual machine within Parallels on the Mac, and on an XP machine. I’m feeling confident enough to bring the server in tomorrow for a trial run.