Skip to footer navigation.

« Oatmeal

Posts tagged meta

Follow this tag's bespoke rss feed or return to the list of all tags.

Accessibility updates

I’m feeling pretty chuffed! Last week I wrote about my intention to make this website more accessible. My motivations were many-fold, but, primarily, mostly shame. I’ve worked as an accessibility specialist in the past, and now spend a bunch of my days at work looking for ways to make public infrastructure online more accessible. It seemed fitting to at least make sure the little bit I contribute to the web here is also accessible.

I thought it was going to be more of a project than it ended up being. Oatmeal is passing with mostly flying colors according to a couple different browsers’ in-built accessibility auditing tools, VoiceOver, axe, WAVE and IBMs accessibility scanner.

I focused on improving a few key areas:

  • color contrast
  • markup structure
  • navigation

To achieve better color contrast ratios I know I could have employed math, but, instead, I didn’t do anything scientific — I used trial and error to land at a slightly updated color scheme. Along the same lines I also increased the default text-size and made sure that link text was visually unique along an axis other than only color. Underlines, baby!

The markup was the issue that had me thinking I was gonna have to do a soup to nuts rewrite. I ended up finding a handful of big wins, though, so was able to make a lot of progress pretty quickly. The biggest win was tearing out a lot of indieweb-specific markup. I think it isn’t that hCard’s and what not aren’t accessible, they just lead to a really chatty” page if poorly structured, and mine were poorly structured.

The markup updates flowed into improving the navigation. I’ve always leaned heavily on this being a blog, with everything structured around a gigantic chronological list of posts. That’s boring, though, and not all that conducive to actually finding stuff that isn’t chronologically recent.

The site’s navigation still lives mostly in the footer. Now there’s a skip link to get there more easily (try it! Use the tab key to trigger the skip link). I’ve also added a handful of new pages that invite folks in through some different entries — doors and windows and whatnot.

With these changes made, I’m feeling better about the state of this thing. There is 100% certainly more that can be improved, though, so, I’m gonna consider this the start of an ongoing project.

In reply to: Oatmeal - week notes

The worst kind of blogging is blogging about blogging, so, I’ll keep this blogging about blogging short!

I’ve made some minor updates to the design of the website that have improved it’s usability a wee bit, and are a step in the right direction toward upping my accessibility game. The major remaining accessibility issues are around color contrast and some structural stuff.

I’ve started to introduce an updated color pallet to resolve the contrast issues. The structural stuff is going to be a wee bit harder to address, but I’ve started to make inroads there, too, mostly by removing a lot of indieweb specific microformat markup. The entire site should be more or less totally navigable by keyboard now.

I’ve also added a page to help situate folks and invite ya in to different ways of finding stuff here.

week notes

It got a wee bit cold here in Maine this weekend. It was thankfully uneventful for us. We hung around inside and watched it get real cold outside. Our home faired pretty well, too. Honestly pleasantly surprised about that!

We picked this weekend to go all in on potty training — pantsless days, treats, rousing bouts of encouragement sung, and a lot of spot cleaning. Fueled by hubris, I thought we had this potty training thing down pat. In reality, it was that our first go round with it was supremely uneventful. We will perceiver.

I’ve been thinking many thoughts about how to fix this website. While I love its design and general vibe, I know it’s not all that accessible, and has some usability issues (so many tags!?). I don’t have a real idea what to do, yet, but maybe take this as warning? Changes are afoot…albeit a pair of slow, uncertain feet. Things I hope to figure out include

  • an equally quirky, but significantly more accessible design
  • a better way of revisiting past posts
  • and if I even wanna stick with this blog-ish format, or if I wanna move to something more like a wiki, or something altogether weirder!?

I recently asked a question on fedi:

Once upon a time I was an art history person. I thought for a long while I was gonna be a professor of it or something adjacent to it.

There’s a certain sort of art history writing that spends a lot of time establishing an ontology around what’s beautiful, and what moves make something beautiful.

These days, a lot of the nonfiction I read is about programming or computer science. It’s not unusual for a programming book to talk about beauty in code, or data, but the rules” for what makes something beautiful seem a lot more ephemeral, but usually related to elegance.”

For the code inclined among ye, when do you see code as beautiful? Do you?

This had a number of really interesting responses that I’ve been noodling on. If I was so bold as to condense them down, I’d say a connecting line between all the responses is utility.” In hindsight this makes total and complete sense — code ought to work. When I asked the question, though, I was in a really aesthetic frame of mind, so, was sorta surprised with how focused folks were on the code actually functioning over some aesthetic quality of the rendering of the code itself.

…but this may also be sign that my code is mostly garbage?

In my mind, regardless of what or how it works, C is less beautiful” than a lisp. There is an aesthetic to lisps that I find beautiful.

One respondent said,

I find code beautiful when it has an internal grain, a style of its own, whatever that style may be.

That struck me. I’ve read about the idea of code having grain” before, and find that an interesting way to describe the tactile nature of programming systems when compared to one another…C to lisp, forth to pascal.


