The traffic to my astrology blog has dropped precipitously in the last three days. Drilling down into my analytics, it appears that I am getting less than half the Google search traffic I was getting just this past weekend.

Yes, I am worried. The blog brings in money. But it is also seven years old. It has over 5k fans on FB, over 2.5k followers on Twitter. I have a sizable email list (that I haven't been using since I ditched Mailchimp) that I can contact if I need to. Also, I have diversified my income streams such that I am not solely dependent on pageviews (i.e., ad impressions).

Nonetheless, I feel I need to keep bringing in "new eyeballs," because only a fraction of new visitors become fans. I feel helpless, and I don't want to try to divine Google's algorithmic intentions. ("What am I doing wrong, Google? Why hast thou forsaken me?") When I feel this way, I feel more determined to reduce my dependence on search traffic, yet Google is by far the biggest referrer to my site.

If Font Awesome had an unhappy face icon, I'd insert it here.

:(

Tags: google

08/22/13; 10:53:55 AM

I just set up my own domain with Fastmail.fm and am going to start offering jk@jeffreykishner.com as my primary email address instead of jeffreykishner@gmail.com. It took opening tickets with both my host and Fastmail to correctly set up my MX records and my email alias, but now it is working.

The "straw that broke the camel's back" was this post on Groklaw about the author's choice to shut down the site (who knows how long this link will be active?) in light of recent disclosures about our current surveillance state, as well as numerous posts by Marco Arment about reducing his dependence on Google (particularly this one).

I have no illusions that Fastmail wouldn't make their servers available to the NSA upon a court order (although honestly I haven't read their ToS and Privacy Policy closely to even find out). But I feel they'd put up more of a fight than Google (and yes, my "feeling" may not be justified by any facts).

But privacy concerns aside, I would rather be a customer than a product. To Google, I am a product and the advertiser is the customer. The advertiser is paying for my attention. By choosing to pay Fastmail (by the time my 60-day trial ends) I am choosing to be the customer. They are serving me, not an advertiser. No software is reading my emails for the purpose of determining the most contextually appropriate ads to serve me.

I still rely on Google. I do searches while logged in. I use Maps; Calendar for my business; Drive to store some docs and spreadsheets that I frequently edit; and probably other services that are not coming to mind right now. I do not think Google is Evil, but I also don't feel that they have my best interests in mind. I don't want to just contribute to some Big Dataset in the Cloud.

I love the keyboard shortcuts and ease-of-use of Gmail, but Fastmail has IMAP, webmail, keyboard shortcuts, and other features. At this moment, I am willing to forego some convenience. I hope I stick with it.

Tags: privacy, email

08/22/13; 08:41:29 AM

 

I learned about about this Damsels in Distress series via Wired magazine, in which the creator explores misogynist tropes in video games. Here's the first in the series; I've embedded the second video above.

I'm not a gamer, and although the use of the "damsel in distress" archetype in video games didn't surprise me, the second video was disturbing. I did not know that so many games require the gamer to kill a woman to proceed to the next level, and that in many cases she is literally "asking for it," i.e., asking the protagonist to kill her (usually because she has been transformed into a "beast" and needs to return to her "pure state").

Also upsetting: that the series creator received so much misogynistic social media hate for this project.

I'm a semi-conscious male. I've been aware of concepts like Patriarchy and Male Privilege for at least the last twenty years of my life, and although I'm aware that I indulge in the male gaze and objectification, I make conscious attempts not to take advantage of the inherent power I have as a man. And fortunately, my wife calls me on it when I revert to old behaviors. Having asserted that I am on occasion "part of the problem," I'm a father of a teenage girl, and I don't want her to grow up in a culture in which the tropes explored in these videos go about unquestioned by her peers. I encourage any parent to watch this series with their children (once they're old enough to understand the concepts and are mature enough to view some disturbing imagery).

I appreciate Anita Sarkeesian's courage and intelligence in putting herself and this message out there.

Tags: video

08/20/13; 09:45:45 AM

I wrote a WordPress plugin that enables you to post an outline as an unordered list within a post or page. You can grab the code (and see attribution to Betsy Kimak, upon whose code this plugin is based) here. I just wrote it today so expect further development.

How to Install

  • Copy the gist into a text file.

  • Title it fargo2opml.php

  • Create a folder called fargo2opml

  • Drag the file into the folder

  • Compress folder as zip file

  • Install it into a self-hosted WordPress site

  • Activate the plugin

Or remove the opening and closing php tags and drop it in your functions.php file.

How to Use

