On software development, quality, security and broken racecars

Development

Create a reusable chart component with Angular and D3.js(8/26/2017)-Integrating D3.js with Angular to create reusable chart components. This is an updated version of the original post that covered integrating D3.js (version 4) with Angular 2. This version covers the latest Angular version (currently 4.2.4).

Implement a RESTful interface with Android Things and Raspberry Pi(1/13/2017)-Android Things (formerly “Brillo”) is a streamlined version of Android designed for small form-factor and IoT devices. Here is a simple example of a Things app that provides a RESTful web interface to control the state of an LED on a Raspberry Pi GPIO port.

Using Auth0 with Angular 2 and angular-cli(10/15/2016)-Auth0‘s standard Angular 2 quick-start uses SystemJS and loads the Auth0 Javascript files globally from index.html. That’s fine for demo purposes, but not ideal for production. I’ve created a github repo (and some additional notes in this gist) that demonstrates using Auth0 with an Angular 2 app generated with angular-cli. This example loads Auth0 as modules and […]

A “shrink-wrap” Python project template and development pattern(10/14/2016)-Javascript development certainly has its ups and downs, but one of the good things about its ecosystem is the ability to easily share projects and quickly get other developers up and running. With most projects, it is simply a matter of cloning the repo and running “npm install” and you are ready to go without […]

Python, LDAP and macOS(10/11/2016)-The Python LDAP packages (python-ldap and pyldap) mostly work on macOS, but if you try to use some options and APIs, you will run into trouble. For example:

RESTful Flask application quick-start(10/8/2016)- With the rise of the single-page application (SPA) web front-ends and mobile apps, the backend of many web applications is a collection of RESTful interfaces that provide JSON data rather than generating HTML. The rendering is up to the client side. While there are some drawbacks to this approach (heavier client, slower initial page […]

Cmder tip: enable forward slash completion(10/7/2016)-Cmder includes better command-line tab completion – normally, paths will be completed using the default Windows path separator, the backslash (“\”). But Windows has recognized the forward slash (“/”) as an optional path separator for a while now and there are instances where this might be desirable, especially if you switch between Windows and Unix-like environments […]

Debugging pytest in VSCode (without adding files to your project)(10/5/2016)-Update July 29, 2017: updated to work on Windows and simplify configuration. For debugging pytest executions, the official VSCode Python extension documentation recommends creating an additional file in your project, e.g.: [crayon-5c93d9ab3dc36973326683/] and setting up a launcher to start the debugger against it. While this is simple, I really don’t like having to modify my project’s […]

Debugging a Flask 0.11 app in Visual Studio Code(10/3/2016)-Update July 30, 2017: a new simplified method that works for both Linux/MacOS and Windows with no changes to your Flask project required. Visual Studio Code with the the Python extension makes for a great Python development environment – especially if you work on blended Python/Javascript web apps. Here’s how to debug a Flask 0.11.x (or later) […]

What’s new in Flask 0.11.x?(9/30/2016)-It had been a while since I last started a Flask-based project, so I decided to have a look at what’s. new in the current release. Earlier this year, Flask and several other Python web development projects were organized under the Pallets Projects open source community and governance model. Along with the move, Flask 0.11 was […]

Creating a web development environment for Windows that doesn’t suck(9/29/2016)-While it's true that many open source projects consider Windows a second class citizen, the reality is that it continues to be the operating system of choice for most business environments and many developers find themselves with no alternative. But this doesn't mean you have to settle for a poor experience.