Americas

  • United States
sandra_henrystocker
Unix Dweeb

Python Playground: Geeky Projects for the Curious Programmer

Reviews
Oct 22, 20153 mins
Data CenterOpen SourceSoftware Development

Mahesh Venkitachalam

no starch press, 2016

Ready to jump into some seriously interesting Python programming?  Here’s a book that will challenge you to take on some fascinating projects while explaining everything you need to know to be successful. Python Playground is NOT a book for beginners, but it is a book that anyone who is comfortable with Python scripting is likely to find is helpful for moving them from competent to skilled with this highly versatile scripting language. It does this by providing a fairly large and varied group of geeky projects to motivate you to put your Python skills to work doing things like creating ASCII ART, simulating the movement of a flock of birds (or “boids” as the book and New Yorkers are likely to call them), rendering volume, and making better use of your Raspberry Pi — all using Python. This is the kind of book that will move you from knowing basic commands to understanding how to put them to use in some fairly complicated but fun programs.  The project that I jumped into was one that I could easily identify with — creating ASCII art from photos — after many years ago finding that I could write programs to manipulate jpg files.  So I got to work fairly quickly. Python was already installed on my Linux laptop.  I added NumPy (think “numbers” and “Python” — a package for numerical/scientific computing in Python) plus python-devel and python-numpy, downloaded the code from the end of that particular chapter, and began turning some of my jpg files into ASCII.  Of course, I first read the details in the book that explained very clearly the process that the code was using and understood how various keyboard characters could create the “art” by representing the lightness or darkness of pixels in my photos.

The resultant images are very low resolution, but the process works as expected and could be modified to create larger higher resolution images as needed.  And, of course, that’s just one of the many projects you can work on. The thing that I like best about this book is that the projects are advanced enough to help you develop marketable skills in Python — one of the languages that is in high demand today.  I also appreciate that you can download the source from book’s web site, and that instructions to install the additional software you’ll need for many of the projects are included in an appendix. Examine the chapter listing below and you’ll see how wide and varied a range of projects is offered.  Anyone interested in developing skills and insights into what Python can do for you is likely to get a lot of value from putting these projects to use. Table of Contents Part 1: Warming Up Chapter 1: Playing with Playlists Chapter 2: Spirographs Part 2: Simulating Life Chapter 3: Conway’s Game of Life Chapter 4: Karplus-Strong String Synthesis Chapter 5: Boids Part 3: Imaging Chapter 6: ASCII Art Chapter 7: Photomosaics Chapter 8: Autostereograms Part 4: 3D Computer Graphics Chapter 9: Introduction to OpenGL Chapter 10: Particle Systems Chapter 11: Volume Rendering Part 5: Hardware Hacking Chapter 12: Introduction to Arduino Chapter 13: Laser Lissajous Audio Chapter 14: A Raspberry Pi–based Weather Monitor Appendix A: Software Installation Appendix B: Basic Electronics Appendix C: Raspberry Pi Tips & Tricks If you want to become adept at doing clever things with Python, I doubt you’ll find a better group of projects or more useful help for understanding how the language works.

sandra_henrystocker
Unix Dweeb

Sandra Henry-Stocker has been administering Unix systems for more than 30 years. She describes herself as "USL" (Unix as a second language) but remembers enough English to write books and buy groceries. She lives in the mountains in Virginia where, when not working with or writing about Unix, she's chasing the bears away from her bird feeders.

The opinions expressed in this blog are those of Sandra Henry-Stocker and do not necessarily represent those of IDG Communications, Inc., its parent, subsidiary or affiliated companies.