Manton Reece
Archive Subscribe Photos About On this day Also on Micro.blog
  • IMG 3437
    → 6:28 AM, Jul 21
  • Test title

    This is a long post with a photo. This is a long post with a photo. This is a long post with a photo. This is a long post with a photo.

    → 1:25 PM, Mar 16
  • Testing.

    → 5:14 PM, Mar 13
  • Test title

    This is a long post test. This is a long post test. This is a long post test. This is a long post test. This is a long post test. This is a long post test. This is a long post test. This is a long post test. This is a long post test. This is a long post test. This is a long post test. This is a long post test. This is a long post test.

    → 4:26 PM, Jan 19
  • Testing.

    → 12:45 PM, Jan 7
  • Testing photos.

    → 10:27 AM, Dec 15
  • Testing photos.

    → 10:27 AM, Dec 15
  • Another post.

    → 10:38 AM, Dec 11
  • Another post.

    → 10:38 AM, Dec 11
  • Testing. 🎄

    → 2:41 AM, Dec 6
  • Testing. 🎄

    → 2:41 AM, Dec 6
  • → 1:21 PM, Dec 3
  • testing photos.

    → 1:19 PM, Dec 3
  • Quick test post.

    → 12:05 PM, Oct 10
  • Hello world. Caddy.

    → 8:09 AM, Aug 23
  • Testing.

    → 7:06 AM, Aug 19
  • Testing photos.

    → 7:41 AM, Aug 18
  • Hello world.

    → 8:52 AM, Aug 17
  • Alanis Morissette. Testing.

    → 10:43 AM, Aug 16
  • Walked around Mueller this morning. Working at Halcyon for a little while. ☕️

    → 1:57 PM, Aug 15
  • Walked around Mueller this morning. Working at Halcyon for a little while. ☕️

    → 1:53 PM, Aug 15
  • Walked around Mueller this morning. Working at Halcyon for a little while. ☕️

    → 1:13 PM, Aug 15
  • Text.

    → 11:15 AM, Aug 5
  • → 10:58 AM, Aug 5
  • → 10:58 AM, Aug 5
  • Books again.

    → 10:53 AM, Aug 5
  • Books.

    → 10:50 AM, Aug 5
  • Screenshot.

    → 10:46 AM, Aug 5
  • Testing.

    → 10:44 AM, Aug 5
  • Testing.

    → 10:44 AM, Aug 5
  • Test 7.

    → 10:34 AM, Aug 5
  • Test 6.

    → 10:32 AM, Aug 5
  • Test 5.

    → 10:31 AM, Aug 5
  • Test 4.

    → 10:29 AM, Aug 5
  • Test 3.

    → 10:27 AM, Aug 5
  • Test 2.

    → 10:26 AM, Aug 5
  • Testing.

    → 10:25 AM, Aug 5
  • Testing.

    → 11:39 AM, Jul 31
  • Test.

    → 10:31 PM, Jul 19
  • Testing photo.

    → 9:22 PM, Jul 19
  • Testing.

    → 3:25 PM, Jul 19
  • Testing.

    → 2:21 PM, Jul 19
  • Testing.

    → 1:13 PM, Jul 17
  • Test.

    → 10:45 AM, Jul 1
  • Testing 321.

    → 10:25 PM, Jun 9
  • Apple.

    → 10:09 AM, May 27
  • Testing.

    → 10:08 AM, May 27
  • Testing again.

    → 7:49 AM, May 27
  • Test 2.

    → 9:23 AM, Apr 24
  • Test.

    → 9:21 AM, Apr 24
  • Testing images.

    → 1:18 PM, Apr 23
  • Gowalla.

    → 10:29 PM, Mar 7
  • Test upload photo…

    → 11:46 AM, Mar 7
  • Test.

    → 11:38 AM, Nov 7
  • Testing.

    → 10:49 AM, Oct 31
  • Testing.

    → 11:11 AM, Oct 15
  • → 7:25 PM, Oct 9
  • Testing.

    → 11:41 AM, Sep 29
  • Testing GIFs.

    → 11:22 AM, Sep 28
  • Testing.

    → 11:06 AM, Sep 18
  • Testing from iPad.

    → 8:33 AM, Sep 14
  • Testing.

    → 3:10 PM, Sep 8
  • Testing on Monday.

    → 1:48 PM, Aug 31
  • → 10:43 PM, Aug 29
  • Test.

    → 8:47 PM, Aug 29
  • Testing.

    → 6:23 PM, Aug 29
  • Testing.

    → 4:51 PM, Aug 29
  • Testing.

    → 10:41 AM, Aug 28
  • Testing.

    → 9:15 AM, Aug 26
  • → 7:25 AM, Aug 26
  • → 11:10 PM, Aug 25
  • Hello.

    → 10:52 AM, Aug 19
  • Beach photo test.

    → 12:11 PM, Aug 12
  • Testing.

    → 9:36 AM, Aug 12
  • Testing iOS.

    → 10:49 AM, Aug 6
  • Testing 100.

    → 10:48 AM, Aug 6
  • Testing 90.

    → 10:45 AM, Aug 6
  • Testing.

    → 9:30 AM, Aug 3
  • Testing photo from Indigenous.

    → 3:49 PM, Aug 1
  • Testing. Friday.

    → 6:03 PM, Jul 31
  • Photos

    Test 1.

    Test 2.

    → 9:38 AM, Jul 30
  • → 9:37 AM, Jul 30
  • Testing.

    → 9:36 AM, Jul 30
  • Testing.

    → 9:35 AM, Jul 30
  • Testing.

    → 9:34 AM, Jul 30
  • Testing.

    → 8:34 AM, Jul 26
  • Testing.

    → 9:37 AM, Jul 22
  • → 8:58 AM, Jul 22
  • Testing.

    → 1:31 PM, Jul 21
  • Adsfasdf

    → 2:31 PM, Jul 20
  • Test b1.

    → 8:01 PM, Jul 10
  • Testing 2.

    → 8:03 AM, Jul 6
  • Testing.

    → 8:25 AM, Jun 18
  • Test muting.

    → 9:11 PM, Jun 13
  • Title here

    Testing. 123.

    → 8:06 AM, Jun 12
  • Testing.

    Bridge on the drive back to Austin.
    → 1:32 PM, Jun 11
  • 🏝

    → 9:59 AM, Jun 4
  • Deer.

    → 9:33 AM, Jun 4
  • Testing photo.

    → 10:45 AM, Jun 3
  • Testing.

    → 8:37 AM, Jun 3
  • Testing. Switch.

    → 1:25 PM, Jun 1
  • Testing links

    → 9:58 AM, May 27
  • Testing smaller versions

    → 9:55 AM, May 27
  • Hello world

    Testing

    Testing testing.

    → 9:43 AM, May 27
  • Testing with DuckTales.

    → 3:18 PM, May 3
  • Testing.

    → 10:58 AM, May 3
  • Testing XML-RPC history

    Micro.blog supports primarily 2 APIs for posting to hosted blogs:

    • Micropub, the IndieWeb API used in the official Micro.blog apps.
    • MetaWeblog, the XML-RPC API used in MarsEdit for macOS.

    XML-RPC used to be the standard for blog posting, widely supported in all blogging platforms. It is still used in WordPress today, and I’ve supported it in Micro.blog from the beginning. I’ve always wanted Micro.blog to be compatible with as many apps as possible, especially MarsEdit.

    To understand XML-RPC, we have to go way back in blogging history, to 2001 and the original Blogger API by Evan Williams. Micro.blog’s support for XML-RPC still closely matches what the API looked like nearly 20 years ago.

    As is obvious from the name, requests and responses in XML-RPC are sent as XML. Common data types such as integers, strings, and structs are encoded with rules outlined in the XML-RPC specification. To create a new post in the original Blogger API with the words “Hello world”, the request to the method blogger.newPost might look like this:

    <?xml version="1.0"?>
    <methodCall>
      <methodName>blogger.newPost</methodName>
      <params>
        <param>
          <value><int>app ID</int></value>
        </param>
        <param>
          <value><int>blog ID</int></value>
        </param>
        <param>
          <value><string>manton</string></value>
        </param>
        <param>
          <value><string>mypassword</string></value>
        </param>
        <param>
          <value><string>Hello world.</string></value>
        </param>
        <param>
          <value><boolean>1</boolean></value>
        </param>
      </params>
    </methodCall>
    

    Subsequent blogging platforms extended the Blogger API with their own features. Instead of blogger.newPost, Movable Type had mt.newPost with similar parameters, adding a title field. WordPress had wordpress.newPost.

    To try to unify future improvements under a vendor-neutral standard, Dave Winer proposed the MetaWeblog API. MetaWeblog switched to passing content as structs, which could more easily be extended with additional fields, and added an image upload API, metaWeblog.newMediaObject. Dave patterned the field names after RSS:

    The MetaWeblog API uses an XML-RPC struct to represent a weblog post. Rather than invent a new vocabulary for the metadata of a weblog post, we use the vocabulary for an item in RSS 2.0. So you can refer to a post’s title, link and description; or its author, comments, enclosure, guid, etc using the already-familiar names given to those elements in RSS 2.0.

    Dave wasn’t the only one who hoped to bring consistency between feed formats and a blogging API. A couple years later, AtomPub was created based on Atom feeds.

    Ben Trott of Six Apart, makers of Movable Type, blogged at the time about the benefits to basing an API on the Atom feed format, which back then was called Echo:

    Benefits to developers: using the same data model and serialization for syndication, archiving, and editing simplifies the development of tools to work with (produce and consume) these formats, for obvious reasons: code written to produce an item in an Echo feed, for example, can also be used for producing data sent in an API request or packaged up for archiving.

    AtomPub was adopted in Blogger but is not supported in any other modern blogging platforms. Earlier this year, MarsEdit developer Daniel Jalkut announced that he would also be phasing out support for posting to Blogger.

    Between the early 2000s when there was so much activity around blogging standards, and the growth of the IndieWeb and W3C-recommended standard Micropub API in 2017, there was a notable lack of innovation in blogging. Everyone was pulled away to social networks. Platform-specific APIs became the norm. It is because if this lull that XML-RPC survived so long without a modern replacement.

    So that brings us to today. Micro.blog has always worked with MarsEdit, but because it’s based on a standard that was frozen, MarsEdit could not support all of Micro.blog’s features. And while Micropub is clearly the future, there is more we could do now without requiring MarsEdit to be adapted for Micropub.

    I’ve been working with Daniel to identity what is missing from MetaWeblog and rolling that into a new Micro.blog-specific flavor of XML-RPC. This is essentially what Movable Type and WordPress had done years ago. I had avoided it until now because Micro.blog should default to supporting standards wherever possible before inventing something new.

    We talked through this on Core Intuition 416. Now that there’s an alpha of MarsEdit 4.4 available, I’ve documented the new API parameters here. It is based on MetaWeblog, but cleaned up with more consistent field names and support for new features such as creating and editing pages on your blog, server drafts, and downloading all posts.

    Micro.blog now shows up in MarsEdit as one of the supported blog systems, along with Tumblr and WordPress:

    MarsEdit systems

    I’ve been using the new MarsEdit for the last few days, and it really is a big improvement for Micro.blog. Keep an eye out for the final release.

    → 11:20 AM, Apr 20
  • Testing.

    → 5:52 AM, Mar 30
  • Seeing this made me smile while out walking in the neighborhood this week. These kids have the right idea.

    Test.

    → 5:28 PM, Mar 21
  • Testing.

    → 11:12 AM, Mar 9
  • Testing.

    → 10:46 AM, Mar 9
  • Fabled Books in Waco.

    → 11:10 AM, Sep 17
  • Testing multiple

    → 8:16 AM, May 3
  • Picking up smoothies from JuiceLand

    → 2:01 PM, Apr 14
  • Pumpkins

    → 2:55 PM, Oct 20
  • Pool mushroom

    → 6:59 PM, Jun 16
  • → 2:56 PM, Dec 18
  • → 2:56 PM, Dec 18
  • → 2:56 PM, Dec 18
  • Baby Yoda.

    → 9:05 AM, Nov 29
  • RSS
  • JSON Feed
  • Surprise me!