I’m not sure if I’m misremembering but my brain says there was a time when blog posts did not have post titles” by default. Coming up with a post title is one of my least favorite exercises when writing a blog post.

Often how these things change on the internet is a bit hard to unearth (particularly in the early 2000s) but it could have been as innocent as some blogging software package requiring it to something more evil such as Google forcing SEO down our throats.

I don’t remember Movable Type requiring them but I do feel like most blogging software packages for the last decade have assumed per-post titles were required information.

If anyone happens to have some pointers to the internet archeology on blog post titles feel free to mention me on Mastodon (@soypunk@friend.camp).


Derek Powazek, who worked at Blogger, wrote:

when we launched Blogger in 99, there were no post titles (or post pages, for that matter). But we added them soon after. They were a top request.”

Worth nothing that Derek authored Design for Community: The Art of Connecting Real People in Virtual Places” - a book which radically re-shaped my approach to user experience and product management and I still think about to this day. I highly doubt we will ever see a second edition but if we did I would happily buy a dozen copies to hand out.

Jeff Eaton, also said:

Yeah, Livejournal defaulted to the same when it launched - just a date and a message.”

(Since we are saying nice things aout people, Jeff was one of the early pioneers of making Drupal handle some seriously gnarly enterprise content management problems. His social media posts are always insightful and well-worth your attention.)

Both of these at least help to suggest that my usually failing memory might have logged this nugget correctly; blog entries with post titles were not necessarily the norm to start.

This is going to be one of those meaty, meandering, old school blog posts about… well blogging. Welcome back everyone.

With the fall of Twitter over the last several months there’s predictably been some folks moving their online presence back to their personal websites. Similarly we’ve seen more calls for a return to the concepts of the IndieWeb and folks rightfully calling out that’s it still too hard for people to own their own content.

One of the interesting things about the Substack’s product strategy to become the go-to place for radical hate content is that a lot of the small, indie voices on Substack didn’t know how to get off of it. Sure there are alternatives to Substack (Buttondown or Ghost come to mind) but they don’t offer anywhere close to the free tier” level of service Substack offered. (And they sure heck are not offering one year of paid healthcare, holy moly.) Trying to wrangle how to get something like a self-hosted Wordpress instance to also act as a newsletter is surprisingly complicated. It is not that easy to send email in volume anymore because many of the large email-as-a-service providers (and international/regional laws) require a lot of safeguards to ensure emails are authentic, wanted, and not tracking you without your consent.

It is interesting to note that if Google Reader had managed to stick around I don’t think there would have been as strong of a push to return to the newsletter format. (And Google Reader wasn’t exactly an ideal RSS citizen either much less an IndieWeb” friendly one.)

Anyway, I’m excited to see some movement back towards personal websites because I’ve also been thinking about bringing back my blogging habit. Somewhere around 2005 I threw in the towel on keeping a personal website for realsies” because Twitter was just much easier to use. I’ve had a personal website since 1996, originally hosted on the free web space my ISP gave me and later moving it around to several different domain names and software systems. I’ve used Django, Drupal, Jekyll, Hugo, Movable Type, Wordpress, as well as quite a few bespoke applications I wrote to manage the site. These days this site is hosted & powered by David Merfield’s blot.im. I’m writing software usually every other day and I don’t need to add yet-another-thing to maintain to my daily brain-load. There’s no lock-in with blot though - I own my domain, the content is in plain-text, and it is easy to obtain all the materials and go somewhere else that supports static website generation.

For several years now I’ve been microblogging on a Mastodon instance run by Darius Kazemi. I choose Darius’s instance because Darius is a smart person who cares about the good parts of the federated networks (e.g. see Darius and Erin Kissane’s very recent announcement to organize research into fediverse” governance) Microblogging is great and it does feel like the good years” of Twitter - for the most part (I don’t remember there being so much mansplaining and contrarian posting for the sake of hearing yourself argue in the early days of Twitter but there were so many micro-islands” of conversation at the beginning it was easy to not see the whole picture.) More often over the last few years I’ve found myself saying this should really be a blog post” because threaded conversations on microblogs suck for any number of reasons.

Over a year ago, Phil Gyford opened up https://ooh.directory, which Phil describes as a collection of hundreds of blogs, to help people find good blogs that interest them.”. I was browsing through it this week and it was really uplifting to see so much interesting content that was just plain-spoken and not heavily packaged.

