🔖 Post filtering fixes at Homebrew Website Club | Colin Devroe

Post filtering fixes at Homebrew Website Club by Colin Devroe (cdevroe.com)
Last night Tucker Hottes, Den Temple and I held the first Homebrew Website Club at The Keys in Scranton, PA. I really appreciate that HWC will force me to set aside some time to work on my personal site since it is often neglected for more pressing projects.

Nota bene: Colin is dogfooding his IndieWeb friendly WordPress theme on Github! It’s a beautiful, simple, and very clean theme for a personal website/blog.

Colin, do you mind if we provide a link to your theme on https://indieweb.org/WordPress/Themes for others to potentially use and/or improve upon? (See also discussion at https://indieweb.org/WordPress/Development#Themes.)

Syndicated copies to:

Sage vs Underscores

Sage vs Underscores | WordPress Starter Themes (Roots)
Sage makes you a better developer. Modern build tooling, live reloading, modern PHP & requirements, DRY templates with template inheritance and more.

Modern front-end workflow

If Underscores is a “1,000 hour head start”, Sage is a 10,000 hour head start.

Write stylesheets with Sass, automatically check your JavaScript for errors, optimize images, enable synchronized browser testing, and more with our gulp setup.

Syndicated copies to:

My reply to Micro.blog Project Surges Past $65K on Kickstarter, Gains Backing from DreamHost | WordPress Tavern

Micro.blog Project Surges Past $65K on Kickstarter, Gains Backing from DreamHost by Sarah Gooding (WordPress Tavern)
With one week remaining on its Kickstarter campaign, the Micro.blog indie microblogging project has surged past its original $10K funding goal with $66,710 pledged by 2,381 backers. This puts proje…

I love that Micro.blog is doing so well on Kickstarter! I’m even more impressed that DreamHost is backing this and doubling down in this area.

I coincidentally happened to have a great conversation yesterday with Jonathan LaCour before I saw the article and we spoke about what DreamHost is doing in the realm of IndieWeb and WordPress. I love their approach and can’t wait to see what comes out of their work and infectious enthusiasm.

I’m really surprised that WordPress hasn’t more aggressively taken up technologies like Webmention, which is now a W3C recommendation, or micropub and put them directly into core. For the un-initiated, Webmention works much like @mention on Twitter, Medium, Facebook, and others, but is platform independent, which means you can use it to ping any website on the internet that supports it. Imagine if you could reply to someone on Twitter from your WordPress site? Or if you could use Facebook to reply to a post on Medium? (And I mean directly and immediately in the type @mention/hit publish sense, not doing any laborious cut and paste from one platform to another nonsense that one is forced to do now because all the social silos/walled gardens don’t inter-operate nicely, if at all.) Webmention can make all that a reality.  Micropub is a platform independent spec that allows one to write standalone web or mobile apps to create publishing interfaces to publish almost any type of content to any platform–think about the hundreds of apps that could publish to Twitter in its early days, now imagine expanding that to being able to use those to publish to any platform anywhere?

While Twitter has been floundering for a while, WordPress has the structure, ecosystem, and a huge community to completely eat Twitter’s (and even Facebook/ Instagram’s, Medium’s, & etc.) lunch not only in the microblog space, but the larger space which includes blogging, photos, music, video, audio, and social media in general. The one piece they’re missing is a best-in-class integrated feed reader, which, to be honest, is the centerpiece of both Twitter and Facebook’s services. They seem to be 98% readers and 2% dead-simple posting interface while WordPress is 98% posting interface (both more sophisticated/flexible and more complicated), and nearly non-existent (and unbundled) reader.

WordPress has already got one of the best and most ubiquitous publishing platforms out there (25+% of the web at last count). Slimming down their interface a tad to make it dead simple for my mom to post, or delegating this to UX/UI developers with micropub the way that Twitter allowed in the early days with their open API and the proliferation of apps and interfaces to post to twitter, in addition to Webmentions could create a sea-change in the social space. Quill is a good, yet simple example of an alternate posting interface which I use for posting to WordPress. Another is actually Instagram itself, which I use in conjunction with OwnYourGram which has micropub baked in for posting photos to my site with Instagram’s best-in-class mobile interface. Imagine just a handful of simple mobile apps that could be customized for dead-simple, straightforward publishing to one’s WordPress site for specific post types or content types…