Since the new year I’ve finished a few books. I’m trying to read more fiction than nonfiction this year. I re-read The Hobbit with the family, and an unremarkable, but enjoyable book, the second in a series, Eyes of the Void, by Adrian Tchaikovsky. I liked the first in the series better than this second one, but it was fun, and I’ll most likely end up reading the third installment soon enough.

715 Creeks by Cristin Milioti is a song that has been in heavy rotation while I work lately. It is a cover from Bon Iver’s 22, A Million.

Occasional notes

If they aren’t weekly, I guess they’re occasional?

3rd repair procedure to fix brain bleed was a success. I have a few more scans and follow ups, but, knock wood I think I’m through at this point.

I’ve spent about a week laying low and taking it easy navigating some wild pain, but that is subsiding now. I watched a bunch of stuff. It was a nice change of pace. I don’t typically watch much television or many movies. Stand outs (all things I revisited) include:

  • Michael Clayton
  • Point Break, the original one
  • John Carter of Mars, straight up…this movie is awful. The book is pretty awful, too, but they just don’t make bananas sci-fi like this any more
  • Bee and Puppycat, this one was weird — I’d seen it all through and loved it…I was surprised to see how different the Netflix version is from what I remember.

I’ve continued reading about and exploring some array programing languages. I find them fascinating. I doubt that I’ll ever do much with any, but they’re fun to think through and make me wanna play with combinators in other settings…also, matrices.

Another language recently stumbled on is lil. It is a scripting language baked into a cool little project called Decker. Learn even more about it.

The language is strange, and exciting — it allows for some interesting combinations of imperative, functional, and array programming styles.


No doubt ya’ll have heard about the goings on at Twitter. I haven’t been on Twitter for years, but do love myself some fediverse-action. Lately it has been getting some attention.

A cool mastodon trick for anyone wading into the waters for the first time:

I’ve used the fediverse for years and ended up moving from server to server a few times. It is useful to have a quick shorthand for folks to find you without always giving them your exact handle — if you have your own website you can use that as a form of identity without needing to host your own server!

To pull this off you need to add a file at <your personal domain name>.tld/.well-known/webfinger

Paste the contents of https://<name of mastodon instance>.tld/.well-known/webfinger?resource=acct:<your user name>@<name of mastodon instance>.tld into the webfinger document on your server. From there, you are cooking with fire!

You can then search for [email protected] and your main account will show up in the results. It is sort of like an alias.

NOTE <anything>@<your domain>.tld will trigger this. As far as I know there is no way to lock it to a specific handle, since, this isn’t really a feature as much as an easily exploited bug of the lookup system.


No super notable links of late. On a meta note I use pinboard.in to collect and organize links; I’m growing a wee bit concerned about pinboard is withering on the vine. I recently tried to export my gigantic archive from it and…no dice? Days later I emailed support and no response. Anyone have favorite alternatives? Either pay-for, or self hosted. Ideally I’d like it to be able to grab the linked content. I’ve used wallabag in the past and wouldn’t mind returning to it, I’ve just been slowly trying to back away from self hosting services and pinboard seemed oh so reliable when I moved to it a few years back.

Site updates, and some tips for navigating this website

Eagle-eyed folks may have noticed that I made a few wee changes to this website.

The biggest, and most noticeable one is that I’ve filtered out all of the like type posts from appearing on the main feed, from rss, and in the archives. There were waaaaay to many, so filtering them out makes the entire website a lot more navigable. They are not gone, though, and I’ll probably keep sharing like type posts, but now they are something you can opt in or out of. To see em:

Furthermore, and this isn’t actually new, but I feel I may as well point it out again, there is an rss feed specific to any and every tag used on the site! You can find those tag-specific rss feeds on the tag pages under the title that says Tagged SomeTagName,” by clicking the Follow Tag” link. Here is an example of one of those pages, and here is an example of one of those feeds.

As always, you can also search the site, or peruse the massive collection of tags (I should probably prune those down a bit, eh?).

Starting something new on the smol net!

gemini://space.eli.li

For more info on Gemini.

Blogs back! I took it down for a while. Back online now. Not sure if it’ll stick around. I’ll defo clean up a lot of older posts that have become stale and stanky.

New wiki, who dis?

I ditched my old wiki system. Gone are the days of JSON and JS, here are the days of a single page, exported org-mode file.

Check it out!

Bye bye IndieWeb (for now)

Close observers of my blog (which I hope are 0) may have noticed it was offline for a bit. In that time I noodled moving away from blot … but, in the end I came back. I like it as a service a lot, and the task of migrating my heap of posts seemed a bit to monstrous for right now (raising the question…why migrate? But that is best left for another time).

Back on topic! If I had to compile a list of gripes about blot (it would be a hard task) one of them would be that I don’t control the stack. I generally don’t care heaps about that, but I want to make sure the carbon footprint of my digital life is kept relatively low.

