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.

Wed, 29 Mar 2017

Using highlight.js for code syntax highlighting on your web site

I first learned about highlight.js while trying out the Go-based Hugo blogging system, where it is a popular choice for adding syntax highlighting to blocks of code displayed on web pages.

Another solution is Pygments, but I didn't want to wade into Python, and a pure JavaScript solution like highlight.js seemed easier all around.

I had already used highlight.js successfully in a couple of Hugo themes, one in which I did the installation myself and another that had it built-in.

So it was only a small leap to do the same on this Ode site.

The instructions are clear (and easy), and the highlight.js developers allow you to create a custom download via check-boxes to include only the languages and markup you want to use on your site. That same page has info on using two separate CDNs (content delivery networks) to deploy highlight.js on your web site, but I opted to create my custom bundle and host it on this site as part of my main Ode theme.

Once you have the Javascript and CSS on your site and are calling it into your web pages, everything between <pre><code> and </code></pre> will benefit from highlight.js' syntax highlighting.

And as you can see, it works.

The only time this kind of syntax highlighting gets problematic is when displaying HTML, where you need to replace < with &lt;, > with &gt; and so on.

Here's a small bit of Ruby so you can see what the syntax highlighting looks like without leaving this post:

Dir.glob("X16*") do |file|
 File.delete(file)
end

Eloquent JavaScript - Chapter 2 exercises - Fizz Buzz

I'm not saying I will make it through all 22 chapters of "Eloquent JavaScript," by Marijn Haverbeke, but enough people I respect have recommended the book that I'm doing my best to absorb what I can from it.

To that end, I am doing the exercises in the back of each chapter, and I plan on presenting my solutions here.

This entry also serves as a test of the Highlight.js JavaScript library, which I just added to this Ode site for syntax highlighting of code. I'm using the zenburn CSS.

Back to "Eloquent JavaScript." If you don't want any hints, don't go past the blog index. I will only start showing my code after the "read more" portion of each entry.

Before maybe a year ago, I'd never heard of Fizz Buzz, where you write a program that outputs the words Fizz, Buzz or Fizz Buzz depending on whether a number is divisible by 3, by 5 (and not 3) or by 5 and 3.

Fizz Buzz is supposedly used as a programming test in hiring. I was surprised when it was given as the second exercise in Chapter 2

Read the rest of this post

Thu, 23 Mar 2017

Coming over to the dark side

I recently received a too-expensive birthday present: a new laptop.

For the women in my life, seeing all those keys pop off was too much I guess.

The HP Pavilion g6-2210us is still kicking as it nears the 4-year mark. That's a modern record for me. My previous laptop, the Lenovo G555, died just after its second year of service. I still have a second replacement keyboard still on the way from China for the HP Pavilion.

Once I get this new laptop fully set up, at some point I'll pop a new hard drive into the old HP. The current drive has a lot of bad sectors. A lot. Then I'll run it as a full Linux system with no Windows partition.

So what about the new laptop?

It's an HP Envy 15-as133cl 15t with Intel Core i7, 1080p resolution, 16GB of RAM and a 1TB spinning hard drive.

The case is all metal, which is quite an upgrade from my previous all-plastic laptops.

It has Windows 10. The first thing I did was install the Windows Subsystem for Linux so I could have Bash in the terminal and access to thousands of console-based applications from the Ubuntu archive.

Read the rest of this post

Tue, 28 Feb 2017

WordPress WordAds revenue expectations are depressing

I've been going through the excellent WP Tavern blog on WordPress news today, and I stumbled across this post on how much bloggers can expect to earn from the Jetpack-powered WordAds platform.

tl;dr: Not very much. But the numbers are all over the map. One thing WordPress tells you: better content, more money.

Linked from the article above, a blog that makes about a month from WordAds on 2,600 to 16K page views.

WP-CLI is so very, very cool

At the moment, I only have two WordPress sites for which I have shell access, so WP-CLI shouldn't be a big deal for me. But it is.

