100% found this document useful (3 votes)
101 views

Learning PHP MySQL JavaScript With jQuery CSS HTML5 Early Release 5th 5th Edition Robin Nixon All Chapters Instant Download

MySQL

Uploaded by

cuzziruetzql
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
101 views

Learning PHP MySQL JavaScript With jQuery CSS HTML5 Early Release 5th 5th Edition Robin Nixon All Chapters Instant Download

MySQL

Uploaded by

cuzziruetzql
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 67

Download the full version of the ebook at

https://ebookfinal.com

Learning PHP MySQL JavaScript With jQuery CSS


HTML5 Early Release 5th 5th Edition Robin
Nixon

https://ebookfinal.com/download/learning-php-
mysql-javascript-with-jquery-css-html5-early-
release-5th-5th-edition-robin-nixon/

Explore and download more ebook at https://ebookfinal.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Learning PHP MySQL JavaScript and CSS 2nd Edition Robin


Nixon

https://ebookfinal.com/download/learning-php-mysql-javascript-and-
css-2nd-edition-robin-nixon/

ebookfinal.com

CSS Floating Floats and Float Shapes EARLY RELEASE 1


[EARLY RELEASE] Edition Eric A. Meyer

https://ebookfinal.com/download/css-floating-floats-and-float-shapes-
early-release-1-early-release-edition-eric-a-meyer/

ebookfinal.com

Thoughtful Machine Learning with Python Early Release


Matthew Kirk

https://ebookfinal.com/download/thoughtful-machine-learning-with-
python-early-release-matthew-kirk/

ebookfinal.com

HTML5 programming with JavaScript for dummies Mueller

https://ebookfinal.com/download/html5-programming-with-javascript-for-
dummies-mueller/

ebookfinal.com
Learning jQuery 4th Edition Better interaction design and
web development with simple JavaScript techniques Jonathan
Chaffer
https://ebookfinal.com/download/learning-jquery-4th-edition-better-
interaction-design-and-web-development-with-simple-javascript-
techniques-jonathan-chaffer/
ebookfinal.com

Learning jQuery Better Interaction Design and Web


Development with Simple Javascript Techniques 1st Ed.
Edition Jonathan Chaffer
https://ebookfinal.com/download/learning-jquery-better-interaction-
design-and-web-development-with-simple-javascript-techniques-1st-ed-
edition-jonathan-chaffer/
ebookfinal.com

PHP MySQL Novice to Ninja 5th Edition The Easy Way to


Build Your Own Database Driven Website Kevin Yank

https://ebookfinal.com/download/php-mysql-novice-to-ninja-5th-edition-
the-easy-way-to-build-your-own-database-driven-website-kevin-yank/

ebookfinal.com

Starting Out with C Early Objects 5th Edition Tony Gaddis

https://ebookfinal.com/download/starting-out-with-c-early-objects-5th-
edition-tony-gaddis/

ebookfinal.com

Core web application development with PHP and MySQL 1.


printing Edition Wandschneider

https://ebookfinal.com/download/core-web-application-development-with-
php-and-mysql-1-printing-edition-wandschneider/

ebookfinal.com
Learning PHP MySQL JavaScript With jQuery CSS
HTML5 Early Release 5th 5th Edition Robin Nixon
Digital Instant Download
Author(s): Robin Nixon
ISBN(s): 9781491978917, 1491978910
Edition: 5
File Details: PDF, 7.50 MB
Year: 2018
Language: english
Learning PHP, MySQL, & JavaScript
With jQuery, CSS, & HTML5
Fifth Edition

Robin Nixon

1. Learning PHP, MySQL, & JavaScript


2. Preface
1. Audience
2. Assumptions This Book Makes
3. Organization of This Book
4. Supporting Books
5. Conventions Used in This Book
6. Using Code Examples
7. Safari® Books Online
8. How to Contact Us
9. Acknowledgments
3. 1. Introduction to Dynamic Web Content
1. HTTP and HTML: Berners-Lee’s Basics
2. The Request/Response Procedure
3. The Benefits of PHP, MySQL, JavaScript, CSS, and HTML5
1. Using PHP
2. Using MySQL
3. Using JavaScript
4. Using CSS
4. And Then There’s HTML5
5. The Apache Web Server
6. Handling mobile devices
7. About Open Source
8. Bringing It All Together
9. Questions
4. 2. Setting Up a Development Server
1. What Is a WAMP, MAMP, or LAMP?
2. Installing Ampps on Windows
1. Testing the Installation
3. Installing Ampps on Mac OS X
4. Installing a LAMP on Linux
5. Working Remotely
1. Logging In
2. Using FTP
6. Using a Program Editor
7. Using an IDE
8. Questions
5. 3. Introduction to PHP
1. Incorporating PHP Within HTML
2. This Book’s Examples
3. The Structure of PHP
1. Using Comments
2. Basic Syntax
3. Variables
4. Operators
5. Variable Assignment
6. Multiple-Line Commands
7. Variable Typing
8. Constants
9. Predefined Constants
10. The Difference Between the echo and print Commands
11. Functions
12. Variable Scope
4. Questions
6. 4. Expressions and Control Flow in PHP
1. Expressions
1. TRUE or FALSE?
2. Literals and Variables
2. Operators
1. Operator Precedence
2. Associativity
3. Relational Operators
3. Conditionals
1. The if Statement
2. The else Statement
3. The elseif Statement
4. The switch Statement
5. The ? Operator
4. Looping
1. while Loops
2. do...while Loops
3. for Loops
4. Breaking Out of a Loop
5. The continue Statement
5. Implicit and Explicit Casting
6. PHP Dynamic Linking
7. Dynamic Linking in Action
8. Questions
7. About the Author
Preface
The combination of PHP and MySQL is the most convenient approach to dynamic, database-
driven web design, holding its own in the face of challenges from integrated frameworks—such
as Ruby on Rails—that are harder to learn. Due to its open source roots (unlike the competing
Microsoft .NET Framework), it is free to implement and is therefore an extremely popular option
for web development.

Any would-be developer on a Unix/Linux or even a Windows/Apache platform will need to


master these technologies. And, combined with the partner technologies of JavaScript, jQuery,
CSS, and HTML5, you will be able to create websites of the caliber of industry standards like
Facebook, Twitter, and Gmail.
Audience
This book is for people who wish to learn how to create effective and dynamic websites. This
may include webmasters or graphic designers who are already creating static websites but wish
to take their skills to the next level, as well as high school and college students, recent graduates,
and self-taught individuals.

In fact, anyone ready to learn the fundamentals behind the Web 2.0 technology known as Ajax
will obtain a thorough grounding in all of these core technologies: PHP, MySQL, JavaScript,
CSS, and HTML5, and learn the basics of the jQuery and jQuery Mobile libraries too.
Assumptions This Book Makes
This book assumes that you have a basic understanding of HTML and can at least put together a
simple, static website, but does not assume that you have any prior knowledge of PHP, MySQL,
JavaScript, CSS, or HTML5—although if you do, your progress through the book will be even
quicker.
Organization of This Book
The chapters in this book are written in a specific order, first introducing all of the core
technologies it covers and then walking you through their installation on a web development
server so that you will be ready to work through the examples.

In the first section, you will gain a grounding in the PHP programming language, covering the
basics of syntax, arrays, functions, and object-oriented programming.

Then, with PHP under your belt, you will move on to an introduction to the MySQL database
system, where you will learn everything from how MySQL databases are structured to how to
generate complex queries.

After that, you will learn how you can combine PHP and MySQL to start creating your own
dynamic web pages by integrating forms and other HTML features. Following that, you will get
down to the nitty-gritty practical aspects of PHP and MySQL development by learning a variety
of useful functions and how to manage cookies and sessions, as well as how to maintain a high
level of security.

In the next few chapters, you will gain a thorough grounding in JavaScript, from simple
functions and event handling to accessing the Document Object Model and in-browser validation
and error handling, plus a comprehensive primer on using the popular jQuery library for
JavaScript.

With an understanding of all three of these core technologies, you will then learn how to make
behind-the-scenes Ajax calls and turn your websites into highly dynamic environments.

Next, you’ll spend two chapters learning all about using CSS to style and lay out your web
pages, before discovering how the jQuery libraries can make your development job a great deal
easdier, and then moving on to the final section on the interactive features built into HTML5,
including geolocation, audio, video, and the canvas. After this, you’ll put together everything
you’ve learned in a complete set of programs that together constitute a fully functional social
networking website.

Along the way, you’ll find plenty of advice on good programming practices and tips that could
help you find and solve hard-to-detect programming errors. There are also plenty of links to
websites containing further details on the topics covered.
Supporting Books
Once you have learned to develop using PHP, MySQL, JavaScript, CSS, and HTML5, you will
be ready to take your skills to the next level using the following O’Reilly reference books. To
learn more about any of these titles, simply enter the ISBN shown next to it into the search box at
http://oreilly.com or at any good online book seller’s website.

Dynamic HTML: The Definitive Reference (9780596527402) by Danny Goodman

PHP in a Nutshell (9780596100674) by Paul Hudson

MySQL in a Nutshell (9780596514334) by Russell Dyer

JavaScript: The Definitive Guide (9780596805524) by David Flanagan

CSS: The Definitive Guide (9780596527334) by Eric A. Myer

HTML5: The Missing Manual (9781449363260) by Matthew MacDonald


Conventions Used in This Book
The following typographical conventions are used in this book:

Plain text
Indicates menu titles, options, and buttons.
Italic
Indicates new terms, URLs, email addresses, filenames, file extensions, pathnames,
directories, and Unix utilities.
Constant width
Indicates command-line options, variables and other code elements, HTML tags, macros,
and the contents of files.
Constant width bold
Shows program output or highlighted sections of code that are discussed in the text.
Constant width italic
Shows text that should be replaced with user-supplied values.

Note

This element signifies a tip, suggestion, or general note.

Warning

This element indicates a warning or caution.


Using Code Examples
This book is here to help you get your job done. In general, if example code is offered with this
book, you may use it in your programs and documentation. You do not need to contact us for
permission unless you’re reproducing a significant portion of the code. For example, writing a
program that uses several chunks of code from this book does not require permission. Selling or
distributing a CD-ROM of examples from O’Reilly books does require permission. Answering a
question by citing this book and quoting example code does not require permission.
Incorporating a significant amount of example code from this book into your product’s
documentation does require permission. There is a companion website to this book at
http://lpmj.net, where you can download all the examples from this book in a single zip file.