Blot is open source, so I can tell it runs on node, and from my understanding node is less than ideal when it comes to energy efficiency.

So, to help out a bit I’ve been ripping out superfluous chunks of my website. I’ll be doing more of that over the next few days and weeks.

The first thing to get cut was a whole heap of JS — namely, all the IndieWeb functionality baked into my blog.

While I love the IndieWeb, I didn’t feel that functionality was worth the extra load times.

So, to any IndieWeb folks out there — know that I’m still around, but just in RSS land these days.

Happy Palindrome Day!

Happy Palindrome Day!

I fell off the blogging wagon for a little bit there (who knew having a 2nd kid would devour so much time!?). I am back now…

As part of being back I thought I was going to migrate away from my current blog host, but…after a few days away, I came right back.

I came back because it is excellent, and because the idea of migrating however many posts I have was wicked daunting.

That all being said…changes may be afoot.

I made a very tiny wiki last night. Content coming soon.

Link logging

Bulletin Butter and Jelly

If I set up a BBS would you want in? What would you want to BBS about?”

Texting Means Never Having to Say Goodbye

I thought about the last time I’d actually typed ttfn. I imagine it was at least 18 years ago, on my family’s Gateway desktop during the era of dial-up AOL. And then I realized I couldn’t remember the last time I said g2g,” or even bye,” in an online conversation.

The medium is the message, and the message is nearly always deliverable. So easy to be alone when you can’t ever be apart. Never say good bye,” but are you then always alone?

Go! Make a game — play a game.

Report on Anthem’s development woes draws terse response from BioWare

Also see Jack de Quidt on this.

here’s the wild thing that it feels almost impossible to say in the games industry: the game doesn’t mean shit! it’s lights and colours! it’s nice to play one and it’s nice to make a good one, sure

but — and i mean this very sincerely — if the production of the object ruins the lives and health of the people making it, the object doesn’t mean shit! what — you shipped a fun mech game? or a good cowboy game? great. who’s taking medical leave?

All games are a mess

I love that strange homemade games like The Frogs Of War and Legacy Of The Golden Hammer exist, these unpolished mishmashes of ideas and design as a form of creative expression. Enjoying these games is a way to enjoy all games, to accept that everything is from the same cloth, a different flawed piece of creativity, a different glimpse into what can be created.

On Flooding: Drowning the Culture in Sameness

And how much discovery can there be, really, with the same critics occupying the same space?

Hard left turn to allow me to insert a different conversation/question at this point on algorithmic curation.

Does algorithmic curation cutout the human element in what would elsewise be an artistic effort of mixing, or does it simply push the person a little further away — algorithm programmer as space builder, and us the viewing audience” as participant in a shared effort of consumptive curation…

So, you know, Derrida?

\_(ツ)_/

The Roundups of SHACKLESHOTGUN

Also see @kicks on roundups. (Thanks for the link-love, btw! (I enjoy collecting things, and this exercise is a good way of scratching that itch. My favorite part of collecting is making the collage at the end — by putting disparate things in proximity to one another making a new thing. These posts are my trying to do that. If you are interested in the unfiltered stream oh-links that are eventually paired down to become this, check out my profile on reading.am))

Why there is so little left of the early internet

Sometimes the sites that are lost echo even more seismic changes; the deaths and births of nations themselves. It happened with Yugoslavia; .yu was the top-level domain for Yugoslavia, and that ended when it collapsed. There’s a researcher who is trying to rebuild what was there before the break-up,” she says.

Leverage Points: Places to Intervene in a System

Parameters are dead last on my list of powerful interventions. Diddling with the details, arranging the deck chairs on the Titanic. Probably 90, no 95, no 99 percent of our attention goes to parameters, but there’s not a lot of leverage in them.

Can we truly think about climate change at all?

Object Oriented Ontology says no. Enter the Hyperobjects.”

Make it hard to screw up driven development

This is the request web dev resources link.

ttfn

What is weekend?

I had an academic understanding of what weekends would become after becoming a parent, but lately that understanding has been coming into full view.

  • Long weekend! — there was a school staff day” on Friday, so no school, but still work. We kicked the festivities off by having breakfast with some friends visiting from out of town
  • In the afternoon made a visit to the indoor playground. It is a really good place, and quickly becoming my go-to co-working space on days when I have to work but when there is no school
  • Rounded Friday off by having some friends over for dinner — I’m pleased with how the meal turned out since it had to accommodate our being vegetarian, 1 guest being gluten free, and another being dairy avoidant
  • Saturday morning was spent at a birthday party for two sisters. At this party there were very good bagels and even better black and white cookies — it was like a weird trip back to my childhood
  • After birthday partying we went straight to a nearby farm that was having a lamb day.” E.g. showing off all the baby lambs. There was much adorable bleating
  • Afternoon consisted of heaps of play, followed by dinner and an eventual trip to the gym…where I may have cried a little whilst running and listening to a rather emotional podcast
  • Instead of doing the wise thing and going to bed after the gym I stayed up and watched many an hour of Queer Eye with Tova
  • Leading us to Sunday morning, today. Bright and early! Today has been a blur of errands and bouncing from playground to playground, forest park to forest park
  • The house is in shambles, I have a list of chores left to do, but, all in all, I think this was a solid weekend