As an example of this should really be a blog post” - here’s an example of the heavily package” content experience that befuddles me. Jason Kottke had shared a link about the most borrowed library books” that looked interesting. So I clicked on the link and the following happened:

A webpage screenshot with a giant banner ad and only the title & byline of the article content is shown within the screen.

It sucks to click on a link to an article and then only see the title of the article that I already decided I wanted to read as the only thing on the screen. I get it, websites cost money and need a business model to recoup that money - so ads. Was it really not possible to fit in more than just the title, byline, and a single sentence lede? That’s okay though because even if more than the lede had been there before I could even scroll down my screen was covered with this:

A webpage screenshot with a giant video banner ad covering the entire content of the screen

I don’t know what this is and I don’t want it. I wanted to read an article and instead there was like a two minute montage of people skiing covering the entire viewport and there wasn’t even 80s movie action” skiing music. Finally after I figured how to dismiss the ad and scroll down I was left with this mess:

A webpage screenshot showing a few paragraphs of overly hyperlinked text and 4 different ads, some of which are overlapping themselves.

This screenshot is hilarious for a number of reasons. First of all there are ads overlapping each other - so I can’t even tell you what the ads are about. Content baby! Second, this paragraph is impossible to read because there are too many hyperlinks distracting me from just like… catching my breath and figuring out where to start reading. What’s sad is I don’t even know what the most borrowed library books were because I gave up trying to read the article at this point.

It is taken a while to get to here but in summary: let’s bring back personal websites! Let’s make them easier to setup - those of you savvy enough to do so need to file bugs and enhancement requests with your software folks to enable this. Let’s bring back content you can actually read and let’s figure out how to help people afford to self-host this stuff so they can post fun quirky things we can read and learn from.

Traveller Universal World Profiles to M-Space Planets

Traveller is well known for it is various universal codes.” The Universal Character Profile/Universal Personality Profile was a shorthand method to quickly describe a character’s characteristics. The Universal Planetary Profile/Universal World Profile (UWP) describes the qualities of a world. In this article I want to take at look at how you can map a UWP to an M-Space Planet so that you can reuse Traveller-specific mapping tools with M-Space. It will not be always be a one-to-one mapping and there will be some judgements you’ll have to make for your game.

Uwp Code in a Nutshell

A UWP code looks like this: C77A9A9-6

  1. Starport: C
  2. Size: 7
  3. Atmosphere: 7
  4. Hydrographics: A
  5. Population: 9
  6. Government: A
  7. Law level: 9
  8. Tech level: 6

There are some other details sometime included separately from this main code sequence but these are the primary attributes we will be considering.


Starports map over fairly cleanly. Traveller has some specific ideas about annual maintenance” that may or may not fit into your own M-Space game depending how closely you are tracking such details.

UWP Starport Code UWP Descriptor M-Space Shipyard Capacity Maintenance
A Excellent Full Build & Repair Yes
B Good Standard Repairs & Upgrades Yes
C Routine Local Simple repairs Yes*
D Poor Emergency None No
E Frontier Emergency None No
X None None None No
  • Typically Routine/Class C Starports were not capable of performing annual maintenance” but could do simple maintenance.


Traveller world sizes starting at size 6 map over cleanly to M-Space, but sizes 0-5 are not covered. To help explain the lack of designations at the lower sizes, it is important to note that world sizes 1-4 would have such low gravities that walking in a straight line would be problematic.

UWP Size Code Traveller World Size Traveller Gravity M-Space
0 800 km (typically an asteroid) Negligible -
1 1,600 km 0.05 -
3 3,200 km 0.15 -
5 4,800 km 0.25 -
7 6,400 km 0.35 -
9 8,000 km 0.45 -
2 9,600 km 0.7 Extra Small
4 11,200 km 0.9 Small
6 12,800 km 1.0 Medium
8 14,400 km 1.25 Large
10 (A) 16,000 km 1.4 Extra Large


M-Space includes some tables for Atmospheric Pressure and Breathability which we will use to translate back to a UWP code.

UWP Atmosphere Code Descriptor M-Space Pressure M-Space Breathability
0 None None None
1 Trace None None
2 Very Thin, Tainted Too thin Vacuum Suit
3 Very Thin Too thin Vacuum Suit
4 Thin, Tainted Thin Breathing mask
5 Thin Thin Breathing mask
6 Standard Earth like Earth like
7 Standard, Tainted Earth like Breathing mask
8 Dense Dense
9 Dense, Tainted Dense Breathing mask
10 (A) Exotic Varies Vacuum Suit
11 (B) Corrosive Varies Vacuum Suit
12 (C) Insidious Varies Vacuum Suit
13 (D) Dense, High Dense
14 (E) Thin, Low Thin None
15 (F) Unusual Varies Varies

