1. Aurelia In Action 1 Converted Sean Hunter
download
https://ebookbell.com/product/aurelia-in-action-1-converted-sean-
hunter-46158502
Explore and download more ebooks at ebookbell.com
2. Here are some recommended products that we believe you will be
interested in. You can click the link to download.
Jquery In Action Third Edition 3rd Edition Bear Bibeault Yehuda Katz
https://ebookbell.com/product/jquery-in-action-third-edition-3rd-
edition-bear-bibeault-yehuda-katz-5217606
Jquery In Action 3rd Edition 3rd Edition Bear Bibeault Yehuda Katz
https://ebookbell.com/product/jquery-in-action-3rd-edition-3rd-
edition-bear-bibeault-yehuda-katz-55870124
Statues In Context Aurlia Massonberghoff
https://ebookbell.com/product/statues-in-context-aurlia-
massonberghoff-50729660
Moon Living Abroad In France Aurelia Dandrea
https://ebookbell.com/product/moon-living-abroad-in-france-aurelia-
dandrea-49002930
3. Messages For The Enlightenment Of A Humanity In Transformation Aurelia
Louise Jones
https://ebookbell.com/product/messages-for-the-enlightenment-of-a-
humanity-in-transformation-aurelia-louise-jones-5063492
Vegetarian Paris The Complete Insiders Guide To Th Best Veggie Food In
Paris Aurelia Dandrea
https://ebookbell.com/product/vegetarian-paris-the-complete-insiders-
guide-to-th-best-veggie-food-in-paris-aurelia-dandrea-48902282
Immersive Technology In Smart Cities Augmented And Virtual Reality In
Iot 1st Ed 2022 Sagaya Aurelia Editor
https://ebookbell.com/product/immersive-technology-in-smart-cities-
augmented-and-virtual-reality-in-iot-1st-ed-2022-sagaya-aurelia-
editor-33362774
What The Emperor Built Architecture And Empire In The Early Ming
Aurelia Campbell
https://ebookbell.com/product/what-the-emperor-built-architecture-and-
empire-in-the-early-ming-aurelia-campbell-23849686
Security Agents Alien Bartender Olympus Station 3 In The Stars Romance
Aurelia Skye Kit Tunstall
https://ebookbell.com/product/security-agents-alien-bartender-olympus-
station-3-in-the-stars-romance-aurelia-skye-kit-tunstall-51165272
10. book, and Manning Publications was aware of a trademark claim, the
designations have been printed in initial caps or all caps.
Recognizing the importance of preserving what has been written, it is Manning’s
policy to have the books we publish printed on acid-free paper, and we exert our
best efforts to that end. Recognizing also our responsibility to conserve the
resources of our planet, Manning books are printed on paper that is at least 15
percent recycled and processed without the use of elemental chlorine.
Manning Publications Co. 20 Baldwin Road PO Box 761 Shelter Island, NY 11964
11. Development editor: Toni Arritola
Technical development editor: Andrew Siemer
Review editor: Ivan Martinović
Project manager: Tiffany Taylor
Copy editor: Safis Editing
Proofreader: Katie Tennant
Technical proofreader: Troi Eisler
Typesetter: Dennis Dalinnik
Cover designer: Marija Tudor
ISBN: 9781617294785
Printed in the United States of America
1 2 3 4 5 6 7 8 9 10 – DP – 23 22 21 20 19 18
13. Brief Table of Contents
Copyright
Brief Table of Contents
Table of Contents
Preface
Acknowledgments
About this book
About the author
About the cover illustration
1. Introduction to Aurelia
14. Chapter 1. Introducing Aurelia
Chapter 2. Building your first Aurelia application
2. Exploring Aurelia
Chapter 3. View resources, custom elements, and custom attributes
Chapter 4. Aurelia templating and data binding
Chapter 5. Value converters and binding behaviors
Chapter 6. Intercomponent communication
Chapter 7. Working with forms
Chapter 8. Working with HTTP
Chapter 9. Routing
15. Chapter 10. Authentication
Chapter 11. Dynamic composition
Chapter 12. Web Components and Aurelia
Chapter 13. Extending Aurelia
Chapter 14. Animation
3. Aurelia in the real world
Chapter 15. Testing
Chapter 16. Deploying Aurelia applications
Appendix. Installation and setup
Aurelia glossary
Aurelia CLI cheat sheet
17. Table of Contents
Copyright
Brief Table of Contents
Table of Contents
Preface
Acknowledgments
About this book
About the author
About the cover illustration
1. Introduction to Aurelia
18. Chapter 1. Introducing Aurelia
1.1. Why should you care?
1.1.1. How complicated are the applications you’re building?
1.1.2. How important is web-standards compliance to the team?
1.1.3. What past development experience does the team have?
1.1.4. How is the team organized?
1.1.5. What kind of commercial and community support do you need?
1.2. What kind of projects make Aurelia shine?
1.2.1. Server-side application with a sprinkling of JavaScript
1.2.2. SPA rendered on the client side
19. 1.2.3. The hybrid approach: server side with SPA islands
1.2.4. Server-side-rendered SPA
1.2.5. Where does Aurelia sit?
1.2.6. What makes Aurelia different?
1.3. A tour of Aurelia
1.3.1. Binding
1.3.2. Handling DOM events
1.3.3. Routing
1.3.4. Inside the view-model, and what’s this about components?
1.3.5. The Aurelia component lifecycle
1.3.6. Loading data from an API
20. 1.3.7. Dependency injection with Aurelia
1.3.8. Rendering the view
Summary
Chapter 2. Building your first Aurelia application
2.1. Introducing my-books
2.2. Building with Aurelia
2.2.1. Option 1: Download the quick start
2.2.2. Option 2: Skeleton application
2.2.3. Option 3: Aurelia CLI
2.2.4. Creating the my-books project
21. 2.3. One-way and two-way data binding and event delegation
2.3.1. Adding the functionality inline
2.4. Creating components using Aurelia custom elements
2.5. Building services and retrieving data from a REST API
Troubleshooting steps
2.6. Maintaining page state with the Aurelia router
2.6.1. Configuring the router
2.7. Moving forward
2.8. my-books project status
Summary
2. Exploring Aurelia
22. Chapter 3. View resources, custom elements, and custom attributes
3.1. Understanding Aurelia’s templating primitives
3.1.1. Aurelia’s templating primitives
3.2. CSS resources
3.2.1. Setting up the project dependencies
3.2.2. Adding the CSS resources
3.2.3. Styling the my-books views
3.3. Custom elements
3.3.1. Custom elements
3.3.2. my-books custom elements
23. 3.3.3. HTML-only custom elements
3.4. Custom attributes
3.4.1. Creating a tooltip custom attribute
3.4.2. Single-value binding
3.4.3. Options binding
3.5. my-books project status
Summary
Chapter 4. Aurelia templating and data binding
4.1. Template conditionals
4.2. Repeaters
4.2.1. Aurelia repeater contextual properties
24. 4.3. Data binding with Aurelia
4.3.1. The three key ingredients of Aurelia’s binding expressions
4.4. Binding commands
4.4.1. One-way bindings
4.4.2. String-interpolation binding
4.4.3. Two-way bindings
4.4.4. One-time binding command
4.5. Handling DOM events
4.5.1. Trigger
4.5.2. Delegate
25. 4.6. my-books project status
Summary
Chapter 5. Value converters and binding behaviors
5.1. Creating a value converter
5.2. Applying value converters to lists
5.2.1. Value-converter composition
5.3. Binding behaviors
5.3.1. Throttle and debounce binding behaviors
5.3.2. updateTrigger binding behavior
5.3.3. signal binding behavior
5.4. my-books project status
26. Summary
Chapter 6. Intercomponent communication
6.1. Aurelia components
6.1.1. The component lifecycle
6.2. Enhancing my-books
6.2.1. Aurelia’s three core intercomponent-communication techniques
6.3. Passing data to child components with data binding
6.4. Event Aggregator to the rescue
6.4.1. The Event Aggregator pattern
6.4.2. The Aurelia Event Aggregator
27. 6.4.3. Fixing book removal with the Event Aggregator
6.5. Extending my-books
6.5.1. Step 1: Installing the required modules
6.5.2. Step 2: Adding the date-format value converter
6.5.3. Step 3: Enhancing the book API
6.5.4. Step 4: Creating the book component
6.5.5. Step 5: Creating the edit-book component
6.5.6. Step 6: Modifying the book-list component
6.5.7. Step 7: Modifying the books component
6.6. Custom events
6.6.1. Browser support for custom events
28. 6.6.2. Using custom events
6.6.3. Implementing the star-rating component
Summary
Chapter 7. Working with forms
7.1. Working with forms in my-books
7.2. Check boxes
7.3. Radio elements
7.3.1. Step 1: Modifying the book API
7.3.2. Step 2: Modifying the Books view-model
7.3.3. Step 3: Passing the genres and shelf arrays down the component hierarchy
29. 7.3.4. Step 4: Modifying the EditBooks view-model
7.3.5. Step 5: Modifying the edit-book view
7.4. Select controls
7.4.1. Single-value select binding
7.4.2. Multiple-value select binding
7.5. Validation
7.5.1. The Aurelia validation plugin
7.5.2. Aurelia validation overview
7.5.3. Adding validation to the edit-books form
Summary
Chapter 8. Working with HTTP
30. 8.1. Overview of the Aurelia HTTP toolkit
8.2. Using aurelia-fetch-client
8.2.1. Adding fetch to my-books
8.2.2. Intercepting and manipulating requests
8.3. Working with aurelia-http-client
Summary
Chapter 9. Routing
9.1. Understanding client-side routing
9.2. Introducing the Aurelia router
9.2.1. Basic configuration
31. 9.2.2. Routing metadata
9.3. Passing route data to components
9.3.1. Route option types
9.3.2. Adding the user-management pages
9.4. Specifying route modules dynamically
9.5. The screen-activation lifecycle and the route pipeline
9.5.1. The screen-activation lifecycle
9.5.2. Pipeline steps
9.6. Aurelia’s 404
9.6.1. Handling an unknown route: option 1, moduleId
9.6.2. Handling unknown routes: option 2, a function
32. 9.7. Redirecting routes
9.8. View ports
9.9. Extending my-books with layouts
9.9.1. Creating the layouts
9.9.2. Adding the login view
9.9.3. Modifying the routing configuration
9.10. my-books project status
Summary
Chapter 10. Authentication
10.1. Client-side authentication
33. 10.1.1. Token-based authentication
10.1.2. Comparing cookie- and token-based authentication approaches
10.1.3. JWT format
10.2. Securing my-books
10.2.1. Authentication architecture
10.2.2. Creating the authentication service
10.2.3. Implementing login
10.2.4. Intercepting HTTP requests
10.2.5. Routing redirection
10.2.6. Filtering the navigation bar
10.3. my-books project status
34. Summary
Chapter 11. Dynamic composition
11.1. Static vs. dynamic composition
11.2. The <compose> custom element
11.3. Dynamically composed views
11.3.1. Creating partial views
11.3.2. Creating a configurable form with dynamic composition
Summary
Chapter 12. Web Components and Aurelia
12.1. Introducing Web Components
35. 12.2. HTML Imports
12.3. HTML Templates
12.3.1. Using HTML Templates in Aurelia
12.4. Custom elements
12.5. The Shadow DOM
12.5.1. Using the Shadow DOM with Aurelia
12.6. Creating the my-books share-book component
12.6.1. Adding the Share button
12.6.2. Creating the ux-card component
12.6.3. Creating the subcomponents
12.6.4. Creating the share-book-card component
36. 12.6.5. Tying it all together
12.7. my-books project status
Summary
Chapter 13. Extending Aurelia
13.1. Overriding Aurelia’s default conventions
13.1.1. Specifying a view template relative path with @useView
13.1.2. Handling custom-element views manually with @noView
13.1.3. Specifying views as template strings with @inlineView
13.1.4. Explicitly naming custom elements with @customElement
13.1.5. Explicitly naming custom attributes with @customAttribute
37. 13.2. Creating an inspect custom binding behavior
13.3. Creating a Selectize.js custom attribute
13.4. my-books project status
Summary
Chapter 14. Animation
14.1. Getting started with SPA animations
14.1.1. When and what should you animate?
14.1.2. CSS animations
14.1.3. JavaScript animations
14.2. Aurelia’s animation framework
14.2.1. The animation API
38. 14.3. CSS animations with Aurelia
14.3.1. Adding transitions on au-enter
14.3.2. Adding transitions when classes are added or removed
Summary
3. Aurelia in the real world
Chapter 15. Testing
15.1. Testing SPAs
15.2. Get started testing with the Aurelia CLI
15.2.1. Creating a Hello World test
15.3. Testing value converters
39. 15.4. Testing services
15.5. Testing custom elements
15.6. Testing custom attributes
15.7. End-to-end testing
15.7.1. Testing the login user stories
15.7.2. Running the tests
Summary
Chapter 16. Deploying Aurelia applications
16.1. SPA bundling
16.1.1. What about HTTP/2?
16.2. Bundling and the Aurelia CLI
41. Installing Bootstrap 4
A.5. Adding Font Awesome
A.6. Installing the Aurelia validation plugin
A.7. Setting up my-books-server
Installing MongoDB on macOS
Installing MongoDB on Linux
Installing MongoDB on Windows
Cloning the my-books-server repository
Starting MongoDB server
Starting the MongoDB server
Installing the aurelia-http-client package
42. Enabling my-books-server JWT authentication
My-books-server: user credentials
A.8. My-books book-sharing-component prerequisites
Installing aurelia-dialog
Updating the my-books stylesheet
A.9. Installing selectize.js
A.10. Installing aurelia-animator-css
Installing the npm package using the Aurelia CLI
Adding the plugin to the main module
A.11. Installing Aurelia testing dependencies
44. Preface
I first came across Aurelia in a .NET Rocks! podcast interview with the
framework’s creator, Rob Eisenberg. I particularly remember that evening
because I had more than my usual podcast-listening time commuting from work,
due to a flat tire (the third that month—but that’s a different story). At this stage,
Rob had just started working on a new single-page application (SPA) framework,
which differentiated itself from most other popular frameworks by its focus on
clean code and use of convention over configuration to eliminate boilerplate
code. Having used other frameworks like Caliburn Micro—which Rob had
created for the WPF/Silverlight space for desktop applications—the idea of a
framework that followed a similar approach in the world of JavaScript
immediately struck a chord with me. As is often the case with information
gleaned from podcasts during a daily commute, I stashed away the knowledge
and didn’t think about it for some time.
Later that year, we were starting a new frontend project and had to choose an
SPA framework. With the plethora of options available, the process was
daunting. After trawling the web for information that would allow us to make the
best decision for the team moving forward, I realized that all the available
options provided the same benefits, and much of the choice came down to how
much the team would enjoy working with the framework, how quickly we could
get something up and running, and how easy it would be to maintain the project
going forward. The nugget of information gleaned from the podcast earlier that
year came back to me, and I started comparing code samples from Aurelia to
other frameworks. The beauty and simplicity of the Aurelia MV* model for
building SPAs by using components contrasted starkly with the other approaches
I came across. This was enough for us to give Aurelia a shot.
Throughout the course of the next year, we built three projects with Aurelia, the
first of which went from proof of concept to functioning production application
45. in only a few weeks. This led to an unofficial tour of UK Aurelia user groups,
where I had the privilege of meeting some super-smart people working in the
.NET and web-development space. At this stage, Aurelia was still in alpha and
early beta, and many people hadn’t come across it yet. Although initially
sceptical of yet another SPA framework, many developers (particularly in the
.NET space) were impressed by Aurelia’s intuitive, component-based
development style.
The content of these talks (getting started with Aurelia, and component-based
development with Aurelia) turned out to be the seeds that grew into this book.
Because I (and most other developers I come across) tend to learn far better by
example than by theory alone, I’ve built the content around a fictional virtual-
bookshelf application (like Goodreads.com) called my-books. You’ll start by
creating a bare-bones application via the Aurelia CLI and then progressively
layer on various features that users would want in a virtual bookshelf.
Fortunately, you can fit more into a book than you can a one-hour talk. In this
book, I aim to teach you everything you need to know to build compelling, real-
world applications in Aurelia from the ground up.
46. Acknowledgments
Some people would say I’m crazy to even thinking about attempting to write a
book while at the same time welcoming a newborn into my family earlier this
year, and they’d be right! Writing a book was, to put it mildly, more work than
expected. I’d like to thank my wife Matilda for supporting me throughout the
process and taking on more than her fair share of our family responsibilities. I
couldn’t have gotten through it without her.
Next, I thank my editor at Manning, Toni Arritola. As I’m writing this, I’m
remembering back to when I received my first round of feedback for chapter 1.
There was more red than white on the page after all the review comments! I’ve
learned a great deal from working with Toni over the past year. This book and
my writing technique have benefited beyond measure from her involvement. I’d
also like to thank my Manning technical development editor, Nick Watts, and
tech proofer Troi Eisler. Their input made an enormous difference in the quality
and clarity of my technical explanations and code samples.
Next, I thank everyone who submitted feedback on the Manning forum and the
Aurelia in Action GitHub repository throughout the MEAP process. It’s been a
great motivation to see people reading the chapters and working through them as
they’ve been released. Much of the feedback has been factored into the book
throughout the MEAP. I also thank the book’s technical peer reviewers, led by
Ivan Martinović: Alain Couniot, Alessandro Campeis, Álvaro Falquina, Ashley
Grant, Aurelien Gounot, Binh Vo, Geoff Barto, Jeff Smith, Joseph Tingsanchali,
Luca Campobasso, Matt Harting, Peter Perlepes, Phil Taffet, Philippe Charrière,
and Wayne Mather.
Finally, I thank the Aurelia core team, both for their wonderful contributions to
47. the Aurelia open source community by creating and maintaining the project, and
for their assistance with the book. Special thanks go to Ashley Grant for
reviewing some of the early chapters and providing feedback that I was able to
use throughout the rest of the book, and of course to Rob Eisenberg, who was
fundamental in helping to get the book out to the Aurelia community.
48. About this book
When I first began web development with .NET 2.0 and ASP.NET Web Forms,
there was only one paradigm for web applications: the server-side paradigm.
This pattern involves making a request for the full page content, including
scripts, images, and ads, every time the user performs an action on the page. For
the kinds of web applications we were building when I started, this paradigm
worked for the most part. If users wanted a richer and more interactive
experience, it was typically implemented as a desktop application.
With the introduction of jQuery, we saw the possibility of pushing more of the
logic that was previously done on the server side of our websites to the client
side, communicating back and forth with the server using AJAX. The problem
with this approach was that jQuery doesn’t provide guidance for how to structure
a client-side application, so many projects implemented during this era devolved
into spaghetti code as the size and complexity of the client-side application grew.
Smart developers recognized this problem and took the opportunity to create
frameworks to simplify building rich user interfaces on the client side. Popular
examples include Angular1, Backbone.js, and Knockout.js. With these
frameworks, it became easy to write full applications as SPAs that would
traditionally have been built as desktop apps.
A lot has changed since these frameworks were introduced. Over the past eight
years, we’ve seen an almost exponential improvement in both web browser
platform development and the JavaScript language itself. With these
improvements, opportunity came knocking with a chance to build something
better. Aurelia has answered. It takes full advantage of this new environment,
allowing you to build sophisticated SPAs with less framework-specific code than
was possible in the past.
49. Aurelia in Action was written to give you a kick-start in building SPAs with
Aurelia. To begin, we’ll walk through a mental model that describes how the
framework works and how the main building blocks fit together. From there,
we’ll begin developing the my-books virtual bookshelf sample application. This
application starts as a simple shell, which you’ll enhance as you learn the
various tools and techniques in the Aurelia framework. By the end of the book,
you’ll have built my-books into a full-featured SPA with reusable components,
form validation, routing, HTTP interaction, and more. This approach will get
you up to speed with Aurelia best practices, while at the same time providing a
solid reference project that you can return to for inspiration when building your
own Aurelia applications.
Who should read this book
Aurelia in Action is intended to be read by intermediate developers with at least
a basic level of web-development experience. If you’ve built web applications
with a server-side technology like ASP.NET MVC or Ruby on Rails with a
smattering of jQuery, or have dabbled in the path with another client-side
technology like Backbone.js or Angular, you’ll have all the prerequisite
knowledge you need to grok the concepts and exercises presented here. Like most
web-development technologies today, you can learn most of what you need about
Aurelia by reading the online documentation and blogs. But what I aim to do is
save you time and effort by weaving all the information you need to know about
Aurelia into a consistent narrative that takes you all the way from creating a
basic Hello World application to a fully functional SPA, ready for deployment to
production.
Roadmap
50. The book has 3 parts and 16 chapters. Part 1 introduces Aurelia, covering the
key framework building blocks and giving you a bird’s-eye view of the kinds of
problems Aurelia can help you solve:
Chapter 1 outlines what Aurelia is, what kinds of applications you can build with
it, and why you’d want to do that in the first place.
Chapter 2 introduces the my-books sample application and steps through the
process of creating the first iteration of this application using the Aurelia CLI.
We’ll pause at key points in the process to give you glimpses of key framework
concepts like components, routing, and event handling.
Part 2 explores each of the key tools and techniques available in the Aurelia
framework. These chapters go beyond the basics, covering everything you’ll
need to build real-world applications:
Chapter 3 takes a more in-depth look at two of the major component types you’ll
use in Aurelia: custom elements and attributes. You’ll style the my-books
application, refactor to components, and get your first look at how to integrate
third-party JavaScript dependencies.
Chapter 4 looks at the Aurelia templating system. You’ll learn the ins and outs of
rendering data to an Aurelia view and handling user interaction with DOM
events.
Chapter 5 introduces two of the more advanced component types in your Aurelia
tool belt: value converters and binding behaviors. You’ll use these component
types to create an autocomplete-style filterable table, and optimize some of the
my-books user interactions.
Chapter 6 outlines the Aurelia component lifecycle. You’ll enhance the my-
books application, refactoring to more fine-grained components and wiring them
together using intercomponent communication techniques like the Event
Aggregator and custom events.
51. Chapter 7 is all about forms. You’ll add an edit-book form to my-books, learning
how to use check boxes, radio controls, form validation, and more.
Chapter 8 covers HTTP interaction. You’ll connect your burgeoning SPA to a
Node.js REST API using Aurelia’s HTTP client libraries.
Chapter 9 introduces the concept of SPA routing, why it’s important, and how
you can use Aurelia’s router to add sophisticated URL-based navigation to your
applications.
Chapter 10 covers authentication, answering questions like, “How can I secure
an application without cookies?” You’ll combine techniques from previous
chapters, like value converters, routing, and HTTP interceptors, to secure the
my-books application.
Chapter 11 gets fancy with dynamic component composition. You’ll learn how
to build your views at runtime, adding a new dimension of flexibility to your
applications.
Chapter 12 introduces the web-component standards and shows you how to use
features like the shadow DOM to create templated components.
Chapter 13 goes deep into extending Aurelia, showing you how to override
Aurelia’s default conventions, inspect what the binding system is doing under
the hood, and create custom attributes that can take a dynamic set of options.
Chapter 14 describes the basics of Aurelia’s animation system and framework
hooks, teaching you how to animate components using CSS or JavaScript
animations.
Part 3 covers what you’ll need to know to prepare a production-ready Aurelia
application package:
Chapter 15 shows how you can use a combination of unit testing and end-to-end
testing to iterate quickly on your projects with the confidence that they’re
working as designed.
52. Chapter 16 gives you the tools you’ll need to build a deployment package and
release to production. You’ll package and deploy the my-books application to the
Firebase cloud host.
The first two chapters will help you understand the high-level concepts in the
Aurelia framework, so I recommend reading them first to build a mental model
of how everything fits together. These chapters will also help you set up your
development environment and create the initial version of the my-books project.
Chapters 3–6 also cover key concepts fundamental to the remainder of the book,
so unless you’ve already got a basic knowledge of the Aurelia framework, it
would be a good idea to read these before moving on. Each chapter builds on the
same sample application, so the remainder of the book is designed to be read
sequentially. But if you do want to jump ahead to a specific topic, you can do so
by cloning the project’s GitHub repository and changing your working directory
to the prior chapter. For example, if you wanted to jump to chapter 10, you could
move to the Chapter-9-Complete directory to begin right where chapter 9 left
off.
About the code
This book contains many examples of source code both in numbered listings and
inline with normal text. In both cases, source code is formatted in a fixed-width
font like this to separate it from ordinary text.
In many cases, the original source code has been reformatted; we’ve added line
breaks and reworked indentation to accommodate the available page space in the
book. Additionally, comments in the source code have often been removed from
the listings when the code is described in the text. Code annotations accompany
53. many of the listings, highlighting important concepts.
Source code is provided for chapters 2–16. Code listings are available on the
publisher’s website at www.manning.com/books/aurelia-in-action and on
GitHub at https://github.com/freshcutdevelopment/Aurelia-in-Action. Some of
the code listings and exercises are also provided as gists that can be run
interactively with GistRun: https://gist.run. Such examples are clearly marked.
Because the book follows the iterative development of one sample application,
there’s a folder per chapter in the GitHub repository. They follow the convention
Chapter-[Number]-Complete. If you run into problems with any of the code
samples, you can use the completed versions to cross-reference and troubleshoot
problems with your project, or skip to the completed version. The GitHub
repository is an active, open source project, so any feedback is welcomed in the
form of a GitHub issue or pull request.
Online resources
Need additional help? The Aurelia project website (http://aurelia.io) is the best
place to go to review the online documentation and ask for help. The site
includes a discourse forum (https://discourse.aurelia.io) frequented by many
community members and Aurelia core framework contributors. Asking a
question here will get you the help you need from developers working in the
trenches with Aurelia.
Book forum
54. Purchase of Aurelia in Action includes free access to a private web forum run by
Manning Publications where you can make comments about the book, ask
technical questions, and receive help from the author and from other users. To
access the forum, go to https://forums.manning.com/forums/aurelia-in-action.
You can also learn more about Manning’s forums and the rules of conduct at
https://forums.manning.com/forums/about.
Manning’s commitment to our readers is to provide a venue where a meaningful
dialogue between individual readers and between readers and the author can take
place. It is not a commitment to any specific amount of participation on the part
of the author, whose contribution to the forum remains voluntary (and unpaid).
We suggest you try asking him some challenging questions lest his interest stray!
The forum and the archives of previous discussions will be accessible from the
publisher’s website as long as the book is in print.
56. näiden herramiesten huomiota tai pilannut heidän työnsä rauhallista
näyttämöä. Kohtasitten kristittyjä ja herrasmiehiä, sir."
"Maksoin paikastani kuten muutkin", sanoi Swinney. "Eikö isäni
ostanut osakk—?"
"Hiljaa, sir! Arvoisa isänne kyllä osti tämän yrityksen osakkeita,
jotka tulevat jonakin päivänä tuottamaan hänelle suurenmoisen
voiton. Hän siis todellakin hankki osakkeita, muuten ette olisi
koskaan täällä. Voin tyydytyksellä sanoa, että jokaisella täällä
olevalla nuorella ystävälläni on isä, veli, rakas sukulainen tai ystävä,
jolla on samanlainen suhde yritykseemme; eikä yksikään heistä ole
ilman motivaatiota hankkimaan, hyvää komissiota vastaan, muita
henkilöitä liittymään mainioon yhdistykseemme. Mutta, sir, minä olen
sen johtaja. Näette minun allekirjoittaneen työsopimuksenne; ja
samalla tavoin minä, John Brough, peruutan sen. Menkää pois, sir!
— jättäkää meidät — luopukaa perheestä, joka ei voi enää pitää
teitä rinnoillaan! Herra Swinney, olen itkenyt — olen rukoillut,
ennenkuin tulin tähän johtopäätökseen; olen kuunnellut neuvoja, sir,
ja olen lujasti päättänyt. Lähtekää luotamme!"
"En kuitenkaan ilman kolmen kuukauden palkkaa, herra Brough."
"Se maksetaan isällenne, hyvä herra."
"Vielä mitä! minäpä kerron Teille jotakin, Brough, minä olen
täysikäinen, ja jollette Te maksa minulle palkkaani, niin minä laitan
Teidät arestiin — lempo soi, sen minä teen! Minäpä tyyrään Teidät
tyrmään, taikka ei nimeni ole Bob Swinney!"
"Kirjoittakaa, herra Roundhand, tälle turmeltuneelle nuorelle
miehelle kolmen kuukauden palkan määräys."
57. "Kaksikymmentä yksi puntaa ja viisi, Roundhand, eikä leimasta
mitään", huusi julkea Swinney. — Siinä se on, kuitataan! Ei Teidän
tarvitse osottaa sitä pankkiirilleni. Ja jos joku Teistä, pojat, haluaa
lasillisen punssia tänä iltana kello kahdeksan, niin Bob Swinneyn luo!
Maksusta ei puhetta. Jos herra Brough tahtoisi tehdä minulle sen
kunnian ja lyöttäytyisi joukkoon? Tulkaa pois, elkää huoliko
kieltäytyä!"
Me emme jaksaneet kestää enään tätä häpeämättömyyttä, vaan
purskahdimme nauramaan kuin villityt.
"Ulos huoneesta!" kiljui herra Brough, jonka kasvot olivat menneet
aivan sinisiksi. Ja Bob otti naulakosta vaalean hattunsa ja marssi
matkaansa, "savipönttönsä", kuten hän sitä nimitti, vahvasti
kallellaan. Hänen mentyään herra Brough piti meille toisen luennon,
jonka neuvoja me kaikki päätimme käyttää hyväksemme, ja astuen
Roundhandin pöydän ääreen, asetti kätensä kassanhoitajan olalle ja
katsoi pääkirjaan.
"Paljonko rahaa on tänään tullut, Roundhand?" sanoi hän hyvin
ystävällisesti.
"Se leskihän se toi rahansa: yhdeksänsataa ja neljä puntaa
kymmenen shillinkiä ja kuusi pennyä. Kapteeni Sparr on maksanut
osakkeensa täyteen, mutta hän nurisee ja sanoo, ettei hänellä ole
enään mitään; viisikymmentä osaketta, kaksi maksuerää, tekee
kolme viideskymmenesosaa, herra johtaja."
"Hän nurisee aina!"
"Hän sanoo, ettei hänellä ole penniäkään, millä ravita
ruumisraukkaansa osingon jakopäivään asti."
58. "Entä mitä muuta?"
Herra Roundhand selaili kirjan läpi ja sai kokoon kaikkiaan
yhdeksäntoista sataa puntaa. Meidän liikkeemme luisti erinomaisesti
nykyisin. Vaan siihen aikaan kun minä tulin konttoriin, meidän oli
tapana istuskella ja naureskella, laskea leikkiä ja lukea lehtiä päivät
päästään, ja hirveällä hopulla laittautua paikoillemme, kun joku
sattumoisin asioissaan astui sisään. Silloin ei Brough koskaan
välittänyt naurustamme tai laulustamme ja oli mitä parhaissa
väleissä Bob Swinneyn kanssa. Mutta se oli entisiin aikoihin, ennen
kun me olimme päässeet oikein varuksiimme.
"Yhdeksäntoista sataa puntaa, ja tuhat puntaa osakkeita!
Oivallista, Roundhand — oivallista, hyvät herrat! Muistakaa, että
jokainen osake, minkä Te tuotte lisää, tuottaa Teille viisi prosenttia
käteistä! Pitäkää mielessä ystävänne — pysykää uskollisesti
paikallanne — eläkää säännöllisesti — toivon, ettei Teistä kukaan
unohda käydä kirkossa. Kuka astuu herra Swinneyn paikalle?"
"Herra Samuel Titmarsh."
"Herra Titmarsh, minä onnittelen Teitä. Antakaa minulle kätenne,
hyvä herra. Te olette nyt tämän yhtiön kahdestoista kirjanpitäjä ja
Teidän palkkanne on niinmuodoin kasvanut viisi puntaa vuodessa.
Kuinka jaksaa Teidän arvoisa äitinne, hyvä herra — Teidän kallis ja
erinomainen äiti-rouvanne? Hyvässä voinnissa toivoakseni? Ja minä
palavasti rukoilen, että tämä konttori kauan, kauan saa maksaa
hänelle vuosieläkkeensä! Pankaapa muistiin, että jos hänellä on
enemmän rahoja talletettavana, niin hän nyt saa korkeamman koron
kuin viimeksi, koska hän on vuotta vanhempi, ja viisi prosenttia
Teille, poikaseni! Miksi ette Te yhtä hyvin kuin joku muu? Nuoret
59. miehet ovat aina nuoria miehiä eikä kymmenen punnan paperi ole
haitaksi. Vai miten, herra Abednego?"
"Oh, eihän toki!" vastaa Abednego, kolmas kirjanpitäjä, joka juuri
oli kielinyt Swinneystä, ja hän rupesi nauramaan, kuten me tosiaan
kaikkikin teimme, milloin hyvänsä herra Brough laski jotakin pilan
tapaista, emme siksi että se oli pilapuhetta, vaan meidän oli tapana
nähdä tarkotus hänen kasvojensa ilmeestä.
"Noo, Roundhand", sanoo hän, "sananen Teidän kanssanne muista
asioista. Rouva Brough tahtoo tietää, miksi ihmeessä Te ette koskaan
eksy Fulhamiin."
"Hyvänen aika, se on liika ystävällistä", sanoi Roundhand perin
ihastuneena.
"Mainitkaa joku päivä, ukkoseni. Sanotaan lauantaina, ja ottakaa
yömyssy mukaanne."
"Te olette tosiaan liika ystävällinen. Minä olisin ylenmäärin
ihastunut, mutta —"
"Mutta — ei mitään muttaa, ukkoseni. Kuulkaapas, kun
rahaministeri osottaa minulle sen kunnian, että syö päivällistä
kanssamme, ja minä tahdon, että Te kohtaatte hänet. Sillä asia on
se, että minä olen Hänen Ylhäisyydelleen kehunut Teitä
parhaimmaksi kassanhoitajaksi koko saarivaltakunnassa."
Roundhand ei voinut kieltäytyä seuraamasta tällaista kutsua,
vaikka, kuten hän oli kertonut meille, rouva Roundhand ja hän olivat
aikeissa viettää lauantain ja sunnuntain Putneyssä,[6] ja me, jotka
tiesimme minkälaista mies-polosen elämä oli, olimme varmat siitä,
60. että pääkirjanpitäjä saisi koreat haukkumiset vaimoltaan, kun tämä
kuulisi, mistä oli kysymys. Hän oli näetsen kovasti nyreissään rouva
Broughille, sillä rouva Brough, jolla oli vaunut, väitti, ettei tiennyt,
missä Pentonville[7] sijaitsi, eikä siksi voinut käydä tervehtimässä
rouva Roundhandia. Vaikka olisihan toki luullut hänen ajajansa
löytävän tien.
"Jaha, ja sitten, Roundhand", jatkoi johtajamme, "kirjoittakaa,
tehkää hyvin, seitsemän sadan määräys. Hoo, elkäähän repäiskö
silmiänne, mies, en ole karkuun lähdössä. Kas niin — seitsemän
sataa — ja yhdeksänkymmentä, sanokaamme yksin tein. Meillä on
yhtiökokous lauantaina, mutta elkää olko huolissanne, minä kyllä
teen niistä tilin, ennen kun ajetaan luokseni. Ministerin otamme
vaunuihin Whitehallissa".[8]
Niin sanoen herra Brough käänsi maksuosotuksen kokoon ja hyvin
sydämellisesti puristaen herra Roundhandin kättä, nousi nelivaljakon
vetämiin vaunuihinsa (hän käytti aina neljää hevosta, Cityssäkin,
missä se on niin vaikeata), jotka odottivat häntä konttorin ovella.
Bob Swinneyn oli tapana sanoa, että Brough velkoi yhtiötä
kahdesta hevosesta, mutta ei koskaan ollut uskominen puoliakaan
Bobin puheista, hän oli semmoinen koiranleuka ja pilkkakirves.
En tiedä, mitenkä lie ollut, mutta minusta ja eräästä Hoskins
nimisestä pojasta (yhdestoista kirjanpitäjä), joka asui kanssani
Salisburyn torikorttelissa, Fleet-kadulla, missä meillä oli hauska
asumus toisessa kerroksessa, tuntui huilunsoittelumme tavattoman
ikävältä tänä iltana, ja kun ehtoo oli hyvin kaunis, lähdimme
kuljeksimaan West Endiin[9] päin. Saapuessamme vastapäätä
Covent Gardenin teatteria olimme aivan lähellä "Globen krouvia" ja
muistimme samalla Bob Swinneyn vieraanvaraisen kutsun. Emme
61. olleet mitenkään kuvitelleet, että hän oli tarkottanut totta kutsullaan,
mutta arvelimme, että saattaisi sittenkin pistäytyä sisälle; missään
tapauksessa siitä ei voinut vahinkoa olla.
Vaan sielläpä me tapasimmekin Bobin takasalissa, missä hän oli
luvannut olla, istumassa pöydän päässä, paksun tupakansavun
keskellä, ja kahdeksantoista pojistamme kalistelemassa ja
hakkaamassa lasejansa pöytään.
Minkä rähinän he nostivat meidän astuessamme sisään! "Hurraa!"
huusi Bob, "tässä tulee kaksi lisää! Vielä kaksi tuolia, Mary, vielä
kaksi lasia, vielä lämmintä vettä ja vielä kaksi kippoa viinaa! Kukapa
herran nimessä olisi uskonut näkevänsä Titin täällä?"
"Niin", sanoin minä, "me tulimme tänne aivan sattumalta."
Nämät sanat synnyttivät uuden kauhean metakan — seikka oli
nimittäin tosiaan se, että joka mies näistä kahdeksastatoista oli
sanonut tulleensa sattumalta. Miten olikaan, hupaisen illan se
sattuma meille antoikin, ja antelias Bob Swinney maksoi joka
killingin.
"Hyvät herrat!" sanoi hän maksettuaan laskun, "olen kutsunut
Teidät juomaan kunnioitettavan herra John Broughin terveydeksi,
koska minun on kiittäminen häntä siitä kahdenkymmenen yhden
punnan ja viiden shillingin lahjasta, minkä hän antoi minulle tänä
aamuna. Mitä sanonkaan — kaksikymmentä yksi ja viisi? Ei, vaan
sen ja vielä yhden kuukauden palkan, joka minun olisi ollut
maksaminen — sakkoa — viimeistä penniä myöden, — lempo soi!
siitä että olin lähtenyt paikastani, kuten olin aikonut tehdä huomen-
aamulla. Minä olen saanut uuden paikan, erinomaisen paikan, voin
vakuuttaa. Viisi guineaa viikossa, kuusi matkaa vuodessa, oma
62. hevonen ja kevät kiesit ja kuljettava Länsi-Englannissa öljyä ja
valaanrasvaa tarjoten. Hornaan kaasuyhtiö, ja eläköön herrat Gann
ja Kumpp., Thames-kadulla Lontoon Cityssä!"
Olen näin seikkaperäisesti kertonut West Diddlesex
vakuutusyhtiöstä ja herra Broughista, sen toimeenpanevasta
johtajasta (vaikkei yhtiötä eikä sen johtajaa, hyvin ymmärrettävästi
ole mainittu oikealta nimeltä), sen tähden että minun ja
timanttineulani kohtalo oli salaperäisellä tavalla yhteydessä
kummankin kanssa, kuten kohta näytän.
Teidän täytyy saada tietää, että West Diddlesexin pojat suuresti
kunnioittivat minua, sen tähden, että minä tulin paremmasta
perheestä kuin enimmät heistä, olin saanut klassillisen kasvatuksen,
ja etenkin, koska minulla oli rikas täti, rouva Hoggarty, josta, täytyy
se tunnustaakseni, minun oli tapana vankasti kerskailla. Ei ole
mitenkään haitallista olla arvossa pidetty tässä maailmassa, mikäli
olen huomannut, ja ellei hieman kehuskele puolestaan, niin saattaa
olla varma siitä, ettei tuttavista kenkään näe vaivaa toisen tähden
eikä kerro maailmalle hänen ansioitaan.
Niin että kun minä kotona käytyäni palasin konttoriin ja asetuin
sijalleni vanhan päiväkirjan ääreen vastapäätä Birchin-kujaa päin
antavaa likaista ikkunaa, annoin piankin poikasten tietää, että vaikka
rouva Hoggarty ei ollut suonut minulle suurta rahasummaa, kuten
olin odottanut — minä olin todella luvannut tusinalle heistä pitää
kekkerit joen varrella, jos luvatut rikkaudet tulisivat minulle — minä
annoin heidän tietää, sanon, että vaikka tätini ei ollut suonut minulle
yhtään rahaa, hän oli lahjoittanut minulle komean timantin, joka oli
ainakin kolmenkymmenen guinean arvoinen, ja että minä jonakuna
päivänä prameilisin liikkeessä timantti rinnassani.
63. "Oo, antakaa nähdä se!" sanoo Abednego, jonka isä oli väärien
jalokivien ja kultaketjujen kauppias Hanway Yardissa, ja minä
lupasin, että hänen piti saada se silmätäkseen, heti kun se oli
uudessa asussa. Kun kaikki taskurahanikin olivat lopen huvenneet
(istuinpaikka vaunuissa kotiin ja takaisin, viisi shillinkiä piikatytölle
kotona, kymmenen tätini neitsyelle ja palvelijalle, viisikolmatta
shillinkiä häviötä whistipelissä, kuten jo kerroin, ja viisitoista shillinkiä
kuusi pennyä pieniin hopeasaksiin erään henkilön armaille pikku
sormille), niin Roundhand, joka oli perin hyväsydäminen mies, kutsui
minut päivälliselle ja antoi etukäteen kuukauden palkan: seitsemän
puntaa yhden shillingin ja kahdeksan pennyä. Roundhandin kotona
Myddeltonin torikorttelissa Pentonvillen varrella syötäessä vasikan
selkäpaistia ja juotaessa lasillista portteria opin tuntemaan ja
näinkin, kuinka pahasti vaimo häntä piteli, niinkuin taannoin kerroin.
Poika parka! — meidän kaikkien alakirjanpitäjäin mielestä oli mainio
asia istua yksinään pöytänsä ääressä ja nostaa viisikymmentä puntaa
kuussa, kuten Roundhand, mutta minusta tuntuu, että Hoskinsin ja
minun oli, luritellessamme yhdessä huilua toisen kerran
kamarissamme Salisburykorttelissa, koko paljoa parempi olla kuin
päämiehemme — ja sopusointukin eheämpi, vaikka meidän
soittelumme oli kylläkin säälittävää.
Eräänä päivänä Gus Hoskins ja minä pyysimme Roundhandilta
lupaa saada lähteä jo kello kolmelta, meillä kun oli erityistä asiaa
West Endiin. Hän tiesi, että se koski Hoggartyn isoa timanttia, ja
antoi luvan, ja me matkaan. Saavuttuamme St. Martin's-kujalle Gus
osti sikaarin näyttääkseen juhlalliselta, ja puhalteli sitä koko matkan
kujaa ja lehtokujia pitkin Coventry-kadulle asti, missä herra
Poloniuksen kauppa on, kuten jokainen tietää.
64. Ovi oli auki, ja useat vaunut täynnä naisia pysähtyivät ulkopuolelle
ja purkivat kuormansa. Gus pisti kädet taskuunsa — siihen aikaan
käytettiin hyvin laajoja housuja, joissa oli avarat laskokset ja hyvin
kapeat lahkeen suut, mistä saappaat tai puolisaappaat pistettiin ulos
(hienostolla oli saappaat, mutta me Cityn puotipojat, joilla oli
kahdeksankymmenen punnan vuosipalkka, tyydyimme
puolisaappaisiin) —, ja kun Gus levitti housujansa niin kauas
lonkistaan kuin mahdollista ja tuprutteli tupakkaansa ja iski katuun
kenkiensä raudoitettuja korkoja ja kun hänellä lisäksi oli niin nuoreksi
mieheksi perin tuuhea poskiparta, niin hän todella näytti oikein
komealta pojalta, jota jokainen pitikin merkittävänä henkilönä.
Hän ei kuitenkaan tahtonut tulla puotiin sisälle, vaan jäi ulos
katsoa tuijottamaan akkunassa olevia kultaisia patoja ja kattiloita.
Minä astuin sisään ja vähän yskittyäni ja ryittyäni, sillä en ollut
koskaan ennen käynyt niin hienossa paikassa, pyysin eräältä
herrasmieheltä saada puhutella herra Poloniusta.
"Millä saatan Teitä palvella, hyvä herra?" sanoo herra Polonius,
joka sattui seisomaan siinä vallan vieressä palvellen kolmea
naisihmistä, yhtä hyvin vanhaa ja kahta nuorta, jotka tarkasti
tutkivat muuatta helmistä kaulakoristetta.
"Tämä koriste on luullakseni ennenkin ollut Teidän huostassanne,
hyvä herra", sanoin minä vetäen esiin solkeni takin taskusta. — Se
on kuulunut tädilleni, rouva Hoggartylle Castle Hoggartysta."
Vanha nainen, joka seisoi lähellä, katsahti taakseen, kun tätä
puhuin.
"Minä myin hänelle kultaiset kaulavitjat ja lyövän taskukellon
vuonna 1795", sanoi herra Polonius, joka tahtoi osottaa muistavansa
65. kaikki, "ja kapteenille hopeaisen punssikauhan. Miten jaksaa majuri
— eversti — kenraali — hm! hyvä herra?"
"Kenraali", sanoin minä. "Ikäväkseni täytyy minun sanoa", vaikka
olin vallan ylpeä siitä, että tämä hieno mies puhutteli minua tällä
tapaa, "herra Hoggartya ei — ole enään. Mutta minun tätini on
lahjoittanut minulle tämän — tämän korukalun, joka, kuten näette,
sisältää hänen miehensä kuvan. Sitä minä pyydän Teitä, hyvä herra,
huolella säilyttämään, ja tätini haluaa, että te laitatte tämän timantin
sievästi uusiin puitteisiin."
"Sievästi ja soreasti, tietenkin, hyvä herra."
"Niin, nykyaikaiseen tapaan, ja lähettäkää lasku hänelle. Siinähän
on tuon korukapineen ympärillä melko määrä kultaa, jonka Te
tietenkin suvaitsette laskea pois."
"Viimeistä pennyä myöten", sanoo herra Polonius kumartaen ja
katsellen timanttia. "Se on tosiaan ihmeellinen kapine", sanoi hän,
"vaikka timantti on todellakin soma pieni kappale. Katsokaahan sitä,
mylady. Se on iiriläistä tekoa, leimattu v:lta 95 ja saattaa kenties
muistuttaa Teidän Armonne varhaisimman nuoruuden aikoja."
"Olkaa höpisemättä, herra Polonius!" sanoi vanha nainen, pieni
kaitakasvoinen vaimo, jonka kasvot olivat tuhansissa rypyissä.
"Kuinka Te rohkenette, herra hyvä, puhua sellaista hölynpölyä minun
kaltaiselleni vanhalle vaimolle. Enkö minä ollut viisikymmenvuotias
vuonna 95 ja iso-äiti vuonna 96?" Hän pisti esiin pari kuihtunutta,
vapisevaa kättä, avasi kannen, tarkasti sitä hetkisen ja sitten
purskahti nauramaan: "Niin totta kuin elän, onhan se iso Hoggartyn
timantti!"
66. Taivasten tekijät! mikä talismani olikaan joutunut käsiini?
"Katsokaa, tytöt", jatkoi vanha nainen, "tämä on koko Irlannin
isoin koriste. Tämä punanaamainen mies tässä keskellä on polonen
Mick Hoggarty, eräs orpanani, joka oli rakastunut minuun vuonna 84,
kun minä juuri olin menettänyt rakkaan isoisä-parkanne. Nämät
kolmetoista punaista hiuksenheiskaletta edustavat hänen
kolmeatoista kuuluisaa sisartaan — Biddy, Minny, Theddy, Widdy
(lyhennys Williaminasta), Freddy, Izzy, Tizzy, Mysie, Grizzy, Polly,
Dolly, Neil ja Bell — kaikki naimisissa, kaikki julmia ja kaikki
punatukkaisia. Ja kenen heistä Te olette poika, nuori mies? — vaikka
oikeus vaatii myöntämään, ettette ole perheen muotoon."
Kaksi kaunista nuorta naista käänsi minuun kaksi kaunista mustaa
silmäparia ja odotti vastausta, jonka he olisivat saaneetkin, ellei
vanha vaimo olisi ruvennut latelemaan satoja juttuja yllämainituista
kolmestatoista naisesta ja kaikista heidän rakastajistaan, kaikista
heidän vastoinkäymisistään ja kaikista Mick Hoggartyn
kaksintaisteluista. Hän oli viidenkymmenen vuoden roskajutut tietävä
kronika. Vihdoin hänet keskeytti ankara yskäkohtaus, jonka loputtua
herra Polonius erinomaisen kohteliaasti kysyi minulta, mihin hän saisi
lähettää neulan ja tahdoinko pitää hiukset.
"En", sanoin minä, "en välitä hiuksista."
"Entä neula, hyvä herra?"
Minua oli hävettänyt osotteeni ilmoittaminen. "Mutta kissa
vieköön!" ajattelin minä, "miksi minä? —"
Saa kuninkaalta aatelin ja arvon kreivi, herttua, on miehen
kunto kuitenkin jaella vaikea.
67. Mitä syytä minun olisi salata näiltä naisilta, missä asun?
"Olkaa hyvä ja lähettäkää kapine, saatuanne sen valmiiksi, herra
Titmarshille, n:o 3 Bell-kuja, Salisburyn kortteli, lähellä St.
Briden kirkkoa, Fleet-katu. Pyydän, soittakaa toisen kerroksen
kelloa."
"Hyvä herra, kuinka?" sanoi herra Polonius.
"Kuinka!" huusi vanha vaimo. "Herra Kuinka? Mais, ma chère, c'est
impayable.[10] Tulkaa pois — tääll' on vaunut! Antakaa
käsivartenne, herra Kuinka, nouskaa sisään ja kertokaa minulle
kaikki kolmestatoista tädistänne."
Hän tarttui minua käsipuolesta ja hynttäsi puodista niin kerkeään
kuin mahdollista, nuorten naisten nauraen seuratessa perästä.
"No, hypätkää sisään, kuuletteko?" sanoi hän pistäen terävän
nokkansa ulos vaunun akkunasta.
"En voi, mylady", sanon minä, "minulla on täällä ystävä."
"Vielä vai! mäkeen koko ystävänne ja hypätkää sisään!" Ja ennen
kun kerkesin kunnolleen saada sanaa suustani, työnsi muuan iso
puuteroitu roikale, keltaiset samettiset polvihousut jalassa, minut
vaunujen portaita ylös ja paiskasi oven kiinni perässäni.
Juuri vaunujen vieriessä pois ennätin silmätä Hoskinsiin, enkä
koskaan unohda hänen muotoansa. Siinä seisoi Gus, suu ammollaan,
silmät pyöreinä muljottaen, savuava sikaari kädessään, ihmetellen
minkä jaksoi minulle juuri sattunutta merkillistä seikkailua.
68. "Kuka on tämä Titmarsh?" sanoo Gus. "Vaunuihin oli aatelinen
kruunu maalattu, niin hitto soi olikin!"
69. KOLMAS LUKU
KUINKA TIMANTIN OMISTAJA VIEDÄÄN POIS UPEISSA VAUNUISSA JA
HYVÄ ONNI HÄNTÄ VIELÄ EDELLEEN SEURAA.
Minä istuin vaunujen takaistuimella vierelläni sangen sievä nuori
nainen, rakkaan Maryni iässä — nimittäin seitsemäntoista vuotta ja
yhdeksän kuukautta; ja meitä vastapäätä istui vanha kreivitär ja
hänen toinen pojantyttärensä — kaunis hänkin, vaikka kymmentä
vuotta vanhempi. Muistan, että minulla tuona päivänä oli ylläni
kiiltonappinen sininen takkini ja nankinihousut, valkea koruliivi ja
päässä Dandon silkkihattu, joka juuri oli tullut muotiin vuonna 22 ja
näytti melkoista loistavammalta kuin paras majavanhattu.
"Ja kuka oli se kamala olento" — alotti hänen armonsa jälleen —
"se kauhean raakamainen, suurikitainen tomppeli korkorautaisine
kenkineen ja jäljiteltyine kultavitjoineen, joka töllisteli meitä
noustessamme vaunuihin?"
Kuinka hän oli saattanut huomata, että Gusin vitjat olivat jäljitellyt,
sitä en voi sanoa, mutta niin ne olivat, ja me olimme ostaneet ne
viidelläkolmatta shillingillä ja kuudella pennyllä vain viikko takaperin
MacPhailin kaupasta St. Paulin kirkkotorin varrelta. Mutta minä en
70. pitänyt siitä, että ystävääni soimattiin ja siksi puhuin hänen
puolestaan:
"Rouva hyvä", sanon minä, "se nuori gentlemanni on nimeltään
Augustus Hoskins. Me asumme yhdessä eikä löydy parempaa eikä
hyväsydämisempää poikaa."
"Te teette aivan oikein puolustaessanne ystäviänne, hyvä herra",
sanoi toinen naisista, jonka nimi näkyi olevan lady Jane.
"Niin totta vie tekeekin, lady Jane, ja minä pidän uljuudesta
nuoressa miehessä. Vai on hänen nimensä Hoskins? Minä tunnen,
ystäväiseni, kaikki Englannin Hoskinsit. Niitä on Lincolnshiren
Hoskinsit, Shropshiren Hoskinsit — sanotaan, että amiraalin tytär,
Bell, oli rakastunut mustaan palvelijaan tai laivamieheen tai johonkin
semmoiseen, mutta maailmahan on niin panettelevainen. Niitä on
myöskin tohtori Hoskins Bathista, joka hoiti rakasta Drum-parkaa
hänen sairastaessaan kurkkumätää. Ja rakas vanha Fred Hoskins-
raukka, luuvaloinen kenraali. Minä muistan, kuinka hän oli hoikka
kuin hämähäkki vuonna 84 ja elävä kuin ammatti-ilveilijä ja
rakastunut minuun — oo, kuinka hän oli rakastunut minuun!"
"Sinulla näyttää olleen kokonainen lauma ihailijoita noihin aikoihin,
isoäiti?" sanoi lady Jane.
"Satoja, rakkahani — satoja tuhansia! Minä olin koko Bathin
suosikki ja suuri kaunotar myöskin. Olisitteko koskaan tullut sitä
ajatelleeksi nyt, vastatkaa omantunnonmukaisesti ja imartelematta,
herra… kuinka se nimenne kuuluikaan?"
"Tosiaankaan, hyvä rouva, en koskaan", vastasin minä, sillä vanha
vaimo oli niin ruma kuin olla saattaa. Ja sen sanoessani molemmat
71. nuoret naiset kirkuen nauramaan, ja minä näin, mitenkä suurine
poskipartoineen ylvästelevät lakeijat virnottelivat vaunujen perässä.
"Toden totta, Te olette sangen suorapuheinen, herra… mikä
olikaan nimenne — sangen suorapuheinen todellakin, mutta minä
pidän suorapuheisista nuorista miehistä. Mutta kaunotar minä olin.
Kysykääpä ystävänne sedältä, kenraalilta. Hän kuuluu Lincolnshiren
Hoskinsien haaraan. Minä näin, että hänellä oli suuressa määrin
perheen sukupiirteet. Onko hän vanhin poika? Se on sievä tila,
vaikka pahasti velkaantunut, sillä vanha Sir George oli aika pahuus
mieheksi — Hanburyn Williamsin ja Lyttletonin ja noiden muiden
kauheitten, ilkeitten, hirveitten ihmisten ystäviä! Kuinka paljon
luulette, herraseni, hänen saavan nyt, kun amiraali kuolee?"
"Kas sitä en osaa sanoa, mutta amiraali ei ole ystäväni isä."
"Eikö hänen ystävänsä — mutta onpahan, sanon minä, enkä minä
ole koskaan väärässä. Kuka hänen isänsä sitten on?"
"Mylady, Gusin isä on nahkakauppias Skinnerkadulta Snow Hillistä,
hyvin arvossa pidetty kauppahuone, mylady. Mutta Gus on vain
kolmas poika eikä siksi saata odottaa suurta osuutta omaisuudesta."
Molemmat nuoret naiset hymyilivät tälle selitykselle — vanha
vaimo sanoi: "Kuinka?"
"Minä pidän siitä, hyvä herra", sanoi lady Jane, "että Te ette häpeä
ystäviänne, minkälainen heidän asemansa elämässä lieneekin. Onko
meidän sallittu päästää Teidät alas jossakin, herra Titmarsh?"
"Ei mitään hätää, mylady", sanon minä. "Meillä on tänään vapaata
konttorista — ainakin antoi Roundhand lupaa minulle ja Gusille, ja
72. minun on erittäin mieluista ajella vähäsen puistossa, ellei se ole
vaivaksi."
"Epäilemättä se on meille — äärettömän hauskaa", vastasi lady
Jane, vaikka pikemmin vakavan muotoisena.
"Oi, aivan varmasti!" vahvistaa lady Fanny paukuttaen käsiään.
"Eikö totta, isoäiti? Ja sen jälkeen kun me olemme olleet puistossa,
me saatamme ajella Kensingtonin puutarhassa, jos herra Titmarsh
ystävällisesti tahtoo olla seuranamme."
"Mutta, Fanny, emme tee sillä tavoin", sanoo lady Jane.
"Mutta me teemme kumminkin!" huusi lady Drum. "Olenhan vallan
menehtyä halusta kuulla jotakin hänen enostaan ja kolmestatoista
tädistään, ja te nuoret tytöt pärisette vielä siinä niin, etten tässä saa
siunattua sanaa vaihtaa nuoren ystäväni kanssa."
Lady Jane kohautti olkiaan eikä virkennyt enään sanaakaan. Lady
Fanny, joka oli iloinen kuin kissanpoikanen (jos minun sallitaan sanoa
sillä tavoin ylimystöstä), nauroi ja hihitti ja taas punastui, ja näytti
olevan kovasti huvitettu sisarensa huonosta tuulesta. Ja kreivitär kävi
heti käsiksi Hoggartyn kolmentoista missin historiaan, joka ei ollut
läheskään lopussa, kun me saavuimme puistoon.
Ette voi ajatellakaan, mitkä sadat herrat siellä selkähevosella
ajoivat vaunujen tykö ja puhuttelivat naisia. Heillä oli kaikilla
leikkisana lady Drumille, jolla näkyi olevan omalaatuinen luonne,
kumarrus lady Janelle ja, varsinkin nuorilla miehillä, kohteliaisuus
lady Fannylle.
73. Vaikka lady Fanny kumarteli ja punastui, kuten nuoren naisen
tulee, näytti hän kuitenkin ajattelevan jotakin muuta, sillä hän
ojenteli päätään ulos vaunuista innolla pälyen ratsastavien joukkoon,
ikäänkuin toivoen näkevänsä jonkun. Ahaa, hyvä lady Fanny, minä
kyllä tiesin, mitä merkitsi, että teidän kaltaisenne nuori nainen oli
hajamielinen ja vaaniskeli ja vain puolittain vastaili hänelle tehtyihin
kysymyksiin. Ei huolta Sam Titmarshista, hän kyllä tietää yhtä hyvin
kuin kuka muu hyvänsä, mitä eräs henkilö merkitsee, sen takaan.
Kun minä näin näiden temppujen jatkuvan, en malttanut olla
vihjaisematta lady Janelle osottaakseni, että tiesin mistä päin tuuli
kävi.
"Minä arvaan, että nuori neiti etsiskelee 'erästä henkilöä'", sanon
minä.
Silloin oli hänen vuoronsa näyttää totiselta, sen vakuutan, ja hän
karahti punaseksi kuin kukko, mutta hetkisen päästä se
hyvänluontoinen typykkä katsoi sisareensa ja molemmat nuoret
naiset nostivat nenäliinat silmilleen ja alkoivat nauraa — nauraa
ikäänkuin minä olisin sanonut kaikkein hullunkurisinta maailmassa.
"IL est charmant, votre monsieur",[11] sanoi lady Jane
isoäidilleen. Johon minä kumarsin ja vastasin: "Madame, vous me
faites beaucoup d'honneur",[12] sillä minä osaan ranskankieltä ja
olin hyvilläni, että nämät hyvät naiset olivat suopuneet minuun.
"Minä olen vähäpätöinen poika parka, rouva hyvä, enkä ole tottunut
Lontoon hienoon elämään, ja minusta todella te olette hyvin
ystävällisiä sillä tavoin ottaessanne minut suojaanne ja antaessanne
minun ajella hienoissa vaunuissanne."
Tällä hetkellä kalpeakasvoinen, viiksihuulinen herra mustan
hevosen selässä tuli ratsastaen vaunujen luo, ja siitä, että lady Fanny
74. hieman hytkähti ja samassa kääntyi katsomaan muuanne, minä
älysin, että eräs henkilö vihdoinkin oli tullut.
"Nöyrin palvelijanne, lady Drum", tervehti hän. "Olen juuri
ratsastanut miehen kanssa, joka oli vähillä ampua itsensä
rakkaudesta kauniiseen kreivitär Drumiin vuonna — no samapa tuo."
"Oliko se Killblazes?" tiedusti vanha rouva. "Hän on armas vanha
äijä, ja minä olen aivan valmis karkaamaan hänen kanssansa tällä
samalla hetkellä. Vai oliko se ihastuttava vanha piispa? Hänellä on
kihara hiuksistani — hän sai sen ollessaan isän kappalaisena; ja
saatanpa sanoa Teille, olisi aika työ löytää toinen semmoinen nyt
samalta paikalta."
"Elkää nyt, mylady!" sanon minä, — elkää sanoko niin!"
"Mutta teenpä sen sittenkin, herraseni", sanoo hän, "sillä näin
meidän kesken, on minun pääni yhtä paljas kuin tykin kuula —
kysykää Fannylta, eikö ole. Mitenkä se lapsirukka säikähtyi kerta
pienenä odottamatta tullessaan pukuhuoneeseeni, kun minulla ei
ollut tekotukkaa päässä!"
"Minä toivon, että lady Fanny on tointunut siitä pelästyksestä",
sanoi "eräs" katsoen ensin häntä ja sitten minua sen näköisenä kuin
olisi tahtonut syödä minut. Ja uskoisitteko sen? Lady Fanny ei
osannut muuta vastata kuin "kiitos, varsin hyvin, mylord", ja sen hän
sanoi niin hämillään ja punastuvana kuin meidän oli tapana koulussa
lausua Virgiliusta — kun emme sitä osanneet.
Mylord yhä katseli minua ylen tuikeasti ja mutisi jotakin
toivoneensa saavansa sijan lady Drumin vaunuissa, kun oli väsynyt
75. ratsastukseen, mihin lady Fanny hänkin mutisi jotakin "isoäidin
ystävästä".
"Sinun ystäväsihän, Fanny, pitäisi sinun sanoa", sanoo lady Jane.
"Me emme varmaankaan koskaan olisi tulleet puistoon, ellei Fanny
ehdottomasti olisi tahtonut tuoda herra Titmarshia tänne. Sallikaa
minun esittää kreivi Tiptoff — herra Titmarsh." Mutta sen sijaan että
olisi nostanut hattua, niinkuin minä tein, hänen armonsa murahti
toivovansa toista tilaisuutta ja nelisti taas pois mustan hevosensa
selässä. Miten pirhanassa minä olisin häntä loukannut, en ollenkaan
osaa ymmärtää.
Mutta näyttipä siltä, että minä olin määrätty sinä päivänä
loukkaamaan kaikkia herrasmiehiä, sillä eikös nyt tullut paikalle
hänen kunnianarvoisuutensa Edmund Preston, Hänen Majesteettinsa
valtiosihteerejä (minkä aivan hyvin tiesin konttorimme kalenterista)
ja lady Janen herra mies.
Hänen kunnianarvoisuutensa ratsasti pientä vankkaa kimoa ja oli
lihava, kalvakka mies, joka näytti siltä kuin ei hän koskaan liikkuisi
raittiissa ilmassa.
"Kuka perhana tuo on?" tokasi hän vaimolleen äreästi katsellen
minua ja häntä.
"Oh, hän on isoäidin ja Janen ystäviä", ehätti lady Fanny
sanomaan samalla silmäten, kuin mikäkin viekas vekkuli kun hän oli,
perin veitikkamaisesti sisareensa, joka puolestaan näytti hirveän
säikähtyneeltä ja pyytelevästi katsoi sisareensa eikä uskaltanut
ääntää sanaakaan. "Niin, todella", jatkoi lady Fanny, "herra Titmarsh
on isoäidin serkku, äidin puolelta, Hoggartyn kautta. Etkö tullut
tuntemaan Hoggarteja, Edmund, ollessasi lordi Bagwigin kanssa
76. Irlannissa? Salli minun esittää sinulle isoäidin serkku, herra Titmarsh;
herra Titmarsh, lankoni, herra Edmund Preston."
Koko ajan koetti lady Jane polkea sisartansa jalalle niin kovaan
kuin taisi, mutta se pieni ilkimys ei ottanut sitä miksikään, ja minä,
joka en ollut koskaan kuullut tästä orpanuudesta, olin niin hämilläni
kuin olla saattaa. Mutta minä en tuntenut kreivitär Drumia läheskään
niin hyvin kuin hänen pojantyttärensä, se hurja tyttö. Sillä vanha
vaimo, joka juuri oli kutsunut serkukseen Gus Hoskins parkaa, näytti
kuvittelevan koko maailman olevan sukulaisuussuhteissa hänen
kanssansa, ja sanoi:
"Niin, me olemme sukua, emmekä kovin etäistäkään. Mick
Hoggartyn isoäiti oli Millicent Brady, ja hän ja täti Towzer olivat
sukua, kuten koko maailma tietää, sillä Decimus Brady Ballybradystä
nai täti Towzerin äidin oikean serkun, Bell Swiftin — hän ei ollut
sukua tuomioprovastille, rakkaani, jonka perheen laita oli niin ja
näin.[13] No, eikö se ole selvä?"
"Oi, täydellisesti, isoäiti", myönsi lady Jane nauraen, mutta
kunnianarvoisa herra, joka vielä ratsasti vierellämme, näytti perin
äreältä ja happamalta.
"Varmaanhan sinä tulit tuntemaan Hoggartyt, Edmund? — ne
kolmetoista punatukkaista tyttöä — yhdeksän sulotarta ja neljä
päällisiksi, kuten Clanboy paran oli tapana kutsua heitä. Clan parka!
Teidän ja minun serkkuni, herra Titmarsh, ja hirveästi rakastunut
minuun hänkin. Etkö nyt muista niitä kaikkia, Edmund? — etkö
muista? — et muista Biddyä ja Minnyä, ja Theddyä ja Widdyä, ja
Mysiä ja Grizzyä, ja Pollya ja Dollyä ja niitä muita?"
77. "Hiiteen kaikki Hoggartyn missit!" sanoi kunnianarvoisa herra, ja
sanoi sen niin pontevasti, että hänen harmaa kimonsa äkkiä potkasi
takajaloillaan, jolloin herra oli vähällä lentää päistikkaa maahan.
Lady Jane kirkasi, lady Fanny nauroi, vanha lady Drum ei näyttänyt
olevan millänsäkään ja sanoi: "Sen olette ansainnutkin siinä
kiroillessanne, te ilkeä mies!"
"Eikö Teidän olisi parempi tulla vaunuihin, Edmund — herra
Preston?" lausui hänen vaimonsa tuskaisena.
"Minä kyllä nousen heti pois, rouva hyvä", sanon minä.
"Mitä joutavia, pysykää paikallanne!" käski lady Drum, "vaunut
ovat minun. Ja jos herra Preston näkee hyväksi kiroilla minun
ikäiselleni naiselle tuohon inhottavaan moukkamaiseen tapaan —
inhottavaan moukkamaiseen tapaan, sanon vieläkin kerran —, en voi
käsittää, mistä hyvästä minun ystäväni näkisivät vaivaa hänen
vuoksensa. Antaa hänen istua ajajan kanssa, jos hän haluaa, tai tulla
istumaan meidän kahden keskelle." Ilmeistä oli, että lady Drum
vihasi sydämensä pohjasta poikansa vävyä, ja minä olen huomannut,
ettei tämäntapainen viha ole hienoissa perheissä mitenkään
harvinainen.
Herra Preston, Hänen Majesteettinsa valtiosihteerejä, oli totta
puhuaksemme kovasti peloissaan hevosensa selässä ja siksi suuresti
iloissaan päästessään pois hyppivältä ja potkivalta elukalta. Hänen
kalvakat kasvonsa näyttivät vielä kalpeammilta kuin ennen ja hänen
kätensä ja jalkansa vapisivat, kun hän kapusi alas kimon selästä ja
antoi ohjakset palvelijalleen. Minusta mies — tarkotan isäntää —
tuntui vastenmieliseltä heti ensi hetkestä, kun hän tuli luoksemme ja
puhutteli niin raa'alla tavalla lempeätä, suloista vaimoansa, ja
mielestäni hän oli kurja pelkuri, niinkuin seikkailu kimon selässä
78. osottikin hänen olevan. Sillähän olisi, lempo soi, lapsikin ratsastanut,
ja tuossa iso mies haihatteli sydän kurkussa jo ensi potkauksesta.
"Oo, joutukaa, tulkaa toki sisään, Edmund", sanoi lady Fanny
nauraen, ja vaunujen astuimet laskettiin alas ja heittäen minuun
tuikean silmäyksen hän astui sisään aikoen asettua lady Fannyn
kolkkaan (minäpä en mielinyt hievahtaa omastani, sen takaan), kun
tuo pieni hulivili huudahti: "Oi ei, ei millään muotoa, herra Preston!
Sulkekaa ovi, Thomas. Voi, kuinka hauskaa näyttää koko maailmalle
kuinka valtiosihteeri istuu penkillä kolmantena!"
Ja koko murjottavalta se valtiosihteeri näyttikin, sen voin
vakuuttaa!
"Ottakaa minun paikkani, Edmund, elkääkä välittäkö Fannyn
hullutuksista", pyysi lady Jane arasti.
"Oh, ei, pyydän, rouva hyvä, istukaa pois. Minun on tässä varsin
mukava, varsin mukava, ja niin toivon, että herra — tämän herrankin
on."
"Täydellisesti, sen vakuutan", sanon minä. "Minä olin aikeissa
tarjoutua ratsastamaan hevosenne kotiin Teidän puolestanne, koska
Te näytitte sitä kovasti pelkäävän, mutta seikka oli se, että minun oli
tässä niin mukava, että todellakaan en voinut irtautua paikaltani."
Kuinka virnistelikään vanha lady Drum, kun minä puhuin näin!
Kuinka hänen pienet silmänsä vilkuttivat ja hänen pieni viekas
suunsa liehehti! Minä en voinut olla puhumatta, nähkääs, sillä sisuni
kiehui.
79. "Teidän seuranne on aina meille iloksi, serkku Titmarsh", sanoo
hän ojentaen minulle kultaista nuuskarasiaa, josta minä otin
hyppysellisen ja aivastin ylväästi kuin lordi.
"Koska olette kutsunut tämän herrasmiehen vaunuihinne, lady
Jane Preston, niin totta kai kutsutte hänet kotiin päivällisellekin,"
sanoo herra Preston, sinisenä kiukusta.
"Minä kutsuin hänet minun vaunuihini", oikasee vanha lady, "ja
koska olemme menossa päivälliselle Teidän luoksenne ja Te niin
hartaasti haluatte, niin on minun erittäin mieluista nähdä hänet
siellä."
"Valitan, että olen lupautunut toisaalle", sanoin minä.
"Oh, tosiaan, mikä vahinko!" sanoo kunnianarvoisa herra Edmund,
yhä äkäisenä tuijottaen vaimoonsa. "Mikä vahinko, että tämä
herrasmies — en muista nimeä — että Teidän ystävänne, lady Jane,
on lupautunut toisaalle! Teidän olisi varmaankin ollut erinomaisen
mieluista nähdä sukulaisenne Whitehallissa."
Lady Drum oli ilmeisesti hassastunut sukulaisuuksien keksimiseen,
mutta tämä hänen kunnianarvoisuutensa puhe oli sentään liika
paljon.
"Kuules Sam", sanon minä itselleni, "oles mies ja näytä kuntoasi!"
Ja niin minä heti puutuin puheeseen ja sanoin: "No koska herra
valtiosihteeristä se on niin kovasti tärkeätä, hyvät naiset, niin minä
peruutan toisaalle antamani lupauksen, ja todellisella mielihyvällä
haukkaan palasen hänen kanssaan. Mikä on Teidän ruokailuaikanne,
sir?"
80. Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
More than just a book-buying platform, we strive to be a bridge
connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.
Join us on a journey of knowledge exploration, passion nurturing, and
personal growth every day!
ebookbell.com