Starting a New Job

Starting today, I’m very excited to be working as a technical writer for Canonical. It is a thrill to be able to earn money while learning and writing about something that I am already passionate about: Ubuntu.

Some readers of my blog may not know this: Canonical is the company that provides support and resources to help the open source community make Ubuntu and promote its use across a multitude of devices and use cases.

A Blind Willie Johnson cover

I don’t think I have mentioned my YouTube channel on this blog. It is time. I recorded a couple covers of Blind Willie Johnson songs this week as my most recent contributions. In this video, I mention a really cool collection of covers that I supported on Kickstarter a few years back that was released just recently. Check it out with this song, the links I provide from it, and please know you are invited to also check out any of the songs I have recorded. (I also take requests from time to time, although there is a queue and it takes me time to learn songs I don’t already know…)

Fighting Shadows


Fighting Shadows is set in Morocco. It is a fictional account that tells the story of one young man’s attempt to find justice after receiving a brutal beating during a political protest. Set against the backdrop of the Arab Spring throughout North Africa, the book attempts to demonstrate in narrative some of the reasons why the uprising never took hold to the point of revolution or civil war, like happened other countries such as Libya, Tunisia, and Egypt.

The story begins on that fateful day, February 20, 2011, starting with Farid and his participation in a protest in the town of Sefrou. The reader is taken on a journey that touches on the delicate balance of power in a country that rails against a history of control and abuse of power by the government while also fearing the rise of Islamist fundamentalism should that power be toppled.

The novel ably and clearly demonstrates the fear many citizens feel, whether their fear is centered on the local police, on the national security forces, or on the government’s secret forces. The book describes problems with bribery and corruption, but it also describes good people standing up and trying to fight against it. The real question is how effective those fights are or can be. This book does not give a definitive answer, but does an excellent job of asking questions that should be asked.

I have written a small amount; about these issues in the past, but not much. I lived in Morocco for 7 years and hope to visit again. I have friends who live there, a few expats and far more Moroccan people. I have no interest in stirring up trouble for myself or for them. At the same time, if we don’t question what we see and ask questions about what could be done, nothing can ever improve, in Morocco or anywhere else.

Fighting Shadows does not prescribe a specific remedy, but does a very good job of illuminating the problems that exist. Anyone interested in the politics and people of the region will find that the book helps frame questions that need to be worked through as Morocco and the Moroccan people look toward the future. Will the future be based in fear, whether fear of the Makhzen or of the Ikhwan, or will the future be ruled by hope, and if so, hope in what?

Note: this is a self-published book. Often, I find that self-published books deserve closer scrutiny than manuscripts that have gone through the more rigorous editorial and publication process with a publishing house. It is because I found this book to NOT have most of the common weaknesses of self-published books that I decided to post about it. My guess is that the only reason that a large publisher wouldn’t print this is because they may have felt the market was too small for the book to earn out. The content is of high enough quality to deserve your consideration.

No disclosure needed. I bought this book and thought it was worth sharing with you.

Two Python Books

I like Python. I like its internal consistency. I like its design that all but ensures there is one right way to write almost anything and that any good Python programmer can figure that way out and use it. I have reviewed several Python-focused books and expect to do so in the future. So, this review will not be about the language itself, but about how well each of the two books included cover the language and provide interesting use cases.

There are two books in this review: Learn to Program with Minecraft: Transform Your World with the Power of Python and Python Crash Course.

and

Learn to Program with Minecraft: Transform Your World with the Power of Python presents a fun use case with Python. It covers how to install Minecraft, Python, Java, the Minecraft API, and a single-player Minecraft server called Spigot to allow you to take advantage of Python to do things to your Minecraft world. One thing to note is that installation is only covered on Windows and Mac OSX. The book also covers using the IDLE editor with Python, the Python shell, and all the basics of the language within the book-long use case of making modifications and improvements to your Minecraft world. Topics covered include variables, expressions, operators and basic mathematics, strings, booleans, if/then/else statements, loops, functions, lists and dictionaries, files and modules, and the basics of object-oriented programming. Good stuff. The text is presented with full-color examples and beautiful graphics throughout. The writing is clear and easy to follow.