I created a tag-specific rss feed for my blot.im site, and you can too!

I’ll be the first to admit that I post a lot of disperate stuff to my website. Maybe folks don’t wanna follow it all? Maybe you just wanna follow my link log posts? Now you can!

I’ve added the ability to subscribe to rss feeds for posts with a specific tag. From any tag page, you’ll now find a link that (as of this moment) says Follow this tag.” Clicking that will expose the tag-specific rss feed.

Do you use blot? Wanna do the same?

3 easy steps:

Step the first

Create a new view to use for the rss feed. I called mine tag.rss.

Step the second

Paste the following code into the newly created view.

Step the last

Access the new view, someurl.com/tag.rss?name=pineapple, where pineapple is any tag you’ve applied to content on your site!

Now that you’ve got a working tag-specific rss feed, expose it to your readers somehow.

As always, huge shoutout to David, the mastermind of blot.im.

Of note: this functionality is currently undocumented and could change down the road.

  • David: plays a secret chord
  • Lord: Emacs can do that!?”

A joke, certainly stolen.

Quiet week. Server migration almost complete. Linode is purdy. As is Mosh! I’ve never used anything but ssh, but think I’m smitten with mosh.

I’ve been back filling tags on old posts. Things should be becoming more…connected? Increasing the edge and surface area through which folks can make entrance into posts of all sorts.

I spent a hot second updating the archive and search pages here. One of my goals with my newly revamped website is to open up more ways into the content — trying to think of the website less as a linear timeline, and more of a mess of noodle-y soup. Here are 2 new ways into the miscellany!

Through blot’s dashboard you can inspect a 404 log for your website. This is essentially a list of all the whiffs against your domain — whenever someone tries to visit a URL at your domain that doesn’t actually exist that gets logged. No info about the person/bot visiting the site is saved, just that someone or something tried to visit a specific URL that doesn’t actually exist.

Reviewing the log this evening I learned a few things:

There don’t seem to be many folks missing what they hope to find on my site (this is good!).

My domain receives more malicious traffic than I would have guessed — it looks like a lot of automated attempts to brute-force into common WordPress, Drupal, and other big-name CMS vulnerabilities, as well as a surprising amount of plain old SQL injection.

Stay safe out there in internet-land.

On a similar, yet tangential note: I have no desire to add any sort of analytics to my website, but I am curious from time to time about how many folks read this thing, and more importantly, in what format — RSS, micro.blog syndication, something else? Is what you are doing working for you? Is there anything I could do to make that experience better? Would anyone be interested in my starting an email newsletter? Let me know if you’ve got thoughts on this!

A love letter to Blot, one week in

Gone are the days of running my own, home-spun CMS. They were fun, and I learned heaps, but I was ready for a change. I’ve moved to blot.im. I am smitten.

Blot is a blogging platform with no interface.” It allows you to plop a bunch of markdown, txt, doc, or even image files into a folder and automatically builds and deploys an update for you! Blot can use either Dropbox or git as its sync engine. But what about all that indieweb goodness!?” you shout?

Aye — it is still here! Because blot templates are wicked extensible it is relatively trivial to extend them to do all kinds of things.

Getting off the ground with blot was a breeze.

The blot.im homepage.

As of right now (January 2019), blot doesn’t offer a free trial. The first thing to do is register an account.

Registration doesn’t ask for anything out of the ordinary, was wicked low friction.

The blot.im registration page, note – the price is about to go up!

  • Email
  • Payment details
  • BOOM!

Once registered you receive a confirmation and a receipt email — then you are up and running!

Select your sync provider, either git or Dropbox (this can be changed at any time).

The next steps are to set up a username (which doubles as your subdomain at the blot.im domain) and choose a sync provider.

I don’t know why, but it is amazing to me that you aren’t locked into a sync provider after making your initial choice. If, down the road, you decide to swap git for Dropbox, or the other way round, that isn’t an issue! No lock in. Great for portability. 🕺

Your blot dashboard! Well, this is an image of mine, but, you get the idea.

At this point you have a blot site. It has some basic boilerplate content, and is waiting for you to start adding content and configuring your template. Blot comes with a couple pretty templates out of the bag, but is also wicked extensible. The documentation is decent, but certainly has a few holes in it here in there. The good news is that blot is open source, so if you know what you are looking for you can poke around in the code. Or, and this is probably blot’s best feature, the primary (perhaps sole?) developer behind blot, David, is easy to contact, and happy to lend a hand.

Blot allows you to configure a lot of extras, including setting up redirects, on an either per-page basis, or by following regex rules.

After fiddling with a few settings, and switching a few switches I took a step back to take a look at my existing content. I needed to migrate just shy of 3,000 posts from my old website to blot, and I wanted to preserve their URIs if at all possible since, URIs shouldn’t change.

