100% found this document useful (1 vote)
30 views

Object Oriented Programming and Java Second Edition Danny Poo - The ebook is ready for download with just one simple click

The document provides information about the book 'Object Oriented Programming and Java Second Edition' by Danny Poo and others, including download links and ISBN details. It also lists additional recommended books on object-oriented programming and Java. The content includes a detailed table of contents covering various aspects of object-oriented programming, Java concepts, and practical implementations.

Uploaded by

ajijivoinea62
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
30 views

Object Oriented Programming and Java Second Edition Danny Poo - The ebook is ready for download with just one simple click

The document provides information about the book 'Object Oriented Programming and Java Second Edition' by Danny Poo and others, including download links and ISBN details. It also lists additional recommended books on object-oriented programming and Java. The content includes a detailed table of contents covering various aspects of object-oriented programming, Java concepts, and practical implementations.

Uploaded by

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

Visit ebookfinal.

com to download the full version and


explore more ebooks or textbooks

Object Oriented Programming and Java Second


Edition Danny Poo

_____ Click the link below to download _____


https://ebookfinal.com/download/object-oriented-programming-
and-java-second-edition-danny-poo/

Explore and download more ebooks or textbook at ebookfinal.com


Here are some recommended products that we believe you will be
interested in. You can click the link to download.

Object Oriented Programming using Java 1st edition Edition


Kendal S.

https://ebookfinal.com/download/object-oriented-programming-using-
java-1st-edition-edition-kendal-s/

Object Oriented Software Engineering Practical Software


Development using UML and Java Second Edition Timothy
Lethbridge
https://ebookfinal.com/download/object-oriented-software-engineering-
practical-software-development-using-uml-and-java-second-edition-
timothy-lethbridge/

Object oriented Design in Java 1st Edition Stephen Gilbert

https://ebookfinal.com/download/object-oriented-design-in-java-1st-
edition-stephen-gilbert/

Beginning C Object Oriented Programming 2nd Edition Dan


Clark

https://ebookfinal.com/download/beginning-c-object-oriented-
programming-2nd-edition-dan-clark/
Python 3 Object Oriented Programming 1st Edition Dusty
Phillips

https://ebookfinal.com/download/python-3-object-oriented-
programming-1st-edition-dusty-phillips/

Beginning C Object Oriented Programming 1st Edition Dan


Clark

https://ebookfinal.com/download/beginning-c-object-oriented-
programming-1st-edition-dan-clark/

Object oriented Programming with Smalltalk 1st Edition


Harald Wertz

https://ebookfinal.com/download/object-oriented-programming-with-
smalltalk-1st-edition-harald-wertz/

Object Oriented Programming in VB Net 1st Edition Alistair


Mcmonnies

https://ebookfinal.com/download/object-oriented-programming-in-vb-
net-1st-edition-alistair-mcmonnies/

Beginning Object Oriented Programming with C 1st Edition


Jack Purdum

https://ebookfinal.com/download/beginning-object-oriented-programming-
with-c-1st-edition-jack-purdum/
Object Oriented Programming and Java Second Edition
Danny Poo Digital Instant Download
Author(s): Danny Poo, Derek Kiong, Swarnalatha Ashok
ISBN(s): 9789813083967, 9813083964
File Details: PDF, 5.32 MB
Language: english
Object-Oriented Programming and Java
Danny Poo • Derek Kiong •
Swarnalatha Ashok

Object-Oriented
Programming
and Java
Second edition
Dr Danny Poo Dr Derek Kiong
School of Computing Institute of Systems Science
National University of Singapore, Singapore National University of Singapore, Singapore

Ms Swarnalatha Ashok
Institute of Systems Science
National University of Singapore, Singapore

British Library Cataloguing in Publication Data


A catalogue record for this book is available from the British Library

Library of Congress Control Number: 2007934261

ISBN-13: 978-1-84628-962-0 e-ISBN-13: 978-1-84628-963-7


First edition © Springer Singapore 1998; 978-981-3083-96-7

Printed on acid-free paper

© Springer-Verlag London Limited 2008

Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted
under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced, stored or
transmitted, in any form or by any means, with the prior permission in writing of the publishers, or in the
case of reprographic reproduction in accordance with the terms of licences issued by the Copyright
Licensing Agency. Enquiries concerning reproduction outside those terms should be sent to the publishers.

The use of registered names, trademarks, etc. in this publication does not imply, even in the absence of a
specific statement, that such names are exempt from the relevant laws and regulations and therefore free for
general use.

The publisher makes no representation, express or implied, with regard to the accuracy of the information
contained in this book and cannot accept any legal responsibility or liability for any errors or omissions that
may be made.

9 8 7 6 5 4 3 2 1

Springer Science+Business Media


springer.com
Table of Contents

Preface to 1st Edition xiii


Preface to 2nd Edition xv
Overview xvii
Acknowledgement xix

1 Introduction 1
1.1 Object-Oriented Programming 1
1.2 Objects and Their Interactions in the Real World 2
1.3 Objects and Their Interactions in Programming 3
1.4 Simulation 3
1.5 Java 4
1.6 Summary 4
1.7 Exercises 5

2 Object, Class, Message and Method 7


2.1 Objects and Class 7
2.2 Message and Method 9
2.2.1 Message Components 10
2.2.2 Method 10
2.2.3 Client and Server 11
2.3 Creating Objects 12
2.4 Summary 14
2.5 Exercises 14

3 A Quick Tour of Java 17


3.1 Primitive Types 17
3.2 Object Definition 18
3.2.1 Variable Definitions 18
3.2.2 Methods 19
3.3 Object Instantiation 20
3.4 Object Access and Message Passing 21
3.5 Representational Independence 21
3.6 Overloading 22
3.7 Initialization and Constructors 23
vi Table of Contents

3.8 Expressions, Statements, and Control-flow Mechanisms 24


3.8.1 Operators 24
3.8.2 Expression Statements 30
3.8.3 Control-flow Statements 30
3.9 Blocks 32
3.9.1 Local Declarations 32
3.10 More Control-flow Statements 33
3.11 Arrays 34
3.12 Result Returned by Method 35
3.13 Summary 36
3.14 Exercises 36

4 Implementation in Java 39
4.1 Calculator 39
4.1.1 The clear() Method 40
4.1.2 The display() Method 41
4.1.3 The digit() Method 41
4.1.4 Operator Methods 41
4.2 Code Execution 42
4.3 Simple User Interface 44
4.4 Another Interface for CalculatorEngine 46
4.4.1 Event-Driven Programming 48
4.5 Summary 49
4.6 Exercises 49

5 Classification, Generalization, and Specialization 51


5.1 Classification 51
5.2 Hierarchical Relationship of Classes 53
5.2.1 Superclass and Subclass 53
5.2.2 A Class Hierarchy Diagram 54
5.3 Generalization 55
5.4 Specialization 56
5.5 Organization of Class Hierarchy 56
5.6 Abstract and Concrete Classes 57
5.7 Summary 58
5.8 Exercises 58

6 Inheritance 61
6.1 Common Properties 61
6.2 Inheritance 62
6.3 Implementing Inheritance 64
6.4 Code Reuse 67
Table of Contents vii

6.5 Making Changes in Class Hierarchy 67


