The Unix operating system is the most powerful development tool. It doesn't matter if you're working with a LAMP/LEMP stack, Java, NodeJS, or SQL or any other coding language, Unix allows you to develop code and computer systems more efficiently. Developed in…
When designing in Object Oriented Programming (OOP) the question I always ask myself when trying to figure out where some piece of code should go is, "Who does this behavior belong to?". If our class names are nouns, such as Orders, Books, ProductColors…
I'm looking to replace our Magento Ecommerce Server with something "Nice" - Something that is not complicated, not over abstracted, something that is well ... fun to work with. Saleor is an elegant solution. It is an Ecommerce app written in Python and Django…
Good Data makes life easy; If we model all our the business logic in the database then the application layer is trivial. Case in point: I'm implementing a User Access Module. First I define a list of Access terms: Things like dashboard (allow view dashboard)…
Complexity is only Simplicity x 1000 -- A mathematician friend once told me that. The idea struck a chord with me and has stuck with me ever since. Everything in this world is complex. When we design computer systems our goals should be to encapsulate that…
So we're all computer programmers, but what makes you successful? What makes you an excellent contributor to your team or company? I discovered the importance of these traits little by little over the years. They are progressively more important as you move…
When should we use secure practices and when not to? Like all good advice secure practices need to be weighed against practicality. In a perfect world your system will have full test coverage, automated testing, database migration scripts, automated…
The Database, Config and Logging are at the core of all application development. Everything starts there. A Database System stores all of the applications data. The storage itself can be anything from a loose collection of files like jpegs, a nosql db like…
If you don't diff before you commit you don't know what you're committing. When programming anything even remotely interesting, we're making changes all the time. Change, change, change. Phase 1, phase 2, experiment 1, experiment 2, etc. And we're using…
You know you're doing a great job when, adding new functionality to a code base, and you wind up removing more code then you've added. Less is More. I once heard boast a programmer that he'd written million lines of C code. That seemed undesirable to me…