(Chain) Automation

Two years seems like a long time when you look at it all at once, but “tomorrow” is right around the corner. It’s when I’m going to get to everything. When I’ll update. When I’ll write that next short. When I’ll finish editing Only Human. When I’ll outline Custom, Beyond the Wall, and the latest project which lacks a title. When I’ll finish that manifesto. When I’ll spend more time with loved ones. When I’ll retire.

There aren’t any more hours in the day today than there were yesterday, and there won’t be any more tomorrow than there were today. That means the only way to start getting ahead of the curve is to start actually doing things, not saying they’ll get done one day. I can’t and won’t rehash the last two years; most of you who would see this already know what’s happened, and the rest of you will figure it out from context or ask questions. The high-level rehash, though, is probably not out of order:

  • I got laid off from T-Mobile.
  • My relationship with Cube has entered the “it’s complicated” stage.
  • I got a new job at Amazon.
  • I’ve gotten seriously back into running conventions, working RainFurrest, Everfree, and Foolscap at various points of the year.
  • I’ve bought a house big enough to house the current contingent in the Station. β opens for service late March.
  • Cobalt moved out.
  • Timber moved in.
  • Timber announced his intent to move out.
  • Prancival came for a visit with an eye towards becoming our next Defense Against the Dark Arts professor roommate.
  • I’ve interviewed at Costco, but I don’t think they can afford me.
  • I’ve developed an anxiety reflex every time I look at Only Human that I’m trying to overcome.
  • I’ve come up with three other novel plans that I need to sit down and snowflake.
  • I’ve reconciled with my sister, Lurene.
  • I’ve taken up writing MLP:FIM fanfic trying to keep my paws busy to ease back into “being a writer.”

If there’s something on the list I’ve forgotten that somebody wants to call out, I’m open to add it to the list.

I’m nearing fortyχ. I’m not getting any younger, and that means that achieving my goals is going to have to be accomplished as much by working smarter as by working harder. One of those goals was to try to recreate the LiveJournal experience away from LiveJournal, for people who wanted a better solution. WordPress is clever, but it’s hard. It says it’s a five-minute install, but it lies; it’s a five-minute install if you’re enough of a sysadmin to muck with a database, or you have access to a sysadmin who can. I don’t mind being the latter, but I don’t do it well on demand. So… if I want to build a community of WordPress blogs with a common userbase, I’m going to have to provide better tools.

Fortunately, working at Amazon has taught me a few things about automation and building better tools. With that in mind, I’ve written a script that, I hope, should make the process of creating a WP blog on Prisma a little easier. I think I’ve reduced the necessary steps to make a blog down to this:

  1. Get or have a shell account on Prisma. If you don’t have one, email me and ask for it.
  2. Run the following command:
    /usr/local/bin/wordpress.pl --shortname <shortname> --dbuser <database username> --dbpass <database password>

    If you already have a WordPress blog on Prisma, then look at your existing user install to get your database username and password. If you don’t know where it is, or you just want a new database user and password, then tell the script to create a new one by using the “–dbcreate” flag. If your database username is already in use, or you have the wrong password, it will report an error. The database username and the wp_site username don’t have to match one another, but it will be less headache for me if they match. They don’t because I want to give people the freedom to create persona blogs with persona admin accounts. If you know you have a WordPress blog account, and you want to make it the admin account for your install, you can specify that account name using the –admin flag. If you don’t have one, or you don’t know if you have one, please leave it blank. It will default to me.

  3. Wait about ten minutes.
  4. Load http://<shortname>.prismaticmedia.com/ and finish your install.
  5. If you didn’t specify an administrative Prismatic blog account, contact me and ask me to load your site, finish the install, and create you a WordPress user to make the admin of your site. I will do so and give you administrative control of your blog, then have you remove me as an admin if you want.
  6. Go through the user lists on your own time and give all your existing users an access privilege that isn’t “None.” Yes, it’s tedious. I’m still working on automating this part. I’m sorry.

At this point, I have to apologize to people, and explain that there are now three things that could be your username if I ask you for your username:

  1. Your Prismatic Media shell account username. This is the account you use to access the server via ssh.
  2. Your Prismatic Media database username. This is the account you use to access the database once you’ve accessed the server via ssh. It’s also the account that your blogs will use to access the database.
  3. Your Prismatic Media WP account username. This is the account you use to log into any and all WordPress blogs that are hosted on Prismatic Media via the website.

These are, or can be, unique. This is intentional. If you want character blogs, I want to support character blogs. If you want them to have their own unique administrative access to the database, I don’t care. I’m not going to audit you and I’m not looking for who controls what. I just want to build a community again and I’m trying to give people the tools they need to do that.

From here, features will be added to the script as they’re requested, or new scripts will be added as they’re required, but if you’ve been waiting for a new blogging platform and I can help, here’s something for you to try. If it doesn’t work the way it’s advertised to work, please let me know what broke so I can try to get in and debug it for the next person. This is only going to get easier for people if I know things aren’t working, and I want them to work. I’ve tested this as well as I can given my current time and environment, but hopefully it’s a step in the right direction.

Once you have your site up and running, I strongly advise you look at the RoleScoper plugin; it’s the only one I’ve seen so far that supports authenticated RSS feeds separated by category, which is how I do my category-locked posts. It’s not quite as sophisticated as I want, but it’s a step in the right direction.

Three deep breaths; I’m still alive and brilliant.