After a recent feature request I decided to look into adding category support for my Ulysses-Post-to-WP script. In the end it was actually easy. It involved changing one variable from post-tag to category. The hard part was finding out that was the needed change. The documentation isn’t very clear, and I had to pull a post out via XML-RPC to see the format. The testing and writing up the changes took more time than the actual change.
After using GitHub to contribute to a project the other day, I got to thinking about other uses for Git. One was to keep a backup of my ~/bin folder. I write a lot of one-off scripts to make my life easier. Most of the time they’re under 20 lines and previous versions aren’t really needed. But sometimes1 I break things. Other times I’ll go back and wonder what the hell was I thinking.
Google Code is to join the long list of Google projects that have been consigned to the dustbin of history. The open source project hosting service will no longer be accepting new project submissions as of today, will no longer be accepting updates to existing projects from August 24, and will be closed entirely on January 25, 2016. § Killed by spam. But not just closing, everything will be deleted.
In an wonderful post, the author John Scalzi produced twelve standard responses to online stupidity. The list seems complete and covers most cases. The list: I don’t care what you think. I didn’t ask you. No doubt you thought that was terribly clever. You’ve attempted logic. Not all attempts succeed. One should not have that many errors in that few characters. Either your educators have failed you, or you have failed them.
In my continuing adventures with the PogoPlug V4, I decided to get OpenVPN working. The install was easy enough, but getting the configuration correct turned into a literal project—it has it’s own GitHub repository. My VPN provider of choice is TunnelBear1. I started with them about a year ago because of their free service. The free accounts get 500 MB of data transfer per month. That’s not a lot, but it’s enough to get me out of a data emergency.
It’s time for my weekly word count check-in. At the end of every week, I post a screen shot from my writing results spreadsheet. This shows the current week and the three before. My week starts on Monday. The numbers are current through Sunday night. I also only average over six days. This allows me one day of no writing that doesn’t impact the weekly totals. The goal for this week was to push out 1000 words per day.
Writing a sample chapter for a possible programming book was quite eye-opening. I’ve never done any serious non-fiction writing other than a magazine article. Writing a programming book is considered non-fiction just as a humor book is. I find the classification funny. “Fiction” is defined as everything not-made-up. It can be anything from a story about a crime in your town to space battles. Non-fiction is everything else. In the sample chapter I realized there was as much fiction as truth.
(This is a sample chapter I put together to see how I felt about writing a programming book.) The Simple Script Before starting to build a more complicated program, let’s start with something simple. We’re going to hack together a short script that works. It will upload a single cat picture to a S3 bucket. We’ll learn the basics of both a ruby script and how cloud storage works. Lesson setup In your working directory create a new branch for this chapter.
Lately, I’ve been dabbling in ruby programming. I’ve mentioned it a few times recently. I’ve also been thinking that what I’m doing would make for a decent beginners book. I’ve seen a few of the ones out there. The projects are much more involved and tend to focus on web applications. This would be more of a beginner-to-beginner style project. I’m thinking there might be a place for a smaller, focused book.
Last week I got sucked into a small coding project. I wanted a quick way to upload files to AWS S3. S3 acts like a FTP file server. But traditional upload methods like SFTP aren’t allowed. This makes the service tricky to use from the command line. I wanted a simple tool that I could use in three different ways: Directly from the command line. Inside of an Automator workflow “run shell scrip” action.