In the content area of your WordPress post or page, just use this shortcode:

  • [opml url="OPML_URL"]

(Obviously, paste the URL of the OPML file between the quotes.)

I've tested this in a few blog installations, and for some the padding before the ul is absent, so all headlines are "flat," i.e., not nested. But it works in both posts and pages in the default 2013 theme.

Also if a public URL starting with https://dl.dropbox.com leads to parsing errors, paste the URL into the address bar, hit return, and use the updated URL that includes "dropboxusercontent" in the URL.

Tags: opml, wordpress, plugin

08/14/13; 04:51:36 PM

My fave band's new single. The album drops October 8.

Tags: video

08/13/13; 02:28:01 PM

I'm so proud of myself. Can't tell you how much obsession and trial-and-error it took to get this to work.

08/12/13; 03:15:18 PM

No plot summary here, just reporting that I maintain a "positive sentiment" about this movie 24 hours after viewing.

It wasn't too thrilling or creepy or funny or touching, but had enough of all these elements in just the right combination that I felt good coming out of the theater.

I've seen just about every sci-fi or comic book movie (except for Man of Steel) this summer. Iron Man left me feeling empty, Wolverine was too confusing. The highlight was Star Trek, and Elysium comes in second. I actually want to see it again, even though there were no box-in-a-box plot twists. A straightforward "fight to reach the goal" or "find what you are made of" film can be good -- it's all in the execution.

08/10/13; 05:03:00 PM

If you're writing a post that you're publishing to WordPress (or as type=html from a named outline) and want to wrap blockquotes around the complete text of a headline, add this to your Scripts menu:

  • blockquote

    • op.setLineText ("<blockquote>" + op.getLineText () + "</blockquote>");

This script will transform

  • A person who never made a mistake never tried anything new.

to

  • <blockquote>A person who never made a mistake never tried anything new.</blockquote>

Just put your cursor on the headline and choose the script. Highlighting a portion of the text won't do anything -- the entire headline is always surrounded by the tags.

Visit the Fargo scripting page in the docs to learn how to install this script, or watch this video.

In response to Frank McPherson.

08/09/13; 12:22:52 PM

This script builds on the one I offered yesterday. Click on the wedge to see changes, or read the full description below.

  • Creates an Archive headline at the bottom of an outline if it does not already exist.

  • You can apply this script to any headline no matter how nested it is, which means that you can apply it to actions within a project or sub-project. When you archive it, all its children are carried over with it.

  • When you mark a headline complete, an attribute called "completed" is added with the current date and time. You will not see this information in the headline, but you can see it by clicking on the in the left rail of Fargo.

If you have an outline with to-do items (no matter how nested they are within higher-order headlines), this script does the following:

  • Choose "todoArchive" from your Scripts menu to add an empty checkbox when you first enter the action item.

  • When you've completed the item, choose "todoArchive" to add a checkmark to the headline.

    • When you mark a headline complete, an attribute called "completed" is added with the current date and time. You will not see this information in the headline, but you can see it by clicking on the in the left rail of Fargo.
  • If you don't want to see the completed item anymore, choose "todoArchive" to archive it.

    • If the final first-order headline in your outline is called "Archive," the completed item will become a child of this headline.

    • If the final first-order headline in your outline is not called "Archive," one will be created, and the completed item will become a child of this headline.

    • When the item is archived, the "Archive" headline will automatically collapse. You will need to expand it if you want to see all your archived items.

  • If your headline has any other icon value associated with it (e.g., ), "todoArchive" will do absolutely nothing to it.

  • Your outline would look something like this:

    • incomplete to-do item

    • completed to-do item

    • Archive

You can view the OPML here.)

Visit the Fargo scripting page in the docs to learn how to install this script, or watch this video.

08/07/13; 09:10:28 AM

An updated version of this script with more bells and whistles can be found here.

If you have an outline with only a simple list of single action to-do items (i.e, no headlines with child nodes) and an Archive headline at the very end of your outline, this script does the following:

  • Choose "todo" from your Scripts menu to add an empty checkbox when you first enter the action item.

  • When you've completed the item, choose "todo" to add a checkmark to the headline.

  • If you don't want to see the completed item anymore, choose "todo" to make the headline a child of the Archive headline.

  • If your headline has any other icon value associated with it (e.g., ), "todo" will do absolutely nothing to it.

(If you do not see a github embed above, please refresh this page or get the raw code here.)

Your outline would look something like this:

  • incomplete to-do item

  • completed to-do item

  • Archive

If you expand the Archive headline, you will see your completed items.