6.5.1 Change in Property Definition for
All Subclasses 67
6.5.2 Change in Property Definition for Some
Subclasses 68
6.5.3 Adding/Deleting a Class 72
6.6 Accessing Inherited Properties 75
6.7 Inheritance Chain 75
6.7.1 Multiple Inheritance 76
6.7.2 Problems Associated with Multiple Inheritance 77
6.7.3 Contract and Implementation Parts 79
6.7.4 Contract and Implementation Inheritance 79
6.8 Interface 80
6.8.1 Multiple Inheritance Using Interface 80
6.8.2 Attributes in an Interface 83
6.8.3 Methods in an Interface 83
6.8.4 Abstract Class and Interface 83
6.8.5 Extending Interface 84
6.8.6 Limitations of Interface for
Multiple Inheritance 85
6.9 Summary 88
6.10 Exercises 89

7 Polymorphism 93
7.1 Static Binding 93
7.2 Dynamic Binding 96
7.3 Operation Overloading 97
7.3.1 Same Method Signature 97
7.3.2 Overloading Method Names 98
7.4 Polymorphism 100
7.4.1 Selection of Method 100
7.4.2 Incremental Development 101
7.4.3 Increased Code Readability 102
7.5 Summary 102
7.6 Exercises 102

8 Modularity 103
8.1 Methods and Classes as Program Units 103
8.2 Object and Class Properties 103
8.2.1 Counting Instances 104
8.2.2 Shared Attributes 106
8.2.3 Class Attributes 107
viii Table of Contents

8.2.4 Class Methods 107


8.2.5 Name Aliases 108
8.3 Controlling Visibility 108
8.4 Packages 110
8.4.1 The package Keyword 110
8.4.2 The import Keyword 110
8.5 Encapsulation 111
8.5.1 Bundling and Information Hiding 112
8.5.2 Enhanced Software Maintainability 112
8.5.3 Trade-Off 115
8.6 Summary 116
8.7 Exercises 117

9 Exception Handling 119


9.1 Using Exceptions 119
9.2 Exception Terminology 120
9.3 Constructs and Exception Semantics in Java 120
9.3.1 Defining Exception Objects 121
9.3.2 Defining Exception Handlers 121
9.3.3 Raising Exceptions 122
9.4 A Simple Example 123
9.5 Paradigms for Exception Handling 125
9.5.1 Multiple Handlers 125
9.5.2 Regular Exception Handling 127
9.5.3 Accessing Exception Objects 128
9.5.4 Subconditions 128
9.5.5 Nested Exception Handlers 129
9.5.6 Layered Condition Handling 130
9.6 Code Finalization and Cleaning Up 130
9.6.1 Object Finalization 131
9.6.2 Block Finalization 131
9.7 Summary 132
9.8 Exercises 133

10 Input and Output Operations 135


10.1 An Introduction to the Java API 135
10.2 Reading the Java API Documentation 136
10.3 Basic Input and Output 138
10.4 File Manipulation 141
10.4.1 File Input 142
10.4.2 File Output 143
10.4.3 Printing Using PrintStream 144
Table of Contents ix

10.5 Framework for Code Reuse 145


10.6 DataInputStream and DataOutputStream Byte
Stream Class 147
10.7 Character Stream Classes 148
10.8 Tokenizing the Input Using the Scanner Class 150
10.9 Formatting the Output Using the Format String 151
10.10 The File Class 152
10.11 Random Access File Operations 152
10.12 Summary 153
10.13 Exercises 153

11 Networking and Multithreading 155


11.1 The Network Model 155
11.2 Sockets in Java 156
11.2.1 Example Client: Web Page Retriever 157
11.3 Listener Sockets in Java 161
11.3.1 Example Server: Simple Web Server 161
11.3.2 Running the Web Server 164
11.4 Considering Multiple Threads of Execution 165
11.5 Creating Multiple Threads of Execution 166
11.5.1 Thread Creation Using the Thread Class 166
11.5.2 Thread Creation Using the
Runnable Interface 168
11.6 Improvement of Web Server Example 168
11.7 Thread Synchronization and Shared Resources 169
11.8 Summary 175
11.9 Exercises 176

12 Generics and Collections Framework 179


12.1 Introduction 179
12.2 Rationale Behind Generics 179
12.2.1 The Problem 180
12.2.2 Run-time Type Identification (RTTI) 182
12.3 Java Generics 183
12.3.1 Generic Class 183
12.3.2 Generic Method 185
12.4 Collections Framework 186
12.4.1 Collections Interface 186
12.4.2 ArrayList Class 187
12.4.3 HashSet Class 190
12.4.4 HashMap Class 194
12.5 Sorting Collections 196
x Table of Contents

12.5.1 Sort Algorithm 196


12.5.2 Comparator Interface 197
12.6 Searching Collections 198
12.6.1 indexOf and contains Methods 198
12.6.2 binarySearch Method 198
12.7 Summary 199
12.8 Exercises 199

13 Graphical Interfaces and Windows 201


13.1 The AWT Model 201
13.2 Basic AWT Constituents 202
13.2.1 Frames 203
13.2.2 Components 204
13.2.3 Panels 205
13.2.4 Layout in Panels 206
13.2.5 Events 209
13.2.6 Events in JDK 1.1 (and later versions) 212
13.3 Basic Components 214
13.3.1 Label Component 214
13.3.2 Button Component 215
13.3.3 Checkbox Component 215
13.3.4 CheckboxGroup Component 215
13.3.5 TextArea Component 216
13.3.6 Choice Component 217
13.3.7 List Component 218
13.3.8 Menus and Menu Items 219
13.3.9 Dialog Frames 221
13.3.10 File Dialog Frames 223
13.4 Custom Components 224
13.5 Other Kinds of Class Definitions 226
13.5.1 Inner Classes 227
13.5.2 Anonymous Classes 227
13.5.3 Local Classes 228
13.6 Swing Components 230
13.6.1 Transiting from AWT to Swing 231
13.6.2 Model versus View 234
13.7 Summary 235
13.8 Exercises 236

14 Applets and Loaders 237


14.1 Applet Characteristics 237
14.2 Applet Life Cycle 241
Table of Contents xi

14.3 Custom Applets 242


14.4 Images and Audio 243
14.5 Animation in Applets 245
14.6 Efficient Repainting 247
14.7 Applet Parameters 248
14.8 Loading Code Dynamically 250
14.9 Security Restrictions for Untrusted Code 253
14.9.1 Security Policy 255
14.9.2 Keys 256
14.9.3 Permissions 256
14.10 Summary 258
14.11 Exercises 258

15 Java Servlets 259


15.1 Dynamic Web Pages and Servlets 259
15.2 Tomcat Installation 260
15.2.1 Downloading and Installation 260
15.2.2 Configuration 261
15.2.3 Starting and Stopping Tomcat 262
15.3 Sample Servlet 263
15.4 Servlet Characteristics 266
15.5 Servlet Paramters and Headers 266
15.6 Servlet Output 271
15.7 Handling Sessions 271
15.7.1 Session Timeout 274
15.8 Concurrency 274
15.9 Customized Processors 274
15.10 Summary 276
15.11 Exercises 277

16 Object Serialization and Remote Method Invocation 279