A dash of hacky PHP to migrate from my old plaintext json filestore to plain old markdown files with a bit of front matter.

Luckily for me, migrating my content was as easy as writing a sloppy little bit of PHP to convert each json file into a markdown file. I added a bit more extra metadata durring the migration process, just to make sure I was preserving as much info as needed moving forward.

Once the data was re-formated, I just had to plop it into my fancy blot directory! ZAP BOOM!

It is pretty much magic.

Some of the magical redirects in the digital flesh!

Once my content was in place I set up a basic redirect rule to map my old URI pattern to a new one, and everything just sort of worked.

With content in hand, the next step was to create a custom theme. This was way more fun than I anticipated it would be. Blot uses mustache templates, which I’ve used a bit in the past and always found frustrating when compared to something more feature-full, like handlebars, but in this instance, mustache does the job wicked well — I didn’t have to jump through any hoops, or come up with any hack-y solutions to get around mustache’s lack of useful logic.

The custom theme I came up with supports a few fun things (if I might say so myself).

Two worth calling attention to are bespoke-css files, and IndieWeb compatibility.

When I create a new post or page I can add an optional bit of metadata, bespoke-css with the name of a css file as its value. For instance, this post has the metadata:

title: A love letter to Blot, one week in
date: 2019-01-28-16-07
bespoke-css: article.css
tags: meta, blot

Setting bespoke-css will override the css file that would otherwise be associated with this post — that means I can tie particular css files to specific posts. No real reason to do this, it is just something I often want to do.

Finally — the IndieWeb goodness:

To set the stage, my old site had decent support for most of what I consider to be the core indieweb features, micropub, webmentions, and microformats.

My new site currently supports receiving webmentions (thanks to Amit) and includes all the necessary microformats markup.

All my posts are funneled through micro.blog, so that mostly handles my outgoing webmention needs, and, if not, sending a webmention manually is not difficult.

My new site does not currently have a micropub endpoint. They exist for blot, and seem easy to write, actually (I also noticed that David is thinking about adding one to blot’s core code), but so far, I haven’t needed/wanted one. I think I posted a wee bit mindlessly to my old site because it was so bananas frictionless. Posting is still wicked easy, but I want to bring a bit more intentionality to my posts…I mean, I want to try to do that. We’ll see how it goes.

Basic blot blogging from the command-line

Posting to my blog is a breeze from mobile thanks to a couple shortcuts and Drafts actions I’ve put together. I wanted posting to be just as seemless from my computer, too. Here is my quick and dirty solution!

#!/usr/bin/env bash

cd "$(dirname "$0")" # Go to the script's directory

DATE=$(date +%Y-%m-%d-%H-%M)

# The paths to your blot website's draft and post directories
DRAFT_DIR=/Users/someuser/Dropbox/Apps/Blot/drafts/
POST_DIR=/Users/someuser/Dropbox/Apps/Blot/posts/

USER_INPUT="$@"

# Your editor of choice
EDITOR='emacs'

if [ -n "$USER_INPUT" ]; then

    if [ $USER_INPUT == "post" ]; then

        printf "title: \ndate: ${DATE}\ntags: " > ${POST_DIR}${DATE}.md
        $EDITOR ${POST_DIR}$DATE.md

    fi

    if [ $USER_INPUT == "draft" ]; then

        printf "title: \ndate: ${DATE}\ntags: " > ${DRAFT_DIR}${DATE}.md
        $EDITOR ${DRAFT_DIR}$DATE.md

    fi

else 

    printf '\nBlot blogging from the command-line.\n\n    draft   create a draft post\n    post    live dangerously and just post that sucker!\n\n'

fi

In the future I may expand this to support editing existing posts, too. I’ve also been toying with a way to do this without ever leaving emacs.

Timezones, am I right!?

…my RSS feed ought to be fixed now! 🎊

Do you follow me with a feed reader? If so, take note! The RSS feed for my website has moved. It is now https://eli.li/feed.rss. I put a redirect in place, but not all feed readers like to follow the signs. Mind the gap.

The Life-Changing Magic of Server Migrations

After a bit of procrastination, a bit of noodling, and a generous pinch of typing I’ve started to migrate from my old web host to a new one. I’m starting with my personal stuff, and will then move the client work over.

The basic guts of the set up:

  • FastMail for email, and as my DNS control interface
  • I’m using blot.im to host my primary personal website (this one, eli.li)
  • A combination of Linode and Netlify for my other hosting needs

I’m still ironing out some of the details, but am feeling pretty good about the landscape. I looked into some alternatives to FastMail, but their offering seems to be the most solid, and the DNS control stuff is preeemo. Wicked nice.

To boot, moving my website from my previous web host to blot was a breeze, and resolved the issue I was having wherein my posts weren’t making it to micro.blog. I’m back, baby!

