Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
100% found this document useful (2 votes)
87 views

Full Download Foundations of Python Network Programming Third Edition Brandon Rhodes PDF DOCX

Programming

Uploaded by

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

Full Download Foundations of Python Network Programming Third Edition Brandon Rhodes PDF DOCX

Programming

Uploaded by

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

Download the full version of the ebook at

https://ebookgate.com

Foundations of Python Network Programming


Third Edition Brandon Rhodes

https://ebookgate.com/product/foundations-of-
python-network-programming-third-edition-brandon-
rhodes/

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


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

Foundations of Python Network Programming 3rd Edition


Brandon Rhodes

https://ebookgate.com/product/foundations-of-python-network-
programming-3rd-edition-brandon-rhodes/

ebookgate.com

Java Network Programming Third Edition Elliotte Rusty


Harold

https://ebookgate.com/product/java-network-programming-third-edition-
elliotte-rusty-harold/

ebookgate.com

Expert Python Programming 2nd Edition Jaworski

https://ebookgate.com/product/expert-python-programming-2nd-edition-
jaworski/

ebookgate.com

Python Programming 4th Edition Singh A.

https://ebookgate.com/product/python-programming-4th-edition-singh-a/

ebookgate.com
Learning BeagleBone Python Programming Unleash the
potential of BeagleBone using Python 1st Edition Hiam

https://ebookgate.com/product/learning-beaglebone-python-programming-
unleash-the-potential-of-beaglebone-using-python-1st-edition-hiam/

ebookgate.com

Basics of Python Programming 2nd Edition Dr. Pratiyush


Guleria

https://ebookgate.com/product/basics-of-python-programming-2nd-
edition-dr-pratiyush-guleria/

ebookgate.com

Core Python Programming 2nd Edition Wesley Chun

https://ebookgate.com/product/core-python-programming-2nd-edition-
wesley-chun/

ebookgate.com

Programming Python 3rd ed Edition Mark Lutz

https://ebookgate.com/product/programming-python-3rd-ed-edition-mark-
lutz/

ebookgate.com

Ultimate Python Programming 1st Edition Deepali Srivastava

https://ebookgate.com/product/ultimate-python-programming-1st-edition-
deepali-srivastava/

ebookgate.com
Foundations of Python Network
Programming

Third Edition

Brandon Rhodes
John Goerzen
Foundations of Python Network Programming, Third Edition
Copyright © 2014 by Brandon Rhodes and John Goerzen
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.
Exempted from this legal reservation are brief excerpts in connection with
reviews or scholarly analysis or material supplied specifically for the purpose
of being entered and executed on a computer system, for exclusive use by
the purchaser of the work. Duplication of this publication or parts thereof is
permitted only under the provisions of the Copyright Law of the Publisher’s
location, in its current version, and permission for use must always be
obtained from Springer. Permissions for use may be obtained through
RightsLink at the Copyright Clearance Center. Violations are liable to
prosecution under the respective Copyright Law.
ISBN-13 (pbk): 978-1-4302-5854-4
ISBN-13 (electronic): 978-1-4302-5855-1
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: Welmoed Spahr
Publisher: Heinz Weinheimer
Lead Editor: Michelle Lowman
Technical Reviewers: Alexandre Beaulne and Peter Membrey
Editorial Board: Steve Anglin, Mark Beckner, Ewan Buckingham,
Gary Cornell, Louise Corrigan, Jim DeWolf, Jonathan Gennick,
Robert Hutchinson, Michelle Lowman, James Markham,
Matthew Moodie, Jeff Olson, Jeffrey Pepper, Douglas Pundick,
Ben Renow-Clarke, Dominic Shakeshaft, Gwenan Spearing,
Matt Wade, Steve Weiss
Coordinating Editor: Kevin Walter
Developmental Editor: Gary Schwartz
Copy Editor: Kim Wimpsett
Compositor: SPi Global
Indexer: SPi Global
Artist: SPi Global
Cover Designer: Anna Ishchenko
Distributed to the book trade worldwide by Springer Science+Business Media
New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-
SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com,
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 rights@apress.com, or visit
www.apress.com.
Apress and friends of ED books 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 Special Bulk
Sales–eBook Licensing web page at www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in
this text is available to readers at www.apress.com. For detailed
information about how to locate your book’s source code, go to
www.apress.com/source-code/.
To my wonderful nieces, Avery, Savannah, and Aila,
remembering our bicycle ride and the wild abandon
with which they always round the corner and plunge
downhill.

