0% found this document useful (0 votes)
52 views40 pages

Full Design Patterns in Modern C++20: Reusable Approaches For Object-Oriented Software Design 2nd Edition Dmitri Nesteruk Ebook All Chapters

The document promotes the ebook 'Design Patterns in Modern C++20: Reusable Approaches for Object-Oriented Software Design, 2nd Edition' by Dmitri Nesteruk, available for download on ebookmeta.com. It includes links to additional recommended digital products and provides a brief overview of the book's content, including various design patterns and principles. The document also outlines copyright information and the availability of supplementary materials on GitHub.

Uploaded by

pahelreaux01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views40 pages

Full Design Patterns in Modern C++20: Reusable Approaches For Object-Oriented Software Design 2nd Edition Dmitri Nesteruk Ebook All Chapters

The document promotes the ebook 'Design Patterns in Modern C++20: Reusable Approaches for Object-Oriented Software Design, 2nd Edition' by Dmitri Nesteruk, available for download on ebookmeta.com. It includes links to additional recommended digital products and provides a brief overview of the book's content, including various design patterns and principles. The document also outlines copyright information and the availability of supplementary materials on GitHub.

Uploaded by

pahelreaux01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Get the full ebook with Bonus Features for a Better Reading Experience on ebookmeta.

com

Design Patterns in Modern C++20: Reusable


Approaches for Object-Oriented Software Design 2nd
Edition Dmitri Nesteruk

https://ebookmeta.com/product/design-patterns-in-
modern-c20-reusable-approaches-for-object-oriented-software-
design-2nd-edition-dmitri-nesteruk/

OR CLICK HERE

DOWLOAD NOW

Download more ebook instantly today at https://ebookmeta.com


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

Design Patterns in Modern C++20: Reusable Approaches for


Object-Oriented Software Design 2nd Edition Dmitri
Nesteruk
https://ebookmeta.com/product/design-patterns-in-modern-c20-reusable-
approaches-for-object-oriented-software-design-2nd-edition-dmitri-
nesteruk-2/
ebookmeta.com

Design Patterns in .NET: Reusable Approaches in C# and F#


for Object-Oriented Software Design 1st Edition Dmitri
Nesteruk
https://ebookmeta.com/product/design-patterns-in-net-reusable-
approaches-in-c-and-f-for-object-oriented-software-design-1st-edition-
dmitri-nesteruk/
ebookmeta.com

Design Patterns in .NET 6: Reusable Approaches in C# and


F# for Object-Oriented Software Design 3rd Edition Dmitri
Nesteruk
https://ebookmeta.com/product/design-patterns-in-net-6-reusable-
approaches-in-c-and-f-for-object-oriented-software-design-3rd-edition-
dmitri-nesteruk/
ebookmeta.com

Black Light Rescued Black Light Series Book 6 1st Edition


Livia Grant

https://ebookmeta.com/product/black-light-rescued-black-light-series-
book-6-1st-edition-livia-grant/

ebookmeta.com
Mechanics and Physics of Structured Media : Asymptotic and
Integral Equations Methods of Leonid Filshtinsky 1st
Edition Igor Andrianov
https://ebookmeta.com/product/mechanics-and-physics-of-structured-
media-asymptotic-and-integral-equations-methods-of-leonid-
filshtinsky-1st-edition-igor-andrianov/
ebookmeta.com

Energy and Development 1st Edition Frauke Urban

https://ebookmeta.com/product/energy-and-development-1st-edition-
frauke-urban-2/

ebookmeta.com

Uniting Their Pack The Lost Therian Omega Book 3 1st


Edition Aisling Cousins

https://ebookmeta.com/product/uniting-their-pack-the-lost-therian-
omega-book-3-1st-edition-aisling-cousins/

ebookmeta.com

If You re Freaking Out Read This 1st Edition Simone


Deangelis

https://ebookmeta.com/product/if-you-re-freaking-out-read-this-1st-
edition-simone-deangelis/

ebookmeta.com

Attacked 1st Edition Marc Favreau

https://ebookmeta.com/product/attacked-1st-edition-marc-favreau/

ebookmeta.com
Learn From Bent Larsen Mihail Marin

https://ebookmeta.com/product/learn-from-bent-larsen-mihail-marin/

ebookmeta.com
Design Patterns
in Modern C++20
Reusable Approaches for Object-
Oriented Software Design

Second Edition

Dmitri Nesteruk
Design Patterns in
Modern C++20
Reusable Approaches
for Object-Oriented
Software Design
Second Edition

Dmitri Nesteruk
Design Patterns in Modern C++20: Reusable Approaches for
Object-­Oriented Software Design

Dmitri Nesteruk
St. Petersburg, Russia

ISBN-13 (pbk): 978-1-4842-7294-7 ISBN-13 (electronic): 978-1-4842-7295-4


https://doi.org/10.1007/978-1-4842-7295-4

