Advertise with Googlier.com WordPress – alexking.org https://alexking.org Alex King, Denver Web Developer Tue, 25 Aug 2015 21:03:54 +0000 en-US hourly 1 197438836 Request: Alex King Rememberances https://alexking.org/blog/2015/08/24/rememberances https://alexking.org/blog/2015/08/24/rememberances#comments Mon, 24 Aug 2015 21:01:30 +0000 https://alexking.org/?p=22017 Dear WordPress community,

My apologies for the selfish and personal nature of this post. I hope you will forgive me given the circumstances. As most of you know, I was diagnosed with stage 4 colon cancer in 2013.

One of the things my wife and I are trying to do is put together some information about my career that will hopefully give my 6 year-old daughter a better sense of who I was as an adult. She knows me as “dad”, but when she gets older she’ll be curious about who I was to my peers and colleagues.

I’ve spent more than a decade in the WordPress community and I’d like to request that you to share a few thoughts or remembrances about me that we can compile and share with her when the time is right.

If we have crossed paths or if I have managed to do something that you found helpful, I’d love it if you would take a few minutes to write it down and send it to me or my wife: heatherkingcom@gmail.com. If you’re willing to have the story shared publicly, please indicate that accordingly. By default, we will keep everything confidential.

This post is part of the thread: Cancer – an ongoing story on this site. View the thread timeline for more context on this post.

]]>
https://alexking.org/blog/2015/08/24/rememberances/feed 142 22017
Personal WordPress Theme https://alexking.org/blog/2015/08/22/personal-wordpress-theme https://alexking.org/blog/2015/08/22/personal-wordpress-theme#comments Sat, 22 Aug 2015 19:11:51 +0000 https://alexking.org/?p=21662 I’ve forked the FavePersonal theme to release a few changes that I’ve made to it for my own site.

  1. An improved Gallery feature, including support for WordPress shortcode galleries. If you’re uploading photos directly to your gallery post, you can use drag and drop to set the order for them now.
  2. The Post Formats admin UI is now responsive and works great on mobile devices.
  3. Remove the Social plugin from the theme (requested by WP.org) – it can still be installed separately.
  4. Make tons of misc. code changes to match new coding standards vs. previous coding standards (and pass the theme check).

Gallery

I was originally hoping to have the modified theme hosted on WordPress.org but after weeks of waiting for review, they responded that features of the theme like choosing colors and post formats should be done in separate plugins instead. This makes no sense to me as these are core features of the theme, but happily there are great places like GitHub that will host the project for us.

The Personal theme is quite assuredly mobile-friendly, which makes it a great fit for the importance Google’s is placing on mobile-friendly sites lately.

You can download from the releases page on GitHub or, for you technically minded, grab the reop with git. Just make sure to also grab the submodules.

git clone git@github.com:alexkingorg/wp-personal.git
cd wp-personal
git submodule update --init --recursive

This post is part of the project: Personal Theme. View the project timeline for more context on this post.

]]>
https://alexking.org/blog/2015/08/22/personal-wordpress-theme/feed 8 21662
More micro-blogging workflows http://www.manton.org/2015/06/more-quick-blogging-workflows.html https://alexking.org/blog/2015/06/28/micro-blogging-workflows#comments Mon, 29 Jun 2015 01:53:43 +0000 http://pinboard-2097310c4ccd2c9bdaac738aaa90b519 #

]]>
Manton writes about a few workflows here the follows it up with the post I’ve linked to.

FWIW I’ve posted to my own site first then passed stuff along to Twitter and Facebook since we released the Social plugin for WordPress back in 2011. Each of my posts has a link to its counterpart on Twitter and Facebook, and reactions on those networks are brought back in as comments on this site. Special handling is done to thread comments based on Twitter’s reply_to property, as well as a retweets, etc. More details about how this works can be found in the blog post I wrote back in January on the Crowd Favorite blog.

When I’m mobile, I’ve found that using the WordPress admin web interface is better for my needs than the iOS app. Mainly because of additional post meta that I utilize on this site.