16.1 Object Serialization 279
16.2 Components in Object Serialization 281
16.3 Custom Serialization 281
16.3.1 The Externalizable Interface 284
16.4 Distributed Computing with Java 284
16.4.1 RMI and CORBA 285
16.4.2 Java Limitations 285
16.5 An Overview of Java RMI 286
16.6 Using Java RMI 287
16.6.1 Setting Up the Environment on Your
Local Machine 287
xii Table of Contents

16.6.2 How RMI Works 287


16.6.3 An RMI Example 288
16.7 RMI System Architecture 289
16.8 Under the Hood 291
16.9 RMI Deployment 293
16.10 Summary 295
16.11 Exercises 295

17 Java Database Connectivity 297


17.1 Introduction 297
17.2 Java Database Connectivity 297
17.3 JDBC Architecture 298
17.4 JDBC Drivers 298
17.4.1 Types of Drivers 299
17.5 JDBC APIs 302
17.5.1 Establishing a Connection 302
17.5.2 Data Manipulation 303
17.6 Data Definition Language (DDL) with JDBC 305
17.6.1 Creating a Table 305
17.6.2 Dropping a Table 306
17.7 Data Manipulation Language (DML) with JDBC 307
17.7.1 Creating (Inserting) Records Using JDBC 307
17.7.2 Deleting Records Using JDBC 307
17.7.3 Retrieving Records Using JDBC 307
17.7.4 Updating Records Using JDBC 309
17.7.5 Updatable Result Sets 310
17.7.6 Prepared Statements 311
17.8 Summary 313
17.9 Exercises 313

Index 315
Preface to 1st Edition

Control abstraction was the message of the first programming revolution seen in
high-level programming languages such as Algol and Pascal. The focus of the next
revolution was data abstraction, which proposed languages such as Modula and Ada.
The object-oriented revolution began slowly in the 1960s with the programming
language Simula, but moved onto more languages such as Smalltalk, Objective-C
and C++. Java is almost a hybrid between Smalltalk and C++, and has gained
widespread acceptance due to its association with the Internet, its availability to a
large user base and reusable libraries for programming in a graphical environment.
Our programming lineage has passed through Pascal, C and C++. As with
many other programmers, good run-time checks with automatic memory manage-
ment and a reusable API made Java a very attractive option. After a half-day on the
original Java Whitepaper and the early Java online tutorial, we were sold on the Java
bandwagon and already writing code. In another two days’ time, we were using
the Abstract Windowing Toolkit (AWT) package for graphical applications. In
situations where there is no large investment into older languages, we are quite
happy to abandon them completely.
Effective programming in Java comes from understanding three key areas –
object-oriented concepts, the syntax and semantics of the Java programming language
and the Java Application Programming Interface (API). This is our emphasis when
we conduct professional courses, and in this book as well.
Much of the material in this book is based on previous courses which we
have conducted over the past two years to the industry and the National University
of Singapore (NUS). Courses conducted for the industry last about 5 to 7 days,
depending on the amount of coaching that participants require. In the Department of
Information Systems and Computer Science at NUS, a course on “Object-Oriented
Methods” runs over 13 weeks.
As you might have noticed, we have taken to Java as ducks to water. Java has
allowed us to think about and specify object behavior. This results in executable
code which is merely secondary. What is important is the clean specification of
object behavior. Similarly, in getting accustomed to working with objects, we
believe that you will enjoy it too.
Preface to 2nd Edition

Since publishing the first edition almost 10 years ago, we have seen Java being used
in many high school and university programming courses. Further, many projects
now use Java as the implementation language. Similarly, at the Institute of Systems
Science, we have seen professional developers warming up to Java for the first time
in 1998, to those who use Java in their daily work in 2007.
We have thus updated the material to cover J2EE topics such as JDBC, RMI,
Serialization and Java Servlets. We have also added a chapter on Generics as the
Java language evolved to allow this elegant feature.
For those who might be embarking on a Java journey now, we wish you a
pleasant journey and a well-used road map. Many have taken this journey before and
are enjoying the fruits of their learning investment.
Overview

Chapter 1 presents an introduction to the object-oriented world consisting of objects


and object communication via the exchange of messages. Object-oriented concepts
and terminology used in object-oriented methodology are discussed in chapter 2.
Chapter 3 shows how these concepts materialize in the form of Java code and
representations. It discusses the basic features and syntax of Java and builds upon the
concepts using an incremental Counter example.
Following on from language syntax, chapter 4 demonstrates the standard pro-
gramming environment using the Java Development Kit (JDK), and how a class
definition may be compiled and executed, integrated and reused within other code
fragments. The chapter also delves into using the Java Application Programming
Interface (API) to demonstrate the ease and productivity gains of code libraries.
Chapter 5 returns to the discussion of objects, in particular, the organization of
objects into manageable classes. The concept of class enables a developer to organize
a complex problem domain into more manageable components. Grouping objects into
classes is an act known as classification in object-oriented modeling. When classes
are formed, they can be further distinguished into superclasses or subclasses, accord-
ing to their similarities or differences in properties. Class hierarchies can then be
formed. The creation of superclasses and subclasses is achieved through abstracttion
mechanisms known as generalization and specialization respectively. Classification,
generalization and specialization are thus important abstraction mechanisms for
organizing objects and managing complexities.
Inheritance is discussed in chapter 6. Common properties of classes can be shared
with other classes of objects via the inheritance mechanism. It is through inheritance
that software component reuse is possible in object-oriented programming. Software
reusability is important because code need not be produced from scratch, thereby
increasing the productivity of developers.
Another topic close to the heart of object-oriented programming is polymorphism.
This topic is concerned with object messaging and how objects of different classes
respond to the same message. With polymorphism, objects of different class definition
can respond to the same message with the appropriate method. In this way, generic
software code can be produced, thus enhancing the maintainability of software systems.
Polymorphism is supported by dynamic binding and operation overloading, topics
that are central to the discussion in chapter 7.
Enhancing software maintainability is a significant software development
objective. A programming technique known as Structured Programming was intro-
duced in the 1980s, promoting modularity as a Software Engineering principle
for achieving maintainable software. Modularity is emphasized in object-oriented
Overview xviii

programming in the form of method, object, and class definition. Encapsulation is


the manifestation of modularity in object-oriented programming to the fullest. As
will be made clear in chapter 8, encapsulation brings together related properties into
class definitions with the structural definition of classes hidden from their users. The
purpose of this approach is to hide the implementation detail of objects so that when
changes in implementation of objects are called for, users of the objects will not be
adversely affected.
Exception Handling is considered in chapter 9. This is especially important in
object-oriented programming, as the mechanism for the glue and safety net in code
integration and reuse.
The Java API is introduced in chapter 10 and continues with the core classes for
input/output, networking, graphical components and applets within Web browsers.
Input and output rely on InputStream and OutputStream classes, as well as Reader
and Writer classes in JDK 1.1.
Chapter 11 introduces network connections via TCP/IP using the Socket
class, similar to those for input and output in chapter 10, as they share behavior from
InputStream and OutputStream. As multi-processing is typically used with client/
server applications, we have also included the multi-threading API in this chapter,
together with a skeleton Web server as the working example.
Collection classes with Generics in chapter 12 show how the concepts of modu-
larity and encapsulation work to facilitate code reuse. This chapter not only gives an
overview of the classes in the Collections Framework, but this framework is an
excellent sample of how reusable code is written.
The AWT model is elaborated with descriptions of its constituents and example
usage for Graphical User Interfaces in chapter 13. There are sufficient code examples
to build interfaces for most simple applications. We have also incorporated Swing
classes for better interactivity.
Applet development relate to graphical interfaces and the issue of dynamic
loading of compiled Java bytecodes. This is discussed in chapter 14. Situations where
applet behavior differs from Java applications, security measures and implementing a
loader over the network are also considered.
Chapter 15 covers Java Servlets. It is related to dynamic code loading and
applets in chapter 14, but occurring on the server side. This forms the basis for Java-
based Web applications.
Chapter 16 examines Java Object Serialization and Remote Method Invocation.
The former may be viewed as a continuation of input and output facilities discussed
in chapter 10, but with the focus to implement object persistence. Object Serialization
is also used to move objects over a network and forms a key role in implementing
Remote Method Invocation (RMI) for distributed applications. A simple client/server
application framework using RMI is provided.
Chapter 17 provides an overview of the popular requirement of working with
databases – Java Database Connectivity. This topic warrants a whole book, but we
limit our discussion to the rationale, perspective and architecture of JDBC together
with necessary methods for working with real databases.
Acknowledgement