Copyright © 2022 by Dmitri Nesteruk


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Steve Anglin
Development Editor: Matthew Moodie
Coordinating Editor: Mark Powers
Cover designed by eStudioCalamar
Cover image by Clark van der Beken on Unsplash (www.unsplash.com)
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY
10004, U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected],
or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member
(owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance
Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for
reprint, paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions
and licenses are also available for most titles. For more information, reference our Print and eBook
Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available
to readers on GitHub via the book’s product page, located at www.apress.com/9781484272947. For
more detailed information, please visit http://www.apress.com/source-­code.
Printed on acid-free paper
Table of Contents
About the Author���������������������������������������������������������������������������������xi

About the Technical Reviewers���������������������������������������������������������xiii

Chapter 1: Introduction������������������������������������������������������������������������1
Who This Book Is For���������������������������������������������������������������������������������������������2
On Code Examples������������������������������������������������������������������������������������������������3
On Developer Tools������������������������������������������������������������������������������������������������4
Preface to the Second Edition�������������������������������������������������������������������������������5
Important Concepts�����������������������������������������������������������������������������������������������6
Curiously Recurring Template Pattern�������������������������������������������������������������6
Mixin Inheritance���������������������������������������������������������������������������������������������8
Old-Fashioned Static Polymorphism���������������������������������������������������������������8
Static Polymorphism with Concepts��������������������������������������������������������������11
Properties������������������������������������������������������������������������������������������������������12
The SOLID Design Principles�������������������������������������������������������������������������������14
Single Responsibility Principle����������������������������������������������������������������������15
Open-Closed Principle�����������������������������������������������������������������������������������17
Liskov Substitution Principle�������������������������������������������������������������������������26
Interface Segregation Principle���������������������������������������������������������������������29
Dependency Inversion Principle��������������������������������������������������������������������33

iii
Table of Contents

Part I: Creational Patterns���������������������������������������������������������41


Chapter 2: Builder�������������������������������������������������������������������������������43
Scenario��������������������������������������������������������������������������������������������������������������43
Simple Builder�����������������������������������������������������������������������������������������������������45
Fluent Builder������������������������������������������������������������������������������������������������������46
Communicating Intent�����������������������������������������������������������������������������������������47
Groovy-Style Builder�������������������������������������������������������������������������������������������49
Composite Builder�����������������������������������������������������������������������������������������������52
Builder Parameter�����������������������������������������������������������������������������������������������57
Builder Inheritance����������������������������������������������������������������������������������������������59
Summary������������������������������������������������������������������������������������������������������������65

Chapter 3: Factories���������������������������������������������������������������������������67
Scenario��������������������������������������������������������������������������������������������������������������67
Factory Method���������������������������������������������������������������������������������������������������70
Factory����������������������������������������������������������������������������������������������������������������72
Factory Methods and Polymorphism������������������������������������������������������������������75
Nested Factory����������������������������������������������������������������������������������������������������76
Abstract Factory��������������������������������������������������������������������������������������������������78
Functional Factory����������������������������������������������������������������������������������������������82
Object Tracking���������������������������������������������������������������������������������������������������83
Summary������������������������������������������������������������������������������������������������������������85

Chapter 4: Prototype���������������������������������������������������������������������������87
Object Construction���������������������������������������������������������������������������������������������87
Ordinary Duplication�������������������������������������������������������������������������������������������88
Duplication via Copy Construction����������������������������������������������������������������������89
Virtual Constructor����������������������������������������������������������������������������������������������92

iv
Table of Contents

Serialization��������������������������������������������������������������������������������������������������������94
Prototype Factory������������������������������������������������������������������������������������������������98
Summary������������������������������������������������������������������������������������������������������������99

Chapter 5: Singleton�������������������������������������������������������������������������101
Singleton As Global Object��������������������������������������������������������������������������������102
Classic Implementation�������������������������������������������������������������������������������������103
Thread Safety����������������������������������������������������������������������������������������������105
The Trouble with Singleton�������������������������������������������������������������������������������107
Per-Thread Singleton�����������������������������������������������������������������������������������111
Ambient Context������������������������������������������������������������������������������������������114
Singletons and Inversion of Control�������������������������������������������������������������118
Monostate����������������������������������������������������������������������������������������������������119
Summary�����������������������������������������������������������������������������������������������������120

Part II: Structural Patterns������������������������������������������������������121


Chapter 6: Adapter���������������������������������������������������������������������������123
Scenario������������������������������������������������������������������������������������������������������������123
Adapter�������������������������������������������������������������������������������������������������������������126
Adapter Temporaries�����������������������������������������������������������������������������������������128
Bidirectional Converter�������������������������������������������������������������������������������������131
Summary����������������������������������������������������������������������������������������������������������133

Chapter 7: Bridge������������������������������������������������������������������������������135
The Pimpl Idiom������������������������������������������������������������������������������������������������135
Bridge���������������������������������������������������������������������������������������������������������������138
Summary����������������������������������������������������������������������������������������������������������141

v
Table of Contents

Chapter 8: Composite�����������������������������������������������������������������������143
Array-Backed Properties�����������������������������������������������������������������������������������145
Grouping Graphic Objects���������������������������������������������������������������������������������148
Neural Networks�����������������������������������������������������������������������������������������������150
Shrink-Wrapping the Composite�����������������������������������������������������������������155
Conceptual Improvements���������������������������������������������������������������������������155
Concepts and Global Operators�������������������������������������������������������������������157
Composite Specification�����������������������������������������������������������������������������������159
Summary����������������������������������������������������������������������������������������������������������161

Chapter 9: Decorator������������������������������������������������������������������������163
Scenario������������������������������������������������������������������������������������������������������������163
Dynamic Decorator�������������������������������������������������������������������������������������������166
Static Decorator������������������������������������������������������������������������������������������������169
Functional Decorator�����������������������������������������������������������������������������������������172
Summary����������������������������������������������������������������������������������������������������������177

Chapter 10: Façade���������������������������������������������������������������������������179


Magic Square Generator�����������������������������������������������������������������������������������180
Fine-Tuning��������������������������������������������������������������������������������������������������184
Building a Trading Terminal�������������������������������������������������������������������������������185
An Advanced Terminal���������������������������������������������������������������������������������187
Where’s the Façade?�����������������������������������������������������������������������������������189
Summary����������������������������������������������������������������������������������������������������������190

Chapter 11: Flyweight����������������������������������������������������������������������191


User Names�������������������������������������������������������������������������������������������������������191
Boost.Flyweight������������������������������������������������������������������������������������������������194
String Ranges���������������������������������������������������������������������������������������������������195

vi
Table of Contents

Naïve Approach�������������������������������������������������������������������������������������������195
Flyweight Implementation���������������������������������������������������������������������������197
Summary����������������������������������������������������������������������������������������������������������200

Chapter 12: Proxy�����������������������������������������������������������������������������201


Smart Pointers��������������������������������������������������������������������������������������������������201
Property Proxy���������������������������������������������������������������������������������������������������202
Virtual Proxy������������������������������������������������������������������������������������������������������204
Communication Proxy���������������������������������������������������������������������������������������207
Value Proxy�������������������������������������������������������������������������������������������������������210
Summary����������������������������������������������������������������������������������������������������������214

Part III: Behavioral Patterns����������������������������������������������������215


Chapter 13: Chain of Responsibility�������������������������������������������������217
Scenario������������������������������������������������������������������������������������������������������������217
Pointer Chain�����������������������������������������������������������������������������������������������������218
Broker Chain�����������������������������������������������������������������������������������������������������222
Summary����������������������������������������������������������������������������������������������������������226

Chapter 14: Command����������������������������������������������������������������������229


Scenario������������������������������������������������������������������������������������������������������������229
Implementing the Command Pattern����������������������������������������������������������������230
Undo Operations�����������������������������������������������������������������������������������������������232
Composite Command����������������������������������������������������������������������������������������236
Command Query Separation�����������������������������������������������������������������������������240
Summary����������������������������������������������������������������������������������������������������������243

vii
Table of Contents

Chapter 15: Interpreter���������������������������������������������������������������������245


Parsing Integral Numbers���������������������������������������������������������������������������������246
Numeric Expression Evaluator��������������������������������������������������������������������������247
Lexing����������������������������������������������������������������������������������������������������������248
Parsing��������������������������������������������������������������������������������������������������������251
Using the Lexer and Parser�������������������������������������������������������������������������255
Parsing with Boost.Spirit����������������������������������������������������������������������������������255
Abstract Syntax Tree������������������������������������������������������������������������������������256
Parser����������������������������������������������������������������������������������������������������������257
Printer����������������������������������������������������������������������������������������������������������259
Summary����������������������������������������������������������������������������������������������������������260

Chapter 16: Iterator��������������������������������������������������������������������������261


Iterators in the Standard Library�����������������������������������������������������������������������261
Traversing a Binary Tree������������������������������������������������������������������������������������264
Iteration with Coroutines�����������������������������������������������������������������������������������269
Summary����������������������������������������������������������������������������������������������������������271

Chapter 17: Mediator������������������������������������������������������������������������273


Chat Room��������������������������������������������������������������������������������������������������������273
Mediator with Events����������������������������������������������������������������������������������������279
Service Bus As Mediator�����������������������������������������������������������������������������������283
Summary����������������������������������������������������������������������������������������������������������284

Chapter 18: Memento�����������������������������������������������������������������������287


Bank Account����������������������������������������������������������������������������������������������������287
Undo and Redo��������������������������������������������������������������������������������������������������289
Memory Considerations������������������������������������������������������������������������������������293
Using Memento for Interop�������������������������������������������������������������������������������294
Summary����������������������������������������������������������������������������������������������������������296

viii
Table of Contents

Chapter 19: Null Object���������������������������������������������������������������������297


Scenario������������������������������������������������������������������������������������������������������������297
Null Object���������������������������������������������������������������������������������������������������299
shared_ptr Is Not a Null Object�������������������������������������������������������������������������300
Design Improvements���������������������������������������������������������������������������������������301
Implicit Null Object��������������������������������������������������������������������������������������������301
Interaction with Other Patterns�������������������������������������������������������������������������303
Summary����������������������������������������������������������������������������������������������������������304

Chapter 20: Observer������������������������������������������������������������������������305


Property Observers�������������������������������������������������������������������������������������������305
Observer<T>�����������������������������������������������������������������������������������������������������306
Observable<T>�������������������������������������������������������������������������������������������������308
Connecting Observers and Observables�����������������������������������������������������������310
Dependency Problems��������������������������������������������������������������������������������������311
Unsubscription and Thread Safety��������������������������������������������������������������������312
Reentrancy��������������������������������������������������������������������������������������������������������314
Observer with Boost.Signals2���������������������������������������������������������������������������317
Views����������������������������������������������������������������������������������������������������������������319
Summary����������������������������������������������������������������������������������������������������������321

Chapter 21: State������������������������������������������������������������������������������323


State-Driven State Transitions��������������������������������������������������������������������������324
Handmade State Machine���������������������������������������������������������������������������������328
Switch-Based State Machine����������������������������������������������������������������������������332
State Machines with Boost.MSM����������������������������������������������������������������������335
Summary����������������������������������������������������������������������������������������������������������339

ix
Table of Contents

Chapter 22: Strategy�������������������������������������������������������������������������341


Dynamic Strategy����������������������������������������������������������������������������������������������343
Static Strategy��������������������������������������������������������������������������������������������������348
Summary����������������������������������������������������������������������������������������������������������349

Chapter 23: Template Method�����������������������������������������������������������351


Game Simulation�����������������������������������������������������������������������������������������������351
Functional Template Method�����������������������������������������������������������������������������354
Summary����������������������������������������������������������������������������������������������������������356

Chapter 24: Visitor����������������������������������������������������������������������������357


Intrusive Visitor�������������������������������������������������������������������������������������������������358
Reflective Printer����������������������������������������������������������������������������������������������360
What Is Dispatch?���������������������������������������������������������������������������������������������363
Classic Visitor����������������������������������������������������������������������������������������������������365
Implementing an Additional Visitor��������������������������������������������������������������368
Acyclic Visitor����������������������������������������������������������������������������������������������������370
Variants and std::visit����������������������������������������������������������������������������������������374
Summary����������������������������������������������������������������������������������������������������������376

Index�������������������������������������������������������������������������������������������������377

x
About the Author
Dmitri Nesteruk is a quantitative analyst,
developer, course and book author, and
an occasional conference speaker. His
professional interests lie in software
development and integration practices in the
areas of computation, quantitative finance,
and algorithmic trading. His technological
interests include C# and C++ programming
as well as high-performance computing using
technologies such as CUDA and FPGAs. He
has been a C# MVP since 2009.

xi
About the Technical Reviewers
David Pazmino has been developing software applications for 20 years in
Fortune 100 companies. He is an experienced developer in front-end and
back-end development who specializes in developing machine learning
models for financial applications. David has developed many applications
in C++, STL, and ATL for companies using Microsoft technologies.
He currently develops applications in Scala and Python for deep
learning neural networks. David has a degree from Cornell University, a
masters from Pace University in Computer Science, and a masters from
Northwestern in Predictive Analytics.

Massimo Nardone has more than 25 years of experience in security, web/


mobile development, cloud, and IT architecture. His true IT passions are
security and Android. He has been programming and teaching how to
program with Android, Perl, PHP, Java, VB, Python, C/C++, and MySQL
for more than 20 years. He holds a Master of Science degree in Computing
Science from the University of Salerno, Italy.
He has worked as a CISO, CSO, security executive, IoT executive,
project manager, software engineer, research engineer, chief security
architect, PCI/SCADA auditor, and senior lead IT security/cloud/SCADA
architect for many years. His technical skills include security, Android,
cloud, Java, MySQL, Drupal, Cobol, Perl, web and mobile development,
MongoDB, D3, Joomla, Couchbase, C/C++, WebGL, Python, Pro Rails,
Django CMS, Jekyll, Scratch, and more.

xiii
About the Technical Reviewers

He worked as visiting lecturer and supervisor for exercises at the


Networking Laboratory of the Helsinki University of Technology (Aalto
University). He holds four international patents (PKI, SIP, SAML, and Proxy
areas). He is currently working for Cognizant as head of cyber security
and CISO to help both internally and externally with clients in areas of
information and cyber security, like strategy, planning, processes, policies,
procedures, governance, awareness, and so forth. In June 2017 he became
a permanent member of the ISACA Finland Board.
Massimo has reviewed more than 45 IT books for different publishing
companies and is the co-author of Pro Spring Security: Securing Spring
Framework 5 and Boot 2-based Java Applications (Apress, 2019), Beginning
EJB in Java EE 8 (Apress, 2018), Pro JPA 2 in Java EE 8 (Apress, 2018), and
Pro Android Games (Apress, 2015).

xiv
CHAPTER 1

Introduction
The topic of design patterns sounds dry, academically dull, and, in
all honesty, done to death in almost every programming language
imaginable – including programming languages such as JavaScript which
aren’t even properly OOP! So why another book on it? I know that if
you’re reading this, you probably have a limited amount of time to decide
whether this book is worth the investment.
The main reason why this book exists is that C++ is “great again.” After
a long period of stagnation, it’s now evolving and growing, and, despite
the fact that it has to contend with backward C compatibility, good things
are happening – they may not always happen at the pace we’d all like, but
this is a byproduct of the way the evolution of the C++ language standard is
structured.
Now, on to design patterns – we shouldn’t forget that the original
Design Patterns book1 was published with examples in C++ and Smalltalk.
Since then, plenty of programming languages have incorporated
design patterns directly into the language: for example, C# directly
incorporated the Observer pattern with its built-in support for events
(and the corresponding event keyword). C++ has not done the same, at
least not on the syntax level. That said, the introduction of types such as
std::function sure made things a lot simpler for many programming
scenarios.

1
 Erich Gamma et al. (1994), Design Patterns: Elements of Reusable Object-Oriented
Software, Addison-Wesley

© Dmitri Nesteruk 2022 1


D. Nesteruk, Design Patterns in Modern C++20,
https://doi.org/10.1007/978-1-4842-7295-4_1
Another Random Scribd Document
with Unrelated Content
that drove!”
He got out his pipe and lit it, while the horses switched flies patiently.
Then Niltci, who had been scouting through the bush, called to them
with a low grunt of eagerness. There seemed to be suppressed
excitement in it, too, and the tones of his voice thrilled Sid with a
nameless feeling as he urged his horse over to where Niltci stood,
pointing down at the track.
“Come over here, Father—for the love of Pete, look!” called Sid,
tingling with shivery sensations as he looked down from his horse at
a deep hollow in the needles, over which Niltci still stood, his wild
eyes snapping meaningly.
The Colonel came over and halted his horse. The track looked as if
someone had set down a long oval bowl there. It was all of fourteen
inches long, and the foot that made it had borne down so heavily that
a trilobed palm and the five toeprints, huddled together like a human
foot, were distinctly visible. And such toes! Each one was the size of
two human thumbs laid down together! Some distance beyond each
was a long, pointed gash in the soil at least five inches from base to
tip, the claw marks, all heading together.
“Good Lord! That’s more than a grizzly, Sid!” ejaculated the Colonel
after studying it awhile. “I tell you what!—in the old days we used to
have the giant yellow grizzly of California, a whale of a brute. He’d
carry off a whole horse, and many’s the cowman who has been
suddenly charged by one from ambush. The old boy wanted the
horse, but he didn’t mind fetching its rider a swipe, incidentally, that
knocked him into kingdom come. A .45-90,—even the old Sharps
.45-105 with the 550-grain bullet—never fazed him. That tribe of
grizzlies has been extinct since the early ’90’s in California, boys, but
I’ll miss my guess if here isn’t one! First track like this I’ve seen in
thirty years. Here, if anywhere, there’d be a few survivors. He’s my
meat, Sid! You got old Ring-Neck, up in Montana; this bird is mine!”
declared the old Indian fighter, his eyes flashing. “How old is that
track, Niltci?”
The Indian boy knelt down and smelled it for some time. Then he
raised his head and held up one finger.
“One day, eh? It’s a good thing we got two bucks, Sid. We’ll get one
of them out of here for camp meat and leave the other for bait.”
Niltci pointed silently into the bush ahead of him. Here was another
deep footprint, and, sighting along it, a dim line of them led up the
ravine flank. They followed slowly on the horses, who were shivering
and plunging violently, for even up to their nostrils had come that
faint grizzly odor that a horse fears above all other things. Up on the
ridge the track crossed bare rock, and on a little sandy spot a huge
track lay, a beautiful print, like an enormous, flat, stubby hand with
long, sharp, in-pointing nails for fingers. Beyond the ridge lay a
hideous gulch, a bad-land, all bowlders and scraggly pinyons,
twisting and writhing among the rocks in weird contortions. It would
invite a broken foreleg to attempt to work the horses in there.
“No use following him any further,” said Colonel Colvin as they
reined up to look it over. “We’d only leave our own scent around,—
though I doubt if he’d care any! We’ll go get the bucks.”
They retraced their way and went up on the hill. The Colonel’s buck
lay some fifty feet from where he had been hit, his double-Y antlers
and black crown proclaiming him a mule deer. Sid’s lay further up in
the bush and was a mere spikehorn.
“He’ll do fine for camp meat, though. Get him up, Sid; we’ll paunch
him somewhere away from here. The old yellow grizzly may clear
out, if there’s too much human sign around, but still, mighty few
people ever hunt this country and he may have that bad temper of
the old-timers.”
He halted his horse and looked over the scene, planning where to
locate his ambush and the probable course of the charge and battle
that would surely ensue if the first shot from the .35 did not prove
mortal. Sid and Niltci got up the buck and tied its legs to the saddle
thongs. Then they all rode back to camp, silent, subdued, thinking
over that twilight vigil of the Colonel’s by the bait, to come.
After rustling a meal, all three went out to the rim rock to await the
return of Scotty and Big John. It was nearly sunset before they heard
voices below, and then Big John’s sombrero—what was left of it—
appeared over the rim. His face was caked with dirt, bloody, and
streaked with sweat lines.
“Shore I ain’t got enough clothes left on me to flag a tote-train!” he
grinned, spitting the dust out of a grimy mouth as he turned to haul
on a bundle below him. “Hyar’s yore cat skin—I needs another skin
myself, b’gosh! Anyone which same wants a kitty out’n that canyon
kin go an’ get him, an’ keep right on goin’!—Thar!”—he gave the
rope a final haul and sat down on the brim with a mighty “Whoosh!”
of relief.
Scotty came up, pushing behind the bundle. He hadn’t a word, but
an unconquerable grin beamed out of his eyes. He flopped down on
the needles, and after him struggled Ruler, to lie down with his long,
red tongue hanging out and his sides panting. Pepper crawled over
the rim in his wake and curled up in a doggy heap of legs and ears,
licking morosely at various red wounds that gashed his sides and
thighs. The other two pups were yelping disconsolately at the foot of
the slide and Sid and Niltci sprang down to carry them up.
“Whoosh! That was reg’lar Bronx Park huntin’, I’ll say!” exclaimed
Big John, yawning, with a mighty stretch of his arms. “Where in
thunder was you-all? Scotty, here, got him.”
Sid grinned as he looked over the ragged assembly. Scotty was a
sight! He was covered with yellow dirt from head to foot; his
breeches were split wide open and a jagged red cut showed on his
thigh. Big John’s knees were bloody, with the fringes of his home-
spuns encircling them like whiskers. Ruler licked steadily at a great
red tear on his thigh where the skin hung open like a small hairy tent
flap, and shook his ears continually as they dripped blood from long
slits in them.
“Father couldn’t make it, boys,” he explained. “It takes a heart like a
hunk of sole leather to attempt the canyon. He was wise to stay out.
We turned back at the first rim, when you fellows and the dogs went
over the second. We’ve got a buck hanging up in camp.”
“Roast her whole, boys,—I could eat a rhinoc’ros raw!” gaped Big
John. “We’ve been climbin’ since ten o’clock ’smornin’. Lucky I
thought to take my rope down with me. We had to haul them dawgs
up the chutes, one at a time.”
Sid and Niltci picked up the cougar skin and the whole party started
for camp. An hour later a monumental mulligan, compounded of
cougar chunks, spuds, onions, peas, tomatoes and macaroni, boiled
in an eight-quart pail, was served. Big John and Scotty were still
prodding into the bottom of it with their spoons when Sid and Niltci
sat back utterly stuffed. The Colonel had long since departed for his
lonely vigil near the buck carcass, awaiting the coming of the Yellow
Grizzly.
They stretched out the cougar skin and measured it—nine feet two
inches, with three feet six of tail—but could get nothing but
uninterested grunts from those two, who still scooped in the mulligan
pail for more. Then Scotty and Big John rolled over without a further
word and fell sound asleep where they lay.
It was broad daylight when Sid awoke again, and the sun must have
been ten o’clock high. The Colonel had not returned. Scotty and Big
John slept heavily, for Nature had a lot of fixing up to do on them yet.
Niltci was gone. Sid hoped that he had tracked his father to the rocky
gulch, for he felt mighty uneasy about that great yellow bear of the
fourteen-inch track, with only a lone hunter to face him. All he had
ever read about the California Silver-Tip came to mind. The largest
one ever measured weighed 1,150 pounds and was nine feet from
nose to tail and over ten feet across the fore paws. That was as
large as any Alaska brown bear, yet with the ferociousness and
agility of the grizzly to back all that weight and strength. The Black
Panther would be a mere kitten compared to this brute! The average
Bengal tiger weighed 340 pounds and would go something over
eleven feet; the largest cougar was under three hundred pounds.
Even the Black Panther would not reach over three hundred, judging
from the skin of the cat Scotty had killed. The Yellow Grizzly was
three times as big as any of them, and quite as active and ferocious.
He doubted whether the .35 was rifle enough to stop him.
Sid had about decided to take Scotty’s .405 and try to ride to the
gulch to see what had happened, when he looked up, to see a
Navaho Indian standing silently before him. The man’s face looked
somehow familiar. Sid thought he recognized him as one of the
bucks at the Fire Dance, as the red man held out a grimy envelope
and proffered it with a bronzed and friendly smile.
Sid tore it open, although it was addressed to Colonel Colvin.
“Dear Colonel [it read]:
“All halleluiah has broken loose in wagon loads, here. I
hate to send for the Agent, and perhaps get out a troop of
soldiers, but I’ll have to do it if it gets much worse. The
Indians have spirited old Neyani off somewhere, and I
reckon they’ll make a sacrifice of him to appease Dsilyi in
spite of all I can do for him. I found a wild story about the
Black Panther having taken Niltci, the boy, when I got
here. You had left for the Canyon, but the Panther came
back only a few nights later and took another sheep from
Neyani’s corral. You can understand how the Indians took
that! They wanted to wipe out Neyani’s whole family. If I
had dogs I’d track that confounded cougar and do away
with him, somehow, but I can’t lay for him and shoot him
here or my influence over these redskins would be gone
forever. If you can break your hunt to come over here with
the dogs I would be eternally grateful. Meet me in Canyon
Cheyo, near the mouth of Monument Canyon, which is a
good landmark. I’ll be there, and we’ll put something over
on this superstitious bunch of redskins. I declare, I lose all
patience with them sometimes!
“Yours in haste,
“J. F. Hinchman, Maj. U. S. A. Ret’d.”
Sid made up his mind at once. It was necessary to get rid of the
Indian runner, first, so that their movements could be made
unwatched by the Navaho. He went to his tent and tore a fly leaf out
of a small leather notebook in his tent wall pocket. He wrote a brief
message that they were coming, rolled it small, and slipped it into an
empty rifle cartridge. Corking it with a bit of pine, he returned to hand
it to the runner.
“You take, White Father Hinch,” he ordered. “Pronto! Savvy? You got
meat and oats?”
The Indian shook his head, pointing to the small bag of meal at his
loin cloth. Sid cut him a flank from the buck, gave him a bag of oats
and a handful of cartridges for a present, and sent him on his way.
Then he saddled Pinto and rode toward the gulch, leaving Scotty
and Big John still snoring in camp.
He rode along the flanks of Buckskin, trying hard to remember the
lay of the ravines, even though he had passed through them twice
before. It was not easy. Several times he was sure he was lost, but
each time some familiar tree or rock formation reassured him and he
rode on. When he finally reached their ravine he was not sure of it,
even then. Scraggly pinyons covered its rocky slopes, but there were
dozens of others just like it, and there was absolutely nothing living
to be seen in it. But, as for men or animals, what are they in Nature’s
vast landscapes, where half a mile of verdure is tilted up as a mere
wrinkle in one of her mountains! Buckskin was twenty miles long, a
straight knife-edge as seen from across the canyon, cloud-covered,
dim, and distant, as inaccessible to the traveling world as the North
Pole, and it had hundreds of ravines like this.
Sid halted his pony, looking down into the ravine with half a mind to
push on further. Then a sort of break in the pinyons attracted his eye.
That was not natural; something lay there! He rode over to it, and
long before he reached it a great brown mass of fur appeared dimly,
huddled up in a mass of tough, craggy trees that had been broken
off like jackstraws. He dismounted and walked over to it with rifle at
ready, for by no urging would Pinto come a step nearer. The brown
mass did not move as he climbed through the crags toward it.
A shiver went through Sid. Why, this was the place the Colonel had
chosen for his hide! It was a hundred yards from where the buck lay,
down hill, there, on the ravine flank! Then he got sight of the animal’s
head. Big as a brown bowlder it was, with incurved snout-bone
doubled up on a great beard of furry whiskers. The great round ears
were erect, but the eyes were closed and a streak of blood ran from
under long, glistening tushes still bared in the snarl of death. It was
the Yellow Grizzly, Sid realized—but where was his father! He stood
looking over the carcass and peering about through the pinyons,
fearfully. There were cakes of matted blood all over the long hair on
the bear’s chest, and great cavities where the bullets had come out
on the other side, and there in that side was a knife, still buried to the
hilt—Niltci’s!
Sid looked around, bewildered. The pines were all torn and mangled
about him. There had been a terrific fight, here!
Then a feebly cry electrified him. “Water!” it called, more a moan
than an articulate voice.
Sid rushed over. Down in a pit of bowlders he saw the brown khaki-
clad back of a man, lying face downward doubled up on his side.
Those broad shoulders could be none other than his father’s, the
boy realized, as he scrambled toward the spot with sobs of anguish
welling up in him.
Gently he turned him over, and sat him up in a more comfortable
position. Down the Colonel’s side, from his shoulder to knee, he saw
a frightful row of red marks, as if some set of steel cultivator hooks
had gouged its way there. The rocks around were all red, and the
Colonel’s clothing was soaked and dripping.
But the old warrior’s eyes opened and looked at him steadfastly as
Sid slipped his arm tenderly behind his head, calling to him softly, the
tears raining down his cheeks. He motioned for water. Sid nodded
and raced to where he had tied Pinto. Ripping off the canteen from
the saddle hook, he dashed back and held its life-giving stream to
Colonel Colvin’s lips. Then he set about bandaging his claw wounds.
“Better now, Father?” asked Sid, tremulously, as he finished.
The Colonel opened his eyes again. “Niltci!” he gasped, waving his
arm feebly. “Don’t mind me—now.”
Sid rested him back, comfortably, and set out in the direction the
Colonel had indicated, searching the bowlders under the low
pinyons. Fifty feet further on, he made out a white cotton shirt lying
under the shade of a scraggy pine. One buckskinned leg was drawn
up in the act of creeping; the other lay limp and was red with blood.
“Gosh,—that boy would have crawled all the way to camp for help, if
he hadn’t fainted!” exclaimed Sid, as he rushed to him with his
canteen. “I need all kinds of help, here! It’s time I fired our signal.”
Niltci came to and grabbed at the canteen, his eyes speaking
volumes as he drank. Sid looked around. A glint of blue steel caught
his eye. It was the Colonel’s .35—with its stock smashed off close
behind the lever. Its magazine was empty, and he dared not move
the Colonel again to take more cartridges from his belt. He ran over
to the bear’s carcass, grabbed up his own Army .30, and raised it to
the sky.
“Bang! Bang! Bang!—Bang!” whipped out its sharp report.
CHAPTER X
THE DESERT’S FROWN

“STOP him!—Nothing stopped him!” smiled the Colonel wanly from


his bandages, as he eyed the huge skin of the Yellow Grizzly
stretched between four poles and propped up where he could look at
it and gloat over it. “Look at that skin—it’s a regular sieve!”
The boys and Big John sat against trees around the small camp fire
in front of the Colonel’s stretcher bed tent. It had been a strenuous
two days. First there had been, for Sid, those anxious hours of
waiting and signaling until at last Big John and Scotty had poked the
noses of their ponies over the ridge. Then the long trail home, with
two stretchers to carry, the bulk of which labor had fallen on Sid and
Big John, while Scotty led the horses. And then a feverish night in
camp, when both patients needed sitting up with and constant
attention. This second day had been spent in skinning out the grizzly
by Big John and Scotty, and in assiduous doctoring and splint-
making by Sid. And now, as sunset came, the huge pelt had been
set up for the Colonel to look at, and Sid had decided to let him talk.
“Yes, sir, that was the nearest I ever came to getting my everlasting!”
went on the Colonel. “With just two inches more reach he’d have
taken out every rib in my body. It was in the dim light before dawn,
boys, that I made him out, standing over the body of the deer. He
picked that buck up like a mouse and started lumbering off with it.
That gave me only a rear quartering shot, which is the very one to
make him most angry and do the least immediate damage. But it
was that or none, so I drew careful bead and fired.
“That started the fun, men!” said the Colonel, laughing feebly, after a
pause to get his breath. “He whirled about and started for me in
leaps that were twenty feet to the jump. It was the cursed wind that
did it. You know how it whirls and howls around Buckskin! Never the
same any two minutes. Some one of those back currents sweeping
down the mountain took my scent right to him. He didn’t want any
better guide!
“I think I missed my second shot,” went on the Colonel, “for he was
bounding up and down so over those bowlders, rearing and
bellowing like an express train as he came. But my third bullet took
him square between the eyes and doubled him up like the punch of a
battering-ram. He went over in a complete somersault, Sid. Did he
stay down? Any other creature in the world, even an African lion,
would have been scuppered by that shot, but that mountain of beef
got up and came right on, like a ton of hate. You know something of
the ferocity of that grizzly charge, Sid, and you, too, Scotty!
“The next shot was a heart shot and I was mighty careful of it, for I
had only about forty yards left——”
Big John nodded. “Shore ’twas a center shot, Colonel. That heart
was shot to ribbons when I took her out. I seen whar the bullet went
in, an’ got her out to see what ye done to him. Oughtta hev stopped
him, right thar.”
“Not for a minute! He squalled like a stuck pig, but hardly slackened.
I fired my last bullet at fifteen feet and then jumped back from the
cleft in the bowlders where I was hidden. He cleared the distance in
one bound and I saw that big right paw of his coming down on me
like the trunk of a tree. It smashed the rifle out of my hands. I felt like
a hot iron had ripped me from top to bottom as his claws raked down
inside my guard. I went over backward and then Niltci jumped in,
from God knows where, and his knife flashed up and into the bear’s
side. That’s the last thing I know about it, for I saw stars as my head
struck the rocks.”
“That blow knocked you about ten feet, Father, over the rock and into
a little hollow behind your hide,” said Sid. “As for Niltci, a back-hand
swipe from the bear splintered his leg like a straw. There wasn’t a
claw mark on him. The old yellow boy must have collapsed where he
lay, but he bit off and broke every pinyon tree in reach before he
gave up. Some charge! I’ll match him against any dangerous beast
the world over. I’d like to see a bunch of Masai tackle him with
spears, the way they do an African lion!—There would be mighty few
niggers left after he got through.”
The Colonel looked blissfully at the great yellow expanse of fur,
tipped with fine white at the end of each hair. “Boys, she’ll about
cover the floor of the Den back home!” he exclaimed. “I’ve met a
good many bears in my time, but our cavalry troop never got over
into southern California, although we heard a good deal about those
big demon grizzlies there. Even the modern .35 is not gun enough,
I’ll say! The old buckskin pioneers must have had their hands full
with them!”
Sid now brought up the matter of Major Hinchman’s letter, for it was
essential to move quickly about that business.
“The thing to do, as I see it, Father, is for Scotty and Big John and
myself to take the dogs over there, right now. We know where the
Black Panther hangs out, which the Major doesn’t. He and Big John
can run him with the hounds, while Scotty and I climb up by the lariat
into Lost Canyon and wait there until he comes. There must be a
kiva or underground secret society cave somewhere in that pueblo.
We’ll drop the carcass down there, so it will disappear forever. Then
Major Hinchman can fix up some sort of a yarn that will take with the
Indians, and the whole affair will blow over if the Black Panther don’t
come any more. Niltci will be able to creep around and look after you
and the camp in a day or so, and there’s plenty of meat and
provisions. We can get back in about a week.”
The Colonel ruminated over it for some time. “Looks good, Sid. The
less Niltci and I move around the better. I ought to be fairly well
healed in a week, and the splints you put on the Indian boy will let
him get about if you make him a pair of crutches. We’ll make out! As
for the Black Panther skin, it would be a wonderful trophy, but you
couldn’t ship it out of Arizona without the game warden examining it,
and then word of it would get back to the Indians. For Hinchman’s
sake the only thing to do is to abolish it. Well—you might as well get
organized for the trip, Sid.”
He closed his eyes as if tired out with the effort. Sid and Scotty went
to their tent, where lay Niltci. On being told that they were going to
leave for a long trip, the Indian boy insisted on having a browse bed
made for him under the Colonel’s shelter, where he could attend to
him. A shy and childlike adoration for the old army officer seemed to
have grown up in the Navaho lad; there was nothing he could do that
would repay the debt he felt he owed the Colonel for saving him from
the fanaticism of his own kinsfolk. This feeling he managed to
convey in expressive sign language, accompanied by what few
English words he knew. So, while Big John mended horse gear and
got the outfits together, the boys spent the evening in making Niltci a
pair of rude crutches and moving him out where he and the Colonel
could run their own hospital together.
Next morning the boys turned out, to find the Colonel and Big John
talking earnestly in low tones together. Sid knew from their serious
faces what they were discussing—water. The boys hovered around
to listen, for both men were old desert campaigners and a long
experience backed their words.
“You can’t make time and take any of the pack animals, John,” the
Colonel was saying. “Yet that water hole may be dry, or all green
scum not fit to drink, at this time of the year. Ten gallons a day is the
very least the horses can make out on. If you fill up at that tank you
can push along and reach Canyon Cheyo by evening of the second
day. I have only two water bags. Five gallons each. You’ll have to
sling them to Scotty’s saddle bags, for he is the lightest. You can
carry two quart canteens each, using all our spare ones. See that
they are well-corked, for they will be half rations at the best. No use
striking for the San Juan. It is really as far up there as over the
desert to Red Valley.”
“You leave it to me, Colonel,” broke in Big John, emphatically. “I don’t
want no pack horse totin’ water. I’ll rig them bags, an’ we’ll roll our
freight outer here an’ squeeze the dern water out of that desert if we
have to!”
The boys made up their own rolls and saddle bags with a sense of
the seriousness of their undertaking. To cross that desert without
either packing or wagoning an ample supply of water was no joke. If
all went well and they kept a good pace, they could make what water
they could carry do. If stopped anywhere, any way, by a sandstorm,
for instance—it made them thirsty just to think of it!
As they filed out of camp Scotty rode the Colonel’s big roan, for he
could easily carry the boy’s weight and the extra eighty pounds of
water in the canvas bags. The rest of the party were loaded up with
bags of oats in addition to their own outfits.
At the ferry the old-timers shook their heads when the water bags
and canteens were filled for their dash. It couldn’t be done—that was
certain as death! But there was too much at stake to turn back. They
alone could solve Major Hinchman’s Indian troubles, and they
weren’t going back on the Colonel’s old army chum, no matter what
the risk.
Once across the Colorado the horses cantered off briskly, snorting
and whickering with good spirits. They had been filled up with all the
water they could hold and it was yet early morning, keen and cool.
The steep climb up the red buttes that led over the divide to the flat
country north of the mesas began. Then came sand, valleys and
valleys of it, with scant vegetation, dry, arid and desolate. That loose
sand was particularly hard on the dogs. Lee had been left behind in
camp, for he was too long-coupled to have the needful endurance,
but Pepper and Bourbon, they had felt, would be worth taking. Ruler
seemed made of iron, as he rambled right along through it. He
evidently appreciated his responsibilities, for if either Pepper or
Bourbon attempted to lag he was behind them with ready snarl and
snapping teeth that drove them flying onward. At noon the party
halted and doled out their first water. It worried the boys to see how
greedily the horses sucked down their allotments of half a canvas
pail each and then whickered and bit for more. The dogs nearly
came to a fight over theirs, and each had to be held by his collar to
prevent him from flying at the drinking one.
By evening the horses had slowed to an exasperating walk and the
dogs limped painfully. Down into a hideous gulch Big John led the
party. It was out of the wind, but dry as the Sahara. Here they made
their first dry camp. The first water bag had gone flat and the second
was already alarmingly lean. Sid shook his canteen. There was but a
drop or two in the one on the off hook, and again he felt the cork of
the other to make sure that it had not come out. He had gotten
through the day on schedule. They were all right, provided——
That night he woke up with the cold. That was unusual, in itself, for
that bag was good down to below freezing. Sid uncovered the flap
and looked out. The stars were obscured, and a steady stinging sift,
sift, sift of sand went on all around him. He could hear that faint,
continuous hiss and ticking, and, attempting to move in his bag he
was surprised to note it heavy as lead and immovable.
“Sounds like the beginning of a sandstorm to me,” he murmured to
himself. “I’d better wake John, so we can all turn out and look after
the horses.”
He crawled out of his bag and punched Big John awake. The keen
wind blew steady and strong, chilling him to the bone, while blown
sand gritted in his teeth. It did not take the big plainsman more than
one sniff to bounce out of his mess of blankets, wide awake.
“Shore it’s a reg’lar night-bloomin’ swozzle a-comin’, Sid! Let Scotty
lie. We’ll git the hosses in under the shelter of the buttes.”
Out in the cold gloom they found the animals, standing patiently with
their sides to the wind. Pulling up their picket pins, they herded them
into a sort of shelf where a great rock wall jutted out in a weird, wind-
scoured formation, like a vast top on end.
“She’s goin’ to hum fit to blow the shingles off a barn, pronto, an’
we’ll all be buried in sand,” said Big John cheerfully. “You an’ I gotta
rig a tarp up here in these rocks, old-timer, before we hits the hay
ag’in.”
Sid was shivering like a leaf. He ran for his saddle roll and slipped on
the fleece-lined coat, glad of its shelter. Then they unrolled the tarp,
fighting it in the wind and the dark like some wild thing, until it was
finally anchored and rose at a steep slant like a sort of bear den.
Under it they laid their sleeping rigs and then picked up Scotty, bag
and all, and carried him over. Aside from a sleepy grunt or two, he
slept right through it! The dogs were glad enough to follow them in
and curl up again, backed up against the sleeping bags.
“You remember how we batted the snow off the rag house walls up
in Montana, Sid?” queried Big John as he crawled into his bag again.
“Waal, same stunt here. Reach up an arm an’ hit her a good poke
when she sags too much. There won’t be nawthin’ but sand
hyarabouts, come morning.”
They dozed off to sleep. Sid awoke before dawn with a sense of
some great body pressing down on him. A howling tempest was
raging down the gulch; sand in sheets and clouds swirled by.
Overhead the tarp sagged down on them all, and, pushing up on it,
he found it immovable. His exertions wakened Big John and
incidentally jammed an elbow into Scotty’s face so that that
exemplary sleeper arose, spluttering and spitting sand out of his
mouth.
“Wh—wha—what’s happenin’?” he mumbled. “I dreamed the Grand
Canyon had caved in on me——”
“Sho’ has! Turn out an’ shove, old settler,” grunted Big John as the
three put their shoulders to it. There seemed to be a ton of sand on
that roof, and it would not slide off in the docile way that snow did. It
lay heavy and inert, to sag back again as soon as a shoulder was
withdrawn.
“Say!” grinned Big John, his dusty eyes sparkling at them from where
he sat humped up under the immovable tarp, “if that Atlas feller done
this fer a job, that will be about all for Atlas!—gimme them rifles,
boys, we’ll stick ’em up for sort of mine props.”
They tugged the weapons, in their leather scabbards, up out of the
bedding, and with them propped up the roof. There was a chance
now to look about. A fine dust filled the tent; just out in front a smooth
hummock of sand like a snowdrift had accumulated. Beyond roared
the wind in a monstrous shout, in a fury awful and unending, and the
dim light of dawn showed a yellow and opaque void all around them.
“Waal, we’re alive, an’ that’s a mercy!” drawled Big John as the boys
prepared to curl up in their bags again. “No water to-day, boys. We
ain’t doin’ nawthin’, and we don’t drink nawthin!—See?”
The stern iron tones of his voice told them that that was an order,
peremptory as death! Sid curled up and tried to forget that he was
alive. An hour later he looked out. There was no change, except a
greater and yellower light, showing that the sun was busy
somewhere high above all this. But, off to the left, right near the lean-
to, were three large, indistinct objects, all in a row, that he finally
perceived were their horses. Sid’s heart smote him. More than any
speech was the dumb appeal of those three heads! They were
asking their men for water—and not getting it! Unmoved they stood
there, patient, but eager. If one whinnied, the sound was lost in the
howl of the storm. Sid thought of his own canteen grimly. Not until
they moved would man or beast touch water again! It was precious
as dear life, now.
About eleven o’clock the storm blew out. Their first intimation of it
was a dazzling yellow haze, rapidly thinning the murk of sand dust
and as rapidly showing the details of rock and gulch near by in the
desert. The dust thinned out, and blue sky began to develop
overhead, and then the whole yellow cloud drifted off north and they
could dash out of their shelter and begin digging the sand off saddles
and equipment.
“Ramble, fellers!—Ramble!” whooped Big John, yanking his saddle
up out of the heap of sand that buried all the horse gear. “We’ll roll
our freight out of here for Misery Tank, plumb pronto! We jest gotta
git thar, come night, for—here goes the last of our water for the
hosses!”
Their second water bag collapsed flat, as a scant half pail was drawn
from it for each of the three horses. The dogs got a remnant that was
left, and then it was rolled up and stowed as of no further use. With
eager haste the saddles were cinched, cantle rolls made up, and rifle
scabbards slung. Then with a leg over and a chirrup to the dogs,
they rode out of “Thirsty Gulch,” as Big John had named it.
Sand, sand, sand; and miles, miles, miles! Black Mesa passed them
to the south, and then came a great cliff with wavy stratified lines
streaked across its face and flowering plants nearly buried in sand
strewing the slopes that led up to it. The horses whinnied and started
on the first real run they had made that day. They smelled water, and
it did not need Big John’s finger pointing to a deep rocky chasm
under the cliff to tell where it lay. A rippled slope of white sand led up
to it—and then the boys reined up with a cry of dismay. The tank was
filled to the brim with white sand drift!
CHAPTER XI
WHITE MESA

“WHOA, thar, pards! The world ain’t fell over the moon, jist yet!”
guffawed Big John at their blank faces. “She’s thar, boys, only you’ve
got to dig fer her. This desert’s full of them little tricks on the pore
tenderfoot.”
He got out his camp plate from a saddle bag and started digging.
Ruler and the dogs were already shoveling industriously with eager
paws, for their noses smelled the water. Sid grabbed out his plate
and fell to, while Scotty held back the horses to keep them from
burying their hoofs to the fetlocks in the sand and packing it too tight
to dig.
After a time it came out damp, then moist, then wet mud. Big John
hove out the dogs and stood Sid aside, as they all watched the deep
hollow they had made, nine pairs of eyes all trained on the one
object of most engrossing interest in all the world,—the seepage of
an almost invisible puddle of cool, clear water!
“Git me the canvas pail, an’ a cup, Sid—the hosses is first. Git outer
thar, Ruler, you ole potlicker!” he roared, batting back the persistent
hound. Scotty was struggling with the horses, jamming back on their
curbs as they plunged and pawed, wild to get down into the sand
and drink, drink, drink! Then three equine noses shoved urgently,
fiercely at them, as a few cupfuls in a canvas pail were passed up.
“This is nawthin’, boys!” grinned Big John, as the impatient animals
were being watered. “Onct I hed to save myself by cuttin’ open a
bisanaga cactus and go to poundin’ the inside with a club. Thet pulp
is full of sweet water, an’ ye squeezes out the pulp an’ throws it away
ontil ye hev maybe a pint of good clear water to drink. No old-timer
dies of thirst, the way them writers is allus makin’ ’em do, down
south in the barrel cactus country!”
It was all of two hours later when the last of the water bags was filled
and the party set off toward the southeast. If no accident befell they
had water enough for the run to Los Capitanos del Canyon, where a
blessed brook awaited them. The sandstorm had delayed them one
day; the whole party were now worried lest they should be too late,
for Neyani’s fate hung in the balance, and, perhaps, also that of
Niltci’s mother and his sister.
“That thar letter says the Injuns has took ’em off, somewhere, don’t
it, Sid?” asked Big John as they discussed the matter, urging the
horses along. “Waal, it’s a leetle deetour over to White Mesa, but I’m
going thar, boys. That’s a sacred spot to them Navaho; they’re scairt
to death of it, an’ think it’s full of ghosts, but the hull tribe sometimes
comes thar to pull off some reeligious stunt, each brave sorta
bolsterin’ up the other’s courage. It’s just whar they mought take ole
Neyani—an’, of course, the Major, he couldn’t do nawthin’ but follow
an’ try to talk some sense inter them, ef he heard tell that was whar
Neyani was.”
“I’ve heard of the Enchanted Mesa,” replied Sid. “The Navaho call it
the ‘Judgment Throne of the Ghosts,’ don’t they?”
“I dunno. It’s a skeery place to go by, in the moonlight, even for a
white man. It’s as full of howls and roars, and the awfullest sounds a
body ever listened to,” said Big John. “But I’ll bet my ol’ lid thet that’s
whar Neyani is, right now!”
After an hour’s riding White Mesa itself jutted up, in a long
escarpment, shimmering with heat, in the immense distances. As
they gradually neared it Sid felt that never had he beheld such a
place. The odd chalky formation rose in ramparts and pinnacles, like
bastions of huge whitened giant’s bones. By moonlight one could
well expect to see whole regiments of bleached skeletons of
departed Indians skipping across it. But there were living beings
there, now!
“What did I tell you?” chortled Big John. “Them little moving dots
along the base is Injuns, on their ponies. Somethin’ doin’, thar, boys!”
As they rode nearer to the blazing white sepulcher the moving dots
showed color and took form. They were the Navaho, a lot of them.
Soon some stopped to look at them and there was a commotion
among the tiny black figures. Then a lone rider galloped furiously out
toward them, mounted on a large black horse.
“That’s no Injun, an’ no pony—it’s Major Hinchman himself!”
exclaimed Big John as the rider streaked out toward them.
The man waved his sombrero. “Hi! Hi!—Back!—Halt!” he called
excitedly as he thundered toward them.
“Yaas—we’re haltin’, a lot!” muttered Big John as they all reined up
and he called back Ruler. “Wonder what’s up?”
“Hi!—Is that you, boys?—Howdy, strangers—get right down!” yelled
the white giant on the horse, for it was Hinchman himself. “Jee-
mentley-dingit, but it’s a mercy of Providence that you-all happened
to come this way!” he exploded as he rode up close. “I couldn’t have
met you at Monument Canyon with this coming off. But I see you’ve
got the dawgs—Jeementley but they look good to me! Whar’s the
Colonel, Sid?”
“Father’s laid up, sir, over in the Grand Canyon,” explained Sid. “Had
a mix-up with a whale of a grizzly and got mauled some, but he’ll be
all right, soon. It’s an old-time California silver-tip, Major, the biggest
bear I ever saw. Got him in back of Buckskin. Niltci’s looking after
father, while we came over——”
“Niltci! Eh? Splen—did!” beamed Major Hinchman, his keen face
lighting up with joy and relief. “You don’t tell me! Nothing on earth
can convince these Injuns but that the Black Panther came and took
him that night——”
The boys laughed, and Big John grinned sheepishly. At the Major’s
questioning glance he told him just how that affair really was
managed. Hinchman howled with delight. “Better and better and
better!” he cried, his eyes snapping with pleasure. “You see, boys,
since you have been gone the Black Panther has been visiting all the
Navaho sheep corrals—— I suppose the dogs running him scared
him off Neyani’s—but anyhow he’s become a regular plague. The

You might also like