We appreciate, but do not require, attribution. An attribution usually includes the title, author,
publisher, and ISBN. For example: “Learning PHP, MySQL & JavaScript, 5th Edition by Robin
Nixon (O’Reilly). Copyright 2018 Robin Nixon,

.”

If you feel your use of code examples falls outside fair use or the permission given above, feel
free to contact us at [email protected].
How to Contact Us
Please address comments and questions concerning this book to the publisher:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

(800) 998-9938 (in the United States or Canada)

(707) 829-0515 (international or local)

(707) 829-0104 (fax)

We have a web page for this book, where we list errata, examples, and any additional
information. You can access this page at http://bit.ly/lpmjch_4e.

To comment or ask technical questions about this book, send email to


[email protected].

For more information about our books, courses, conferences, and news, see our website at
http://www.oreilly.com.

Find us on Facebook: http://facebook.com/oreilly

Follow us on Twitter: http://twitter.com/oreillymedia

Watch us on YouTube: http://www.youtube.com/oreillymedia


Acknowledgments
I would like to once again thank my editor, Andy Oram, and everyone who worked so hard on
this book, including

??? ??? for his comprehensive technical review, ??? ??? for overseeing production, ??? ??? for
copy editing, ??? ??? for proofreading, Robert Romano and Rebecca Demarest for their
illustrations, ??? ??? for interior design, ??? ??? for creating the index, Karen Montgomery for
the original sugar glider front cover design, ??? ??? for the latest book cover, and everyone else
too numerous to name who submitted errata and offered suggestions for this new edition.
Chapter 1. Introduction to Dynamic Web
Content
The World Wide Web is a constantly evolving network that has already traveled far beyond its
conception in the early 1990s, when it was created to solve a specific problem. State-of-the-art
experiments at CERN (the European Laboratory for Particle Physics—now best known as the
operator of the Large Hadron Collider) were producing incredible amounts of data—so much
that the data was proving unwieldy to distribute to the participating scientists who were spread
out across the world.

At this time, the Internet was already in place, connecting several hundred thousand computers,
so Tim Berners-Lee (a CERN fellow) devised a method of navigating between them using a
hyperlinking framework, which came to be known as Hypertext Transfer Protocol, or HTTP. He
also created a markup language called Hypertext Markup Language, or HTML. To bring these
together, he wrote the first web browser and web server, tools that we now take for granted.

But back then, the concept was revolutionary. The most connectivity so far experienced by at-
home modem users was dialing up and connecting to a bulletin board that was hosted by a single
computer, where you could communicate and swap data only with other users of that service.
Consequently, you needed to be a member of many bulletin board systems in order to effectively
communicate electronically with your colleagues and friends.

But Berners-Lee changed all that in one fell swoop, and by the mid-1990s, there were three
major graphical web browsers competing for the attention of 5 million users. It soon became
obvious, though, that something was missing. Yes, pages of text and graphics with hyperlinks to
take you to other pages was a brilliant concept, but the results didn’t reflect the instantaneous
potential of computers and the Internet to meet the particular needs of each user with
dynamically changing content. Using the Web was a very dry and plain experience, even if we
did now have scrolling text and animated GIFs!

Shopping carts, search engines, and social networks have clearly altered how we use the Web. In
this chapter, we’ll take a brief look at the various components that make up the Web, and the
software that helps make it a rich and dynamic experience.

Note

It is necessary to start using some acronyms more or less right away. I have tried to clearly
explain them before proceeding. But don’t worry too much about what they stand for or what
these names mean, because the details will become clear as you read on.

(1)
HTTP and HTML: Berners-Lee’s Basics
HTTP is a communication standard governing the requests and responses that take place between
the browser running on the end user’s computer and the web server. The server’s job is to accept
a request from the client and attempt to reply to it in a meaningful way, usually by serving up a
requested web page—that’s why the term server is used. The natural counterpart to a server is a
client, so that term is applied both to the web browser and the computer on which it’s running.

Between the client and the server there can be several other devices, such as routers, proxies,
gateways, and so on. They serve different roles in ensuring that the requests and responses are
correctly transferred between the client and server. Typically, they use the Internet to send this
information. Some of these in-between devices can also help speed up the Internet by storing
pages or information locally in what is called a cache, and then serving these up to clients
directly from this cache, rather than fetching them all the way from the source server.

A web server can usually handle multiple simultaneous connections and—when not
communicating with a client—spends its time listening for an incoming connection. When one
arrives, the server sends back a response to confirm its receipt.

(2)
The Request/Response Procedure
At its most basic level, the request/response process consists of a web browser asking the web
server to send it a web page and the server sending back the page. The browser then takes care of
displaying the page (see Figure 1-1).

(3)
Figure 1-1. The basic client/server request/response sequence

Each step in the request and response sequence is as follows:

1. You enter http://server.com into your browser’s address bar.

2. Your browser looks up the IP address for server.com.

3. Your browser issues a request for the home page at server.com.

4. The request crosses the Internet and arrives at the server.com web server.

5. The web server, having received the request, looks for the web page on its disk.

6. The web page is retrieved by the server and returned to the browser.

7. Your browser displays the web page.

For an average web page, this process takes place once for each object within the page: a
graphic, an embedded video or Flash file, and even a CSS template.

(4)
In step 2, notice that the browser looked up the IP address of server.com. Every machine attached
to the Internet has an IP address—your computer included. But we generally access web servers
by name, such as google.com. As you probably know, the browser consults an additional Internet
service called the Domain Name Service (DNS) to find its associated IP address and then uses it
to communicate with the computer.

For dynamic web pages, the procedure is a little more involved, because it may bring both PHP
and MySQL into the mix. For instance, you may click on a picture of a raincoat. The PHP will
put together a request using the standard database language, SQL—many of whose commands
you will learn in this book—and send the request to the MySQL server. The MySQL server will
return information about the raincoat you selected, and the PHP code will wrap it all up in some
HTML, which the server will send to your browser (see Figure 1-2).

(5)
Figure 1-2. A dynamic client/server request/response sequence

1. You enter http://server.com into your browser’s address bar.

2. Your browser looks up the IP address for server.com.

3. Your browser issues a request to that address for the web server’s home page.

4. The request crosses the Internet and arrives at the server.com web server.

5. The web server, having received the request, fetches the home page from its hard disk.

6. With the home page now in memory, the web server notices that it is a file incorporating
PHP scripting and passes the page to the PHP interpreter.

7. The PHP interpreter executes the PHP code.

8. Some of the PHP contains SQL statements, which the PHP interpreter now passes to the

(6)
MySQL database engine.

9. The MySQL database returns the results of the statements to the PHP interpreter.

10. The PHP interpreter returns the results of the executed PHP code, along with the results
from the MySQL database, to the web server.

11. The web server returns the page to the requesting client, which displays it.

Although it’s helpful to be aware of this process so that you know how the three elements work
together, in practice you don’t really need to concern yourself with these details, because they all
happen automatically.

HTML pages returned to the browser in each example may well contain JavaScript, which will
be interpreted locally by the client, and which could initiate another request—the same way
embedded objects such as images would.

(7)
The Benefits of PHP, MySQL, JavaScript,
CSS, and HTML5
At the start of this chapter, I introduced the world of Web 1.0, but it wasn’t long before the rush
was on to create Web 1.1, with the development of such browser enhancements as Java,
JavaScript, JScript (Microsoft’s slight variant of JavaScript), and ActiveX. On the server side,
progress was being made on the Common Gateway Interface (CGI) using scripting languages
such as Perl (an alternative to the PHP language) and server-side scripting—inserting the
contents of one file (or the output of running a local program) into another one dynamically.

Once the dust had settled, three main technologies stood head and shoulders above the others.
Although Perl was still a popular scripting language with a strong following, PHP’s simplicity
and built-in links to the MySQL database program had earned it more than double the number of
users. And JavaScript, which had become an essential part of the equation for dynamically
manipulating Cascading Style Sheets (CSS) and HTML, now took on the even more muscular
task of handling the client side of the asynchronous communication (exchanging data between a
client and server after a web page has loaded). Using asynchronous communication, web pages
perform data handling and send requests to web servers in the background—without the web
user being aware that this is going on.

No doubt the symbiotic nature of PHP and MySQL helped propel them both forward, but what
attracted developers to them in the first place? The simple answer has to be the ease with which
you can use them to quickly create dynamic elements on websites. MySQL is a fast and
powerful, yet easy-to-use, database system that offers just about anything a website would need
in order to find and serve up data to browsers. When PHP allies with MySQL to store and
retrieve this data, you have the fundamental parts required for the development of social
networking sites and the beginnings of Web 2.0.

And when you bring JavaScript and CSS into the mix too, you have a recipe for building highly
dynamic and interactive websites, especially when there is now a wide range of sophisticated
frameworks of JavaScript functions you can now call on to really speed up web development,
such as the well-known jQuery, which is now probably the most common way programmers
access asynchronous communication features.

(8)
Using PHP
With PHP, it’s a simple matter to embed dynamic activity in web pages. When you give pages
the .php extension, they have instant access to the scripting language. From a developer’s point
of view, all you have to do is write code such as the following:
<?php
echo " Today is " . date("l") . ". ";
?>

Here's the latest news.

The opening <?php tells the web server to allow the PHP program to interpret all the following
code up to the ?> tag. Outside of this construct, everything is sent to the client as direct HTML.
So the text Here's the latest news. is simply output to the browser; within the PHP tags, the
built-in date function displays the current day of the week according to the server’s system time.

The final output of the two parts looks like this:


Today is Wednesday. Here's the latest news.

PHP is a flexible language, and some people prefer to place the PHP construct directly next to
PHP code, like this:
Today is <?php echo date("l"); ?>. Here's the latest news.

There are even more ways of formatting and outputting information, which I’ll explain in the
chapters on PHP. The point is that with PHP, web developers have a scripting language that,
although not as fast as compiling your code in C or a similar language, is incredibly speedy and
also integrates seamlessly with HTML markup.

Note

If you intend to enter the PHP examples in this book to work along with me, you must remember
to add <?php in front and ?> after them to ensure that the PHP interpreter processes them. To
facilitate this, you may wish to prepare a file called example.php with those tags in place.

Using PHP, you have unlimited control over your web server. Whether you need to modify
HTML on the fly, process a credit card, add user details to a database, or fetch information from
a third-party website, you can do it all from within the same PHP files in which the HTML itself
resides.

