Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi John Allwork - The full ebook version is just one click away
Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi John Allwork - The full ebook version is just one click away
https://ebookmass.com/product/programming-the-raspberry-pi-third-
edition-getting-started-with-python-simon-monk/
https://ebookmass.com/product/hacking-electronics-learning-
electronics-with-arduino-and-raspberry-pi-2nd-edition-simon-monk/
https://ebookmass.com/product/raspberry-pi-electronics-projects-for-
the-evil-genius-1st-edition-norris/
https://ebookmass.com/product/arduino-and-raspberry-pi-sensor-
projects-for-the-evil-genius-1st-edition-chin/
Programming Kotlin Applications: Building Mobile and
Server-Side Applications With Kotlin Brett Mclaughlin
https://ebookmass.com/product/programming-kotlin-applications-
building-mobile-and-server-side-applications-with-kotlin-brett-
mclaughlin/
https://ebookmass.com/product/integration-of-mechanical-and-
manufacturing-engineering-with-iot-r-rajasekar/
https://ebookmass.com/product/beginning-programming-with-python-for-
dummies-3rd-edition-john-paul-mueller/
books
books books
Programming
# constants
and gained his MSc at UMIST.
”
T%H:%M:%S.00Z
skill and terminology such as utterances, intents, slots, and conversations After two years working for ICL as
m - % d
are explained. Debugging your code, saving user data between sessions, a design engineer, he returned to
UTC_FORMAT = “ % Y - %
a z o n . c o m / a u t h/o2/token”
m
https://api.a
S3 data storage and Dynamo DB database are discussed. UMIST where he graduated with a
PhD in ‘Design and Development of
Microprocessor Systems’.
TOKEN_URI = “
In-skill purchasing, enabling users to buy items for your skill as well as
s constants
certification and publication is outlined. Creating skills using AWS Lambda
# Token acces
He worked for several years in
and ASK CLI is covered, along with the Visual Studio code editor and technical support and as manager
n t i a l s . k e y [ ‘ CLIENT_ID’]
rede T’]
CLIENT_ID = c ‘CLIENT_SECRE
local debugging. Also covered is the process of designing skills for visual in electronics distribution, working
closely with Intel engineers and
e n t i a l s . k e y [
= cred
displays and interactive touch designs using Alexa Presentation Language.
CLIENT_SECRET
later designing Inmos Transputer
systems.
The second half of the book starts by creating a Raspberry Pi IoT “thing”
to control a robot from your Alexa device. This covers security issues and Having taught electronics at
s_to ken():
methods of sending and receiving MQTT messages between an Alexa Manchester Metropolitan University,
he retired in 2011 but retained
def get_acces
device and the Raspberry Pi.
his interest in electronics and
= {
token_params t_credentials
”,
programming. His other occupations
Creating a smart home device is described including forming a security consist of traveling, walking,
p e ” : “ c l i e n
profile, linking with Amazon, and writing a Lambda function that gets geocaching and spending time on “grant_ty a c t i ve_events”,
e x a : : p r o
“scope”: “al
triggered by an Alexa skill. Device discovery and on/off control is his allotment.
LIENT_ID,
demonstrated.
l i e n t _ i d ” : C
“c
Next, readers discover how to control a smart home Raspberry Pi display
n t _ s e c r e t ” : CLIENT_SECRET
from an Alexa skill using Simple Queue Service (SQS) messaging to “clie
switch the display on and off or change the color.
A node-RED design is discussed from the basic user interface right up to
}
configuring MQTT nodes. MQTT messages sent from a user are displayed Elektor International Media
on a Raspberry Pi. www.elektor.com
token_headers
= {
o n / j s o n ; c h a r set=UTF-8”
”: “applicati
A chapter discusses sending a proactive notification such as a weather “Content-Type
alert from a Raspberry Pi to an Alexa device. The book concludes by
}
explaining how to create Raspberry Pi as a stand-alone Alexa device.
I , h e a d e r s = t oken_headers
s
Dr John Allwork
ts.post(TOKEN
_UR
n s e = r e q u e
respo
● All rights reserved. No part of this book may be reproduced in any material form, including photocopying, or
storing in any medium by electronic means and whether or not transiently or incidentally to some other use of this
publication, without the written permission of the copyright holder except in accordance with the provisions of the
Copyright Designs and Patents Act 1988 or under the terms of a licence issued by the Copyright Licencing Agency
Ltd., 90 Tottenham Court Road, London, England W1P 9HE. Applications for the copyright holder's permission to
reproduce any part of the publication should be addressed to the publishers.
● Declaration
The Author and Publisher have used their best efforts in ensuring the correctness of the information contained in
this book. They do not assume, and hereby disclaim, any liability to any party for any loss or damage caused by
errors or omissions in this book, whether such errors or omissions result from negligence, accident, or any other
cause.
All the programs given in the book are Copyright of the Author and Elektor International Media. These programs
may only be used for educational purposes. Written permission from the Author or Elektor must be obtained before
any of these programs can be used for commercial purposes.
● F irst edition
© Copyright 2023: Elektor International Media B.V.
Editor: Alina Neacsu
Prepress Production: Jack Jamar | Graphic Design, Maastricht
Elektor is part of EIM, the world's leading source of essential technical information and electronics products for pro
engineers, electronics designers, and the companies seeking to engage them. Each day, our international team develops
and delivers high-quality content - via a variety of media channels (including magazines, video, digital media, and social
media) in several languages - relating to electronics design and DIY electronics. www.elektormagazine.com
●4
Contents
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
●5
Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi
●6
Contents
4.14 AMAZON.SearchQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.15 ASK SDK Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.16 Intent error logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.17 Language understanding NLU and Automatic speech recognition ASR . . . . . . . . 82
4.18 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
●7
Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi
●8
Contents
●9
Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi
● 10
Contents
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
● 11
Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi
Dr. John Allwork was born in 1950 in Kent, England and became interested in electronics
and engineering at school. He went to Sheffield University on their BEng Electrical and
Electronic Engineering course. There he developed an interest in computers and continu-
ed his education on an MSc course in Digital Electronics and Communication at UMIST.
After two years working for ICL as a design, commissioning and test Engineer he returned
to UMIST where he graduated with a Ph.D. in ‘Design and Development of Microprocessor
Systems’.
He worked for several years in technical support and as a manager in electronics distribu-
tion, working closely with Intel Application Engineers and followed this with design work
using the Inmos Transputer systems.
Having taught at Manchester Metropolitan University he retired in 2011 but has kept up
his interest in electronics and programming as well as his other occupation of travelling,
walking, geocaching and spending time on his allotment.
● 12
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
Introduction
This book is aimed at anyone who wants to learn about programming for Alexa devices
and extending that to Smart Home devices and controlling hardware, in particular the
Raspberry Pi.
It covers Alexa programming concepts from the basic concepts of Alexa Voice service, the
interaction model and the skill code which runs on AWS (Amazon Web Services) Lambda.
It takes the reader through all stages of creating skills to certification and publishing,
including writing skills that involve in-skill purchasing. It discusses different ways of crea-
ting skills, then moves on to creating visual skills using APL (Alexa Presentation Langua-
ge) for screen-based Alexa devices.
The book then moves on to cover different ways of controlling hardware including the
Internet of Things and Smart Home devices. There are interfaces with the Raspberry Pi
using MQTT and SQS communication, displaying on the Pi using Node-RED and Python
code.
Although mostly based on Python, Node.js examples or links are also provided. The full
code is provided in a separate document.
Please note that Alexa skill development, the developer console and APL versions have
changed since writing this book, so please bear with the author if there are slight diffe-
rences.
I do not pretend to know all there is about Alexa and Raspberry Pi programming – they
seem to advance faster than I can follow! I have a background in hardware and software
design. I am sure that there are areas where some programmers may be offended by my
code and that there may be better ways to write it, but I have written and tried all the
examples and know they work. I hope the examples will spur you on to find solutions to
your own problems. Should you need more information then please try the online help
and the Raspberry Pi or Alexa forums: alexa.design/slack is particularly good. There are
plenty of programmers out there willing to help solve your problems, often extremely
quickly; certainly faster than I would get back to you!
I wish to thank my friends for encouraging me, especially Dr. Hugh Frost, Andy Marsh
and Dr. John Nichols; the Alexa staff: in particular Jeff Nunn, Jeff Blankenburg and Ryan J
Lowe; helpers on the alexa.design/slack group, including Andy Whitworth; subscribers of
my YouTube and GitHub channels who have made encouraging comments; and the many
anonymous people on the internet, forums, blogs and websites who have answered many
questions, not just my own – keep up the good work. Not least of all I would like to thank
my wife Penny, for supporting me throughout.
● 13
Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi
In 2017, Amazon released a combination of the Dot and Show, called the Echo Spot. In
the same year, the Echo Show was released and featured a slanted, 7-inch touchscreen,
camera and speaker. This later changed to a 10-inch screen (Echo Show 10), and more
recently, added a 360-rotating display.
The Echo Show 5 came in 2019, (2nd gen in 2021), as well as Echo Show 8 and an Echo
Show 15 in 2021 designed for wall mounting.
There are other devices too, including the Button, Flex, Input, Look and recently the Astro
robot.
Here are some of my devices (not including smart devices). From the top: Echo Show 8,
Fire TV stick, Echo Auto, my original Echo dot, and the Echo Spot.
● 14
Chapter 1 ● Alexa History and Devices
Even though many devices have a screen, you should always design for ‘voice first’.
The interaction model is what your users say and how they communicate with your skill.
AWS Lambda is a serverless, event-driven computing service that lets you run your code.
Lambda can be triggered by many AWS services and you only pay for what you use.
When a user interacts with an Echo device, AVS sends a request to the skill which is run-
ning on AWS Lambda. The skill replies with a response that is turned into a speech and/
or visual response back to the user.
1.2 Pricing
Although there are charges for AWS Lambda, the AWS Lambda free tier includes one
million free requests per month and 400,000 GB-seconds of compute time per month, as
well as 500 Mb storage. As you can see, this is more than enough for a beginner. For more
information, see https://aws.amazon.com/lambda/pricing/
For developers whose skills use more than this, Amazon provides Promotional Credits
which reward those who build cloud-hosted applications, software, or tools for sustaina-
bility-related work.
For FAQ see reference 1.
● 15
Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi
We’ll be concentrating on Custom skills. Blueprint pre-built skills are also available and
easy to develop but have reduced options for user experience. We’ll also study smart
home skills, of course.
1.5.2 Invocation
The ‘invocation’ is the phrase used to trigger your skill, e.g.: ‘Alexa, open Johns’ weather
skill’ or ‘Alexa, launch my cooking skill’.
1.5.3 Utterances
Utterances are the phrases that your user says to make a request. There can be many
ways to achieve the same result, e.g.: What’s the time? What’s the time now? What time
is it? – you will have to think of as many possible ways that your user can interact with
your skill. Nevertheless, Alexa will build your model and try to find similar utterances.
All the possible ways to do this can be difficult to describe (considering, for instance, how
many different ways and types of pizza someone might order), so Amazon has recently
announced Alexa Conversations to help with this. For more information, see reference 3.
● 16
Chapter 1 ● Alexa History and Devices
• Built-in Intents
- Standard built-in intents: These are provided by default by Amazon that every skill
must have, e.g.: AMAZON.StopIntent, AMAZON.CancelIntent, AMAZON.Fallback-
Intent, etc. and include: AMAZON.YesIntent, and AMAZON.NoIntent, intents for
screen control (e.g., scroll up/ down/ left / right) and media intents (pause, repeat,
resume), and also an AMAZON.SendToPhoneIntent. You can see these when you
add an intent, and select “Use an existing intent from Alexa’s built-in library”
- The Alexa Skills Kit also provides a library of specific built-in intents and includes
intents such as Actor intents, Books, Calendar, LocalBusiness, Music, TV, Series,
WeatherForecast, etc.
These intend to add functionality to your skill without you having to provide any sample
utterances. For example, the WeatherForecast includes a search action (What is), an ob-
ject (WeatherForecast), location (London) and date (tomorrow) .
We won’t cover them in this book, see:
https://developer.amazon.com/en-US/docs/alexa/custom-skills/built-in-intent-library.html
• Custom Intents
• A Launch request that runs when our skill is invoked (as a result of the user saying,
‘Alexa open …’ or ‘Alexa, launch ...’).
• An Intent request which contains the intent name and variables passed as slot values.
• A SessionEnded request, which occurs when the user exits the skill, or there is an
unmatched user’s response (although you may be able to trap this out with AMAZON.
FallbackIntent).
This information is all packaged and sent as a request (and returned as a response) as a
JSON file. We’ll look at the JSON code later.
1.5.5 Slots
A slot is a variable that contains information that is passed to an intent. The user might
say ‘What’s the time in London’. Here ‘London’ (or Paris or Rome) is passed as a slot
variable to the intent code.
● 17
Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi
Amazon provides built-in slot types, such as numbers, dates and times, as well as built-
in list types such as actors, colors, first names, etc. In the previous example, we could use
AMAZON.GB_CITY which provides recognition of over 15,000 UK and world-wide cities
used by UK speakers.
However, some of these slots are being deprecated (including AMAZON.GB_CITY in favour
of AMAZON.CITY), so check. The full list is covered at ‘List Slot Types:
https://developer.amazon.com/en-US/docs/alexa/custom-skills/slot-type-reference.html#list-slot-types
Developers can create custom slots for variables that are specific to their skill.
When we define our utterances, slots are shown in curly braces: {city}, e.g.:
Example:
Intent GetTimeIntent
Utterance What is the time in
Slot {city}
The GetTimeIntent will trigger a function in your skill (which you might sensibly call Get-
TimeIntentFunction).
Slots are used to pass data from your VUI (voice user interface) to your program. As an
example, we might have an Alexa skill that asks for your name.
● 18
Chapter 1 ● Alexa History and Devices
At this point, the slot data is lost unless you save it. You can save data in a temporary
folder but more often data is stored in session attributes, you will find out later.
1.5.7 Endpoints
The endpoint is where your code is hosted. You can choose an Amazon-hosted, AWS
Lambda ARN (Amazon Resource Name) site or host it yourself on an HTTPS site that you
manage.
If you choose an AWS site, it will give you an ID beginning arn:aws:lambda and look
like: arn:aws:lambda:<region>:function:<functionID>. You skill also has an ID looking
something like this: amzn1.ask.skill.a0093469-4a50-4428-82e6-abcde990fgh3.
1.5.8 Regions
If using an AWS-hosted site, you should host your code in a region near to your user.
We’ll see that there are lots of regions, but for some skills currently only North Virginia
is available.
If the shouldEndSession parameter is ‘true’ the skill terminates, otherwise, the session
remains open and expects the user to respond. If no user input occurs, a reprompt is
sent if included in the code. If the user still doesn’t respond (after about 8 seconds), the
session ends 4.
Skill connections and progressive responses may override these rules. For example, if
a skill has to get further information from another source, e.g., when your taxi will be
available, or pizza delivered.
● 19
Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi
The basic JSON request contains information on the active session, the context, the sys-
tem information on the application (ID), user, deviceID, and the request itself:
{
“version”: “1.0”,
“session”: {
( ..session parameters)
}
“context”: {
( ..information on the Alexa device)
}
“System”: {
…
“request”: {
“type”: “IntentRequest”,
“requestId”: “amzn1.echo-api.request.745d…9a”,
“locale”: “en-GB”,
“timestamp”: “2022-04-14T09:27:01Z”,
“intent”: {
“name”: “HelloWorldIntent”,
“confirmationStatus”: “NONE”
}
}
The reply JSON contains is the response speech and reprompt, as well as the state
of the EndSession and session attributes.
{
“body”: {
“version”: “1.0”,
“response”: {
“outputSpeech”: {
“type”: “SSML”,
“ssml”: “<speak>Welcome, you can say Hello or Help.</speak>”
},
“reprompt”: {
“outputSpeech”: {
“type”: “SSML”,
“ssml”: “<speak>Welcome, you can say Hello or Help.</speak>”
}
},
● 20
Chapter 1 ● Alexa History and Devices
“shouldEndSession”: false,
“type”: “_DEFAULT_RESPONSE”
},
“sessionAttributes”: {},
“userAgent”: “ask-python/1.11.0 Python/3.7.12”
}
}
The response can get more complicated if there is a dialog session occurring (i.e., if the
program hasn’t enough information to complete the intent request and has to ask for
more).
We’ll look at the information passed in the JSON request and response and how to extract
it in a later chapter.
The current categories are: At home, Kids recommended, Learning and knowledge, Fun
and Games, Storyteller, Greetings and Occasions, Communities and Organizations, and
Business 6. We won’t cover them here.
● 21
Programming Voice-controlled IoT Applications with Alexa and Raspberry Pi
1.10 Summary
We’ve seen how the Alexa devices have developed from the original voice-only device to
screen-based and robot devices, how the Alexa Voice service works and looked at termin-
ology – Invocation, Utterances, Intents and Slots. Finally, we looked at a skill session and
how data is passed and saved during a session and between sessions.
In the next chapter, we’ll see how to set up an Alexa account before moving on to our
first Alexa skill.
1.11 References:
1. https://aws.amazon.com/lambda/faqs/
2. https://developer.amazon.com/en-US/docs/alexa/ask-overviews/list-of-skills.html
3. https://www.youtube.com/watch?v=1nYfRvg976E
4. https://developer.amazon.com/en-US/docs/alexa/custom-skills/
manage-skill-session-and-session-attributes.html
5. https://www.json.org/json-en.html
6. https://blueprints.amazon.com
● 22
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
Other documents randomly have
different content
“Got a little cold and the company doctor told me to
stay out for a while,” answered the whittler, gravely.
“What’s on your mind today, anything in particular?”
“I heard the Hydes say so,” was the reply. “They are
going over there tonight and kill him or something!”
“Very well, Colonel,” said Terry. “I’m glad you are going
along, because I feel that this is likely to be a fairly
tough situation.”
They left the tent and Terry went to hunt up the other
boys, first swearing little Jimmie to secrecy. “Don’t
breath a word of it,” he told the boy. “We want to save
this old man from a severe beating and we also want to
capture him for his part in the business that has been
going on around here. So it will be the best thing if you
keep very quiet about it.”
“Mr. Vench and Mr. Douglas, I want you to start right 183
away for Rideway and get the sheriff,” ordered the
colonel. “We can’t arrest this man ourselves, but he
must do it. It may be that we shall have trouble with
the Hydes, and anyway, the sheriff is always saying that
we interfere with his affairs on the Ridge. You may have
trouble with the sheriff, but if you do just tell him that
your colonel requests him to come to the cabin.”
“We will take side arms with us,” said the colonel,
buckling on a revolver belt. “We won’t have to use
them, I trust, but at least we’ll be prepared.”
“You do, heh?” grunted the son with the whip. “You all
can have this old man if you want him, but you can’t
stop us from whipping the daylights out of him. This is
the dog that burned our barn down.”
The Hyde boy raised his whip but the colonel reached 186
up, jerked it from his hand and threw it into a far
corner. The Hydes grew red and clenched their fists.
“We know all about Mr. Maul,” said the colonel. The
Hydes snapped to attention.
“Old Maul is very much alive,” retorted the colonel. “He 187
is the one who is directing this whole campaign. Did you
think this old man was doing it for fun? He has been
paid by Maul to keep this thing going, and he planned
to burn you out of your house pretty shortly.”
The trouble was explained by the colonel, but the sheriff 188
shrugged his shoulders. “I think you would have done
well to have minded your own business, sir,” said the
officious man. “This man needs a sound horsewhipping.
If it had been your house he burned you would be the
first one to whip him. What am I supposed to do?”
“You will arrest the old man and put him where he will
be safe,” said the colonel. “As for the Hydes, you can’t
do anything but send them home.”
“Sheriff,” said the colonel, hotly. “I’ll tell you what I’m
going to do with you. I’m going to let the world know
how a ghost terrorized the Ridge here for years, right
under your nose, and you never found out who it was.
I’m going to relate how my boys discovered the whole
thing, and if you ever get another job with responsibility
to it, I don’t know what the people of this county are
thinking of!”
Instead he vented his fury upon the Hydes. “Get out of 189
here and get home,” he snarled. “Don’t ever let me
catch you in any trouble again as long as I’m sheriff on
this Ridge! You, Peter Vancouver, come here while I put
the handcuffs on you.”
190
18
The Last of the Ghost
The Hydes had slunk off and were lost in the darkness.
The sheriff had handcuffed Peter Vancouver and now
they were on their way to the local jail in Rideway. After
putting the light out the colonel and the members of the
Ghost Patrol left the cabin and started over the trail to
camp.
“A little bit, sir,” Douglas replied. “He made a lot of noise 191
when we explained things to him. But he did come
finally, though he talked so much and made so much
noise on the way up that Vench and I felt like rolling
him in the mud!”
But none came. They reached the line of patrol that the
sentry was supposed to make, but they did not run
across the man who should have been patrolling. In
bewilderment they stopped.
“Be quiet, on your lives, men!” was his first word, after
he had licked his dry lips. “The man who tied me up is
in the camp, up to something.”
“You say the man went toward the camp?” was the
colonel’s next question.
A match was struck. The flare of the tiny blaze showed 194
a set, stern face. The man at the supply wagon bent
forward with the match.
“Just got you in time,” said the colonel, holding the man
in a tight grip. “Am I right when I say your name is
probably Maul?”
“I’ll ask you to spend the rest of the night with us in our
guard tent, Mr. Maul,” said the colonel, his revolver in
his hand. “I may as well tell you that your ghost game is
up, and the ghost of the Ridge safe in the county jail. I
think you’ll find yourself in pretty heavy trouble for
attempting to fire our camp.”
“Very well, Mr. Rowen,” returned the colonel, still mildly. 197
“You say everything has been pushed against you. But
you would not believe Mercer’s word about the ghost
starting the stampede. Now we have the word of the
ghost himself that he started it and that Jim called out
to him. Then, against orders, you took your revolver
with you and shot it off at an improper time. Under
those circumstances, do you still feel that you had
everything against you on this camping trip?”
Before the morning was over the cadet battalion was 198
marching toward the school, leaving Rustling Ridge and
its many exciting memories behind them.
A Descriptive Catalog of
FALCON BOOKS FOR BOYS
by Capwell Wyckoff
by Capwell Wyckoff
by Capwell Wyckoff
When Cadets Don and Jim Mercer and their friend Terry
Mackson were ordered by Colonel Morrell of Woodcrest
Military Academy to gather together all the school
trophies, they were able to find all except one—the cup
awarded to the class of 1933. What had happened to
the cup was a mystery the boys were determined to
solve. And little by little Don and Jim uncovered a
strange story and unraveled a mystery that had puzzled
school authorities for years. The Mercer boys uphold the
honor of Woodcrest against a conspiracy of silence and
dishonor.
by Capwell Wyckoff
For the adventure and thrill of frontier life, The Last Trail
is hard to equal in the literature of the West. Zane Grey
has told his story with mastery and realism, and readers
will love this exciting story from the pen of a master
storyteller.
Any boy who has thrilled to the shot of the starting gun
and the crunch of spiked shoes on cinders will enjoy the
story of Larry Craven, for whom the cinder track was
the path of fame from Maywood College to the Olympic
games. But all was not smooth going for Larry, for he
had many obstacles to surmount and he had enemies
who plotted against him. How he won out over his
difficulties makes an exciting and vivid sports story.
by J. Walker McSpadden
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.
ebookmass.com