Astronomy for Kids

I have an eight year old who knows more about the solar system than most adults I know. He is fascinated by stars, planets, asteroids, comets, and anything else you can think of in space. How cool that I was able to give him this book.

Astronomy for Kids: How to Explore Outer Space with Binoculars, a Telescope, or Just Your Eyes! is a wonderfully laid out, fascinating, and intellectually stimulating introduction to becoming an astronomer, whether amateur or eventually a professional. The stated (and in my opinion achieved) goal is to help kids find and name objects in the night sky while teaching cool and fun facts about them.

The book starts with useful basics like “don’t look at the sun” and why some objects are only visible during a certain time of the year or from a specific hemisphere. From there we move to going outside at various times of the year and finding constellations and other objects with just the naked eye. Then, with binoculars. Next, using a telescope. The book is filled with clear and colorful illustrations and diagrams making it very easy for any reader to understand what is being described in the text and what they are looking for in the sky.

My eight year old is really enjoying this book and I’m sure your kids will, too.

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

The Manga Guide to Cryptography

This “Manga Guide to…” series is fantastic. This is another solid entry worthy of your time and attention, provided the subject matter is of interest for any reason. While none of the entries in the series could or is intended to replace a textbook, they are all fantastic supplementary materials to any study of the academic topics covered.

The Manga Guide to Cryptography tackles all of the main points you would expect of an academic introduction to the topic. 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.

Ruka Maguro is the younger sister of Jun Meguro, who is a police inspector. She tags along with him as he investigates a case of art theft from a supposedly secure museum. As information security is discussed during the investigation they are joined by Rio Yoneda, a news reporter, who points out the flaws in the first cryptographic cipher being used to protect the location of the now-stolen masterpiece. This is all in the first five pages.

From here, the story develops (I won’t spoil the plot any further). Along the way, the book covers the foundations of encryption and classic ciphers, various algorithms such as symmetric-key and public-key and multiple implementations and details for each, and finally a number of practical applications of encryption. The book will not teach you how to become an elite hacker (1337 hax0r, either), but will give you a solid introduction to a wide breadth of foundation information in the topic. It does so with enough clarity and precision to help you understand what the various ciphers, algorithms, and implementations are and how they are currently or previously used along with enough understanding to help you do further research on any that interest you deeply.

This book won’t replace a 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.

It seems that the publisher now prevents hotlinking of images. I don’t blame them, but that is why there is only one link to the book (in my first reference to the title) and not two (one from an image of the cover).
Disclosure: I was given my copy of this book by the publisher as a review copy.

Cracking Codes with Python

Cracking Codes with Python: An Introduction to Building and Breaking Ciphers has two goals. The book aims to teach the novice how to program in Python while also providing a good foundation in ciphers, encryption, and cryptography.

There is nothing in the book that will help the reader replace the excellent open source implementations currently available. That is not the goal. Rather, the reader has a chance to learn the foundations underlying classic and modern attempts to secure communication between parties.

The classics are all here, from simple reverse cipher and transposition all the way through to one-time pad ciphers and public key ciphers. The book starts simply from both a programming and a code perspective, gradually adding complexity while explaining first how a cipher works, then how it is coded, then what its weaknesses are and why you would want to move on to something better.

If learning Python while studying basic cryptography is of interest, you will find this book useful and well worth your time.

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

I wrote this in 1985

I am a technical writer. That is what I do for my day job. It is what I sometimes do for fun. Until recently, I did not realize that I have been doing this in some way since 1985. This was a school project I created when I was a fifteen-year-old high school freshman and found in a box in my mom’s house during a recent visit. It was originally accompanied by a balsa wood and paper scale aircraft model, which I built and which was created half covered and half exposed to show the airplane’s frame. This is not amazing work for someone my age today, but for a fifteen-year-old, I think it is impressive and worth sharing.

Attacking Network Protocols

I am always trying to expand the boundaries of my knowledge. While I have a basic understanding of networking and a high-level understanding of security issues, I have never studied or read up on the specifics of packet sniffing or other network traffic security topics. This book changed that.

Attacking Network Protocols: A Hacker’s Guide to Capture, Analysis, and Exploitation takes a network attacker’s perspective while probing topics related to data and system vulnerability over a network. The author, James Forshaw, takes an approach similar to the perspective taken by penetration testers (pen testers), the so-called white hat security people who test a company’s security by trying to break through its defenses. The premise is that if you understand the vulnerabilities and attack vectors, you will be better equipped to protect against them. I agree with that premise.

Most of us in the Free and Open Source software world know about Wireshark and using it to capture network traffic information. This book mentions that tool, but focuses on using a different tool that was written by the author, called CANAPE.Core. Along the way, the author calls out multiple other resources for further study. I like and appreciate that very much! This is a complex topic and even a detailed and technically complex book like this one cannot possibly cover every aspect of the topic in 300 pages. What is covered is clearly expressed, technically deep, and valuable.

The book covers topics ranging from network basics to passive and active traffic capture all the way to the reverse engineering of applications. Along the way Forshaw covers network protocols and their structures, compilers and assemblers, operating system basics, CPU architectures, dissectors, cryptography, and the many causes of vulnerabilities.

Closing the book is an appendix (additional chapter? It isn’t precisely defined, but it is extra content dedicated to a specific topic) that describes a multitude of tools and libraries that the author finds useful, but may not have had an excuse to mention earlier in the book. This provides a set of signposts for the reader to follow for further research and is, again, much appreciated.

While I admit I am a novice in this domain, I found the book helpful, interesting, of sufficient depth to be immediately useful, with enough high-level descriptions and clarification to give me the context and thoughts for further study.

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

Learn Java the Easy Way

This is an enjoyable introduction to programming in Java by an author I have enjoyed in the past.

Learn Java the Easy Way: A Hands-On Introduction to Programming was written by Dr. Bryson Payne. I previously reviewed his book Teach Your Kids to Code, which is Python-based.

Learn Java the Easy Way covers all the topics one would expect, from development IDEs (it focuses heavily on Eclipse and Android Studio, which are both reasonable, solid choices) to debugging. In between, the reader receives clear explanations of how to perform calculations, manipulate text strings, use conditions and loops, create functions, along with solid and easy-to-understand definitions of important concepts like classes, objects, and methods.

Java is taught systematically, starting with simple and moving to complex. We first create a simple command-line game, then we create a GUI for it, then we make it into an Android app, then we add menus and preference options, and so on. Along the way, new games and enhancement options are explored, some in detail and some in end-of-chapter exercises designed to give more confident or advancing students ideas for pushing themselves further than the book’s content. I like that.

Side note: I was pleasantly amused to discover that the first program in the book is the same as one that I originally wrote in 1986 on a first-generation Casio graphing calculator, so I would have something to kill time when class lectures got boring.

The pace of the book is good. Just as I began to feel done with a topic, the author moved to something new. I never felt like details were skipped and I also never felt like we were bogged down with too much detail, beyond what is needed for the current lesson. The author has taught computer science and programming for nearly 20 years, and it shows.

Bottom line: if you want to learn Java, this is a good introduction that is clearly written and will give you a nice foundation upon which you can build.

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