(9)
Using MySQL
Of course, there’s not a lot of point to being able to change HTML output dynamically unless
you also have a means to track the information users provide to your website as they use it. In the
early days of the Web, many sites used “flat” text files to store data such as usernames and
passwords. But this approach could cause problems if the file wasn’t correctly locked against
corruption from multiple simultaneous accesses. Also, a flat file can get only so big before it
becomes unwieldy to manage—not to mention the difficulty of trying to merge files and perform
complex searches in any kind of reasonable time.

That’s where relational databases with structured querying become essential. And MySQL, being
free to use and installed on vast numbers of Internet web servers, rises superbly to the occasion.
It is a robust and exceptionally fast database management system that uses English-like
commands.

The highest level of MySQL structure is a database, within which you can have one or more
tables that contain your data. For example, let’s suppose you are working on a table called users,
within which you have created columns for surname, firstname, and email, and you now wish to
add another user. One command that you might use to do this is as follows:
INSERT INTO users VALUES('Smith', 'John', '[email protected]');

You will previously have issued other commands to create the database and table and to set up
all the correct fields, but the INSERT command here shows how simple it can be to add new data to
a database. INSERT is an example of Structured Query Language (SQL), a language designed in
the early 1970s and reminiscent of one of the oldest programming languages, COBOL. It is well
suited, however, to database queries, which is why it is still in use after all this time.

It’s equally easy to look up data. Let’s assume that you have an email address for a user and need
to look up that person’s name. To do this, you could issue a MySQL query such as the following:
SELECT surname,firstname FROM users WHERE email='[email protected]';

MySQL will then return Smith, John and any other pairs of names that may be associated with
that email address in the database.

As you’d expect, there’s quite a bit more that you can do with MySQL than just simple INSERT
and SELECT commands. For example, you can combine related data sets to bring related pieces of
information together, ask for results in a variety of orders, make partial matches when you know
only part of the string that you are searching for, return only the nth result, and a lot more.

Using PHP, you can make all these calls directly to MySQL without having to directly access the
MySQL command line interface yourself. This means you can save the results in arrays for
processing and perform multiple lookups, each dependent on the results returned from earlier
ones, to drill down to the item of data you need.

For even more power, as you’ll see later, there are additional functions built right into MySQL
that you can call up to efficiently run common operations within MySQL, rather than create them
out of multiple PHP calls to MySQL.

(10)
Using JavaScript
The oldest of the three core technologies in this book, JavaScript, was created to enable scripting
access to all the elements of an HTML document. In other words, it provides a means for
dynamic user interaction such as checking email address validity in input forms, and displaying
prompts such as “Did you really mean that?” (although it cannot be relied upon for security,
which should always be performed on the web server).

Combined with CSS (see the following section), JavaScript is the power behind dynamic web
pages that change in front of your eyes rather than when a new page is returned by the server.

However, JavaScript can also be tricky to use, due to some major differences in the ways
different browser designers have chosen to implement it. This mainly came about when some
manufacturers tried to put additional functionality into their browsers at the expense of
compatibility with their rivals.

Thankfully, the developers have mostly now come to their senses and have realized the need for
full compatibility with one another, so it is less necessary these days to have to optimise your
code for different browsers. However there remain millions of legacy browsers that will be in use
for a good many years to come. Luckily, there are solutions for the incompatibility problems, and
later in this book we’ll look at libraries and techniques that enable you to safely ignore these
differences.

For now, let’s take a look at how to use basic JavaScript, accepted by all browsers:
<script type="text/javascript">
document.write("Today is " + Date() );
</script>

This code snippet tells the web browser to interpret everything within the script tags as
JavaScript, which the browser then does by writing the text Today is to the current document,
along with the date, by using the JavaScript function Date. The result will look something like
this:
Today is Sun Jan 01 2017 01:23:45

Note

Unless you need to specify an exact version of JavaScript, you can normally omit the
type="text/javascript" and just use <script> to start the interpretation of the JavaScript.

As previously mentioned, JavaScript was originally developed to offer dynamic control over the
various elements within an HTML document, and that is still its main use. But more and more,
JavaScript is being used for asynchronous communication, the process of accessing the web
server in the background.

Asynchronous communication is the process in which web pages begin to resemble standalone
programs, because they don’t have to be reloaded in their entirety. Instead, an asynchronous call
can pull in and update a single element on a web page, such as changing your photograph on a
social networking site or replacing a button that you click with the answer to a question. This
subject is fully covered in [Link to Come].

(11)
Then, in [Link to Come], we take a good look at the jQuery framework, which you can use to
save reinventing the wheel when you need fast, cross-browser code to manipulate your web
pages. Of course, there are other frameworks available too, but jQuery is by far the most popular.
Due to continuous maintenance, it is extremely reliable, and a major tool in the utility kit of
many seasoned web developers.

(12)
Using CSS
CSS is the crucial companion to HTML, ensuring that the HTML text and embeddd images are
laid out consistently and in a manner appropriate for the user’s screen. With the emergence of the
CSS3 standard in recent years, CSS now offers a level of dynamic interactivity previously
supported only by JavaScript. For example, not only can you style any HTML element to change
its dimensions, colors, borders, spacing, and so on, but now you can also add animated
transitions and transformations to your web pages, using only a few lines of CSS.

Using CSS can be as simple as inserting a few rules between <style> and </style> tags in the
head of a web page, like this:
<style>
p {
text-align:justify;
font-family:Helvetica;
}
</style>

These rules change the default text alignment of the <p> tag so that paragraphs contained in it are
fully justified and use the Helvetica font.

As you’ll learn in [Link to Come], there are many different ways you can lay out CSS rules, and
you can also include them directly within tags or save a set of rules to an external file to be
loaded in separately. This flexibility not only lets you style your HTML precisely, but can also
(for example) provide built-in hover functionality to animate objects as the mouse passes over
them. You will also learn how to access all of an element’s CSS properties from JavaScript as
well as HTML.

(13)
And Then There’s HTML5
As useful as all these additions to the web standards became, they were not enough for ever more
ambitious developers. For example, there was still no simple way to manipulate graphics in a
web browser without resorting to plug-ins such as Flash. And the same went for inserting audio
and video into web pages. Plus, several annoying inconsistencies had crept into HTML during its
evolution.

So, to clear all this up and take the Internet beyond Web 2.0 and into its next iteration, a new
standard for HTML was created to address all these shortcomings. It was called HTML5 and it
began development as long ago as 2004, when the first draft was drawn up by the Mozilla
Foundation and Opera Software (developers of two popular web browsers). But it wasn’t until
the start of 2013 that the final draft was submitted to the World Wide Web Consortium (W3C),
the international governing body for web standards.

It has taken a few years for HTML5 to develop, but now we are at a very solid and stable version
5.1 (since 2016). But it’s a never-ending cycle of development, and more functionality is sure to
be built into it over time. Some of the best features in HTML5 for handling and displaying media
include the <audio>, <video>, and <canvas> elements, which add sound, video and advanced
graphics. Everything you need to know about these and all other aspects of HTML5 is covered in
detail starting in [Link to Come].

Note

One of the little things I like about the HTML5 specification is that XHTML syntax is no longer
required for self-closing elements. In the past, you could display a line break using the <br>
element. Then, to ensure future compatibility with XHTML (the planned replacement for HTML
that never happened), this was changed to <br />, in which a closing / character was added (since
all elements were expected to include a closing tag featuring this character). But now things have
gone full circle, and you can use either version of these types of element. So, for the sake of
brevity and fewer keystrokes, in this book I have reverted to the former style of <br>, <hr>, and so
on.

(14)
The Apache Web Server
In addition to PHP, MySQL, JavaScript, CSS, and HTML5, there’s a sixth hero in the dynamic
Web: the web server. In the case of this book, that means the Apache web server. We’ve
discussed a little of what a web server does during the HTTP server/client exchange, but it does
much more behind the scenes.

For example, Apache doesn’t serve up just HTML files—it handles a wide range of files from
images and Flash files to MP3 audio files, RSS (Really Simple Syndication) feeds, and so on.
And these objects don’t have to be static files such as GIF images. They can all be generated by
programs such as PHP scripts. That’s right: PHP can even create images and other files for you,
either on the fly or in advance to serve up later.

To do this, you normally have modules either precompiled into Apache or PHP or called up at
runtime. One such module is the GD (Graphics Draw) library, which PHP uses to create and
handle graphics.

Apache also supports a huge range of modules of its own. In addition to the PHP module, the
most important for your purposes as a web programmer are the modules that handle security.
Other examples are the Rewrite module, which enables the web server to handle a varying range
of URL types and rewrite them to its own internal requirements, and the Proxy module, which
you can use to serve up often-requested pages from a cache to ease the load on the server.

Later in the book, you’ll see how to use some of these modules to enhance the features provided
by the three core technologies.

(15)
Handling mobile devices
We are now firmly in a world of interconnected mobile computing devices, and the concept of
developing websites solely for desktop computers is now rather dated. Instead developers now
aim to develop responsive websites and web apps that tailor themselves to the environment in
which they find themselves running.

So, new in this edition, I show how you can easily create these types of products using just the
technologies detailed in this book, along with the powerful jQuery Mobile library of responsive
JavaScript functions. With it, you’ll be able to focus on the content and usability of your
websites and web apps, knowing that how they display will be automatically optimised for a
range of different computing devices—one less thing for you to worry about.

To learn how to make full use of its power, the final chapter of this book creates a simple social
networking example website, using jQuery Mobile to make it fully responsive and display well
on anything from a small mobile phone screen to a tablet, or a desktop computer.

(16)
About Open Source
The technologies in this book are open source: anyone is allowed to read and change the code.
Whether or not this status is the reason these technologies are so popular has often been debated,
but PHP, MySQL, and Apache are the three most commonly used tools in their categories. What
can be said definitively, though, is that their being open source means that they have been
developed in the community by teams of programmers writing the features they themselves want
and need, with the original code available for all to see and change. Bugs can be found and
security breaches can be prevented before they happen.

There’s another benefit: all these programs are free to use. There’s no worrying about having to
purchase additional licenses if you have to scale up your website and add more servers. And you
don’t need to check the budget before deciding whether to upgrade to the latest versions of these
products.

