This blog represents the... Well, to be perfectly honest, I've lost track of how many times I've tried to re-start my code-blogging efforts since I stopped posting to My Brain On Python back in early 2012. I've re-started at least three times that I can think of before this attempt, but various issues have prevented me from getting very far. The last attempt was stymied by the accidental destruction of my primary development machine while trying to demonstrate how to install the Raspbian OS on a memory-card for a local High School's programming club.
When I last posted to My Brain on Python, I'd just started a new job, working mostly in Python, for an advertising agency. Since then, I've written a couple of full web-applications, and thousands of lines of code. I've also learned a lot about Python, about designing applications, and working with (or around) various common/popular web technologies for client-side functionality and display. I've grown enough, I think, in that respect that I can't really continue blogging only about Python — though it's still my go-to language for most any development efforts, so much of those efforts have been in web-application efforts with other code and technologies that I feel I have to include them at some level as well. Realistically, a lot of what I've learned could arguably be applied to writing code in other languages as well.
When I left off, I'd commented that I wasn't sure if I could share
any of what I was doing. Since then, I've determined that I can, with
some precautions and/or caveats, mostly centering around making sure that what
I was sharing was mine, unencumbered.
To that end, while a lot of what I'm
going to write and share here uses much the same structure, solving the same
challenges with the same kinds of classes and objects, I'm going to make sure that
everything I implement here is clean-room
development — started from
the ground up.
A lot of what I'm going to write I'm writing simply because I enjoy writing code. As I work through a lot of the projects and their needs and requirements, I may well work out my own implementations of various capabilities that already exist in Python. That's intentional, for various reasons. In some cases, I may not like an existing implementation. In others, there may be functional reasons, actual new functionality that I need. Or, frankly, it may boil down to something as simple as me not being able to find existing capabilities/functionality that I want/need. It's happened before.
A certain amount of my efforts will also be directed towards providing working examples of what I believe to be best practices in development efforts, things like:
- Standardizing and streamlining the development process, at least for my typical workflow;
- Standardizing and streamlining API documentation;
- Creating and enforcing automated testing policies, and assuring
satisfactory code-coverage (for whatever constitutes
statisfactory
); and - Creating and standardizing final build processes, with at least a tentative eye towards facilitating continuous integration.