I hope that they always approach life with such


fearlessness, whether they wind up doing any
network programming or not.
Contents at a Glance

About the Authors


About the Technical Reviewers
Acknowledgments
Introduction

Chapter 1: Introduction to Client-Server


Networking
Chapter 2: UDP
Chapter 3: TCP
Chapter 4: Socket Names and DNS
Chapter 5: Network Data and Network Errors
Chapter 6: TLS/SSL
Chapter 7: Server Architecture
Chapter 8: Caches and Message Queues
Chapter 9: HTTP Clients
Chapter 10: HTTP Servers
Chapter 11: The World Wide Web
Chapter 12: Building and Parsing E-Mail
Chapter 13: SMTP
Chapter 14: POP
Chapter 15: IMAP
Chapter 16: Telnet and SSH
Chapter 17: FTP
Chapter 18: RPC

Index
Contents

About the Authors


About the Technical Reviewers
Acknowledgments
Introduction

Chapter 1: Introduction to Client-Server


Networking
The Building Blocks: Stacks and Libraries
Application Layers
Speaking a Protocol
A Raw Network Conversation
Turtles All the Way Down
Encoding and Decoding
The Internet Protocol
IP Addresses
Routing
Packet Fragmentation
Learning More About IP
Summary
Chapter 2: UDP
Port Numbers
Sockets
Promiscuous Clients and Unwelcome Replies
Unreliability, Backoff, Blocking, and Timeouts
Connecting UDP Sockets
Request IDs: A Good Idea

Binding to Interfaces
UDP Fragmentation
Socket Options
Broadcast
When to Use UDP

Summary
Chapter 3: TCP
How TCP Works
When to Use TCP
What TCP Sockets Mean
A Simple TCP Client and Server
One Socket per Conversation
Address Already in Use

Binding to Interfaces
Deadlock
Closed Connections, Half-Open Connections
Using TCP Streams Like Files
Summary
Chapter 4: Socket Names and DNS
Hostnames and Sockets
Five Socket Coordinates
IPv6

Modern Address Resolution


Using getaddrinfo() to Bind Your Server to a Port
Using getaddrinfo() to Connect to a Service
Asking getaddrinfo() for a Canonical Hostname
Other getaddrinfo() Flags
Primitive Name Service Routines
Using getsockaddr() in Your Own Code

The DNS Protocol


Why Not to Use Raw DNS
Making a DNS Query from Python
Resolving Mail Domains

Summary
Chapter 5: Network Data and Network Errors
Bytes and Strings
Character Strings
Binary Numbers and Network Byte Order

Framing and Quoting


Pickles and Self-delimiting Formats
XML and JSON
Compression
Network Exceptions
Raising More Specific Exceptions
Catching and Reporting Network Exceptions

Summary
Chapter 6: TLS/SSL
What TLS Fails to Protect
What Could Possibly Go Wrong?
Generating Certificates
Offloading TLS
Python 3.4 Default Contexts
Variations on Socket Wrapping

Hand-Picked Ciphers and Perfect Forward


Security
Protocol Support for TLS
Learning Details
Summary
Chapter 7: Server Architecture
A Few Words About Deployment
A Simple Protocol
A Single-Threaded Server
Threaded and Multiprocess Servers
The Legacy SocketServer Framework

Async Servers
Callback-Style asyncio
Coroutine-Style asyncio
The Legacy Module asyncore
The Best of Both Worlds

Running Under inetd


Summary
Chapter 8: Caches and Message Queues
Using Memcached
Hashing and Sharding
Message Queues
Using Message Queues from Python

Summary
Chapter 9: HTTP Clients
Python Client Libraries
Ports, Encryption, and Framing
Methods
Paths and Hosts
Status Codes
Caching and Validation
Content Encoding
Content Negotiation
Content Type
HTTP Authentication
Cookies
Connections, Keep-Alive, and httplib
Summary
Chapter 10: HTTP Servers
WSGI
Asynchronous Server-Frameworks
Forward and Reverse Proxies
Four Architectures
Running Python Under Apache
The Rise of Pure-Python HTTP Servers
The Benefits of Reverse Proxies

