Software Architecture with Python
You can't cover every aspect of architecture (or design) in one book. Every single chapter's topic is more of a crash course and could easily (and have been) discussed in their own book. That said, it was an interesting read for someone who has no plans or desires to build a system at the scales the book discusses. So who and when should you read this? Probably best suited for someone with programming experience that wants to scale up their career.
Good Habits for Great Coding Improving Programming Skills with Examples in Python
It starts off fairly strong with a focus on readability and style, though much of this is subjective and/or determined by your shop style, which boils down to consistency more than anything else. He talks about not being clever or using tricks since they are often hard to read, but then goes on to mix his message while breaking his own advice by being clever multiple times. There are several mentions of problem solving, devoid of any actual advice aside from the suggestion to read Polya. More haphazard advice litters the remainder of the book; advice on comments, tests, and loads of other stuff that isn't necessarily bad, but the tips are all over the place. Lastly there is a few chapters on algorithms and dynamic programming that don't feel like they fit at all.
Practical Python Design Patterns
The patterns are, overall worth understanding; the more tools you have in your toolbox, the more exposure you have to have various problems can be decomposed, the better. That said, some of the coding style I think could be more harmful than useful. In general I think there is too much emphasis on a Java-like use of abstract base classes (even when you can finally omit the abc), something that doesn't feel like it is in the spirit of python, but, they are a tool, and have their place. My second issue is that there are simply too many classes with 2 methods, 1 being __init__; It feels like the author has overdosed on the object oriented Kool-Aid, sees every problem, ironically after talking about the right tool for the right job, as a problem that should be solved with OOP. The best part of the book, in my opinion, comes in chapter one where there is some solid advice on learning, continued learning, deliberate learning.
Masting Python Regular Expressions
The book, short and sweet as it is, still has space to devote the first chapter to the history of regular expressions, not failing to mention the grep trivia. After the history is history, it moves on to cover, at first, the basics, including building patterns and match objects. Next it moves into slightly more advanced territory with groups and backreferencing. The most advanced features covered are matching with look ahead and look behind, both positive and negative. It finishes up with some tips on optimization and the advice to not prematurely optimize.
Python - Penetration Testing for Developers
A basic overview of penetration testing methodologies, black/white/gray boxing; NIST; OWASP; OSSTMM, are covered, providing a basic understanding of what penetration is, more than how you go about it, for even the least initiated of readers. Next a survey of a large portion of the more common tools is given that provides more of an introduction to, rather than an understanding of, each tool. The best part of the book is probably the coverage of packets, which, while not examined in gory detail, are presented in an easily digestible visual manner in addition to their descriptions, giving the reader enough understanding to take the next step. With your basic understanding of packets, you are now presented with several iterations of python programs that can mimic or extend the features of the publicly available tools; you move from nmap, to the nmap python library, to sockets, and finally scapy, which affords you custom packet creation. The work flow, from reconnaissance to exploit, from logging to reporting, is covered, but, given there is so much to each stage in penetration testing, not in particularly high detail.
Basics of Linear Algebra for Machine Learning - Discover the Mathematical Language of Data in Python
Slow to start but then picks up the pace as it moves along. gIt is not proof heavy; if you want a full blown linear algebra book this is not it. There are plenty of examples of how to implement various linear algebra operations in python/numpy that are extremely well explained. For someone familiar with the concepts, either python or linear algebra, it may seem a little remedial. All in all it was a little too simple for my tastes (but an enjoyable, breezy, casual read), but as an introduction used before moving on to more advanced books, or for someone that wants to dive right into machine learning who is OK with a less nitty-gritty and more practical approach, it is ideal.
Thoughtful Machine Learning with Python
This book starts of extolling the virtues of test driven design and the SOLID principles, which, while respectable, seem somewhat forced and out of place in a machine learning book. Next, much of the code is written from scratch, not utilizing libraries and giving a look under the hood. The code itself, while complete, lacks the thorough explanation one would hope for in a book for beginners. The equations underlying the algorithms are presented, but, like the code, lack explanation or proof. All in all the book tries to cover too much in too few pages.
Python - Deeper Insights into Machine Learning
This is a straightforward, no nonsense book, or three, that will allow you to go from zero understanding of machine learning to quite advanced, assuming you put in the required time and effort. The code provided is detailed, extremely well explained, often line-by-line, and gives you a solid intuitive basis that will make your journey into the more advanced areas more concrete. The book starts slowly and then moves forward at a steady, but more than manageable, pace, building on the previous, often simplified examples using SKLearn, to reach more modern and advanced techniques using libraries such as Theano and Keras to leverage your GPU. It lacks some of the detail you might want when it comes to mathematical proofs, but it does include plenty math to whet your appetite; supplementing this book with a follow up with an appropriate linear algebra/algorithms math book would probably be ideal. Lastly, at the end of each chapter in the third module there are numerous resources provided for further study in regard to the more advanced topics.
Building Machine Learning Systems with Python
The first, and most important, point that the book tries to instill is that most of your time will be spent on feature engineering - preparing the correct attributes to produce the best results - not on writing or even implementing the other, sexier, aspects of machine learning. As the old adage goes, garbage in, garbage out. Once your data is cleaned up, there are many different algorithms covered that one can use to build a model, clustering, bag-of-words, K-Means, K-Nearest Neighbors, regression, Bayes, or even a combination of several methods, known as an ensemble. The examples are generally applicable to real life problems one might face, text/sentiment analysis, recommendation systems, and audio/visual classifications. It concludes with an introduction to cluster, or cloud, computing that will allow you to take advantage of more powerful processing through the python library 'jug' and to quickly set up your first cluster on Amazon Web Services (AWS).
Mastering Machine Learning with Python in Six Steps
Chapter 1 is, as usual in many of these kinds of books, a whirlwind introduction to python that is safe to skip or skim. The next few chapters introduce machine learning's fundamentals, supervised versus unsupervised learning, various regression and classification techniques, as well as timed series forecasting. The remainder of the book builds on these concepts with model diagnosis and tuning using probability, cleaning up and engineering the features of imbalanced or 'dirty' data, in addition to introducing variance, biasm hyperparamaterization, grid/random searches, and ensemble training, chaining multiple algorithms together - all important topics that add to an overall understanding of machine learning. Another area, of much current interest, is that of text mining that can be employed in sentiment analysis or recommendation systems. Lastly neural nets, what is often called deep learning, is covered in a less rigorous fashion as it is an extensive topic in and of itself, plus it is on the cutting edge of algorithm development.
Firefox Session Saver
A simple script to backup and restore your Firefox session without the need for flaky addons.
Power Function Model
Notes and an example on how to use python to create and plot a power function model in python using numpy, scipy and matplotlib.
Image Notes HTML Parser
A simple program to generate the HTML (jinja) for all the image notes associated with a book.
Python Algorithms - Mastering Basic Algorithms in the Python Language
It starts out with an overview of big O running times. Next the basics of graphs and trees are discussed, with more advanced discussion later. Many of the common mathematical equations and concepts are covered as well as more advance topics including proofs, NP hardness, and recurrence equations and their applications and running times. Searching and traversing are covered with basic concepts like depth/breadth first search as well as more advanced algorithms. The appendixes list algorithms, problems, and terminology.
This is an article about how to rip the country land border data from wiki, reformat it, and dump it into a neo4j graph.
This is an article about graph databases in general.
This is an article about neo4j. From the ground up, maybe some reference material.
A pair of simple timers. One written in bash and the other in python.
Khan Academy Video Sorter
From one messy folder containing almost 5000 hashed video names to a neatly organized hierarchical structure in 25 lines of python.
Building Web Applications with Python and Neo4j
The first half focuses on setting up the software and interacting with your first graph database using cypher. The second half is overloaded with basic Flask and Django based tutorials alongside deployment issues like caching, fault tolerance, clustering, and other advanced features. It provides a nice overview, but a whole book could be written about each of the last three chapters.
One of the first python programs I wrote, in 2014, to actually do something for me. It threadedly scans multiple craigslist cities and categories and writes everything it sees to an SQLite database. It was used to alert when new items are posted that match a given criteria and to search for non-location specific goods ie: a sailboat.