(17)
Bringing It All Together
The real beauty of PHP, MySQL, JavaScript (sometimes aided by jQuery or other frameworks),
CSS, and HTML5 is the wonderful way in which they all work together to produce dynamic
web content: PHP handles all the main work on the web server, MySQL manages all the data,
and the combination of CSS and JavaScript looks after web page presentation. JavaScript can
also talk with your PHP code on the web server whenever it needs to update something (either on
the server or on the web page). And with the powerful new features in HTML5, such as the
canvas, audio and video, and geolocation, you can make your web pages highly dynamic,
interactive, and multimedia-packed.

Without using program code, let’s summarize the contents of this chapter by looking at the
process of combining some of these technologies into an everyday asynchronous communication
feature that many websites use: checking whether a desired username already exists on the site
when a user is signing up for a new account. A good example of this can be seen with Gmail (see
Figure 1-3).

Figure 1-3. Gmail uses asynchronous communication to check the availability of usernames

The steps involved in this asynchronous process would be similar to the following:

1. The server outputs the HTML to create the web form, which asks for the necessary details,
such as username, first name, last name, and email address.

2. At the same time, the server attaches some JavaScript to the HTML to monitor the
username input box and check for two things: (a) whether some text has been typed into it,
and (b) whether the input has been deselected because the user has clicked on another
input box.

(18)
3. Once the text has been entered and the field deselected, in the background the JavaScript
code passes the username that was entered back to a PHP script on the web server and
awaits a response.

4. The web server looks up the username and replies back to the JavaScript regarding
whether that name has already been taken.

5. The JavaScript then places an indication next to the username input box to show whether
the name is one available to the user—perhaps a green checkmark or a red cross graphic,
along with some text.

6. If the username is not available and the user still submits the form, the JavaScript
interrupts the submission and reemphasizes (perhaps with a larger graphic and/or an alert
box) that the user needs to choose another username.

7. Optionally, an improved version of this process could even look at the username requested
by the user and suggest an alternative that is currently available.

All of this takes place quietly in the background and makes for a comfortable and seamless user
experience. Without asynchronous communication, the entire form would have to be submitted
to the server, which would then send back HTML, highlighting any mistakes. It would be a
workable solution, but nowhere near as tidy or pleasurable as on-the-fly form-field processing.

Asynchronous communication can be used for a lot more than simple input verification and
processing, though; we’ll explore many additional things that you can do with it later in this
book.

In this chapter, you have read a good introduction to the core technologies of PHP, MySQL,
JavaScript, CSS, and HTML5 (as well as Apache), and have learned how they work together. In
Chapter 2, we’ll look at how you can install your own web development server on which to
practice everything that you will be learning.

(19)
Questions
1. What four components (at the minimum) are needed to create a fully dynamic web page?
2. What does HTML stand for?
3. Why does the name MySQL contain the letters SQL?
4. PHP and JavaScript are both programming languages that generate dynamic results for
web pages. What is their main difference, and why would you use both of them?
5. What does CSS stand for?
6. List three major new elements introduced in HTML5.
7. If you encounter a bug (which is rare) in one of the open source tools, how do you think
you could get it fixed?
8. Why is a framework such as jQuery Mobile so important for developing modern websites
and web apps?

(20)
Chapter 2. Setting Up a Development Server
If you wish to develop Internet applications but don’t have your own development server, you
will have to upload every modification you make to a server somewhere else on the Web before
you can test it.

Even on a fast broadband connection, this can still represent a significant slowdown in
development time. On a local computer, however, testing can be as easy as saving an update
(usually just a matter of clicking once on an icon) and then hitting the Refresh button in your
browser.

Another advantage of a development server is that you don’t have to worry about embarrassing
errors or security problems while you’re writing and testing, whereas you need to be aware of
what people may see or do with your application when it’s on a public website. It’s best to iron
everything out while you’re still on a home or small office system, presumably protected by
firewalls and other safeguards.

Once you have your own development server, you’ll wonder how you ever managed without
one, and it’s easy to set one up. Just follow the steps in the following sections, using the
appropriate instructions for a PC, a Mac, or a Linux system.

In this chapter, we cover just the server side of the web experience, as described in Chapter 1.
But to test the results of your work—particularly when we start using JavaScript, CSS, and
HTML5 later in this book—you should ideally have an instance of every major web browser
running on some system convenient to you. Whenever possible, the list of browsers should
include at least Internet Explorer, Mozilla Firefox, Opera, Safari, and Google Chrome. If you
plan to ensure that your sites look good on mobile devices too, you should try to arrange access
to a wide range of Apple iOS and Google Android phones and tablets.

(21)
What Is a WAMP, MAMP, or LAMP?
WAMP, MAMP, and LAMP are abbreviations for “Windows, Apache, MySQL, and PHP,”
“Mac, Apache, MySQL, and PHP,” and “Linux, Apache, MySQL, and PHP.” These
abbreviations describe a fully functioning setup used for developing dynamic Internet web pages.

WAMPs, MAMPs, and LAMPs come in the form of packages that bind the bundled programs
together so that you don’t have to install and set them up separately. This means you can simply
download and install a single program, and follow a few easy prompts, to get your web
development server up and running in the quickest time with a minimum hassle.

During installation, several default settings are created for you. The security configurations of
such an installation will not be as tight as on a production web server, because it is optimized for
local use. For these reasons, you should never install such a setup as a production server.

But for developing and testing websites and applications, one of these installations should be
entirely sufficient.

Warning

If you choose not to go the WAMP/MAMP/LAMP route for building your own development
system, you should know that downloading and integrating the various parts yourself can be very
time-consuming and may require a lot of research in order to configure everything fully. But if
you already have all the components installed and integrated with one another, they should work
with the examples in this book.

(22)
Installing Ampps on Windows
There are several available WAMP servers, each offering slightly different configurations, but
out of the various open source and free options, one of the best is Ampps. You can download it
by clicking the button on the website’s home page at ampps.com, as shown in Figure 2-1.

Figure 2-1. The Ampps website

I recommend that you always download the latest stable release (as I write this, it’s 3.7, which is
a little over 200MB in size). The various Windows, OS X, and Linux installers are listed on the
download page.

Note

During the lifetime of this edition, some of the screens and options shown in the following walk-
through may change. If so, just use your common sense to proceed in as similar a manner as
possible to the sequence of actions described.

Once you’ve downloaded the installer, run it to bring up the window shown in Figure 2-2. Before
arriving at that window, though, if you use an anti-virus program or have User Account Control
activated on Windows, you may first be shown one or more advisory notices, and will have to
click Yes and/or OK to continue installation.

(23)
Figure 2-2. The opening window of the installer

Click Next, after which you must accept the agreement, click Next once again, and then once
more to move past the information screen. You will now need to confirm the installation
location, which will probably be suggested as something like the following, depending on the
letter of your main hard drive, but you can change this if you wish:
C:\Program Files (x86)\Ampps

Once you have decided where to install Ampps, click Next, choose a Start menu folder name,
and click Next. You can choose which icons you wish to install, as shown in Figure 2-3. On the
screen that follows, click the Install button to start the process off.

(24)
Figure 2-3. Choose which icons to install

Installation will take a few minutes, after which you should see the completion screen in
Figure 2-4, and you can click Finish.

Figure 2-4. Ampps is now installed

(25)
The final thing you must do is install C++ Redistributable Visual Studio, if you haven’t already.
Visual Studio is an environment in which you’ll be doing development work. A window will pop
up to prompt you, as in Figure 2-5. Click Yes to start the installation or No if you are certain you
already have it.

Figure 2-5. Install C++ Redistributable Visual Studio if you don’t already have it

If you choose to go ahead and install, you will have to agree to the terms and conditions in the
pop-up window that appears, and then click Install. Installation of this should be fairly fast. Click
Close to finish.

Once Ampps is installed, the control window shown in Figure 2-6 should appear at the bottom-
right of your desktop. This window can also be called up using the Ampps application in the
Start menu, or on the desktop if you allowed these icons to be created.

(26)
Figure 2-6. The Ampps control window

Before proceeding, I recommend you acquaint yourself with the Ampps documentation available
at ampps.com/wiki. Once you have digested this, and should you still have an issue, there’s a
useful support link at the bottom of the control window that will take you to the Ampps website,
where you can open up a trouble ticket.

(27)
Other versions of PHP
You may notice that the default version of PHP in Ampps is 5.5. In other sections of this book I
detail some of the more important changes in PHP 7. So if you wish to try them out for yourself,
click the Options button (nine white boxes in a square) within the Ampps control window, and
then select Change PHP Version, whereupon a new menu will appear in which you can choose
between a number of versions from 5.3 up to 7.1.

(28)
Testing the Installation
The first thing to do at this point is verify that everything is working correctly. To do this, you
are going to try to display the default web page, which will have been saved in the server’s
document root folder (see Figure 2-7). Enter either of the following two URLs into the address
bar of your browser:
localhost
127.0.0.1

Figure 2-7. The default home page

The word localhost is used in URLs to specify the local computer, which will also respond to the
IP address of 127.0.0.1, so you can use either method of calling up the document root of your
web server.

Accessing the document root


The document root is the directory that contains the main web documents for a domain. This
directory the one that the server uses when a basic URL without a path is typed into a browser,
such as http://yahoo.com or, for your local server, http://localhost.

By default Ampps will use the following location as document root:


C:\Program Files (x86)\Ampps\www

To ensure that you have everything correctly configured, you should now create the obligatory
“Hello World” file. So create a small HTML file along the following lines using Windows
Notepad or any other program or text editor, but not a rich word processor such as Microsoft
Word (unless you save as plain text):
<!DOCTYPE html>
<html lang="en">
<head>
<title>A quick test</title>
</head>
<body>
Hello World!
</body>
</html>

Once you have typed this, save the file into the document root directory previously discussed,

(29)
Random documents with unrelated
content Scribd suggests to you:
hänellä on hieman kuumetta. Sitten sanoo hän hyvää yötä ja sulkee
raukeat silmänsä sekä on hetkisen kuluttua nukkunut.

Hänen unensa ei ole rauhallista, hän heitteleikse sinne tänne.


Sitten kun olen kietonut peitteen hyvin hänen ympärilleen, istun minä
kirjoituspöydän ääreen.

Minä istun ja ajattelen, minkälaiseksi kesä muodostuu meille


maalla, mitä me puhelemme kävelymatkoillamme, kuinka me
alotamme tuon ulkoilmakoulumme — ehkä kutsun minä jonkun
toisen pienen tytön seuraksi kouluun — kuinka me rupeamme
soutelemaan ja kalastelemaan. Näen meidät istumassa ulkona
verannalla, kun matkustajahöyrylaivat kulkevat ohi, joku laivasta
viittaa meille, ymmärtämättä, kuinka suloista meillä on etäisessä
kolkassamme.