With extant WordPress plugins, a lot of this is already here, it’s just not evenly distributed yet, to borrow the sentiment from William Gibson.

For just a few dollars a year, everyday people could more easily truly own all their content and have greater control over their data and their privacy.

I will note that it has been interesting and exciting seeing the Drupal community stepping on the gas on the Webmention spec (in two different plugins) since the W3C gave it recommendation status earlier this month. This portends great things for the independent web.

I haven’t been this excited about what the web can bring to the world in a long, long time.

Syndicated copies to:

10 Fantastic Free WordPress Plugins for 2017 (That You May Not Have Heard Of) | @thetorquemag

10 Fantastic Free WordPress Plugins for 2017 (That You May Not Have Heard Of) by John Hughes (Torque)
There are so many plugins out there it can be hard to find really good ones. These ten free WordPress plugins add interesting capabilities.

When it comes to WordPress plugins, some big names get all the glory (we’re looking at you, Yoast SEO), while others languish in semi-obscurity. Considering there are thousands of plugins available for the platform, you could be missing out on some amazing tools by limiting yourself to the most popular options. Continue reading “10 Fantastic Free WordPress Plugins for 2017 (That You May Not Have Heard Of) | @thetorquemag”

A WordPress plugin for posting to IndieNews

WordPress IndieNews by Matthias Pfefferle (github.com)
Automatically send webmentions to IndieNews

I just noticed that Matthias Pfefferle has kindly created a little WordPress plugin for posting to IndieNews.

Syndicated copies to:

Jetpack 4.5: Monetize your site, brand new VideoPress, and many new shortcodes and widgets | Jetpack for WordPress

How 1995! JetPack v4.5 now has a widget for “blog stats: a simple stat counter to display page views on the front end of your site.”

Welcome to Jetpack 4.5, available now for upgrade or installation. We’re starting the year in style with some very exciting additions and improvements that we can’t wait for you to try. This release includes:

  • Jetpack Ads (WordAds)
  • Brand new VideoPress
  • New shortcode support
  • More sidebar widgets
  • An update to our Terms of Service

Continue reading “Jetpack 4.5: Monetize your site, brand new VideoPress, and many new shortcodes and widgets | Jetpack for WordPress”

RSSCloud For WordPress | Joseph Scott

RSSCloud For WordPress by Joseph Scott (blog.josephscott.org)(Duration: P)

RSSCloud support has been enabled on all WordPress.com blogs. If you are running a WordPress.org powered blog you can do the same thing with the RSSCloud plugin.

So what does this really mean?

From the point of view of WordPress and this plugin there are three main additions:

  1. Adds the element to your RSS2 feed (more details here and here) which tells clients where and how to sign up for notification requests.
  2. Registers a URL handler with WordPress to process the notification signups.
  3. Sends out notification updates when a new post is published.

The cloud element looks like this:

The domain, port and path attributes combined to form a URL, http://josephscott.org:80/?rsscloud=notify in this case, where others sign up for notifications. The registerProcedure attribute is the XML-RPC method to be called if the protocol attribute was xmlrpc. Since the plugin uses http-post for the protocol the registerProcedure field is blank.

Using this same example here is a small chunk of PHP code that uses the cURL library to sign up for notifications:

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, 'http://josephscott.org/?rsscloud=notify' );
curl_setopt($curl, CURLOPT_POSTFIELDS, 'notifyProcedure=&protocol=http-post&port=80&path=/~joseph/rsscloud/&url1=http://josephscott.org/feed/' );
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_POST, 1);

curl_exec( $curl );
print_r( curl_getinfo( $curl ) );
curl_close( $curl );