In revising the text, we are thankful to readers of the first edition who have given
encouraging feedback. If not for these folks, we would never have considered this
second round.
We also thank our colleagues and bosses at our respective work places who
have supported and encouraged this book revision. We also thank the folks at
Springer Verlag who felt that a second edition was worthy.
Special thanks are due to Derek’s former colleagues at the now defunct Centre
for Internet Research (CIR), National University of Singapore, who had worked to
use the Internet productively. The lineage of CIR may be traced back to the Technet
Unit in the Computer Centre of the National University of Singapore, which was first
to provide and promote Internet services in Singapore. The effort saw the spin-off
to PacNet in Singapore. In particular, Dr. Thio Hoe Tong, former Director of the
Computer Centre and Dr Tan Tin Wee, have supported the Java team even in the
early days when we played with the Alpha releases of Java.

Poo, Kiong & Ashok


National University of Singapore
August 2007
Discovering Diverse Content Through
Random Scribd Documents
THROUGH KIKUYU TO
GALLA-LAND
INTRODUCTION.
My friend, George Henry West, and myself left Cairo in the latter part
of the year 1899, with the intention of proceeding to Uganda viâ
Zanzibar and Mombasa. George was an engineer in the service of
the Irrigation Department of the Egyptian Government, and had
gained a large and varied experience on the new works on the
Barrage below Cairo, then being concluded, and in building, running,
and repairing both locomotives and launches. As a profession I had
followed the sea for three years, leaving it in 1896 in order to join the
British South African Police, then engaged in subduing the native
rebellion in Mashonaland. At the conclusion of hostilities I wandered
over South Africa, and finally found my way to Egypt, where I met
George West. A year later, accompanied by George, I was on my
way southwards again, en route for British East Africa.
When George and I left Cairo, our idea was to go up-country as far
as the Lake Victoria Nyanza, as we considered it extremely probable
that there would be something for us to do in the engineering line,
either in building launches or in the construction of small harbour
works.
We reached Mombasa in due course, and from there proceeded to
Nairobi by the railway then in course of construction to Uganda.
Nairobi is 327 miles from the coast, and is an important centre, being
the headquarters of both the Civil Administration of the Protectorate
and the Uganda railway. On our arrival, George received an offer,
which he accepted, to go up to the lake with a steamer, which was
then on the way out from England in sections, and on his arrival at
the lake with it to rebuild it. I remained in Nairobi.
In course of time I met the personage referred to in these pages
as “El Hakim,”[1] whom I had known previously by repute. He was
said to be one of the most daring and resolute, and at the same time
one of the most unassuming Englishmen in the Protectorate; a dead
shot, and a charming companion. He had been shooting in
Somaliland and the neighbourhood of Lake Rudolph for the previous
four years, and many were the stories told of his prowess among
elephant and other big game.
It was with sincere pleasure, therefore, that I found I was able to
do him sundry small services, and we soon became fast friends. In
appearance he was nothing out of the common. He was by no
means a big man—rather the reverse, in fact—and it was only on
closer acquaintance that his striking personality impressed one.
He had dark hair and eyes, and an aquiline nose. He was a man
of many and varied attainments. Primarily a member of the medical
profession, his opinions on most other subjects were listened to with
respect. A very precise speaker, he had a clear and impartial manner
of reviewing anything under discussion which never failed to impress
his hearers.
He was a leader one would have willingly followed to the end of
the earth. When, therefore, he proposed that I should accompany
him on an ivory trading expedition to Galla-land, that vast stretch of
country lying between Mount Kenia on the south and Southern
Somaliland on the north, which is nominally under the sphere of
influence of the British East African Protectorate, I jumped at the
chance; and it was so arranged. He had been over much of the
ground we intended covering, and knew the country, so that it
promised to be a most interesting trip.
About this time I heard from George that he was coming down
country, as the steamer parts had not all arrived from England, and
consequently it would probably be months before it would be ready
for building. He had also had a bad attack of malarial fever in the
unhealthy district immediately surrounding the lake at Ugowe Bay,
and altogether he was not very fit. I suggested to El Hakim that
George should join us in our proposed expedition, to which he
readily agreed; so I wrote to George to that effect.
To render the prospect still more inviting, there existed a certain
element of mystery with regard to the river Waso Nyiro (pronounced
Wasso Nēro). It has always been supposed to rise in the Aberdare
Range, but, as I shall show, I have very good reason to believe that it
rises in the western slopes of Kenia Mountain itself. The Waso Nyiro
does not empty itself into the sea, but ends in a swamp called
Lorian, the position of which was supposed to have been fixed by an
exploring party in 1893. But, as I shall also show in the course of this
narrative, the position of Lorian varies.
The upper reaches of the Waso Nyiro were visited by the explorer
Joseph Thompson, F.R.G.S., on his way to Lake Baringo during his
memorable journey through Masai Land in 1885.
In 1887-1888 a Hungarian nobleman, Count Samuel Teleki von
Czeck, accompanied by Lieutenant Ludwig von Hohnel, of the
Imperial Austrian Navy, undertook the stupendous journey which
resulted in the discovery of Lakes Rudolph and Stephanie. Count
Teleki, on his journey north, crossed the Waso Nyiro at a point in
North-West Kenia near its source, while Lieutenant von Hohnel went
two or three days’ march still further down-stream.
A few years later, in 1892-1893, Professor J. W. Gregory, D.Sc., of
the Natural History Museum, South Kensington, made, single-
handed, a remarkable journey to Lake Baringo and Mount Kenia,
and in the teeth of almost insuperable difficulties, ascended the
western face of that mountain and climbed the peak.
At the same time, in the latter part of 1892, an American, Mr.
William Astor Chanler, accompanied by Count Teleki’s companion
and chronicler, Lieutenant von Hohnel, started from a point in
Formosa Bay on the East Coast, and made his way along the course
of Tana River to North-East Kenia, intending later to go on to Lake
Rudolph, and thence northward. He and his companion, deceived by
the reports of the natives, which led them to believe that the Waso
Nyiro emptied itself into an extensive lake, and fired by the idea of
the possible discovery of another great African lake, made their way
down to the Waso Nyiro, and after a fearful march, enduring the
greatest hardships, eventually reached Lorian. To their great
disappointment, it proved to be nothing more than a swamp, and
they turned back without examining it. A few weeks later, Lieutenant
von Hohnel, having been seriously injured by a rhinoceros, was sent
down to the coast, his life being despaired of. Shortly afterwards Mr.
Chanler’s men deserted him in a body, and returned to the coast
also, thus bringing his journey to a premature conclusion; a much-to-
be-regretted ending to a well-planned and well-equipped expedition.
As Mr. Chanler was returning to the coast he met Mr. A. H.
Neumann coming up. Mr. Neumann spent the greater part of 1893 in
shooting elephants in the Loroghi Mountains, after going north to
Lake Rudolph. He also crossed the Waso Nyiro at a point north-east
of Mount Kenia.
During the time Mr. Neumann was shooting in the Loroghi
Mountains he was obliged to make periodical visits to M’thara, in
North-East Kenia, in order to buy food from the natives, and on one
such excursion he met Dr. Kolb, a German scientist, who was
exploring North Kenia.
Dr. Kolb ascended Mount Kenia from the north, and then returned
to Europe. An interesting account of his ascent of the mountain is
published in Dr. Petermann’s “Mitteilungen” (42 Band, 1896). Dr.
Kolb then returned to Kenia in order to continue his observations, but
he was unfortunately killed by a rhinoceros a couple of marches
north of M’thara.
Lorian, therefore, with the exception of Mr. Chanler’s hurried visit,
was practically unexplored. At the commencement of our trip, El
Hakim proposed that, if an opportunity occurred of visiting Lorian, we
should take advantage of it, and endeavour to supplement Mr.
Chanler’s information. As will be seen, an opportunity did present
itself, with what result a perusal of this account of our expedition will
disclose.
FOOTNOTES:
[1] Anglice, “The Doctor.”
CHAPTER I.
PREPARATIONS AND START.