Haaveillessani unohdin minä melkein, että hän, joka tulee


olemaan seuralaisenani, makaa vuoteessa ja on sairas.

Istun hänen vuoteensa viereen. Hänen kätensä ovat lämpimät ja


punaiset, posket kuumottavat, hän mutisee katkonaisia lauseita,
hajanaisia sanoja. Kuume on nähtävästi kiihtynyt.

Tulen levottomaksi ja telefonoin lääkärille, joka rauhoittaen


arvelee, että lapset usein menettelevät näin, kun heillä on kuumetta.
Ei sen vuoksi tarvitse olla levoton ja hän lupaa tulla varhain
seuraavana aamuna. Minä siirrän lepotuolin vuoteen viereen ja aion
viettää yöni siinä. Vaivun puoliuneen, josta vähinkin ääni minut
herättää. Kuin unessa kuulen minä kellon lyövän määrätyt lyöntinsä,
kuulen vaunujen ajavan ohitse ja näen lempeän kullankarvaisen
kuun hitaasti kulkevan taivaalla.
Toukokuun 28 päivä.

Lääkäri oli täällä, eikä sanonut juuri mitään. Täytyy odottaa, arveli
hän. Mutta minä olen levoton. Alan ymmärtää, että tauti voi kääntyä
vaarallisemmaksi. Ehkä muuttuu se tulirokoksi, jota liikkuu
kaupungissa. Hän on ehkä saanut tartunnan kadulla, joltakin
ohikulkevalta henkilöltä. Kaupungissa, tässä hyvän ja huonon
luonnottomassa yhtymäpaikassa on alttiina kaikelle. Kaupunki on
saituri, joka ei laske meitä kynsistään ennen kuin on imenyt meidät
kuiviin ja köyhdyttänyt, kaupunki on ruumiillisten ja henkisten tautien
pesäpaikka, josta ei kukaan pääse ilman poltinmerkkiä. Kaupunki on
antanut meille kuumeen, antanut Signelle kuumeen.

Toukokuun 29 päivä.

Olen istunut nojatuolissa koko yön Signen käsi omassani. Kuume


kiihtyy, Signe on kyllä vaarallisesti sairas. Lääkäri tuli aamulla. Hän
antaa neuvoja ja määräyksiä.

Toukokuun 30 päivä.

Joka päivä tulee hän yhä kalpeammaksi, hienot jäsenet käyvät


laihoiksi ja läpikuultaviksi, ja kuume ja vilunväreet puistuttavat tuota
hentoa ruumisraukkaa. Kuulen toisinaan, kuinka hän jonkinlaisessa
huumauksessa puhuu äidistään ja minä tulen tuskalliseksi
kuullessani sitä, kun talossa vallitsee hiljaisuus yön aikana ja
ikkunapuitteiden varjo lankeaa lattialle mustana ristinä. Mitä varten te
olette, te lääkärit, jos ette te voi ajaa tautia lasten ruumiista, mitä
voitte te tehdä, jos ette voi pitää lapsia ja nuoria ihmisiä elossa —
sen verran täytyy voida vaatia — vanhat kuolkoot, niiden täytyy
kuolla luonnon järjestyksen mukaan, mutta nuorten tulee elää.
Tehkää velvollisuutenne, pelastakaa lapseni, taikka muuten kutsun
minä teitä puoskaroitsijoiksi!

Lääkäri vaatii, että minun täytyy maata, että minä olen valvonut
neljä päivää ja yötä yhtä mittaa, ja etten minä voi kestää kauvempaa.
Minäkö en voisi kestää! Minä uhmailen sekä lääkäriä että kuolemaa,
minä tiedän, että minä kestän ja että minä elän niin kauvan kuin
lapsenikin elää. Jos Signe kuolee, silloin saatan minäkin kuolla.

Toukokuun 31 päivä.

Se mistä nyt kirjoitan, tapahtui ylempänä mainittuna päivänä,


vaikka minä vasta myöhemmin kirjoitin sen muistoon.

Lääkäri on mennyt ja on taas yö. Hän ei voinut tehdä mitään,


huojentaakseen pienokaisen tuskia, minä olen hermostunut ja
melkein riitelin hänen kanssaan.

Istun nojatuolissa Signen käsi omassani. Kuu kulkee hiljaa taivaan


yli ja ikkunapeitteitten ristin varjo lankee taas lattialle vuoteen päädyn
luo. Se on kuoleman merkki, voi, voi, voi!
Signe, rakastettuni, elä ole niin tuskissasi, minä olen tässä
vieressäsi ja karkoitan kaiken pahan vuoteesi luota, kuolema ei saa
vierailla kodissamme. Tule terveeksi pienokaiseni, se on isäsi, joka
puhuu kanssasi, etkö tunne ääntäni, se olen minä, joka olen pukenut
sinut, leikkinyt kanssasi, kietonut peitteen ympärillesi, ja joka en voi
elää ilman sinua; tule terveeksi, rakkaani, nouse ylös, nouse ylös,
niin menemme me niitylle kielojen keskelle…

Silloin näen minä etehisen oven äänettömästi aukenevan ja


viikatemiehen astuvan sisään ja luurangon kylkiluitten kuvastuvan
seinäpapereita vasten.

"Armahda!"

Mutta ei, viikatemies ei vastaa, kulkee vaan hitaasti eteenpäin


minua kohti.

"Katso toki, luurankomies, kuinka kaunis hän on, minkätähden hän


ei saa elää? Anna hänen elää ja minun kuolla!"

Mutta ei, viikatemiehellä ei ole tunteita, ei armahtavaisuutta — siis


ei ole minullakaan mitään armahtavaisuutta häntä kohtaan.

Veri nousee minun päähäni, minä raivostun, juoksen ylös, syöksyn


ottamaan hyvän voimistelusauvani ja asetun uhkaavasti kuoleman
tielle, seuraavana hetkenä isken minä ja kuulen viikatteen terän
helähtäen putoavan lattialle pieniksi palasiksi; minä lyön vielä kerran
ja luuranko horjuu, vielä isku ja toinenkin, tyhjä pääkallo musertuu, ja
luurangon nikamat raukeevat ratisten yhteen läjään lattialle.

Mutta seuraavassa hetkessä ovat nikamat ja luut taas yhtyneet,


viikate välkkyy kokonaisena ja terävänä kuuvalossa, minä nostan,
kooten kaikki voimani, jälleen sauvani, mutta olen seuraavassa
hetkessä voitettu ja makaan alas painettuna sohvalla. Minä tunnen,
kuinka sydämeni sykkii, minä tiedän, että silmäni tuijottavat, minä
näen kalpeita kasvoja ympärilläni, minä tunnen, että kuolema on
muuttanut mielensä, se ottaa minun ja antaa Signen elää. Minä
tunnen sanomatonta iloa saadessani kuolla Signen sijasta, hän saa
elää, elää, kulkea eteenpäin tietänsä lemuavien koivujen alla
niityllä…

Ja aivan kuin juopuneena räjähdin minä kaikuvaan nauruun,


kunnes vihdoin näen kaiken katoavan silmistäni ja tunnen vaipuvani
suureen pimeyteen.

Kesäkuun 2 päivänä.

Koko maailma lepää surussa, yli koko maailman kuuluu


kirkonkellojen kaiku tuskallisessa hiljaisuudessa.

Sinä olit niin hyvä, sinä pienokainen, lapsenviattomuudessasi ja


sinä olit niin puhdas ja kirkas kuin aamukasteen kimalteleva kristalli.

Sinä olit niin suloinen, kuin kielojen katoava tuoksu ja valkoisen


ruusun lemu keväällä.

Kuin heleimmän viulun äänet, hieno ja hento, liian hieno ja hento


viipyäksesi maailman tomussa.

Ja kuten kielojen, ruusujen tuoksu haihtuu suureen avaruuteen,


jossa ei niitä enää nähdä, eikä voida tuntea, ja kuten sävel kuolee,
monien silmien kyyneltyessä, niin kuolit sinäkin pois luotani keväällä
ja lepäät nyt valkoisena valkoisessa kirstussasi.

Suloinen olet sinä vieläkin loppumattomassa unessasi. Minä


suutelen sinun rakkaita käsiäsi, jotka hellästi hyväilivät minun
karkeaa kättäni.

Jää hyvästi, jää hyvästi, maisen elämäni viimeinen ilo ja lepää


siunattuna pitkä yö.

Valkoisia kukkia istutan minä siihen maahan, joka on kätkevä


sinun hennon lehtimajasi, ja kun satakielien sävelet kaikuvat
pensaitten varjossa, istun minä kukkulan koivun alla ja uneksin, että
sinä olet jälleen vieressäni.

Koko maailma lepää surussa, yli koko maailman kuuluu


kirkonkellojen kaiku tuskallisessa hiljaisuudessa.

Jää hyvästi, jää hyvästi, maisen elämäni riemu ja onni ja lepää


siunattuna pitkä yö.

Minuutin taiteilijana.

Eräässä vanhassa talossa Piazza del Duomon läheisyydessä


Firenzessä oli porttikäytävä muutettu yksinkertaiseksi ravintolaksi,
sellaiseksi, jommoisia on sadottain siellä täällä pienien sivukatujen
varsilla. Huoneusto oli pitkä ja kapea ja laajentui hieman pihan
puolella. Pitkin molempia pituusseiniä oli kuluneita puupenkkiä ja
niiden vieressä pöytä- ja tuoliriviä, samoin oli puusta.
Paikan isäntää oli onnistanut hyvin pienessä liikkeessään. Vähää
ennen kun hän alotti sen, oli hän nainut, nuoren, kukoistavan
lombardialaistytön, johon yksi ja toinen vieraista pian pikiintyi. Se
meni niin pitkälle, että yksi näistä, kun ei nuori vaimo ollenkaan
osoittanut hänelle vastarakkautta, sisällä osteriassa ampui luodin
läpi ohimonsa. Tämä tapaus varmensi liikkeen. Uusia vieraita tuli —
tahtoivathan kaikki nähdä tuon viehättävän nuoren rouvan — ja osa
niistä tuli jokapäiväisiksi vieraiksi, sittenkun olivat tulleet
huomaamaan, että emännän toimeliaat kädet tarjoilivat heille yhtä
hyvin kuin nopeimpain viinurien, ehkäpä paremminkin — ja onhan
naisen käsi aina sentään naisen käsi, joskin sitä vaan saa edes
katsella.

