Nine Months Later, What I've Been Up To

My last entry, Generating a self-signed SSL certififcate, was made nine months ago, so what have I been up to in the meantime? I decided to take a break from software, a semi-retirement of sorts. I have been wanting to build a passive solar house, so I started on the journey to doing it.


Passive solar refers to the use of heat from the sun to provide heat for a structure. Passive solar homes use materials like rammed earth, adobe, or compressed earth blocks for walls. These materials have tremendous thermal mass, meaning that they capture and store heat energy very well. They are also very strong and, in the case of traditional adobe, have been used by people for home-building for thousands of years.

Passive solar homes also use large south facing (in the Northern Hemisphere) windows to bring light and heat into the home during the day, where it is stored by the thermal mass of walls and floors and released at night, keeping the structure warm long after the sun has set.

Over the summer, I started clearing a piece of land I own in New Mexico. On the building site I chose, there had been an old turkey farm. What was left was a tremendous amount of debris, concrete rubble, and trash from decades ago. I spent the summer into the fall removing debris and rubble, getting the site ready for my construction project.

At the same time, I researched building techniques and materials, submitted plans for the house, and acquired tools I would need for the project. A small tractor might seem like an extravagance, but with a handful of attachments- backhoe, loader bucket, pallet forks, and box blade, I have a great set of tools for the construction process.

Tack on a hydraulic press to create compress earth blocks (CEB) and I'm off and running.

Above you can see the result of several months of demolition, debris hauling, excavation, filling with dirt, and grading. On the left behind the shrub you can just see a pile of concrete rubble, what was left of hundreds of feet of wall and the ruin of the concrete barn. Using a loader, my 15K dump trailer, and my truck, I made roughly thirty trips to a company called Vulcan Materials that recycles waste concrete. Probably 60 cubic yards of material - that was quite a job.

In case you were wondering, no, this isn't the first time I've built anything. My father built homes for many years when I was younger, and I spent some time helping him build. I learned carpentry and the construction process along the way. However, building with earth was new to me, so I read as much as I could and got my hands dirty to see what was involved. I'm still learning, and the project is ongoing, so expect to see some updates as I move toward a completed home.

Generating a self-signed SSL certififcate

Open Source, Web Development

One of the tasks every software developer needs to tackle periodically is generating a self-signed SSL certificate in one form or another for the purpose of testing SSL-secured software systems. Here is an easy method to generate a self-signed cert on the CLI.

$ openssl genrsa -out privatekey.pem 2048

$ openssl req -new -key privatekey.pem -out signingrequest.cer

$ openssl x509 -req -days 3650 -in signingrequest.cer -signkey privatekey.pem -out certificate.pem

altseven 6.0.0 - Overview

altseven, JavaScript, Open Source

Like other client-side JavaScript frameworks, an altseven application starts with an HTML page that is used to import the JavaScript application code. Unlike React, altseven does not enforce a single root HTML node per application, so the served HTML page may contain any number of HTML elements that can be used as root nodes for different parts of the application. In practice, this design means that you can deliver the base HTML structure of an application as static HTML that renders immediately when the HTML page is received by the browser.

Livesandbox Web app editor v 0.12.0 release

JavaScript, Open Source

The next release of the livesandbox Javascript/Web app in-browser editor is now available. This release includes a profile page and profile picture, along with a number of other minor enhancements to improve the user experience in the application.

gadget-ui v 7.0.0 - Part II - uploading images to a NodeJS app using FileUploader

gadget-ui, NodeJS, Open Source

In Part I of the look at the 7.0.0 release of gadget-ui, I discussed some of the new features of the library and provided some insight into the new NodeJS-based test system.  I left out the discussion of the new FileUploader example written in NodeJS. In short, the new NodeJS test system includes code to demonstrate the FileUploader functionality using NodeJS as a backend. While it isn't necessarily a production-ready solution, it should give you enough code to implement the FileUploader against a NodeJS server without any significant obstacles.

gadget-ui v 7.0.0 - Part I - NodeJS support

gadget-ui, NodeJS, Open Source

gadget-ui, my open source JavaScript component library, has reached a new milestone- v 7.0.0. This release contains several new features, the most significant of which have to do with NodeJS support. Recent versions of the library have required users to set up a CFML engine such as Lucee or ColdFusion to fully test all of the components in the library. The 7.0.0 release now includes a NodeJS-based solution for testing all of the library components.

Recommended Computer Configurations for 2020

Technology, Web Development

For professional laptop users, I recommend a baseline configuration of at least 32 GB RAM, a quad core CPU, and an M.2 SSD with 512 GB or more of space. From there, I recommend upgrading the SSD to the fastest possible speed (3500 MBps read speed currently), and increasing the size of the disk as much as you can afford. 2TB is currently the max size for a high end M.2 SSD. Depending on the use case, I also recommend increasing RAM to 64 GB if possible. Lastly, some of the very highest end models such as the top tier MacBook Pro offer a six core CPU. While that might be the CPU you get by default if you choose the top MacBook Pro, most users will not need the additional cores.

New Year, New Ideas


For the new year, I have decided to blog with a partial focus on answering questions. More specifically, I spent the last couple of years answering many technology question on Quora. For the new year, rather than answer on Quora, I am going to take a selection of questions people ask me and answer them on my blog, where I have control over what gets published.

So here's to the New Year, may it be a good one.

How Design Teams are Killing Usability on the Web

Web Development

I've been using the Web since almost the very beginning, and never have I seen more problems with the usefulness and usability of corporate web sites than I have seen recently. Every new corporate re-branding/web site update/enhancement round seems to lead to more and more problems.

Today, I am looking at how design considerations have overtaken basic rules of functionality and usability for the Web. My example case today is the web site for Firestone Tires, Firestone, if you don't know, is an established leader in the United States in auto care. Firestone Tires focuses on sales and installation of automobile tires.

Building and Configuring Apache James with OpenLDAP

Apache James, Open Source, OpenLDAP, Ubuntu

[ This post is part of my ongoing instructional series on setting up some baseline IT infrastructure for the fictional startup Shoestring Lab. Shoestring has committed to using Open Source wherever possible. Shoestring Lab has standardized on Ubuntu for its server and desktop/laptop computer systems.

Today's lesson

Now that you have built a central user repository for your network using OpenLDAP, you need to configure an email server to use the OpenLDAP user repository.]


Recent Entries

Entries Search