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.

Mon, 17 Sep 2018

Everything doesn't have to be a web program

Desktop GUI programming used to matter. Just about every programming language offered a way to build a desktop application that wasn't tethered to the terminal.

And many programming languages either ship with or allow the installation of modules that allow for a desktop GUI.

Javascript, unfortunately, didn't do it in a lightweight way. While I've heard rumblings of some kind of React-based way to create a desktop GUI via Node.js (aka Javascript in your local terminal), the language of the web (and now servers everywhere) has latched on to Electron, basically a full Google Chrome browser in a local window.

I just want a GUI to be a GUI. Java has the once-new (wasn't everything) JavaFX, and the still-old Swing, but there's no excitement and few tutorials. That doesn't mean JavaFX isn't one of your best bets in creating desktop GUI software. For better or worse, it is.

The computing world really wants you to write GUI applications in whatever frameworks Microsoft or Apple offer. I want something cross-platform. I'm not interested in Swift, Objective C or C#, though I do have to admit that C# code looks as clear as anything out there.

While I like the apps I see written in QT, which is cross-platform, that just doesn't seem to be my thing. Sure, I've coded in C++, but it's not something I'm hankering to revisit.

I've written a little Perl, but that holds little attraction at this point.

My language of choice at the moment is Ruby. It should be Java (or Clojure, Go, Elixir, Haskell ... you get the idea), but it's Ruby.

Ruby used to have people who were sort of interested in GUIs. There was a RubyFX project at one point. Abandoned.

Ruby Shoes was clear and concise. For some reason it now only runs with JRuby, the Ruby on Java. The MRuby (aka "regular" Ruby) version was abandoned.

There's a GUI that still ships with Ruby. It's the same one that ships with Perl and Python.

It's called Tk.

Tk is old school. I think people cared about it once. It is tied to the TCL programming language. Those ties are close enough that I considered figuring out how TCL works and coding in that.

But Tk still works, and it is sort of, kind of still under development. I think.

The problem is that there are few resources for learning Tk with Ruby or Perl. I have been using the Tkdocs.com website, and I managed to get the first sample GUI program working. It's a simple converter from feet to meters, and I've been able to start hacking together my own program from that shell.

I'd love a book on Tk and Ruby that was published in the past 10 years. I might just have to settle for an old book.

For some reason or maybe a few, I have avoided coding in Python. I might have to change my mind. There is more interest in Tk in the Python world. I think there are even recent books on the Python and Tk. There might even be newer tutorials on the web. I've stumbled across a book from Packt, but I haven't investigated the web resources.

Right now my command-line application -- which is working, by the way -- is written in Ruby. So I'd love to stay in Ruby and figure out Tk.

But I'm at a crossroads. I feel like I'm reinventing the wheel by trying to code a GUI application in Ruby. Maybe I'd have an easier time reimplementing everything in Java. I'm sure I'd be better off going with Python.

I could also do this as an Android app. That way I could use it on my phone and tablet and have a GUI framework (that being Android itself) that isn't mired in the 2000s.

For those who say, "just do it as a web app," I don't want to deal with the security issues of running a web-exposed service. Maybe I should figure that out. This still feels like a desktop GUI application. There's no reason for it to be a browser-controlled, web-based service.

If I stick with Tk, I'm not sure a TCL- or Python-focused book will get me where I need to be. I might have to travel back in time to 2008, when Ruby was hot, and grab whatever Ruby GUI books were out then.

I thought I wanted to make my blogPoster Ruby script more class-based (currently it is 0% toward that goal) and leave the GUI for later. But now I'm thinking GUI first.

I'm reading the excellent "Head First Ruby" book, and that is doing a great job of teaching me how classes work in Ruby. I'm excited about that, and it pulls me in yet another direction.

This is what learning programming and just programming (where you're always learning) are all about. That's what I'm telling myself, anyway.

Tue, 11 Sep 2018

Tuck's Corner lives in the Wayback Machine

Whenever I listen to Tuck and Patti, I want to go to Tuck's Corner, where Tuck Andress talks about all of their gear.

But Tuck's Corner doesn't appear on the duo's current web site. It's not gone forever. It lives on the Wayback Machine.

Video: Tuck Andress plays 'Europa'

Tuck Andress sounds so great. His tone is unique and not at all what you expect from an archtop guitar, and like all great players, his time is amazing. More than anything, music is about time.

Fri, 03 Aug 2018

The B-52s: 'Give Me Back My Man'

Thu, 12 Jul 2018

Social-style entries generated by my BlogPoster script are now going directly to the Updates site

I've been meaning to make this switch for awhile, and today I switched things around in my BlogPoster script so that the social-media-style entries I generate with it are now going directly to my Updates site.

So the message you currently see at the top of this site is not entirely accurate anymore. I will keep it there for now while the changes to the script are still young, but from here forward, My shortish entries that are generally mirrored on Twitter will not appear here, even temporarily.

When I change the message above, I will probably put some kind of link or navigation that allows readers to toggle between the main blog and the updates site.

I have been working on a new version of the BlogPoster script, but it's been slow going, so I might try to separate the configuration information and put it in a separate file so I can publish the current script, more or less, on GitHub. That's the main problem -- I'm developing using a version of the live script that I am actually using, so it's hard to avoid committing logins and passwords to git. Once I have them separated out, I can create a sample configuration file and let the script create the "live" version of same on the first run.

It's funny. Now that I have the program that I intended to write (with the exception being that it's a command-line utility and not a GUI application ... yet), I spend a lot more time using it than I do hacking on it. I need to tip things in the other direction.

Wed, 11 Jul 2018

It's 2018, and I'm still dealing with suspend/resume issues in Fedora 28 on my 5-year-old HP laptop

One of the reasons I decided to do much of my daily computing with the Windows 10 operating system that came with my other newer HP laptop is the constant trickle of issues that I'm tired of dealing with in Linux.

I'm running a newly installed Fedora 28 on this 2012-made (and 2013-bought) HP Pavilion g6 -- meaning there has been ample time for all hardware incompatibilities to be resolved. But when returning from suspend/resume, everything works except for the wired networking. WiFi is fine, as is the display, sound, keyboard and mouse.

But wired networking won't work until I reboot.

For the record, the WiFi card is a Qualcomm Atheros AR9485, and the wired Ethernet card is a Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller, both according to lspci.

The "culprit" in this case is the r8169 module, and I tried this 2013-era fix: Fix Network after Resume from suspend in Ubuntu or Linux Mint.

This ancient fix did not work.

While there's a detective/hobbyist aspect to solving these problems in Linux, I'd rather that things just worked. I saw a Fedora bug report on this issue from 2016, and it's fairly obvious that this regression hasn't been resolved. There's even a 2018 update that points this out.

The good part of this bug is that it only affects my Realtek wired interface. The Atheros WiFi interface works fine after suspend/resume, and since I use WiFi most of the time, this issue shouldn't keep me from getting things done. It's still a pain.

Sun, 08 Jul 2018

I'm running Fedora the way the Fedora people want me to run Fedora

Before my Fedora 27-to-28 upgrade failed in a spectacular enough fashion that I had to figure out how to reinstall the operating system while keeping my user files (spoiler alert: I was successful in doing it), I had a system that had been though maybe 10 successful upgrades and had collected plenty of cruft along the way.

This particular laptop, now a 5-year-old HP Pavilion g6, made it through the transitions from yum to dnf and X11 to Wayland and from the time the Catalyst/AMD driver worked to when it didn't (and I didn't need it).

For the F28 upgrade to go wrong was very much out of character for my experience with Fedora, which I began using with F13 (quickly upgraded to F14) on my previous laptop, a 2010-era Lenovo G555, before an upgrade-gone-bad sent me to Debian for the rest of its life. That cheap Lenovo died a quick death in 2013, going to sleep one minute, not waking up, ever again, the next.

There were and are many reasons to run Fedora. But for me, the constant flow of new Linux kernels meant my at-the-time new hardware would be supported much more quickly than in distros that kept the same kernel for the life of the release. And to get that constant newness, all I had to do was make sure the system was updated. That was my No. 1.

Read the rest of this post

Wed, 20 Jun 2018

An intense 'My Favorite Things' from John Coltrane's late-period 'Live at the Village Vanguard Again!' album

John Coltrane's rendition of "My Favorite Things" from the 1961 album of the same name) is pretty much a gateway into Coltrane.

This isn't that version. Instead, here is the 1966 version from "Live at the Village Vanguard Again!", with a much different band in an equally different era for Coltrane. Basically, free jazz entered, and he embraced it.

Though I love the "classic" Coltrane quartet, this is a great band, and I'm really listening to Alice Coltrane's piano -- I like her approach to the tune. Aside from John Coltrane himself, bassist Jimmy Garrison is the only other holdover from that classic quartet, and the lines he plays are also very different from those of bassist Steve Davis on the recording made five years before. You can tell that Garrison had played the tune live with Coltrane probably hundreds of times.

I'm still absorbing this version, but it's notable that the band plays a full 3 minutes before John Coltrane plays the tune's melody.

For comparison's sake, here's the "classic" rendition of "My Favorite Things" from 1961:

Wed, 30 May 2018

Mind-blowing Vim tip: Ctrl-[ is esc

As I'm reading through Evan Klitzke's excellent blog, I came across Esc is Ctrl-[.

One of Vim's quirks is that it's a modal editor, and you switch from edit mode (where you're typing things) to command mode by hitting the esc key, which on most keyboards is the upper-leftmost key on the keyboard.

Lots of Vim/vi users map esc to a ctrl key, but Evan says that ctrl-[ is a default equivalent of esc.

He's right. Try it.

I'm not sure if ctrl-[ will replace esc in my future, but it very well might.

If you think of using your keyboard like a that of a musician -- and when text editing, I think this is a very valid comparison -- think of how you type.

I do touch type -- I learned it on manual typewriters at U.S. Grant High School in the San Fernando Valley back in the day. I can't remember if I took one semester or two, but it was enough to give me a lifelong ability that I use every day-- and heavily.

But when it comes to things like esc keys or ctrl sequences, pre-computer touch-typing doesn't really help.

So here's the deal: I use my left-hand ring finger (or 3rd finger in guitar-fingering parlance) to hit the esc (as well as the backtick key below it. I can generally find esc fairly well, though I have to look much of the time to get the backtick.

But ctrl-[ is a little harder to type. I use the left-ctrl with my left pinky finger (aka 4th finger), and it looks like I'll have to hit the [ with my right pinky finger (or maybe 3rd finger). That's a funky stretch for my right hand. I may be able to get used to it, but the question is whether it's easier or faster than stabbing for esc with my left hand's 3rd finger.

In any case, having an esc alternative in Vim without any configuration is a nice feature.

Wed, 16 May 2018

Fedora 28: I'm trying to keep it simple

My Fedora 27 system died a less-than-noble death at the hands of a Fedora 28 upgrade.

Maybe my error was upgrading too early (it was about a week after the release), or maybe it was because my system was too old. I probably started this installation on Fedora 17 or 18. That's a lot of upgrades, and one was bound to go south. This was that one.

So I reinstalled Fedora 28 from the ISO via USB, keeping my same partitions. (Note to Fedora developers: This should be easier to do. I had to bluff my way through it.)

Now that I have a new Fedora, I'm trying to keep it simple.

Instead of a bunch of desktop environments (GNOME, KDE, Xfce, LXDE), I'm sticking with the stock GNOME.

I'm only slowly adding the things that died with F27. I just added the RPM Fusion repositories, and before that I installed the Ruby programming language and all the packages I needed to install the gems I need. I have everything

I don't even have Google Chrome. Don't need it. Firefox has made a lot of progress in the past year, and who doesn't need less spying?

Normally I'm an Xfce user, but I can get around (and get along) with GNOME 3.

Nautilus -- or Files as it's now called -- is appreciably fast, especially compared to the Windows file manager (where the lag is not a deal breaker but is noticeable).

I'm enjoying using gEdit (aka Text Editor). I'm not saying I won't add Geany at some point, but for now this works. I added the gedit-plugins so I could get the built-in-terminal, though Menu - Tools - External Tools - Open Terminal Here is probably more useful.