#

]]>
https://alexking.org/blog/2015/06/28/micro-blogging-workflows/feed 1 21906
Setting the wp_remote_get() User Agent https://alexking.org/blog/2015/04/23/user-agent-wp_remote_get https://alexking.org/blog/2015/04/23/user-agent-wp_remote_get#comments Fri, 24 Apr 2015 00:19:48 +0000 https://alexking.org/?p=21651 20,   'User-Agent'…]]> I was recently trying to make some API requests from within WordPress using `wp_remote_get()`, but the site I was asking for data from was rejecting requests from the default WordPress User Agent. I tried to set the user agent to something different, but it still wasn’t working:

$response = wp_remote_get($url, array(
  'timeout' => 20,
  'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0'
));

Thankfully, Otto spotted my problem. The `user-agent` key needs to be lowercase so that it is picked up properly by the WordPress core code. This works:

$response = wp_remote_get($url, array(
  'timeout' => 20,
  'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0'
));

And there you have it. It’s always nice to have an extra set of eyes on some code.

]]>
https://alexking.org/blog/2015/04/23/user-agent-wp_remote_get/feed 1 21651
In Praise of BackupBuddy https://alexking.org/blog/2015/03/15/backupbuddy https://alexking.org/blog/2015/03/15/backupbuddy#comments Sun, 15 Mar 2015 20:05:14 +0000 https://alexking.org/?p=21405 I’m thrilled with my new hosting set-up for this site, however WebFaction doesn’t offer daily backups. I knew could spend the time to write a little script to export my database and pass it along to another storage location, but then I thought of BackupBuddy from iThemes.

5 minutes later I had BackupBuddy installed, with a nightly job configured to do a full export of my database and store the last 10 days of backups in my Dropbox account.

Sure, I could have written the code to do this myself. It’s always tempting to do-it-yourself when you know you can do something. The key is to ask yourself if you should do something. It would have taken much more than 5 minutes to get even a simple backup script written and configured; and I definitely wouldn’t have had the storage and and automation options that BackupBuddy provides out of the box.

If you need hassle-free backups for your self-hosted WordPress site1, give BackupBuddy a try.


  1. If you have a website, please make sure you have an automated backup system, and that you’ve tested your backups to make sure they actually work. ↩
]]>
https://alexking.org/blog/2015/03/15/backupbuddy/feed 19 21405
Add a Preview Button to WordPress’ Distraction-Free Writing Mode https://alexking.org/blog/2014/12/30/wordpress-distraction-free-preview-button Tue, 30 Dec 2014 23:14:42 +0000 https://alexking.org/?p=21220 screenshot

When the distraction-free writing mode was overhauled in WordPress 4.1 my little Preview Button plugin was rendered non-functional. Never fear, it’s now been updated and works a treat.

This post is part of the project: Fullscreen Preview Button. View the project timeline for more context on this post.

]]>
21220
No WordCamp SF 2014 For Me https://alexking.org/blog/2014/10/24/no-wordcamp-2014-for-me https://alexking.org/blog/2014/10/24/no-wordcamp-2014-for-me#comments Fri, 24 Oct 2014 16:21:45 +0000 https://alexking.org/?p=21026 Unfortunately I’m not going to be able to attend WordCamp SF 2014. My apologies to those who I was planning to meet up with. I’ll miss seeing you folks there – but have fun and do great work!

]]>
https://alexking.org/blog/2014/10/24/no-wordcamp-2014-for-me/feed 13 21026
WordPress vs. a Roll-Your-Own Blog Engine https://alexking.org/blog/2014/10/14/do-you-need-a-new-blog-engine https://alexking.org/blog/2014/10/14/do-you-need-a-new-blog-engine#comments Tue, 14 Oct 2014 15:10:32 +0000 http://pinboard-9c824ddfe7946cbde24dbe9eb552eb42 Inspired by Brent’s consideration of an off-the-shelf blog engine, Santiago Valdarrama has written a post outlining the problems he has with off-the-shelf blog engines. What was so interesting to me about this was that a self-hosted WordPress site addresses nearly every one of his concerns.