To say I’m impressed with blot is a massive understatment. It is awesome. I don’t have anything to gripe about…nothing, however, is so perfect, and I look forward to writing a future blog post all about the migration process and my blot set up (huge shout out to @amit for all his help, as well as to David who makes and maintains blot — his support is truly next-level).

That was all a preamble, though — the primary reason for this post is to note that I think a few things are going to change around here.

The medium being the message and all…

In the past my blog was more of a link-log, filled with likes and replies. While my website still supports all that lovely IndieWeb taxonomy, I am going to post round-up style posts, aggregating a bunch of links and comments/quotes into a single post. We’ll see if I can get into it, or how it changes things.

The other big change is tags! My old website had tags, but they didn’t really do much. The human ecologist in me is excited to start inter-linking posts by way of tag. Keep a look out for more on that, too!

Finally, the bit of my new website that I am most excited about? Custom css per-post! I have a custom metadata field associated with each post. If left blank, the site defaults to my standard css file, if, however, I put in the name of a different css file, I can associate a unique css file with a specific post!

I’ve always liked the idea of a site’s content and styling being linked. Just as I work to preserve permalinks, I want to preserve what the site looked like at a certain time. I’m not going to use this feature for all posts by any means. Heck, I might not even use it very often, but I’m excited to have the option.

Rah raw ra onward!

I fell off the micro.blog timeline for a bit. During that time my partner started a blog! check it out!

A few recycled thoughts on writing

I don’t think one needs to know where you are going to start writing. You don’t need an endgame, thesis, or goal. All you need is something to explore. Writing isn’t necessarily about the conveyance of specific information. Writing can be a design practice, or a way to learn something new.


A print isn’t a static thing—it isn’t a dead document, or just inked lines on paper—a print is an interface for connection. With technological innovation the immediacy and mode of that connection has changed, but I think at its heart had remained more or less the same.


I write because I don’t know. In writing I won’t necessarily come to knowing, but I’ll begin to move towards it. I write as an explorer seeking some understanding, and wanting to communicate. I write as a beginner…someone who is new to something, but eager to learn more and explore further.

It isn’t pretty (yet), but I’ve got search working on my website! All of my site’s content is stored as static JSON files and I was having a hard time figuring out how best to (quickly) search them all…then I realized that I could use grep wrapped in PHP! Easy peasy. Next up, an archive page of some sort!

Today is my IndieWebiversary ! 🎉

It took well over a year, but my website finally has an about” page. It is still very much a work in progress. Writing this type of content fills me with a weird sort of existential dread, tinged with sweet, sweet pangs of imposter syndrome.

How-to micro.blog, a micro.guide

I’m completely smitten. I’m in love with micro.blog. I’ve been using it for nearly a year and am more or less off of all other social media. I think micro.blog made me a developer. Before micro.blog came around I was a full time product designer and project manager, then micro.blog came along and I started hacking on my own CMS. Now I’m a full time PHP developer!?

To start

What is micro.blog?

At first glance micro.blog is like Twitter — a micro blogging service (clever name, eh?). But that isn’t all.

Micro.blog is both a micro blogging service and a blogging platform. What does this mean?

From a practical standpoint, this means that micro.blog users can post short, tweet-like posts, and longer wordpress-y posts…and photo posts (a la Instagram).

Users can also reply to one another, building threaded conversations starting from some initial post.

Quick recap

Micro.blog is a (micro)blogging service. With it, users can post short, tweet-length posts, photos, and long-form blog posts.

How-to

This is where things start to get interesting! Micro.blog is different from most any other service (that I’ve ever encountered) on the internet in that it isn’t a silo.

To use micro.blog you do indeed need to register an account (just an email, no password necessary).

(ノ◕ヮ◕)ノ*:・゚✧

After registering you’ve got to make a choice (a choice that you can change up at any time) — where do you want your content to live?

Brief digression

In the world of Facebook and Twitter you don’t choose where your content (posts, photos, comments, replies, etc.) are stored. They’re stored on Facebook/Twitter’s servers. Therefore, they own” your content. And your content becomes something they can mine.

Micro.blog is different. Your content lives wherever you want it to. As long as your content is accessible via RSS or JSON Feed, micro.blog can work with it.

Granted, there is a discussion to be had about data mining RSS feeds…but that’ll wait for another day.

How-to, continued

A micro.blog user-account is really just 1 or more RSS/JSON feeds all streamed through a single spot.

It allows you to aggregate RSS feeds into a single social feed” that represents you.

SO — back to that choice: where do you want your content to live?

Because it is also a blogging platform, micro.blog can host your blog for you for $5/month.

Alternatively, you can host your content elsewhere (e.g. using wordpress, tumblr, hugo, jekyll, coleslaw, etc.), and just add the RSS/JSON feed from that externally hosted blog to your micro.blog account. BOOM!

Up and running 🏃‍♀️💨

But how do you post?

Well — if you’ve opted for a micro.blog hosted blog you can post directly through the micro.blog website, or by using the micro.blog iOS or macOS apps, or even by using the dedicated photoblogging app, Sunlit 2.0.

