Download full Go Crazy: A Fun Projects-based Approach to Golang Programming 1st Edition Nicolas Modrzyk ebook all chapters
Download full Go Crazy: A Fun Projects-based Approach to Golang Programming 1st Edition Nicolas Modrzyk ebook all chapters
com
https://ebookmass.com/product/go-crazy-a-fun-projects-based-
approach-to-golang-programming-1st-edition-nicolas-modrzyk/
OR CLICK HERE
DOWLOAD NOW
https://ebookmass.com/product/practical-matlab-deep-learning-a-
projects-based-approach-2nd-edition-michael-paluszek/
ebookmass.com
https://ebookmass.com/product/a-dish-for-all-seasons-kathryn-pauline/
ebookmass.com
Coding Clean, Reliable, and Safe REST APIs with ASP.NET
Core 8: Develop Robust Minimal APIs with .NET 8 Anthony
Giretti
https://ebookmass.com/product/coding-clean-reliable-and-safe-rest-
apis-with-asp-net-core-8-develop-robust-minimal-apis-with-
net-8-anthony-giretti/
ebookmass.com
https://ebookmass.com/product/the-world-according-to-kant-appearances-
and-things-in-themselves-in-critical-idealism-anja-jauernig/
ebookmass.com
https://ebookmass.com/product/book-of-viking-sagas-4th-
edition-2022-collective/
ebookmass.com
https://ebookmass.com/product/flash-soulless-kings-mc-book-9-andi-
rhodes/
ebookmass.com
https://ebookmass.com/product/forgotten-people-forgotten-diseases-3rd-
edition-peter-j-hotez/
ebookmass.com
Subsea Valves and Actuators for the Oil and Gas Industry
Karan Sotoodeh
https://ebookmass.com/product/subsea-valves-and-actuators-for-the-oil-
and-gas-industry-karan-sotoodeh/
ebookmass.com
Go Crazy
A Fun Projects-based Approach
to Golang Programming
Nicolas Modrzyk
Contributed by David Li, Jun Akiyama and
Tony Broyez
Go Crazy: A Fun Projects-based Approach to Golang Programming
Nicolas Modrzyk
tokyo-to suginami-ku, Japan
Introduction�����������������������������������������������������������������������������������������������������������xvii
v
Table of Contents
vi
Table of Contents
vii
Table of Contents
viii
Table of Contents
Index��������������������������������������������������������������������������������������������������������������������� 359
ix
About the Author
Nicolas Modrzyk acts as the CTO of Karabiner Software, a
successful consulting company located in the never-asleep
Tokyo, with its mix of ancestral culture and eco-friendly,
future-oriented dynamic.
He is an active contributor to the open-source
community in various domains, including imaging, ML, AI,
and cloud computing. As an engineer and a leader, Nico
has been involved in designing large-scale applications,
managing mammoth-sized clusters of servers, sometimes
using handwritten software, and enabling world-class
leaders by pushing international boundaries.
Nico ardently focuses on making life simple. (And we all
know how difficult that is!)
He loves pushing people to challenge themselves and go beyond their comfort zones.
To learn other cultures and explore different world views, he has been living around
the planet in various countries, including France, Ireland, Japan, China, Korea, India,
and the United States. You can talk to Nico in French, English, and Japanese, and you can
get along with him in Spanish and Chinese.
Nico is the author of a few programming books, available on Amazon. He recently
picked up the saxophone to honor his grandfather and his uncle, in the hope to match
their skill with a brass instrument.
He will be ready for a jazzy jam session whenever you are.
xi
About the Technical Reviewer
David Li is the executive director of Shenzhen Open
Innovation Lab, which facilitates the collaboration between
global smart hardware entrepreneurs and the Shenzhen
Open Innovation ecosystem. Before SZOIL, he co-founded
XinCheJian, the first hackerspace in China to promote
the hacker/maker culture and open-source hardware. He
co-founded Hacked Matter, a research hub on the maker
movement and open innovation. He also co-founded Maker
Collier, an AI company focusing on motion and sports
recognition and analysis.
xiii
Acknowledgments
All the involved authors—Jun, Tony, David—as well as the technical reviewers, Mathieu
and David, of this book have gone the extra mile to match the deadlines and bring the
writing and code samples to a top-class level.
My two strong daughters, Mei and Manon—you always keep me focused and in line
with my goals.
Psy Mom, French Chef Dad, Little Bro, Artful Sis—I thank you for your love every day,
your support, and all the ideas we share together.
My partner at Karabiner, Chris Mitchell—we’ve been working together for ten years,
and I think we both made tremendous efforts to make the planet a better place. Also,
the whole Karabiner people, at work now or busy making babies, we make a pretty
impressive world team.
Abe-san—who did not participate directly in the making of this book, but we wrote
our first computer book together, and without a first one, and without his trust, I would
not be here to even talk about it.
Kanaru-san—without your Iranian lifestyle and your life changing vision, I would
probably be a monk.
Marshall—without your world encompassing vision, I could have been focusing on
the bigger picture.
Ogier—without your summertime raclette and life-long friendship, I would probably
have been 5 kilos skinnier.
Jumpei—without your strong focus on music, I could not have played in all those
beautiful Tokyo live stages. And welcome Rei-chan!
Gryffin and Melissa—I could not have survived this without your hard work
and trust.
And of course, Marcel le chat—my open-source project on imaging would not be the
same without your feline cuteness.
xv
Introduction
On a sunny drive on the busy roads of Tokyo, over the rainbow bridge and facing the
ocean, my daughter Mei and I are having one of these philosophical talks.
Among the slur of questions she had ready for me, like “what is work for?,” she was
telling me about her need to have someone monitor her and give her deadlines. While
at the time of this writing, she’s barely 20 and hasn’t started a full-blown professional
career yet, she is right in the sense that the need to have deadlines and a purpose is at the
core of many adults’ professional lives.
At the very root of a school system, you are being told what to complete, and by what
date. You do not have input regarding the what or the when. A regular office worker is
told to finish their tasks by the fifth of next month, for example, and some authors are
told to finish three chapters by the end of the month.
That de facto need of what to do and by when happens very early in your career.
I am in favor of looking at things from a different angle. You should set your own
deadlines, and you should be in control of those deadlines. You have a goal, you set
milestones to achieve that goal, and you work on walking that path to that goal.
You want to live your own life and reach your own goals, not someone else’s.
Although I am critical about many of his actions, Elon Musk does not have someone
telling him when to land a rocket on Mars. He has his own schedule. He owns his
schedule. He owns his life.
This is a book on how to own your life again. More precisely, how Go, the
programming language, can help you get your time back, manage it along your dreams,
and own your life again.
I discovered the Go programming language a few years back. At that time, to be
honest, I was more of a Clojure-loving propaganda evangelist. Anything I developed or
touched had to be in Clojure. A deployment script, a web app, a dynamically generated
API around some custom datasets, image and video processing, or applying the latest
Computer Vision algorithm in real time—it did not matter. It greatly helped my career. I
would go even further and say, my life.
xvii
Introduction
How can a programming language help make your life better, you might ask? A
programming language is at first a language, and as such its first goal is to communicate.
We tend to think that a programming language’s only goal is to deal with a computer, but
we deal with computers because we want to communicate something to other people.
Take a simple email, for example. You use a computer to write an email because it
takes less time to reach its recipient, but the goal of an email is still to convey a message
to another person.
Now let’s say you have a lot to communicate, or you want to communicate something
to many people, but with that simple personal touch that makes all the difference
between your email being ignored and it being read and acted upon.
You don’t have much time. In life in general, but also to realize a task. You can use a
computer to help you with that task and save time.
Nowadays one of the best programming languages to put in your toolbox is GoLang.
It includes all the important concepts of Clojure, and that I love in a programming
language, but it’s also in the top ten of the TIOBE index, meaning you can find a few
more programmers to help you do your job.
Don’t get me wrong, there are other great languages, but there are many things that
GoLang gets absolutely right:
–– It is simple
–– It is concise
–– It’s easy to reuse bits of code from one project to the other
–– It is cloud-ready
xviii
Introduction
This programming book will take you on the path to Ikigai, finding joy in life through
purpose.
xix
CHAPTER 1
Go to the Basics
The goal of this first chapter is to write a ChatGPT client in Go. You’ve probably heard
about ChatGPT. It is an AI-trained chatbot that generates text according to questions
you ask it.
To get to this point, you will run basic Go programs and get used to the language.
Then you will put things together into a ChatGPT client.
But you first need to set up your code editor.
1
© Nicolas Modrzyk 2023
N. Modrzyk, Go Crazy, https://doi.org/10.1007/978-1-4842-9666-0_1
Chapter 1 Go to the Basics
First Steps
As with any new skill, you need a basic setup where you feel comfortable practicing
and trying new things. While Go, the language, makes writing code easier, GoLand, the
editor, makes writing Go easier.
To kick-start this chapter, you learn how to use GoLand as your editor for writing Go.
2
Chapter 1 Go to the Basics
Once you have created a new project, a blank project window will be available.
The left side of the window shows your project file, and the right side shows your
code editor (which, at this stage, is empty). See Figure 1-2.
3
Chapter 1 Go to the Basics
You can right-click in the Project Files tab and create a new Go file, as shown in
Figure 1-3.
4
Chapter 1 Go to the Basics
5
Chapter 1 Go to the Basics
1. The green arrow allows you to simply click and run your code. You
also get an arrow when you have test cases. You will learn about
that in a few pages.
2. Try copying and pasting this line into the main() function:
5. You can click most of your code and navigate to the corresponding
section in the Go packages, whether it’s part of the core language
or an external library.
6
Chapter 1 Go to the Basics
Your first code snippet will do just that—display the Go version of your current
installation. See Listing 1-1.
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Printf("Go version: %s\n", runtime.Version())
}
7
Chapter 1 Go to the Basics
5. The one and only function is called main, and that is the entry
function. It is called first when running the program.
8
Chapter 1 Go to the Basics
You can also ask the execution to not suspend when reaching a specific breakpoint
(see Figure 1-8) and just log the variables that are accessible to the debugger.
9
Chapter 1 Go to the Basics
While writing code, I recommend using GoLand debugging mode most, if not all, the
time. That way, you avoid unnecessary logging statements in the program and can focus
on the business logic that really matters, not the logging mess.
You now know the basics to run/debug a program, so next you review basic Go
concepts that you will use to write a ChatGPT client.
10
Chapter 1 Go to the Basics
11
Chapter 1 Go to the Basics
import (
"bufio"
"fmt"
"log"
"os"
)
func main() {
for true {
fmt.Print("What is your name ? > ")
reader := bufio.NewReader(os.Stdin)
12
Chapter 1 Go to the Basics
The for loop uses true as the condition of the loop continuity check. I put it there to
make it obvious what the condition is, but it can be removed altogether.
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, _ := os.OpenFile("hello.txt", os.O_RDONLY, 0666)
defer file.Close()
reader := bufio.NewReader(file)
for {
line, err := reader.ReadString('\n')
fmt.Printf("> %s", line)
if err != nil {
return
}
}
}
13
Chapter 1 Go to the Basics
package main
import (
"fmt"
)
func main() {
h := Message{Hello: "world"}
fmt.Printf("%s\n", h)
}
; { world}
The output could be slightly more useful if you could print out the fields as well as
the actual data. There are two ways to do this.
One way is to use +v in the formatting part of the fmt.Printf formatting and print
call. All the fields in the struct will then be printed, as shown in Listing 1-5.
14
Chapter 1 Go to the Basics
package main
import (
"fmt"
)
func main() {
h := Message{Hello: "world"}
fmt.Printf("%+v\n", h)
}
{Hello:world}
Another way, and one that is often used to send and receive custom-defined structs
via HTTP, is to marshal the object to the universal JSON format.
This is a very custom way to print or parse data. Golang makes it very easy to achieve
this, using the encoding/json package included in the core libraries.
The use of this core library is shown in Listing 1-6.
import (
"encoding/json"
"fmt"
)
15
Chapter 1 Go to the Basics
func main() {
h := Message{Hello: "world"}
AsString, _ := json.Marshal(h)
fmt.Printf("%s\n", AsString)
}
This code will print a more detailed version of the custom data:
{"Hello":"world"}
Note the quotes around “Message” and “world”, which were not present when using
simple standard formatting to string.
Important Note If a field name in your custom struct does not start with a
capital letter, the field will not be marshalled and thus not printed. This happens
both when using the standard toString marshalling and the other marshalling
techniques. Starting a field with a lowercase character indicates that the field is
not to be exported.
While the struct contains the ignored field, that field will not be exported when using
JSON marshaling because it starts with a lowercase letter.
In Golang, you can also specify metadata on fields of structs using what is called a
tag line.
This tag line is used for different things. One common use is to format the output
of the fields in JSON. That tag line can also be used to format data for persistence to
database, for example.
You write a tag line by adding a specific directive after the field’s type, using
backquotes, as shown in Listing 1-7.
16
Chapter 1 Go to the Basics
package main
import (
"encoding/json"
"fmt"
)
func main() {
h := Hello{Message: "world"}
b, _ := json.Marshal(h)
fmt.Printf("%s\n", string(b))
}
{"hellooo":"world"}
package main
import (
"encoding/json"
"io/ioutil"
)
17
Chapter 1 Go to the Basics
func main() {
data := Employee{
FirstName: "Nicolas",
LastName: "Modrzyk",
Email: "hellonico at gmail.com",
Age: 43,
MonthlySalary: []Salary{{Basic: 15000.00}, {Basic: 16000.00},
{Basic: 17000.00}},
}
{
"FirstName": "Nicolas",
"LastName": "Modrzyk",
"Email": "hellonico at gmail.com",
"Age": 43,
"MonthlySalary": [
{
"Basic": 15000
},
18
Chapter 1 Go to the Basics
{
"Basic": 16000
},
{
"Basic": 17000
}
]
}
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
)
19
Chapter 1 Go to the Basics
func main() {
jsonFile, _ := os.Open("my_salary.json")
byteValue, _ := ioutil.ReadAll(jsonFile)
var employee Employee
_ = json.Unmarshal(byteValue, &employee)
fmt.Printf("%+v", employee)
}
Remember that you can pretty-print the content by reverting to JSON, as shown in
Listing 1-11.
func main() {
jsonFile, _ := os.Open("my_salary.json")
byteValue, _ := ioutil.ReadAll(jsonFile)
var employee Employee
_ = json.Unmarshal(byteValue, &employee)
//fmt.Printf("%+v", employee)
json, _ := json.MarshalIndent(employee, "", " ")
fmt.Println(string(json))
}
20
Chapter 1 Go to the Basics
package main
import (
"fmt"
"os"
)
func main() {
programName, questions := os.Args[0], os.Args[1:]
fmt.Printf("Starting:%s", programName)
if len(questions) == 0 {
fmt.Printf("Usage:%s <question1> <question2> ...", programName)
} else {
for i, question := range questions {
fmt.Printf("Question [%d] > %s\n", i, question)
}
}
}
For more advanced parsing, you use flag (https://pkg.go.dev/flag), but I won’t
review this now.
21
Chapter 1 Go to the Basics
Figure 1-11. The place to go when looking for libraries: the pkg.go.dev website
Then enter dotenv, the library you need for this example (see Figure 1-12).
22
Chapter 1 Go to the Basics
The code that uses the godotenv library, the first one in the list, is shown in
Listing 1-13.
package main
import (
"fmt"
"github.com/joho/godotenv"
"os"
)
func main() {
godotenv.Load()
s3Bucket := os.Getenv("S3_BUCKET")
secretKey := os.Getenv("SECRET_KEY")
S3_BUCKET: s3prod
SECRET_KEY: secretprod
When you write, copy, or open Listing 1-13 in GoLand, the library will not be found
because it has not been downloaded yet (see Figure 1-13).
23
Chapter 1 Go to the Basics
In the editor, the import statement at the top of the file will be highlighted in red, and
you can right-click or press Option+Enter to get GoLand to retrieve the library for you.
The go.mod file will then be filled in with the necessary information, as shown in
Listing 1-14.
module listing-14
go 1.18
Note that you can of course add the library manually in the go.mod file.
Once the library is correctly downloaded and added to the project, running Listing 1-13
will give the following output:
This code is loading fake keys to access S3 buckets, but some very similar code will
be used for loading the API key for ChatGPT.
24
Chapter 1 Go to the Basics
package main
import (
"fmt"
"time"
)
func printNumbers() {
for i := 0; i < 10; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Printf("%d", i)
}
}
func main() {
go printNumbers()
printNumbers()
}
25
Random documents with unrelated
content Scribd suggests to you:
The Project Gutenberg eBook of Worth his
while
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.
Language: English
BY
Amy E. Blanchard
Author of “Kittyboy’s Christmas,” “Taking a Stand,” “A
Dear Little Girl,” “Thy Friend Dorothy,” Etc.
Philadelphia
George W. Jacobs & Co.
103-105 So. Fifteenth St.
Copyright, 1901, by
Oh, how hot it was! Down in the narrow streets, where straight rows
of little brick houses were crowded together there was not the
faintest breeze, and even on the wharf where Benny Jordan sat
swinging his bare feet over the water, it was scarcely cooler. Usually
there were little waves splashing up against the green logs of the
pier, but to-day only the faintest little ripples swished lazily against
the piles and the boats lying farther out did not flap a sail.
His sister Kitty, sitting on the doorstep, looked up, “She’s upstairs,
of course, sewing as hard as she can, and it’s so hot.”
Benny went pounding up the stairs to the room where his mother
sat sewing. “Say, mother, it’s too hot to sew,” he exclaimed.
“But it isn’t too hot to eat, is it?” she said, looking up with a smile.
“You know if I didn’t sew we wouldn’t have anything to eat.”
“That’s so,” replied Benny, slowly.
“Where have you been?” asked his mother, stopping to push back
the damp hair from her face.
“I’ve been down on the wharf; it’s generally cool there, but it’s
hot everywhere to-day. I like to go there, though; I like to see the
people come up from the country with big bundles of flowers, and I
like to watch the men unload the boats. They brought such a lot of
strawberries to-day.”
“Ye-es, if you have some one to work your garden and take care
of your stock. But how could I make a living for you and Kitty?”
“We could help,” Benny replied.
“Not much, I’m afraid. A little boy ten years old and a little girl
seven would scarcely be able to do much toward making a living.”
“Yes, long ago. Come, we must have some supper. You and sister
can set the table.”
“What is there for supper?”
“Why, I don’t know. I reckon it’s hearing the men talk down at the
wharf. One of ’em said this morning: ‘There’s no money for farmers
nowadays. A man can’t make anything in the country.’ ‘He can
always make a living,’ said the other, ‘and a pretty good one, too.
How’d you like your wife and babies to be in the city this weather?
Why, sir, there’s lots of folks would give anything to see their
children tumble ’round on the grass under such trees as you’ve got
and have all the good milk they wanted to drink. I think we country
people are pretty well off, myself. We don’t make a fortune, but
we’ve got a good living right handy.’”
“I’m a goin’ to,” reiterated Benny, with the same emphasis. And
the fact of his saying this and nothing more gave greater weight to
his words. So all that evening Kitty dreamed beautiful dreams of a
little home near green meadows and under leafy trees.
Benny’s determination had not left him the next day. It was a
holiday and Benny pattered off down to the wharf as early as
possible. Somehow then it seemed as if that land of delight known
as the country were more accessible by reason of the arrival of the
crafts which plied between the lower counties and the city. It
appeared so easy to step aboard a little steamer and be borne along
over the bay to the green shores melting away in the distance.
Those shores from which were brought, on the little sailing vessels,
mountains of green peas, crates of luscious strawberries, baskets of
downy peaches. It represented to Benny a veritable Canaan, that
country from which the little vessels came, and many a time he had
sat on the pier looking off into the distance and dreaming of the
fullness and plenty which he imagined existed there.
He was standing at the gangway of a small steamer which lay
moored to her dock, when his attention was arrested by two men
who halted near him.
“Hello, Jim!” said one. “What’s bringing you to town? Thought this
was a busy time with you.”
“So it is, or ought to be, but my pickers disappointed me. Here
my strawberries and peas are ready and waiting and not a soul to
pick ’em. It certainly is aggravating.”
“It certainly is,” returned his friend. “What you going to do about
it?”
“I’ve come up to see if I can get a new gang. I shall have to take
what I can get. People make a very poor mouth, but I notice when
anyone wants farm hands of any kind it isn’t always so easy to get
hold of ’em. Good pay and good food, with good, fresh air thrown in,
and yet they shy off. Well, I can’t tarry; good-by.”
“Well, good luck to you,” returned his friend. And then, turning
around he saw by his side an eager-faced little lad.
“Pickers, to pick his strawberries and peas for him. Do you know
anyone who wants a job in that line?”
“Ten.”
“I’m afraid you’d soon give out. It’s no fun to stay among the
vines all day in the hot sun, and I’ll venture to say you wouldn’t pick
as many for your box as you would for your mouth. How about
that?”
“Dear little lad, I’m afraid Mr. Bentley will not want little boys like
you, and besides how can I let my boy go away from me without my
knowing anything about where he is going or the people he is to be
thrown with.”
His mother smiled at this absolute faith in the safety of the place.
Then she was very thoughtful. “If I could see Mr. Bentley himself,
and find out more about it,” she said finally.
“You may do this—you may ask Mr. Bentley if he will take you,
and if he consents, you must tell him that your mother will see Mr.
Higgins, who used to live in that neighborhood, and that she will
probably send you down to-morrow. I know where the “Emma
Jones” lands, and Mr. Higgins will know all about it. I will see him
this evening.”
Benny went off highly pleased with this concession.
“Hallo!” cried a voice at his side, “what are you doing here?” And
looking up, Benny saw the man whom he had talked to that morning
on the dock.
“I don’t know what I am doing,” he returned, in a distressed
voice. “I’m getting carried off.”
“Kidnapped, eh? Who’s the fellow that’s run you aboard?”
Benny smiled a little, and told the man his story, ending with,
“And I haven’t any money to pay my way.”
“And you’re afraid the captain will throw you overboard to get rid
of you. Is that it?”
“Sho! that’s too bad. How’ll we fix it? You might find a chance to
get back real late. There are lots of boats that get loaded up and
start off through the night so as to get the loads in for the hucksters
by sun-up or earlier; but it seems to me as long as you’ll be really
down there you might as well try pickin’. I’d give you a job myself,
but I don’t have any crop. I keep a store at the Cross Roads. Let me
see. How’ll we fix it?” And the man rubbed his stubby beard
thoughtfully.
“All right. It’s a go. My name is Welch. I’ll take you home with me.
We’ll find a corner for you somewhere, and to-morrow you can go to
see Jim Bentley. Like as not Jim’ll be over himself in the morning. So
just make yourself easy.”
It was evident that Benny’s honest little face had taken the man’s
fancy, and for the rest of the trip the boy was treated as a guest by
Mr. Welch.
The small steamboat was pushing its way along steadily by this
time, and Benny gave himself up to the enjoyment of the occasion.
Far off a broad expanse of blue water, dotted with white sails,
touched the horizon; on each side could be seen banks of vivid
green; an old half-ruined fort loomed up before them. Benny could
see through the open gateway flowers blooming in the inclosure; a
big dog lay sleeping upon a strong parapet. So peaceful and quiet
did the fort look that one could scarcely imagine that there had been
a time when threatening cannon pointed from those walls and that
armed men stood behind the strong embrasure.
Just beyond the fort the “Emma Jones” turned into a broad creek,
along the shores of which were little landings where sailboats and
rowboats were moored. The tall trees were reflected in the placid
waters, and Benny caught sight of pink flowers dotting the green of
the woods. It seemed a perfect paradise to him. Oh, how Kitty would
like to see it! His mother had told him of just such places, but he
had not half realized how beautiful they could be.
Every now and then the boat stopped to let off passengers and
freight till at the head of the creek the last landing was made, and
Benny followed his good friend ashore.
Benny never forgot that supper. Hot biscuits and broiled ham;
fried potatoes and radishes; a great bowl of huge strawberries
served with thick, yellow cream; home-made sponge cake, and milk
in unlimited supply.
Mr. Welch kept piling up his plate, with due appreciation of a boy’s
appetite, till Benny felt that this was a land of plenty indeed, his only
regret being that he could not share this feast with his mother and
Kitty. Never in all his life had he eaten such a meal.
A little girl about Benny’s age sat opposite him; another, four or
five years older, and a boy nearly grown made up the additional
members of the family.
“Now, Jennie,” said Mrs. Welch to her younger daughter, as they
rose from the table, “take Ben with you to feed the chickens; I’ll
venture to say he won’t find a nicer lot anywhere.”
“Now, if you only had a place where you could keep a dog, Joe
would give you one of these, I know.”
It seemed as if the whole family were interested in the welfare of
this little candidate for the office of strawberry picker, for Benny’s
childish confidences were given honestly and freely.
He went to sleep that night in a small attic room; a tall locust tree
hanging white blooms about the little dormer window, and the
sound of a whippoorwill’s cry being his last conscious recollection
before he went to sleep. He was awakened by stirring sounds out of
doors and in, and by the time he was ready for a descent to the
lower floor found that the family were up and all at work.
Breakfast was not less bountiful than supper, and after came a
second visit to the puppies, during which time he was called in the
store to confront Mr. Bentley.
It was evident that the way to a conference had been well paved
by Mr. Welch, for Mr. Bentley’s greeting was, “Well, boy, you want to
join my pickers, I hear.”
“How will you manage about your meals? They do their own
cooking, you know.”
Benny didn’t know, and his heart sank, but Mr. Welch’s kind voice
came in with the question, “’Twouldn’t put you out much to let him
eat with your regular farm hands, would it?”
“It isn’t so hot to-day, must have been a storm somewhere, last
night, Thad.”
“Yes,” returned Mr. Welch, “must have been; I saw thunder heads
off toward the northwest; they must have got it down Broad Neck
way.”
“Well I’ve no time to lose,” said Mr. Bentley; “come along, boy, I’ll
give you a lift over our way;” and Benny, with a strong regret at
leaving this kind family at the Cross Roads, climbed up beside Mr.
Bentley in his road cart, and after a ride of a mile saw a white house
at the end of a long lane.
“That’s my place,” said Mr. Bentley. “I’ll let you off at the
strawberry field, and when you hear the dinner horn come up to the
house. That man sitting under the tree yonder is keeping tally. Every
dozen boxes you pick you take ’em up there and he’ll give you a little
wooden check, so that we both can keep count of what you pick.
Each check means so much, and you can earn as much or as little as
you’ve the will to do. There’s a board over yonder to carry your
boxes on. Now, we’ll see what you can do.”
And Benny was left in the big strawberry field amid a motley crew
of foreigners, strong misgivings at heart, and a little feeling of
homesickness coming over him as he faced the reality of a day’s
work in the hot sun, with no one to speak to him but strangers. He
picked up courage, however, wondering, as he started to work, how
much he could earn, and when his mother would get the queer,
blotchy little letter he had written to her the night before.
CHAPTER III
Benny was not a saint by any means. He was just as full of faults as
many other boys, but he had a warm, generous heart, and had been
carefully brought up, so, even if he was not always as thoughtful as
he might be, and sometimes forgot to be promptly obedient, he was
at least truthful, honest, and pure in heart, a fact which made the
boys in his neighborhood call him “old Particular,” or “old Partick” for
short. He was used to pretty rough company sometimes, but he had
never been thrown with quite such a crowd as that which
surrounded him in the strawberry patch. Coarse, boorish men,
vixenish, loud-voiced women, who jostled and elbowed him at times,
the younger ones teasing and badgering him in queer broken
English.
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.
ebookmass.com