Steven Lawrance
Welcome to the web site of software consultant and software engineering master Steven Lawrance. I enjoy building complete computing solutions at all levels of abstraction to automate business processes at a low cost, in a short time frame, and with high quality. Put my experience, interests, training, and expertise to work for you. Please feel free to contact me today.
At this moment, this page is under construction. This notice will go away by 2007-09-23
Interests and Consulting Services
These areas all share a common theme of putting software to work for you, regardless of the underlying technology. For me, computing solutions are not about the technology; they are about what the technology can do for you.
Mozilla Thunderbird and Firefox extension development
|
Microsoft Windows to Linux computer and network migrations
|
Custom software development
|
Linux, Apache, MySQL, and PHP (LAMP) solution development
|
Java application development
|
Linux server configuration and maintenance
|
Building and home automation
|
Experience
Team software
I materially participated in the team software projects listed below:
Bosch Security Configuration Assistant | An Eclipse-based application that generates three-dimensional security plans for buildings using a rule engine and three-dimensional visualization |
Reggie/CIS | A large 200-user multi-tenant three-tiered system that was used by all Ryan White Foundation CARE-funded AIDS service organizations in San Francisco in collaboration with the Department of Public Health AIDS Office of San Francisco and two direct partners |
Park 'N Park | A fault-tolerant, distributed, real-time three-tiered application for parking garage usage tracking |
Teacher's Pet | Shares a tab in your Mozilla Firefox browser with one or more remote browsers, which can be useful in virtual classroom environments |
URL Lock | Follow-up project to IE URL Lock that sports a configuration user interface and implements new ideas in visually disabling content on the web |
Individual software that I created
I wrote and maintain the following software:
Thunderforce | An open-source Mozilla Thunderbird extension for Salesforce.com |
IE URL Lock | A browser helper object (BHO) that prevents users from navigating to web sites in Internet Explorer and Windows Explorer while permitting URLs that match a Perl-compatible regular expression stored in the registry |
Backup system | Multi-platform, SSH-secured, Internet-based incremental backup system that I assembled and use to back up all computers that I manage |
Read-only filesystem | FUSE filesystem view that makes all files unconditionally read-only. I use this in my backup system for the web-based file restore interface |
PAM CueCat Module | Turns the CueCat barcode scanner into a pluggable authentication module (PAM) library, permitting logins with bar code scans |
GnuCash to QIF | Converts a GnuCash XML file into a QIF file |
Door Lock | Specification (not an implementation) of a secure residential door real-time, embedded software system that uses electronic locks, secure entry, easy exiting, and alarm state awareness to securely and efficiently manage a door |
Swing Inline Spell Checker | Inline spell checker that plugs into Swing's look-and-feel system |
DirList2 | User directory system that runs as a CGI to serve up user lists, search, and synchronize with the operating system's user database. When used with DirList2ODBC, the ODBC driver that I wrote for DirList2, the entire DirList2 system becomes a SQL-compliant database system within the limits of the DirList2 Server. This project began in January of 1998 (simply "DirList" at that time) and is still updated to this day on occasion. Bryant University continues to use this program for their student web site list |
FAT Recover | Manual FAT filesystem recovery tool that I made to help with manual floppy disk recoveries and to salvage my dad's laptop when Windows totally crashed |
Ariesbase | During the Summer of 1999, I worked with Ariesnet, Inc. on creating its Ariesbase intranet system. I mostly helped out with the backend functionality such as the security system and global includes. Ariesbase was written in PHP and is an ongoing project that will take another couple years to fully develop |
Bryant PRIDE | In the Fall of 1997, when I was a freshman at Bryant, I greatly enhanced Bryant PRIDE's site with several pages and JavaScripts. Over time, the site moved from static HTML to ASP to PHP |
ResNet Online | I rewrote the old site for ease of use with more capabilities. Automatic port registration and heavy database integration saved the ResNet program a substantial amount of time while greatly improving customer/student satisfaction. Read the History page for more information |
ActiveMail | Back when I used to do ASP, I wrote a SMTP / POP3 / FTPAuth object so that I could send mail |
CPU ID | A very simple program that returns info on the CPU that it happens to execute on |
DirList2ODBC | ODBC 2.0-compliant driver written for the DirList2 Server |
Disk Imager | Read, write, verify, and erase entire disks into/from raw image files. Similar to rawrite.exe, but actually works in Windows NT. Actually, Disk Imager only works in Windows NT/2000 due to how it opens the selected disk |
EzMIDI32 | A 32-bit version of the ScreenWindow+EasyMIDI libraries that I wrote for Grapevine High School |
Home Control | The project that marked my first significant work towards complete home and office automation systems |
LPD | Written for GCISD to allow employees to send AS/400 printouts to their local Windows printers. I wrote the piece that translates HP DeskJet 500 compatible instructions into a Windows GDI context, back in the good 'old days when printer manuals documented their control codes |
PortProxy | Program I wrote in college so that I could run servers from behind a firewall. When I put Linux on resnet.bryant.edu, I no longer needed this program, but it's still cool if you have Windows NT/2000 or 95/98 |
ScreenWindowX | An ActiveX version of ScreenWindow that I created during the ActiveX hype |
Trig Grapher | My first multithreaded Win32 program that I wrote in high school for fun |
256-Color SDK | Library that I wrote a while ago to easily manage 256-color bitmaps on 256-color displays |
AudioCD Pictures | Displays predefined pictures as a playing CD reaches predefined moments |
BBS Ads | Simply a program that can advertise bulletin board systems, when they used to be popular |
Bids-to-ASP | Converts American Airlines bidsheet files into Procomm Plus for DOS ASPect scripts |
CatSetup16 | Install/uninstall utility that I made a while ago so that I could distribute my programs easily |
Horses | A fun horse racing game that I made a long time ago |
KittyCat! Comm | Communications program with internetworking in mind. This was never finished, but it had some interesting ideas that I later found out existed in TCP/IP |
MCI SendString | Allows users to work with the Media Control Interface directly rather than through point-and-clicking |
MeowyMIDI | A sound font with cat meows and purrs. Includes several example MIDIs that use it |
PCL Page | Manipulate PCL-compliant printers with this nifty utility that works in both Win16 and DOS (the DOS program is linked into the Win16 as its DOS stub) |
ScreenWindow | Win16 console and MIDI library that I wrote so that students at Grapevine High School in Computer Science I classes could use MIDI in their music projects using Borland's Turbo Pascal. They now teach C++, and I subsequently made a 32-bit version of the library but this time using Win32's native console rather than my own |
SLOS-Win | Windows-based interpreter for SLOS, a crazy operating environment that I made a while ago |
AriesType | A typing program that I made while a freshman at Grapevine Junior High School (the 9th grade was in a separate school from the high school. That building is now Cross-Timbers Middle School, and grades 9-12 attend the high schools now) |
GlobalXMS | A small XMS memory manager that uses Windows-like memory manipulation functions (the XMS code itself was taken from Paul Chang's open-source XMMLIB.CPP) |
IntMap | A small image library that I wrote for a Pascal project in high school to provide blt-like operations in DOS |
Jingle Bells | A musical project that I did during the first year of Computer Science in high school |
SLOS-DOS | The original implementation of SLOS and the most correct (the Windows version has some problems) |
TSNHead | An online service charger that split the costs of using The Sierra Network (TSN) among my brothers and I. Should work with others such as Prodigy, but with today's unlimited access plans, this program is no longer relevant |
Animation Master | Really lame animation program that I made for SLOS |
FAT Checker | Think of it as a /sbin/fsck for SLOS FATs |
SLOS Modem | File transfer utility for SLOS and DOS |
TrackTrek | A track meet program that "keeps track" of events and allows others to view scores in realtime. This was never finished, but I have the source code available for download if you want to finish it or use bits and pieces |
KJMouse | Busy cursor similar to KDE 2.2's cursor for Java |
Software and project contributions
I contributed to the following projects:
Mozilla | Workaround code for a shutdown bug in Firefox (bug 239223) and helped others find the cause of a NTLM authentication crash in a pre-Firefox build |
Samba | Patch to allow the use of 32-bit user and group IDs in smbmnt |
Pan | Contributed a small multi-threaded bugfix to a function that was crashing on several important dialog boxes in version 0.6.3. |
PHP | Contributed the snmpset() function to PHP 3.0.12 and PHP4 Beta2 so that ResNet Online could turn on the ResHall ports when students registered their computers |
Spruce | Contributed several small usability patches and a fix for a thread-based crash that brought down Spruce while checking messages in previous versions |
Bryant University | During the Spring of 1998, I enhanced Bryant's main page with rollovers and images. Other miscellaneous pages were also updated, and the DirList project was started originally as a web directory for Bryant |
Training
Carnegie Mellon University
- Master of Software Engineering, Institute of Software Research
- Pittsburgh, PA
- Graduation: December 2006
- Masters group project: Bosch Security Configuration Assistant, which is an Eclipse-based application that generates three-dimensional security plans for buildings using a rule engine and three-dimensional visualization
- Project roles: Planning manager, software process manager, project risk manager, technology support manager, and quality manager
- Focus areas studied: Fault tolerant, distributed, real-time systems; software project management; formal models and analysis of software systems; software architecture; and software requirements elicitation methods
- Accomplishments
- As a team, we met and exceeded our client's original picture of success by the end of the project's one-year time frame
- I reduced the status meeting data collection time to less than 30 minutes through automation and used historical data to reduce our estimation error
- As the support manager, I kept our server and software available, secure, usable, and backed up using only one hour per week of my time on average throughout the project
- Quality point average: Graduated with 4.03 out of 4.00, which is a weighted GPA, due to earning several A+ grades
Bryant University
- Bachelor of Science in Business Administration
- Smithfield, RI
- Graduation: May 2000
- AACSB Accredited
- Focus areas studied: Computer information systems with a minor in applied business statistics
- Grade point average: Graduated summa cum laude with a GPA of 3.96 out of 4.00
- Leadership: Served as President of Bryant PRIDE for more than a year and conducted a Linux installation event
Certification
- RedHat Certified Engineer (RHCE; older version): 806200565301847