It is important to note that while Dense worlds may not require a particular Breathing mechanism they would be rather hot and have violent electrical storms, continent-sized hurricanes, or massive hailstones.


Traveller does a whole thing with Hydrographics and has a system for generating a climate profile given a few inputs. For example, a Size code of 6-8, an Atmosphere 5, 6 or 8 and Hydrographics 5-7 might give you a Garden World.”

There is no easy conversion here other than to provide some guidance on the codes and allow you to think about how close the planet might be to the habitable zone and what effect that would have on the climate.

UWP Hydrographic Code Descriptor
0 Desert world
1 Dry world
2 A few small seas.
3 Small seas and oceans.
4 Wet world
5 Large oceans
7 Earth-like world
8 Water world
9 Only a few small islands and archipelagos.
10 Almost entirely water.

Here’s some general guidance as to how you can fit all of the codes together:

World Class Size Atmosphere Hydrographics Temperature
Rock 0 0, 1, 2, 3 0 -
Harsh 1, A+ 4, 7, 9, A, B, C, D, F 1, 2, 9, A Freezing, Boiling
Marginal 2, 9 5, 8 3, 4, 8 Hot, Cold
Garden 3, 4, 5, 6, 7, 8 6, E 5, 6, 7 Temperate


At this point we need to jump out of M-Space’s World Building chapter and head to the previous chapter on Alien Creation. Mapping Traveller’s population code to M-Space’s population descriptors requires a bit of judgement as to what medium” means in your universe. Here’s an idea as to how one might do that:

UWP Population Code Descriptor M-Space Descriptor
0 None None
1 Few Very Low
2 Hundreds Very Low
3 Thousands Low
4 Tens of thousands Low
5 Hundreds of thousands Medium
6 Millions High
7 Tens of millions High
8 Hundreds of millions Very High
9 Billions Very High
10 (A) Tens of billions Super-dense


Governments in Traveller are rather specific compared to the broader terms used in M-Space. Additionally M-Space’s Circle mechanic provides a richer way to represent these planetary governments within your game world and how their actions can influence or impact your players. There’s no reason why you could not use Traveller’s label in your M-Space game. Some GM fiat is necessary to determine what these labels mean in your game, but here’s a sample mapping if you wish to preserve M-Space’s labels.

UWP Government Code Descriptor M-Space Ruler
0 None None, Anarchy
1 Company/Corporation Dictatorship, Semi-Democratic
2 Participating Democracy Democracy
3 Self-Perpetuating Oligarchy Dictatorship
4 Representative Democracy Semi-Democratic
5 Feudal Technocracy Council
6 Captive Government Council, Dictatorship
7 Balkanization Many
8 Civil Service Bureaucracy Council
9 Impersonal Bureaucracy Council
10 (A) Charismatic Dictator Dictatorship
11 (B) Non-Charismatic Leader Dictatorship
12 (C) Charismatic Oligarchy Dictatorship
13 (D) Religious Dictatorship Dictatorship
14 (E) Religious Autocracy Dictatorship
15 (F) Totalitarian Oligarchy Dictatorship

M-Space provides two additional layers of descriptors called Foreign Policy and Conflict Intensity that would require you to know a bit more about your world’s backstory in order to determine how your planetary governments are functioning with their neighbors.

Law Level,

M-Space has a 1:1 mapping for Traveller’s Law Levels 0-9. These can be found in M-Space on page 134 in the Alien Creation chapter.. The table presented here could be slightly cleared that the Weapons column is saying what is restricted.” So, Level 9 does not mean Any Weapons” are allowed but that all weapons are restricted by the government.

Tech Level

M-Space has a 1:1 mapping for Traveller’s Tech Levels 0-15, and you can read a bit about this on page 135, of M-Space’s Alien Creation chapter.

So there you go, M-Space is not shy about pointing out its roots from Traveller. In many cases mapping the terminology is not strictly necessary but it can be helpful to your players if they are not familiar with Traveller but own their own copies of M-Space.

Airplay 2 Audio With an Ethernet Only Airport Express

It had slipped my radar that Apple had release a new firmware update for their Airport Express product. The major feature in the updated 7.8 firmware is that it adds Airplay 2 support to the Express. I’ve been wanting to upgrade my home music stereo system for sometime but don’t want to shell out the money for a HomePod. A TidBits article reminded me about the Home app and from there the wheels got turning in my head.