Python Crash Course takes a different tack. The audience is similar, mainly young people who are just starting their coding journey. However, the approach is more generic in application and perhaps more detailed in what it covers. As with the other book, the examples are project-based, but not focused on interacting with one specific software product. You get all the same basics as the other book, but with extended coverage (to be fair, it has nearly double the page count). The projects in this book are interesting and cover a broader set of topics: you get multiple chapters each covering one game project, one data visualization project, and one web application. I also like that in this book Linux is covered alongside Windows and Mac OSX, although the Linux install examples use APT, wish presumes the use of Debian or Ubuntu or another Debian-derivative. Not a problem for me, but I would have liked to seen that called out.

I liked both of these books. If I was focused only on interacting with Minecraft and modifying my game, the first would be my preference. For all other use cases involving learning Python, the second book is superior and the one I recommend.

Disclosure: I was given my copy of this book by the publisher as a review copy.

Slashdot Effect

The Slashdot Effect isn’t what it used to be (or maybe I’m not terribly interesting…possible). This blog was linked to from the beginning of an article a couple days ago. On Thursday, this blog had 178 views. On January 26, 2009, we had 7,120 views, which is the highest number recorded since I switched to WordPress and my stats were reset, mostly because StumbleUpon listed this post. Before that, back in 2008 we had more than 20,000 visitors in one day when I posted this.

The Manga Guide to Physiology

I’m re-using this first paragraph introduction from the last review I wrote for a book in this series:

This is one of several atypical educational books that use graphic art to help teach difficult concepts or illustrate the action and another wonderful entry in the “Manga Guide to…” series that I have been reviewing.  I keep requesting review copies of each title in the series as they come out, and I have yet to be disappointed. This is an impressive series that consistently makes very difficult academic topics more interesting and a little easier for students. I would not consider these a replacement for a textbook, and neither would the publishers of the series, but every book that I have reviewed from the series would make an excellent supplement, especially for the struggling student.


The Manga Guide to Physiology tackles all of the main points of a typical Physiology 101 course that might be taken by a college freshman. It does so with clarity, with precision, and surrounds the academic details with an enjoyable narrative that makes the information much easier to absorb. In fact, I would go so far as to say the story makes the subject matter move from difficult, but interesting, to enjoyable. This is done by giving a context to the subject matter that the reader can relate to.

Kumiko Karada is a freshman nursing student who is struggling. She is failing her physiology class and has one chance to pass. She must do exceptionally well on a makeup exam. This is a daunting task, made easier with the help of Osamu Kaisei, an assistant professor in the Department of Sports and Health Medicine. It turns out that Osamu is also a gifted teacher who is preparing his course syllabus and materials for the same class that Kumiko is failing. The two work together to help Kumiko learn what she needs to know.

Topics covered in the book include all the main systems: circulatory, respiratory, digestive, kidneys and renal, the brain and nervous, musculoskeletal, endocrine, and also details like body fluids, cells, genes, and reproduction. The information is accurate, up-to-date, and clearly presented. The topics are first introduced within the narrative, but gaps and additional details are added at the end of each chapter. The chapters are each based on a specific system.

Studying physiology? This book won’t replace your textbook and doing your homework, but it has a very strong chance of helping you overcome the fear and intimidation that are often associated with these complex topics. Like the other titles in this series, I recommend this book highly.

Disclosure: I was given my copy of this book by the publisher as a review copy.

An Elementary Introduction to the Wolfram Language

It was the Fall of 1988. I was a freshman at the University of Arizona. One of my classes was honors calculus. My professor, whose name is long forgotten, included in the course a new computer program called Mathematica. I remember, both because it was interesting and new and because it required me to purchase an additional book for the course. The book had a black cover, white text, and a colorful image that I can’t quite recall.

The author of that program and book was Stephen Wolfram, the same person who has written An Elementary Introduction to the Wolfram Language and the language that the book introduces. It is interesting, more than 25 years later, to revisit the thinking style of Mr. Wolfram.

The Wolfram Language is unique. It is easy to grasp. The syntax is clear. This is also true of this book. The first sentence of the main text sets the stage for all that follows:

The Wolfram Language is a computer language. It gives you a way to communicate with computers, in particular so you can tell them what to do.

The remaining 300+ pages of the book are this clearly written. The book starts with that basic sentence and requires no prior knowledge…with one glaring exception.

The exception is this: the book never tells you how to install or otherwise access and use the Wolfram Language. This seems like a major failure to me. What editor should you use, if any? Does the language need to be compiled? Oh, wait, it seems there is something called the Wolfram Programming Lab and other interactive Wolfram Language environments, but without pouring over a set of links under Other Resources at the end of the introduction before the start of Chapter 1, you would never be able to find any of these.

To make my readers’ lives a little bit easier, start here: https://www.wolfram.com/language/. When I say easier, that is by degrees. You will still have to sign up for a Wolfram ID to start using the Wolfram Development Platform, accessible from the link above. The FAQ on the site says, “The Wolfram Engine runs on desktop, cloud and mobile. Its kernel runs on Intel and ARM architectures, under Linux, Mac and Windows, as well as soon under iOS and Android, and certain embedded operating systems. Its interactive user interface runs natively on Mac, Windows and Linux, and is also supported on web browsers.” However, I did not find any quick reference or obvious links for doing so. Disclosure: I assume the information must be in the website somewhere, I’m simply saying that I didn’t find it quickly and gave up trying because I have lots of other things vying for my time.

So, there you go. I like what I can see about the language, at least as far as I can tell from the book. I did not find an easy way to try it or use it and I found myself thinking about other things before getting around to doing so. Your mileage may vary, and if you can leap that hurdle, I think this book is incredibly clear and would be beneficial to anyone trying to learn the Wolfram Language.

Just before posting this review, I found this announcement from the author, which my readers may find useful: http://blog.stephenwolfram.com/2015/12/i-wrote-a-book-to-teach-the-wolfram-language/

EDIT on 12/14/2015: I received the following information from the publisher in response to this review and believe it is worth sharing.

In your review you mention that you’re unaware of how to install or otherwise access and use the Wolfram Language. The Wolfram Language can be used in all of our products (Mathematica, Wolfram Programming Lab, Development Platform, etc). Mathematica is where the language initially originated: http://wolfram.com/mathematica/?source=frontpage-quick-links

A Wolfram Notebook is like the terminal for other languages. You type your code into an empty notebook and press shift + enter to get your output. Here is some information about Notebooks: http://www.wolfram.com/language/fast-introduction-for-programmers/notebook-documents/

The Wolfram Language can also be used in our new product Wolfram Programming Lab, which integrates Mathematica notebooks: https://lab.open.wolframcloud.com/app/?source=frontpage-immediate-access and on our Development platform which is accessible from the web: https://develop.open.wolframcloud.com/app/?source=frontpage-immediate-access

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

The Maker’s Guide to the Zombie Apocalypse

The Maker’s Guide to the Zombie Apocalypse is a fun book. It uses a (fictional?) story of preparation for a coming zombie invasion to weave a narrative that presents a use case for an interesting set of electronic projects. The projects are all centered on survival; specifically, the things you are likely to find most useful in a situation where the electrical grid has failed and you find yourself surrounded by hostile forces. The progression of chapter topics is logical and each build upon the previous.

We start with a both fun and well-thought-out description of the problem, an overview of what a zombie apocalypse might look like. Here we learn what we are up against. Starting with chapter two, we work to mitigate against the various problems and threats to enhance our potential for survival.

Included topics include generating and storing electricity, building alarms and surveillance monitors, remote access and open door detection, environmental monitoring, and then wiring it all together into a control center. Additional topics include ways to distract the attention of zombies and different forms of confusion with other survivors.

This alone would make the book enjoyable and useful to anyone interested in these sorts of electronic projects. However, the book does not end here. Included are three useful appendices with information about acquiring and understanding electronic parts and tools, learning basic skills, and a primer on one of the two control modules used in projects in the book, the Arduino. The other, the Raspberry Pi, is less complicated and requires less instruction for the uses in this book.

I thoroughly enjoyed this book and think that anyone with similar interest in electronics would, too.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?