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.

Sun, 08 Jun 2014

The Programming Project, Part 1: What's this all about

Now is the time. I'm going to really learn to program.

I've been dabbling in programming for awhile now. I've mostly stayed within the friendly confines of the Bash shell on my local Linux system and the Linux servers on which I run various scripts and services.

I've been meaning to get deeper into real programming, whatever that is, for at least a couple of years. I would say it hasn't happened, but to a small extent it has. Now I'm ready to take the next step.

So what did happen?

A couple of years ago, I began writing little Bash scripts to automate my rsync-driven backups. With these little one- to two-liners, I didn't have to remember the exact syntax to do the rsync backup correctly and remember where my "exclude" file was living.

I also had trouble with screen blanking in Debian Wheezy. I finally figured out how to fix the problem with xset, and wrote a little Bash script to automate that process.

I have also written a bunch of scripts to automate posting and create an archive of this Ode site. Among these Ode-related scripts is a local Perl program that generates an Indexette date stamp. You can copy/paste it into your post file, or call the script from within a text editor, which is what I do with Gedit.

It's still a simple two-liner, albeit with more than a dozen lines explaining what's going on.

About a year ago, I started a more complicated programming project at my day job.

So what do I do at this job? I work for a bunch of local news web sites. I push content. I create web pages in an arcane CMS. I create blogs in a common CMS (WordPress). I fix broken things and solve problems. I take things that are separate and mash them together.

The project, the thing I've wanted to do, was to script together data from various sources, more specifically election results for the nine web sites I work on.

I wanted to do it in Perl. But when I finally decided to do it, I just didn't have the chops. But I did know Bash, and I learned (or learned more) about such Unix/Linux utilities as wget, cat, cp and sed to turn my data into HTML pages I could generate with cron and iframe into my various web sites.

Thus far I've been re-reading "Learning Perl", this time noting things that will help me in my election-results project.

I'm somewhere in the 40s in terms of pages, and I'm making notes in the book -- it's a real book, not an ebook -- in pencil.

  • Search and replace is pretty much a core function in Perl, so I can safely say goodbye to sed.

  • Concatenation can be done with a dot (a .) between items, so that takes care of cat.

  • I would really like to pump data into an array and use Perl's foreach to process each line.

  • Grasping scalars and arrays is going to be key.

  • I'll have to look into grabbing data over HTML and bring it into the scalar or array. The LWP::Simple module looks like a good candidate for this. I could also use the full LWP.

  • I'd like to code a date stamp into the data. I've already experimented with that in Perl for my Indexette date-stamper script.

  • Eventually I'll need to write the results out to files on the web server. That shouldn't be too hard.

Wed, 05 Mar 2014

Does the programming language matter?

At some level, ends and means in computer programming dictate that whatever language gets you there is the right one.

If you want to work on a certain project, and that project's code happens to be written in PHP, that is something to think about.

Do you want to attract collaborators? From among the languages you like, pick a popular one.

Read the rest of this post

Sat, 01 Mar 2014

The Fall of Perl, the Web's Most Promising Language, by Conor Myhrvold

Read this: The Fall of Perl, the Web's Most Promising Language, by Conor Myhrvold

brian d foy says, "The Fall of Perl" would more suitably be titled "The Rise of Python"

Mon, 03 Feb 2014

Another Buddy Burden meditation on programming: Perl gets shit done

Buddy Burden released the next post in his series on programming, life and everything.

As I said recently, I'm a huge fan.

This one is about "getting shit done":

I’m one of those people who wants to write code to solve every problem that comes along.  If I could figure out how to make a Perl script make my bed, or clean my room, then those things would certainly get done a hell of lot more often.  I’d put it in a cronjob.

I’ve written code to calculate my kids’ allowances, email daily chores to them, track my hours for clients, keep track of info when hiring employees, reset the database for my music player, search for things in my instant messaging logs, organize my music collection, figure out how much space I have left in my Dropbox, balance my checkbook, query package management systems regardless of which flavor of Linux I happen to be running at the moment, calculate Weight Watchers points, track my todo list, count lines of code, print out certain lines from a file, and make a Gimp plugin to help me make cards for my favorite wargame ... and that’s just a small fraction. 

...

I write a lot of code, even outside work.  If there’s any obvious way to use code to solve a problem (and sometimes even if the way is non-obvious), I’m going to write a program.  I can’t fix a car, I suck carpentry and plumbing, I’m not very good at yardwork or gardening, and I’m not even particularly useful at administering my family’s eclectic collection of personal computers, laptops, and tablets, but I can write the hell of out of some code.  And I’m the type of person who will gleefully spend days trying to solve a problem with code that I could have probably just done manually in a few hours, because I don’t mind spending days on a program, ’cause it’s fun.  But just because I don’t mind it doesn’t mean I want to do it all the time.  What I’d really prefer is to get in, write the code, and get out.  Just Get Shit Done.  And that’s what Perl lets me do.

That's a programmer, all right. I don't usually drop quotes this big into entries, but there's way more I could have quoted from this excellent entry.

Again, the entire series is essential reading.

Fri, 31 Jan 2014

A great meditation -- in eight parts -- on programming from Perl coder Buddy Burden

Buddy Burden writes a great eight-part series, Perl and Me, on his approach to programming, how he came to code in Perl and what he thinks is wrong (and right) with the profession and teaching of programming.

It's not all about Perl, though much of it is. Every programmer should read it.

My favorite is Perl and Me, Part 7: The Most Powerful Weapon Which You Can Use to Change the World

I would offer a few quotes from Part 7, but the whole thing is so good that you should just go read it now), then go back to Part 1.

Read the rest of this post