If you’ve opted for a wordpress site, you can also create posts using the micro.blog iOS or macOS apps, and Sunlit 2.0, too! They’re interoperable 🕺

BUT WAIT!!! There’s more! All of the aforementioned apps (micro.blog iOS, macOS and Sunlit 2.0), are also micropub clients, so you can post to absolutely any micropub enabled website using them (that, however, is a longer discussion, so not fully explored in this here post).

Some closing notes

…this post ended up being a bad how-to” guide, and isn’t really all that micro in length 🤷‍♀️ 🌮

Micro.blog is young and still growing. It is by no means perfect, but @manton, @macgenie and co. are doing an awesome job on both the technical, and (more importantly) the social front. They’re doing a lot of really solid work building the community, striving for inclusivity, and thinking through design choices at these early stages that could have major ramifications down the road.

There can be a bit of a learning curve to get up and running with micro.blog, but, I’ve found the community to be wicked helpful, and they’ve got a great help blog that I imagine/hope will continue to grow, and become the go-to repository for all questions micro.blog.

A year with the IndieWeb

I’m approaching the 1 year anniversary of my being all in on the IndieWeb! NO REGRETS!

To celebrate, I thought I’d go crazy and write a brief description of what I think the indeiweb is, and how I IndieWeb.

What is the IndieWeb?

People

First and foremost, the IndieWeb is people — a really great group of people. I haven’t found a more welcoming group of folks online. I feel wicked lucky to have found this community, and to engage with it on the daily.

Standards

On a technical level, the IndieWeb is a collection of protocols and standards, namely:

  1. IndieAuth
  2. Micropub
  3. Webmention
  4. RSS
  5. Microformats

Separately, each of these is a powerful tool of the internet. Combine, they’re a nearly unstoppable, Voltron-style robot of webby-social-goodness.

  • IndieAuth turns a domain name into your IndieWeb identity (particularly when paired with h-card markup)
  • Micropub gives you a flexible way to create all sorts of content
  • Webmention and RSS allow you to connect with, respond, and subscribe to other IndieWeb folk
  • Microformats guarantee everyone is speaking the same language (at least on a machine-readable level)

NOTE: there are many other standards at play within the IndieWeb community, but I feel that this group make up the backbone of the IndieWeb.

How do I IndieWeb?

In a word: sloppily.”

But, it is getting better every day.

I started my IndieWeb journey using wordpress, but wordpress and I did not and still do not get along, so, I rolled my own IndieWeb CMS (which I will one day clean up and open source).

I call my CMS Pneumatic Post, and I think of it as less of a CMS and more of an IndieWeb micro-service. It has a couple moving parts:

  • Micropub and media endpoint
  • Display layer
  • RSS feed(s)

I post to my website using either Quill, Omnibear, the Micro.Blog macOS app, the Micro.Blog iOS app, Sunlit 2.0, or Indigenous. Each of these is a micropub client, so all play nicely with my website’s micropub endpoint.

My site currently supports a couple different posting contexts, namely titled posts, notes, replies, likes, and because I have a media endpoint in place, photos. I haven’t yet enabled any other posting contexts because my bases seem pretty well covered by this group.

When I post a like or reply-type post, my micropub endpoint automatically sends the liked or replied-to link a webmention, using telegraph.

I rely on brid.gy and webmention.io to handle all incoming webmentions. I don’t currently store or cache received webmentions, I just display them. Thanks to micro.blog, however, I’ve been having heaps of great webmention-fueled conversation, so I’m thinking I should build a way of storing incoming webmentions, rather than relying wholly on webmention.io.

The last bit is RSS. My site also supports a malformed JSON Feed, but I keep that hidden for the time being, since it relies on unsupported features at the moment and is generally a hot mess. My site spits-out two different RSS feeds, an easily discoverable public facing one that is just a stream of all content posted to my site, as well as a feed of all incoming webmentions. This means that the bulk of my IndieWeb-life is managed through an RSS reader…which is how I like things to be.

That, in brief, is how I IndieWeb.

The future!

What does the future hold? Well, for one, I’m most certainly gonna keep on keeping on as I have been, because I’m 100% in love with the IndieWeb and the IndieWeb community.

I recently stood up my own instance of quill, and imagine I may do some more things like that.

My BIG task is to clean up Pneumatic Post and open source it for others to use. My intention is that Pneumatic Post be as EASY as possible to get up and running with. I tried, and I’ve seen others try to get into the IndieWeb using wordpress, and it works, but there is a bit of a learning curve at times.

I’m also keeping an eyeball on projects like @dgolds nanopub and @hjertness micrpub. I think static sites are the bee’s knees, and I would love to be able to post to one using micropub.