The whole idea of managing WordPress.org sites in the console (and being able to avoid the WP Dashboard) is such genius, I wonder why nobody thought of it before now.

The possibilities, especially when WP-CLI is combined with traditional shell scripting, are many. From updating the software, installing and managing plugins, this drags WordPress into a realm where sysadmins can really get things done and save a lot of time doing it.

I still have blogs littered all over the place

I wrote into two blogs that I rarely think about:

Gathering up all of my blog entries from everywhere and putting them under one site has always been in the back of my mind. I have taken steps to do this, especially grabbing entries from WordPress sites en masse, but I have yet to write and deploy the scripts that fixes the metadata and image links to really make it happen.

My "old" WordPress blog is pretty deep in terms of content. It was active from 2005 through 2009ish. Combine that with my Daily News-hosted tech blog, active from 2006 through 2011 (with a smattering since then) and my other Daily News-hosted personal blog, active from 2006 to maybe 2009 with a trickle since then, you have a lot of blog posts.

Even though I wrote three WordPress posts today, I'm still a lot more interested in writing for the blogs that use "flat" files like this Ode system or my new, experimental Hugo site.

If and when I do get the ability to take the output from WordPress data dumps and turn it into text and image files that can work in flat-file blogging systems, then I'll have a huge archive of everything, however dubious it may be.

Mon, 27 Feb 2017

I finally replaced my HP Pavilion g6 keyboard

I had a new keyboard, and my "n" key on the old one broke again (the replacement was never as good as the original key), so I decided to pull the laptop apart and install the new keyboard.

While putting it all together, I did get one little screw wedged in a plastic hole (I'll extract that one later and replace it), but an old laptop can get along with many fewer case screws than it ships with. If you've ever had a used or otherwise repaired laptop, you know what I'm talking about.

The keyboard replacement wasn't too hard. I probably took out a lot more screws than needed to make it happen. I could have just removed the back panel, unscrewed the keyboard-retaining screw (that's the wedged-in-plastic one) and popped the keyboard out from behind/below by aggressively pushing on the proper spot with an eraser-tipped pencil.

I tried that, and it wasn't happening. I knew the keyboard was held in "tight" due to the last time I tried to replace it when I had the wrong part.

So I took out a bunch more screws and then tried again. The extra screws probably didn't need to be removed, but at that point I was more confident in the amount of pressure I was putting on that eraser-tipped pencil to push the keyboard out through the top of the laptop's plastic case.

I got the keyboard out and pulled the ribbon cable.

Inserting the new keyboard's ribbon cable wasn't instant. It took me a couple of minutes to figure out how it snapped in. But I got it done, snapped the keyboard itself into the case and closed everything up.

It all works, and now I have a new keyboard on this laptop that will be 4 years old in a couple of months.

This keyboard isn't a "springy" as the other replacement keyboard I bought a few months back that didn't quite fit, but it'll do the job and give this laptop some more useful life.

My last laptop, a low-priced Lenovo G555, only lasted 2 years before it went to sleep and never woke up. This also-cheap HP Pavilion g6-2210us is still running at nearly 4 years old, but not without effort.

It just underscores my contention that you can't really get 5 years of service out of a laptop. If they don't fail mechanically or electronically, they'll be ancient in some other way. I'm no longer saying "don't pay more than $500 for a laptop," because I see real differences between the $500 and $700-900 laptops being offered these days. But I will say that no matter how much you pay, if you're beating the hell out of it like I do, don't expect more than two trouble-free years.

* Pictured above is the new keyboard before I put it in. After removing the hatch at the bottom of the laptop and removing a retaining screw, there is a little hole on which you can push at the keyboard from below with an eraser-tipped pencil and loosen its plastic grip with the case enough to start unsnapping it the rest of the way around for replacement.

Fri, 24 Feb 2017

'Big Bang Theory's' Stuart wears Ubuntu T-shirt

Am I the only person to notice that comic book shop-owning Stuart (Kevin Sussman) on the "The Big Bang Theory" is wearing an Ubuntu T-shirt on the episode airing Thursday, Feb. 23, 2017? (It's Season 10, Episode 17, if that information helps you.)

The T-shirt appearance isn't as overt as Sheldon's mention of the Ubuntu Linux operating system way back in Season 3 (Episode 22, according to one YouTube video title), but it's an unusual return for Ubuntu to the world of "Big Bang."

What does it mean that the show's most loserly character is a Ubuntu fan?

Mon, 20 Feb 2017

Fixing Fedora 25 upgrade issue with iptables

Are you having the same problem I've been having with Fedora 25 updates and something having to do with iptables?

I found the answer in the Fedora Forums:

You need to get rid of this old package first, then do the software upgrade:

$ sudo dnf remove system-config-firewall-base

Then do your usual upgrade, either in your favorite GUI (Whatever GNOME is using or yumex-dnf) or dnf in the terminal:

$ sudo dnf upgrade

This is very likely only an issue if you've been upgrading the same system since Fedora 21 (and I have).

Thu, 02 Feb 2017

At jury duty, and boy are my arms tired

It's been years since my last call for jury duty, and I find myself once again in the Stanley Mosk Courthouse in downtown Los Angeles.

Except last time they sprung me by noon. And today I'm still here at 3:30 p.m. I didn't get called for any panels, and I suspect there won't be any more need for jurors today. Yet I am still here.

I took the Metro Orange Line to the Red Line to get here, and I was surprised (though I shouldn't have been) to see the refurbished Pacific Electric Train Depot at the end of the Orange Line open and serving Groundwork Coffee. Love that coffee. I smell a bike ride down the Orange Line in my future.

This was also my first time taking the fancy new underground pathway (you can call it a tunnel) on Lankershim Boulevard from the Orange Line terminus straight into the North Hollywood Red Line Station. That is slick, and I'll thank all the politicos who helped make it happen, including Rep. Brad Sherman, City Councilman Paul Krekorian and anybody else I missed. This is the kind of thing the San Fernando Valley needs, and I'm glad it now has it.

During the long lunch break they give us chickens jurors, I walked around a bit. I haven't cracked the code for this part of downtown (Music Center and Civic Center). Grand Park is nice but smaller than you think it is. Other than all the Music Center and Civic Center buildings, there's nothing here. I passed by the Colburn School and saw a sole classical-music student making her way into the building.

If you're looking for something other than huge buildings, I guess you have to truck it to Little Tokyo in one direction or Chinatown in the other.

Gadget-wise, I didn't bring my laptop, just the tablet and wireless keyboard and mouse. I can't use all three at once because there are few table- or desk-like surfaces here. Just my actual lap and a book I brought that is serving as a small table for the keyboard while I balance the tablet with its built-in magnetic stand on my knees. Weak as shit. Whatever.

I got through a few hundred Disqus comments from my day job, deleted a couple of months' worth of personal e-mail clutter and checked in with the news via Google and Twitter (Trump, Trump travel ban, Uber guy says no to Trump, Snap as in Chat gets ready to IPO, Facebook's Zuck is either clueless or crafty, Trump, Trump), and then got the keyboard out to write a bit.

A few months ago, I did a whole setup on this tablet to use my day job's CMS -- the awful Saxo Mediaware Center via Citrix -- but I soured on it like I've rarely soured before when I realized that putting Citrix in the background, as one does with everything in Android all the time, results in my losing the connect to the app's Citrix-connected server. Call it a nonstarter. I'm slated to say goodbye to Saxo and Citrix in a few months, and it couldn't be too soon.

Meanwhile, Jury Duty Lady, let us go home!!!

Update: 3:40 p.m. It's over. I'm done with jury duty for 2017.

A couple of observations: All buses and trains I was on were crowded, so Metro seems to be doing more than fine ridership-wise. And I don't recall seeing any law enforcement presence at all on either line, whereas in the past the Metro system could be thick with deputies. Might be a byproduct of Metro's wish to either scale back or end its contract with the sheriff's department. Or not ...