Platforms as a Service
GET and POST Patterns and the Question of
REST
WSGI Without a Framework
Summary
Chapter 11: The World Wide Web
Hypermedia and URLs
Parsing and Building URLs
Relative URLs
The Hypertext Markup Language
Reading and Writing to a Database
A Terrible Web Application (in Flask)
The Dance of Forms and HTTP Methods
When Forms Use Wrong Methods
Safe and Unsafe Cookies
Nonpersistent Cross-Site Scripting
Persistent Cross-Site Scripting
Cross-Site Request Forgery
The Improved Application

The Payments Application in Django


Choosing a Web Framework
WebSockets
Web Scraping
Fetching Pages
Scraping Pages
Recursive Scraping

Summary
Chapter 12: Building and Parsing E-Mail
E-Mail Message Format
Building an E-Mail Message
Adding HTML and Multimedia
Adding Content
Parsing E-Mail Messages
Walking MIME Parts
Header Encodings
Parsing Dates
Summary
Chapter 13: SMTP
E-mail Clients vs. Webmail Services
In the Beginning Was the Command Line
The Rise of Clients
The Move to Webmail

How SMTP Is Used


Sending E-Mail
Headers and the Envelope Recipient
Multiple Hops

Introducing the SMTP Library


Error Handling and Conversation Debugging
Getting Information fromEHLO
Using Secure Sockets Layer and Transport Layer
Security
Authenticated SMTP
SMTP Tips
Summary
Chapter 14: POP
POP Server Compatibility
Connecting and Authenticating
Obtaining Mailbox Information
Downloading and Deleting Messages
Summary
Chapter 15: IMAP
Understanding IMAP in Python
IMAPClient
Examining Folders
Message Numbers vs. UIDs
Message Ranges
Summary Information
Downloading an Entire Mailbox
Downloading Messages Individually
Flagging and Deleting Messages
Deleting Messages
Searching
Manipulating Folders and Messages
Asynchrony

Summary
Chapter 16: Telnet and SSH
Command-Line Automation
Command-Line Expansion and Quoting
Unix Command Arguments Can Include (Almost) Any Character
Quoting Characters for Protection
The Terrible Windows Command Line
Things Are Different in a Terminal
Terminals Do Buffering
Telnet
SSH: The Secure Shell
An Overview of SSH
SSH Host Keys
SSH Authentication
Shell Sessions and Individual Commands
SFTP: File Transfer Over SSH
Other Features

Summary
Chapter 17: FTP
What to Use Instead of FTP
Communication Channels
Using FTP in Python
ASCII and Binary Files
Advanced Binary Downloading
Uploading Data
Advanced Binary Uploading
Handling Errors
Scanning Directories
Detecting Directories and Recursive Download
Creating Directories, Deleting Things
Doing FTP Securely

Summary
Chapter 18: RPC
Features of RPC
XML-RPC
JSON-RPC
Self-Documenting Data
Talking About Objects: Pyro and RPyC
An RPyC Example
RPC, Web Frameworks, and Message Queues
Recovering from Network Errors

Summary

Index
About the Authors

Brandon Rhodes is a consulting programmer who also teaches the


Python language professionally for organizations that are adding the
language to their tool set. He has spoken at PyOhio; at PyGotham;
at national PyCon conferences in Canada, Ireland, and Poland; and
at Django conferences in Portland, Wales, and Warsaw, where he
was delighted at the creativity of the organizers, who rented a circus
tent for the occasion. He will chair the flagship PyCon North America
conference in Portland in 2016–2017. Brandon is interested in how
ideas like the Clean Architecture can help programmers organize
code more effectively and in what we can learn from writers in other
fields about offering kind and actionable critiques of each other’s
work. He currently lives in tiny Bluffton, Ohio, with his wife Jackie
and their two cats.

John Goerzen is an accomplished author, system administrator, and


Python programmer. He has been a Debian developer since 1996
and is currently president of Software in the Public Interest, Inc. His
previously published books include the Linux Programming Bible,
Debian Unleashed, and Linux Unleashed.
About the Technical Reviewers

Originally from Canada’s great north, Alexandre Beaulne pursued a


bachelor’s degree in systems neuroscience at McGill University in
Montreal, followed by a master’s degree in financial engineering at
HEC Montreal. His studies, however, culminated in his attendance at
Hacker School in New York City. He has repeatedly made the
unsupported claim that he “gets” Haskell’s monads.
Another random document with
no related content on Scribd:
The Project Gutenberg eBook of The band played
on
This ebook is for the use of anyone anywhere in the United States
and most other parts of the world at no cost and with almost no
restrictions whatsoever. You may copy it, give it away or re-use it
under the terms of the Project Gutenberg License included with this
ebook or online at www.gutenberg.org. If you are not located in the
United States, you will have to check the laws of the country where
you are located before using this eBook.