Vittorion osteriaan kokoutui siten suuri kävijäjoukko, joka viihtyi


hyvin, eikä halunnut muualle. Tosin vanheni emäntä ja kadotti
vetovoimansa, mutta sen sijaan piti hän paremmin silmällä keittäjää.
Kaikissa tapauksissa tiesi sentään jokainen, mitä joku vuosi sitten oli
tapahtunut, ilmassa oli vielä romantillisuutta ja romantillisuus
houkuttelee.

Jos astui osteriaan puolenpäivän seuduissa, täytti sen kirjava


seura. Pyylevällä papilla, suurine kauluksineen ja paljaine, pyöreine,
päälakineen, oli määrätty paikkansa erään aliupseerin vieressä. He
olivat paikan ylhäisöä, kannattivat sen mainetta ja sen vuoksi
suosikin Vittorio heitä silminnähtävästi ja oli opettanut viinurinsa
Otellonkin osoittamaan suurinta kohteliaisuutta ja säntillisyyttä heitä
kohtaan. Alhaalla oven luona istui joukko italialaisia taiteilijoita —
epävarmaa väkeä, joilla ei kaikin ajoin ollut penniäkään taskussaan
— ylempänä, tarjoilupöydän läheisyydessä oli ylioppilailla pöytänsä
ja jälelle jääneet paikat täyttivät lystikkäät vuokra-ajurit
silinterihattuineen, jotka joskus olivat olleet mustat ja sileät, he olivat
lyhyitä, punakoita miehiä, joiden pyöreitä vatsoja ympäröi lujat
vaalearuutuiset liivit, ja työkansaa monen moista. Eräässä nurkassa
oli joukolla pohjoismaisia taiteilijoita, tanskalaisilla, norjalaisilla,
ruotsalaisilla ja suomalaisilla, oma vakinainen pöytänsä — nekin
hyvin suosittuja, sillä toisinaan tapahtui, että joku heistä oli saanut
taulun myydyksi kotimaassaan, ja silloin pantiin mahdollisesti
toimeen pienet kekkerit, yksinkertaiset tosin, mutta jotka tässä
paikassa näyttivät koko suurenmoisilta — ajatelkaas, kaksi
ruokalajia, jälkiruokaa, hyvää viiniä, kahvia ja certosalikööriä à 30
sentissimoa lasi! Olihan se ainakin toista, kuin nuo ijankaikkiset
makaroonit.

Vittorio ja Otello kävivät toisen vieraan luota toisen luo, lukien


huimaavalla nopeudella ruokalistan, jota käytännöllisistä syistä ei
koskaan kirjoitettu. Ensi mainittu ei ollut kirjoitusmies ja toisella oli
muuta tekemistä. Mutta tultuaan skandinaavialaisten luo, saivat he
hillitä kieltänsä. Sen tuli käydä hitaasti — muutenhan ei siitä
ymmärtänyt mitään — varsinkin kun ylioppilaat keskustelivat
vilkkaasti pöytänsä luona ja ajurit nauroivat niin että hiki juoksi. Sen
täytyi käydä hitaasti, että sitä voi seurata.

Mutta nyt tuli Otellon erityinen vieras. Se oli nuori, pitkäkasvuinen


solakka norjatar, jolla oli suuret, yhtaikaa haaveilevat ja iloiset silmät,
ja kiharat, vaaleat hiukset, jotka pörröisinä ympäröivät hänen
päätään ja loistivat auringonpaisteessa kuin sädekehä. Kun hän
astui sisään, kääntyivät ylioppilaiden päät, ja italialaiset maalarit
mutisivat jotakin Botticellin Prima verasta — hän saikin sitten kantaa
sitä nimeä, eikä suinkaan hän siitä pahastunut, sillä Botticellin tyypit
ovat kehuttuja kauneudestaan ja suloudestaan. Voidakseen nopeasti
ja hyvin tarjoilla tuolle vaaleaveriselle norjalaisnaiselle, unohti Otello
usein sekä papin että alaupseerin, ja jos hän sai hetkisen joutoaikaa,
lepäsivät hänen katseensa syvällä ihastuksella Prima verassa —
hän oli nähtävästi hänen mielestään jokin korkeampi olento,
istuissaan toisten joukossa, keskustellen museoissakäynneistä,
kotimaan oloista ja opinnoista. Mutta joka kerta kun Otello kuuli
mainittavan Titzianon, Michel-Angelon, Donatellon, taikka jonkun
muun italialaisen mestarin nimeä loisti vilahdus hänen ruskeissa
silmissään. Hän oli ylpeä suurista, manalle menneistä
maamiehistään — viinuri Otello — ylpeä, kuuluessaan kansaan, joka
sentään on mahtanut olla enemmän, kuin useimmat muut, koska
tänne on tultu maista ja valtakunnista, katselemaan niitä
taideteoksia, joilla nämä ovat koristaneet ihanan maansa.
Norjalaisnaisen ja tuon näppärän viinurin välillä oli syntynyt
jonkinlainen tuttavallisuus, jonkinlainen rakastelu, hän viihtyi
parhaiten tässä ravintolassa, söi kaikki ateriansa siellä, opetteli
leikkiä laskien ja nauraen vähän italiankieltä, näytteli usein
lapsellisella iloisuudella viinurille ostoksiaan ja sai palkinnoksi monta
hyvää ohjausta paikallisista asioista, puodeista, messuista ja
sellaisista, jotka ulkomaalaiselle ovat arvaamattoman tärkeitä tietää
— ja Otello, olihan tuo nimikin oikein romantillinen!

Nyt alkoi yleinen liike skandinaavialaisten pöydässä. Matkalleko?


— lähtisikö hän matkalle — Prima vera, joka jo oli ollut useita
kuukausia Firenzessä — hän, jota jo oli opittu pitämään pysyväisen
siirtolan jäsenenä — matkalleko? Sepä vasta oli päähän pisto: lähteä
pois Italian keväästä! Niin, mutta kyllä hänen sentään joka
tapauksessa täytyi, hän oli saanut kirjeen — ei saaneet houkuttelut
häntä muuttamaan mieltänsä, ei kuvailut kukkivista mantelipuista ja
akasioista ja lämpimistä tuoksuavista kuutamoöistä lauluineen ja
satakielineen. Hän pysyi lujana päätöksessään ja se pantaisiin
täytäntöön ehkä jo huomenna. "Oi, signorina, signorina," sanoi Otello
ja pudisti päätään, saatuaan kuulla, mistä oli kysymys, eikä juuri
mitään muuta — "signorina, signorina!"

Illalla panisi siirtola joka tapauksessa toimeen jäähyväisjuhlan


Prima veralle, ja siitä on tuleva juhla, jossa tulee olemaan kukkia ja
väkevää viiniä. Otello oli väsymätön puuhatessaan ja
valmistaessaan. Hän oli ollut oikeissa juhlissa ennen muinoin,
harjoittaissaan soitantoa, hän oli käynyt konservatorioissa, mutta
häntä oli kehoitettu jättämään kesken. Hän tiesi, kuinka piti olla, jotta
olisi hienoa — taitetut servietit, kukkavihko jokaisen katteen
kohdalla, kapea kukkakiehkura pitkin pöytää, ja pari vanhanaikaisia
haarukkakynttiläjalkoja, jotka Vittorio oli perinyt isältään, ylentämään
kokonaisvaikutusta — ja syvällä Prima veran servietissä suloinen,
vastapuhjennut ruusu, — vaalea ja hento, kuin hän itsekin.

Illalla esiintyivät pohjoismaalaiset täydessä juhlapuvussa s.o. he


olivat panneet päälleen parasta mitä olivat voineet. Se, jolla ei ollut
mitään juhlavaatteita, oli ostanut itselleen ainakin suuren valkoisen
tai tulipunaisen kravatin ja kun Prima vera saapui vaalean
siniharmaassa samettileninkissään, otettiin hän vastaan
kukkaissateella ja kaunis ruusu, joka oli servietissä, putosi sieltä
hänen syliinsä, ja sen kiinnitti hän rintaansa, antaen ihastuneelle
Otellolle kiitollisen nyökkäyksen.

Se oli hauska ilta. Emäntä oli oikein toden perään pitänyt silmällä
keittäjää — tarjottiin oivallista kalaa, mainioita liharuokia ja
legymeriä, vino rosso vecchiota, marsalaa, kahvia ja certosaa ja
ilman täytti neilikkain, ruusujen ja narsissien lemu, ja mielissä vallitsi
iloinen tunnelma, että kevään aika oli tullut haaveiluineen, uhkuvine
ajatuksineen tulevaisuuden urotöistä ja aavistus siitä, että salaisuus,
jota kaikki odottivat, nyt julkaistaisiin loistavassa valossa —
kaikkihan tahtoivat onnitella Prima veraa ja kaikki tahtoivat kantaa
häntä käsillään.

Nyt laulettaisiin pohjoismaalaisia lauluja, ensimäiseksi norjalaisia.


"Ja vi elskar" täytti säveleillään huoneuston ja italialaiset, jotka
istuivat pitkin seinänvieriä ja katselivat tätä kevään juhlaa, ällistelivät
uteliaina. Mutta silloin ei Prima vera enää voinut pidättää itseään.
Hän nousi ylös, hänen hoikka ja korkea vartalonsa
sinisenharmaassa samettipuvussa näytti komealta vasten keltaista
kukilla koristettua seinää, silmät säkenöivät ja kiharaiset hiukset
loistivat kuin sädekehä. Hän nousi ja lausui tuon ratkaisevan sanan.
Niin, totta oli, että hän oli kihloissa, nyt, kun tunturit ja vuonot tulivat
esiin kotimaan sävelten siivillä, ei hän enää voinut säilyttää rakkainta
salaisuuttaan, hän matkustaa Norjaan, jossa hänen sydämensä
ystävä on, jossa hän on rakentanut hänelle kodin vuonon rannalle,
tunturin juurelle, jossa he eläisivät onnessa ja rakkaudessa, ja jonne
hän veisi mukanaan kaikki muistot valoisasta Italiasta.

Skandinaavilaiset joivat riemuiten Prima veran maljan ja äänekäs


