Web Programming for Business PHP Object Oriented Programming with Oracle 1st Edition David Paper pdf download
Web Programming for Business PHP Object Oriented Programming with Oracle 1st Edition David Paper pdf download
https://ebookname.com/product/web-programming-for-business-php-
object-oriented-programming-with-oracle-1st-edition-david-paper/
https://ebookname.com/product/object-oriented-programming-
with-c-4th-edition-e-balagurusamy/
https://ebookname.com/product/c-how-to-program-introducing-web-
programming-with-cgi-and-object-oriented-design-with-the-uml-4th-
edition-harvey-deitel/
https://ebookname.com/product/multi-tier-application-programming-
with-php-1st-edition-david-wall/
https://ebookname.com/product/spinoza-and-deep-ecology-
challenging-traditional-approaches-to-environmentalism-eccy-de-
jonge/
Precalculus 4th Edition Margaret L. Lial
https://ebookname.com/product/precalculus-4th-edition-margaret-l-
lial/
Ethics Leathard
https://ebookname.com/product/ethics-leathard/
https://ebookname.com/product/excel-by-example-a-microsoft-excel-
cookbook-for-electronics-engineers-3rd-edition-kagan/
https://ebookname.com/product/language-and-logos-in-boswell-s-
life-of-johnson-william-c-dowling/
https://ebookname.com/product/wittgenstein-and-political-theory-
the-view-from-somewhere-1st-edition-christopher-c-robinson/
Blogging Citizenship and the Future of Media Mark
Tremayne
https://ebookname.com/product/blogging-citizenship-and-the-
future-of-media-mark-tremayne/
Web Programming for Business
Web Programming for Business: PHP Object-Oriented Programming with Oracle focuses on
fundamental PHP coding, giving students practical, enduring skills to solve data and technical
problems in business.
Using Oracle as the back-end database, the book is version-neutral, teaching students code that will
still work even with changes to PHP and Oracle. The code is clean, clearly explained, and solutions-
oriented, allowing students to understand how technologies such as XML, RSS, and AJAX can be
leveraged in business applications. The book is fully illustrated with examples, and includes chapters
on:
database functionality;
security programming;
transformation programming to move data.
PowerPoint slides, applied exam questions, and the raw code for all examples are available on a
companion website. This book offers an innovative approach that allows anyone with basic SQL and
HTML skills to learn PHP object-oriented programming.
A range of further resources for this book are available on the Companion Website at
www.routledge.com/cw/paper
Web Programming for Business
PHP Object-Oriented Programming with Oracle
David Paper
First published 2015
by Routledge
711 Third Avenue, New York, NY 10017
and by Routledge
2 Park Square, Milton Park, Abingdon, Oxon OX14 4RN
The right of David Paper to be identified as author of this work has been asserted by him in accordance with sections 77 and 78 of the
Copyright, Designs and Patents Act 1988.
All rights reserved. No part of this book may be reprinted or reproduced or utilized in any form or by any electronic, mechanical, or other
means, now known or hereafter invented, including photocopying and recording, or in any information storage or retrieval system, without
permission in writing from the publishers.
Trademark notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and
explanation without intent to infringe.
List of Illustrations
Preface
Acknowledgments
3 Login Security
5 XML in Action
Index
Illustrations
Figures
1.1 PuTTY Download Page
1.2 Hyperlink to PuTTY Download Page
1.3 Username and Password to SSH into Linux Server
1.4 Command Prompt with Successful Login
1.5 Hyperlink to WinSCP Download Page
1.6 WinSCP Installation Package
1.7 Hyperlink to Download Oracle SQL Developer
1.8 Oracle SQL Developer License Agreement Page
1.9 Oracle SQL Developer Download Options
1.10 Command Prompt with Successful Login
1.11 Editing a New File with ‘vi’ Command and Turning Line Numbering On
1.12 Input Mode with ‘vi’ Command
1.13 Displaying PHP Content on a Web Browser
1.14 Copying Lines in a File
1.15 Copying Multiple Lines in a File
1.16 Deleting Lines from a File
1.17 Displaying Different PHP Content on a Web Browser
1.18 HTML Display from a PHP File
1.19 HTML Display with a Hyperlink
1.20 HTML Display of Headers
1.21 HTML Display of Paragraphs
1.22 HTML Display of Centered Text
1.23 HTML Display of Multi-Line Centered Text
1.24 HTML Display Using ‘<pre>’ Tag
1.25 HTML Display of Logical Style Tags
1.26 HTML Display of Physical Style Tags
1.27 HTML Display of Simple Table
1.28 HTML Display of Checkbox
1.29 HTML Display of Drop-Down List
1.30 HTML Display of Radio Button
1.31 PHP Display of Simple Text
1.32 PHP Display Variables Interpreted
1.33 PHP Display with Variables Not Interpreted
1.34 PHP Display with Concatenated Variable
1.35 PHP Display with String Functions
1.36 PHP Display with Calculated Average
1.37 PHP Display with Arrays
1.38 PHP Display with Conditional Statements
1.39 PHP Display with Loops
1.40 PHP Display with ‘GET’ Form
1.41 PHP Display with ‘GET’ Form Result
1.42 PHP Display with ‘POST’ Form
1.43 PHP Display with ‘POST’ Form Result
1.44 Light Bulb ‘Off’ Using JavaScript
1.45 Light Bulb ‘On’ Using JavaScript
1.46 Initial State Using JavaScript
1.47 After Valid Number Entered Using JavaScript
1.48 Initial State Using JavaScript
1.49 After Number Entered Using JavaScript
1.50 Clear Screen Using JavaScript
2.1 Output from ‘use_this’ Class
2.2 Error Displayed Trying to Access Protected or Private Property
2.3 Output from ‘display’ Class
2.4 Output from ‘display’ and ‘poly’ Classes
2.5 Output from ‘get_set’ Class
2.6 Output from ‘bear’ Class
2.7 Output from ‘polar_bear’ Class
2.8 Output from ‘employee’ Class (‘abstract’ Class)
2.9 Output from ‘employee’ Class (‘abstract’ Class and ‘status’ Interface)
2.10 Output from ‘apple’ Class (‘fruit’ Class Inheritance)
2.11 Output from ‘apple’ Class (‘fruit’ Class Aggregation)
2.12 Output from ‘person’ Class with ‘toString’ Magic Method
2.13 Error Displayed because of Improper Usage of ‘toString’ Method
2.14 Output from ‘avg’ Class with ‘toString’ Method Removed
2.15 Output from ‘avg’ Class with ‘toString’ Method
2.16 Output from ‘destruct’ Class with ‘destruct’ Magic Method
2.17 Output from ‘mine’ and ‘yours’ Classes Using Type Hinting
2.18 Error Displayed Trying to Pass a String Type Hinted for an Object
2.19 Error Displayed Trying to Pass ‘mine’ Type Hinted for ‘yours’ Object
2.20 Error Displayed Trying to Pass ‘null’ Type Hinted for ‘yours’ Object
2.21 Error Displayed Trying to Pass String Type Hinted for an Array
2.22 Output from ‘avg_hint’ Class Type Hinted for an Array
2.23 Output from Constant and ‘lbs_to_kilos’ Class
2.24 Output from Static Variable, and ‘count’ and ‘see_count’ Classes
2.25 Output from ‘convert_static’ Class
2.26 Nasty Error Displayed from Uncaught Exception
2.27 Nice Message Displayed from Trapped Exception
2.28 Nice Message Displayed from Custom Exception
2.29 Nice Message Displayed from Custom and Built-In Exceptions
2.30 Nice Message Displayed from Custom and Built-In Exceptions
2.31 Output from ‘dim’ Class that Displays Returned Array
2.32 Output from ‘dim’ Class Using ‘foreach’, ‘var_dump’, and ‘print_r’
2.33 Output from ‘dim’ Class Using ‘toString’
3.1 Display of Login Information from Oracle SQL Developer
3.2 Display of Available Oracle Objects
3.3 Output from SQL Worksheet of Table Creation Code
3.4 Output from SQL Worksheet, Showing that Table Was Created
3.5 Output from SQL Worksheet, Showing that Data Was Added to Table
3.6 Output from SQL Worksheet, Showing Data from Table
3.7 Output from ‘dbGeneral’ Class, Showing Data from Table
3.8 Output from ‘clean’ Class
3.9 Output from ‘dbGeneral’ Class, Showing Encrypted Data
3.10 Output from ‘dbGeneral’ Class, Attempting to Encrypt Same Data
3.11 Output from ‘dbGeneral’ Class, Showing Five Encrypted Passwords
3.12 Display of Login Page with Username and Password
3.13 Display of Successful Login
3.14 Display of Login Page with Username and Password
3.15 Display of Successful Login Based on Strict Security
3.16 Output from ‘dbGeneral’ Class, Showing Added Bound Record
3.17 Output from ‘dbGeneral’ Class, Showing Updated Bound Record
3.18 Output from ‘dbGeneral’ Class, Showing Deleted Bound Record
3.19 Output from SQL Worksheet, Showing Compiled ‘rpt’ Procedure
3.20 Output from SQL Worksheet, Showing Results from ‘rpt’ Procedure
3.21 Output from SQL Worksheet, Showing Compiled ‘add_dynamic’
3.22 Output from SQL Worksheet, Showing Results from ‘add_dynamic’
3.23 Output from ‘dbGeneral’ Class, Showing that Record Was Added
3.24 Output from ‘dbGeneral’ Class, Showing Another Record Added
3.25 Display of Login Page with Username and Password
3.26 Display of Successful Login with Simple AJAX Functionality
3.27 Display of Login Page, Verifying that Page Was Redirected
3.28 Graphical Representation of the AJAX Process
3.29 Display of Successful Login with ‘destroy’ Button
3.30 Display after ‘destroy’ Button Is Pressed
3.31 Display of ‘CAPTCHA’ Login Page with Login Information
3.32 Display of Successful ‘CAPTCHA’ Login
3.33 Display after ‘destroy’ Button Is Pressed, Showing ‘Return’ Button
4.1 Display of Matching ‘hello world’ with Regexes
4.2 Display of Matching Various Strings with Regexes
4.3 Display of Matching Phone Numbers with Regex
4.4 Display of Form with Valid Seven-Digit String
4.5 Display of Translated Seven-Digit String
4.6 Display of Form with Valid Ten-Digit String
4.7 Display of Translated Ten-Digit String
4.8 Display of Form with Invalid Four-Digit String
4.9 Display of Message with Acceptable Strings
4.10 Output from ‘validate_regex’ Class Showing Valid and Invalid Phone Numbers
4.11 Display of Form with Valid Seven-Digit String
4.12 Display of Translated Seven-Digit String Using ‘validate_regex’ Class
4.13 Display of Form with Valid Ten-Digit String
4.14 Display of Translated Ten-Digit String Using ‘validate_regex’ Class
4.15 Display of Form with Invalid Four-Digit String
4.16 Display of Message with Acceptable Strings Using ‘validate_regex’ Class
4.17 Output from ‘validate_regex’ Class Showing Valid and Invalid Email Addresses
4.18 Output from ‘validate_regex’ Class Showing Valid and Invalid First Names
4.19 Output from ‘validate_regex’ Class Showing Valid and Invalid Last Names
4.20 Output from ‘validate_regex’ Class Showing Valid and Invalid Addresses
4.21 Output from ‘validate_regex’ Class Showing Valid and Invalid ZIP Codes
4.22 Display of Form with Various Information Included
4.23 Display of Good and Bad Data from Form
4.24 Display of Valid and Invalid Emails Using Built-In Validate Functions
4.25 Display of Valid and Invalid Ages Using Built-In Validate Functions
4.26 Display of Valid and Invalid URLs Using Built-In Validate Functions
4.27 Display of Valid and Invalid Entries Using Built-In Validate Functions
4.28 Display of Form Application with Some Information Included
4.29 Display with Successful Entries
4.30 Display of Dynamically Derived Drop-Down Menu
4.31 Display of Choice Made with ‘back’ Button
4.32 Display of Report Drop-Down Menu
4.33 Display of Chosen Report with ‘back’ Button
4.34 Display of Dynamically Derived Drop-Down Menu Using REF CURSOR
4.35 Display of Choice Made with ‘back’ Button
5.1 Display of XML from ‘cars.xml’ Using ‘simplexml’
5.2 Display of XML from ‘cars.xml’ Using ‘DOM’
5.3 Display Showing that XML Was Saved
5.4 Display of Tree Structure from ‘stereo.xml’
5.5 Display of First and Second Stereo ‘names’
5.6 Display of All Stereo ‘names’
5.7 Display of Fourth Stereo System Second and Third ‘wires’
5.8 Display of Various Elements of All Stereo Systems
5.9 Display of All ‘names’ with Corresponding ‘wires’
5.10 Display of All ‘names’, ‘wires’, and ‘id’ Attributes
5.11 Display of Third ‘name’ and ‘id’ Attributes
5.12 Display of All ‘names’ and ‘id’ Attributes
5.13 Display of All ‘names’ and ‘id’ Attributes with First ‘wire’
5.14 Display of Second Stereo System as XML
5.15 Display Showing that Copy of Stereo Was Saved
5.16 Display Showing that Second Stereo System Was Saved
5.17 Display of XML in File Structure
5.18 Display Showing that Refined XML Was Saved
5.19 Display of Refined XML in File Structure
5.20 Display Showing that Well-Formed Second and Fourth XML Elements Were Saved
5.21 Display Showing Traversal of Well-Formed Elements
5.22 Display Showing that Refined Well-Formed Elements Were Saved
5.23 Display Showing Partial Results from Modified XML
5.24 Display Showing Partial Results from Again Modified XML
5.25 Display Showing that Modified XML Was Saved
5.26 Display Showing Partial Results after Deleted Pieces
5.27 Display Showing Deleted Pieces from First Element
5.28 Display Showing Added Attribute to XML
5.29 Display Showing that Added Attribute to XML Was Saved
5.30 Display Showing Added Elements to XML
5.31 Display Showing that Added Elements to XML Were Saved
5.32 Display Showing All ‘name’ Elements from XML With XPath
5.33 Display Showing All ‘id’ Attributes from XML with XPath
5.34 Display Showing Data Using XPath
5.35 Display Showing Data with XPath and Implode
6.1 Output Using ‘ArrayIterator’ and ‘LimitIterator’ SPL Classes
6.2 Output Using ‘SimpleXMLIterator’ Wrapper and ‘LimitIterator’ Class
6.3 Output Using ‘SimpleXMLIterator’ and ‘RegexIterator’ SPL Class
6.4 Output Using ‘SimpleXMLIterator’ and ‘AppendIterator’ SPL Class
6.5 Output Using ‘SimpleXMLIterator’ and Various SPL Classes
6.6 Output Using ‘SimpleXMLIterator’ and ‘CachingIterator’ Class
6.7 Output Using Explicit Array Iteration Methods
6.8 Output Using a Custom Iterator Interface Class for Arrays
6.9 Output Using ‘SimpleXMLIterator’ and XML Iteration Methods
6.10 Output Using a Custom Iterator Interface Class for XML
6.11 Output Using a Custom DOM Iterator Interface Class for XML
6.12 Output Using ‘dbAggregation’ Class and a Database Iterator Interface
6.13 Output Using the ‘IteratorAggregate’ Interface for an Array
6.14 Output Using the ‘IteratorAggregate’ Interface for XML
7.1 Display Showing Partial XML Document Created from a Database Table
7.2 Generate XML with ‘dbAggregation’, ‘dbIterator’, and ‘xmlOutput’
7.3 Graphical Representation of the AJAX Process
7.4 Display AJAX-Enabled Form with Drop-Down Menu of XML Data Options
7.5 Output ‘All Customer’ Partial Data Using ‘DOMDocument’ Class
7.6 Output ‘All Customer’ Data Using ‘SimpleXMLElement’ Class
7.7 Display AJAX-Enabled Form with Drop-Down Menu of XML Tree Options
7.8 Output Showing Partial XML Tree of Customer Data
7.9 Output Showing Partial XML Tree of Catalog Data
7.10 Display Showing Iframe-Enabled Form
8.1 Display Showing RSS Feed
8.2 Display Showing that RSS Feed Was Created and Saved
8.3 Output Showing ‘web_site’ Data Using ‘PDO’ Class
8.4 Output of Record Using ‘PDO’ Class and ‘string’ Named Binding
8.5 Output of Record Using ‘PDO’ Class with ‘integer’ Named Binding
8.6 Output of Record Using ‘PDO’ Class with Unnamed Binding
Tables
1.1 Octal to Binary Conversion
1.2 Basic Linux Commands
1.3 Basic ‘vi’ Commands
Preface
Audience
I wrote this book for people who want to be web programmers. Web programming is not trivial, but it
is definitely not astrophysics or neuroscience. In over two decades of teaching technologies of
various sorts and 18 years of teaching PHP (with Oracle), I believe that almost anyone can learn how
to do it.
I teach between 10 and 20 students in my PHP class. My students tend to be graduate management
information systems (MIS) majors, but I always let a few undergraduate students attend. Some
semesters, I even have a few computer science students in my class. My students tend to have some
programming experience, but some have little to none. Nevertheless, students who work hard tend to
come out of my class with marketable PHP programming skills.
Admittedly, students with at least one or two programming classes under their belt (preferably of
the object-oriented variety) tend to learn faster. But, I know of many students with no programming
experience who have thrived in my class. The profile of successful students is that they possess a
great attitude for learning. They want to be in the class and they want to gain a skill that will help
them succeed.
Coverage
Topics for the book were chosen based on many years teaching web programming, consultation with
industry experts in the field, reading numerous white papers and programming books, and talking to
students about course content. Some of my former students have working experience, which adds even
more credence to their suggestions. I invite alumni, programmers, consultants, and managers to speak
in my class whenever possible. My experience, student comments, and industry comments help ensure
the timeliness, relevance, and quality of course content.
Teachers’ Guide
The book is intended as a source of simple to advanced tested and working code pieces to help
students learn PHP web programming in a modular and systematic fashion with Oracle 12c as the
back-end database. The emphasis is on precision using practice-feedback loops to enrich knowledge
and understanding. With practice-feedback loops, an example is presented, students load the code in a
browser, the expected result is shown, and then feedback and explanation of what the code
accomplished is provided.
The companion website provides all code from the book, accompanying assignments for each
chapter, and PowerPoint slides for each chapter. The PowerPoint slides are what I use to teach the
MIS 6650 Advanced Web Development (graduate) class, which is in its 18th year of being offered.
Students have commented to me every semester that the slides are an excellent supplement that helps
them complete the assignments, fare well in exams, and get them ready for the job market. The book
offers much deeper explanations (than the slides) of what the code accomplishes (feedback) as well
as definitions of terms and symbols.
Although I recommend that students have attended at least one course related to object-oriented
programming, I have taught students with little to no programming background. I believe that students
with a ‘positive’ attitude toward learning can gain the programming skills I teach in the book.
Acquiring programming skills is not magic. It requires a lot of hours sitting in front of a computer
beyond taking a class or reading a book. I don’t think that there is any other way to learn programming
skills!
The book expresses the knowledge I have acquired in over 20 years of working with Oracle, PHP,
PL/SQL, AJAX, and SQL. I purposely include as many code modules as possible because this is how
I teach students PHP (with Oracle) and many of my students have gone on to have successful careers.
I emphasize practice, practice, and more practice because this is how I learned and how my students
have learned. Over the years, I have received many positive endorsements from students who took
this course. They inform me that my instruction on PHP web development was instrumental in their
careers; from getting their first job to advancing their MIS careers.
I reserve the first week of class for creating and testing Linux and Oracle student accounts. I have
each student login to their Linux and Oracle accounts, and run simple PHP scripts. I have an
information technology (IT) expert who installs and maintains a Linux server instance and an Oracle
12c instance. My IT expert also creates all student accounts and maintains the software. Prior to
class, I tell students to read the chapter we will cover, attempt to run the code, and – when and where
problems occur – to prepare questions to bring to class. I recommend teaching the chapters
sequentially from beginning to end.
Students’ Guide
The course is intended for students with some working knowledge of relational databases and
programming. Once students have working Linux and Oracle accounts, they are ready to begin coding.
Each chapter in the book provides ‘tested’ PHP modules that students can load into a web browser
(via its URL) to see results. All code is available on the companion website so the code need not be
retyped. However, I suggest that, once the code is working, students should make some changes to
better understand how the language works.
The best way to transfer PHP code to a Linux account is to use ‘WinSCP’, which is free file
transfer software. I discuss how to install this software in Chapter 1. ‘WinSCP’ transfers files should
be used exactly as typed. If students try to do this by copying and pasting, they may encounter serious
spacing problems.
The companion website includes PowerPoint slides, assignments, and PHP code for each chapter.
When I teach, I assume that my students have read all chapters prior to lectures and attempted to get
all code examples to work. When problems are encountered, I encourage students to bring questions
to the next lecture.
The first week of class is reserved for creating and testing Linux and Oracle student accounts. As I
said previously, students should login into their Linux and Oracle accounts, and test simple PHP
scripts to ensure that all is well. Once Linux and Oracle accounts are working properly, students are
set up to run any code provided in the book.
In my classes, I have a dedicated IT expert who installs and maintains a Linux server instance and
an Oracle 12c instance. The IT expert also creates all student accounts and maintains the software. If
technical problems arise, I try to solve them. If I cannot, I have students contact the IT expert.
I recommend that students follow the chapters sequentially from beginning to end. I also
recommend that students spend a substantial amount of time getting familiar with the code. From my
more than 20 years’ experience of teaching programming classes, I can emphasize that programming
skill is only obtained through rigorous practice (which takes many hours of hard work and many times
is not really a lot of fun). As one of my colleagues always says, “You have to spend a lot of time in
front of a computer screen to learn how to program.”
If students embrace hard work, practice, and dedication to the craft of programming, they will very
likely be a successful programmer. I know I sound a bit preachy, but this is how I became a proficient
programmer. I just don’t know of any other way to achieve excellence.
Companion Website
The book has a companion website that includes assignments, code, and PowerPoint slides for each
chapter. The assignments include definition questions and coding questions. The code is included so
that students don’t have to retype each code snippet to test. The PowerPoint slides provide bulleted
information and code illustrations, but do not delve deeply into explanation. The book provides
explanation and feedback.
Pedagogy
I tell students on the first day of class to carefully read and digest every word, paragraph, and page of
the book. My next advice is to tell them to work through each code example. That is, load the URL
that points to the code in a web browser, look at the results, and go back to the code to make sure that
each line makes sense. Finally, I tell them to make some changes to the code and see if they can get it
to work with their own customizations.
The best advice I can give a student is to practice, practice, and practice some more. The only way,
in my opinion, that a student can become a good programmer is to sit in front of a computer screen
and spend hours coding.
To enrich learning, I use practice-feedback loops. Practice-feedback loops follow a three-step
process. First, a concept is introduced. Second, an example is provided. Third, feedback is given. I
use this pedagogy because this is how I have learned many languages and technologies, and this is
how many of my students have learned how to program and secure excellent jobs.
Information Technology
Going on my 21st year of teaching various technologies and programming languages, I have always
had an IT expert install and maintain software as well as create student accounts. The platform I
currently use includes Oracle 12c database, Linux (Fedora) server, and PHP 5.3.14. This platform
allows students to login to a central server to complete their work.
I keep in touch with several former students and friends, who inform my platform decisions. These
people currently work in the technology industry. They tell me that the platform I use for my class
gives students a somewhat realistic environment to work with PHP. They use the word ‘somewhat’
because so many configurations are used in industry that it makes it difficult to set up a single
representative IT configuration. However, my industry contacts agree that using a centralized Linux
server with Oracle and PHP (the one I use for my classes) is a minimum for preparing students for
interviews and the job market.
Prerequisites
Students should possess basic programming knowledge. Some object-oriented programming
knowledge or experience is even better. Basic knowledge of HTML and SQL is also recommended.
However, the book covers all that a student needs to know. From my experience of teaching web
programming, I notice that people with basic programming skills tend to learn faster and be more
comfortable with learning technical content. However, I have had numerous students in my class with
no programming experience who have done extremely well!
Acknowledgments
Although I have been teaching PHP with Oracle for many years, a few years ago I found a book by
David Powers entitled PHP Object-Oriented Solutions. This book was an inspiration because it
helped me become inculcated into the world of object-oriented programming. Before acquiring this
book and poring over it for many months, I had no background in object-oriented programming. Of
course, I consulted the Internet for a lot of help, but this book helped me adhere to a structure for
converting my class from procedural to object-oriented programming and acted as a guide to build
real-world Oracle examples related to the ones Powers built with MySQL.
1
Linux, HTML, PHP, and JavaScript Basics
Overview
The 2014 Fall semester marks my 18th year teaching PHP web scripting (programming) with Oracle
as the back-end database. Over the years, many of my students have commented on programming
skills developed, ability to secure a good job and discipline to help advance careers acquired by
successfully completing the course. This book is based on what I have learned, how I have learned,
continuous interactions with industry experts (web developers, database engineers, and application
programmers), my experiences as a programmer, consultant, and analyst, and clear and concise
programming fundamentals. Although technology changes rapidly, programming fundamentals remain
relatively constant. The code included in these chapters has changed little over the years and still
works even with new distributions of Linux, PHP, JavaScript, and Oracle. Of course, I tweak and add
new code as I learn more.
In my technology teaching experiences, I have learned that clean, clear, concise, and systematic
code examples with explanations go a long way in helping students learn, digest, and apply
technologies, such as various types of programming and database activities. Also, teaching
fundamentals has proven to be key in establishing a strong technological base in my students.
Feedback from numerous industry employers who hire our students have indicated that my classes
offer excellent and enduring technology fundamentals (which is one of the most important reasons
why they hire our students).
So, this book strives to offer programming fundamentals presented in a clear, concise, and
practical manner. In later chapters, I include applications using the fundamentals included in these
chapters.
Web programming is only possible with an appropriate information technology (IT) platform. An
IT platform can take many forms, but must include an operating system (OS), programming (or
scripting) language, web browser, web server, and database management system (DBMS). The
platform I use includes Linux as the OS, PHP as the scripting language, a web browser (Google
Chrome is my preference), and Oracle as the DBMS.
I have an IT expert install and maintain Oracle, Linux, and PHP on a computer server. Our industry
advisory board endorses the IT platform I have just described. My current platform includes Oracle
12c, Linux (Redhat Fedora), and PHP 5.3.14. My IT expert creates Linux and Oracle accounts on a
server for each student. Students create and save PHP scripts on their Linux accounts using PuTTY
(or MobaXterm), and use Oracle SQL Developer to interact with Oracle. When students need to
securely transfer files, they use WinSCP.
Chapter 1 covers Linux, HTML, JavaScript, and PHP basics. Although basics are covered, I
recommend visiting w3schools’ or other websites for tutorials to deepen knowledge of Linux, HTML,
PHP, and JavaScript. The w3schools’ URL is www.w3schools.com/.
Learning Objectives
After completing this chapter, you will gain a fundamental understanding of Linux, HTML, PHP, and
JavaScript through explanation and code examples. The following objectives summarize the skills the
chapter will help you develop:
On the ‘PuTTY Download Page’ (Figure 1.2), choose the ‘putty.exe’ link. This is the first link
under ‘For Windows on Intel x86’. Click the down arrow (to the right of the downloaded file
‘putty.exe’) and choose ‘Show in folder’. Your computer automatically opens the ‘Downloads’
directory. Find the ‘putty’ icon in this directory and open it. Click ‘Run’ to open ‘PuTTY’.
The ‘PuTTY Configuration’ window opens automatically. Type the name of the server for ‘Host
Name’ and the ‘Port’ for the port where Linux is listening for requests. Your IT expert should provide
this information. In my case, I use ‘SSH’ to enhance security, which is recommended. So, after you
type in the host and port information be sure to click the ‘SSH’ button (if you use SSH). Click ‘Open’
to begin your session. Now, you should see the console. To access Linux account information, enter
your ‘username’. When Linux prompts you for your password, enter it. Your IT expert will provide
this information (Figure 1.3). If username and password are accepted, you are logged into Linux
(Figure 1.4). Type ‘exit’ to close the session.
On the ‘WinSCP Download’ page, choose ‘Installation package’ (Figure 1.6). This hyperlink is on
the left of the page under ‘WinSCP 5.1.7’. This is the version as of writing this chapter; it may change
over time.
Click the down arrow (to the right of the downloaded file ‘winscp517setup.exe’) and choose
‘Show in folder’. Your computer automatically opens the ‘Downloads’ directory. Find the
‘winscp517setup’ icon in this directory and open it. Click ‘Run’ to open the program. Click ‘Yes’ to
allow the program to make changes to your computer. Click ‘OK’ to select ‘English’. Click ‘Next’ to
begin ‘WinSCP Setup Wizard’. Accept the agreement and click ‘Next’ (accept what is
‘recommended’). Click ‘Install’ and then click ‘Finish’. Keep in mind that minor changes may occur
during the installation process with future versions of the software.
To launch ‘WinSCP’, choose ‘File protocol’ using the down arrow (I use ‘SCP’). Type in your
Linux ‘Host name’, ‘port number’, ‘User name’, and ‘Password’, and click the ‘Login’ button (this
information should be the same that was provided by your IT expert for using ‘PuTTY’). You have
established a new session. The right panel contains your account information on the remote Linux
server. The left panel contains your local computer information. The ‘WinSCP’ software works like
‘FTP’, but it is much more secure. Using the software is also easy because it works like a ‘Windows’
directory. Close the session by clicking on the ‘X’ on the top right of the window.
Oracle will ask you for a username and password. So, click the ‘Sign Up’ hyperlink to create a
new account (unless you already have one). Fill out the online form completely and click the ‘Create
Account’ button on the bottom of the form. On the ‘Account Verification’ page, click the ‘Continue’
button. Now, sign in with your new username and password. Wait for the download to complete,
which may take some time (so be patient). Click the down arrow (to the right of the downloaded file)
and choose ‘Show in folder’. Your computer automatically opens the ‘Downloads’ directory.
Find the ‘sqldeveloper’ icon in this directory and open it. Open the ‘sqldeveloper’ folder. Click on
the ‘sqldeveloper’ icon. Click the ‘Extract all’ button. Click ‘Extract’ button to place software in the
‘Downloads’ directory. Be patient while the software is being downloaded because the process will
take several minutes. Double click on the ‘sqldeveloper’ folder. Open the software with the
‘sqldeveloper’ icon. When prompted, click ‘Run’. Choose the first option ‘SQL Source (.sql)’ and
click ‘OK’. Click the green ‘+’ button and enter the ‘Connection Name’, ‘Username’, ‘Password’,
‘Hostname’, ‘Port’, and ‘SID’ information. Ask your IT expert for this information.
Keep in mind that the ‘Username’ and ‘Password’ is for access to the Oracle database, not the
Linux OS. To keep it simple for my students (and me), their Linux and Oracle accounts have identical
usernames and passwords. Click ‘Test’ to see if you have a successful connection. If successful, click
the ‘Connect’ button to establish a connection to the database. Close the connection by either closing
the pop-up window or using ‘File’ and then ‘Exit’ on the menu. Once a connection has been
established, the next time you open the software just click on the ‘+’ symbol to the left of the
connection to open a session.
Linux Basics
This section explains and illustrates with examples how an end user works with Linux to display
content on the Internet. To log into your Linux user account, open a ‘PuTTY’ session as demonstrated
earlier in the ‘PuTTY’ section (Figures 1.3 and 1.4). Figure 1.10 illustrates a successful ‘SSH’ login
with the cursor on the command line. The command line is where you tell Linux what is needed by
typing commands at the cursor position.
Let’s begin by creating a directory to display content. This directory is where all files that you
wish to be displayed on the Internet must reside. Type the following on the command line and press
‘Enter’:
mkdir public_html
Command ‘mkdir’ tells Linux to create a new directory. In this case, the new directory is called
‘public_html’. Typically, ‘public_html’ is where Linux looks for information to display on the
Internet. Now, set permissions for the directory (type the following on the command line and press
‘Enter’):
chmod 705 public_html
Command ‘chmod’ tells Linux to change permissions to ‘705’ for the directory listed. I will explain
what ‘705’ means in a moment. To see what happened, type the following command:
ls-la
Command ‘ls’ lists the contents of a directory. In this case, you are at the highest level of your
directory structure. With ‘ls’, two options are included – ‘l’ and ‘a’. Options are preceded by a
hyphen ‘-’. Option ‘l’ tells the list command to use a long list format. Option ‘a’ tells it to not hide
anything. Look to the left of directory ‘public_html’ to see its permissions.
drwx---r-x
Letter ‘d’ tells you that ‘public_html’ is a directory. The next three letters ‘rwx’ are permissions for
the owner (you) of the directory. The following three ‘---’ are permissions for the group. Don’t worry
about group permissions in this book, because we won’t discuss them. The final three ‘r-x’ are
permissions for the world (Internet). Before explaining permissions more deeply, let’s look inside the
‘public_html’ directory. To do this, enter the following on the command line:
cd public_html
Command ‘cd’ changes directories to your choice. In this case, you are changing to ‘public_html’.
Now, list contents with no options:
ls
You see nothing because you have yet to create content in ‘public_html’. Command ‘cd’ followed by
a directory moves you down your directory tree. To move up your directory tree, type the following
on the command line:
cd ..
You should now be back at the top of your directory tree. Type the following:
ls
You should see only the ‘public_html’ directory that you created. Earlier in this section, you typed
‘ls-la’ to see permissions of ‘public_html’. Permissions for your display directory are ‘drwx---r-x’.
The first bit ‘d’ means directory. The next three bits ‘rwx’ mean that the owner (you) has read, write,
and execute privileges. So, you can read from this directory, write to this directory, and execute from
this directory. The next three bits ‘---’ are for group privileges. The hyphen ‘-’ means that no
permissions are provided. The group therefore has no privileges on this directory. The final three bits
‘r-x’ mean that anyone on the Internet can read from the directory and execute from it, but cannot write
to it. If you wish to secure a directory or file from the world, never provide ‘write’ privileges,
otherwise anyone with access to the Internet can potentially write to your file or directory!
Octal
Binary
0
000
1
001
2
010
3
011
4
100
5
101
Discovering Diverse Content Through
Random Scribd Documents
Gilroy. And so these are some of the youngsters? What’s your name,
young sir?”
Mr. Parker’s voice had been rough enough while he was addressing
Llewellyn; but when he glanced at Leslie, who, tall, straight, and
beautiful, stood before him, a spasm crossed his face and his voice
faltered. It sank to a husky whisper; there was emotion in his tone.
“How do you do, my dear?” he said again; and he held out a great
rough hand for the girl to shake.
She let her little hand lie in his for half a moment, and then
withdrew it. She then went and stood by the fireplace.
“Sit down, please, Mr. Parker,” said Mrs. Gilroy, “Leslie, I think our
friend would like a glass of wine; will you get it?”
“No wine for me, thank you, ma’am; no wine for me. I have dined,
and admirably. Steak and stout, and boiled apple pudding; that’s fare
after my own heart. Simple, ma’am, you can see—simple as my own
tastes. Well, I am glad to see you, Mrs. Gilroy, at home; and a nice,
snug little parlor you have. No show or pretension, or anything of
that kind; just the sort of room I’d expect Gilroy’s widow to have;
and,” added the man, glancing at the boy and girl, “just the sort of
children too.”
The two children, thus alluded to, could not help sighing. Llewellyn
wished himself fifty miles away. Leslie felt uncomfortable, and did
not dare to meet her mother’s eyes.
Meanwhile Mr. Parker glanced around him. The ceiling of the little
room was low, and the furniture, although exquisitely clean and
orderly, was shabby. He sank back in the armchair which Mrs. Gilroy
had invited him to take possession of, and proceeded to speak
slowly and thoughtfully.
“Ha! ha! young sir, don’t you be impatient; let me say my say out.
This young lady now, she’s my charge for the future. Yes, ma’am,
she’s my charge. My dear Miss Leslie, you’ll be a sort of adopted
daughter to me. Now, sit down near me, and tell me what your
inclinations are. I think your mother would send you to one of those
new-fangled women’s colleges if you liked it; but if your inclinations
are not set that way, why, I will set you up in business. I’ll give you
capital, and you may do well—any line you like; you have only to
name it. But your mother suggests that I should make an educated
woman of you.”
“Well, ma’am, if that’s your whim, it’s mine also,” said Mr. Parker. “I
am only gratified to be able to please you in any way. This is a debt
I owe, ma’am; so there’s no obligation on your part, nor on yours
either, Miss Leslie.”
“Well, you see, it was this way,” said Parker. “Gilroy and I were lads
together in the same school. I don’t mean to say that we were
exactly in the same set, for Gilroy belonged to gentlefolks, whereas I
—well, my father kept a grocer’s shop. I always had a wonderful
admiration for Gilroy; for, though he was an aristocrat, as they call
them, he had no high and mighty haw-haw ideas, and he was good
to me, and wouldn’t let the other fellows trample on me—not he, not
he. And one day I got out of my depth before I could swim quite
well, and he pulled me to shore. He made nothing of it; but, as a
matter of fact, he saved my life. So, after that, there was nothing I
wouldn’t do for him; and when we both left school, and Gilroy was
going to one of your fine universities and I was off to the colonies,
we had a supper together, and at the end of the supper we made a
bargain one with the other. Gilroy said to me, ‘Parker, nobody knows
what the chances of life are. It is possible that you may come back
some day a rich man; if so, don’t forget that we were chums, that
we were lads together, and if you can do a kindness to me or mine,
do it. I am an unmarried man, and so are you. We are both young
fellows on the threshold of life; but if ever I should have a wife and
children, and I myself should be beneath the sod, you will look after
them for me, Parker. It shall be a bargain between us, and I will do
the same for your wife and children should the position be reversed.’
Leslie did not reply; but the tears which had been coming to her
eyes now rolled down her cheeks. Mr. Parker noticed her emotion
and was not ill pleased with it.
“You go to college if you wish it, young lady,” he said, “and I hold
the purse-strings. When you want money you just write to me, and
don’t bother that good mother of yours overmuch. So that affair is
settled. Now, to turn to the others. This boy, for instance; he is
Gilroy’s boy and worthy of his father. What do you mean to do, sir?
Do you want a university life, too?”
“Oh, if you would only give it to him!” said Leslie. “Mother says you
are rich, and if it is really as you say, and father laid his bond upon
you, it does not seem too hard. Oh, if you would only do it!”
Her whole face lit up, her eyes shone, and she laid her hand on Mr.
Parker’s arm.
“And the body, too,” said Mrs. Gilroy. “You cannot say that we do not
develop the bodies of our lads as long as we have football and
cricket.”
“We have those, too, in Australia, and we manage to beat you once
in a while,” said Parker, with a slight twinkle in his eyes. “But what
does the lad want himself—that is the question?”
“Yes, it has been the dream of his life,” replied the mother.
“It is the dream of my life no longer,” he said. His voice was husky,
not to say rough.
Parker went up and clapped his hand heavily on the boy’s shoulder.
“I don’t wish to take anything from Mr. Parker, mother. I was about
to tell you when we were alone; but I will tell you now, instead. I
accepted a situation to-day at Lee & Forrest’s.”
“Lee & Forrest’s!” said the mother. “You accepted a situation at that
big draper’s round the corner? Llewellyn, you must be mad!”
“I am not. I have been thinking about it for some time; this is not as
sudden as it looks to you. You know young Forrest has been my
friend at school, and there is a vacancy in the shop. They want a boy
to train for the business, and Mr. Forrest is so pleased with me for
applying that he is going to start me at once. I saw him to-day, and
I accepted it, mother, subject to your leave, which, of course, you
will give. Mr. Forrest said it would do him a lot of good to have a lad
like me about the place; and young Forrest himself goes to one of
the universities. It is a good thing for me, mother, and I have made
up my mind.”
There was a dead silence in the room. Mrs. Gilroy’s face looked
white; all the pleasure had left it. She glanced at Parker, whose
deep-set eyes twinkled half with fun and half with sympathy. He
patted Llewellyn again on the shoulder.
“The truth now,” he said; “you are too proud to take help from me?”
“That’s a right spirit; but I am going to tempt you. I will give you
two hundred a year if you wish to go to Oxford.”
“No, thank you,” answered the boy. He shook the kindly hand off
and stepped back a foot.
“But why, my lad?”
“I will tell you why, if you all want to know,” said Llewellyn. “I don’t
choose to be beholden to anybody, not even to Mr. Parker, who was
my father’s friend. I may some day go to the university; but I don’t
think there is much chance of it. Sir, I will tell you another reason: I
want to help my mother; she needs help at once. She could take it
from me when she could not take it from a stranger. If I went to
Oxford I could not earn any money for three or four years; now I
start at once with a pound a week. I can live at home, too, and half
the money will go straight towards the house. In a year’s time my
screw is to be raised. It is all settled, sir. I am obliged to you all the
same, but I can’t take your help.”
“Mother is asleep,” she said; “and I think she has been crying—she
sighs so heavily in her sleep; it is not like her. I would not wake her
for the world; but I knew you would be up, Lew, and I felt that I
must have a talk with you.”
“All right—that is, if you really wish it,” said Llewellyn, slightly
stretching himself, and a frown coming between his brows. He had
been bending over a volume of Plato’s “Republic,” and some sheets
of manuscript, scribbled over as if in frantic haste, were scattered
about the table. When Leslie approached he pushed the manuscript
helter-skelter into a waste-paper basket and shut up the book.
“Why did you do that?” said Leslie; “why do you hide your real
thoughts from me, Lew? Don’t you want me to know? We have
always been more than ordinary brother and sister to each other.
What is the matter with you?”
Still Llewellyn did not reply. He stood up and looked at his sister with
as expressionless a face as he could possibly manage to assume.
“It is no use,” said Leslie. She went up to him now, raised herself on
tiptoe, and kissed him on his cheek. “You have done it, and it is
noble of you, it is splendid of you; but why—why?”
“I wish you would listen to me, Llewellyn,” said Leslie; “it is not too
late yet. The chance has been offered to you and the chance has
been offered to me. It seems to me, on thinking things over, that
only one of us can take it, for mother can’t do without both of us.”
“But you must let me speak,” said Leslie. “I can never go to St.
Wode’s unless I make a clean breast of all that is in my mind. If one
of us is to grind for the present, ought not I to be the one? I am
older than you, I have had a more thorough education, I can easily
get a position as junior teacher in Miss Harkaway’s school. There is a
vacancy, and she has half promised it to me. That will bring me in
thirty pounds a year and my food, and, after a bit, I might do even
better. Thus I should be altogether off mother’s hands, and could
even help her a trifle. Then, Lew, you will be really helping her at
Oxford. As you are acquiring learning, and as those magnificent
brains of yours are being cultivated to their full worth, you will be
preparing for a learned profession, or a professorship, or something
of that kind. Surely, surely, that would be a more substantial help to
the sweetest mother in the world than your earning a pound a week
now at Lee & Forrest’s.”
“There is something in what you say, Leslie; but there is not enough
in it,” said Llewellyn quietly. “Believe me, I have thought of all this
from every point of view. In the first place, professorships do not
mean wealth, and, for mother’s sake, I mean to be a wealthy man
some day. You must go into trade to be wealthy now. Oh, it is not
that I care for money, not a bit! But I want to save the mother, to
keep her from toiling when she is old, to help the younger children. I
can’t stand Parker doing all the help, Leslie; the mere thought drives
me half wild. Then I shall not always work at a pound a week. In a
couple of years I may be earning a salary of two hundred a year, for
I don’t mind telling you that young Forrest has taken no end of a
fancy to me, and he and I had a long talk to-day. He took me up to
see his father, and his father would do anything for a boy Jim liked.
Jim goes to Oxford in the autumn. He hates the shop, and he won’t
go into business, for he can’t stand it, and so his father has to start
him in a profession. But he hinted very broadly—and so did the old
man, too, for that matter—that if I could take his place it would put
matters a bit right and smooth down the pride of old Forrest; so I
shall have my chance, Leslie—a small partnership by and by; and I
mean to take it, little girl, so you can go to Wingfield with a heart
and a half, and win the academic honors of the family. It is a
splendid chance for you, Leslie, and I’m not the fellow to stand in
your way.”
Llewellyn put one of his arms round her and drew her close to him.
“One can take an interest in anything one sets one’s mind to,” he
continued. “I shall begin double entry and bookkeeping and all that
sort of thing to-morrow, and the classics may go to Hong Kong for
the present. Poor old Plato! I loved him, and I had dreams about
him; but he and I must be strangers for the present. You think me
silly now, dear, but you won’t when I have succeeded. By the time I
have a great big shop of my own you will think me the wise one of
the family. Leslie, my dear, what is wrong?”
For Leslie had squeezed his arm so tightly that the lad winced.
“I can’t bear to think of you with a shop,” she cried, “with that brain
and those eyes. And oh, Lew! don’t you remember how you
translated Thucydides for us? And—oh, Lew, it can’t be borne.”
“What would our father have said,” she cried; “our father, who was a
great scholar?”
“I don’t pretend, all the same, that it’s not been no end of a tussle,”
he said; “but now my mind is made up.”
“Quite?”
“Yes, quite.”
“I should think so,” said Leslie; “that goes without saying. She is
quite the dearest, bravest little mother in the wide world.”
“Well, dry your tears, old girl; I’ll look after her while you are away.
Be cheerful, Leslie, and get all the good you can out of this
magnificent thing, for I don’t pretend that it’s not a great bit of
fortune for you. It is quite possible and right for you to take help
from Mr. Parker; but I could not do it. It’s not in me to take favors
from anyone. Such a thing would lower me in my own eyes. Oh, it
does not lower you, Leslie; but it would me, for I am differently
made. We must each walk according to our own lights. And now go
to bed, old girl, for I am half dead with sleep.”
“Kiss me, first,” she said. “Llewellyn, I think you are the bravest boy
in all the world.”
“You would not say so if you had seen me two hours back. I was so
miserable I felt fit to kill myself; but there,” he added, clenching one
of his strong hands, “I did not mean to let it out to you, and I am
quite right now and I don’t feel a bit miserable.”
“But, all the same, it’s a hard tug,” he muttered as he glanced round
him. He dropped into a chair and buried his face in his hands. He
thought of the dreams which must never be realized, of the school-
fellows who would more or less despise him, of the different position
he must occupy in future.
Leslie in her own room also slept, and bright dreams came to her.
The thought of the future was delightful, and she looked upon it as
Llewellyn’s gift.
“For if Llewellyn had been selfish and had accepted Mr. Parker’s offer,
I could not have gone,” thought the girl. “I could not have left
mother if Llewellyn were not with her; but, as it is, and as he is
sacrificing himself, oh! I will work just double time in order to make
it up to him. For some day he must have time to pursue his beloved
classics, and his literature, and all those things which he cares for.
No girl who has a noble brother like Llewellyn ought to shrink at
anything. I believe I am the happiest, and I know I am the proudest,
girl in the world.”
CHAPTER XI—ST. WODE’S COLLEGE.
North Hall was the house of residence where Belle Acheson carried
on her vagaries, and pleased herself with the idea that she was one
of the cleverest and most distinguished girls in college. She owned
to a qualm of disgust, however, when she learned that Letitia was to
be under the same roof as herself, having a thorough scorn for that
young lady; but, as she was allowed no choice in the matter, she felt
that there was nothing for it but to submit to the inevitable.
Mr. Parker had himself visited St. Wode’s College, had seen the
principal, Miss Lauderdale, and had pleaded the cause of Leslie
Gilroy with such passion and effect that special arrangements had
been made in her favor, and she was admitted to the same hall as
Marjorie and Eileen. For the first term she must share a large room
with another girl; but that was a trifling matter to Leslie, who, now
that things were thoroughly arranged, wished to start on her new
career without a moment’s delay. As she had already passed the
London Matriculation, there was no difficulty about her admission as
soon as room could be found for her. This being arranged, she was
able to go to St. Wode’s at the beginning of Trinity term. It so
happened, therefore, that Letitia, Eileen, Marjorie, and Leslie Gilroy
all found themselves on a certain afternoon in the same cab, driving
to St. Wode’s from the railway station, a mile and a half distant. The
girls’ luggage was to follow them; and as there happened to be a
place in the cab for a fourth, and Leslie was standing, looking just a
little forlorn, on the platform, Marjorie went up to her and suggested
that they should all go together.
“How could you possibly guess that?” replied Leslie, looking with
admiration at Marjorie whose plain dress could never take away from
the charm of her handsome face.
“There was really no mystery about it.” said Marjorie, after a pause.
“I am not a magician; but I happened to see the name of St. Wode’s
on that basket-trunk a minute or two ago. Will you come with us?”
“I shall be only too delighted,” was the reply. “I was feeling quite lost
and strange. It would be nice to go to college in company. Is this
your first term?” she added, as she seated herself in the cab.
“Yes, yes; we are all freshers,” replied Lettie. “We shall all have a
most unenviable position, that I can foretell. There is a certain Miss
Acheson, who resides in North Hall, who has told us of some of the
discomforts, and, for my part, if I had not promised——”
“Oh, hush, please, Lettie; don’t say any more,” said Eileen. “You
need not begin by frightening Miss Gilroy. You look, Miss Gilroy, as if
you intended to have a good time.”
Leslie did not reply, except with her eyes, which were smiling. She
was looking her best, dressed neatly and suitably, with her white
sailor hat making an effective contrast to the meshes of her bright
golden hair.
“Well, I do wonder how everything will turn out,” said Eileen. “By the
way, Miss Gilroy, you did not tell us which Hall you were going to?”
“And what the tutors will be like,” continued Marjorie eagerly. “There
are two resident tutors in each house, and also a vice-principal. Miss
Lauderdale is, of course, the principal over the entire college. I
expect I shall be somewhat afraid of her.”
Marjorie bent suddenly forward and laid her hand on Leslie’s knee.
“Will you tell me something?” she asked earnestly. “Are you coming
to St. Wode’s to be a useful member of society, or a learned, or an
ornamental one?”
“I did not know that I was frowning,” answered Letitia, “I was only
thinking of the ornamental part of life, and how I could carry it out
most effectively.”
Letitia was dressed with special care, not unsuitably, for she had too
good taste for that; but so daintily, so exquisitely, with such a careful
eye to the smallest details that Marjorie and Eileen looked rough and
gauche beside her. Their serge skirts had been made by a work-girl,
as nothing would induce them to waste money on a dressmaker. The
work-girl had been discovered by Eileen in Fox Buildings. She had a
lame knee and a sick brother, and Eileen seized upon her at once as
a suitable person for the job, as she expressed it. Finally, she was
given most of the girls’ outfits to undertake.
She worked neatly, but had not the slightest idea of fitting. With
numberless blouses, however, and a couple of serge skirts, and
sailor hats, though cheap, at least looking clean, the girls passed
muster, and were totally indifferent to their own appearance.
“I sincerely trust she won’t come till to-morrow,” said Letitia, with a
shudder. “I do not know for what sin I am doomed to reside under
the same roof with that terrible girl.”
“A terrible girl? Who can she be?” asked Leslie.
“You will know for yourself before you have been many days at St.
Wode’s,” was Lettie’s enigmatical reply. “Oh, and here we are,
turning in at the gates! My heart does go pit-a-pat.”
Leslie’s face also became suffused with pink as the cabman drew up
at the large wooden gates, which were presently opened by a neatly
dressed young woman who lived at the lodge just within.
“Miss Colchester, I see you have arrived,” said Miss Payne the
housekeeper. “This is your room-fellow; may I introduce you to Miss
Leslie Gilroy?”
“Pray come in, Miss Gilroy; you are heartily welcome,” said Miss
Colchester, jumping up, coming forward, and gazing hard at Leslie.
She then extended an awkward hand.
“I am glad to see you,” she said. “I hope you don’t mind the room
being in disorder. I have only just begun to unpack, and everything
is helter-skelter. I was never tidy—no, never! I begin to think I like
things helter-skelter.”
“Oh, I don’t mind, of course!” answered Leslie; but her heart sank.
In her mother’s small house the motto impressed upon each child
was the old-fashioned one: “A place for everything, and everything
in its place.”
Marjorie and Eileen had been left on the landing. They overheard
Leslie’s last somewhat despairing words, glanced at one another, and
smiled. They were then conducted to their rooms at the farther end
of the corridor.
“This is your room, Miss Eileen,” said Miss Payne. “Miss Marjorie has
an exact counterpart at the other side of the corridor. Behind this
screen you will keep your washhand-stand. This sofa forms your bed
at night. This chest of drawers is for your linen and the bodice of
your dresses. Behind this curtain you will hang your skirts. Here is
your writing-table. It remains with yourself to make your room pretty
and neat, or the reverse. You may buy any ornaments in the way of
pictures, or anything else you fancy. When you touch this handle you
turn on the electric light. Would you care for a fire? Here are coal
and wood for the purpose, and I will send in a servant to light it at
once, if you wish.”
“Oh, how lovely!” exclaimed Eileen. “Do look, Marjorie; there is that
great park in the distance, and the river down there. Oh, please——”
She turned to speak to Miss Payne, but Miss Payne had already
vanished.
“Well, we are landed at last!” she said, clasping her sister’s hand.
“Does it not seem almost too delightful?”
“So have I,” answered Marjorie. “But I expect she will have a bad
time, poor dear, with Miss Colchester. Anyone can see Miss Gilroy is
of the orderly sort. Now, I don’t care a bit about having things in
perfect order.”
“An inch and a half being the length permitted,” said Marjorie, with a
smile. “I am curious to see poor old Belle. Lettie will have awful tales
to tell of her. Well, this life is interesting, is it not, Eileen?”
CHAPTER XII—INKY ANNIE.
“I see by the build of your head and your figure that you are
painfully tidy,” she said. “I had hoped that it might have been the
will of Providence to allow a congenial spirit to share this room with
me; but, evidently, that is not to be my lot. How much space do you
require?”
“No time at all, I assure you. Come here; I will show you the list of
books I have to get through. Oh, I declare, here comes your trunk—
two trunks. What do you want two trunks for? How perfectly fearful!
Put them down, please, porter—there, near the door. Now then, we
had better settle this matter at once. You must promise that you will
on no account encroach on my half of the room. I take this side with
the bay window; you have the back, with the little side window. I
require light for my work. I give you permission to keep your part,
just there in the corner, as tidy as you please. Do you understand?”
“I shall certainly keep my part of the room tidy,” said Leslie with
some spirit. “And may I ask what this screen is for?”
“Oh! you can use it or not as you please. It is supposed to hide the
washhand-stand: most unnecessary in my opinion. Some of the
students here even go the length of turning the chest of drawers, so
that the drawers may face the wall; then they put an ornamental
sort of piano-sheet over the back of the drawers, and make it look
like a piece of ornamental furniture, ornamental instead of useful.
Ridiculous! Does not one want to bang open a drawer, stuff in one’s
things, shut it again as quickly as possible, and then not give
another thought to the matter? Surely there are untidy girls in the
college: why was it my lot to have you sent to share my room—you
who are the very pink of neatness?”
“I see you are very sorry to have me, and, of course, I am sorry,
too, that you should be put out,” said Leslie, who thought it best to
take the bull by the horns. “But suppose, Miss Colchester—suppose
I, who may not have quite so much work to do at present as you
have——”
“Of course you won’t, you silly girl; I am working for honors, I told
you.”
“Yes,” said Leslie, “and a very hard-working and clever mother, too.
She spends a great deal of her time out, but she has trained my
sisters and myself——”
“I was thinking of it. I did not mean to quote it,” said Leslie.
“Well, I must not waste any more time talking. I suppose you must
have your way. I am afraid your bedstead is a little uncomfortable.
The spring is broken; but you don’t mind, do you?”
“Do you wish for an explanation? If so, pray sit down opposite to me
and don’t expect to stir for a week; it will take me at least as long to
explain the matter. Oh, don’t say any more just now, and do move
as softly as you can! Do just consider that my winning honors in
mathematics is a little more important than that your drawers should
be in immaculate order. Do you comprehend?”
“Perfectly.”
The red-haired maiden returned to her desk, stuffed both her hands
through her fiery locks, which stuck out now like great wings on
each side of her head, and began murmuring slowly to herself.
Leslie stood still for a moment with a sense of dismay stealing over
her.
The second gong pealed through the house, and Annie suddenly
started to her feet.
“Good gracious! Oh, I forgot all about you. What is your name?”
“Leslie Gilroy.”
“And you have put all your things away and made no noise?
Excellent! Did you say that that was the second gong, Miss——”
“Then we must fly. Oh, never mind our hands. Ink? Yes, I have ink
on my hands and on my face and on my hair; but never mind, never
mind; they know me now. I am called ‘Inky Annie.’ I rather glory in
the name.”
“But how are freshers treated, and why must I be given that
unpleasant name?” asked Leslie.
“You won’t if you are silent and keep to your side of the room. Now
then, let’s join hands and fly downstairs.”
“Oh, yes, we are fearfully late, and the others have gone into the
dining hall.”
“Well, come this way,” said Annie. “I’ll squeeze you into a seat by
me, if you like, for this evening, Leslie Gilroy.”
CHAPTER XIII—A COCOA PARTY.
Nearly one hundred girls were in the great dining hall. They were all
seated at the different tables when Annie Colchester and Leslie
Gilroy appeared. Annie went straight up to her own table, bowed
somewhat awkwardly to Miss Frere the tutor, who was at the head,
and then, seeing that the teacher’s eyes were fixed on Leslie, said in
an abrupt voice:
“How do you do, Miss Gilroy?” said Miss Frere in a pleasant voice. “I
think you will find a seat next to Miss Colchester. Move down a little,
please, Jane,” she continued, turning to another girl with a rosy face
and dark eyes. “Yes, there is plenty of room now. I will have a talk
with you after dinner, if you like, Miss Gilroy.”
“Thank you, I shall be very glad,” replied Leslie. Her bright eyes and
lovely face, her whole manner and pleasant expression, made many
of the girls turn and glance at her; but nobody stared in at all an
unpleasant manner.
The girl called Jane began to talk to Leslie, and told her some of the
rules of the place. Leslie was glad to learn what she could; but her
eyes anxiously glanced from table to table in the hope of once more
seeing her two companions of the cab. Presently she observed
Marjorie and Eileen seated at a table at the other end of the room.
They were together, looking already quite at home and perfectly
contented. They talked to one another; when they caught Leslie’s
eyes they nodded to her in a pleasant, hail-fellow-well-met manner.
“Who are those two girls?” said Jane Heriot suddenly. “They are
freshers like yourself, are they not?”
“I do not know much about them,” replied Leslie. “Yes; they have
just come to St. Wode’s—their names are Marjorie and Eileen
Chetwynd. They were kind enough to share a cab with me coming
from the station, and seem to be very nice girls indeed.”
“I like their faces,” said Miss Heriot; “but what a funny way they do
their hair. I don’t care for that short hair; do you?”
“Not personally,” replied Leslie; “but they seem nice girls and have
handsome faces.”
“Yes, I am sure they are charming, and also out of the common. I
only trust they won’t join the oddities. We have a few oddities here,
of course. I am so glad you are not going to be one.”
“I overheard you, Jane,” she said; “and you are perfectly welcome to
speak of me as the oddity of all oddities. Miss Leslie Gilroy has found
out that fact for herself already; have you not, Miss Gilroy?”
“You are sure to have a room to yourself after this term,” said Jane
Heriot. “This is always our most crowded term; but if Annie takes
honors, which she is very likely to do, she will be leaving St. Wode’s,
and then the governors will give you another room.”
“Oh, yes, such a darling; the dearest, sweetest woman on earth. But
surely you don’t want to talk over books to-night?”
“Well, of course you can speak to Miss Frere; but I don’t think she
can give you much of her time, for she is to open the debate. She is
our classical tutor. Are you classical, Miss Gilroy?”
“In that case you won’t have anything to do with Miss Frere. Miss
Maple is the tutor who will look after you and arrange your lectures.
I will just speak to Miss Frere. Oh, come with me if you like; we can
both speak to her.”
Jane Heriot slipped her hand through Leslie’s arm, drew her up the
room to where Miss Frere was talking to a number of students, and
then touched the tutor on the arm.
“Ah, my dear,” said Miss Frere, turning to Leslie, “you would like to
have a little talk with me?”
“But, please, Miss Frere,” interrupted Jane, “Miss Gilroy has just told
me that she is going to study literature.”
“In that case I am not the tutor who will have to look after you,”
replied Miss Frere. “Shall I introduce you to Miss Maple now, or will
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
ebookname.com