TS McNamara (45) [Avatar] Offline
Welcome to the August/September 2018 progress report for Rust in Action, a book on the Rust programming language for intermediate programmers that teaches Rust via systems programming examples.

To start with, some good news. 2 chapters have been released since my last progress report! The early access book is over 200 pages long already, so it's a great time to buy. You can feel safe that you'll learn something and you still have plenty of opportunity to contribute if you're so inclined.

About the newly released chapters

Chapter 11 - Time and Timers takes readers through the process of creating a fully-fledged NTP client that can update the system's time. It starts by walking through how quartz crystals keep your computer moving and works its way through several practical examples. Oh and it also describes how Google delals with leap seconds. You'll learn that Google's treatment is different from almost everyone else in the world.

Chapter 12 - Exceptions, Signals, Interrupts is really great. We start by exploring what the difference between several related terms such as traps/signals/exceptions/interupts are. The body of the chapter walks readers through UNIX signals and the use of signal handlers as a model for exception handling more generally. The chapter also discusses how to access LLVM's "intrinsic functions", which unlock code that allows you to jump around the stack through functions. It's kinda neat!

So... what's up?

Depression & anxiety came back to my life. The book's progress suffered. I've had a good rest and things are progressing well again.

Now for some more difficult news. At the risk of oversharing, the last 12 weeks or so have been especially difficult for me:

• relationship pressure - for the book, I've tried to spend 8-11pm 4x/week. That's meant my partner and I have had very little kid-free time together, and I have been unable to contribute around the house as much as I usually would. This has led to some frustration and tension, which we have been working through.
• family pressure - I've got 2 kids under three years of age and they've both been really sick all winter. We are hoping the upcoming spring and summer will bring some relief!
• work pressure - I've been feeling increasingly disengaged at work over the last 12months or so, which led to a period of me investigating options for myself to work overseas before my kids reach school. During August, I had around 20 interviews, most of which were 5-6am or 10-11pm due to time zone realities. The process was exhausting and didn't eventuate into a suitable offer.
• financial pressure - we discovered earlier this year that one of our house foundations was unstable.. a leaky pipe had been undermining it. The unexpected repairs ran into five figures.
• performance pressure - my personal aim for writing a book was to produce the best technical book of its generation. I have been noticing a trend downward in quality as publication volumes increased. I want to write a book that people will refer to for 2 decades or more. That kind of goal is extremely debilitating.
• illness - I too haven't escaped getting sick. Seasonal influenza struck me down for about 2 weeks during the period.

The environment for all of this has been consistently poor weather (thanks, winter) and a backdrop of depression/anxiety. The Rust community is amazing. But I am faced with crippling impostor syndrome. Normally I can allow those types of thoughts to simply fade away.

But in August, I had panic attacks for the first time since I was at university (about 15 years ago).

When that happened, I realised that I really needed to put the book down and rest as much as I could.

That rest has happened and now everything feels much lighter.

So I do apologize that I haven't been as fast as I would have liked in completing the book. It will happen - I just need to be a little more patient with myself. Otherwise I risk loosing my relationship, my kids and my livelihood.

Why Rust in Action? Should you buy the book?

Yes. The book is very good and has received near-universal praise.

If you're interested in learning Rust--especially if you have been told something like "you need to know C/C++ before you can really understand Rust"--then probably! In many ways, Rust in Action is intended as the next book that you read after the introductory materials.

A secondary goal is to really demystify the term "systems programming". It's not magical. You are perfectly capable of understanding how a file system operates and how memory works. Rust in Action is actually unique from the point of view of systems programming books too - as almost every example works on Windows!

The book tries to teach you everything that seems to be assumed by the more advanced blog posts that the community tends to generate. Its not finished, but it is in a good shape to do that already. Here are a few interesting projects that have already been implemented:

- a CPU emulator
- a fully functional NTP client
- a skeleton grep implementation
- a fixed-point decimal implementation
- a memory scanner so you can learn how game cheaters cheat

Connect with the author

You are very welcome to reach me at any stage! The easiest method for me is Twitter, but I am also active on LinkedIn, the Rust subreddit and the Rust users forum. Oh and other places too like Stack Overflow and Quora. I tend to stay off synchronous channels such as IRC as I'm based in a strange time zone (UTC+12).
srepho (5) [Avatar] Offline
Very sorry to hear that. The book so far is excellent and it's amazing how much you have produced so quickly - I hope you are very proud of what you have achieved. Your health and family are vastly more important than any book so take as much time as you need. I can only imagine the daunting nature of writing a book but please know that there are many of us who really appreciate your work.

Best Wishes

19705 (3) [Avatar] Offline
Hey. Look after yourself! It's already one of the best tech books I've read. I have learned so much from it, and still have a lot to get from the parts already written. Take as long as is needed to get it done.. health and family come first, and it will all be worth it in the end.

Best wishes to you and your family.
611653 (1) [Avatar] Offline

Just wanted to tell you, that I decided to buy the book AFTER reading your report.
Usually I wait till release, but the overall feedback and 'free' chapter, mixed with the report, changed my mind.

Sorry to hear about all the negative things, but you should know, that the book is already amazing.
Find your own pace and take a day or two off per week. Quality of content is most likely linear with the amount of passion and interest the author/teacher has.
As you said, it should be a reference for the coming years, so take your time.

Being a teacher I know that your own personality is what makes this special. Keep it up!
360782 (4) [Avatar] Offline
Keep up the great work, and remember family come first!

Take all the time you need, I’ve just purchased the meap regardless.

453123 (8) [Avatar] Offline
just wanted to echo what others have said already. i just purchased the book and jumped into the later sections, as i am an intermediate rust programmer already. the material is quite high quality and i look forward to the upcoming chapters. i feel that the book is shaping up to be one of the better rust books for sure.

one suggestion since you have quite ambitious plans for the content; consider covering issues around dynamic trait objects and object safety. there are some real limitations there which needmore exploration in literature