eläköönhuuto kaikui huoneuston läpi. Sitten ilmoitettiin ilon aihe
italialaisillekin ja valtavassa onnittelulaulussa lausuivat he hänelle
kunnioituksensa, tuntemattomat ylioppilaat, maalarit ja työmiehet,
lopettaen laulunsa sirolla kumarruksella. Sitten joivat he kaikki hänen
menestyksekseen, Vittorio joi hänen maljansa, emäntä joi hänen
maljansa ja Otello joi hänen maljansa. Mutta sill’aikaa kun eräs
noista innostuneista italialaisista ylioppilaista piti vilkkaan puheen
pohjolan ja Norjan kunniaksi, katosi tuo ketterä Otello. Hänet
löydettiin sitten istumasta kadun käytävältä, katkerasti itkien, mutta
jätettiin rauhaan suruineen.
Nyt oli ilo noussut ylimmilleen. Skandinaavialaiset laulut kaikuivat
vuorotellen itaalialaisten kanssa, kaikki muodostivat nyt yhden
ainoan, suuren seuran, jossa kaikki sanoivat jotakin ja kaikki
ymmärsivät toisiaan, puhuttiinpa sitten italiaa, ruotsia tai tanskaa.
Vittorion kitarri otettiin esiin ääntä antamaan ja ilo oli ylimmillään.

Yhtäkkiä aukeni kadunpuoleinen ovi ja sisään tuli Otello,


pyyhkäisten pois viimeisen kyyneleen takin hiallaan. Pikaisin askelin
ja loistavin silmin astui hän seurueen luo, tarttui Vittorion kitariin ja
hyppäsi ylös tyhjälle pöydälle, otti äänen ja lauloi erään italialaisen
katuserenaadin äänellä joka väreili liikutuksesta. Italialaiset, jotka
alussa tahtoivat saada tuon viinuriraukan vaikenemaan, vaikenivat
pian ja kuuntelivat melkein hartaudella laulua. Monta kertaa ennen
olivat he kuulleet tämän serenaadin, mutta koskaan ei sitä oltu
laulettu sellaisella lämmöllä, innolla ja taiteellisuudella, kuin nyt, eikä
tuo renkutus koskaan ennen ollut houkutellut kyyneleitä kuulijainsa
silmiin.

Kun Otello oli lopettanut ja astui alas laululavaltaan, riensi Prima


vera esiin ja kiitti häntä suurella lämpimällä kyyneleellä ja
kädenpuristuksella — silloin kumartui Otello äkkiä alas, ja painoi
suudelman valkoiselle, hienolle kädelle ja pujahti sitten kadulle, jossa
kuu valaisi vanhoja mustuneita taloja.

Kun seurue vähän sen jälkeen käveli Viale dei Colli'a pitkin, sen
tuoksuavien pensaitten, vakavien sypressien ja kukkivien
kastanjoitten ja akasiain keskellä, missä satakielet lauloivat
viidakoissa, Valkosien, kuunvalaisemien huvilain ympärillä, ja jossa
tulikärpäset kimaltelivat kuin kipunat, silloin oli kevät kaikkialla,
kevään elämänhalu ja kevään surumielinen tunnelma, ei paljon
sanoja, mutta paljon ajatuksia ja tunteita — eikä kukaan ajatellut
pilkallista ajatusta viinuriraukasta, josta oli tullut taiteilija yhdeksi
minuutiksi, vaikka konservatooriossa oli väitetty, että hän oli aivan
mahdoton.

Mutta se seurasta, joka oli filosoofi, hän puhui vihdoin ja sanoi,


että tämä Otello on tulemaisillaan rikkaaksi mieheksi — hän oli
haudannut unelman, joka tosin alusta aikain oli ollut lapsellinen ja
mahdoton, hän oli verhonnut sen Firenzen valkeaan käärinliinaan,
ulkona katukäytävällä — ja kuta useampi hauta meillä on, joiden
luona voimme toisinaan viipyä, sitä vilkkaimpia olemme — se oli nyt
hänen filosofiaansa.

Seuraavana aamuna olivat Skandinavialaiset rautatieasemalla ja


koristivat kukilla nuoren norjattaren, niin että hän koreudessaan oli
todellisen Prima veran kaltainen. Otellokin saapui, tuoden yhden
ainoan, suuren, vaalean ruusun, samallaisen, kuin se, jonka hän
edellisenä päivänä oli pistänyt serviettiin.

Niin matkusti Prima vera pohjoista kohti, peitettynä Firenzen


kukilla hän nyökkäsi iloisesti päällään, niin kauan kuin häntä voi
nähdä.

Mutta siellä on yhä vieläkin romantillisuutta ilmassa, tuossa


pienessä osteriassa Piazza del Duomon läheisyydessä…

Girolamo.
1.

Keskiajan suuri mahtava Ferrara oli koristettu juhlaa varten.


Ylhäisiä vieraita oli saapunut ja otettiin loistavasti vastaan. Kadut
olivat kaunistetut matoilla ja kukilla ja kirjavia verhoja ja lippuja riippui
ulos ikkunoista. Komea juhlakulkue kulki eteenpäin, kansan osittain
riemuitessa, osittain katsellessa, sitä halukkain, kateellisin katsein.
Kullalla kirjaillut vaatteet ja aatelisten ja hovin loistavat puvut,
muodostivat hengellisen säädyn pukujen yhteydessä väririkkaan
virran, jonka vyöryävissä laineissa aseet kimaltelivat aurinkoa vasten
ja joiden joukosta sieltä täältä pisti esiin papillinen päähine ja joissa
muhkea kunniakatos huojui kuin olisivat virran aallot kuljettaneet sitä
eteenpäin.

Ferrara oli koristettu juhlaa varten. Siellä oli riemua, melua ja


laulua, missä juhlasaatto kulki eteenpäin. Mutta kun tuo loistava
kulkue kulki ohi Niccolon mahtavan talon, seisoi sen ikkunassa
nuorukainen, ja katseli alas koreasti puetuista ihmisistä
muodostettua, eteenpäin kulkevaa virtaa ja tunsi siellä joukossa
vanhempansakin. Syviin ajatuksiin vaipuneena hän siinä seisoi,
katsellen kulkuetta säihkyvin silmin ja yhteenpuristetuin huulin. Pian
katoaa se — ajatteli hän — neliskulmaiseen torneillakoristettuun
linnaan, siellä hajautuisivat nämä ruhtinaat, korkeat herrat ja naiset
suuriin saleihin, missä pöydät seisoivat katettuina kallisarvoisilla
itämaalaisilla porsliineilla, venetsialaisilla laseilla, harvinaisilla
ruokalajeilla ja Italian parhailla viineillä. Siellä nautittaisiin mitä
parasta maa voi tarjota, siellä tyhjennettäisiin kultaisia pikaria ja
oppineet ja runoilijat puhuvat sievisteleviä, kauniita sanoja, siellä
ovat aatelismiehet toinen toistaan kohteliaampia mitä ihanimmille
naisille sill'aikaa kun paksun lattian alle kiinnikahlehditut vangit
nääntyvät janosta, kärsivät nälkää ja riutuvat taudissa ja
saastutetussa ilmassa.

Liikkumattomana ja näihin ajatuksiin vaipuneena, seurasi


Girolamo, seisoissaan ikkunassaan, katseellaan näitä ruhtinaita,
joiden rikkaus oli koottu rosvoamisilla ja ryöstöillä, näitä ruhtinaita,
jotka hyörivät ja pyörivät ainoastaan elääkseen hekumassa ja näitä
naisia, joiden katseet polttivat kuin tulensäteet ja näitä hengellisiä,
joiden elämällä ja opilla usein ei ollut mitään tekemistä toistensa
kanssa.

Seuraavassa hetkessä vavahti hän ja tuskan ilme levisi hänen


kasvoilleen. Hänkin oli siellä, tyttönen, suloisin kaikista, hän, joka oli
hänen mielestään puhtain ja korkein kaikista maallisista olennoista,
joka oli hänestä kuin ilmestys toisesta maailmasta, kun hän tapasi
käydä hänen vanhempainsa talossa ja lauloi luutun säestyksellä
äidille. Hänkin tulisi olemaan siellä ylhäällä, linnan saleissa, jossa
tämän maailman lahjoja tuodaan esiin, jossa ihmiset, unohtaen
jumalankuvan itsessään, antautuvat juhlan nautintoihin, hekumaan ja
turhuuteen, upottaen kaikki vakavat ajatukset huumaavaan viiniin.

Vielä kauan sen jälkeen, kun kulkue oli kadonnut kadun


käänteeseen ja melu lakannut, viipyi Girolamo ikkunassaan, kunnes
hän lähti pieneen, puutarhan puoleiseen huoneesensa. Hänen
mielensä kuohui, hän tahtoi etsiä lohdutusta suruunsa, mutta
Thomas Aquina ei tänään voinut lohduttaa kaihoavaa, eikä
raamattukaan. Silloin otti hän alas kitaran ja soitteli sydämensä
tunnelmaa, soitti Jumalan vihaa ja rangaistusta, kunnes innostus
punasi hänen kalpeat kasvonsa ja suonet paisuivat ohimoilla.
Heittäen soittokoneen luotaan, tarttui hän kynään ja kirjoitti.
"Minä näen koko maailman nurin syöstynä ja toivottomuuteen
vajonneena. Hyve, kunnia ja hyvät tavat ja valkeuden sana poljetaan
jalkoihin, mutta sitä kunnioitetaan, joka elää rosvoamisella ja ravitsee
itseänsä lähimmäistensä verellä, joka ei kammo ryöstää naisia, joka
himoo yhä enemmän kultaa, joka voittaa petoksen ja viekkauden
kautta, eikä pelkää Herraa Kristusta."

Niin kurjaa oli siis elämä tässä maailmassa, jossa kuitenkin on niin
paljon kaunista. Taivashan hymyili kirkkaana ja sinisenä tuolla
ylhäällä, meri loisti ihmeellisillä väreillä, aurinko kultasi seudun,
paistoi vainion vihreyteen, ruusut tuoksuivat pitkin puutarhan
käytäviä. Mutta kurjaa oli elämä, joka esiintyi kaikessa tässä
komeudessa, ylpeys ja petollisuus oli vallannut ihmisten sydämmet.
Ja hän, joka oli Saronin liljan ja Damaskon ruusun kaltainen, siellä,
missä hän tavallisesti istuu puutarhan suihkulähteen luona, hänkin
oli yhtynyt tähän, hänet oli saatu vedetyksi tähän elämään, elämään,
jossa ei huolittu huomispäivästä eikä sen koston hedelmistä. Hän,
joka oli kasvanut Danten ja kukkien kaupungissa, hän, jonka perhe
oli sortunut Mediciläisten juonien uhriksi ja karkoitettu
kotikaupungistaan, hän otti osaa näihin turhuuden ja nautinnonhimon
vallattomuuksiin? Hänetkin oli houkuteltu viekkaudella ja
petollisuudella, hänen kuuluisan nimensä tulisi loistaa siellä muiden
muassa — nimen Strozzi.