1) You don’t have to deal with updates to the platform. Updates and new features are nice, unless they break all the custom code you’ve developed over time.

WordPress has well abstracted APIs that make it easy for your custom code to live alongside the WP core code. I can’t remember the last time I needed to make a change to code I’d written for this site because of a WP core update.

2) You can’t control when bugs are fixed or new features released. If there’s something missing, the only thing you can do is file a request and wait.

Fiddlesticks. You can submit a patch, you can hack your local copy, and you can write plugins to add any features you feel are missing.

3) There’s always a learning curve. Every platform is different, specially when you want to fine tune your layout and deviate from the provided templates.

This one strikes me as a bit silly. There is a learning curve when building your own system too – especially if you haven’t written your layout/templating system yet.

4) Sometimes there’re things you can’t do. Period. (I wanted to use a specific format to display the date of my posts but Blogger doesn’t support it. I had to settle with something else.)

Using a hosted service and using an off-the-shelf blog engine are not the same thing. Self-hosting WordPress removes all of the hosted service restrictions.

5) You have to deal with features you don’t need. Comments? Related posts? Search? Templating engine? Image carousel? I don’t need these, but I’d have to pay the price anyway.

Just as you can customize WordPress to add features, you can also customize it to hide features. Don’t use comments? An included setting and couple of lines of CSS will make it so you never know they were there. And WordPress doesn’t include bloated features out of the box; it wisely leaves that to plugins so that you add what you want instead of removing things you don’t.

6) You can always export your content (sometimes you can’t), but even when the option is right there, the exported format is so messed up that you can’t use it again without a huge clean up. (One time I got my posts exported in a text file with no formatting.)

Again – this is only a problem with hosted solutions. With a self-hosted WordPress site you have full access to your MySQL database, as well as the built-in export features of WordPress.

7) What’s true today might change tomorrow. What you like about the platform might go away some day. They won’t ask for your opinion.

WordPress is Open Source. Anyone can create a fork based on their own needs and preferences.

8) It will never be as fast as you want it to be. If it’s hosted, your traffic will be shared. If you host it yourself, you might never be able to fine tune it to perfection.

WordPress powers around 20% of the internet – you don’t grow that big if you can’t handle scale. Dedicated WordPress hosts will solve these problems for you, and installing a few simple plugins (caching, CSS and JS concatenation and optimization, etc.) will do a ton to optimize a site on an server that isn’t tuned for WordPress.

9) I will never be sure what my content is being used for. I know it’s public anyway, but it’s also in somebody else’s database I don’t control.

Another assumption of a hosted platform. NA for a self-hosted WordPress site.

10) You’ll never get to experience the satisfaction of engaging in a conversation about how you developed your own platform from scratch.

As someone who has hacked on WordPress and related code for the last 12 years, I find this statement absurd. There are plenty of “from scratch” opportunities within the WordPress community, even now. And if what you want is engagement then joining a bountiful and vibrant community of developers is a much bigger opportunity than the potential for a conversation with another NIH hacker.

I’m not saying that there is anything wrong with building your own X. Every time you do that it’s a great learning experience. I’m saying I don’t think it is necessary to get pride of ownership.

There might be something out there that offsets all my concerns, I’m not sure (but I don’t believe so.) My blog is my hobby, and I think I’d never give control again. Every single bit you see here was a labor of love, and I’m not ready to stop thinking about it that way.

I think a self-hosted WordPress site is really close. And I feel exactly the same about my site – it’s mine and I am in control of it. Even though I’ve released much of the code for this site as Open Source, no one else has a site that’s exactly like mine. I’ve made the decisions about how to present my content, how to distribute it to Twitter and Facebook, how to integrate with the responses on those platforms, and how I represent myself online. And I do so while building on a robust base platform that allows me to concentrate on building just the features that are unique to my site.

]]>
https://alexking.org/blog/2014/10/14/do-you-need-a-new-blog-engine/feed 43 20964
The Race to the Bottom Benefits Platforms (not Developers) https://alexking.org/blog/2014/08/12/race-to-bottom-platforms https://alexking.org/blog/2014/08/12/race-to-bottom-platforms#comments Tue, 12 Aug 2014 21:53:56 +0000 https://alexking.org/?p=20713 There’s been a ton of recent conversation in the iOS world about the inability for most indie developers to create sustainable businesses through the iOS app store. In particular, these devs are talking about apps that require larger development efforts – they want to charge more than “impulse purchase” prices for these, and thus want trials, upgrade pricing, etc. to support that model. They want things to work they way they always have – I don’t blame them.

