My First Robotic Arm

This is my first effort at a robotic arm. Except for the gripper, these are all ‘off the shelf’ standard parts: 5 servo motors, 3 U-brackets, and 4 servo motor mounts.

The motors are controlled by a Veyron Servo Driver. Notice that all of the motors appear to be moving at the same time as the arm travels from one position to another. Also, once the main program communicates instructions to the controller, the main program is free to perform other tasks even while the motors are turning. This non-blocking synchronization would be very difficult to program using the PWM pins on an Arduino or Raspberry Pi.

My First Robotic Arm

Posted: Wednesday, September 1st, 2021
Category: Robotics

Does Bluehost Suck

Does Bluehost Suck?

As a web hosting company, many have expressed the opinion that Bluehost stinks:

I signed up for Bluehost 2½ years ago for a 3 year subscription at the rock bottom price of about $3.00 per month, paid in advance. I suspect they pack their servers with hundreds of websites and mine can really slow to a crawl. But, for someone who wants to learn about web development and has no plans to make money at it, the price cannot be beat.

I rarely need any support from Bluehost, but my site was recently hit by a malware attack. I now have something to say on the subject of: Does Bluehost suck?

Continue reading

Remove Hyperlink Warning in Outlook

The shortcut navigation pane in Outlook allows shortcuts to folders on the local computer. By default, however, Outlook displays an annoying security warning dialog box when the link is clicked. This article explains the registry settings needed to disable the dialog.

Posted: Thursday, January 10th, 2019
Category: Tech

Enqueue Scripts with ‘defer’ or ‘async’ attribute

First, add a filter for the script loader tag:

add_filter( 'script_loader_tag', array( $this, 'add_defer_attr' ), 10, 2 );

Then, enqueue the script, noting its WordPress handle (in this case ‘hotMessScripts’):

 plugin_dir_url( __FILE__ ) . 'js/hotMessAdmin.js', 
 array('jquery', 'jquery-ui-sortable', 'jquery-ui-dialog')

Then, identifying the script’s handle, alter the script’s tag by inserting the desired ‘defer’ or ‘async’ attribute before the ‘src’ attribute:

/* Add defer attribute to hotMessAdmin.js script tag */
public function add_defer_attr( $tag, $handle ){
	if( $handle == 'hotMessScripts' ){
		return str_replace( ' src', ' defer="defer" src', $tag );
	} else {
		return $tag;

Remember, all script tags will run through this filter. The unaltered tag must still be returned even for the scripts tags that should not be changed, thus the else clause is important.

Posted: Wednesday, January 9th, 2019
Category: Wordpress

Those Indecipherable Medical Bills? They’re One Reason Health Care Costs So Much

  • Why do we put our employers at a competitive disadvantage by requiring them to provide health care for their employees?
  • Why do hospitals need to provide free care to the uninsured, causing financial distress, especially in low income neighborhoods?
  • Why do doctors need to hire staff whose sole purpose is to sift through the red-tape imposed by different insurance companies?
  • And why do we allow a system of billing as described in this article? This could happen to just about anyone.

Stop the madness. Single payer, single payer, single payer!

Those Indecipherable Medical Bills? They’re One Reason Health Care Costs So Much

Posted: Tuesday, May 16th, 2017
Category: Essays