This code sends an HTTP POST request to http://josephscott.org/?rsscloud=notify asking to get a notification when the http://josephscott.org/feed/ feed is updated. The notification is to be sent to the remote IP used in the request (this means notification requests must be sent from the IP that will be receiving the notifications), port 80 with a path of /~joseph/rsscloud/ and it will be given the update data via an HTTP POST. The notification script will get $_POST data that looks like:

   [url] => http://josephscott.org/feed/

It is then up to notification script to turn around fetch the updated feed.

How fast does all this happen?

It depends 🙂

On WordPress.com the notifications happen through the jobs system, which means it will be sent out very, very quickly. On a WordPress.org powered blog with the plugin it schedules notifications to get sent out as soon as possible with the wp_schedule_single_event( ) function. Scheduled events in WordPress are checked on each page load, so if you publish a new post and then view it on the front page of your blog the notifications will get sent out in pretty quick.

I think for most blogs these approaches will work fine and send out notifications with very little delay.

What does this mean for feed readers like Bloglines, Google Reader, etc.?

I believe that many (most?) public feed readers like Bloglines and Google Reader already listen for feed updates via pings (like those sent to Ping-O-Matic). With an RSSCloud enabled WordPress blog they can register for updates to specific feeds. Why would they do this if they are already getting ping updates? Unfortunately the ping updates are similar to email, they have massive amounts of spam in them. Since RSSCloud isn’t a stream of everything, but a specific request for specific updates they could sign up for updates to those feeds that they believe are more likely to be legitimate.

Signing up is simple for a feed reader (or anyone/thing) to do:

  1. Look for the element in the RSS feed
  2. Sign up for notifications using the data from the element
  3. Process notification that are sent to it from WordPress

Right now I believe the only feed reader that supports RSSCloud is Dave Winer‘s River2.

If you are working on RSSCloud support in your feed reader let me know, I’ll be watching the RSSCloud stats on WordPress.com. And of course if you run into problems with RSSCloud on a WordPress blog (ORG or COM) I’m happy to help track down any bugs in our implementation.

Source: RSSCloud For WordPress | Joseph Scott

Syndicated copies to:

rssCloud WordPress Plugin Update – 0.4.1 | Joseph Scott

rssCloud WordPress Plugin Update – 0.4.1 – by Joseph Scott (blog.josephscott.org)(Duration: P)

rssCloud WordPress Plugin Update – 0.4.1

Update – 5 Nov 2009:
These features are now available on WordPress.com as well – http://en.blog.wordpress.com/2009/11/05/rsscloud-update/

Version 0.4.1 of the rssCloud WordPress plugin is now available. The biggest change is adding support for the domain parameter in notification requests. This means that rssCloud updates processed by the plugin are no longer limited to being sent to the IP address that the request came from. Support for the domain parameter is live on WordPress.com as well.

When a domain parameter is included with a notification request the verification process does the following:

  • Sends an HTTP GET request to the {domain}:{port}{path} URL
  • That HTTP GET includes to pieces of data: url and challenge. The url field contains the URL of the feed that we’ll been sending pings about. The challenge field contains a random string of characters
  • The response back must have a status code of 2xx and the body must contain EXACTLY the contents of the challenge field. If both of those conditions are not met then the verification process will consider this a failure

For notification requests that have no domain parameter the verification process is unchanged from before.

Another item that some may find helpful is a new constant – RSSCLOUD_FEED_URL – if that is defined they it will be used as the feed URL of the blog instead of determining it via get_bloginfo( 'rss2_url' );. For plugin authors that provide options for an alternative feed URL note that can override the default in WordPress via the feed_link filter. That filter can be used instead of the RSSCLOUD_FEED_URL constant and will bubble up through the get_bloginfo( 'rss2_url' ); call.

Source: rssCloud WordPress Plugin Update – 0.4.1 | Joseph Scott

Social Importer Upgrade | Beau Lebens

Social Importer Upgrade by Beau Lebens (Beau Lebens Blog)(Duration: P)

