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

Regular blog here, 'microblog' there

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

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

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

Tue, 14 Jul 2015

Filezilla working again in Fedora 22

After many months during which the FileZilla FTP client would eat a ton of CPU and basically stop working in Fedora, whatever was wrong has been fixed, and the program is working once again.

After a FileZilla update caused the problem (and yes, I did contribute to the bug report), I set up gFTP because I need a working FTP client. And gFTP gets the job done. It's super fast. It's also not actively developed.

Maybe I'll go back to FileZilla. Maybe not. But it's nice to have the option.

Fri, 10 Jul 2015

Using dlvr.it to split my regular and 'social' posts out of Ode

I've been playing with the idea of using Ode as both a traditional blogging system as well as a social-media platform generating exactly the kinds of posts that I normally would originate on sites like Twitter.

With the help of dlvr.it, this is entirely possible not just with Ode but pretty much any blogging platform.

The key to this concept is that my social-media updates should originate on my system, where they will continue to live. They are mine. Twitter will have a copy, but I will have the "original."

And now I can tell you how easy it is to do this. And it doesn't just work for Ode but can be done on any blogging platform (including WordPress) that allows you to post to categories (or directories or folders) and tap into RSS for that specific category (or directory or folder).

Read the rest of this post

Sun, 05 Jul 2015

Learning Go: create a web server in five lines

The documentation for Go (aka Golang) is peppered with examples, and one of those examples, for Go's net/http package, shows you how to easily create a file server.

net/http is part of Go's standard library Here is the example code from golang.org/pkg/net/http:

package main

import (
    "log"
    "net/http"
)

func main() {
    // Simple static webserver:
    log.Fatal(http.ListenAndServe(":8080", http.FileServer(http.Dir("/usr/share/doc"))))
}

When you drop this code into a file in a directory (in my case I made the directory web_server and named the file main.go), then either compile it with go build or run it with go run, it creates a web server on port 8080 that serves the contents of your /usr/share/doc directory, which always exists in Linux and Unix (and probably in the Mac OS X version of Unix).

To see the results, open a web browser and go to http://localhost:8080/, and you should see a directory listing. Just like any web page, you can click on the links and see what's in those files.

This example program -- a web server in five lines -- is fun to play around with. You can change the http.Dir and serve "real" web content. You can change the port from :8080 to something else.

Sun, 21 Jun 2015

I wrote my Ode Indexette time-stamp program in golang

Last year I decided to write a short script that outputs the time/date-stamp line required for Ode's Indexette add-in.

Back in 2014, I did it in Perl, Ode's "mother" language. It's really just a two-liner with a whole lot of notes:

(Due to a quirk of Ode formatting and the $ character, I'm rendering this program via a Github Gist)

I've been playing around with lots of other languages since then. I know I should stick with one and really learn it, but for now it is what it is.

I decided to try to get the same output from the Google-created go (aka golang) programming language, and with the help of this web page, I was able to hack it together pretty quickly:

package main

 import (
    "fmt"
    "time"
 )


 func main() {

    // get the current time in UTC

     indexette_time := time.Now().UTC()

    /* print the time to standard output in the format
    required by Ode's Indexette add-in. Note that the 
    .Format parameters use an "old" date just to set 
    the format, the output will be the current time
    due to the use of time.Now() */

     fmt.Println("tag : Indexette : index-date :", indexette_time.Format("2006 01 02 15:04:05"))

}

I'm still calling the script into gedit the same way (through Snippets), and it works just as well as the Perl version.

One thing I just learned about go that's pretty cool is you can run your go program as a script, or compile it as a binary and run that. Advantages of a binary are that it's portable -- anybody with a system for which the binary is built can run it without needing to install go on their own system. And the binary should run faster than the script, though this is admittedly not an issue for three lines of code.

But it's cool anyway.

In the case of this script, I named it ode_time. Through experimentation, I figured out that the go build program that makes the binaries takes their name from the directory containing the file. So since I wanted the go binary to have the same name as the file, I gave the directory the same name, too:

My script file is here (I'm leaving out most of the path, but suffice it to say this is the place where I keep my program files):

/golang_code/ode_time/ode_time.go

I run the uncompiled script this way while in the /ode_time directory:

$ go run ode_time.go

I get this output:

Perfect!

I wanted to make a binary just because.

Here's how I did it. I am working in the /ode_time directory that contains ode_time.go:

$ go build ode_time.go

Now the directory contains two files:

ode_time ode_time.go

The first is the binary (which was automatically made executable by the go build command), and the second is the "raw" go script.

So I can now run the binary from my console like I'd run any binary that isn't in my path:

$ ./ode_time

And I get the same output.

The takeaway: I wanted to write a go program, and with the help of the Internet (and people who actually know how to do these things), I did it. And it was a program that I use on a daily basis -- whenever I write a blog post for my Ode system.

I like the idea of go, which is the language used by the Hugo static blogging system. The documentation seemed OK, but I did have to go "off the reservation" to find an example that I could work off of.

I'll clearly have to seek out tutorials and books if I want to pursue programming with go. Fortunately there are a few go books about to be released, and that might help me figure it out.

Fri, 05 Jun 2015

I love the design of wit.io

I stumbled across the wit.io blog. The layout is nice, but it's the typography I love.

Here's an entry: Clojure: All grown up

The font, the sizes, the colors of the type and the background. I like it.

Font color is #666

The background color is #e9e9e9

From the CSS:

font-family: "Gentium Book Basic",Vollkorn,Baskerville,"Hoefler Text";

The Vollkorn font is drawn in from Google:

@import url(http://fonts.googleapis.com/css?family=Vollkorn:400italic,400,700&subset=latin);

Nice!

Fri, 29 May 2015

Getting rid of workspaces in GNOME 3

It's not that I don't like virtual desktops (aka workspaces) in Linux.

On the contrary, I love them.

But when I'm using the horrible Citrix-delivered applications my company provides, switching to another workspace (or virtual desktop) causes those apps to lose their connection to the server.

So I have to be disciplined in order not to switch to another workspace.

In Xfce I removed the desktop pager from my panel.

And just now in GNOME 3, I was searching for an Extension that would do this for me. I found an out-of-date Extension that included a very good workaround in the comments:

This extension didn't work for me on Fedora 20/GNOME 3.10. Instead I used GNOME Tweak Tool and set the 'Workspace Creation'=Static and only 'Number of Workspaces'=1.

I already have GNOME Tweak Tool, since you really can't run GNOME 3 (successfully anyway) without it. I went into the Workspaces portion of the utility and made the changes.

Now my Workspaces are gone, as is the ability to even go to them with ctrl-alt up/down-arrow, and I should be safer than ever to use GNOME Shell for my Citrix work ... unless minimizing apps, or switching between them, kills the connection.

Update: Switching between applications, including my Citrix-delivered ones, and minimizing them with the Super (aka Windows) key or mousing into the hot corner does NOT cause the Citrix apps to lose their connection to the server.

So we can call this a win. I'll know for sure when I try to do a full day of production in GNOME 3 on Monday.

Tue, 26 May 2015

Gear review: The iRig 2 guitar interface to iPhone, iPod Touch and iPad

The iRig 2 guitar interface

Here's my short and not so sweet review of [IK Multimedia's iRig 2] guitar interface to the iPhone, iPod Touch, iPad and some Samsung Android devices.

The iRig 2 was floating around the office, and I figured that I'm a guitar player, I've always been interested in headphone-amp type solutions, and maybe this would enable me to play an electric guitar, with the aid of my iPod Touch 5th Generation, and leave amplifiers behind.

Here's the challenge: I play jazz mostly. I don't like distortion. Jazz guitar for the most part requires a lot of headroom but no distortion.

Can the iRig 2 handle it?

First of all, the iRig 2 is an inexpensive device. It's something like $39. That's cheap. So how much can you expect from it? How good is the onboard preamp?

Read the rest of this post

Dodgy Windows 8 leads to me running Citrix on Fedora Linux

I wasn't even going to write about how I used to run Citrix on Windows 8 instead of Linux on my HP laptop because my particular Citrix-delivered application reacted poorly to the horrible DSL Extreme broadband service at home and its frequent (every three minutes or so) total dropouts. Maddeningly, the crucial link to "reconnect" to my application was present the Firefox and Chrome web browsers under Windows but absent in those same browsers under Linux.

No, I was instead going to write about how to configure Citrix in Linux to allow you to access local drives via your Citrix apps. I'd like to thank the Ubuntu community for that very helpful portion of an overall Citrix-on-Linux page that has helped me many times.

But since I'm already going this road, here is how and why I decided to do my Citrix-based production work in Fedora Linux instead of Windows 8.

Initially I thought I "had" to use Windows for the ungainly Citrix-delivered apps that my employer requires, including Adobe InCopy (which I wouldn't wish on anybody) and a proprietary CMS from Hell. That was when I was having Internet issues at home and kept getting disconnected from my Citrix apps.

But since then I've "solved" my broadband issue, and the connection is slow yet consistent (as opposed to slightly faster but extremely inconsistent; thanks DSL Extreme, who I'm dropping as soon as my contract ends).

So once I had "consistent" broadband, I thought I was home free. I could run my Citrix apps under Windows 8 (the 8.1 upgrade fails for me every time, probably because I dual-boot Fedora, and an encrypted Fedora at that) and all would be well.

Except that Win 8 started crashing. Yeah, I'm stressing the #$%& out of it, but that's how I work.

Read the rest of this post

Static blogging systems written in Ruby

I'm always looking at new blogging systems, and here are a few links about systems written in Ruby:

http://www.sitepoint.com/static-blogging-g-face-middleman-vs-jekyll/

http://www.sitepoint.com/wordpress-vs-jekyll-might-want-make-switch/

http://www.sitepoint.com/6-static-blog-generators-arent-jekyll/

https://middlemanapp.com/basics/blogging/

You might already know about Jekyll and its close cousin Octopress, (I do), but this is the first I've heard about Middleman, which is billed as a general static-site generator written in Ruby that can be configured to produce a blog.

I dumped the links above with little context because I waiting to explore where they lead, as I hope you will, too.

Trying to remove LXDE from Fedora 21 breaks Xfce, and why Fedora makes for a sturdy Citrix platform

I installed the LXDE desktop environment a while back. Part of me just wanted to check it out because it has been awhile. But I also was "auditioning" it as a potential working environment in Fedora because I'm now doing a lot more of my work via Citrix Receiver in Linux instead of Windows.

As a current Xfce user, moving to LXDE isn't quite the culture shock as it would be going from, say GNOME or KDE to the LXDE environment.

Things I liked in LXDE included that it picked up on the Adiwata Dark theme I'm using in GNOME and had a lot more "darkness" to it than Xfce picks up when I choose Adiwata on that side and Adiwata Dark in GNOME. Doing the latter makes GTK3 apps show up with a dark theme, though all GTK2 apps are as white as the Xfce Adiwata theme makes them.

Things I didn't like included a lack of screen animation when clicking an application button in a panel (I never knew if I really clicked it or not) and (more crucially) no way to manage touchpad tap-to-click in a GUI.

Yeah, it came down to touchpad management. Xfce is good at it. LXDE is not.

So I stopped using LXDE, barely used GNOME 3 (too many issues with Citrix and too hard to configure the way I want/need it to be) and focused on Xfce as my go-to desktop environment.

I recently removed the desktop pager from my upper panel to keep myself from accidentally clicking into a second desktop and causing my Citrix apps to lose their connection to the server. It's barbaric. But I can accept it.

And now LXDE has been hanging around unused on my Fedora system for more than a little time.

I figured, why not remove it?

So I went into my favorite Fedora package manager, searched for LXDE and removed everything that came up.

Bad move.

There were things in that mass package removal that Xfce needs.

After that ill-fated software removal, Xfce lost its wallpaper. And its ability to pretty much work at all. Applications would launch, but they would no longer refresh on the screen. And I couldn't do much of anything.

How did I set things right?

I went into Yumex again -- yes, it did work -- and added back all of the LXDE items.

Now Xfce works once again. And I still have LXDE.