Visit the Fargo scripting page in the docs to learn how to install this script, or watch this video.

08/06/13; 10:07:52 AM

I've been seriously geeking out on the internet since about 2001, when I built my first web page. Since then, I've learned enough HTML, CSS and PHP to "get by" as someone who runs a popular blog on WordPress. I pretty much only pick things up when I have to, i.e., when I want to add some look or functionality to my site but don't want to pay someone else to do it for me.

A year ago, I downloaded a free PHP manual onto my Kindle, and finally developed a simple web app using a CURL module. I learned what I needed to by looking stuff up online to solve my own problem.

Now that I'm playing around with Fargo verbs and writing my own scripts, I'm finding it not too challenging. With some basic PHP knowledge under my belt, I've just had to look up minor syntactical differences in javascript.

  • Because I already know about concepts like string replace and if-else, I know what's possible and just have to look at how it's done in a different language.

However, when I look at scripts written by real programmers, I am at a loss. I feel like someone who has taken a semester of French and gone abroad, only to understand 5-10% of what anyone is talking about.

When this happens, I hit a roadblock. I don't really want to sit down and formally read a manual on javascript. I have written what I've written for Fargo because it's fun. The moment it stops being fun, when it starts to feel like homework, I resist. It's one thing to go overcome a lack of knowledge because I feel inspired enough to search for a solution to a legitimate problem (or am just plain curious). It's another to study a language methodically because I feel I need to "catch up" with some Ideal Level of Competency.

Producer vs. Developer

I've been working in digital since 2006, mostly doing editing and web production. I love dabbling in programming, but I don't know if I'll ever make the transition to programmer or developer. It seems like a quantum leap is required to move from hobbyist to professional, and I don't know if I have the mind or the desire to make that jump.

  • Maybe out of economic necessity: if I am ever "made redundant" via technology or outsourcing, I would have to do what it takes to become more marketable in the workplace. As much as I'd love to earn a higher salary now, I feel too complacent to develop professional programming skills while I currently have a job.

Comment below: If you're a programmer, how did you "make the leap" or were you always doing this? And if you're a dabbler, how do you feel about coding-as-hobby?

08/05/13; 02:38:24 PM

When I'm moving a node around with the keyboard shortcuts and "move right" to make it a child of a collapsed headline, that headline expands and the node ends up at the bottom of the list. To collapse the parent headline, I need to either mouse up to it and click on it, or use the arrow keys to navigate to the parent. And if I'm in structure mode (where the headlines are highlighted), then I need to arrow left once I've reached the first child of the parent node. This script allows you to collapse the parent node just by choosing Collapse Parent from your scripts menu.

You can also append these three lines to another script if you've used the op.reorg verb to do something like move a child node to the next parent's house.

  • Collapse Parent

    • op.go (left, 1);

    • op.collapse ();

Visit the Fargo scripting page in the docs to learn how to install this script, or watch this video.

08/02/13; 08:49:49 AM

This simple script takes a child node and moves it to the next "immediate parent" headline.

Before:

After:

Before:

After:

What it's useful for:

  • If you have a first-order headline called "Bills Due" and a first-order headline called "Bills Paid" below it, once you've paid a bill (designated as a child of the "Bills Due" headline), you can move it directly to the bottom of the list of "Bills Paid" without using navigation keys.

Visit the Fargo scripting page in the docs to learn how to install this script, or watch this video.

(There should be a github embed above this line. If not, please reload this page or get the raw code here.)

08/01/13; 11:03:31 AM

This script does the following:

  • decimal

  • On a dedicated page in an outline (it doesn't have to be "named"), create a headline, like the title of an article. (I'm doing it here.)

  • With the cursor on that headline, choose TweetBlog from the Scripts menu.

  • A dialog box asks for an URL. Enter the link and hit OK.

  • The script adds a type=link attribute to your headline and adds the link to the url attribute. It opens a new window with the headline text and the URL pre-populated in a tweet (you have to hit the &url=http://<%httpHost%><%httpPath%>>tweet me button to send).

  • The script inserts the date above the headline ("Posted: Thu Aug 01 2013"), adds a Twitter icon to it, then goes back to the headline and indents it.

Visit the Fargo scripting page in the docs to learn how to install this script, or watch this video.

(There should be a github embed above this line. If not, please reload this page or get the raw code here.)

If you don't want to tweet the link, just remove the line that starts with window.open.

08/01/13; 09:40:23 AM

Last built: Tue, Mar 31, 2015 at 2:05 PM

By Jeffrey Kishner, Thursday, August 1, 2013 at 9:25 AM.