Where Can Buy Accelerating Unity Through Automation: Power Up Your Unity Workflow by Offloading Intensive Tasks Simon Jackson Ebook With Cheap Price
Where Can Buy Accelerating Unity Through Automation: Power Up Your Unity Workflow by Offloading Intensive Tasks Simon Jackson Ebook With Cheap Price
com
https://ebookmass.com/product/accelerating-unity-through-
automation-power-up-your-unity-workflow-by-offloading-
intensive-tasks-simon-jackson/
OR CLICK HERE
DOWLOAD NOW
https://ebookmass.com/product/team-unity-john-ross/
ebookmass.com
https://ebookmass.com/product/unity-and-the-holy-spirit-john-e-hare/
ebookmass.com
https://ebookmass.com/product/etextbook-978-1133934813-religion-in-
japan-unity-and-diversity/
ebookmass.com
https://ebookmass.com/product/nutrition-for-health-and-health-care-
mindtap-course-list-7th-edition-linda-kelly-debruyne/
ebookmass.com
Kanski's Clinical Ophthalmology: A Systematic Approach 9th
Edition John Salmon
https://ebookmass.com/product/kanskis-clinical-ophthalmology-a-
systematic-approach-9th-edition-john-salmon/
ebookmass.com
https://ebookmass.com/product/the-woman-in-the-library-sulari-
gentill-6/
ebookmass.com
https://ebookmass.com/product/the-pursuit-of-excellence-the-uncommon-
behaviors-of-the-worlds-most-productive-achievers-ryan-hawk/
ebookmass.com
https://ebookmass.com/product/adobe-premiere-pro-cc-for-dummies-1st-
edition-john-carucci/
ebookmass.com
https://ebookmass.com/product/creating-the-quran-stephen-j-shoemaker/
ebookmass.com
The Skunk, the Tibetan Fox and Their Wolf Omega (Omegas of
Animals: SD Book 6) Lorelei M. Hart & Wendy Rathbone
https://ebookmass.com/product/the-skunk-the-tibetan-fox-and-their-
wolf-omega-omegas-of-animals-sd-book-6-lorelei-m-hart-wendy-rathbone/
ebookmass.com
Accelerating
Unity Through
Automation
Power Up Your Unity Workflow by
Offloading Intensive Tasks
—
Simon Jackson
Accelerating Unity
Through Automation
Power Up Your Unity Workflow by
Offloading Intensive Tasks
Simon Jackson
Accelerating Unity Through Automation: Power Up Your Unity Workflow by
Offloading Intensive Tasks
Simon Jackson
Warrington, Cheshire, UK
iii
Table of Contents
Environment�������������������������������������������������������������������������������������������������������������������������� 56
Event�������������������������������������������������������������������������������������������������������������������������������������� 56
GitHub Actions����������������������������������������������������������������������������������������������������������������������� 56
Job/Jobs�������������������������������������������������������������������������������������������������������������������������������� 57
Library����������������������������������������������������������������������������������������������������������������������������������� 57
Mac Host������������������������������������������������������������������������������������������������������������������������������� 58
Parameters/Variables������������������������������������������������������������������������������������������������������������ 58
Pipeline/Workflow����������������������������������������������������������������������������������������������������������������� 58
Pull Request�������������������������������������������������������������������������������������������������������������������������� 59
Push/Pull������������������������������������������������������������������������������������������������������������������������������� 60
Run���������������������������������������������������������������������������������������������������������������������������������������� 61
Runner/Host��������������������������������������������������������������������������������������������������������������������������� 61
Stage������������������������������������������������������������������������������������������������������������������������������������� 62
Step/Steps/Task�������������������������������������������������������������������������������������������������������������������� 62
Trigger����������������������������������������������������������������������������������������������������������������������������������� 63
Ubuntu (Linux) Host��������������������������������������������������������������������������������������������������������������� 63
Windows Host������������������������������������������������������������������������������������������������������������������������ 64
Workflow/Pipeline����������������������������������������������������������������������������������������������������������������� 64
Yaml/yml�������������������������������������������������������������������������������������������������������������������������������� 65
The First Look at Automation Configuration�������������������������������������������������������������������������������� 66
1. The Name of the Automation��������������������������������������������������������������������������������������������� 67
2. The Primary Trigger for the Automation����������������������������������������������������������������������������� 67
3. The “Jobs” Section������������������������������������������������������������������������������������������������������������ 68
4. Individual Job Definitions�������������������������������������������������������������������������������������������������� 68
5. The “Steps” Section���������������������������������������������������������������������������������������������������������� 68
6. Individual Step Definitions������������������������������������������������������������������������������������������������� 69
7. Step Parameters���������������������������������������������������������������������������������������������������������������� 70
Formatting����������������������������������������������������������������������������������������������������������������������������� 74
Secrets and Environment Variables��������������������������������������������������������������������������������������� 76
Conditionals��������������������������������������������������������������������������������������������������������������������������� 78
Job Output����������������������������������������������������������������������������������������������������������������������������� 80
Summary������������������������������������������������������������������������������������������������������������������������������������ 83
v
Table of Contents
vi
Table of Contents
vii
Table of Contents
viii
Table of Contents
ix
Table of Contents
Index��������������������������������������������������������������������������������������������������������������������� 301
x
About the Author
Simon Jackson is a proud educator, showing developers
how to make the most of modern technology to enable
them to build the best they can using the tools of today
and tomorrow. He is a father/husband and engineer who
is always breaking down new tech and learning something
every day in order to expand his horizons as well, as having
as much fun as possible along the way. Alongside his work
in XR working with the best and brightest to build the next
generation of tech, he is also a strong supporter of open
source and publishing tools and features to accelerate every
developer’s workflow.
xi
About the Technical Reviewer
Jesús Ángel Pérez-Roca Fernández is a professor from
A Coruña, Spain. He teaches web programming using
HTML, CSS, JavaScript, and React. He also teaches mobile
development using Java and Kotlin and video game
development using Unity and C#. He loves programming
and learning new skills, so he enrolls in several online
courses and watches YouTube tutorials about new
technologies, frameworks, and programming skills. He is
also an active member of local technological communities
where they gather to talk about Python, Java, web
technologies, and many other subjects while drinking a few beers. In his free time, he
likes going to the cinema to watch movies, but what he loves most is binge-watching
series sitting on the sofa.
xiii
CHAPTER 1
What Is Automation?
Welcome to this title which aims to save you both time and money with just a small
investment of your most precious commodity for any Unity developer, neurons (brain
matter :D), and thanks to this title, far less than would be expended by going at it alone
or, worse, asking for help on your social feeds.
Automation, often seen as a dark art or long-lost treasure that is hard to seek and
even harder to find, can save you countless hours of repetitive tasks and look ahead to
help avoid troubles on the road before you plummet off the cliff of despair, such as when
Apple suddenly does not accept builds with feature X, because Unity…
1
© Simon Jackson 2023
S. Jackson, Accelerating Unity Through Automation, https://doi.org/10.1007/978-1-4842-9508-3_1
Chapter 1 What Is Automation?
Source control has long been used by most Unity developers; it helps to protect the
investments you make in your Unity project, revealing the history of your code, and
provides you an almost foolproof way to protect your solution from the impacts of
upgrading your project. Whether it is a small hack project or your main income, source
control gives us a measure of protection from the rigors of development, especially when
our beloved development machine decides to spend time with the fairies (provided you
check in and push before you shut down last night, you did push last night, didn’t you?).
But with our code and project hosted on source control, many do not see the
advantages of, or are aware of, the power that comes from our code being online, even
in a private repository. Having code available online means it can be analyzed, checked,
validated, and even built for us, all without lifting a finger. If you are also part of a larger
team, it gives opportunities to reduce workloads on teams “checking” code to ensure
it meets a standard before giving a senior dev the nod to look it over, saving countless
hours of shaking heads and fists. I have lost count of the many times I’ve pushed a
Pull Request (PR) back to a junior developer, simply because they did not format or
document their code to the company’s standards, time I could have used to get another
coffee, a true crime.
2
Chapter 1 What Is Automation?
We will go into more detail in the next chapter, but as a highlight, here are some of
the repetitive tasks that automation can deliver, from the small to very, very large:
And soooo much more. In one case, I created a pipeline that would automatically
up-version the project for each PR that was merged, and when this was published, it
would also increase the development version to ensure it was always ahead of what was
published.
In some more advanced scenarios, I’ve seen some pipelines now employing AI to
scan code for “known vulnerabilities”; in fact, GitHub now offers this as a generic built-
in service, should you wish to enable it. Scanning code on each check-in/push against
a wealth of known vulnerable code, such as SQL injection, trojans, and suspicious code
that might be rejected by vendor partners or, worse, open your loving title to attack/
exploitation.
3
Chapter 1 What Is Automation?
With a grasp of the subject, this title will walk you through the A–Y of automation (z is
reserved for future use) as it pertains to building Unity projects. I say Unity projects as
this is valid for any Unity project, not just games (I use it even more for my Enterprise
solutions). You will get to know the terminology involved and the services available and,
given your choice of service, an excellent footing to getting your own automation setup
in hours rather than days/weeks.
If implemented correctly, you should almost immediately notice the cost-savings
from utilizing automation, and it will eventually lead you to building/adding your own
automation techniques that are specific to your requirements; no one path exists for
automation as everyone’s needs are unique, but they all have common traits.
So, sit back, pull up a fresh brew, adorn your reading glasses if you have them, and let
us get started on this journey.
4
Chapter 1 What Is Automation?
Looking Ahead
Here is a rundown of what to expect:
• Automation Hosting
If you Should you use online hardware for running your automation, or
use your own hardware instead to save some cash, as well as some tips
and tricks.
5
Chapter 1 What Is Automation?
• Final Notes
A personal walk-through of the recommended paths for using automation
in production projects and some final tips.
6
CHAPTER 2
What Is Gained
Through Automation,
the Highlights!
The list of possibilities in automation is almost endless, just about anything you would
want to happen is available; the only real question is if someone has gone to the effort
of publishing a plugin or extension that you can simply call (with parameters) to do the
task. And the community does love to publish.
The main challenge when building your automation pipelines is to know how much
time to invest in finding pre-built solutions or whether you just build it yourself (and
then decide to publish it? maybe).
7
© Simon Jackson 2023
S. Jackson, Accelerating Unity Through Automation, https://doi.org/10.1007/978-1-4842-9508-3_2
Chapter 2 What Is Gained Through Automation, the Highlights!
To get you started, this chapter will meander through some of the possibilities for
the art of the possible to set you on your path, as knowing just what you can do is half
the battle, beyond doing just the simple/obvious. Ultimately though, the choice is yours
and there is no hard and fast rule for what you should or should not automate, but rather
what is right for your organization or even the project. In some instances, I have defined
different paths based on the style of the project and who is involved:
8
Chapter 2 What Is Gained Through Automation, the Highlights!
Example Workflows
Here are some of the most common tasks that can be achieved through automation to
give you a sense of the possible beyond the basics.
9
Chapter 2 What Is Gained Through Automation, the Highlights!
1. Checkout
One of the simplest tasks is to check out code from the repository; some automations
do this automatically, while others require a specific step to ensure the correct code
is pulled. In some cases, this is not the first step, as prechecks can occur to avoid
unnecessary bandwidth use, as well as the time it takes to download large repositories.
You must remember, with automation it is unknown if the host that is running the
automation has ever seen your code, so do not assume it has cloned the code
before. Each run of automation MUST be treated as if it is a brand-new machine
that must be configured to run your automation; never make assumptions about
how the machine is set up!
As indicated earlier, some workflows might require several checkouts to get content
stored in various places; if submodules are involved, make sure to set the parameters
for the checkout to include submodules as well (do not assume it automatically will). If
you have access to the host, you can build up the checkout stage incrementally and just
check the working folder the automation is using to see what is downloaded and where
to ensure it meets your automation/build specifications.
In one workflow, I built a Unity build pipeline for building and validating a Unity Package
(UPM); a UPM package DOES NOT have its own Unity project by default, so the
automation had to clone the project, generate a NEW Unity project, and then copy the
cloned code into the “Packages” folder before any tests or builds could happen.
Getting the code is always the critical step for doing anything, but it may not be your
FIRST step if you need to validate that the person that is kicking off the build has the authority
to do so (you can also add prechecks to workflows for an admin to approve the workflow to
continue) and that they have completed all required tasks before the process continues.
10
Chapter 2 What Is Gained Through Automation, the Highlights!
The most underrated task that any automation can do is to run scripts to do just
about anything on the build environment; this can range from simply checking that
the required software is installed or that the build host is set up correctly to running
command-line tasks to do just about anything. A lot of community-built tasks will
include a fair amount of scripting, so it is key that you always have a peek inside those
packages to ensure your build host can run those scripts, for example, have Bash or
PowerShell installed on your build environment.
If you are using scripts in automation, it is also critical to SPECIFY what language
or runtime a script is written in for running on the host; this helps both tell the
automation what to expect and informs anyone else having to read or update
your workflow what it was written for. NEVER leave it up to the default as this is
different for different types of hosts.
At the end of the day, all automation does eventually resolve down to a command
that needs to be executed on the host, which is almost always using a command library
native to the host. But remember! Depending on the output of your automation, it may
have different host requirements, so the language used SHOULD be balanced to run on
them all to save you uncertain headaches in the future.
11
Chapter 2 What Is Gained Through Automation, the Highlights!
NPM (Node Package Manager) is a favored way of building a lot of projects these days
(less so Unity), especially web or service-based projects. It provides an extensive library
of functionality to both build and host solutions.
Remember, NPM is built on top of NodeJS which also has other requirements. Make
sure either your host or your pipeline includes the critical steps to install both NPM
and its dependencies. As stated earlier, you can never assume that the host running
your automation has ANY of these dependencies installed, so always check.
As far as automation goes, testing NPM is VERY easy as you can run most of the
commands manually on your own machine instead of being wholly dependent on testing
through automation; only the paths involved are likely to change; for everything else, you
can test to your heart’s desires, especially when you are checking the package contains
everything you need BEFORE pushing it out to an NPM hosting service like NPMJS.
Building NPM packages from the ground up is always stressful, especially if you
are including hidden folders or ensuring you are EXCLUDING critical files that
should never make the package. The last thing you want to find in your published
package is any secure or sensitive information, as once it is on the “Internet,” it
is VERY hard to take back. When building packages for publication, test, test, test,
both locally and through iteration when building your workflow and checking your
package result is what you NEED it to be. I’ve lost count of the times messing with
“npmIgnore” definitions to ensure nothing snuck into the package I did not want.
12
Chapter 2 What Is Gained Through Automation, the Highlights!
Like NPM, MSBuild and “dotnet” are some favored ways to produce and build solutions
or packages; with .NET6, this has gotten even more common with the ability to produce
single executables for projects. Even with Unity projects, additional tasks are usually
needed to run MSBuild or Xcode on the output of a Unity Build to eventually get a
solution that a client can run; these are, at times, the most stressful parts of constructing
a working workflow due to the intricate (and often undocumented) command
parameters needed to get the compiler to produce what you need (which is usually just a
few clicks doing it manually in the code editor).
13
Chapter 2 What Is Gained Through Automation, the Highlights!
Sometimes, people just want to know something happened, something good, something
bad, or just that the coffee machine is ready for that next brew of its sweet sultry sauce.
There are many custom plugins out there to do all the hard work for you, and you get
to control what the message is and when it is published; sometimes, these are done
as webhooks from your chat software (both Discord and Slack support webhooks for
talking/listening to APIs), but relying on the API is troublesome as there is little to no
control.
By building notifications into your workflows, you can control the message, ensuring
that only interested parties are notified and when. This is often overlooked, but I have
found it invaluable in ensuring the right channels for communication for the most
repetitive questions. Stop asking me when the build has finished, check this slack
channel! (Or even build a slack bot that can query the automation API that someone can
fire a command at to query it.)
14
Chapter 2 What Is Gained Through Automation, the Highlights!
Not all projects are just code, or even code and assets, some also include backend
databases or APIs that need to be consumed. Critically, these also need to be tested
before the next build is pushed out to production and “hopefully” not destroying half the
backend in the process. So, these also need to be included in automation while testing,
but no one should ever test on a live system (should they?), and automation helps here,
scripting a backup of the live service to use or restoring the most recent backup and
spinning up the environment to test against, a real life/time-saver.
Also, when the eventual push to production comes, automation can force a backup
BEFORE the critical task begins to further mitigate any risks during the upgrade and
giving you an almost instantaneous restore if indeed the publication fails, as well as
the critical “oh darn” workflow to automatically restore the production site from the
most recent (or targeted) restore point. If left to manual hands, it always costs more in
time and money with the eventual risks of “human error,” so having done this from the
point of publication goes a long way to reducing those risks and frees up the time for the
technical team who manages it.
15
Chapter 2 What Is Gained Through Automation, the Highlights!
If everything is successful, the dates have been met and everyone who needs to be
informed has been informed, it is great when automation can simply flick a switch and
push out your latest and greatest (or as in the previous example, go back VERY, VERY
QUICKLY). This publication might be just to the source site, such as GitHub, or even
package/solution hosting sites like OpenUPM or NPMJS; wherever your package needs
to be, there is usually an API or service where you can push it to.
In many projects I have managed, especially when you are flitting between a full
release and development “preview” packages, it is always comforting that I do not
need to do anything, it just all happens automagically through automation. Once
a PR has been merged with development, out pops a new preview release that
consumers can pick up if they want to.
16
Chapter 2 What Is Gained Through Automation, the Highlights!
Like with publishing, source sites like GitHub and others provide APIs to enable you to
create releases directly on their site, allowing consumers to always see the latest release
when browsing or get notifications because they subscribed to hear about them. There
are also tags (a pointer to a specific check-in) that can be monitored and, in the case of
OpenUPM, used to create a release for you on their platform.
Fed up with your project manager walking up to your desk or emailing you for a status
update, then get automation to automatically update their project plan directly for all
their critical facts and figures. It will not stop them from pestering, but it should reduce
the chatter that always gets in the way of coding (and everyone knows that getting
interrupted always costs you time to get back into the flow).
There are many integrations available in the community, most provided by the
vendors of those solutions, and failing that, there is usually an API you can utilize. One
of the most creative solutions I have seen involved using scripting to effectively do UI
testing and force-clicked/updated the actual software, certainly not for the faint of heart,
but that dev was never asked for an update again, such bliss.
17
Chapter 2 What Is Gained Through Automation, the Highlights!
One of the most tedious tasks in any release is always collating the release notes for what
has changed since the last push. Thankfully, the rest of the community agrees with you,
and there are MANY extensions available to use to build, create, and format release
notes to your preference. Granted, this also means you MUST ensure that both yourself
and your team write PROPER commit messages (you DO WRITE GOOD COMMIT
MESSAGES?) and/or use a form for populating PRs.
But this is truly a lifesaver for a lot of projects. If you want to vet the release note, then
you can always include an “approve” step in your workflow to check the content before it
ships; you know, JUST IN CASE! :D
18
Chapter 2 What Is Gained Through Automation, the Highlights!
Like release notes, you can also use the likes of DOCFX to generate your documentation
for you and publish to your docs site or even GitHub pages, granted this is provided you
have ensured you have added the correct documentation tags to your code (and not
done a “Unity” of late, such a shame their docs used to be soooo good). You can include
automated checks to ensure the Summary and Include tags have been filled in on PR
submission (or on push in some cases), which increases the value of the documentation.
19
Chapter 2 What Is Gained Through Automation, the Highlights!
There is no rule that every test needs to be run, and in circumstances where additional
checks are not required, you might run a full battery of tests for junior programmers and
skip some for seniors (although personally, I test everything, every time!). But you might
also want to change the reporting based on who submitted the Pull Request (or even
who commented), so it is very useful that most automation provides you with an almost
unlimited number of variations to quantify what runs when.
It is worth investing some time to see what API endpoints and conditions the likes
of GitHub provide (most source sites have the same) to extend your workflow to add
additional steps for certain conditions or even skip steps for certain groups/individuals.
But do not go overboard and remember the KISS principle; only add variation
where it adds value or can save processing time where you know you do not need
to spend it!
20
Chapter 2 What Is Gained Through Automation, the Highlights!
Integration is critical in most workflows, especially when you are operating in a large
environment. Yes, the UI does give you certain details, but it can sometimes be awkward
to get stats from. Most workflow systems have an extensive ability to integrate with
third-party APIs (as indicated earlier) and should not be overlooked for externalizing the
performance details of your workflows.
It also goes a long way with “management” if they have great charts and pretty things
they can point to with all the investment in automation, which PowerBI is outstanding
for and worth a look at.
21
Chapter 2 What Is Gained Through Automation, the Highlights!
Not all automations have to be serious; quite regularly (if I can get away with it) on public
projects, I will add some simple but effective workflows to save me time replying to snarky
or badly written questions that could have been resolved simply by putting the title of a
query into a search engine rather than wasting my time having to read an issue posted.
So having comment triggers that look for predefined text (like lmgtfy – let me get/
Google that for you) and post a random gif in its place helps to liven up any tedious
discourse.
I may or may not have in the past also had some workflows to translate some
queries to Klingon, just for fun… Who knows what could be done with some
integration to ChatGPT too these days, just saying….
22
Chapter 2 What Is Gained Through Automation, the Highlights!
There are some things for which automation is VERY well suited, especially when
it comes to tedious tasks. I have regularly moved some build tasks back into the
automation and used configuration files to perform the required tasks; this has
ranged from
Essentially, if you can derive configuration for a complex task, you can have
automation generate that content for you, especially useful if sometimes that generation
is complex, and you don’t want to lose access to your machine while it runs.
23
Chapter 2 What Is Gained Through Automation, the Highlights!
Not all automation runs on a physical host, just as not all solutions are deployed to
physical hosts. Containers are evolving deployments more and more these days, and
automation can help significantly with the management and testing of these containers
before they see the light of day.
These are generally integrated as “services” that most automation pipelines can
recognize, with container registries being built into the backend of most automation
platforms, especially as most automation also happens on virtual hosts for the most
basic tasks. It usually requires dedicated paid use to have physical hardware in the cloud
these days.
This availability even extends to Database systems, as shown by the GitHub Services
Examples, showing integrations with MongoDB, Postgres, and Redis.
One of the first things I stand up in any workflow, especially when I need to release
packages to the open source world, is versioning. Never having to worry if I have
incremented a version number between patch, minor, and major releases is a huge relief.
Just make sure you capture all the points where versioning is critical. Unity is
especially annoying by having multiple places where the version of the built application
is recorded (BundleVersion, MetroVersion, …Version); they are easy enough to handle
with some quick regex (simple, lol), you just need to be aware.
24
Chapter 2 What Is Gained Through Automation, the Highlights!
Testing, if done correctly, can be a lifesaver. Granted, it is neither the easiest nor time-
friendly task, and most developers will shun it for an easier life; however, without testing
you are leaving the health of your project to chance or experience, but remembering
that not everyone has the same experience and, additionally, also has “their own way of
doing things.”
The larger the project, the more critical it is to have dedicated unit testing in place,
although personally, if something is crucial enough, however small, I generally will add
tests to ensure it always operates at least the way I want it and given time, but also to check
that it does not fall flat on its face when the unexpected happens. I have lost count of the
times I have been stuck in an endless loop of figuring out why Unity is crashing, only to
find it was due to it injecting a NULL because the scene was loading (did you know that
Unity loads scenes TWICE when starting in play mode, once to initialize the scene, then it
unloads, and then it runs? If you have code that is “run” dependently, it is VERY annoying).
My advice is to ALWAYS add tests, and if you are not used to writing tests, then at
least learn the basics, and then have automation check those tests on each check-in
and/or build to save your skin for when the unthinkable happens. There are also those
who write tests to build code (Test-Driven Development; however, I am not one of those
developers), and there is value in having decent test coverage for your app/game.
25
Chapter 2 What Is Gained Through Automation, the Highlights!
References
To sum up the wonder that is this chapter, here are some of the sources used to compile
this list; it is in no way extensive as there are SOOO many possibilities when it comes to
automation, from the mission critical to the dastardly hilarious (I have seen pipelines
that check if you have 2FA enabled on your account and will spam you if you do not!).
Have fun with the further reading:
https://github.com/sdras/awesome-actions
https://github.com/actions
https://marketplace.visualstudio.com/azuredevops/
www.unitydevops.com/
There are many resources out there, some you will use right away, others you can
use for inspiration for building your own private automations; there is no wrong way
really, learn from the best, but just be sure to give credit where credit is due if you start
publishing your own.
26
Chapter 2 What Is Gained Through Automation, the Highlights!
Summary
In this chapter, we have covered the majority of the critical tasks that automation can be
used for to speed up our lives and save us time on the most repetitive of tasks.
What is covered here is not exhaustive as the “art of the possible” is almost boundless
when it comes to automation; if you can think, write, or dream it on your local machine,
then the same is possible through automation. In some cases, I have “gone beyond” and
even wrote utilities through automation (a script to validate images for their use as AR
tracking targets using the Google tools, for example).
Dream big and let us get on with the main show.
27
Random documents with unrelated
content Scribd suggests to you:
obstinate ignorance will save them ultimately from the sentence to
return to Siberia, nor from the strokes of the rod which are meted out
to every recaptured fugitive. The captive has to traverse a second
time the penal route, possibly only to make another attempt at
escape shortly after his arrival. I am told that many exiles have
travelled thus four, five, even six times through the greater part of
Siberia.
Fugitives who yield to the temptation to steal or commit some other
crime on the way, come to an untimely end. In such cases the good-
nature of the peasant-villagers is transformed into revengeful anger.
If he is taken, nothing will save him from an agonizing death. Then a
corpse is found on which no marks of violence are noticed. The body
is buried, and the finding and burial are duly notified to the
magistrates, who inform the governor, and he, in his turn,
communicates with the governor-general, but the unhappy victim of
popular fury has rotted in his grave before the government medical
officer could reach the spot, even if he wished to do so. Upon whom
this vengeance has fallen no one knows. In this way, but not by order
of the government, an exile may disappear, and no one can tell what
has befallen him, no authorities are able to give any information. But
every exile who is sent to Siberia knows what awaits him if he should
steal or commit any crime when a fugitive. And for this reason it is
possible to live here, in the midst of thousands of criminals, as
securely as anywhere else, perhaps more securely than in our great
towns which contain the scum of humanity.
I have attempted to give a faithful picture of the conditions which
hold now, or which held in 1876.[87] It has not been my intention to
soften or embellish. Banishment to Siberia is in all cases a severe
punishment. It is more severe in proportion to the culture of the
person on whom it falls, and in the eyes of an educated man it must
always seem terrible. But banishment to Siberia was never meant to
be other than a punishment, and it was meant to fall more heavily on
the educated than on the uneducated. The justice of such a principle
may be disputed, but it cannot be entirely denied. It is only possible,
however, to form a fair idea of the lot of exiles in Siberia when we
compare it with that of our own criminals.
What becomes of the unhappy beings who people our prisons?
What becomes of their families, their wives, their children? What fate
awaits the prisoners when their time of imprisonment has expired;
what have their families to look forward to?
Answers to these questions can be given by all who are acquainted
with our penal institutions.
If the unhappy lot of our criminals be compared, honestly and without
prejudice, with that of the exiles in Siberia, the result will not be
doubtful. Every true friend of humanity must echo the wish which
came to me in the distant East, and which has never since left me:
“If only we had a Siberia too: it would be better for our criminals, and
better for ourselves”.
AN ORNITHOLOGIST ON THE
DANUBE.
Hungary was, and is, and will continue to be one of the goals of the
German ornithologist’s ambition. Situated more favourably than any
other country in Europe, lying as it does between the North Sea and
the Black Sea, the Baltic and the Mediterranean, the great northern
plain and the Alps—including within its boundaries both the North
and the South, steppes and mountains, forests, rivers, and marshes
—it offers great advantages and attractions to resident and
wandering birds alike, and thus possesses a richer bird-fauna
perhaps than any other country in our quarter of the globe.
Enthusiastic descriptions of this wealth, from the pen of our most
illustrious investigators and masters, have contributed not a little to
increase and strengthen the longing—I would almost call it inborn—
that all the bird-lovers of Germany have to see Hungary. It is strange,
however, that this beautiful, rich country, lying so near to us, has
been so rarely visited by Germans.
I myself had seen only its capital and what one can see of the
country from the railway; I therefore shared most thoroughly in the
longing of which I have just spoken. It was to be fulfilled, but only to
return even more ardently thereafter. “None walks unpunished
beneath the palms”, and no lover of birds can spend May-tide in
Fruskagora without having for ever after a longing to return.
“Would you like,” asked my gracious patron, the Crown Prince
Rudolph, “to accompany me to South Hungary for some eagle-
shooting? I have definite reports of perhaps twenty eyries, and I think
that we should all be able to learn much, if we visited them and
observed diligently.”
Twenty eyries! One must have been banished for long years on the
dreary flats of North Germany, one must have gloated over the bright
pictures raised in one’s mind by the glowing reports of some roaming
ornithologist, to appreciate the joy with which I agreed to go. Twenty
eyries, at no very great distance from Vienna and not far from Pesth:
I should not have been my father’s son had I remained indifferent.
The days seemed hours when we were busy with all sorts of
preparations, and again they seemed to lengthen out into weeks,
such was my impatient desire to be off.
It was but a small travelling party that started from Vienna on the
second day of the Easter holidays (1878), but we were merry and
hopeful, eager for sport and energetic. Besides the august lord of the
chase and his illustrious brother-in-law, there were but three—
Obersthofmeister Count Bombelles, Eugen von Homeyer, and
myself. A day later, at Pesth, we got aboard the swift and
comfortable vessel which carried us towards the mouth of the
“blonde” Danube. In Lenten mist suffused with morning sunlight, the
proud Kaiserburg stood out before us, and the gardens of the
Bloxberg were bright with the first green of the young year, as we
took leave of the capital of Hungary.
With the scenery of the Rhine, of the Upper, or even, it is said, of the
Lower Danube, the stretch of country through which we were now
rapidly borne cannot be compared. A few kilometres below the sister
towns the banks become flat, the hills on the right side of the stream
sink into featureless heights, and only in the dim blue distance does
the eye catch the gently curved lines of moderately high ranges.
From the left bank extends the broad plain. Without end, without
change, it stretches in uniform monotony; hardly one of the large,
rich villages is conspicuous enough to catch the eye. Here and there
a herdsman in shepherd’s dress leans on his strong staff, but his
charge is not a flock of simple sheep; grunting, bristly pigs crowd
around him—how brown with the sun he is!—or lie in rows about him
enjoying comfortable rest. Around the pools filled by the floods the
lapwing flutters; over the broad flats the hen-harrier wings its
unsteady flight; the martins sweep in and out of their nests burrowed
in the steep banks; dainty water-wagtails trip about on the shingle-
roofs of the innumerable boatmills; ducks and cormorants rise in
noisy alarm from the stream; while kites and hooded crows fly in
circles over its surface. Such is a picture of this region.
Soon, however, the landscape changes. The alluvial plain, traversed
by the river which made it, broadens out. Over the flats, not yet
protected by dikes, and submerged by every flood, the river extends
in numerous, for the most part nameless branches. A luxuriant
growth of wood clothes the banks and islands, and as the fringe is
too dense to allow any glimpse of the interior, this meadow-wood
bounds the view for mile after mile. Variable and yet monotonous are
the pictures which appear and disappear, as in a dissolving view,
while the ship follows the windings of the stream. Willows and
poplars—white, silvery, and black—elms and oaks, the first
predominating, the last often sparse in their occurrence, form the
material of these pictures. Above the dense fringe, which consists
almost wholly of willow, there rise older trees of the same kind;
beyond these in the woods, which often extend far inland, rise the
impressive crowns of lofty silver poplars and black poplars, and the
bald heads of old gnarled oaks. A single glance embraces all phases
of tree-life from the sprouting willow-shoot to the dying giant—trees
living, sprouting, growing, and exultant in the fulness of their
strength; trees withered at the top, victims of fire from the heavens or
from the earth and half reduced to tinder; trees prostrate on the
ground, crumbling and rotting. Between these we see the gleams of
flowing or standing water; above all is the great dome of heaven. In
the secret shades we hear the song of the nightingale and the
finches, the lyrics of the thrush, the shrill cry of falcon or eagle, the
laugh of the woodpecker, the raven’s croak, and the heron’s shrill
shriek.
Here and there is a glade not yet overgrown, a gap in the wood and
through which we catch a glimpse of the landscape in the
background,—of the broad plain on the right bank of the stream, and
the fringe of hills in the distance, of an apparently endless
succession of fields, from which at distant intervals rise the church
spires which mark the scattered villages or, it may be, townships. In
summer, when all is of one predominantly green hue, in late autumn,
winter, and early spring, when the trees are leafless, this shore
landscape may seem almost dull; now it is monotonous, but yet not
unattractive, for all the willows and poplars have young leaves, or in
many cases catkins, and, here and there at least, they make the
woods gay and gladsome.
Only at a few places is such a wood as this accessible; for the most
part it is a huge morass. If one attempts, either on land or by
waterways, to penetrate into the interior, one, sooner or later,
reaches a jungle which has no parallel in Germany. Only on those
spots which are raised above the level of the river, and which have a
rich, in part muddy soil, is one reminded of German vegetation. Here
lilies of the valley, with their soft, green leaves and fragrant, white
bells, form a most decorative carpeting, covering the ground for wide
stretches; but even here the nettles and bramble-bushes grow in
wanton luxuriance, and various climbing plants spread their tangled
net over wide areas of the forest, so that almost insuperable
obstacles and barriers prevent further progress. In other places the
wood is literally a bog out of which the giant trees rear their stems.
Mighty stems indeed, but many—victims of old age, tempest,
thunderbolt, and the careless herdsman’s fire—lie rotting in the
water, already forming, in many cases, the soil from which rises a
younger and vigorous growth of underwood. Other trees, which have
not yet succumbed to decay, lie prostrate and bar the way. The wind
has swept the fallen wood, both thick branches and delicate twigs,
into floating islands and obtrusive snags, which present to the small
boat obstacles not less difficult than those which obstruct the
explorer on foot. Similar floating islands, composed of reeds and
sedges, form a deceptive covering over wide stretches of water.
Raised mud-banks, on which willows and poplars have found a
suitable soil for their seeds, have become impenetrable thickets,
disputing the possession of the ground even with the forests of reeds
which are often many square miles in extent. Dwarf willows, at once
youthful and senile forests, form dark patches in the heart of the
reed-beds. What may be concealed in the gloomy wood, with its
bogs and thickets, or by the reeds, remains almost quite hidden from
the searching eye of the naturalist, for he can see through no more
than the fringe of this wilderness, nor traverse it except along the
broader waterways.
Fig. 79.—Herons and their Nests.
Such was the district in which our sport began. The eagles, the royal
rulers of the air, which formed the primary object of our quest, did
not, indeed, come within range, nor even within sight, on the first day
of our journey; but, on the other hand, we visited the famous heronry
on the island of Adony, and had abundant opportunities of observing
the life of the brooding birds. For two generations, herons and
cormorants have nested on the tall trees of the island, among the
much older residents—the rooks; and, though the cormorants have
greatly diminished in numbers since the beginning of the sixties, they
have not yet entirely disappeared. Forty years ago, according to
Landbeck’s estimate, there nested here about one thousand pairs of
night-herons, two hundred and fifty pairs of common herons, fifty
pairs of little egrets, and a hundred pairs of cormorants; but now the
rooks, of which there are from fifteen hundred to two thousand pairs,
form the great bulk of the colony, while the common herons have
dwindled to about a hundred and fifty, the night-herons to thirty or
forty pairs, the egrets have disappeared entirely, and only the
cormorants remain in approximately the same numbers as formerly.
Yet at least an echo of the former life rang in our ears as we set foot
on the island, and here and there the forest still presents the old
picture almost unchanged.
The various birds in such a mixed heronry appear to live in the best
accord, yet there is neither peace nor friendliness among them. One
oppresses and supports, plunders and feeds the other. The herons
invade the rooks’ colonies to save themselves the labour of nest-
building; the rooks collect twigs and build their nests, and the herons
drive them away, that they may take forcible possession of the nests,
or at any rate of the building material; the cormorants dispute with
the herons the possession of the stolen booty, and finally assume
despotic authority over the entire colony. But even they, thieves and
robbers as they are, are plundered and robbed in their turn, for the
crows and kites—the last being seldom absent from such
settlements—feed themselves and their young to no slight extent on
the fish which the herons and cormorants have brought for the
sustenance of their mates and young. The first meeting of the
various kinds of brooding birds is hostile. Violent and protracted
battles are fought, and the ten times vanquished renews hostilities
for the eleventh time before he learns to submit to the inevitable. But
in time the inter-relations are better adjusted, as the individual
members of the colony recognize that there are advantages in social
life, and that there is room enough for peaceable neighbours.
Fighting and quarrelling never cease entirely, but the bitter war of
species against species gives place gradually to conditions which
are at least endurable. The birds become accustomed to each other,
and make use of the capabilities of their adversaries as far as may
be. It may even happen, indeed, that those who have been
plundered follow those who have robbed them when the latter find it
necessary to change their brooding-places.
Fig. 80.—Rooks and their Nests.
Until near the breeding-time, the sea-eagle lives at peace with his
fellows; but, as that season approaches, he becomes combative and
quarrelsome, in most cases through jealousy. For the sake of mate
and eyrie, he wages bitter war with others of his species. An eagle
pair, once united, remain so for life, but only if the male is able to
protect his mate from the wooing of others, and to defend his own
eyrie. A male eagle, which has just reached maturity and is exulting
in the consciousness of his strength, casts his eyes longingly upon
the mate and eyrie of another eagle, and both are lost to their owner
if he allows himself to be vanquished in fight by the intruder. The
rightful lord, therefore, fights to the death against everyone who
attempts to disturb his marital and domestic happiness. The battle
begins high in the air, but is often finished on the ground. With beak
and claw, first one, then the other ventures an assault; at length one
succeeds in getting a grip of his adversary, whose talons, in return,
are promptly fixed in his rival’s body. Like balls of feathers, the two
fall to the ground, or into the water, when both let go their hold, but
only to renew the attack. When they fight on the ground, the rivals
challenge one another like enraged cocks, and blood and feathers
left behind show the scene of the battle and bear witness to its
deadly seriousness. The female circles above the combatants or
watches them from her high perch with seeming indifference, but she
never fails to caress the conqueror, whether he be her lawful spouse
or the new-comer. Woe to the eagle if he does not succeed in
repulsing the intruder! In the eyes of the female, none but the strong
deserves the fair.
After successfully repelled attacks and fights of that kind, from which
no eagle is exempt, and which are said to be repeated in Hungary
every year, the pair, probably long wedded, take possession of the
old eyrie, and begin, in February, to repair it. Both birds set to work
to collect the necessary material, picking it up from the ground, or
from the water, or breaking it off the trees, and carrying it in their
talons, often for a long distance, to the nest, to rebuild and improve
this as well as an eagle can. As this building up of the old nest takes
place every year, it gradually grows to a considerable height, and
one can tell from it the age of the birds, and may also guess the
probable duration of their wedded life; for the oldest nest contains
the oldest pair of eagles. The nest is not always placed among the
highest branches of the tree, but is in all cases high above the
ground, more or less near the trunk, and always on strong boughs
which can bear its heavy and ever-increasing weight. Both upper
and lower tiers consist of sticks and twigs laid loosely above and
across one another; and many pairs of hedge-sparrows, which
approach the mighty birds quite boldly and confidently, find among
these twigs cavities suitable for nesting or hiding.
Towards the end of February, or in the beginning of March, the
female lays two, or at most three eggs in the shallow nest-cavity, and
begins brooding assiduously. The male meantime supplies her with
food, not, however, making longer expeditions in search of it than are
absolutely necessary, but spending whatever time he can spare from
the work of providing for her and himself, sitting, a faithful and
attentive guardian, on a tree in the neighbourhood, which serves him
at once as perch and sleeping-place. After about four weeks of
brooding, the young emerge from the eggs, looking at first like soft
balls of wool, from which dark eyes peer forth, and a dark bill and
very sharp claws protrude. Even in their earliest youth the little
creatures are as pretty as they are self-possessed. Now there is
work enough for both father and mother. The two take turns in going
forth to seek for prey, and in mounting guard over the little ones; but
it is the mother who tends them. The father honestly performs his
part in the rearing of the brood; but the mother alone is capable of
giving them that care and attention which may be described as
nursing. If she were torn from them in the first days of their life, they
would perish as surely as young mammals robbed of their suckling
mother. With her own breast the eagle-mother protects them from
frost and snow; from her own crop she supplies them with warmed,
softened, and partly-digested food. The eagle-father does not render
such nursing services as these, but if the mother perish when the
young are half-grown, he unhesitatingly takes upon himself the task
of rearing and feeding them, and often performs it with the most self-
sacrificing toil. The young eagles grow rapidly. In the third week of
their existence the upper surface of the body is covered with
feathers; towards the end of May they are full-grown and fully
fledged. Then they leave the nest, to prepare, under the guidance of
their parents, for the business of life.
This is a picture, drawn with hasty strokes, of the life of the eagle,
which, for the next few days, was the object of our expeditions. No
fewer than nineteen inhabited eyries were visited by us with varying
success. Now on foot, now in little boats, now jumping and wading,
now creeping and gliding, we endeavoured, unseen and unheard, to
approach the trees bearing the nests; for hours we crouched
expectantly beneath them in huts hastily built with branches, gazing
eagerly up at the eagles, which, startled by us or others, were
wheeling and circling high in the air, and showing no inclination to
return to their nests, but which we knew must return sometime, and
would probably fall victims to us. We were able to observe them very
accurately and fully, and this eagle-hunt gained, therefore, an
indescribable charm for us all.
Except for the eagles and other birds of prey which we secured, the
forests, which looked so promising, proved, or at any rate seemed,
to be poor in feathered inhabitants. Of course it was early in the year,
and the stream of migration was still in full flood; nor did we succeed
in investigating more than the outskirts of the forest. But even the
number of birds which had returned and taken up their quarters on
the outskirts of the forest did not come up to our expectations. And
yet this apparent poverty disappointed me less than the lack of good
songsters. The song-thrush did indeed pour forth its rich music
through the woods fragrant with the breath of spring; here and there
a nightingale sang; the finch warbled its spring greeting everywhere;
and even a white-throat tried its notes, but none of these satisfied
our critical ear. All who sang or warbled seemed merely bunglers,
not masters. And at last we began to feel that real song did not
belong to those dark woods at all, that the cries of eagles and
falcons, the hooting of horned owls and screech-owls, the croaking
of water-hens and terns, the shrill cry of herons and the laughter of
woodpeckers, the cuckoos’ call and the cooing of stock-doves were
the music best befitting them, and that, besides these, the only bird
that had a right to sing was the sedge-warbler, who lived among the
reeds and bulrushes, and who had borrowed most of his intricate
song from the frogs.
On the fourth day we hunted in the Keskender forest, a few miles
from the banks of the Danube. As we left the forests on the river
banks, we had to traverse a great plain bounded in the far distance
by a chain of hills. Our route lay through well-cultivated fields
belonging to the large estate of Bellye—a model of good
management—and we made rapid progress on swift horses. Here
and there marshy meadows, with pools and ditches, a little thicket,
large farm-buildings surrounded by gnarled oaks, a hamlet, a village,
but for the most part treeless fields; this was the character of the
district through which we hastened. Larks innumerable rose singing
from the fields; dainty water-wagtails tripped about the roads; shrikes
and corn-buntings sat on every wayside hedge; brooding jackdaws
and starlings bustled and clamoured about their nests in the crowns
of the oaks; above the ponds ospreys were wheeling on the outlook
for fish, and graceful terns skimmed along in zigzag flight; the
lapwing busied itself in the marshes. Apart from these, we observed
very few birds. Even the Keskender wood, a well-kept forest, which
we reached after two hours’ riding, was poor in species,
notwithstanding its varied character. There, however, were the nests
of spotted-eagles and ospreys, short-toed eagles and common
buzzards, falcons, owls, and, above all, black storks in surprising
numbers, and our expedition was therefore successful beyond all
expectation. And yet the foresters, who, in anticipation of the Crown
Prince’s visit, had, only a few days before, searched the woods and
noted the position of the various eyries on a hastily constructed map,
did not know of nearly all the birds of prey and black storks nesting in
the forest. “It is like Paradise here,” remarked the Crown Prince
Rudolf, and these words accurately described the relations between
men and animals in Hungary. Like the Oriental, the Hungarian is
happily not possessed by the mania for killing which has caused the
extreme shyness of the animals, and the painfully evident poverty of
animal life in Western Europe; he does not grudge a home even to
the bird of prey which settles on his land, and he does not make
constant and cruel raids on the animal world, which lives and moves
about him. Not even the low self-interest which at present prompts
covetous feather-dealers to make yearly expeditions to the marshes
of the lower Danube, and which sacrifices hundreds of thousands of
happy and interesting bird-lives for the sake of their feathers, has
had power to move the Magyar from his good old customs. It may be
that indifference to the animal life around him has something to do
with his hospitality; but the hospitality is there, and it has not yet
given place to a thirst for persecution. Animals, and especially birds,
remain quite confidently in the neighbourhood of men; they go about
their own affairs quite unconcerned as to what men may be doing.
The eagle has his eyrie by the roadside, the raven nests among the
trees in the field, the black or wood stork is hardly more shy than the
sacred house-stork; the deer does not rise from his lair when a
carriage passes within rifle-range. Verily, it is like Paradise.
But we found a state of paradise elsewhere than in the Keskender
forest. After we had roamed through the forest in many directions,
and had visited more than twenty eyries of buzzards and ospreys
and black storks, and had refreshed and strengthened ourselves
with an excellent breakfast provided for us, and still more with the
delicious wine of the district, we set out on our return journey to the
ship, urged to haste by threatening thunder-clouds, but still hunting
and collecting as time and opportunity allowed. Our route was
different from that which we had followed in coming to the forest; it
was a good high-road connecting a number of villages. We passed
through several of those, and again the road led us between houses.
There was nothing remarkable about the buildings, but the people
were stranger than my fancy could have pictured. The population of
Dalyok consists almost solely of Schokazen or Catholic Servians,
who migrated from the Balkan Peninsula, or were brought thither by
the Turks, during the period of the Turkish supremacy. They are
handsome, slender people these Schokazen, the men tall and
strong, the women at least equal to the men, extremely well built and
apparently rather pretty. We could form a definite opinion with regard
to their figures, but, as far as their faces were concerned, we had to
depend to some extent on our own imagination. For the Schokaz
women wear a style of dress which will hardly be found elsewhere
within the boundaries of Europe at the present day: a dress which
our princely patron, happy as usual in his descriptions, called
mythological. When I say that head and face were almost entirely
enveloped in quaintly yet not unpicturesquely wound and knotted
cloths, and that the skirt was replaced by two gaily-coloured apron-
like pieces of cloth, not connected with each other, I may leave the
rest to the most lively imagination without fearing that it will be likely
to exceed the actual state of things. For my own part I was reminded
of a camp of Arab nomad herdsmen which I had once seen in the
primitive forests of Central Africa.
At dusk, under pouring rain, we reached our comfortable vessel.
Rain fell the following morning also, the whole day was gloomy, and
our expedition was proportionately disappointing. All this impelled us
to continue our journey, though we look back gratefully on those
pleasant days on the Bellye estate, and though it would have been
well worth while to have observed and collected there a few days
longer. With warm and well-earned words of praise the Crown Prince
bade farewell to the officials on the archducal estate; one glance
more at the woods which had offered us so much, and our swift little
vessel steams down the Danube again. After a few hours we reach
Draueck, the mouth of the river Drau, which thenceforward seems to
determine the direction of the Danube bed. One of the grandest river
pictures I have ever seen presented itself to our gaze. A vast sheet
of water spread out before us; towards the south it is bounded by
smiling hills, on all the other sides by forests, such as we had
already seen. Neither the course of the main stream nor the bed of
its tributary could be made out; the whole enormous sheet of water
was like an inclosed lake whose banks were only visible at the chain
of hills above mentioned; for through the green vistas of the forest
one saw more water, thickets, and reed-beds, these last covering the
great marsh of Hullo, which stretches out in apparently endless
extent. Giant tree-trunks, carried down by both streams, and only
partly submerged, assumed the most fantastic shapes; it seemed as
if fabled creatures of the primitive world reared their scaly bodies
above the dark flood. For the “blonde” Danube looked dark, almost
black, as we sped through the Draueck. Grayish-black and dark-blue
thunder-clouds hung in the heavens, apparently also amidst the
hundred-toned green of the forests, and over the unvarying faded
yellow of the reed-beds; flashes of lightning illumined the whole
picture vividly; the rain splashed down; the thunder rolled; the wind
howled through the tops of the tall old trees, lashed up the surface of
the water, and crowned the dark crests of the waves with gray-white
foam; but away in the south-east the sun had broken through the
dark clouds, edged them with purple and gold, illumined them so that
the black shadows grew yet blacker, and shone brightly down on the
smiling hills, which lead up to a mountain range far away on the
horizon. Below and beyond us lay hamlets and villages, but, where
we were, at most a cone-shaped, reed-covered fisher-hut broke the
primeval character of the magnificent scene, which, in its wildness
and in the weird effect of the momentary flashes of light, was
sublime beyond description.
The scarcity of birds was striking, as indeed was the desolateness of
the whole sheet of water. Not a gull floated over the mirror of the
Danube, not a tern winged its zigzag flight up and down; at most a
few drakes rose from the river. Now and then a common heron, a
flight of night-herons, an erne, and a few kites, hooded crows and
ravens, perhaps also a flock of lapwings, and the list of birds which
one usually sees is exhausted.
From the following day onwards we hunted and explored a wonderful
district. The blue mountains, upon which lay bright, golden sunlight
during the thunder-storm of the previous day, are the heights of
Fruskagora, a wooded hill range of the most delightful kind. Count
Rudolf Chotek had prepared everything for the fitting reception of our
Prince, and thus we enjoyed several days which can never be
forgotten. From the village of Čerewič, on the upper side of which
our vessel lay, we drove daily through the gorges, climbed the
heights on foot or on horseback, to return homewards each evening
delighted and invigorated. The golden May-tide refreshed heart and
soul, and our host’s untiring attention, complaisance, courtesy, and
kindness went far to make the days passed at Fruskagora the
pleasantest and most valuable part of our whole journey.
It was a charming district, about which we roamed every day. Around
the village was a range of fields; beyond these a girdle of vineyards
which reach to the very edge of the forest; in the valleys and gorges
between them the innumerable fruit trees were laden with fragrant
blossom, which brightened the whole landscape; on the banks,
beside the road which usually led through the valleys, there was a
dense growth of bushes, and the refreshing charm of the wealth of
blossom was enhanced by the murmuring brooks and trickling
runlets of water. From the first heights we reached the view was
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