Learning NumPy Array

I recently got a review copy of Ivan Idris’ “Learning NumPy Array” from Pact Publishing. I have read his earlier book “NumPy Cookbook” and found that useful, so I had my expectations quite high when I started.

The book is not huge brick, but still has enough content for almost 150 pages. As usual, first chapter is dedicated for installing NumPy, Matplotlib, SciPy, and IPython in various operating systems. While the information is good, I think just pointing to online resources would have been sufficient.

The second chapter is reserved for NumPy basics. This is where things are starting to get interesting if you haven’t worked with NumPy and arrays before. It is a good idea to read this chapter carefully, if you aren’t familiar with NumPy. Later chapters are built on top of the foundation laid here and are easier to understand when you understand the basics.

Starting from the 3rd chapter, the book dives into details of NumPy arrays and tools that are available to work with them. I like the fact the each subsequent chapter is built on a theme (basic data analysis, simple predictive analytics and signal processing techniques) with concrete examples. Mostly examples are built around various kinds of weather data, but there’s a little bit of stocks thrown into the mix too. Mathematical foundations are only explained in briefly because of the limited amount of the pages the book has. There’s enough detail for reader to understand what is going on and more information is readily available on internet.

Near the end of the book, there is short chapter about profiling, debugging and testing. Especially the part about testing I found very brief and not that useful, but this is book about NumPy after all and not about testing. This is probably the weakest part of the book and could have been left out. The pages used for this chapter could have been used to explain NumPy in more detail.

The last chapter of the book touches other related libraries briefly. It’s good to know how NumPy relates to for example SciPy and scikit-learn.

All in all I found the book very enjoyable to read and easy to follow. Sometimes graphics was getting a bit on the way, like when textual output was shown as an image of text instead of text (so font differed just slightly or the output had different coloured background). The author is already working on the next book, called “Learning Python Data Analysis” which also sounds quite interesting and is expected to come out 2015.

Day against DRM – campaign

I just heard that Packt Publishing is running a Day against DRM – campaign. For a very limited time, 6th of May, all their DRM-free content for 10$ a piece. That’s over 2000 books and videos. As a developer and consumer of eBooks, I think it is important that the content we purchase is not limited to a given device for example. Authors of the said content deserve to be paid for the hard work they did and the consumers deserve to be able to read and use the content in a way that does not limit their options.

From their press release:

Packt Publishing firmly believes that you should be able to read and interact with your content when you want, where you want, and how you want – to that end they have been advocates of DRM-free content since their very first eBook was published back in 2004.

“Our top priority at Packt has always been to meet the evolving needs of developers in the most practical way possible, while at the same time protecting the hard work of our authors. DRM-free content continues to be instrumental in making that happen, providing the flexibility and freedom that is essential for an efficient and enhanced learning experience. That’s why we’ve been DRM-free from the beginning – we’ll never put limits on the innovation of our users.”

– Dave Maclean, Managing Director

day against DRM

Instant SymPy Starter

I got a review copy of Instant SymPy Starter from Packt Publishing.

Since the book is from Instant series, it is not a thick one, only around 50 pages and it does not aim to teach each and every feature of the SymPy to the reader. Instead of that, 5 common features were chosen to be covered in the book. These features are: creating and manipulating expressions, numerical evaluation, calculus and solving equations. In addition to that there are instructions for installing SymPy and various other tools that could be useful and a quick example on curve sketching.

Each section contains clear examples that teach how to for example simplify symbolic expressions or calculate limits. The mathematical reasons behind examples are not explained, but it assumed that the reader is proficient with mathematics. I liked the decision since it kept the book short and compact and there are plenty of resources for mathematics elsewhere.

In the end of the book there is some resources for further study, like articles, tutorials, mailing lists and blogs.

The book is good purchase for a person who has not used SymPy before and wants to quickly get started with the basics. The same information can be found from internet of course, but in the book it has been laid out in a nice format and explained in such a way that the reader does not get sidetracked with unnecessary details.

The book is available from Packt Publishing at: http://www.packtpub.com/sympy-python-starter/book

NumPy Beginner’s Guide – Second Edition

I got a review copy of NumPy Beginner’s Guide – Second Edition from Packt Publishing. The book is relatively thick, a bit over 300 pages and packed with content.

As usual with Packt books, it starts by introducing the tools and giving detailed instructions on installing them, before diving into actual subject. The book starts easy, teaching how to create arrays and manipulate vectors. Soon more concepts are introduced starting from slicing and ending to SciPy. There is even a chapter about testing, which I found especially interesting to read.

I liked how there are pop quizes to help the reader to check if he understood what he just read. They aren’t really hard, but still quite fun. Layout of the book is clear and makes the books easy to read. There are plenty of examples and graphs in the book that help to explain the concepts.

The book is very suited for a person who is not familiar with NumPy and wants to learn it. It covers lot of ground in sufficient detail. I felt that reading this book was good investment of time and enjoyed it.

TeamCity 7 Continuous Integration Essentials

I got a review copy of TeamCity 7 Continuous Integration Essentials by Volodymyr Melymuka recently and I must say that it was pretty captivating to read (finished it in an evening and planning to read it again after digesting a bit). The book is about setting up TeamCity 7 for continuous integration (a subject close to my heart). While it does not go really deep into technical details, it serves as a good starting point for getting started with TeamCity 7.

The book starts by describing continuous integration and some other basic terms and concepts and continues into architecture of TeamCity and build lifecycle. These form the foundation for rest of the book as the author takes us through setting up the TeamCity and a sample project that is used to showcase how unit tests are handled and how code coverage metrics can be collected.

Setting up, configuring and maintaining the TeamCity server and build agents is described in sufficient detail and pointers are given to where to find more information. The end of the book is used to wrap up with more advanced techniques, like remote run, where TeamCity can be used to verify changes before committing them into source control.

I was really happy how down the earth the book is. The author does not feel need to make things complicated or complex, but explains them in a way that is easy to understand. This does not mean that he would be glossing over the details though. Everything is explained in sufficient detail.

The book is good purchase if you don’t have previous experience with setting up and administering TeamCity server. The book also covers TeamCity 7 from point of view of Windows, Linux and Macintosh, making it a good source of information regardless of the operating system in use. The book is relatively short, slightly over 100 pages, so reading through it will not take a long time.