Title: The band played on

Author: C. Shook

Illustrator: Hannes Bok

Release date: July 24, 2022 [eBook #68598]

Language: English

Original publication: United States: Fictioneers, Inc, 1942

Credits: Greg Weeks, Mary Meehan and the Online Distributed


Proofreading Team at http://www.pgdp.net.

*** START OF THE PROJECT GUTENBERG EBOOK THE BAND


PLAYED ON ***
THE BAND PLAYED ON
By C. Shook

[Transcriber's Note: This etext was produced from


Astonishing Stories, June 1942.
Extensive research did not uncover any evidence that
the U.S. copyright on this publication was renewed.]
I'm playing trombone in a little five-piece combo at Benny's Bar and
Grill when it happens. At the time we are slightly enlarged by the
presence of four of Bill Gundry's boys who are working out at the
park and have dropped by to sit in after they have finished, and also
we have present Eddie Smith and Mart Allen, who are a clarinet and
trumpet from The Pines.
Benny's is the local hangout for all the musicians in town, which is
the main reason I'm playing there; one night Whiteman himself
shows, when his band is working a theatre job at the Palace.
During the early part of the night we play our own arrangements off
the paper, but after about one o'clock we are liable to be jamming
with any of the boys who can find seats—like this night I'm telling
you about.
When I first notice it we are giving out on the Jazz Me Blues, which
is a fine ensemble number, and we are hitting it in a fast Dixieland.
I'm ragging the beat and I can feel the old slush pump tremble, but I
figure it's because I'm really solid at the moment and I keep on
sending.
Well, we clean up the Jazz Me's and I'm still hot so I hit right on the
B-natural for Stardust, with the boys jumping in, and we take it slow
and mellow through one chorus together. Then I stand up for a solo
on the second, and that is when it happens.
I don't know exactly what takes place, but I'm riding as I reach out for
a high one that's really out of the world. I feel the pump tremble
again, and then what happens is that I am really out of the world.
I mean I'm actually out of the world!
The vibrations from the trombone shoot right up my arms, and then
my whole body is shaking. I can't stop it. The lights fade away and
I'm trembling so I can't even hear the music ... and then I'm not
shaking any more, but Benny's is not there or I'm not there, and it is
daylight, which is crazy because it is only two A.M.
I am still kind of weak as I look around, and then I'm weaker still. The
least thing, I figured, was that I had had a spasm or something and
was in a hospital and it was the next day. But when I look around
again I know this is no hospital. I'm lying on a big flat rock and I am
dressed just as I was at Benny's. I even have my slip-horn beside
me.
But the thing that gives me the jumps is the grass. It is all purple.
And the trees and everything around have purple leaves where they
should be green. I look at my coat. It is a light blue. My pants are
black and my skin is white. Then I look at the grass beside me. I
reach out and pick a handful. It is plenty purple all right. And I'm
thinking as I look at it there in my hand that there is no place in the
world where the trees and plants are purple. No place in the world....
I know I am not asleep, but tell myself, "whenever you read about
anything like this happening, the hero always thinks he is asleep at
first and pinches himself to find out whether he is or not." So I reach
over for my slush pump and give it a good blast. I hear it all right.
Just to make sure, I do pinch myself lightly, but it is no soap. I am
here and the grass is still purple. I get up off the rock and walk about.
When I stand up I find that I am in a large meadow with nothing more
in sight than the rocks here and there and a few trees. The purple
grass is nearly knee-high. There is no sense in staying where I am,
so I pick up my trombone and begin hiking. After I have walked a
couple of miles, maybe, I come to a river. I am not surprised to find
that the water is a deep yellow. Nothing will surprise me now.
There must be some settlement along this river if there is anyone
living around here, I figure, so I follow along the way the water is
flowing. Three or four hours I tramp, and this is something I am not
used to. My feet are getting plenty beat and I take up the old bleater
and try The Stars and Stripes Forever, the only march I can think of.
This helps me stumble along in two-four time a while, but it uses up
what wind I have left, and pretty soon I am forced to sit down and
rest.
Well, I guess I doze off while I am resting, for when I come out of it I
find myself tied up tighter than a drum, and there in front of me are
four men or animals or something examining my trombone.
"Hey," I say.
At that they turn around and stare at me and I stare even harder at
them. And then I bust out laughing. For they look like four grown up
Donald Ducks. They have duck bills for mouths, and their feet are
webbed, but they have arms instead of wings. Their bodies are
covered with feathers, except for their heads which have a greenish
skin and would almost be human if it weren't for those bills and the
green color.
They begin to gab among themselves and I am surprised because I
am expecting to hear them quack like ducks. Their voices are low-
pitched and they talk way down in their throats something like
German, but though I don't understand it, I know it isn't. They are
talking about me, I can tell, and finally one of them comes over and
unties my feet and legs. But he leaves my arms fastened. He
motions for me to get up. I do and we start down the river with one of
them carrying my slip-horn and walking beside me, and the others
floating on the water like their barnyard relatives. This is the way we
come to their town.
It is only a short distance before the river widens considerably, and I
can see that it is dotted with little islands. The three men who are
swimming come close to shore and they walk with the one guarding
me, pointing out at one of the islands as they speak. I gather that
they don't know how to take me out there. One of them gestures at
the water and then at me, but I shake my head no. They gab some
more.
Finally one of them hops into the water and swims to the nearest
island. He is back in a flash with about ten other duck men who
immediately begin gabbing excitedly as soon as they see me. The
one holding my trombone says something to them and they shut up
and get back into the water. They push me to the edge of the bank
and then one of them takes hold of my legs and pulls me into the
river on his back. He almost sinks before the others can grab me too
and help him out, and even at that they are as far down as low 'E on
the doghouse when they start out for the large island almost in the
center of the river. This must be their main village, I figure, and it
turns out that I am right. Once we get to the village they untie my
arms and hand me my horn. I guess they figure I can't get off the
island now.
Well, I don't know what I'm in for, but whatever it is, it is postponed
for a while because they take me to a small hut and leave me. There
is nothing in the hut except a pile of pale purple straw in one of the
corners, but I don't need anything else. I am plenty weary and I flop
on the straw and am asleep in a minute.
When I awake again, it is morning. I get up and walk to the door and
there are four or five of the duck men standing nearby. They see me
come out and they smile, but when I start to move about, they point
back into the hut and so I go back in and sit down. I am still sitting
there when some others come in with some trays of food. These are
a lot lighter green in the faces and I guess they must be the women
of the race. They have a lot of stuff that looks like purple lettuce, and
different vegetable-looking things on the trays, and they act as if I am
to eat them. After I taste them they are not so bad. I even drink a cup
of the yellow water, and it is not so bad either, only sweeter than I
would want ordinarily.
Once I have finished, I go back outside. Right in front of the door is
the duck man which carried my slush pump on the walk yesterday,
and when he sees me he smiles and comes over and hits me on the
back with his hand. I do the same to him and he smiles wider. This
means we are friends, I figure, like shaking hands, so I smile too. He
motions for me to come with him.
Some of the others come with us, and we walk all around the village
which is not so large. My friend seems to be the head man. He walks
with me, and the rest stay a little behind. I am being treated like I
have the key to the city. All around are the small huts like the one I
slept in, and there isn't much else to the town except for a couple of
larger buildings which are made of the same purple wood that the
huts are made of. I figure that if three people occupy each hut, there
are maybe six hundred altogether in the town. There are some other
villages on the islands I can see, but they are not so large.
After we have toured for an hour or two, the chief takes me to one of
the large buildings and we go inside. City hall, I think. And sure
enough we go right to the mayor's office, which is a little room
partitioned off from the rest. There are a couple of stools or
something there, and the mayor hops up on one with his thin legs
underneath him. I sit on the other. He smiles and I smile, and I think
this is getting pretty dull and maybe it would be better if he weren't
so friendly because anyway I would have some action. I think I will
get away and go over and try a few numbers on the horn.
Finally after we sit there smiling for some time, he points to himself.
"Ogroo," he says. His name.
So I hit myself on the chest and tell him my name.
Then he walks around the room and points to the stools and the
table and the walls. He says words at each one. He is trying to teach
me their language, so I repeat each one after him. We play this little
game for quite a while and then we have food brought in. While we
are eating, Ogroo is telling me the name of what I am chewing on
and it doesn't taste nearly as good as it did when I knew it was plain
food only.
When we finish eating, Ogroo gets up and takes me back to our hut.
I am supposed to stay there, I see. Anyway I think I will get out a few
riffs just to keep in practice, so I go inside for my slush pump. It isn't
there.
So this is why the so and so was keeping me away all the time he
did, I say to myself. I am plenty burned up, but there is nothing I can
do.
When Ogroo shows up the next morning, I try to tell him about it, but
he pretends not to understand. Instead we go through the same
routine as the day before, only we eat in another room and he shows
me some new words.

Well, the horn doesn't show up and I can tell my lip is slipping out of
shape. It is now three weeks since I got into this place and I have
nothing different. I am able to talk to the duck men, though, and I will
say for Ogroo that he is a good teacher since I am never more than
a poor C in languages when I am in school.
And then one day Ogroo says to me, "Mac, I am happy to tell you
that we have located the object which you call a trombone. One of
the men took it and has had it hidden. He feared it was a thing of evil
power. I assured him it was not, though I was not so sure myself. I
hope that I was correct."
"Ogroo, old boy," I tell him, "the trombone is strictly a thing of good
power as I will show you if you will produce it. It is a thing of music."
"Why, Mac," says Ogroo, "why did you not say this before. We have
music too. It is our great pride."

Now during the time the mayor has been educating me, there is one
of the large buildings which I have never been in. I have asked
Ogroo about this and he has always said they were saving it as a
surprise for me. But now he gets up and starts out the door.
"You will know of the surprise at last," he says.
And he leads me to the big barn which has always been closed.
Well you can hang me for a long-hair when we get inside, for there
are about two hundred of the duck people shuffling around like a
flock of jitterbugs, and ten or twelve players are giving out with some
corny rhythm on a raised platform for a bandstand. They have about
three-fourths percussion, mostly tom-tom-like drums, but there are a
few gut buckets of some kind which they do not appear to play for
nothing.
Ogroo looks at me.
"Is it not magnificent?" he says.
"Well," I say, "it is all right, but where I come from it is done in a
slightly different manner. I shall be happy to show you if you will
kindly produce my horn."
I can hardly wait to lay my lip into a solid beat the more I listen to
these ickies peeling it off the cob, and when one of the men finally
brings in old Susie, I kiss her lovingly. She is in fine shape.
Old Ogroo stops the noise. He makes an announcement, and
everything is quiet as I step up with my slush pump. It is like
Goodman at Carnegie Hall.
Everybody crowds around as I give out with the Royal Garden Blues.
I see I have them overcome and I begin to send softly as I hear one
of the boys pick up the beat in the background. He is not so awful at
that. After I have taken two choruses, one of the gut buckets has
picked up the melody and I dub in the harmony for him. The crowd is
beginning to sway slightly when I slide into Rose Room and pretty
soon they are on the jump until it is worse than a bunch of the
alligators at a Krupa concert. All in all it is a very successful
performance indeed.
By the time I have finished, I see that I have first chair cinched, and
the crowd is eating out of my hand.
This is by no means the last performance I give. I soon have the
duck men in the band playing the best jive they can give out with, but
it is rather sorry without any reeds and only one brass. They are
entirely unable to play any wind instruments, though, so I am forced
to make the best of it.
We play for three or four hours, and when old Ogroo and I finally
leave the hall, I am cheered all down the line. I am really terrific.
"Mac," Ogroo tells me when we are outside, "you are wonderful. We
appreciate music and in fact it is the biggest thing in our lives here.
But you are lucky that we are the ones that found you on your arrival
and not the animal men from the woods. They are very ignorant, and
your trombone would have meant nothing to them."
Well, this is the first time I have heard about these animal men, and I
figure maybe they are a little closer to civilization than Ogroo thinks. I
ask him about them.
"They are our enemies," he says, "and are much stronger than we.
They control all the land surrounding us, but on the water we have
the best of them and they never try to attack us here. However we
must venture into the forests sometimes, and then we are in
constant danger. Many of us are killed or captured each year."
I think no more about this, however, and I spend my time playing for
the concerts they have every day. I am very popular with one and all.
But a few weeks afterwards, Ogroo asks me to join one of their
expeditions into the forests.
"We have to gather our monthly food crop," he says. "And everyone
in the community has to do his share. As you are now one of us, it is
only fitting that you come along."
Well, of course I clap Ogroo on the back and tell him I will be very
pleased to go, and, in fact, I am not worried much about their
enemies because I am a good hundred pounds heavier than any of
the duck men and I figured I will be plenty for these animal people to
handle. As it turns out, I am right in this respect, but I hit one bad
note which almost costs me my life and very possibly does so for my
friends.
There are about twenty of us that start out. Each one is carrying two
large baskets made out of the purple reeds which grow in the
swampy lowlands of the islands. Before we begin, I tell Ogroo that I
will swim over if he will carry my baskets, but he does not
understand what I mean until I dive into the river and demonstrate.
This exhibition is a great surprise to everyone, as they have never
seen anything like it before. When I have climbed out on the other
bank, the rest of the party jumps in and floats over rapidly. Then we
begin walking toward the deep purple forests.
We hustle around all morning, and there is no trouble. What we are
gathering is some kind of mushroom that grows around the foot of
the trees, and we are looking for certain vegetables which have to
have the shade to amount to anything. It is in the afternoon shortly
before we are ready to depart that one of the men who is acting as a
lookout gives the alarm. There is a group of animal men hunting in
the woods and they have spotted us. I am curious to see how these
men appear and I hang back some while the others run as fast as
they can on their webbed feet toward the river; they are luckily near
the water, for they could never outdistance these land people.
Well, I know I can catch up, so, as I say, I wait a couple of seconds.
But when I have a gander at our enemies, I am off faster than a
sixty-fourth beat, and it is none too soon. As a matter of fact, it is a
wonder that I am able to run at all, for what I see charging at me is
about ten big two-headed monsters running on four legs sometimes,
and sometimes on two. They are not quite as large as a man when
they stand up, but they are enough to send me heading for the river.
I dive in just before they get there and I am churning the water like
the Queen Mary when I hit the island. Then I look around to see
what has happened. The monsters are lined up at the edge of the
river watching us, but they do not try to cross over. They are pointing
at me and acting excited, and Ogroo laughs.
"They have never seen anything like you," he says. "But we are safe
now for they cannot—what did you call it—swim?"
I say that is very lucky indeed, as they are remarkably tough
appearing babies, but we do not bother any more with them and
pretty soon they have disappeared into the forests. It is over a week
later that I realize the bad note I hit and what it is going to do to us.

I am sitting on a rock near the island's edge this morning trying to


work a little oil out of some plants I have found. I wish to apply some
of this to my slip-horn, as the action is getting somewhat gummy and
I have neglected to bring any of these necessities with me when I
ride out of Benny's. While I am doing this, I see some of the animal
men come out of the forest and start toward the river. This is odd
since I am told they never do this. They do not see me so I stay
where I am, and I see two of them talking and arguing with the
others. These two seem to have some idea, and the rest are telling
them no and shaking all their heads to do it. It must be a real
argument, I think, with two mouths to speak with at the same time. I
wonder if one of these animals could get two part harmony with a
pair of trumpets, but then I recall that they are strictly ickies, as old
Ogroo has explained to me.
So I watch them some more, and pretty soon the two who are talking
most jump right into the river and begin to throw their legs up and
down and flail their arms, and they are soon moving across the water
just as if they could swim. In fact they are swimming, and this excites
me greatly since Ogroo has said they could not do this. I get up
quick and begin to hunt Ogroo and luckily I find him right away. I tell
him what is taking place and he is also greatly excited.
"I'm afraid we have done it now, Mac," he says to me as we run back
to where I saw the animal men. "Those creatures are highly imitative
—it is the only way they seem to gain any new skill—and they must
have been thinking over what they saw when they watched you swim
away from them last week."
By the time he has told me this we are back where I have left my
trombone, and are just in time to see the last of the group jump into
the river. They are able to make the nearest island, which has a
small village of maybe fifty people. Well, I do not like this part of my
story much and I will cut it short. What happens is that the animal
men wipe out that little village in ten minutes and right before our
eyes. The animals are extremely happy and we see them grinning
with their ugly double faces as they return to shore.
"Quick," says Ogroo, "we have only a little time. They will bring the
rest of their tribe immediately and attack all the rest of our islands.
We must hide."
I grab my horn and we hurry to notify our own village. But we are
stopped. There is no place to go.
Then we hear the menacing roar of the animal men. As we turn, they
can be seen jumping into the river one by one. There are hundreds
of them.
I turn resignedly to Ogroo. I start to tell him that we must get
something to defend ourselves with, but the people are so paralyzed
with fear that I know we can never do it. And then before I can say
anything, I see the villagers coming slowly toward Ogroo and me.
They seem very angry indeed.
Ogroo speaks hurriedly. "They are after you, Mac. You're the one
that showed the animal men how to swim and they are after you. In
the state they are in, you will probably be killed. I'll try to reason with
them, but it is almost certain to be useless, for they might even be
after me. I have been your sponsor."
He claps me on the back and then starts toward his people. I do not
know what to do. I can see a detachment of the animal people not
more than a hundred yards off shore, and the duck men are moving
angrily toward me not much farther away. I see them push Ogroo
aside as he begins to say something to them.
I move my trombone nervously. And suddenly I see my only chance.
I am shaking before I start, but I fit the mouth-piece to my lip and
begin to blow. I take a fast scale and I hit the B-natural for Stardust
at least an octave higher than it was ever played before. I have got
to ride high and fast.
Well, I close my eyes and I am shaking so that I hardly notice the
vibrations of the horn begin, but when I reach the E in the third
measure, I know I am feeling what I felt in Benny's. So I keep
pushing it, and the last I remember I am trying to reach the high C
closing.
That is when I pass out....

When I come to this time, I am almost afraid to open my eyes. My


ears are still buzzing, and I am just beginning to realize weakly what
has happened when I hear voices around me which are not part of
the score. They are speaking in English. I open my eyes then, and
look around.
I find that I am surrounded by a crowd of people who are saying to
one another to give him air and to take it easy, and I perceive that I
am on a city sidewalk, and in fact, as I look up, I see that it is
somewhere on Fifty-Second Street. A perfect landing for a tail gate
artist, I think as I sit up.

When the crowd sees me do this they move in even closer, all the
time telling one another to give me air, but finally one of them claims
that he is a doctor and he helps me up and I go with him and another
man in uniform who is probably a policeman. They tell me that they
are taking me to a hospital, and I do not remember much after that.
When I wake up again, I am in the hospital.
A doctor has hold of my wrist, and when he sees me open my eyes
he says, "How are you feeling now?"
I tell him okay.
"Well," he says, "you seem to have had quite a shock, and perhaps
you do not want to discuss it now, but your manner of dress and this
instrument which you have brought with you have excited my
curiosity no little."
I see that my trombone is on the table near him.
"Why no, I do not mind telling you," I say, "though you might find it
hard to believe what I have gone through. But first—where am I and
what month is it?"
The doctor lets go of my wrist.
"You are in New York," he says, "and it is September of the year
Twenty-five O Seven."
"Just a minute," I say, "I must misunderstand you. I thought you said
the year was Twenty-five O Seven."
"That is what I did say," says the doc.
"But that cannot be true," I tell him. "Why I was born in 1914 and it is
not possible for me to be living at such a period in history."
He picks up my wrist again.
"You are a little excited," he says, "and I think you had better get a bit
more rest. Then we can talk this thing over later."
I see him say something to the nurse who is standing in the doorway
all this time, and she nods as he goes out. I start to call to him but I
figure it is no use. So I go back to sleep.
The second time I wake up, the doc is back and he has four other
men with him. They are sitting in chairs around the room watching
me; as soon as they see I am awake they come over to my bed.
"These men are very much interested in your case," the doctor tells
me. "I have been telling them about your statement and the strange
circumstances attending your appearance on Fifty-Second Street
today. Now I feel that you have had enough rest and I want you to
tell them the entire story."
Well, I know they will figure I am off the beat, but I start at the
beginning and relate the whole story anyway. They do not say a
word until I have finished. Then they look at each other and have a
whispered session on the other side of the room. Finally one of them
speaks up.
"Mr. McRae," he says, "we want to question you a little further if you
don't mind. Will you please put on your clothes and come with us?"
I do like they say since there is nothing else for me to do, and when I
am dressed they take me down the hall to a big light room which is
practically all glass, and they ask me to sit down at a large table.
"Now, Mr. McRae," the first doc says, "I want you to do something for
me."
He hands me ten little blocks of different sizes and informs me that I
am to place them in the proper holes in a board which he has ready
for just that purpose. I do as he asks.
These seems to surprise him, but he is all set with another test, and I
spend the rest of the afternoon playing these little games, until I am
plenty weary of it and I say so to him.
"Well," he says, "as you likely know, we have been trying to
determine your sanity. I will say that you have demonstrated yourself

You might also like