On Programming Languages

I like types.I like curly braces.I like semi-colons. Types guide you to better code.Curly braces clearly define blocks of codes.Semi-colons clearly define lines of code.

Scale QT Apps for HiDPI

Most of Ubuntu/GNOME scale nicely with a high dpi (hidpi) display, there has been built-in support since 19.04 and now fractional scaling is just a simple toggle away in the latest 20.04. I use a 4K external monitor so a 150% scaling works great, however, not for all apps. Zoom is the most common app […]

WSL2

The May 2020 Windows 10 update—that eventually made its way out late into June—brought with it an upgraded Windows Subsystem for Linux (WSL). WSL 2 changes the underlying architecture of the system, introducing a full Linux kernel built by Microsoft. This brought a wide range of improvements including a better file system, faster boot time, […]

Linting Markdown Syntax

Linting is the process to check code for potential errors and enforce a style guide, but linting is not just for code; you can lint markdown documents for the same reasons. Markdownlint is a Node package to lint markdown syntax, use markdownlint-cli for use on the command-line, or use the Visual Studio Code plugin for […]

Unix Crontab

Introduction cron is a utility that you can use to schedule and automate tasks. By defining items in the cron table, called crontab, you can schedule any script or program to run on almost any sort of schedule. A few examples: Download RSS feeds daily at 6:30am, Run a program 5 minutes after midnight on […]

Good first issue on Gutenberg

This post and screencast walks through the process for how you can make your first contribution to Gutenberg. I walk through all my steps to submit this Gutenberg PR#18175 This follows up on my previous screencast for creating a Storybook story for Gutenberg components. Steps 1. Find issue to work on. Search using the good […]

Coding a Storybook Story

Being inspired by my colleague Jon Q videos for building a Gutenberg Component. I wanted to try my own, just focused on building the story part for Storybook. Q’s videos are great, they go deep into the thinking and details for designing components and a large component design system. My screencast is just short and […]

My Debugging Process

Here is the process I go through when trying to debug a tricky coding problem. First, I run a private personal blog which I use for debugging and taking coding notes. You can consider this your coding journal, and whatever tool works for you. I find something digital works better, since you can use HTML […]

Ubuntu Guide for Mac Converts

Here are some tips and tricks to help Mac users adjust to Ubuntu and Linux. I was a die hard Mac user ever since OS X was released in 2001. The combination of a Unix core and real desktop apps was a perfect match for desktop and development. However times change, with Apple’s focus on […]

Beyond Ad Blocking

Ad blockers are one way to make the internet a slightly nicer place. However,  more can be done, especially when it comes to helping yourself from making bad decisions, like reading the comments. First, you need a browser extension which allows you to run your own CSS. The most popular is probably Stylish which has […]

Unix is my IDE

An integrated development environment (IDE) such as PHPStorm, Eclipse or Netbeans provides a set of tools and integrations available together to make development easier. Common features are: Text Editor Project search and replace Automatic building, testing, linting Source control integration The command-line meets all of these features. Editor First, my text editor is vim. I […]

Git Snippets

A collection of git snippets gathered for my own reference. Undo If you made a commit you want to change, use reset it resets the pointer for the entire repository back to that moment. You can use reset with a hash or ~ back from head. This example would move back two commits: The –hard […]

IP Address

It is possible to represent an IPv4 address in different formats than the common x.x.x.x notation. An IPv4 address is simply a 32-bit number, or a 4-byte number with each section representing a byte. For example using my mkaz.com IP address: 45.79.78.169 Converting each part to binary: Decimal Binary Hex 45 00101101 2D 79 01001111 […]

Code Signing a Windows application

Today, we released our WordPress.com Desktop app on Windows, the app takes advantage of all the work put in creating the Calypso app which is the Javascript client code that powers WordPress.com, which is all open source. To build the desktop apps, we use Electron which bundles Javascript, Node and the Chromium browser together into […]

Testing Clients to an HTTP API in Go

An example on how to test a client which calls out to an external API, without requiring the API server to be up and running. From Testing Techniques video by Andrew Gerrand at Google I/O 2014. Go has a standard library net/http/httptest which you can use to create a test HTTP server, similar to Go’s […]

Python Argparse Cookbook

I use Python as my go-to tool for command-line scripts, these often requiring parsing command-line arguments. Since I use various programming languages I don’t remember anything, so I create reference docs for myself and hopefully others. So similar to my Python String Format Cookbook, that is examples for string and number formatting, I wrote this […]

Lanyon, a markdown web server

I’ve just released a new bit of software I’ve been developing. Lanyon is a simple web server, which reads directories of markdown files and converts them to HTML and serves. An intuitive and easy way to create a website. It is open source and available on Github at github.com/mkaz/lanyon Lanyon was derived from my static […]

The Command-Line Office

Live your life on the command-line, this week we take a look at a suite of command-line office tools and utilities. Updated: This article received a little bit of extra attention and comments which brought some great suggestions and alternatives. I’ve tested a few of them out and included additions below, also check out the […]

Preventing Errors in Code

This week looking at preventing errors when coding: An ounce of prevention If you don’t read anything else, read the Joel Test to make sure your development practices follow the basics. If you can’t pass the test there’s your todo list, Joel Spolsky wrote it over a dozen years ago and still just as valid […]

Command-line Basics and Tips

A collection of tips to help you on the command-line using Linux, Mac OS X or other unixy command-line system. You might already know most but hopefully there are a few new ones or helpful tips on how to save time and use in productive ways. I’ve tried to include real and useful examples for […]