Title photo
frugal technology, simple living and guerrilla large-appliance repair

Regular blog here, 'microblog' there

Many of my traditional blog post live on this site, but a great majority of my social-style posts can be found on my much-busier microbloging site at updates.passthejoe.net. It's busier because my BlogPoster "microblogging" script generates short, Twitter-style posts from the Linux or Windows (or anywhere you can run Ruby with too many Gems) command line, uploads them to the web server and send them out on my Twitter and Mastodon feeds.

I used to post to this blog via scripts and Unix/Linux utilities (curl and Unison) that helped me mirror the files locally and on the server. Since this site recently moved hosts, none of that is set up. I'm just using SFTP and SSH to write posts and manage the site.

Disqus comments are not live just yet because I'm not sure about what I'm going to do for the domain on this site. I'll probably restore the old domain at first just to have some continuity, but for now I like using the "free" domain from this site's new host, NearlyFreeSpeech.net.

Tue, 26 Dec 2017

Steady work on rewrite of the BlogPoster app

I have been working steadily on the BlogPoster app, both tightening up the current "production" version and slowly coding the new "modular" version based on Ruby blocks.

Over the weekend I coded up a few blocks in what I hope will be a very atomized app in which all of the blocks do just about one thing and can be called upon in various combinations for different tasks.

Today I worked on the regexes for creating filenames based on post title. The hardest part is dealing with strange characters and website <title> text that contains lots of linefeeds. (Confession: This site did the same until I fixed it. Please don't put linefeeds in your <title>.)

I got rid of the extra linefeeds, but I was ending up with occasional doubled underscores (my go-to replacement character for the space between words). I came up (i.e. Googled and stole) the regex for "match two or more of this character," which in this case is __+, and I was off to the races. I also figured out that in HTML titles with extra lines, I was inadvertently adding an underscore to the beginning of a string, and I used ^_ to find that and kill it out. Regex is fun and profitable.

Hopefully I'll get back to working on the "new" version. I'm coding it slowly and deliberately because I don't want it to be a mess. Next version will be more object-oriented (i.e. will use classes) if I can figure that out. First we'll see how this version turns out,

Wed, 20 Dec 2017

Regular expressions in JavaScript

Regular expressions in JavaScript by Zsolt Nagy.

The Twitter 'like' symbol is a ❤ and should be a 👍

One thing that bothers me about Twitter is that the 'like' symbol is a ❤ when it should be a 👍. I think a heart means "love," and a thumbs-up means "like." A heart is often too strong for "like," especially in the kind of things that come up on Twitter.

I'd even be open to "like" and "love" with 👍 and ❤, respectively.

Thu, 14 Dec 2017

How to set file permissions from within Vim

I tried this, and it works: How to set file permissions from within Vim | Stack Overflow.

An example. In Vim's command mode:

:call setfperm("foo.txt","rw-r--r--")

It's probably easier to just do this in the Bash shell, but it can be done from within Vi/Vim.

In Bash (to make the files rw-r--r--):

chmod 644 foo.txt

I usually do all the .txt files in the directory (because I generally want text files to be 644, which is rw-r--r--):

chmod 644 *.txt

How to make your HTML responsive by adding a single line of CSS | freeCodeCamp

How to make your HTML responsive by adding a single line of CSS

How to leave white space on both sides of the page in an HTML document

From Stack Overflow: How to leave white space on both sides of the page in HTML

Tue, 21 Nov 2017

My Blog Poster app works well in Ubuntu (ok, really Lubuntu) Linux

I recently updated a 15-year-old IBM Thinkpad R32 laptop (Pentium 4, 1 GB RAM, 20 GB hard drive) to Lubuntu 16.04, and I set it up to run my Blog Poster script written in Ruby.

Since this is a Linux environment, I like to use the Ruby version that the system offers in its repositories, also installing as many Ruby gems as I can from those same repos (instead of using gem install from the console).

The Blog Poster app, which attempts to make it easy to create social and regular blog posts from the command line, uploading them to the blog and sending them directly to Twitter, is fairly simple. It uses two gems: Nokogiri to help pull the titles of web pages and Twitter to (you guessed it) send a post to Twitter.

On Windows I used gem install to get both of those gems, and I could do the same in Lubuntu. But I'm very comfortable with Linux package management, so I opted to install ruby (which, believe it or not, isn't in the Ubuntu/Lubuntu default install) as well as ruby-nokogiri and ruby-twitter, all from the Ubuntu repository.

It worked.

Curiously, the script's call to vim did not work. There is, theoretically, no vim in the Ubuntu/Lubuntu default. But there is vi. You can install vim, but I opted to stick with the vi default, and I modified the system call in my Ruby code to call vi instead of vim.

Also, copy-pasting into the terminal (LXTerminal is what I am using) via right-click works great (though ctrl-v does not work).

The Ruby script works great, and I did a few successful updates to my blog and Twitter feed with this very aged laptop.

Sat, 18 Nov 2017

Procedural vs. object-oriented: How should you code?

I'm a procedural programmer at this point. I understand the idea behind object-orientation, but going from those hokey examples (start with an animal class, then add a dog class) to actual code is another thing entirely.

I planned to base this post on a link that was supposed to be about procedural programming vs. OOP, and the article was pretty much a mess and didn't help me, so I'm not linking to it.

I need to see real code that uses OOP. That's the only way I'll figure it out.

I have too many tabs open to use Firefox

Even though the new Firefox promises to be twice as fast as the old one and a legitimate competitor once again to Google Chrome, I have to stick with Google's browser. I'm working today, and I have 25 or so tabs open. I can see all 25 at once in Chrome, but Firefox only shows so many -- you have to hit arrows on either side to see them all. That doesn't work for me.

Fri, 17 Nov 2017

Fix Windows Hello (facial recognition) on HP laptop (or probably any laptop) after Windows 10 Fall Creators Update

After I installed the Windows 10 Fall Creators Update on my HP Envy laptop, the Windows Hello facial recognition login feature stopped working.

I Googled and found a simple solution that works.


  • Open Device Manager
  • Expand Imaging Devices
  • Right-click on IR camera (or any camera, probably) and choose to update the driver

The driver updated, then I went to Set Up Face Sign-In and re-configured Windows Hello.

And now it works.