I think it’s worth considering who wins in this “race to the bottom”. In general, more stuff for free benefits consumers, which in turn benefits the platform.

“But wait!” the developers cry. “When the platform doesn’t support building more sophisticated apps, the consumers ultimately lose!” I know this argument, I’ve made it myself regarding the WordPress ecosystem. I was wrong.

Consumers have been well trained that they can expect incredible value for free. Sure, they may trade off their privacy and be subjected to ads, but they aren’t asked to fork over their cash directly.

VC-backed companies often contribute to the problem as well. As they clamor for users to their platforms, they give everything away – it’s so easy to flip the switch in the future and start the money pouring in. Or if that doesn’t work, they fold up shop and call it a day. Oops!

More complex apps will get made. They just won’t be built using the model that indie developers are used to.

There will be apps supported by alternative revenue streams. Some might have ads or sponsorships, some might mine and sell the data they produce, some (like Evernote and Dropbox) will be a gateway to a commercial service. People will figure out ways to get money out of a large enough user base, and apps will get built.

I’ve seen this happen in the WordPress ecosystem already. It’s a different beast because it’s an Open Source community, but it’s still an interesting parallel.

Basically this happened:

  1. A bunch of folks built stuff and released it all for free to a small community, largely consisting of fellow developers and tinkerers
  2. A whole bunch more folks started using the platform and the community grew – it wasn’t just developers anymore, it was end users with expectations of support, etc.
  3. Devs wanted to start monetizing the products they were providing
  4. The platform didn’t provide the tools to make money in the way that the devs wanted -instead it invested in tools to promote free products
  5. Eventually a variety of patterns arose to monetize both commercial and “free” products (subscription clubs with access to a bunch of different plugins/themes, free products with commercial add-ons, sponsorships and ads, products that were created to support hosting services, etc.)

It’s not the :scare: pure :/scare: and direct approach of charging directly for the software, but it’s still developers writing code and making money.

The same thing is happening for iOS. There is money to be made. The platform and consumers are winning.

“Adapt or die” is our mantra for those business who are threatened by technology. We have little sympathy for newspapers, the music industry, etc. Perhaps it’s time to include software companies in that list.

]]>
https://alexking.org/blog/2014/08/12/race-to-bottom-platforms/feed 57 20713
Custom Taxonomy as “Post Meta” https://alexking.org/blog/2014/07/09/custom-taxonomy-as-post-meta https://alexking.org/blog/2014/07/09/custom-taxonomy-as-post-meta#comments Wed, 09 Jul 2014 21:33:02 +0000 https://alexking.org/?p=14416 I found this post while sorting through my old drafts and decided to go ahead and publish it rather than trashing it. Hopefully the code samples don’t break too badly in WordPress 3.9.

I’ve talked a bit about when to use custom taxonomies and when to use custom fields/post meta (and how they can be used virtually interchangeably in some situations). If you want to use taxonomies, you’ll probably also want to:

  • make sure that the terms you want to use exist in your custom taxonomy
  • limit the ability for these terms to be altered

This Gist is a good start:


<?php
// check for a term and insert it if it doesn't exist
if (!get_term_by('slug', $term_slug, $taxonomy)) {
wp_insert_term(__($term_name, 'localization-key'), $taxonomy, array(
'slug' => $term_slug
));
}


// remove all functionality from hierarchical taxonomy UI box (other than term selection)
// *and* convert the checkboxes to radio buttons to enforce single selection (this is untested)
$('#taxonomy-' + yourTaxonomyName)
.find('.category-tabs, div:not(".tabs-panel")').remove().end()
.find('.tabs-panel').removeClass('tabs-panel').end()
.find('input[type="checkbox"]').attr('type', 'radio');