The HomePod, by all accounts, sounds” amazing but the fact that it is a single user device when it comes to the Siri features (“check my email”) seems like a real drawback when the thing is going to live smack-dab in the middle of my living room with family of five Apple users.

Airplay 2 seems pretty cool particularly the ability to stream music to multiple AirPlay devices at the same time. Our current home speaker” is usually our Apple TV playing music through our TV speakers over HDMI. It is not great but it works and it is easy for everyone to use… for the most part.

I just so happen to have an Airport Express lying around, not used. We retired our Airport-based WiFi network after years of Apple neglecting it and the performance being subpar giving our home’s fast fiber connection. The interesting thing about the Express is that you can disable the WiFi radio, put the device into bridge mode”, and just plug into your existing router with an ethernet cable.

With that in mind I plugged a pair of old computer speakers that sound reasonably decent into the Airport Express optical audio input. I updated the device’s firmware and used the Airport Utility to configure it as an ethernet-only AirPlay hub as noted. Then I used the Home app on iOS 12 to add it as HomeKit device. This was a little finicky but I had to Add an Accessory”, then select the manual I don’t have a HomeKit code” option. It took a few tries but the Express device did show up and was added in a just few seconds. I added it to same HomeKit room as my Apple TV (which is also in the same main floor” zone.)

From there I went back to my Phone’s Music app picked a song and was able to tap both speaker options and music was streaming at the same time with no lag from both my Apple TV and the Express speaker output. It is pretty amazing. I suspect this setup will not work if I wanted to say watch a movie on my Apple TV and have the Audio come out of both places but I’m going to mess around and see if I can get it to work.

Update: I’m not sure what I was thinking about audio not working from both sources during movies - it works just fine and there was nothing else required. A nice little bit of Apple magic.

Rainy Day Jazz

Part of documenting my Reading List library will include going through 100s of items that I’ve been queuing up over the last several years. Kinda like wading into an old person’s house and seeing years worth of newspapers stacked up everywhere — something I’m familiar with since that was the scene I found after I visited my grandfather at his house some time ago.

Seeing as I’m fond of having good writing music this collection of rainy day jazz” tunes from Reddit’s Jazz subreddit seems appropriate. The top voted post is a good starting point for making your own collection. To help you out I’ve collected 48 of the songs into a public Apple Music playlist.

It is missing a few tracks that don’t seem to be available on Apple Music:

In the case of Blue Champagne I found a version by Anita O’Day that I enjoyed and added to my collection as it felt at home with the more subdued sides of the recommended playlist. Right now the songs are just added in the order the poster presented them but I’ll likely reorder and refine the list down over the next couple of listens.

State of Markdown Todo Item Syntaxes in 2014

Summary of Markdown Lists

As a plain-text person I generally gravitate to keeping my project materials in text files. As someone who believes HTML is the quintessential document format, I like to use Markdown to ease the transition from plain-text to sensibly structured HTML.

Naturally, one makes a lot of lists when taking meeting notes or capturing a list of tasks to be completed for a project. In Markdown single level lists are straightforward while multi-level lists, or outlines if you will, have all sorts of thorny edges depending on which Markdown parser you choose to use.

To begin a list item in Markdown one starts a line with -, +, or * followed by a whitespace character and then your list item text content.

Given Markdown’s close relationship to HTMLs text semantics it doesn’t have a task” or todo” item syntax. Sure HTML Forms has <input type="checkbox" /> but Markdown has never concerned itself with translating plain-text to HTML Forms markup.

Still Markdown is popular with the project documentation and note taking set and there are currently several attempts at employing a syntax for tasks. Here’s a summary of them as well how backwards compatible these extensions are via the Babelmark test suite tool.

(At time of writing the Babelmark 1 testbed’s Python Markdown implementation was failing due to a system error. I’ve removed those failures from the results.)

Update 1/28/14, 10:47 AM PST: I split out the Listacular/TaskAgent and TaskPaper/FoldingText sections as they really do have different behavior. Listacular (beta) is currently straddling two worlds though as it tries to support TaskPaper/FoldingText’s @done syntax.

GitHub Flavored Markdown Task List

GitHub introduced this syntax extension on January 9th, 2013:

- [ ] undone todo item  
- [x] done todo item`

Listacular / TaskAgent

- undone todo item  
x done todo item

Neither of these are necessarily Markdown editors but both will accept subsets of the Markdown language for formatting. Listacular goes much farther than TaskAgent and is willing to render entire documents as Markdown and do its best to extract todo items (by looking at list items with the - marker rather than those with an + or *.)

TaskPaper / FoldingText

- undone todo item  
- todo item @done

To be fair, neither TaskPaper or FoldingText actually claim to be Markdown” editors. They are more Markdown based” or inspired. Still, people confuse them enough with the Markdown editor set that I think it is worth calling this out.


-- undone todo item  
++ done todo item

Results Conclusion

Only GitHub Flavored Markdown’s Task list and TaskPaper/FoldingText’s syntax survives mostly intact across most Markdown parsers. Sadly, almost none of the Markdown editors on the market use Github Flavored Markdown as their Markdown engine of choice. Mac OS X Markdown editor Erato is an exception but without a sufficient matching mobile client in the iOS ecosystem there’s little hope for a sane individual to hope to get by choosing this syntax. If omz:software’s Editorial for iPad ever makes it way to the iPhone a lot of us power users might be able to construct our own happy compromises. I can’t really speak to the state of Markdown todo support on Android or Windows Mobile but I’m happy to reference others’ research on this topic.

An Open Platform”

Lately I’ve grown tired of reading about how a platform is closed or open based on a single facet of its operation. I expect lazy coverage from pundits but much less so from technology journalists.

Open Source

In the age of competing mobile computing platforms we’ve seen a lot of discussion of openness.” Often these debates focus on the open source angle from the last great technology platform war: Microsoft vs. Linux. Nothing illustrates this more than a single tweet from Google’s Senior Vice President of Mobile, Andy Rubin:

the definition of open: mkdir android ; cd android ; repo init -u git://android.git.kernel.org/platform/manifest.git ; repo sync ; make”

Andy’s tweet implies that mere access to the source code for your platform along with the ability to build the code in some form is the endgame of openness. Andy’s openness script glosses over the complications an independent developer might have in building the various Android flavors created by HTC, Samsung, or Motorola. If a developer cannot build the various platforms they wish to deploy their application on, is the platform still open?

If source code isn’t a sufficient measure for openness, what other checkpoints might there be for a mobile computing platform?

  • well documented public APIs
  • standard document interchange formats
  • programmatic access to device components
  • a free market” for distributing applications
  • unfiltered network access?
  • ability to freely switch out the platform on the device itself

There’s only one mobile computing platform I can think of that would receive a passing grade on most of these marks (with several marks of unsatisfactory at that): The Web.

Platforms come in all shapes and sizes with various levels of openness”. Source-code alone won’t prevent a developer’s business model from being invalidated overnight. Source-code alone won’t allow consumers to switch platforms if their device, platform, handset maker, or carrier denies them the privilege. Source-code alone won’t prevent locking a developer into a licensing strategy (such as the GPL) which will hamper future efforts to transfer, license or expand the intellectual property they’ve developed. Source code that is missing a critical component (application or other forms intellectual property) doesn’t help a developer hunting down a potential compatibility bug or an end-user trying to enhance an application’s workflow to their own liking.

Device Fragmentation

Device fragmentation doesn’t rule out a platform as being open. There’s a lot of device and implementation fragmentation on the Web. We each have our own prism of the Web defined by our browser, network provider, operating system, and user preferences. Any of these players might make a particular shard of the web more or less open.

If the platform and an application store” help normalize the differences across devices (for both consumers and developers) does that make platform more or less open? Was Mac OS X more or less open before the Mac App Store? Before you answer, factor in the cost to market, sell, and support an application before the App Store. Consider the same experiment for a developer targeting Slackware Linux. If you only provide a limited set of device choices but in doing so you’ve enabled a consistent, fluid, and engaging user interface have you made your platform more or less open?


There aren’t black and white answers to most of these questions. It is a battle of tradeoffs that enable and hamper platform providers, developers, and consumer in contradictory ways. The Web is seemingly an open platform but has a high barrier to entry for certain types of implementors and business while being extremely open to other uses. iOS is not a closed platform” because Apple & the carriers dictate the rules of how you may use the hardware & network they’ve essentially leased to you. Android is not an open platform” because they provide a significant portion of the operating system code.

Platforms are too complex for narrow definitions and it would serve everyone’s best interest if technology journalism would help us unravel the tradeoffs. Users (be they developers, end-users, or business-folk) are ready for sophisticated discourse of mobile technology because we’ve invested our future in making the smartphone a core part of our daily experience.