Title photo
frugal technology, simple living and guerrilla large-appliance repair
Sun, 18 Jun 2017

Debian 9.0 Stretch is the new Stable

I don't keep up with Debian, though my sentimental feelings for the pioneering Linux distribution remain strong. My days with Debian were late Etch into Lenny, Squeeze and early Wheezy. For the release of Squeeze, I used SVG files from the desktop's awesome artwork and made a custom T-shirt that I still wear.

Not to bury the lede too far, the news of the day is that Debian 9.0 Stretch has been released as Stable. For more on Stretch, read the installation manual and release notes.

I still have an old IBM Thinkpad R32 that runs Debian -- I can't remember if it is still on Wheezy, though it probably is.

For my laptops, I started running Fedora when I got a new laptop in 2010 -- a Lenovo G555 with an AMD processor. Since I was using the proprietary Catalyst video driver, I eventually broke the installation and moved to Debian, which I ran on the laptop until it died in 2013. I began again with Fedora on my next laptop, an HP Pavilion g6, and it is still running that version of Linux (and I'm using it right now to write this post). I now have a new HP laptop, an Envy, that is still running the Windows 10 it came with, and I added the Windows Subsystem for Linux/Bash so I can have a fairly functional Linux command line.

So I'm not a current Debian user. Especially on the desktop, I want newer versions of just about everything, and I find it easier to get that in the twice-yearly releases of Fedora instead of Debian Testing or Unstable. Debian Stable, which I've used and loved, is just too "stable."

But if you think about it, I could easily run Debian Stable and add newer versions of Node, Java, Ruby and NetBeans. When a laptop is new, I find Fedora to be the easiest, quickest and best way to get the most hardware working, but after a couple of years, Debian is a very attractive option.

With newer hardware, there's always the Liquorix kernels, which I used to run so I'd always have the latest on my Debian installations.

For my programming needs, Node is certainly part of Debian Stretch, but this part of the release notes is a little worrying:

5.2.2. Lack of security support for the ecosystem around libv8 and Node.js

The Node.js platform is built on top of libv8-3.14, which experiences a high volume of security issues, but there are currently no volunteers within the project or the security team sufficiently interested and willing to spend the large amount of time required to stem those incoming issues.

Unfortunately, this means that libv8-3.14, nodejs, and the associated node-* package ecosystem should not currently be used with untrusted content, such as unsanitized data from the Internet.

In addition, these packages will not receive any security updates during the lifetime of the stretch release.

I checked the v8 package in Fedora, and it appears to be updated about every month, though not at all for the past three months. I'm not sure what to take away from this. I'd have to look at the upstream v8 before making any judgments on how well Fedora is doing with the package, plus I'd need to see how Ubuntu handles it.

Back to Debian. The Debian Project is the code that goes into it and the volunteers that make it happen. Debian is not owned by any corporation, individual or group. It'll pretty much always be there and be free.

Does Debian benefit from work done by corporations like Red Hat? Yes, it does. Free software in general and Linux in particular are coded by individuals all over the world, some of whom are paid by companies to make their contributions.

However it finally goes together, Debian is a special project.

The short version: If you can make Debian Stable work for you, it's a terrific operating system that really is stable and will last you a couple of years without a major upgrade. If you're interested, it's worth a test on your hardware before committing to a Linux distribution. On my computers, the "contenders" are Debian, Ubuntu (mainly the Xubuntu version with Xfce) and Fedora.

Eloquent Javascript, Chapter 3 (Functions) -- what the hell?

I read Chapter 3 of Eloquent Javascript some time ago, and it's a difficult one. It introduces the concept of functions. Quickly introduced are: Parameters and Scopes, Nested Scopes, Closure and Recursion.

It is too much, too fast with too few examples. I was able to do the first exercise, Minimum, but got lost in the second, Recursion.

Here is my solution for Minimum:

#!/usr/bin/env node
/* Eloquent Javascript, Chapter 3, Page 56, Exercises 
Create a function to find the minimum of two arguments

By Steven Rosenberg, 6/17/2017 */

function smallest(first_number, second_number) {
    if (first_number < second_number)
        return first_number;
    else if (second_number < first_number)
        return second_number;
        console.log("They are equal")

// Output will be the smallest of these two numbers
console.log(smallest(100, 2));

Expressing this as a function doesn't really do much. The program could just as easily have been written in a straight "procedural" format. But it's a function, and it works.

The second problem on recursion stumped me. I'm pretty sure I can figure it out, but I need more time to think (and look up more on recursion).

Tue, 13 Jun 2017

Sitepoint: How I Designed & Built a Fullstack JavaScript Trello Clone

Sitepoint: How I Designed & Built a Fullstack JavaScript Trello Clone by Moustapha Diouf.

This article and accompanying repo show how Moustapha Diouf built this React app with Express and Mongo.

Sat, 10 Jun 2017

Java and the Windows command prompt

Java and the Windows command prompt might explain why you're having issues with the java and javac commands.

Things I did in Windows 10: Add Java and Groovy, fix Geany for HD display

As much as I know I should be focusing on JavaScript, I keep feeling the pull of Java, so I got my environment together on Windows 10 for Java and Groovy, and I "fixed" the Geany text editor/mini-IDE so it's no longer blurry on my HD screen.

While the java command and the Groovy console both worked, the javac (used to compile a Java program) and groovy programs did not work until I set their paths in Windows settings (more detail later).

Why Groovy? I have a programming book by Adam L. Davis I bought on LeanPub called Modern Programming Made Easy, now published by Apress, that encourages the use of Groovy as a way for beginners to learn without all of the rules and the need for compilation of "real" Java. Groovy takes Java and presents it as a scripting-style language with much simpler syntax. I took to it right away. (More on the book and its author when I clear up the status of both.)

I like to use Geany as my text editor for Java because I can compile and run a program without leaving the editor. That's why it's called a mini-IDE. Plus I'm lazy that way. Geany will also compile and run your C++ code and run your programs in Perl, Python and Ruby. I've never gotten it to run Node. Instead, I use Visual Studio Code for Node.

I did the C++ homework for my Intro to CS class in Geany when the programs were short, moving to NetBeans when I had too many sets of brackets and wanted to take advantage of the automatic formatting, which is your very good friend when writing programs with level upon level of brackets.

Back to my Windows problems:

After a medium-strength Googling, an OpenOffice forum page gave me the trick to fixing the blurriness of this GTK app.

More details on all later ... (but if you go to the page linked above, you can probably figure it out).

Mon, 05 Jun 2017

Writing on phones and tablets sucks

If you want to write things like words and sentences, doing it on mobile phones or tablets sucks. Bluetooth keyboards and mice and their intermittent connections to phones and tablets also suck.

The same holds true for programming. Writing code on phones and tablets suck. What sucks even more is that Android's primary programming language is Java, yet it's harder to develop and run Java code in Android than it is to write Perl, Python, JavaScript and Ruby.

I even wrote C++ on an Android tablet. It was a pain in the ass, but I did it. Those languages that aren't Java are "easier," but the experience remains poor.

Even though I use a few Google Chrome "apps" for programming-like tasks (Secure Shell, which is pretty good; and Text, which is super-rudimentary), even a Chromebook is better than a tablet or phone.

Right now my laptop is so nice, I hate using my desktop computer at the office. Now it's screen seems blurry (because it is), and I hate the standard-issue Lenovo keyboard. That's a backwards way of saying that I like a nice laptop keyboard. It has to "click" a bit, meaning it can't be too mushy.

I can certainly see (and am seeing) laptops that incorporate tablet/phone hardware and software. I would absolutely welcome the "intents" present in Android apps that allow you to easily share content from one app to another. Windows now has an app store, though most of what's in it is shit. (I do like the Fitbit app for Windows, though.)

Tangents be dammed. To make things with words, you need a proper keyboard.

Tue, 30 May 2017

To run Node in Debian and Ubuntu, install nodejs and nodejs-legacy

Installing node.js in Fedora is no problem. You just run sudo dnf install node, and you're off to the JavaScript-in-the-console races. But it's slightly more complicated in Debian and Ubuntu.

Since there's an old amateur radio package called node for communicating on packet radio nodes, Debian and Ubuntu use the package name (and shell command) nodejs. So you would run nodejs when you would normally run node.

But you don't have to do this. And you don't have to resort to any Linux/Unix tomfoolery either.

Both Debian and Ubuntu have a package called nodejs-legacy that makes the symlink for you. Then you can run node by typing node in the console.

Since it looks like there is no node for amateur radio in Debian Sid or Experimental, I'm thinking that the node-vs-node.js problem will go away at some point in the near future -- when Debian declares its next release stable, and in turn when Ubuntu bases its future releases on versions of Debian that have "re-resolved" the issue. (Since I'm running Ubuntu 16.04 in the Windows Subsystem for Linux, this hasn't happened yet.)

Until then:

$ sudo apt install nodejs nodejs-legacy
Sun, 21 May 2017

Software-defined radio kits available

I just installed the Java Development (aka the JDK) and was trying to test Java in the browser by going to the WebSDR page to listen to software-defined radios over the Internet.

The last time I listened to WebSDR, you needed Java in the browser to make it happen.

I had no idea that Java in the browser is no longer a thing.

I confirmed my JDK was working via the Windows command line, and I also learned that WebSDR now uses HTML5 in place of Java.

I also learned from the KFS WebSDR site's About page that the inexpensive Softrock radios that are behind most SDR sites are available for purchase both pre-built and in kit form from Five Dash Inc..

I've also seen SDR radios in the range on eBay.

I'm tempted ...

Learn more about SDR in these two subreddits:

But the big thing I learned: no more Java in the browser.

New laptop, new OS

The women in my life gifted me with a sweet HP Envy 15-as133cl 15t laptop. I guess they saw the keys pop off of my old HP laptop a few too many times.

The new laptop has an HD screen (1920 x 1080), a lot of memory (16GB), an Intel i7 CPU (not sure of the exact model) and a 1 TB hard drive.

Right now I’m running the Windows 10 that came with it. I “auditioned” Fedora 25 with GNOME and Xubuntu 17.04, and while either one may indeed work with this hardware (the biggest problem being the HD screen and the Linux desktop environments’ inability to handle them without a lot of little tweaks), for now I’m sticking with Windows.

The main reason that I can stick with the stock OS is the Windows Subsystem for Linux (aka the WSL), which gives me a full Ubuntu-powered Bash shell that runs pretty much every Linux console program available. I’m using it to run/update my Ode blog (I still can’t get Unison in Windows to work across networks because I can’t get SSH working and am a little wary of Windows software that seems frozen in time).

As I allude to in the sentence above, adding software in Windows has it’s good and bad points. Good: You can easily run things like MS Office and the Adobe suite, though I don’t use those at all (instead opting for LibreOffice and Google Docs, and GIMP/IrfanView/Inkscape). Bad: Some things are old and unmaintained, like the ClipX clipboard manager that I rely on heavily. Plus after years of drawing on huge Linux software repositories offered by projects like Debian, Ubuntu and Fedora, having to go all over the Internet to find applications is not something I’m excited about.

That said, I have most of what I need. I’m playing with JavaScript, especially in Node, quite a bit, and I have Node installed both in the Ubuntu shell and on the Windows side.

I don’t have Ruby in the WSL or Windows since I haven’t used it in awhile, but I will probably do that in the WSL.

If/when I start dabbling in Java again, I can do that on both sides (WSL and Windows), too.

For Java and Ruby especially, I like coding with them in the Geany editor, which is like a “baby” IDE (it can execute your code, though I’ve never gotten it to work like that with JavaScript/Node). Unfortunately Geany is one of those old GTK apps that looks like hell on this laptop’s HD screen. Principally it’s blurry. So I’ve been using Notepad++ instead, which is a great text editor, though I haven’t figured out if it is capable of executing code in the languages I use (Ruby, JavaScript, Java, Bash).

I am also experimenting with Visual Studio Code, Microsoft’s “not-quite Visual Studio” editor. The “not-quite” part is OK by me, because most IDEs I’ve tried are so massive and cryptic that I’m happy to have something that’s I can understand more easily.

I already had Visual Studio Code on my old HP’s Fedora system, and now I have it in Windows 10 proper. I’ve used it for a little JavaScript. I like the syntax highlighting, and I was able to execute my code via the debugger. (If you actually know what you are talking about, I encourage you to laugh at or with me — your choice.)

In the WSL, I’m relying on Vim as my text editor, and I’m using the limitations of the WSL (most of which can be summed up as “no GUI,” though you can definitely hack one in) as an excuse to sharpen my Vim skills. I also have Vim and gVim on the Windows side. (Vim is everywhere.)

You might notice that a lot of the programs I’m using are things you’d find in Linux. I’m surprised that so many traditional Linux/Unix applications are available in Windows. Some of them are even regularly maintained.

I’ll detail all the software I’m using in Windows 10 at some future point, probably on another site, but quickly:

  • Audacity (audio editor)
  • Dropbox (file sync)
  • FileZilla (FTP)
  • GIMP (image editor)
  • Inkscape (vector graphics editor)
  • IrfanView (image editor)
  • LibreOffice (office suite)
  • Node.js (JavaScript in the console)
  • Notepad++ (text editor)
  • OpenShot (video editor)
  • PuTTY (terminal for SSH connections to servers)
  • qBittorrent (torrent client)
  • QuiteRSS (RSS reader)
  • Vim and gVim (text editor)
  • Visual Studio Code (text editor, mini IDE)
  • VLC (video editor)
  • Windows Subsystem for Linux (aka WSL aka Ubuntu for Windows aka Bash on Windows … do you think they have a branding issue?)

Things I’m relying on in the WSL:

  • Bash (which is obvious, but I use all the common Unix tools and rely on a number of scripts to automate various tasks)
  • SSH (for encrypted connections)
  • Unison (file sychronization)

Things I haven’t yet installed:

  • Geany (GTK text editor that looks a little rough in Windows 10 on this laptop)
  • Hugo (static site/blog engine)
  • JVM (the Java Virtual Machine)
  • Netbeans (IDE written in Java)
  • Ruby (programming language)

Update: I'm installing the JVM now. It's hard to find.

Wed, 17 May 2017

Fedora, SUSE and easier installation coming to Windows Subsystem for Linux

Microsoft is ticking all of the right boxes with the Windows Subsystem for Linux, announcing that it will be bringing Fedora and OpenSUSE to the WSL as well as offering installation via the Windows Store.

There will also be the option of installing the Ubuntu, Fedora and SUSE version of the WSL at the same time, though it is unclear if they will have separate filesystems, and/or the option of sharing a single Linux filesystem.

I'm not a SUSE user but am a longtime Fedora user, and having the option of Fedora is a very attractive one because it's that much easier to get newer versions of things like Node, Ruby, Java, etc., in this developer-centric distribution that is a lot more stable than you'd think.

As far as installation goes, the current way you get the Ubuntu-powered WSL on your Windows 10 system is more than a little bit hacky, and the use of the Windows Store will make it easier and more inviting for new developers as well as "new" Windows "power users" coming over from years of desktop Linux (like me).

There isn't much in the way of announcements on adding graphical capabilities to the Windows Subsystem for Linux, though Microsoft isn't discouraging those who are already adding an X server to their WSL, but I figure official support for Linux GUI software in the WSL is somewhere on the roadmap.

For now I'm happy to be using a Ubuntu-based system for the first time in a long time (after the aforementioned years of Fedora). As I've written previously, the move from 14.04 to 16.04 was pretty crucial because I was able to get away from the super-old Node.js in 14.04, though the newer Unison required me to pin the old Unison from 14.04 to maintain compatibility with the Unison on my server.

While I've been happy to learn that you can pretty much download a Ubuntu package from the archive and install it with dpkg, I haven't yet experimented with PPAs in the WSL. Might be time for that.

Changing the directory: Since the WSL is rapidly going from a Ubuntu-only offering to one that will offer Fedora and SUSE, I'm changing this directory's name from ubuntu_on_windows to linux_on_windows.

Thu, 11 May 2017

This post didn't have a title for a brief time, and here's why

What happens when you leave the subject line blank in an Ode post and start it on line 3?

Answer: It works, but it also messes up my archive page because there is no title to put in the listing that serves as text for the link.

The lack of a title doesn't stop the site from working, and the permalink at the bottom of the post still works.

I see other bloggers doing this with the "micro blog" posts they write in their traditional blogs, and a few systems/themes provide support for title-less posts.

But in the interest of not breaking my archive page, I'm going to stick with titles for my Ode-generated social media posts.

Wed, 10 May 2017

Microsoft Edge vs. Google Chrome vs. Firefox

I decided to give the new Microsoft Edge browser a try in Windows 10. When I open it, I get this page that says Google Chrome is 5 percent slower than Edge, and Mozilla Firefox is 9 percent slower.

Four things:

  • From my use, I would figure that Chrome is at least 25 percent faster than Firefox.
  • The scores are based on Google Octane, which is being mothballed because everybody is cheating with it.
  • I'm supposed to get excited about a 5 percent speed improvement? Sharing bookmarks and passwords across Google Chrome instances on Windows 10, Windows 7, Linux and Android is more important than a small speed improvement that may not even be real.
  • The more I look at this, saying Chrome is 5 percent slower than Edge doesn't mean that Edge is 5 percent faster than Chrome. Am I right, math and statistics experts? According to my calculations, if Chrome is 5 percent slower than Edge, that means Edge is 19 percent faster than Chrome. Why doesn't Microsoft tout that statistic, which sounds a whole lot better?

Nonetheless, I'm giving the browser a tryout while I'm still using Windows 10.

Tue, 09 May 2017

Javascript digital clock

Since this blog's time is displayed in UTC, I wanted to put a digital clock on the site that told the current Universal Time so a casual reader (like me) could have some idea of how long ago (or what time of "day") a given post was published.

I started with some JavaScript code from Cory/uniqname on CodePen and simplified it greatly and because I wanted more output rather than less, counterintuitively as well.

It uses the Date() object and the toUTCString() method to create the text for display of the time/day/date/year and setInterval to "update" the text every second:

function clock() {
  var local_time = new Date(),
  utc_time = local_time.toUTCString();

document.querySelectorAll('.clock')[0].innerHTML = utc_time;

  setInterval(clock, 1000);

I stashed this bit of code in a file called clock.js, and called it into the site with script tags and a div:

<script type="text/javascript" src="/path/to/clock.js">
<div class="clock"></div>

(Note that /path/to/clock.js means the actual path on the server to where you happen to have created the JavaScript file.)

The toUTCString() method outputs the time in 24-hour format. If I want it it in 12-hour format (with AM/PM), the script would have to get a lot more complicated. I'm not saying I won't do that, but for now the easy wins over the perfect.

Fri, 05 May 2017

Should I sell my ham radio gear?

Should I sell my ham radio gear? Maybe. If I had the time, I'd do more homebrew (as in making my own equipment from parts, not anything to do with intoxicating beverages).

VE7SL leads me to amateurradio.com

VE7SL leads me to http://www.amateurradio.com, which has a killer URL and is a pretty good site.

The VE7SL Amateur Radio Blog

There's a lot of good reading at http://ve7sl.blogspot.ca, the VE7SL Amateur Radio Blog. Love the homebrew and old gear articles!

Sun, 30 Apr 2017

Is this blog for you or me?

I'm not trying to make money with this blog, and it hasn't happened despite my lack of interest in same. I don't have Google Analytics (or Piwik) counting the traffic. Every once in a while I look at the AWstats data from my web host, but not too often.

I write about the things I'm doing. It's mostly about technology, though for the longest time I've meant to write about other things.

If you want to read this site, it's for you. Otherwise, it's just for me.

Tue, 18 Apr 2017

How to 'hold' a package in Ubuntu and prevent it from being updated

I am using the unison in Ubuntu 14.04 (Unison 2.40) in my Windows Subsystem for Linux-supplied Ubuntu 16.04 (which updated the package to Unison 2.48) because my server is running Unison 2.40, and I forgot that an apt upgrade will replace the .deb I downloaded from the 14.04 repository with whatever is in 16.04.

When I tried to do a unison sync, I got an error.

How do you put a package "on hold" in Ubuntu? It's easy.

First I removed the "new" unison:

$ sudo apt remove unison

Then I installed my "old" one (which I had previously downloaded from the Ubuntu archive):

$ sudo dpkg -i unison_2.40.102-2ubuntu1_amd64.deb

Now I put the package "on hold":

$ sudo apt-mark hold unison

That's it.

Here is the output now for sudo apt update:

$ sudo apt upgrade
[sudo] password for steven:
Reading package lists... Done
[sudo] password for steven:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Mon, 17 Apr 2017

I reinstalled the Windows Subsystem for Linux, got a new Ubuntu LTS and now have my scripts back

After a Windows 10 update hosed my laptop and took the Ubuntu/Bash command line (aka the Windows Subsystem for Linux) and all of my scripts along with it, I restored Windows 10 from the laptop's backup partition, and activated the Windows Subsystem for Linux (aka WSL).

This time around I got Ubuntu 16.04 rather than 14.04, which is overall better because there are some really, really old packages in 14.04, including a super-old nodejs. Unfortunately, the old unison in 14.04 matched what is on my server (and unison versions across computers must match, or they don't work).

Luckily I was able to download a 14.04 package from the Ubuntu archive and install it in the 16.04-powered WSL. I restored my scripts, including one I made that is very WSL-specific: It takes all of the files in a Windows directory (usually images, sometimes text documents, but it could be anything), copies them into a working directory in the WSL and uses chmod to change their permissions to 644. That way I can download images while in the web browsers of the Windows world, create text files, working on all of them with Windows tools, and then transfer those files into the Linux side, where I can sync them to the server's filesystem with unison.

Aside: It's not impossible to get a Unix-style ssh program that works from the Windows command line, but it's not at all easy, either. That makes the Windows version of Unison less than useful for working with remote servers.

Now I have scripts in the WSL to:

  • Transfer and apply proper permissions to image and text files from Windows to the WSL
  • Update this Ode blog using unison to sync files and then reindex the blog via Ode's Indexette
  • Create [a static blog archive[(http://stevenrosenberg.net/documents/archive.html) by using a custom Ode theme and a query to return all posts, using curl to bring the html down to the laptop, then copying it into the local Ode filesystem, and then syncing with the server via unison.

I have a feeling I've written about most of these scripts before, and if/when I find those entries, I will link them here. If not (or if there have been updates), I will write them up in the near future.

Why Unison? Unison is a file-synchronization tool. While files can be synced from one system to another with rsync, which I use for backups, the situation with this Ode blog is different. Anthor way to synchronize two filesystem is to use git, the version-control tool.

What unison enables me to do is make changes locally, or on the server, and then reconcile those changes across both systems. So if I write or edit a post on my local filesystem, or make any kind of change on the server, running unison ensures that I have the latest files (and versions of files) on both filesystems. If I used rsync, making changes on the server but running rsync on the client wouldn't work. Git would be great, except that it only reconciles changes in the filesystem that have been checked in. Changes on the server are generally not checked in, and even if I scripted that on the server, Ode (through its Indexette and EditEdit addins) itself makes changes to the filesystem and doesn't check them in. So git wouldn't work.

I came up with unison because it's the easiest. Another alternative csync2 looks a lot harder to figure out. But I do recommend csync2 if you're doing something heavy-duty with more than 2 servers.

When I started looking for this kind of tool, I knew what I needed was a kind of Dropbox for servers. I'm sure there are people who have hacked Dropbox to work on a non-GUI server. Actually that would be a pretty good solution.

The difference with unison is that you have to "consciously" run it to sync the two filesystems. You could run it as a cron job, or somehow set it up as a daemon (which might be how Dropbox works), but for the purposes of this particular blog, syncing when needed works fine.

Using the WSL has provided me the opportunity for the first time in quite a while, to set up unison. It's a great thing to run unison -batch and have the entire blog filesystem copied to an empty directory on my laptop in about a minute. (And then any changes I make on either laptop or server can be synced with another unison -batch, or just unison for a more interactive session. Plus, never underestimate software you can install yourself, on your own computers, and use as you wish. I pay for my shared-hosting service, but otherwise I run whatever software I wish without paying any monthly fees for any of it.

Are there other ways to keep two or more filesystems in sync? I'd sure like to know if there were.

Sun, 16 Apr 2017

Sharpening my Vim skills in the Windows Subsystem for Linux

I've always been able to get around in Vim, and before that vi. But it hasn't been my primary editor (except in college, where it was my only editor).

In my Linux systems over the last many years, I've gravitated toward Geany and Gedit, mostly using Geany, and using the terrific Notepad++ on Windows.

Now that I am using the Windows Subsystem for Linux (aka Bash command line supplied by Ubuntu), I have the full range of editors available in the Linux console. For whatever reason or reasons, I'm not an emacs person, and I'm not afraid of modal editing, so Vim it is.

This gives me the opportunity to really learn Vim. Already I'm figuring out things in Vim's command mode, like w taking you from word to word and stopping on the first letter of each word, with e doing the same except stopping on the last letter.

Typing gg in command mode gets you to the top of a file, and G (and also L) gets you to the top of the final line. G$ gets you to the end of the final line.

x deletes a single character, dw deletes a word, dd deletes an entire line and d$ deletes from the cursor to the end of the line.

It's nothing like a "standard" GUI editor, but a lot of it falls right under the fingers. While I have used an adm3a terminal, it's been long enough that I didn't know the reason for using the esc key to change from insert to command mode was the placement of the esc key on the adm3a -- where the "modern" tab would be.

To make it easier to change modes, I don't want to remap tab as esc but could try remapping caps lock as esc, or using ctrl-[, ctrl-c or alt-space as esc alternatives. Thus far it doesn't look like remapping caps-lock in the WSL is all that easy.

Tim Berners-Lee, Inventor of the Web, Plots a Radical Overhaul of His Creation

Tim Berners-Lee, Inventor of the Web, Plots a Radical Overhaul of His Creation https://www.wired.com/2017/04/tim-berners-lee-inventor-web-plots-radical-overhaul-creation

Fri, 14 Apr 2017

Windows 10 update hoses my laptop

I ran Fedora from F18 through 25 and never had a problem getting my laptop to boot and run. But in my first month as a Windows 10 user, an upgrade has already hosed my laptop, causing me to restore it to its original state and reinstall my applications.

I'm not sure what the update was supposed to do, only that it was big and would require a lot of time and a number of reboots.

After a bunch of those reboots and a lot of time, I was left with a black screen and a cursor. That's it.

I could ctrl-alt-del and get a prompt to shut down, but I couldn't do anything else. I think the updates "broke" the video driver.

So since I only had a month "invested" in the OS, I could have wiped the entire thing and put Fedora on the laptop. But I decided to give Windows 10 another chance. I liked having the Ubuntu command line, even though it was the ancient 14.04 instead of 16.04. And I had my blog set up to deploy from that Bash command line.

I opted to reinstall the system and keep my user files, which is one of the options available on this HP Envy laptop. I assume it's the same (or nearly so) on most PCs. There is a "restore" partition that contains a copy of the original OS files, and that is what is used to reinstall the system software.

That operation took a long time, but at the end of it I had a working Windows 10 laptop once again. All of my user files were intact. But as promised, my applications were all gone. I did get a handy HTML list of them, mostly with links to the project web sites. However, I did have the install files for all of them in my Downloads file, and all I had to do was reinstall.

I did lose lots of configuration files.

I still have Vim and Gvim WITH configuration files because I elected to use the binaries from my Downloads file and not "install" them the usual Windows way. So when my laptop came back, the only application icons on my desktop were vim and gvim.

In a more grim note, the Windows Subsystem for Linux, aka the Ubuntu command line, aka the Bash command line, is NOT in any user account, nor are the files I created in Bash. That means when I did the reinstall I lost the WSL and everything in it. Pro tip: Back up your WSL files!!

I can re-create what I did in the WSL, though I won't be happy about it. And I have no idea if the laptop now has the update that broke it yesterday, or if it's coming down the pike in the days or weeks ahead. I'm certainly not going to go to the Windows Update screen and click anything that reads "update now," or whatever it says.

I have heard about this black screen issue here and there, but it doesn't seem to be widespread enough to cause any kind of massive panic. And while I'm sure there is some slick way to fix what was broken, I couldn't figure that out, and doing the restore (while keeping my user files) was the quickest, easiest way to get going.

And to elaborate on what I say at the top, if you "keep your nose clean" in Linux, meaning not try to use proprietary video drivers or do anything stupid with dodgy packages, it's pretty hard to unknowingly kill a working Linux installation. I thought the same was true for Windows, but now I know otherwise.

Update: I reinstalled the Windows Subsystem for Linux, and this time I got Ubuntu 16.04 and along with it a much newer node.js (good because 14.04's hella old) and a newer Unison (not so good because now I have to find this same version for the CentOS server I use to host this site). The Unix gods, they giveth, they taketh.

Caveat Emptor: Windows 10 is not a beta, but the Windows Subsystem for Linux is. Back up everything. All the time.

Windows Subsystem for Linux and Unison update: My "old" WSL was Ubuntu 14.04, which has Unison 2.40.102 in its repository. I have Unison 2.40.102 on my CentOS server, so that worked out. Unison requires the same version on both "sides" (i.e both servers/computers) to work. My "new" WSL is Ubuntu 16.04, and that offers Unison 2.48.3.

My choices were to a) get Unison 2.48.3 for CentOS 6, or attempt to compile it on the server (or a CentOS 6 desktop, which I don't have) or b) find Unison 2.40.102 for Ubuntu 14.04.

I thought that it would be easier to compile on the server. I got the source of Unison 2.48.3, but I ran into problems pretty quickly because I needed a newer ocaml. I was already getting in the weeds.

So I switched gears. Could I download a .deb package from the Ubuntu repository into the WSL and install it?

I got the Unison 2.40.102 from the Ubuntu 14.04 repository. Then I used apt to remove the Ubuntu 16.04 version of Unison.

Then I used dpkg -i to install the .deb. I ran unison -version. It was working, and provided the output I wanted: Unison 2.40.102.

$ wget http://mirrors.kernel.org/ubuntu/pool/universe/u/unison/unison_2.40.102-2ubuntu1_amd64.deb
$ sudo apt remove unison
$ sudo dpkg -i unison_2.40.102-2ubuntu1_amd64.deb
$ sudo apt-mark hold unison
$ unison -version

I had already restored my .prf file in the .unison directory (I call it ode.prf to sync this blog), and I ran the command I use for the first sync when all the files are on the server and none on my laptop:

$ unison ode -batch

The -batch switch lets unison sync all of the files without asking you to OK every single one.

I love that I can get a new computer, or start a new directory and use Unison to mirror what's on the server. More on Unison in my next post.

Wed, 12 Apr 2017

The Node in the Windows Subsystem for Linux is so old, I installed Node for Windows

I want to run Node, so I figured that I would install the package from the Ubuntu LTS in the Windows Subsystem for Linux and just use it from the Ubuntu commmand line in Windows 10.

But I soon learned that the nodejs in the WSL is v0.10.25. That is hella old. Early 2014 old. No ES6 old.

I don't want to mess with the WSL environment too much, and I have no idea what kinds of binaries from outside the WSL will even work (if any of them will). But I wanted a newer -- a much newer -- Node.

So I installed the Windows version of Node -- the Current version -- which is v7.9.0.

That is a lot newer.

I'm not building major web applications with Node. I'm mostly using it to learn Javascript and even do some traditional scripting that I might otherwise do in Ruby or Bash.

Now I'll be doing that in the Windows command line and not the Windows Subsystem for Linux (until I can no longer hold out without a full, "modern" Linux distribution like Fedora on this laptop).

Update: Node v.0.10.25 in the Ubuntu Trusty LTS is super, super old. For comparison's sake:

Ubuntu Trusty: Node v0.10.25
Ubuntu Xenial (newer LTS): Node v4.2.6
Ubuntu Zesty: Node v.4.7.2
Debian Jessie: Node v0.10.29
Debian Stretch: Node v4.7.2
Debian Sid: Node v4.8.2
Fedora 25 and 26: Node v6.10.2

Even Debian Jessie has a slightly newer nodejs than the Ubuntu LTS in the Windows 10 WSL. There is a way to update the Ubuntu in the WSL from 14.04 to 16.04. Might be worth a look for me.

Update: After a Windows 10 upgrade hosed the laptop, I restored Windows and reinstalled the Windows Subsystem for Linux after that. My user files were preserved, but I lost all of the files I created in the WSL.

Moral of this story: Back up your Linux files. You can back them up in your Windows user files. I would recommend making a habit of using the WSL/Ubuntu command line not in the WSL's traditional /home directory but in your Windows user area. However, things that are complicated (and particularly which involve setting Unix-style permissions) cannot be done successfully on the Windows side. Among these "complicated" things are the use of Unison to sync two filesystems on different computers. The Ubuntu/WSL version of Unison works great in the WSL but throws errors aplenty when used on the Windows side. (One solution is to use the Windows version of Unison, but I'm a whole lot of hacking away from getting ssh working on the Windows command line in a way that Windows Unison finds acceptable; It's not as easy as subbing PuTTY's plink command-line tool.)

My new WSL turned out to be 16.04, not 14.04: This "solved" my Node problem, as I got 4.2.6 instead of 0.10.25, but I also got a newer version of Unison (and had to download, install and "hold" the 14.04 version).

The newer Node in Windows: So I could make better use of Node in Windows, I installed the Windows version of Vim, making sure the console version was included and .bat files were created so I could use Vim to edit files for Node from the Windows command line, which is somewhat of a mystery to me as I've barely used it (and many years ago at that).

Mon, 10 Apr 2017

Rediscovering PuTTY in Windows

Been a long time since I used PuTTY in Windows to ssh into a server. Using it again and looking into plink.

Fri, 07 Apr 2017

This is what happens when you create a file in the Windows Subsystem for Linux and try to edit it with a Windows application

As I experiment with the Windows Subsystem for Linux (aka the Bash shell provided by Ubuntu for Windows 10), I am trying to figure exactly what I can and can't do.

To that end, I created a file with Vim in the WSL. Then I tried to open it with a text editor in Windows. I get this popup that says I can't do it:

In case you're not seeing the image above (and because Google), the Error dialog reads:

Error saving file. Error renaming temporary file: Permission denied

The file on disk may not be truncated!

I also tried to use the Windows file manager to drop the above image, created in Windows, into the WSL portion of the disk. That file "shows" in the Windows file manager, but it doesn't appear at all in the Bash shell. I had to use Bash to copy it from the Windows side to the WSL/Linux side: That's what works, in case you were wondering.

I really need an easy drag/drop between Windows and the WSL ...

Update: This issue is addressed in a very interesting bug report with a lot of links I need to explore.

Also, in the image file I copied from Windows into Bash on Windows (as Microsoft seems to like to call it), the .jpg file was too wide open on permissions. It was 777, and I wanted 644. I made the change in Bash and am syncing with the server.

Wed, 05 Apr 2017

Managing Ode with Unison via the Windows Subsystem for Linux

Update: While it seems fairly easy and routine to create and edit files on the Windows side of the filesystem using both Windows and WSL/Linux applications, when I tried to use the WSL-based Unison to sync files onto the Windows filesystem, I got a ton of permission errors and a failed sync. So the "dream" of maintaining a Windows system with WSL utilities probably won't happen. The two solutions for this particular problem are a) use Windows utilities on the Windows side and b) use Linux utilities on the WSL side.

The original entry begins here:

Now that I have my new HP Envy 15-as133cl laptop running Windows 10 and have added the Windows Subsystem for Linux, I'm exploring just how many of my regular Linux tasks I can do in this Ubuntu-supplied Bash shell, what I can do with similar programs compiled for Windows, and what really needs a dedicated Linux partition (or full computer).

Chief among these tasks is updating/syncing/backing up my Ode-generated blog (the one you're reading right now).

The first thing I learned about the Windows Subsystem for Linux (WSL for short) is that you can access the files you create in the WSL via the Windows file manager, but any modifications you make on the Windows side will not, I repeat WILL NOT be reflected in what you can see on the Linux side.

Read the rest of this post

Tue, 04 Apr 2017

Make a website with Ember - great introduction to a framework

I really like the idea behind Less than *ambitious* websites with Ember.js, in which author sheriffderek goes through the steps required to create a simple web site with the Ember JavaScript framework.

Easing into a framework -- that's the way I want to do it.

Thu, 30 Mar 2017

React-Redux links by Mark Erikson

React-Redux links by Mark Erikson https://github.com/markerikson/react-redux-links -- an excellent list that also covers learning JavaScript

Learning to code when you’re busy

Learning to code when you’re busy https://medium.com/the-odin-project/learning-to-code-when-youre-really-dang-busy-e223a7f84758

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|

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

Sun, 12 Mar 2017

Read all of Manton.org

Read all of http://manton.org. Deep thoughts on the social and personal web.

Mon, 06 Mar 2017

I install a Netgear AC750 WiFi Range Extender

I install a Netgear AC750 WiFi Range Extender http://stevenrosenberg.net/hugo/post/2017_0304_wifi_range_extender

Wed, 01 Mar 2017

Whiteboard interviews ensure biased hiring in tech, and programmers are calling them out

Whiteboard interviews ensure biased hiring in tech, and programmers are calling them out https://theoutline.com/post/1166/programmers-are-confessing-their-coding-sins-to-protest-a-broken-job-interview-process

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?

Tue, 21 Feb 2017

Tim Buchwaldt: Rails is f*cking boring! I love it

Tim Buchwaldt: Rails is f*cking boring! I love it. https://medium.com/@timbuchwaldt/rails-is-boring-thats-great-f896e9ab2cb#.djk89skub

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).

.@netlify positions itself as a beast on static-site delivery

.@netlify positions itself as a beast on static-site delivery https://www.netlify.com/features/

Choosing a Hugo theme, Part 1

Choosing a Hugo theme, Part 1 http://stevenrosenberg.net/hugo/post/2017_0219_choosing_a_hugo_theme_part_1/ @golang #Hugo @gohugoio http://gohugo.io

Hugo community: Alternatives to Disqus needed more than ever

Hugo community: Alternatives to Disqus needed more than ever https://discuss.gohugo.io/t/alternative-to-disqus-needed-more-than-ever/5516

Fri, 17 Feb 2017

Aaron Patterson: I am a 'puts' debugger

Aaron Patterson: I am a 'puts' debugger https://tenderlovemaking.com/2016/02/05/i-am-a-puts-debuggerer.html

The @washingtonpost is becoming my go-to. Packed with news and intrigue, costs less than @nytimes

The @washingtonpost is becoming my go-to. Packed with news and intrigue, costs less than @nytimes.

I got 7-Eleven coffee today, it wasn't bad

I got 7-Eleven coffee today, it wasn't bad

Sat, 11 Feb 2017

Is this guitar worth $131,000?

Is this guitar worth $131,000? https://reverb.com/item/4209723-gibson-goldtop-1957-100-original

Sun, 05 Feb 2017

Free Code Camp computer science and web development pathways

Free Code Camp computer science and web development pathways https://forum.freecodecamp.com/t/computer-guide-web-development-with-computer-science-foundations-comprehensive-path/64516 https://forum.freecodecamp.com/t/computer-guide-computer-science-and-web-development-comprehensive-path/64470

How focused do you have to be to become a software developer?

How focused do you have to be to become a software developer? https://firstdevjob.com/stories/taylor-milliman/

Fri, 03 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 ...

Wed, 01 Feb 2017

After all these years and two companies, Java still pushing crapware on Windows users

Just did a Java update on my workplace Windows desktop. From Sun to Oracle and decades in, the Java updater is still pushing crapware, this time an Amazon app.

Fri, 27 Jan 2017

George Orwell's '1984' is the No. 1 seller on Amazon

George Orwell's '1984' is the No. 1 seller on Amazon https://www.amazon.com/1984-Signet-Classics-George-Orwell/dp/0451524934 It's also sold out.

Why you might not be getting 5G data service anytime soon

Why you might not be getting 5G data service anytime soon https://www.wirelessweek.com/article/2017/01/why-carriers-are-secretly-anxious-about-leap-5g

Thu, 26 Jan 2017

Free Meteor.js hosting is back with meteor-now

Free Meteor.js hosting is back with meteor-now https://forums.meteor.com/t/super-simple-and-free-meteor-deployments-using-zeit-now/33214

Photos: Cruising Van Nuys Boulevard in the '70s

Photos: Cruising Van Nuys Boulevard in the '70s http://www.cnn.com/2017/01/25/autos/gallery/tbt-cruising-van-nuys-los-angeles

PulseAudio 10.0 now in Fedora 25

PulseAudio 10.0 now available for Fedora 25 https://fedoramagazine.org/pulseaudio-10-0-fedora-25 (And I can report that it is working)

Mon, 16 Jan 2017

There is an rsync for Windows, and it works

I've been meaning to look into backup solutions for Windows, and while there should eventually be a full Ubuntu Linux shell coming to Windows 10, it's not there yet unless you tweak things that I can't ask other users to do.

So I figured that when the Linux shell comes to Windows, I'll use rsync, the Unix/Linux backup utility I've been using for years.

I just found out that there's already an rsync port to Windows called cwRsync that you can pay for, with a free command-line-only edition available for download.

Since I use rsync on the command line in Linux, why do I need the GUI in Windows? I don't.

So I downloaded it, unzipped it all, put my rsync command into the cwrsync Windows Command Script file, and it worked right out of the box.

So far my tests have been small ones that haven't involved ssh into remote servers (I do backups to USB hard drives anyway), but I am very confident that cwRsync will work well for full Windows user-file backups. Plus it's free and nobody's going to bug you about buying anything ever.

Sun, 15 Jan 2017

Check out the Categories feature in the right column

I originally coded the categories listing as part of the overall Counter addin to Ode early last year, and Ode project leader Rob Reed lent his expertise to the addin, optimizing the code and squashing a few bugs in the process.

I had the categories listing in my right-hand column for a while, but since this Ode site has a LOT of directories/folders in it, that display made the right side of the page super long.

So I wanted the ability for readers to show/hide that listing. I didn't want to use jQuery, but I was very open to using vanilla JavaScript to make it happen.

And so I did. I looked at a lot of tutorials on how to hide the content of HTML divs (i.e. the stuff between a <div> and a </div>), and this one struck me as both simple and effective (meaning it's short and it works).

So now you can click Show / hide categories on the right to see the entire structure of the documents directory and drill down into topics that may be of interest.

Rob did a lot of work on my code, and I looked back at our e-mail thread from March 2016 and realized that I'm not even running the most recent version of the Counter addin on this site. Once I get that up and running, I will work on expanding the documentation on how to use the addin and then make it available to all.

Thanks go to Will Master for the JavaScript and Rob Reed for the Perl.

Once I figured out the concept of an addin (or, at any rate, my addin), I was off to the races. It was basically, "figure out what you want to display, figure out how to pull the information using Perl and the Ode addin structure, then drop tags into my Ode template to display the information."

Of course you can also say, "Here are things I can do in Perl, maybe it will be cool to put that on the web site." I guess I did a little of that, too.

However you slice it up, writing code and seeing results on a live web site is fun. In the Ode world, you can do that with HTML and CSS just like with any web site, and you can also write Perl addins. With this most recent hack (the show/hide), it was a matter of "appropriating" some vanilla JavaScript to add a feature I've been wanting for some time.

Wed, 11 Jan 2017

Preloaded Linux laptops are probably not encrypted

Even though preloaded Linux laptops like Dell's new Precision 3520 are a great thing -- and can save you $100 in this case, I'd probably have to reinstall because a factory image of the operating system most likely doesn't take into account one thing I want in any desktop Linux system: full disk encryption.

From the days when I ran Debian, through today's Fedora 24, I opt for full disk encryption in the installer. It's the right thing to do. If your laptop falls into the "wrong" hands, your data is encrypted and away from the prying eyes of whoever gets your gear.

Windows users can take advantage of disk encryption ... in some cases. While the Home edition of Windows 10 doesn't offer it, the Pro/Enterprise edition does have an option to encrypt your data.

It's nice that the installers of many major Linux distributions, including Debian, Fedora, CentOS/RHEL and Ubuntu (and its many flavors) offer full disk encryption (not just user files, though Ubuntu does offer a user-files encryption option) -- and any user can take advantage of that protection for the low price of $0.

Dell’s new professional-grade laptop is $100 cheaper if you buy it with Ubuntu

Dell’s new professional-grade laptop is $100 cheaper if you buy it with Ubuntu http://www.omgubuntu.co.uk/2017/01/dell-precision-3520-ubuntu-laptop

Thu, 05 Jan 2017

Ross Mayfield: The coming tech backlash

Ross Mayfield: The coming tech backlash https://www.linkedin.com/pulse/coming-tech-backlash-ross-mayfield

Tue, 03 Jan 2017

Adding memory to a laptop when they don't want you to add memory

When we bought my daughter a cheap Asus laptop a couple of years ago, I knew it had only 2 GB of RAM. But I also knew, or thought anyway, that I would add memory at some point in the near future. After all, upgrading memory is easy, right?

The answer is yes, I suppose, if you have the kind of Windows laptop where you can get the battery out by switching a lever. The hard drive and memory are a plastic door and a couple of screws away.

That's how it is on my 2013-purchased HP Pavilion.

But on my daughter's 2014-made Asus Aspire E15 laptop? Nope (battery access), nope (hard drive access) and nope (memory access).

To do anything -- change the hard drive, memory or even the battery, you have to remove 18 screws from the bottom of the case, crack it open with a case-cracking tool (I use a little plastic spatula from a long-dead and -gone mini food processor), and then start taking off parts.

To get to the RAM module on this Acer, you have to remove the hard drive, pull about a dozen cables of various types and then remove the entire motherboard from the case BECAUSE THE RAM IS ON THE BOTTOM.

If I hadn't pretty much torn down and rebuilt more than a couple of laptops, I wouldn't have even attempted it.

It's frustrating. Laptops traditionally allow the user to swap in new RAM and hard drives. You might want to do an upgrade, or a drive can go bad. And batteries? Mine last about a year and a half, and then I need to replace them.

So now that tablets are ubiquitous and are basically glued together, laptops, especially cheap ones, are not serviceable or upgradable?

If the hard drive dies or I need more memory, it's just tough tacos?

No. I do not accept that.

Read the rest of this post

Sun, 01 Jan 2017

JavaScript books for 2017

"Eloquent JavaScript: A Modern Introduction to Programming" by Marijn Haverbeke

"Learning JavaScript: JavaScript Essentials for Modern Application Development" by Ethan Brown

"Speaking JavaScript: An In-Depth Guide for Programmers" by Dr. Axel Rauschmayer

"Learning JavaScript Data Structures and Algorithms" by Loiane Groner

"You Don't Know JS" (series) by Kyle Simpson

"Programming JavaScript Applications: Robust Web Architecure With Node, HTML5 and Modern JS Libraries" by Eric Elliott

Sat, 31 Dec 2016

The guitar is wood and strings and fingers

I found this picture of my 1976 Gibson ES-175 in my 2016 photo folder. I now remember taking it to show my new guitar-playing friend Dave Green what the guitar's pickguard looks like so he could compare it to his Japanese-made ES-175 copy.

Here you see much of the guitar's body. What pegs it as a 1970s Gibson archtop electric? It has chrome pickup covers and a chrome tailpiece (as opposed to nickel, which tends to age, albeit gracefully) and "witch hat" volume and tone knobs. The nickel covers -- made famous on the rare and pricey PAF (Patent Applied For) humbuckers -- tend to age, albeit gracefully. I believe Gibson introduced the "witch hat" knobs in the late 1960s. Earlier Gibson electrics came with "top hat" or speed knobs.

You can't see it here, but the neck is made of three pieces of maple (as opposed to a single piece of mahogany on earlier models) and includes the thickened "volute" near the nut, meant to strengthen the neck at the point where many Gibson's suffer from catastrophic breaks.

All three of those things contribute to neck strength: maple instead of mahogany, laminated instead of one piece, volute instead of no volute. The volute was unpopular and eventually discontinued. It doesn't bother me. I kind of like the "feel" of knowing I'm at the end of the neck.

The bridge on this guitar, for this year of production (1976) is a bit of an anomaly. It's a compensated rosewood bridge, the kind that Gibson had been using for decades on its archtop guitars, both acoustic and electric. I call it an anomaly because one of the changes Gibson made on the 1976 ES-175 is switching from the traditional wooden bridge to a metal Tune-O-Matic like you would find on a Les Paul or ES-335.

Read the rest of this post

Cut down a #4 coffee filter into a #2

So you have the bigger Melita-style No. 4 paper coffee filters for 8- to 12-cup coffee makers and you need a smaller No. 2 filter for your single-cup pour-over cone filter (or 2-cup coffee maker)?

It happens more often than you think. I'm always running out of No. 2's and always have plenty of No. 4's. Mostly because Costco sells a huge pack of the larger filters.

You can just stuff the bigger paper filter into the smaller pour-over cone filter (I have both plastic and ceramic versions).

Or you can trim about an inch off of the larger filter. Use a scissors and follow the curve. It'll save you a trip to wherever coffee filters are sold and help you plow through your endless supply of No. 4's.

Wed, 28 Dec 2016

Eric Elliott on JavaScript

I am linking to these Eric Elliott articles on JavaScript programming because I don't want to forget about them.

Eric Elliott: 12 Books Every JavaScript Developer Should Read

Eric Elliott: The Software Developer’s Library: A Treasure Trove of Books for People Who Love Code

Eric Elliott: Learn to Code: 13 Tips that Could Save You Years of Effort

Eric Elliott: Native Apps are Doomed

Eric Elliott: Why Native Apps Really are Doomed: Native Apps are Doomed pt 2

Mon, 26 Dec 2016

A Chicago song I actually like

I've never been a big fan of Chicago, the band. I've heard this song before and had no idea it was by them. But I really like "Does Anybody Really Know What Time It Is?"

Lithub.com: The last bookbinder on the Lower East Side

The last bookbinder on the Lower East Side http://lithub.com/the-last-bookbinder-on-the-lower-east-side

Sat, 17 Dec 2016

My holy grail on self-hosted blogs? Local comments

My holy grail on self-hosted blogs like this Ode system? Self-hosted comments. Disqus is far from ideal.

Fri, 16 Dec 2016

Ode is a strong performer

Ode runs Perl via CGI on the server. That doesn't mean it is slow.

Turns out it is very, very fast.

I can render an index page with previews of every post (all 900+) in about 20 seconds.

Wed, 07 Dec 2016

Text processing in node (i.e. in JavaScript)

My last text processing project started in Bash, which which I'm more familiar, and then took a turn toward Ruby before returning to Bash when deadlines got tight.

Now I'm thinking about the next election-results script, which won't be using XML from the state of California but instead the space-delimited ASCII from Los Angeles County. Another developer handled that task in November, but I want to take a crack at it for March 2017.

My goal is a "universal" script that can work on any results file that the county provides without requiring a lot of hacking for individual races in any given election.

In other words, I want to write once, run many times.

I could do it in Bash. Or Ruby. But I might want to try JavaScript and run it with Node on the server (or, if the election is "small" enough, client-side in the browser).

LA County data is not standard. It's not XML or JSON (though the county DOES use JSON in its own results, it does not share that data with the media).

Instead, the county uses what appears to be a home-grown data format that is arcane yet well-documented.

Each line begins with an alphanumeric code, and data fields are placed on those lines at predetermined character lengths and predetermined positions.

So a script would have to create substrings of the data from each line. I'm thinking that I'll use the script to either create XML that I would then convert, or to skip that step and create JSON directly from the county's data.

Doing it in JavaScript would be an opportunity to learn more about the language (just like it would be for Ruby if I used that language; and the jury is most definitely out).

What muddies the water considerably is the fact that my company is also following elections in San Bernardino, Riverside and Orange counties. I know that San Bernardino doesn't really provide data at all. I generally scrape their web page on Election Night. I don't know what Riverside and Orange do.

So I'm going to focus on LA County for now. Another developer wrote the front-end code for the election-results display, and all I have to do is provide the JSON. I wouldn't be opposed to writing the whole app, but for now a "smaller" bite is a more realistic one.

XML to JSON in Javascript with enkidootech's xml2json

I'm exploring my options for coverting XML to JSON, even though I don't have any new XML coming my way.

I previously used a Ruby library and considered a different JavaScript library to do the conversion.

I just tested a different JavaScript library, enkidootech's xml2json, and that worked very well right out of the box.

Well, almost.

I tried to install it globally via npm, but my resulting JavaScript file didn't seem to be able to find it.

Then I used npm to install the package locally, and that worked. I have a node_modules directory in the same directory as my script, and it outputs JSON as expected.

I just took what enidootech offers as an example and put that in my file (which I named xml_to_json.js). I ran it with node and it worked:

// From https://github.com/enkidootech/xml2json

var parser = require('xml2json-light');
var xml = '<person><name>John Doe</name></person>';
var json = parser.xml2json(xml); 


You get this:

$ node xml_to_json.js 
{ person: { name: 'John Doe' } }


If my next script won't involve XML, what will it do? That's a question for the next entry.

Tue, 06 Dec 2016

CodePen: JavaScript Basics 2: Arrays and Loops

CodePen: JavaScript Basics 2: Arrays and Loops http://codepen.io/jakealbaugh/post/js-basics-2-arrays-and-loops

CodePen: JavaScript Basics 1: Functions and Variables

CodePen: JavaScript Basics 1: Functions and Variables http://codepen.io/jakealbaugh/post/js-basics-1-functions-and-variables

Thu, 01 Dec 2016

I tried to tweak my Fedora settings in KDE Plasma, and it screwed up everything in GNOME and Xfce

The morale of this story is that the KDE Plasma settings can screw up your Xfce and GNOME settings. So if you're using multiple desktop environments on a single system -- like my Fedora 25 laptop, or any other Linux system -- you could be in for some pain.

What I was trying to do is configure a dark theme for KDE Plasma (easy) and also use dark themes when running GTK3 and GTK2 apps on the Plasma desktop.

It looked pretty good in KDE Plasma, but things went pear-shaped in GNOME 3 and Xfce. My fonts were screwed up, Menus were gray type on a gray background, and icons were messed up -- with KDE icons bleeding into Xfce.

And then I had trouble logging in with Plasma at all. Blame the Fedora 25 upgrade (and KDE Plasma in general) for that one.

I first tried using the many Xfce configuration utilities to make it right. That didn't do much. I finally was able to log into Plasma (only after a reboot) and attempt to undo the damage. I was partially successful.

In GNOME 3, I had a lot of success with the GNOME Tweak Tool (which should be preinstalled on every GNOME system). I was able to use the Xfce Adiwata Dark theme to make even my GTK2/GTK+ apps look better in GNOME. The whole dark-themed GNOME experience is pretty much better than ever. So that's a win.

And I finally got Xfce looking right. I'm still having display font issues, but everything is more than good enough, and figuring out how to make dark-themed GNOME look better than ever is a bonus.

Wed, 30 Nov 2016

My new favorite TV show is @BetterthingsFX

My new favorite TV show is @BetterthingsFX http://www.fxnetworks.com/shows/better-things/about

AdamW on Linux and more: I don’t like computers

AdamW on Linux and more: I don’t like computers https://www.happyassassin.net/2016/11/04/i-dont-like-computers

Hacker Noon: Why you shouldn’t use ‘var’ anymore in JavaScript

Hacker Noon: Why you shouldn’t use ‘var’ anymore in JavaScript https://hackernoon.com/why-you-shouldnt-use-var-anymore-f109a58b9b70

Use SmtpJS.com to send email with JavaScript

Use SmtpJS.com to send email with JavaScript http://www.smtpjs.com

Rubyland.news is a new Ruby aggregator

Rubyland.news is a new Ruby aggregator http://www.rubyland.news

Tech Beacon: Is object-oriented programming dead? Not by a long shot

Tech Beacon: Is object-oriented programming dead? Not by a long shot http://techbeacon.com/object-oriented-programming-dead-not-long-shot

Cybersecurity analyst fixes what's broken in NTP (and there was a LOT to fix)

Cybersecurity analyst fixes what's broken in NTP (and there was a LOT to fix) http://boingboing.net/2016/11/29/ntp-the-rebirth-of-ailing-fa.html

Basic operations for arrays in Ruby

From Solid Foundation Web Development: Basic operations for arrays in Ruby

Tue, 29 Nov 2016

The European Ruby Revolution

The European Ruby Revolution http://devonestes.herokuapp.com/the-european-ruby-revolution

Fri, 25 Nov 2016

Gizmodo: A Stupid Simple Router for Super Lazy People

Gizmodo: A Stupid Simple Router for Super Lazy People http://gizmodo.com/a-stupid-simple-router-for-super-lazy-people-1764670728

Thu, 24 Nov 2016

I did the Fedora 25 upgrade

I upgraded from Fedora 24 to 25 today. So far, so good.

Update: I've had periodic Google Chrome freezes. I've had to kill it and start again a few times. I just had one while writing this post with Ode's EditEdit plugin. Not sure if this is a Google Chrome thing or a Fedora thing. I do have Fedora's version of Chromium to test.

Another update, a day later: No Google Chrome freezes today. I just had my first Google Chrome freeze of the day. Before that I replaced RPM Fusion's Audacity 2.1.2 with Fedora's own Audacity 2.1.3, and my GTK3 rendering issues are now gone. And for some reason I can still output an MP3 even though this isn't the "freeworld" version.

Trying Chromium: I am trying the Fedora-packaged version of Chromium to see if I experience the same freezes that I have been getting in Google's version of the application.

Chromium update: You know what's not crashing? The Fedora-packaged Chromium browser.

So far today, I have replaced the Chrome browser hosted on Google's server and Audacity from RPM Fusion with versions of both from Fedora's own repository. I always like using as many packages as possible from a distribution's own repo (generally a point in Debian and Ubuntu's favor), and it's nice to get closer to that ideal in Fedora.

I have been meaning to write about the coming of Chromium to Fedora for a long time but never got around to it. It installed on my computer automatically as the dependency of another app, the name of which escapes me at the moment.

I also should write about MP3 support (decoding, not encoding) coming to native Fedora (i.e. without RPM Fusion). While I do have RPM Fusion repos active on my Fedora desktop installation (I'm sure there are people who don't ...), I'm not sure if that's the reason my now-Fedora-supplied (and non-"freeworld") Audacity is able to output an MP3 file. All I know is that I'm happy to have my Audacity rendering issues (which have been problematic for a couple of months) and Chrome freezing issues (only a problem since the Fedora 25 upgrade) both solved in very short order.

More info on Fedora's Chromium package: https://fedoraproject.org/wiki/Chromium

Possible clue on why Google Chrome is freezing in Fedora 25: From a Fedora mailing list exchange

GNOME 3.22: As dozens of entries on this site will tell you, I periodically try GNOME 3 and usually abandon it because I get more work done in Xfce. In Fedora 25 -- for the first time -- Wayland is the default display technology for GNOME. When I try to run that on this 3-year-old AMD-running laptop (HP Pavilion g6-2210us), it freezes. The Xorg version, still available in the GDM choices, does work.

Chrome in GNOME: It seemed to be working fine. Once again, time for a GNOME test.

A ton of updates means Wayland is now working: All the video drivers updated just now in Fedora 25, and I can now run GNOME in Wayland. That was a quick fix.

Mon, 21 Nov 2016

JavaScript for Cats recommends Underscore.js

The friendly Javascript for Cats tutorial recommends the Underscore.js library, which does look pretty useful.

Sun, 20 Nov 2016

freeCodeCamp: A Gentle Introduction to Data Structures - How Linked Lists Work

freeCodeCamp: A Gentle Introduction to Data Structures - How Linked Lists Work https://medium.freecodecamp.com/a-gentle-introduction-to-data-structures-how-linked-lists-work-5adc793897dd

Gizmodo: Deleting the Facebook App Could Save Up to 20 Percent of Your Android's Battery Life

Gizmodo: Deleting the Facebook App Could Save Up to 20 Percent of Your Android's Battery Life http://gizmodo.com/deleting-the-facebook-app-could-save-up-to-20-percent-o-1789189589

Honeybadger: A Rubyist's Guide to Big-O Notation

Honeybadger: A Rubyist's Guide to Big-O Notation http://blog.honeybadger.io/a-rubyist-s-guide-to-big-o-notation/

Thu, 17 Nov 2016

Disqus -- thanks for fixing your Admin interface

I use Disqus a lot. For work. I mod HUNDREDS of comments a day on a few dozen sites, and the Disqus Admin interface had been making that task very difficult in recent months.

But sometime during the past week, Disqus updated its Admin interface on the web, and it is much easier to moderate the comments.

Things were broken and now they are fixed. Thanks, Disqus.

Sun, 06 Nov 2016

Well-used laptops don't last forever

My experience, anyway, is that heavily used laptops like mine don't last anywhere forever.

My Lenovo G555 lasted a little more than two years before it died.

And now I've had this HP Pavilion G6 2210-us for three years and six months. I'm on my third battery (luckily they're cheap), and now I'm about to replace the entire keyboard (also cheap).

I bumped up the RAM to the maximum of 8 GB a while ago. No regrets there.

The HP has had one catastrophic drop onto concrete that didn't affect it at all -- except for some nasty abrasions on the plastic case.

The drive it came with was an ample 640 GB in size. I sort of want to rebuild it as a Linux-only computer with a 1 TB drive. I generally have 100 GB of free space, and I'd have even more if I could kill out the Windows 8 instllation that I could never successfully upgrade to 8.1 and hence never even try to get Windows 10. If I don't go SSD (and I can't see doing that on this old laptop), the 1 TB would give me a lot of breathing room.

So the batteries last about a year, and the keyboard lasts 3 years. I'll replace the keyboard and hope the rest of the thing doesn't go south.

Would a more expensive laptop -- this one sold for around -- last longer? I don't think so, but you never know.

No more replacement keys, I'm just going to replace the entire keyboard

While my last key replacement was rocky yet ultimately successful, the results aren't what I'd hoped. And now the space bar is going wonky.

My "new" N key works, but it doesn't have the clicky/bouncy feel of the other keys. I'm not sure if it's the rubber cup or the hingy mechanism, but it is what it is. And it's not great.

I tried new rubber cups that I got from ReplacementLaptopKeys.com, and that didn't help.

The space bar is just generally loose and mushy, and it doesn't work on the ends all that well.

This time I'm just buying a whole new keyboard. What I didn't know is that they're cheap. For this laptop anyway.

I'm not sure if this is the case for all laptop brands, or just HP, but the market is awash with OEM replacement keyboards, and I just bought one for on eBay. Sure I'll have to take the whole damn laptop apart, but it should really have a new lease on life.

Sat, 05 Nov 2016

Can you use JavaScript and Node instead of traditional shell scripts?

One of the things that would get me using (and learning) more JavaScript would be the ability to take care of all the administrative things I do in (mostly) Bash, (occasionally) Ruby and (very occasionally) Perl using JavaScript via Node on the command line.

I have played a bit with creating and writing files in that environment, and I found the following posts to help in that effort:

This Fedora install still kicking after SIX upgrades

I started this laptop on Fedora 18 before a fairly quick upgrade to F19. I've kept it going all the way through Fedora 24.

So far that's six "major" upgrades. And it still works fine. Not that it shouldn't, but I don't remember things ever going this smoothly for this long.

Fri, 04 Nov 2016

Sacha Greif: A study plan to cure JavaScript fatigue

Sacha Greif: A study plan to cure JavaScript fatigue https://medium.com/@sachagreif/a-study-plan-to-cure-javascript-fatigue-8ad3a54f2eb1

Sun, 30 Oct 2016

The Archtop.com "sold" list - a treasure trove of guitar history

You can learn a lot about archtop guitars by going through the "sold" archive at Archtop.com. You can see descriptions and photos of hundreds of actual instruments. It's a valuable historical and educational resource that is really helping me learn about Gibson archtop guitars. What's missing? The prices. For that you need to look at the current inventory list.

What makes these Archtop.com lists so valuable is that there are so many examples of real guitars that have sold. The measurements show how the various models changed from the 1920s and '30s to the present day. They could turn the archive into a book, and I'd buy it.

Sat, 22 Oct 2016

The squeak in the plumbing

There's been a squeak in the plumbing. For about a year. When you turn the water on, "squeak." When you turn it off, "squeak."

The picture gives it away. It was the Zurn pressure-reducing valve. We have super-high water pressure, and we probably need two pressure-reducing valves in series but make due with one.

Anyhow, the squeak has been a mystery. Ilene thought it was the pressure-reducing valve all along. I agreed that we probably needed either a new one, or a rebuild on the old one (there's a kit for that).

But I wasn't sure. The sound was super loud in the shower wall.

I ventured into the spider- (and web-) filled crawlspace under the house to check the pipes while the teenager turned the water on and off. I was looking for things that moved. Things that moved enough to squeak.

I found nothing.

Read the rest of this post

Fri, 21 Oct 2016

Can I Program Yet?

Can I Program Yet? Notes as I Learn Coding and Software Development by Darga http://blog.dargacode.com and http://dargacode.com/

Twitter is broken

Twitter is broken due to a DDoS attack. The AP story I pulled downplays it quite a bit -- it's not just the East Coast, and it is continuing into the afternoon. http://www.latimes.com/business/la-fi-tn-dyn-attack-20161021-snap-story.html

Tue, 18 Oct 2016

Back to Xfce after a week in GNOME 3 ... again

My latest GNOME 3 experiment lasted about a week.

And I fully recognize that I pretty much wrote this same post last month.

I'm back again. GNOME wasn't really offering me anything I don't get in Xfce, and when I had to dip into my Citrix apps yesterday, GNOME was giving me trouble.

Between Xfce's Whisker menu, Catfish file finder and the fact that I can run the Nautilus or Dolphin file managers whenever I feel the need (which won't be very often), the comfort, consistency, performance and usability of Xfce drew me back.

Just like the last time.

I didn't feel more productive in GNOME. At times I felt less productive. So why keep going with it?

The Ember Weekend podcast

I just discovered the Ember Weekend podcast https://emberweekend.com

Mon, 17 Oct 2016

Creating encrypted documents in Vim

Creating encrypted documents with Vim https://linux-audit.com/using-encrypted-documents-with-vim/

Jazz Advice indeed has a lot of good jazz advice

Jazz Advice indeed has a lot of good jazz advice http://www.jazzadvice.com

Sun, 16 Oct 2016

'I’m Considering a Coding Bootcamp: Should I learn JavaScript or Ruby?'

Bloc: I’m Considering a Coding Bootcamp: Should I learn JavaScript or Ruby? https://blog.bloc.io/im-considering-a-coding-bootcamp-should-i-learn-javascript-or-ruby/

Wed, 12 Oct 2016

Don't hate me because I'm back in GNOME 3

After saying in a recent post how GNOME 3 wasn't working for me, here I am. Back in GNOME 3.

My use cases are changing, and GNOME 3 has its charms.

Briefly (and not all particularly relevant):

  • I will no longer need Citrix in a few months (or so I'm told)
  • Nautilus is nice
  • I'm considering a "clean" installation of Fedora Workstation (still love Fedora)
  • Shutter has improved my screenshot situation
  • GNOME 3 looks so nice
  • GNOME 3 seems stable
  • I now watch video on my TV with a Roku (though GNOME 3 works fine when I have the laptop plugged in via HDMI), meaning my laptop "experience" is more production and development and less video entertainment

I have way too many desktop environments on this laptop. Recently I tried LXQT, which is a nightmare (on my Fedora 24 machine, anyway), LXDE (meh) and KDE/Plasma 5 (I liked it better than I thought I would, but not enough to move to it).

Might as well try GNOME 3 again.

As I say above, I'm contemplating a fresh Fedora installation, and that would be Fedora Workstation from the get-go. If i did that, maybe GNOME Screenshot would work as advertised ...

One guy's Google interview prep can be everybody else's computer-science tutorial

One guy's Google interview prep can be everybody else's computer-science tutorial https://github.com/jwasham/google-interview-university

I am trying Shutter as my GNOME screenshot program

Since the GNOME screenshot program is very broken, at least in my installation of GNOME, I decided to try Shutter, the Linux screenshot program written in Perl and seemingly aimed at GNOME users.

Shutter has a lot of options, and so far I can get it to work.

Going back to the beginning, why is the GNOME screenshot program broken in my GNOME installation? I have no idea.

When I hit the print-screen key, nothing at all happens. If I bind it to alt-p, I get the "shutter" sound, and a PNGJPG image appears in my Photos folder. Even if I go into gconf settings to modify just about everything, calling the screenshot program from the keyboard produces the same resultwon't allow me to change the target directory.

But if I hit the super key (or mouse into the hot corner), then search for Screenshot and run it, I get the full GNOME Screenshot window to open, and it has all of my configuration options (JPG instead of PNG, choose my own directory/folder). Why can't I make this work from the keyboard -- from print-screen or any other keyboard shortcut?

I've dwelled on GNOME Screenshot enough. Now I'm going to see if Shutter can do what I need. Or I can just use Xfce, where the screenshot program works like it's supposed to -- with the print-screen key. Why is this so hard, GNOME people?

Update: After using Shutter once (I have it bound to alt-P), the icon sits in my upper panel. I can then take a screenshot by clicking the icon. Easy.

Speaking of panels in the panel-less GNOME (where not having things appears to be a "feature"), I do have a panel in the form of the TopIcons, Places Status Indicator and Applications Menu extensions. And yes, it is not a good thing that what many consider core funtionality can only be implemented through Extensions that aren't part of the GNOME 3 core.

More GNOME Extensions: I just added Frippery Panel Favorites to make the upper panel on my GNOME 3 desktop even more GNOME 2-like.