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
Wrappers for Malloc/Calloc/Realloc etc.
Starter Code and Kit for Lab 5
CIS 18A Introduction to Unix/Linux
Vi Notes For People Who Didn't Yet Buy Packet
CIS 26B Advanced C Programming
Lab 5 Starter Kit
Lab 2 Data File
Malloc/Calloc/Fopen Wrapper Functions
CIS 75B Internet Client/Server Programming
My Lab 2 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
The UDP Protocol
Calling External Programs with EXEC
Superservers
Scatter Read and Gather Write
FTW: The File Tree Walker
Shared Memory and Memory-Mapped I/O
CIS 33B Advanced Perl Handouts
My Code From Lab 4
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
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?