// remove all functionality from hierarchical taxonomy UI box (other than term selection)
$('#taxonomy-' + yourTaxonomyName)
.find('.category-tabs, div:not(".tabs-panel")').remove().end()
.find('.tabs-panel').removeClass('tabs-panel');

You’ll probably also want to specify:

'public' => false,
'show_ui' => true,

when defining your custom taxonomy. This makes the UI box for the taxonomy appear in the post/page editing interface as expected, but hides the admin forms for editing the taxonomy terms from the admin menu.

]]>
https://alexking.org/blog/2014/07/09/custom-taxonomy-as-post-meta/feed 19 14416
Colorado Mountain College http://crowdfavorite.com/blog/2014/06/colorado-mountain-college/ Sun, 29 Jun 2014 14:43:57 +0000 http://pinboard-6a441a20794027d4fda7576beaba4e6e #

]]>
A pretty cool case study we released last week on creating a WordPress-powered website for Colorado Mountain College.

This post is part of the thread: Crowd Favorite – an ongoing story on this site. View the thread timeline for more context on this post.

#

]]>
20306
WordCamp Miami https://alexking.org/blog/2014/06/29/wordcamp-miami https://alexking.org/blog/2014/06/29/wordcamp-miami#comments Sun, 29 Jun 2014 14:04:52 +0000 https://alexking.org/?p=20084

More than a little overdue, but better late than never – here are some photos from WordCamp Miami 2014. The full set is up on Flickr.]]>

More than a little overdue, but better late than never – here are some photos from WordCamp Miami 2014. The full set is up on Flickr.

]]>
https://alexking.org/blog/2014/06/29/wordcamp-miami/feed 18 20084
Here’s Crowd Favorite’s own Brandon Dove at the … https://alexking.org/blog/2014/06/07/20175 https://alexking.org/blog/2014/06/07/20175#comments Sat, 07 Jun 2014 17:45:55 +0000 https://alexking.org/?p=20175 Here’s Crowd Favorite‘s own Brandon Dove at the WordCamp Orange County golf tournament yesterday. ]]>

Here’s Crowd Favorite‘s own Brandon Dove at the WordCamp Orange County golf tournament yesterday.

]]>
https://alexking.org/blog/2014/06/07/20175/feed 12 20175
WP Think Tank http://wpthinktank.com/ Fri, 23 May 2014 19:06:12 +0000 http://pinboard-b4e23d3131f07e6b6d79af0c08d62a81 #

]]>
I will be participating in the WP Think Tank round table discussion next Thursday. The panel group is fantastic – I’m quite looking forward to it.

#

]]>
20106
Crowd Favorite is Hiring https://alexking.org/blog/2014/05/21/crowd-favorite-is-hiring https://alexking.org/blog/2014/05/21/crowd-favorite-is-hiring#comments Wed, 21 May 2014 18:03:41 +0000 https://alexking.org/?p=20090 We’ve got a ton of great stuff going on at Crowd Favorite right now. We are hiring for front and back end web developers, and we just put out a call for junior developers.

While our first preference is to continue expanding our offices in Denver, Los Angeles (and Orange County), Las Vegas and Bucharest, we’re also considering remote candidates. The exception is for the junior developer position, we’re only considering candidates at our offices for that position so that we can more easily provide support and mentorship.1 We have a great developer-centric culture that embraces learning, sharing and best practices – come join us!

We’ve also updated our RAMP and Carrington Build WordPress products this week. RAMP handles selectively pushing content from your staging to your production environment while Carrington Build provides drag-and-drop editorial control for your high value pages.

If you’re thinking all this activity explains the lack of recent blog posts here, I won’t argue with that conclusion. 🙂


  1. I expect we’ll get good enough at this to support remote junior developers well in the future, but we’re not there yet. ↩

This post is part of the thread: Crowd Favorite – an ongoing story on this site. View the thread timeline for more context on this post.

]]>
https://alexking.org/blog/2014/05/21/crowd-favorite-is-hiring/feed 8 20090