"Oi Jumalani", rukoili Girolamo, langeten polvilleen, "Jumalani ole


valkeuteni minun teilläni, anna minulle voimaa taistella tätä
maailmaa vastaan, vahvista minua, ettei perkele hyökkää hartioilleni,
johdata nuorta henkeäni, että voisin olla hyödyksi jollekin,
omaisilleni, sille, josta pidän enemmän kuin muista, että voisin antaa
hänelle oikean käsityksen kieltäymyksen hyveestä, sinun
tutkimattomuudestasi, sinun anteeksiantavasta ja armollisesta
rakkaudestasi, kuule sydämellinen rukoukseni, Jumala ja Isä, amen!"

2.

Ikkunastaan näki Girolamo naapuritalon puutarhan käytävineen ja


istutuksineen, joita varjoisat kupukäytävät ympäröivät. Valkea
pitsihuntu riippuen yli tumman tukan ja valuen säkenöiville silmille,
käveli aatelisneiti kupukäytävien varjossa. Kirjailtu puku, jota hän
käytti suuressa juhlakulkueessa ja juhlassa, oli riisuttu ja hoikkaa
vartaloa verhosi yksinkertainen, punainen puku, joka loisti joka kerta,
kun aurinko sattui sen poimuihin. Siten käveli hän hitaasti, mutta
kuitenkin joustavin askelin edes takaisin, kunnes hän astui ulos
varjosta, ja istui marmorilavitsalle suihkulähteen luona, jonka
ympärillä ruusupensaat seisoivat lemuavassa kukoistuksessaan,
kimaltelevilla kastepisaroilla sirotettuna. Girolamolle näytti yhtäkkiä
avautuvan uusi maailma. Hänet valtasi kokonaan edessään oleva
näky, hän oli haaveillut ja aavistanut ja elänyt epämääräisen onnen
tunnelmassa. Mutta nyt oli selvyyden valo langennut hänen
ylitsensä, nyt tunsi ja tiesi hän, että tämän maailman elämässäkin,
kuinka kurjalta se toisinaan näyttikin, voi olla todellista ja, syvää
riemua, joka on nautitsemisen arvoista ja koko hänen sielunsa
muuttui Saronin valkoisen liljan ja Damaskon punaisen ruusun
ylistyslauluksi. Veri nousi hänen poskiinsa, silmänsä säkenöivät ja
hän tarttui soittimeensa. Seuraavassa hetkessä laski hän sen taas
syrjään, hänen hetkensä oli tullut, Jumala oli hänen kanssaan, se oli
hänen tahtonsa, että niin tulisi tapahtua Hänen kunniakseen.
Hetkisen kuluttua astui Girolamo puutarhaan, meni nopein askelin
suihkulähteen luo ja tervehti neitsyttä. Hänen äänensä, joka muuten
oli niin kova ja karkea, oli nyt saanut pehmeän soinnun ja sanat, joita
hänen tavallisesti oli vaikea löytää, seurasivat nyt helposti toistaan.
Hän puhui synnistä, kuolemasta ja kurjuudesta, mutta kuinka
ihanaksi ja pyhäksi elämä voi tulla, jota eletään Jumalassa, kuinka
voidaan pelastua sen synnistä ja petoksesta lemmekkäässä
yhdyselämässä, joka on suunnattu korkeinta päämäärää kohti, joka
viittaa etäällä voiton ijankaikkisella kruunulla.

Ihana neito, jonka posket olivat punastuneet, nousi ylös ja katsoi


Girolamoon. Hänen kauniit kasvonsa olivat jäykistyneet ja katse oli
suuttunut. Ylpein sanoin antoi hän Girolamon ymmärtää, ettei hän
aikonut viettää elämäänsä miettimällä ihmisten kurjuutta ja tutkimalla
Thomas Aquinan oppia. Ei, hän oli nuori, hän oli ihminen, jolla oli
toiset tavat, hän rakasti rattoisia juhlia, runoilijan puheita, laulua ja
torvien soittoa, hän tahtoi pitää loistavapukuisia palvelijoita ja
hovipoikia… "Ei, Girolamo, te ette ymmärrä minun sydämeni
hurmaavaa halua elää loistavasti vertaisten! joukossa — ja sitten
tulee teidän muistaa kuka te olette, ja että minä olen Strozzi!"

Pää pystyssä meni hän pois kupukäytävään, jossa hänen


punainen pukunsa katosi patsaiden taakse, Girolamon seisoessa
jälellä, pidellen kiinni marmorisen vesialtaan laidasta kädellään, jolle
vesi roiskui viilein pisaroin.

Kun Girolamo käsitti, mitä oli tapahtunut, tunsi hän itsensä


masentuneeksi. Hetkessä oli kaikki rauennut, minkä hän
mielikuvituksessaan oli rakentanut, tulevaisuuden ja onnen sijaan oli
avautunut kuilu, johon hän neuvottomana tuijotti. Kuinka oli tämä
mahdollista, oliko siis kaikki tässä maailmassa petosta ja prameilua,
eikö ole ainoatakaan lumivalkeaa liljaa, jonka tuoksussa ei olisi
myrkkyä, eikö ruusua ilman pistävää okaa? Mikä solvaus häntä
kohtaan, Jumalaa kohtaan! Kuinka kaikki tämä voi olla mahdollista!
Hänen isoisänsä oli tosin hovin kuuluisa lääkäri, ja hänen isänsä
tunnettu oppinut, mutta itse oli hän alhaissäätyinen Strozzin suvun
jälkeläisen rinnalla. Niin oli neidon ajatukset vääristetty, ettei ihmiset
ole toinen toistensa vertaisia. Hänen rinnassaan raivosi myrsky, ei
sitä kohtaan, jota hän oli rakastanut ja jota hän vieläkin rakasti,
huolimatta siitä häpeästä, jota hän oli saanut kärsiä, mutta maailman
pintapuolisuutta ja hulluutta vastaan, joka oli saastuttanut sen, jonka
hän oli luullut parhaimmaksi ja puhtaimmaksi, maailman komeutta ja
huvituksia vastaan, jotka eivät ole muuta, kuin tomua ja tuhkaa.
Maahan tahtoo hän lyödä kaikki nuo ruhtinaat ja aatelismiehet,
maahan tahtoo hän jaottaa kaikki heidän palatsinsa, heidän
aarreaittansa tahtoo hän aukaista ja heittää kullat ja hopeat mereen.
Hänen silmänsä säihkyivät tulisesti vihasta kävellessään nopein
askelin katuja pitkin ja ulos kaupungin portista, sekä tasangon yli,
pois, hän ei tiennyt itsekään mihin, mutta hän ei tahtonut enää nähdä
tätä kaupunkia, joka oli Sodoman ja Gomorran kaltainen ja kernaasti
sai hukkua tuleen ja tulikiveen.

Girolamo kulki ja kulki. Myrsky hänen rinnassaan ei asettunut. Tie


kulki läpi lakeuden, jossa kyhmyiset piilipuut reunustivat virtoja ja
kanavia. Etäällä näki hän metsän, kukkuloita ja vuoria. Sinne tahtoi
hän kulkea, nousta ylös paljon korkeammalle tätä häpeällisyyttä,
halpamaisuutta ja sielunalhaisuutta, ylös vuoristoon ja koota sen
voimakkaan kansan ja kukistaa sen avulla nämä ylpeyden orjat ja
vapauttaa kotiseutunsa tästä himojen hirmuvallasta. Niinkuin Moses
astui alas Siinailta käskyntaulut kädessään, samoin kirjoittaisi hänkin
lain näille kullan orjille, pakoiltaisi ne tulella ja miekalla, kiduttaisi,
kuten he ovat kiduttaneet vankiaan, peljättäisi heitä verellä, kunnes
he pyytäisivät armoa ja laupeutta.

Hänen näin käydessään tuli ilta ja kukkulain lomissa alkoi


hämärtää. Raskaita pilviä nousi vuorentyppyräin takaa ja kuten
Herran vastauksena Girolamon ajatuksiin leimahteli salamia etäällä
ja ukkonen jyrisi uhkaavasti. Niin, hänellä oli Herra puolellaan, hän
oli suuren kostajan välikappale. Ferrara, Ferrara, Italia, Italia, sinun
aikasi on tuleva, ennenkuin tuuletkaan!

Girolamo ei tietänyt oliko tie loppunut tai oliko hän poikennut siltä
syrjään, mutta hän kompastui kiviin ja turpeisiin ja luonto raivosi
kauheana hänen ympärillään. Hän huomasi sen yhtäkkiä ja ajatus
palasi takasin kotia kohti, jossa isä ja äiti kenties olivat levottomia.
Pilvet peittivät taivaan, salamat leimuivat, niin että hän näki vesien
kimaltelevan kaukana lakeudella ja ukkonen jyrisi. Girolamo tunsi,
kuinka hän lyyhistyi kokoon. Jännitys, joka niin kauan oli ylläpitänyt
hänen voimiaan herposi. Rajuilman raivon huumaamana, märkänä ja
voimattomana, tahtoi hän etsiä suojaa. Hän ei tietänyt, mihin hänen
tulisi kääntyä, tässä tuntemattomassa erämaassa, ei mitään polkua
näkynyt, eikä ihmisasuntoa ja väsyneenä ja voimattomana horjui hän
eteenpäin puiden alla. Silloin vilahti äkkiä salaman valossa puiden
lomasta rakennus. Tultuaan lähemmäksi, löysi hän luostarin ja
luostarin kirkosta loisti valo. Vaivoin löysi hän oven, aukasi sen ja
astui sisään.

Hän oli toisessa maailmassa. Täällä ei enää raivonnut myrsky,


täällä paloivat vahakynttilät kuorissa ja veljet lukivat messuja ja
rukoilivat. Täällä vallitsi hiljainen ja syvä rauha, nöyryys ja
alttiiksiantavaisuus ja tämä uusi tunnelma tunkeutui
vastustamattomasti väsyneen nuorukaisen sydämeen. Hän huomasi,
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.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookfinal.com

You might also like