The biggest frustration I have with Pneumatic Post at the moment is search. It sucks. because all of my content is stored as flat files (and there are a LOT of them) there isn’t a great way to index all the content. At the moment I search my past posts with either DuckDuckGo’s site search or JavaScript (I’ve played with both lunr.js and datatables). Neither option is great. I’ve started a project that I dream will become the go-to answer for everyones’ IndieWeb searching needs…but solr is a wee bit tricky…and I’ll admit that I’m a bit out of my depth. In the meantime, I think I may just run a little database alongside my flat files and search with good old fashioned SQL queries.

Finally, I’d very much like to attend an IndieWebCamp, and, host a Homebrew Website Club. From the digital to meatspace.

In conclusion

Do you IndieWeb? Do you want to IndieWeb?

I’d love to talk IndieWeb with you.

Sincerely and thank you kindly,
Eli

#indienews

Hark! I’m pretty confident that my instance of quill is ready to rock and roll. If you’d like, feel free to take it for a spin! ➷ quill.eli.li

And so begins the process of debugging an SSL cert. bug….or possibly a redirect issue 🤷‍♂️

openssl s_client -connect quill.eli.li:443 | grep "^SSL"

Pandoc and the wicked simple build system

I recently added a /now page to my website. I set out to make it as easy as possible to update, and am pleased with the results!

Sitting in a folder in Dropbox on my computer is a directory, now. Within now are 2 files, index.html and index.markdown. Same content, different formats.

After I update the content of index.markdown I’m able to run a very tiny shell script, bound to the alias now, that does 2 things:

  1. It converts the markdown file to html using Pandoc and a simple template
  2. It uploads the newly minted index.html file to my server using scp

Who needs a CMS when you’ve got Pandoc? 🤷‍♂️

I considered simplifying” the build process even further by triggering the rebuild/upload process on file change, but decided that it wasn’t really worth the extra effort, and I like having to type $ now into the command line.

…granted, this does interfere with my use of Zeits now utility, doesn’t it? Welp! I’ll cross that bridge when I get to it, I guess 🌮

Oh, hey hey hey little /now page. How you doing?

Digital baggage. Do you have any digital artifacts that haunt you?

The web is weird. The content alive on it is ephemeral, yet pervasive. At the same time content online is delicate (see Geocities or any similar now dead and gone service), it is ever present. Anyone who types my name into a search engine is almost certain to come across my frenetic TedX presentation of yore. This isn’t necessarily a bad thing, but it is weird.

That talk isn’t me, nor really a good example of my work, but there it is. Very certainly linked to me. It isn’t merely something written. It is me. Saying things, jumping around a well lit stage. Terrified. Excited. But it is also only a little moment in the grand scheme of things. A little moment blown potentially out of proportion.

The web is good at magnifying, and falsely preserving. Maybe falsely” is wrong—“dispassionately,” perhaps?

Currently, whenever I reply to or like a link the source URL displays. I’ve found a really sturdy way to parse content titles, but the performance is absolutely abysmal. Wicked wicked wicked slow. I think it may be something to do with how I’m invoking the function. I’ll keep poking at it, though, since it makes for a much better presentation.


function url_get_title($url)
{
if (!function_exists('curl_init'))
{
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

// FAIL
if ($httpCode == 400) return $url;

// SUCCEED!
if ($httpCode == 200)
{
$str = file_get_contents($url);
if (strlen($str) > 0)
{
$str = trim(preg_replace('/\s+/', ' ', $str)); 
preg_match("/\<title\>(.*)\<\/title\>/i", $str, $title); 
return $title[];
}
}
}

Pass the function a URL and you’ll get the <title> attribute back unless curl fails for some reason (looking at you every Squarespace site ever), then you just get the URL back again.

In reply to: https://gregorlove.com/2017/05/youre-welcome.mblaney-is-https-unicyclic.com-mal-by/

@gregorlove.com Thanks so much! I’ll see about editing that post…rolls up sleeves in order to add editing support to micropub endpoint

In reply to: https://eli.li/entry.php?id=20170530043248

Testing webmentions 😳

now that I have a working micropub endpoint I don’t know what else to post about 🤦‍♂️🤷‍♂️😔😛

In reply to: https://unrelenting.technology/replies/2017-05-28-11-32-03

@unrelenting.technology baby steps, baby steps. I’ll implement markdown one day. I gotta cover the basics first.

Well, I’m able to post text content using quill’s editor, but only if it is HTML encoded. Can’t post normal notes. 

Micropub endpoint seems to be about 80% of the way there. Next big step is getting a media endpoint in place.

In reply to: http://micro.whorlton-art.com/entry.php?id=20170525231537

You found me out! Indeed, no login! I’ve now implemented a proper micropub endpoint, though, and just use that for posting. I’ll update the repo soon

Posting via email via quill?

…and now my website automatically backs itself up to couchDB! One day I may use couchDB to serve the content, but for now I like having static content. 

Alright! The next big step is to figure out how to build a micropub  endpoint. I’ve been playing with Adactio’s minimal micropub endpoint, but so far no dice. 💀 🎲 I keep running into issues around the scope?’ but I don’t really have a clue what that means 😬