Today I pushed some updates to:

  1. People & Places
  2. Keyring Social Importers

These updates make it so that the Twitter, Foursquare and Instagram importers are now dynamically identifying and indexing People and Places, and marking them with a taxonomy within WordPress. I’ve also added a new system for “reprocessing” old posts which Keyring imported, so that you can go back and perform some function on those posts without having to import them again. You’ll find reprocessing tools under Tools > Import > Reprocess Keyring Data.

Screen Shot 2017-01-08 at 9.50.45 PM.png

Reprocessing works by using the locally-stored copy of import data that is saved during the initial import of everything. The system is fully hookable, so you can add other reprocessing routines in via plugin. The core file comes bundled with one that attempts to address an old JSON-data-escaping issue, and I’ve added extensions to the importers listed above which allow you to go back and reprocess your posts for People/Places.

If you’re going to use them, I suggest you run the first one first, then you can run the others in any order you like. Doing the first one first will just make sure that as much of your data as possible is processable.

Screen Shot 2017-01-08 at 9.51.33 PM.png

It’s worth mentioning that if you use these reprocessors, they can take a while (especially if you have a lot of data already), and that they will likely create a lot of new data (in the form of People and Place terms being created in their respective taxonomies). After running all of them over all of my data, I have almost 1,800 People and just over 3,000 Places in my database.

The other tool added in this upgrade is the ability to merge terms, which becomes important with all of this data.

Screen Shot 2017-01-08 at 9.54.49 PM.png

When the importers are dynamically adding People and Places, they only match based on known identifiers. This means that you’re likely to end up with duplicate entries, especially if you’re processing multiple services (e.g. Foursquare and Instagram). Using the merge tool, you can browse through your entries and select 2 or more, then use the Bulk Actions drop-down to select “Merge” and hit “Apply”. Terms will be merged together as intelligently as possible, which basically means that the shortest slug of the group will be kept, and the longest strings for any conflicting fields will be kept. You can of course edit the resulting composite term afterwards and tweak things as you see fit. If you’re looking for a shortcut to identify duplicate entries, try searching for “-2”, which will give you a list of duplicates, then you’ll need to search for something that will bring up each of the dupes, select, merge, repeat. It’s a little bit tedious, but you’ll only need to do it once for each duplicate, and all future imports should match against the composite entry.

Oh, and one last thing — I threw in a quick map on the details page for Places, which provides a nice quick, visual confirmation that it’s the correct location. For now it’s using a very basic OpenStreetMap example, but I might switch it out to Leaflet at some point, which is pretty nice.

Screen Shot 2017-01-08 at 10.00.16 PM.png

Source: Social Importer Upgrade | Beau Lebens #

Syndicated copies to:

Getting data out of Medium

Getting data out of Medium by Kris Shaffer (pushpullfork.com)
Controlling my data is important to me. It’s also important that my students (and the faculty that I support) have the ability to control their own...

A prescient article written last fall before the news that Medium was downsizing significantly this week.

Getting data out of Medium

Kris Shaffer

Controlling my data is important to me. It’s also important that my students (and the faculty that I support) have the ability to control their own data, as well. That doesn’t mean that everything needs to live on a Domain of One’s Own. But it does mean that I want my data to be as flexible as possible, and as easy to move around as possible.
Continue reading “Getting data out of Medium”

Reply to Manton Reece: This morning I launched the Kickstarter project for Micro.blog. Really happy with the response. Thank you, everyone!

Manton Reece by Manton Reece (manton.org)

Manton, I’ve been following your blog and your indieweb efforts for creating a microblogging platform for a while. I’m excited to see your Kickstarter effort doing so well this afternoon!

As a fellow IndieWeb proponent, and since I know how much work such an undertaking can be, I’m happy to help you with the e-book and physical book portions of your project on a voluntary basis if you’d like. I’ve got a small publishing company set up to handle the machinery of such an effort as well as being able to provide services that go above and beyond the usual low-level services most self-publishing services might provide. Let me know if/how I can help.

Syndicated copies to: