Welcome to John Perry's home page. This site will undergo more or less
continuous updating as the school year progresses. John can be contacted
via Email at:
perry@voyager.deanza.edu
Or by phone at:
408-864-8931
Photo Session Scripting Program
CIS 15BG Intermediate C
Unsorted Lab 5 Input File
Lab 5 Starter Code Plus Input File
Wrappers for Malloc/Calloc/Realloc etc.
CIS 18A Introduction to Unix/Linux
Vi Notes For People Who Didn't Yet Buy Packet
CIS 26B Advanced C Programming
Malloc/Calloc/Fopen Wrapper Functions
CIS 75B Internet Client/Server Programming
Perry's Lab Two Answer
Header File for Lab 1 and Beyond
Strtok and Strtol
Sigaction Handout
Fork, Waitpid, and SIGCHLD
Low-Level I/O and Incremental Read/Write
One Shot TCP Client/Server Pair
Multi-Client, Multi-Request Fork-Based TCP
File Locking and Unlocking with Fcntl
The Hostent Structure
Descriptor Polling with SELECT
"Paranoid" (Correct) Version of SELECT Server
Making, Traversing, Removing Directories
The UDP Protocol
Calling External Programs with EXEC
A Remote Directory Service Using Exec
Superservers
Scatter Read and Gather Write
FTW: The File Tree Walker
Shared Memory and Memory-Mapped I/O
Altering Terminal Characteristics
Named Pipe Client/Server
CIS 33B Advanced Perl Handouts
My Lab 5 Code
Data Files and Output for Lab 5
Elementary References
Reference Demo. Grep/Map Demo, too!
Grep and Map
Hash of List
List of Hash and Hash of Hash
Reference Tricks With Grep and Map
Sorts from Simple to Advanced
Non-Object Modules
Object-Oriented Perl
Object-Oriented Set Datatype
Databases and Persistent Hashes
SQL: Basics and Usage From Perl
Using SQL From Perl: The Core Operations
Hashing by Hand
Hashing to Variable Record Length Files
Processing Signals and Interrupts
Processes, Subprocesses, and Fork
TCP Client and Server
UDP Client and Server
Single-Threaded TCP Server
Processing Command-Line Options with Getopts
Binary Array Search and Binary Trees
File Locking and Unlocking
The Eval Command
Building Graphical Interfaces with Tk
Set Processing
CIS 33A Beginning Perl Handouts
New Problem 3 for Perl Lab 3
Old Perl Final With Answers
Basic Perl Regular Expressions
Basic Scalar Operations
Basic List Operations
Intermediate Lists and Basic Hash Operations
Using Lists and Hashes Together
The Substitution Operator
File Input/Output and Subroutines
Summary of Loop Control Structures
Printf and Sprintf
The Tr Operator
Directory Manipulation
The File Test Operators
Time-Oriented Functions
Advanced List Processing
Sorting by Non-Trivial Criteria
The File Module: Find, Copy, Mkpath
File::Find -- Crucial Details
Random Access File Manipulation
Advanced Strings: Index, Rindex, and Substr
The Range Operator and the $. Variable
The Greatest List Functions: Grep and Map
Perl Pointers: References
Reference Tricks With Grep and Map
Making Subroutine Libraries with Modules
CIS 89B WWW Server-Side Scripting
CSV Data File for Lab 2
A Bare-Bones Form
Checkbox Widget Illustration: Digital Clock
Checkbox Group Widget: Same Digital Clock
Password Field Widget Demo
Passwords Again: Results Printed AFTER Form
Radio Button Demo: Output AFTER Form
Scrolling Lists, Multi-Page Forms, Text Display
Illustrating Hidden Fields
Using Persistent Hashes As Databases
SQL: Basics and Usage From Perl
Using SQL From Perl: The Core Operations
A Start With SQL and Relational Databases
More Advanced SQL plus Using Subs In Scripts!
More SQL: Record Deletion and Radio Buttons
Full SQL: Inserts, Deletes, Queries, Updates
The Many Ways to Make a Simple Table
Sending Email From A CGI Script
Multipage Forms: The Basics of the Hidden Widget
MultiPage Forms: Using Databases, Error Forms
Uploading Files From a CGI Script
Popup Menus & Using Hidden To Retain All Forms
Multiple Popup Menus: No Layout Control
Multiple Popup Menus With Table Layout Control
Layout Control With Frames
Realtime Output: NPH Mode
More NPH Mode: Read Starting at End-of-File
A Simple Cookie Example
A Cookie Example With A Visit Counter
A Complex Cookie Example With Multipage Forms
How to Put List Params into Cookie Hashes
Hyperlinks With Added Color!!
Oh My God! I've Got To Move My Site!
Side-By-Side Frame Layout: "Newspaper" Mode
Bare Bones Cookies: What Does "Header" Do?