Engaging porters—Characteristics of Swahili, Wa’Nyamwezi, and


Wa’Kamba porters—Selecting trade goods—Provisions—Arms
and ammunition—The Munipara—Sketch of some principal
porters—Personal servants—List of trade goods taken—
Distributing the loads—Refusal of the Government to register our
porters—Reported hostility of the natives—Finley and Gibbons’
disaster—Start of the Somali safaris—We move to Kriger’s Farm
—I fall into a game-pit—Camp near Kriger’s Farm—Visitors—The
start.
One of the most important items in the organization of a “safari”
(caravan) is the judicious selection of the men. Choosing ours was a
task that gave us much trouble and vexation of spirit. El Hakim said
that for all-round usefulness the Wa’kamba were hard to beat, and
thought that we had better form the bulk of the safari from them, and
stiffen it with a backbone of Swahilis and Wa’Nyamwezi, as, though
the Wa’kamba were very good men when well handled, in the
unlikely event of hostilities with the natives it would be advisable to
strengthen them with an addition from the lustier tribes. To that end
we proposed to engage a dozen Swahili and half that number of
Wa’Nyamwezi. Porters at that time were very scarce; but having
secured one or two good men as a nucleus, we sent them into the
bazaar at Nairobi to bring us any other men they could find who
wanted employment.
The Swahilis are natives of Zanzibar and the adjacent coasts.
They are of mixed—very mixed—descent, being mainly the offspring
of various native slaves and their Arab masters. They were originally
a race of slaves, but since the abolition of slavery they have become
more and more independent, and they now consider themselves a
very superior race indeed. They call themselves “Wangwana”
(freemen), and allude to all other natives as “Washenzi” (savages).
They are incorrigibly conceited, and at times very vicious, lazy,
disobedient, and insolent. But once you have, by a judicious display
of firmness, gained their respect, they, with of course some
exceptions, prove to be a hardy, cheerful, and intelligent people,
capable of enduring great hardships without a too ostentatious
display of ill-feeling, and will even go so far as to make bad puns in
the vernacular upon their empty stomachs, the latter an occurrence
not at all infrequent in safari work away from the main roads.
The Wa’kamba, on the whole, are a very cheerful tribe, and though
of small physique, possess wonderful powers of endurance, the
women equally with the men. We calculated that some of our men, in
addition to their 60-lb. load, carried another 30 lbs. weight in
personal effects, rifle, and ammunition; so that altogether they
carried 90 lbs. dead weight during one or sometimes two marches a
day for weeks at a stretch, often on insufficient food, and sometimes
on no food at all.
The Wa’Nyamwezi are, in my opinion, really more reliable than
either the Swahili or Wa’kamba. They come from U’Nyamwezi, the
country south and east of Lake Victoria Nyanza. We had six of them
with us, and we always found them steady and willing, good porters,
and less trouble than any other men in the safari. They were very
clannish, keeping very much to themselves, but were quiet and
orderly, and seldom complained; and if at any time they imagined
they had some cause for complaint, they formed a deputation and
quietly stated their case, and on receiving a reply as quietly returned
to their fire—very different from the noisy, argumentative Swahili.
They appear to me to possess the virtues of both the Swahilis and
Wa’kamba without their vices. The Wa’kamba’s great weakness
when on the march was a penchant for stealing from the native
villages whatever they could lay their hands on, being encouraged
thereto by the brave and noble Swahilis, who, while not wishing to
risk our displeasure by openly doing likewise, urged on the simple
Wa’kamba, afterwards appropriating the lion’s share of the spoil: that
is, if we did not hear of the occurrence and confiscate the spoil
ourselves.
We had pitched our tent just outside the town of Nairobi, and
proceeded to get together our loads of camp equipment, trade
goods, and provisions: no easy task on an expedition such as ours,
where the number of carriers was to be strictly limited.
In the first place, we required cloth, brass wire, iron wire, and
various beads, in sufficient quantities to buy food for the safari for at
least six months. Provisions were also a troublesome item, as,
although we expected to live a great deal upon native food, we
required such things as tea, coffee, sugar, jam, condiments, and also
medicines. The question was not what to take, but what not to take.
However, after a great amount of discussion, lasting over several
days, we settled the food question more or less satisfactorily.
During this time our recruiting officers were bringing into camp
numbers of men who, they said, wanted to take service with us as
porters. Judging from the specimens submitted for our approval, they
seemed to have raked out the halt, the lame, and the blind. After
much trouble we selected those whom we thought likely to be
suitable, and gave them an advance of a few rupees as a retaining
fee, with which, after the manner of their kind, they immediately
repaired to the bazaar for a last long orgie.
There was also the important question of arms and ammunition to
be considered, as, although we did not expect any fighting, it would
have been foolish in the extreme to have entered such districts as
we intended visiting without adequate means of self-defence. We
concluded the twenty-five Snider rifles used by El Hakim on a
previous trip would suffice. Unfortunately, we could get very little
ammunition for them, as at that time Snider ammunition was very
scarce in Nairobi, one reason being that it had been bought very
largely by a big Somali caravan under Jamah Mahomet and Ismail
Robli, which set out just before us, bound for the same districts.
We, however, eventually procured five or six hundred rounds: a
ridiculously inadequate amount considering the distance we were to
travel and the time we expected to be away.
With regard to our armament, El Hakim possessed by far the best
battery. His weapons consisted of an 8-bore Paradox, a ·577
Express, and a single-barrelled ·450 Express, all by Holland and
Holland. The 8-bore we never used, as the ·577 Express did all that
was required perfectly satisfactorily. The 8-bore would have been a
magnificent weapon for camp defence when loaded with slugs, but
fortunately our camp was never directly attacked, and consequently
the necessity for using it never arose. The ·557 was the best all-
round weapon for big game such as elephant, rhinoceros, and
buffalo, and never failed to do its work cleanly and perfectly. Its only
disadvantage was that it burnt black powder, and consequently I
should be inclined, if I ever made another expedition, to give the
preference to one of the new ·450 or ·500 Expresses burning
smokeless powder, though, as I have not handled one of the latter, I
cannot speak with certainty. El Hakim’s ·450 Express was really a
wonderful weapon, though open to the same objection as the ·557—
that of burning black powder. It was certainly one of the best all-
round weapons I ever saw for bringing down soft-skinned game. It
was a single-barrelled, top-lever, hammer-gun, with flat top rib. The
sights were set very low down on the rib, to my mind a great
advantage, as it seems to me to minimize the chances of accidental
canting. Its penetrative power, with hardened lead bullets, was
surprising. I have seen it drop a rhinoceros with a bullet through the
brain, and yet the same projectile would kill small antelope like
Grant’s or Waller’s gazelles without mangling them or going right
through and tearing a great hole in its egress, thereby spoiling the
skin, which is the great cause of complaint against the ·303 when
expanding bullets are used.
I myself carried a ·303 built by Rigby, a really magnificent weapon.
I took with me a quantity of every make of ·303 expanding bullets,
from copper-tubed to Jeffry’s splits. After repeated trials I found that
the Dum-Dum gave the most satisfactory results, “since when I have
used no other.”
I also carried a supply of ·303 solid bullets, both for elephants and
for possible defensive operations. For rhinoceros, buffalo, or giraffe, I
carried an ordinary Martini-Henry military rifle, which answered the
purpose admirably. A 20-bore shot-gun, which proved useful in
securing guinea-fowl, etc., for the pot, completed my battery. George
carried a ·303 military rifle and a Martini-Henry carbine.
It was essential that we should have a good “Munipara” (head-
man), and the individual we engaged to fill that important position
was highly recommended to us as a man of energy and resource.
His name was Jumbi ben Aloukeri. Jumbi was of medium height,
with an honest, good-natured face. He possessed an unlimited
capacity for work, but we discovered, too late, that he possessed no
real control over the men, which fact afterwards caused us endless
trouble and annoyance. He was too easy with them, and made the
great mistake—for a head-man—of himself doing anything we
wanted, instead of compelling his subordinates to do it, with the
result that he was often openly defied, necessitating vigorous
intervention on our part to uphold his authority. We usually alluded to
him as “the Nobleman,” that being the literal translation of his name.
Next on the list of our Swahili porters was Sadi ben Heri, who had
been up to North Kenia before with the late Dr. Kolb, who was killed
by a rhinoceros a couple of marches north of M’thara, Sadi was a
short, stoutly built, pugnacious little man, with a great deal to say
upon most things, especially those which did not concern him. He
was a good worker, but never seemed happy unless he was
grumbling; and as he had a certain amount of influence among the
men, they would grumble with him, to their great mutual satisfaction
but ultimate disadvantage. His pugnacious disposition and lax
morals soon got him into trouble, and he, together with some of his
especial cronies, was killed by natives, as will be related in its proper
sequence.
Hamisi ben Abdullah was a man of no marked peculiarities, except
a disposition to back up Sadi in any mischief. The same description
applies to Abdullah ben Asmani and Asmani ben Selim.
Coja ben Sowah was a short, thick-set man, so short as to be
almost a dwarf. He was one of the most cheery and willing of our
men, so much so that it was quite a pleasure to order him to do
anything—a pleasure, I fear, we appreciated more than he did. On
receiving an order he would run to execute it with a cheery “Ay
wallah, bwana” (“Please God, master”), that did one good to hear.
Resarse ben Shokar was our “Kiongozi,” i.e. the leading porter,
who sets the step on the march and carries the flag of the safari. He,
also, always ran on receiving an order—ran out of sight, in fact; then,
when beyond our ken, compelled a weaker man than himself to do
what was wanted. I could never cure him of the habit of sleeping on
sentry duty, though many a time I have chased him with a stirrup-
strap, or a camp-stool, or anything handy when, while making
surprise inspections of the sentries, I had found him fast asleep. He
was valuable, however, in that he was the wit of the safari. He was a
perfect gas-bag, and often during and after a long and probably
waterless march we blessed him for causing the men to laugh by
some harmless waggish remark at our expense.
Sulieman was a big, hulking, sulky brute, who gave us a great deal
of trouble, and finally deserted near Lorian, forgetting to return his
rifle, and also absent-mindedly cutting open my bag and abstracting
a few small but necessary articles. Docere ben Ali, his chum, was
also of a slow and sullen disposition, though he was careful not to
exhibit it to us. When anything disturbed him he went forthwith and
took it out of the unfortunate Wa’kamba.
Of the Wa’kamba I do not remember the names except of two or
three who particularly impressed themselves on my memory. The
head M’kamba was known as Malwa. He was a cheerful, stupid idiot
who worked like a horse, though he never seemed to get any
“for’arder.” Another M’kamba, named Macow, afterwards succeeded
him in the headmanship of the Wa’kamba when Malwa was deposed
for some offence. We nicknamed Macow “Sherlock Holmes,” as he
seemed to spend most of his leisure hours prowling round the camp,
peering round corners with the true melodrama-detective-Hawkshaw
expression in his deep-set, thickly browed eyes. He would often
creep silently and mysteriously to our tent, and in a subdued whisper
communicate some trifling incident which had occurred on the
march; then, without waiting for a reply, steal as silently and
mysteriously away.
I must not conclude this chapter without some mention of our
personal servants. First and foremost was Ramathani, our head
cook and factotum. Ramathani had already been some three months
in my service as cook and personal servant, and a most capable
man I had found him. My acquaintance with him began one morning
when I had sent my cook, before breakfast, to the sokoni (native
bazaar) to buy bread, vegetables, etc. As he did not return I went
outside to the cook-house in some anxiety as to whether I should get
any breakfast. Several native servants were there, and they informed
me my cook was still in the bazaar, very drunk, and most likely would
not be back till noon. Of course, I was angry, and proceeded to show
it, when a soothing voice, speaking in very fair English, fell upon my
ear. Turning sharply, I was confronted by a stranger, a good-looking
native, neatly dressed in khaki.
“Shall I cook breakfast for master?” he inquired softly.
“Are you able?” said I.
“Yes, master.”
“Then do so,” I said; and went back to my quarters and waited with
as much patience as I could command under the circumstances.
In a quarter of an hour or so Ramathani—for it was indeed he—
brought in a temptingly well-cooked breakfast, such as I was almost
a stranger to, and at the same time hinted that he had permanently
attached me as his employer. My own cook turned up an hour or so
later, very drunk and very abusive, and he was incontinently fired
out, Ramathani being established in his stead.
Ramathani had two boys as assistants, Juma and Bilali. Juma was
an M’kamba. His upper teeth were filed to sharp points, forming most
useful weapons of offence, as we afterwards had occasion to notice.
Bilali was an M’Kikuyu, and a very willing boy. He was always very
nervous when in our presence, and used to tremble excessively
when laying the table for meals. When gently reproved for putting
dirty knives or cups on the table, he would grow quite ludicrous in his
hurried efforts to clean the articles mentioned, and would spit on
them and rub them with the hem of his dirty robe with a pathetic
eagerness to please that disarmed indignation and turned away
wrath.
Having finally secured our men, it only remained to pack up and
distribute the loads of equipment, provisions, trade goods, etc. We
did not take such a large quantity of trade goods as we should have
done in the ordinary course, as El Hakim already had a large
quantity in charge of a chief in North Kenia. The following is a list,
compiled from memory, of what we took with us:—
Unguo (Cloth).
2 loads Merikani (American sheeting).
2 ” kisuto (red and blue check cloths).
2 ” blanketi (blankets, coloured).
1 load various, including—
gumti (a coarse white cloth).
laissoes (coloured cloths worn by women).
kekois (coloured cloth worn by men).

Uzi Wa Madini (Wire).


seninge (iron wire, No. 6).
2 or 3 loads of masango (copper wire, No. 6).
masango n’eupe (brass wire, No. 6).

Ushanga (Beads).
sem Sem (small red Masai beads).
2 or 3 loads of sembaj (white Masai beads).
ukuta (large white opaque beads).
2 loads of mixed Venetian beads.

When all the loads were packed, they were placed in a line on the
ground; and falling the men in, we told off each to the load we
thought best suited to him. To the Swahilis, being good marching
men and not apt to straggle on the road, we apportioned our
personal equipment, tents, blankets, and table utensils. To the
Wa’Nyamwezi we entrusted the ammunition and provisions, and to
the Wa’kamba we gave the loads of wire, beads, cloth, etc. Having
settled this to our own satisfaction, we considered the matter settled,
and ordered each man to take up his load.
Then the trouble began. First one man would come to us and ask
if his load might be changed for “that other one,” while the man to
whom “that other one” had been given would object with much
excited gesticulation and forcible language to any alteration being
made, and would come to us to decide the case. We would then
arbitrate, though nine times out of ten they did not abide by our
decision. Other men’s loads were bulky, or awkward, or heavy, or
had something or other the matter with them which they wanted
rectified, so that in a short time we had forty men with forty
grievances clamouring for adjustment. We simplified matters by
referring every one to Jumbi, and having beaten an inglorious retreat
to our tents, solaced ourselves with something eatable till everything
was more or less amicably settled.
Nothing is more characteristic of the difference in the races than
the way in which they carry their loads. The Swahilis and
Wa’Nyamwezi, being used to the open main roads, carry their loads
boldly on their heads, or, in some cases, on their shoulders. The
Wa’kamba, on the other hand, in the narrow jungle paths of their
own district find it impossible, by reason of the overhanging
vegetation, to carry a load that way. They tie it up instead with a long
broad strip of hide, leaving a large loop, which is passed round the
forehead from behind, thus supporting the load, which rests in the
small of the back. When the strain on the neck becomes tiring they
lean forward, which affords considerable relief, by allowing the load
to rest still more upon the back. There were also six donkeys, the
property of El Hakim, and these were loaded up as well. A donkey
will carry 120 lbs., a weight equal to two men’s loads.
Finally, we had to register our porters at the Sub-Commissioner’s
office, as no safaris are allowed to proceed until that important
ceremony has been concluded, and the Government has pouched
the attendant fees. In our case, however, there appeared to be a
certain amount of difficulty. On delivering my application I was told to
wait for an answer, which I should receive in the course of the day. I
waited. In the afternoon a most important-looking official document
was brought to me by a Nubian orderly. In fear and trembling I
opened the envelope, and breathed a heartfelt sigh of relief when I
found that the Government had refused to register our porters, giving
as their reason that the districts we intended visiting were unsettled
and, in their opinion, unsafe, and therefore we should proceed only
at our own risk. We did not mind that, and we saved the registration
fee anyhow. The Government had already refused to register the
Somali’s porters, and they intimated, very rightly, that they could not
make any difference in our case.
Jamah Mahomet, who was in command of the Somali safari,
started off that day. He had with him Ismail Robli as second in
command. A smaller safari, under Noor Adam, had started a week
previously. Both these safaris intended visiting the same districts as
ourselves. We were fated to hear a great deal more of them before
the end of our trip.
In the evening I received a private note from one of the
Government officers, informing me that we were likely to have a
certain amount of trouble in getting across the river Thika-Thika
without fighting, as the natives of that district were very turbulent,
and advising us to go another way. My informant cited the case of
Messrs. Finlay and Gibbons by way of a cheerful moral.
Finlay and Gibbons were two Englishmen who had been trading
somewhere to the north of the Tana River. They had forty men or so,
and were trading for ivory with the A’kikuyu, when they were
suddenly and treacherously attacked and driven into their “boma”
(thorn stockade), and there besieged by quite six thousand natives.
From what I saw later, I can quite believe that their numbers were by
no means exaggerated. During a night attack, Finlay was speared
through the hand and again in the back, the wound in the back,
however, not proving dangerous. They managed to get a message
through to Nairobi, and some Nubian troops were sent to their relief,
which task they successfully accomplished, though only with the
greatest difficulty. It was not till six weeks after he received the
wound that Finlay was able to obtain medical assistance, and by that
time the tendons of his hand had united wrongly, so that it was
rendered permanently useless. This was a nice enlivening story,
calculated to encourage men who were setting out for the same
districts.
The following day I received a telegram from George to say that
he had arrived from Uganda at the Kedong Camp, at the foot of the
Kikuyu Escarpment, so I went up by rail to meet him. He looked very
thin and worn after his severe attack of fever. We returned to Nairobi
the same evening, and proceeded to our camp. El Hakim, who was
away when we arrived, turned up an hour later, and completed our
party. He had been to Kriger’s Farm about seven miles out. Messrs.
Kriger and Knapp were two American missionaries who had
established a mission station that distance out of Nairobi, towards
Doenyo Sabuk, or Chianjaw, as it is called by the Wa’kamba.
El Hakim, being anxious to get our men away from the pernicious
influence of the native bazaar, arranged that he would go on to
Kriger’s early on the following morning, and that George and I should
follow later in the day with the safari, and camp for the night near
Kriger’s place. Accordingly he started early in the forenoon on the
following day.
George and I proceeded to finish the packing and make final
arrangements—a much longer task than we anticipated. There were
so many things that must be done, which we found only at the last
minute, that at 3 p.m., as there was no prospect of getting away until
an hour or so later, I sent George on with the six loaded donkeys,
about thirty of El Hakim’s cattle, and a dozen men, telling him that I
would follow. George rode a mule (of which we had two), which El
Hakim had bought in Abyssinia two years before. They were
splendid animals, and, beyond an inconvenient habit, of which we
never cured them, of shying occasionally and then bolting, they had
no bad points. They generally managed to pick up a living and get fat
in a country where a horse would starve, and, taking them
altogether, they answered admirably in every way. I would not have
exchanged them for half a dozen of the best horses in the
Protectorate. One mule was larger than the other, and lighter in
colour, and was consequently known as n’yumbu m’kubwa, i.e. “the
big mule.” It was used by George and myself as occasion required.
The other, a smaller, darker animal, was known as n’yumbu m’dogo,
i.e. “the little mule.” It was ridden exclusively by El Hakim.
After George’s departure I hurried the remaining men as much as
possible, but it was already dusk when I finally started on my seven-
mile tramp. Some of the men had to be hunted out of the bazaar,
where they had lingered, with their loved ones, in a last long farewell.
There is no twilight in those latitudes (within two degrees of the
equator), so that very soon after our start we were tramping along in
the black darkness. I had no knowledge of the road; only a rough
idea of the general direction. I steered by the aid of a pocket-
compass and a box of matches. After the first hour I noticed that the
men commenced to stagger and lag behind with their lately
unaccustomed burdens, and I had to be continually on the alert to
prevent desertions. I numbered them at intervals, to make sure that
none of them had given me the slip, but an hour and a half after
starting I missed three men with their loads, in spite of all my
precautions. I shouted back into the darkness, and the men
accompanying me did the same, and, after a slight interval we were
relieved to hear an answering shout from the missing men. After
waiting a few moments, we shouted again, and were amazed to find
that the answering shout was much fainter than before. We
continued shouting, but the answers grew gradually fainter and more
faint till they died away altogether. I could not understand it at first,
but the solution gradually dawned upon me. We were on a large
plain, and a few hundred yards to the left of us was a huge belt of
forest, which echoed our shouts to such an extent that the men who
were looking for us were deceived as to our real position, and in their
search were following a path at right angles to our own. I could not
light a fire to guide them, as the grass was very long and dry, and I
should probably have started a bush fire, the consequences of which
would have been terrible. I therefore fired a gun, and was answered
by another shot, seemingly far away over the plain to the right.
Telling the men to sit down and rest themselves on the path, I
ordered Jumbi to follow me, and, after carefully taking my bearings
by compass, started to walk quickly across the plain to intercept
them.
It was by no means a pleasant experience, trotting across those
plains in the pitchy blackness, with the grass up to my waist, and
huge boulders scattered about ready and willing to trip me up. I got
very heated and quite unreasonably angry, and expressed my
feelings to Jumbi very freely. I was in the midst of a violent diatribe
against all natives generally, and Swahili porters in particular, which I
must admit he bore with commendable patience, when the earth
gave way beneath me, and I was precipitated down some apparently
frightful abyss, landing in a heap at the bottom, with all the breath
knocked out of my body. I laid there for a little while, and
endeavoured to collect my scattered faculties. Soon I stood up, and
struck a match, and discovered that I had fallen into an old game-pit,
about 8 feet deep. It was shaped like a cone, with a small opening at
the top, similar to the old-fashioned oubliette. I looked at the floor,
and shuddered when I realized what a narrow squeak I might have
had; for on the centre of the floor were the mouldering remains of a
pointed stake, which had been originally fixed upright in the earth
floor on the place where I had fallen.
“Is Bwana (master) hurt?” said the voice of Jumbi from somewhere
in the black darkness above.
I replied that I was not hurt, but that I could not get out without
assistance; whereupon Jumbi lowered his rifle, and, to the
accompaniment of a vast amount of scrambling and kicking, hauled
me bodily out.
We were by this time very near to the men for whom we were
searching, as we could hear their voices raised in argument about
the path. We stopped and called to them, and presently they joined
us, and we all set off together to join my main party. We reached it
without further mishap, and resumed our interrupted march.
It was very dark indeed. I could not see my hand when I held it a
couple of feet from my face. One of the men happening to remark
that he had been over the path some years before, I immediately
placed him in the van as guide, threatening him with all sorts of pains
and penalties if he did not land us at our destination some time
before midnight.
I was particularly anxious to rejoin George, as I had the tents,
blankets, and food, and he would have a very uninteresting time
without me. We marched, therefore, with renewed vigour, as our
impromptu guide stated that he thought one more hour’s march
would do the business. It didn’t, though. For two solid hours we
groped blindly through belts of forest, across open spaces, and up
and down wooded ravines, until somewhere about eleven p.m.,
when we reached a very large and terribly steep ravine, thickly
clothed with trees, creepers, and dense undergrowth. We could hear
the rushing noise of a considerable volume of water at the bottom,
and in the darkness it sounded very, very far down.
I halted at the top to consider whether to go on or not, but the
thought of George waiting patiently for my appearance with supper
and blankets made me so uncomfortable that I decided to push on if
it took me all night. We thereupon commenced the difficult descent,
but halfway down my doubts as to the advisability of the proceeding
were completely set at rest by one of the men falling down in some
kind of a fit from over-fatigue. The others were little better, so I
reluctantly decided to wait for daylight before proceeding further. I
tried to find something to eat among the multifarious loads, and
fortunately discovered a piece of dry bread that had been thrown in
with the cooking utensils at the last moment. I greedily devoured it,
and, wrapping myself in my blankets, endeavoured to sleep as well
as I was able on a slope of forty-five degrees. A thought concerning
George struck me just before I dropped off to sleep, which comforted
me greatly. “George knows enough to go in when it rains,” I thought.
“He will leave the men with the cattle, and go over to Kriger’s place
and have a hot supper and a soft bed, and all kinds of good things
like that,” and I drew my blankets more closely round me and
shivered, and felt quite annoyed with him when I thought of it.
At daylight we were up and off again, and, descending the ravine,
crossed the river at the bottom, and continued the march. On the
way I shot a guinea-fowl, called by the Swahilis “kanga,” and after an
hour and a half of quick walking I came up with George.
He had passed a miserable night, without food, blankets, or fire,
and, to make matters worse, it had drizzled all night, while he sat on
a stone and kept watch and ward over the cattle. The men who had
accompanied him were so tired that they had refused to build a
boma to keep the cattle in. He seemed very glad to see me. We at
once got the tent put up, a fire made, and the boma built, and soon
made things much more comfortable. In fact, we got quite gay and
festive on the bread and marmalade, washed down with tea, which
formed our breakfast.
El Hakim was at Kriger’s place, about a mile distant. We had to
wait two or three days till he was ready to start, as he had a lot of
private business to transact. We left all the cattle except nine behind,
under Kriger’s charge; we sent the nine back subsequently, as we
found they were more trouble than they were worth.
In the evening I went out to shoot guinea-fowl; at least, I intended
to shoot guinea-fowl, but unfortunately I saw none. I lost myself in
the darkness, and could not find my way back to camp. After
wandering about for some time, I at last spied the flare of the camp
fires, halfway up a slope a mile away, opposite to that on which I
stood. I made towards them, entirely forgetting the small river that
flowed at the foot of the slope. It was most unpleasantly recalled to
my memory as I suddenly stepped off the bank and plunged, with a
splash, waist deep into the icy water. Ugh!
I scrambled up the opposite bank, and reached the camp safely,
though feeling very sorry for myself. El Hakim and George thought it
a good joke. I thought they had a very low sense of humour.
On the following morning George and I sallied forth on sport intent.
George carried the shot-gun, and I the ·303. We saw no birds; but
after an arduous stalk, creeping on all fours through long, wet grass,
I secured a congoni. Congoni is the local name for the hartebeeste
(Bubalis Cokei). The meat was excellent, and much appreciated. El
Hakim joined us in the afternoon, accompanied by Mr. Kriger and Mr.
and Mrs. Knapp, who wished to inspect our camp. We did the
honours with the greatest zest, knowing it would be the last time for
many months that we should see any of our own race.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookfinal.com

You might also like