Context and Footnotes

There is no denying that footnotes play a prominent role on this site1. Rarely does a day go by where there isn't at least one sitting underneath the main body of a blog post, providing context or additional information to explain an idea in a fashion that is less obtrusive than an in-line aside or bracketed segue2. Footnotes have become so much a part of my writing that they even make an appearance in social posts, which may make this publishing platform the only place where a person can include these annotations in a "micro-blogging"3 format. One of the questions I've long had is why these useful notes are so rarely seen on other websites. It's not as through footnotes are a foreign concept and the quick-reference context they can provide might actually make reading about complex or contextual subjects a little easier for people who do not have a complete working knowledge of the subject4.

Footnotes on a Recent Post

The Problem with Footnotes on Websites

As with anything, footnotes are not a panacea5. On the printed page, a footnote is (generally) found only on the bottom of the page that carries the superscript hint. This makes it relatively easy for a reader to read more about something if they so choose. On a website there may be a little more work involved if a person needs to first scroll to the bottom, not losing their place, then go back. The moving screen would be a distraction that can break the flow of the article. There are a couple of solutions to this, of course, and I've used two on this very site in the past. Unfortunately they are not necessarily the best solutions6.

The first method I used was to have the super-script number act as an anchor link7. By clicking or tapping the number, a reader would be brought to the bottom of the page where the footnote existed. At the end of the footnote would be a "return" icon which, as one would expect, returns a person to the point where they left off. This is certainly better than requiring a person scroll down to the bottom of a post themselves, but the jumping content can be visually distracting. The abrupt changes, sliding past images or a wall of text, is not at all a good experience. What's worse is that a person still has to re-read segments to determine where exactly they left off and get back into the article8.

This is a sub-optimal solution to the problem.

A couple of years ago Chris Sauve released "Bigfoot" to the world9, which is a JavaScript library that mimics the footnote popovers that were first seen — to the best of my knowledge — in Instapaper. I liked this idea so much that I implemented it on 10Centuries almost immediately. This worked great on desktop machines and tablets, but proved to be a problem on phones when dealing with some of the more verbose asides on this site and others. In the end, I had to remove the feature and go back to the first implementation so that people could read articles without an unfortunate source of friction.

Neither of these features are found on the current version of the 10Centuries platform10. Instead I've opted for the least helpful method, which is expecting the reader to scroll to the bottom if they want to read more. The reasoning came down to ensuring feature parity with the RSS reader that is built into the 10C platform11, but this is a lazy answer. There must be a better solution.

Fortunately, as with so many things in life, there are a couple of options that might prove worth exploring.

Option One: Tangible Footnotes

A footnote is expected to be at the bottom of a page. With this in mind, if the screen is considered a page, then footnotes should always appear at the bottom of the screen and update as the visible content scrolls. Because some footnotes can be incredibly long on a small screen, it would be better to show just a compressed view with the option to expand and read everything. I see this working a little bit like Vivaldi when the browser tabs are set to appear at the bottom of the window, only less tabular.

Option Two: Anchor Links with Highlighting

The idea here is that a person would click a superscript number and be scrolled to the appropriate footnote, which would then be highlighted in a manner to make it easier to quickly identify and read. Clicking the return link would bring a person back to the part of the page where they were, with the superscript number highlighted so that there's no mistake where a person can pick up reading again.

Option Three: Ditch the Footnotes

This isn't really a valid option as it would mean providing less context to a point or learning how to weave longer, more complex stories that bring a reader along for the ride. While this would be nice from a literary practice point of view, it's not something I'm particularly keen on doing at this time. While I would love to write with such an artistic flurry that people cannot help but read and share my articles with the world because they evoke such vivid mental pictures, this would require me to invest more time into the craft than I have available at the moment. This may be an option at some point in the future, but not today. Of course, this option does nothing to help people using 10C who want to use footnotes12.

Of the first two options, which one is better? The first would require more complex code to be written while the second could probably be hammered out and deployed in a single morning. Are there other workable solutions?

Sometimes I wonder if I'm just overthinking every decision that goes into this platform in an effort to avoid trying something different and failing miserably. Not being able to code the right solution isn't something I worry about, as a lot of my code gets thrown away as ideas evolve and get refined. What worries me is releasing a feature that people detest, resulting in an ever-shrinking community as the tools I provide do not offer sufficient benefits to weather the rough spots. Maybe I'm overthinking this, too. I probably am.

That said, which option will prove to be more correct?


  1. Over the last 24 months there have been 1,218 footnotes written for blog posts on this site alone. To say that footnotes play a prominent role is a bit of an understatement.

  2. Many years ago, when I was just starting to take blogging as a serious creative outlet, posts were written in a fashion similar to what I would see in the opinion section of various newspapers. Footnotes and references are generally handled quite a bit differently when columns are limited in length and width, so writers would often use an inline aside — such as this, which is marked by a double-width dash — or brackets (which is what I generally see in newspapers that were at one time owned by Conrad Black, "the millionaire who went to jail").

  3. When people started to think of posts consisting of a handful of words as a "micro blog", there was a bit of experimentation to see how additional context could be included in a post. The solution on microbloggling platforms such as Twitter was to reply to yourself to build a "Tweet storm", or a series of sentences that would hopefully form a cohesive paragraph if read chronologically and not taken out of context. As one would expect from someone as creative as a brick, I tended to write a longer blog post and just post a link to that on Twitter — or somewhere else — in the hopes that a less abridged explanation of an idea or opinion would foster a more nuanced dialog. Boy was I wrong.

  4. People are not stupid. We might call each other various synonyms of this word from time to time but, at the end of the day, I strongly believe that most of us want to expand our knowledge and understanding of the universe and the IDIC within. The Internet has often been referred to as the id of humanity, but I tend to see it as IDIC on display; Infinite Diversity in Infinite Combinations. Roughly half of the people on the planet are using the Internet to communicate and share ideas. Billions of people with different backgrounds, beliefs, ideologies, degrees of education, levels of cognitive understanding, and states of mind. With a little context behind an idea, it becomes that much easier to understand where a writer is coming from, even if we don't agree.

  5. No solution is going to magically solve all problems. That said, some solutions can gain wider traction and foster greater innovation from a community of thinkers.

  6. This is one of the reasons I dislike how people will market a product as "the best X for Y". There is no possible way any single solution is going to work for everyone. How many text editors are there available for download? How many different flavours of Linux? How many different laundry detergents? Best is, at best, a subjective term that can only apply to a handful of individuals. This won't stop people from trying, though.

  7. Anchor links are certainly a valid option to the problem of quick footnote seeking, but I'm reminded of the hassles from the early days of digital books. In the late 90s, there were a couple of competing file formats that tried to force a book to feel like a website. What this meant was that a textbook or published thesis might have anywhere between two and five dozen references at the back of the book. Clicking a link would trigger the jump to the page which, on a Palm handheld or very early Kindle meant waiting for the device to read to the end of the book, find the reference, then render the page on the screen. A process that would require five seconds on a good day. Clicking back would require just as much time and, if you changed the size of the font, then the page numbers were all wrong and you'd end up where you didn't want to be.

  8. It was a mess!

  9. When bigfoot.js was released, a lot of websites in the Apple blogger sphere snapped it up right away. This was a great solution for people who wrote short footnotes, but there was a problem for people who were unaccustomed to using the literary tool in that a number of CMSes did not natively support them. Now, almost six years after the JavaScript helper's release, it seems that there are just a handful of sites — that I visit — that use an occasional footnote in any capacity.

  10. Like a lot of current CMSes that abstain from WYSIWYG editors, 10C relies heavily on Markdown for its text formatting. When the text is rendered into HTML, tags are added to make posts IndieWeb friendly, but little is done to make the various post types really stand out.

  11. One of the core concepts behind 10Cv5, which I have eluded to at times, is that this current version of the platform is really more of an RSS reader with the ability to publish content to a domain you own. Comments can be made right from the reader, which will then result in a Quotation or Bookmark post on your own site. Webmentions are then sent out so that Indieweb-ready websites can visit the source post, read in the comment, and display it to future readers. This makes it possible for an author to have long-term control over the words they publish online and, if a commented-on post disappears at some point in the future, the comment continues to exist in a local database. That said, this feature is not yet fully released.

  12. This is the crux of the problem I face with personal projects, such as 10C. People are using the software. I really want the features to be things that people can use easily and rely on. The move to v5, however, was painfully messy. There are still records that have not yet been properly attached to the accounts of the authors, and some core site pages are still non-existent. The RSS feature is something that is being used transparently on a daily basis in the form of Nice.Social, but it's not quite ready to deal with the wild-west of RSS feeds that exist across the web. Every couple of days I'm spotting issues with malformed feeds that need analysis and better handling. Once the core features of v5 are in place and people have all of their data in an easily accessible fashion, I'll open up the RSS reader — and its API — to anyone who wishes to read and comment on content using the Google Reader-inspired web application.

Getting Better

Over the last couple of days there have been some pretty decent updates to 10Centuries that have resolved a number of bugs that people have — and sometimes haven't — reported, as well as a couple of features that made sense to bring back from v4 with some logical updates. There are still a number of areas that need to see some attention, but the platform is inching towards being a better system for anyone who might want to use it. Hopefully by this time next week we'll see the return of the main landing page, which will include such necessary features as the ability to create an account.

Clearly I was a lot less prepared for the migration to v5 than I had originally thought.

That said, with the weekend here, a lot of the core development will need to come to a stop. Coding on the weekends is incredibly difficult given the people vying for attention, and family time is something I generally look forward to, so unless something is broken or a really quick job, there won't be any new features until Monday at the very earliest … and I'm okay with the delay. Although it's strange to say, I might be getting better at being offline for much of the weekend.

Last August, when Reiko shattered her phone and she had to use mine for a while, I made the conscious decision to be offline a little more often. While having a mini-tablet with an always on network connection was nice, it didn't make sense to pay $50 a month for the phone and data plan. I work from home, which means that my devices are either connected directly to the network via CAT6 or connected to the WiFi. When I go out for a walk, I'm out for less than an hour. If I can't be offline for 1 out of 24 hours a day, then there's a problem.

As one would expect, there was an adjustment period where I had to remember that random trivia questions that popped into my head couldn't be quickly researched while walking Nozomi. Not having the ability to check the global timeline on 10C or post an update was a little annoying. But all of these things were relatively easy to overcome1. Right now I have no plan on picking up a SIM card for the phone, nor do I see why I should pay crazy rates for data and the very occasional phone call. For my current use case, a phone plan is just bad value.

Without the digital tether, I find that when I'm with the boy or Nozomi, I am more present. The phone is now just a camera that plays podcasts when I'm not at home. Inside the house the unit is also good for messaging, reading RSS feeds, and using the browser. This is ultimately a good thing as it means that I have the opportunity to focus a lot more on what I'm doing rather than what's going on elsewhere. Being present is important, particularly given how rare it seems to be in this part of the country.

Not everyone can go without a phone, nor should anyone ditch their digital devices just because there has been some positive results from this change in my life. Being able to spend more time with the family is great, and not being distracted means that when I sit down at the notebook I can focus more on writing code or working with databases, but I'm just an edge case.


  1. I'll admit that I sometimes "cheat" and bring the corporate iPad out, which has a data connection. This is generally only done when I'll be away from the house for more than an hour so that I can deal with some limited problems at the day job should there be any server trouble.

Topics

Earlier this evening, while Nozomi and I were out for an after-dinner walk, I was thinking about some of the things I might write about today. As with most days, there were a number of topics that I could write about, but only enough time to focus on one. To make matters more complicated, the subject couldn't be too complicated, otherwise any attempt to write intelligently on the subject would be ruined by my inability to remain consistently conscious when sitting down1, which is exacerbated further if sitting on my bed. So with all of this in mind, what could I possibly choose to write about today to put the bow on another week?

One of the more interesting challenges that I've started running into when planning the day's article is writing about something different from the 2,800+ other posts on this site. With over a decade worth of writing published on this site, choosing something that is relatively untouched is by no means easy. I'll admit that there are a number of recurring themes that pop up from time to time, either involving the boy, the day job, or my mental state, but I do try to write about something different whenever possible. This isn't so much for the benefit of people reading the blog, but more for the enjoyment of writing.

Today's possible topics involved the monthly Windows Magazine that I used to collect and look forward to every month as a teen, sleeping in a room with a server, the challenges of taking good pictures of children or puppies, and the purpose of desktop backgrounds on machines where you almost always fun applications full screen. All of these are worthwhile, but only one can be chosen. As you have probably guessed, the topic I went with for today was "blogging about topics".

For the first few years of blogging, I would often make a quick text note with my HP iPaq, then write the post one stroke at a time on the train ride home. With every day involving at least 140 minutes of train time, it seemed logical to use the time to write. Being alone for over two hours of every day is now a luxury that I sorely miss, so writing is generally started on the phone with some poorly-typed notes while walking the puppy, then completed on a device with a physical keyboard.

Not a day goes by where I don't think about how to improve the way I write posts, and not a day goes by where I don't think about writing better as a whole. The latter requires practice and focus while the former is something I don't have an answer for. Having the preliminary notes written before the blog post itself generally seems like a good way to let the mind think about a subject for a while before there is time to write. Using mind maps and other writing tools would certainly lead to better posts, but these things often require a pretty large time commitment, which is something that I cannot negotiate with the family when people require attention. Speech to text doesn't seem right, either, as it would mean talking to a computer and thinking less about the words that get put on the screen.

What I would like, however, is a small application that would keep track of the blog ideas I jotted down for a given day and hide them around 3:00am so that the next day would start with a blank page. Throughout the day, I'd want to go back to the application and maybe jot a note down or add a link to a picture. When the time comes to actually write at the end of the day, I could then look at the application and all the disparate notes that were written throughout the day would be loosely attached to a topic thread and I could write from there. This would be similar to a mind map, but slightly less structured.

I would write something like this myself if I had the time. Naturally, it would also fully support publishing items directly to 10C. Unfortunately there just isn't enough time in the day, so I'll continue to think about how to improve my writing while doing the writing.


  1. This will probably be a topic for another day.

Am making slow but steady progress on this system. Really looking forward to seeing it deployed and put to the test. There are a number of fundamental design differences between v4 and v5, which means this update is going to be bigger than the v2 to v4 change .

The Barrier

Chris Aldrich recently wrote a post on the mission of the IndieWeb where he said this:

Social media WYSIWYG platforms like SnapChat, Twitter, Facebook/Instagram, et al. have become a problem as they’re not allowing us the control, flexibility, and privacy we would all like to have while they pursue their own agendas.

In these terms, the general mission of the IndieWeb movement is to be the proverbial simple text editor meant to give everyone increasingly easier, direct control over their own identity and communication on the open internet.

Comparing the IndieWeb to "the proverbial simple text editor" is an interesting way to describe the idea, given that there are a plethora of text editors for people to choose from, and a multitude of self-hosted publishing platforms as well. Both of these products, however, tend to target the same market: digitally proficient individuals who have experienced way too much friction with the full-featured, commercially-backed options that are generally accepted by the masses.

Over the coming year, I hope to bridge the gap between "WYSIWYG platforms" and the text-editor self-hosted solutions with 10C v5, which will most likely be renamed "Streams" given it's focus on presenting flows of information. Just like 10Cv4, there will be a hosted version that I will offer the world to anyone interested in using it. Unlike 10Cv4, the new version will be available for people to host themselves. As of this writing, I've managed to get the installation and configuration down to a single line on an Ubuntu Server shell through the use of snap packages1, but this may still be too complicated for most.

Despite passively learning about the myriad of technologies and methodologies employed by the IndieWeb, I still feel there is far too much friction for the average person to actively participate. If we can offer the tools to allow people to more easily enjoy what they get from WYSIWYG platforms while also enjoying digital sovereignty, we may begin to see the larger organisations held to a higher standard.

That said, there is still a lot of work to be done.


  1. by going with a Snap, people do not need to install or configure Apache, MySQL, or any of the additional packages that make the software work. It's all done in advance and, because it's a snap, updates are instantly rolled out without the need for people to manage the software themselves. Yes, updates can be disabled.

Who Will Use SQL Server on Linux?

This past weekend I was having a discussion on IRC with someone about the role of SQL Server on Linux, and who might actually use the database engine over many of the more traditional, open alternatives like PostreSQL and MySQL. The argument essentially boiled down to this: my opponent said that "nobody in their right mind who wants to use SQL Server would migrate from Windows to Linux", and I said that "SQL Server on Linux isn't for people who already have systems built to use SQL Server installations on Windows, but for people who haven't even started their projects yet". Both of us are likely correct to a certain degree, and both of us are likely over-generalising by using terms like "everyone", "most", and "developers".

I've been using Microsoft's SQL Server on an Ubuntu Server installation since it was first made available this past summer, and I've got to admit that it's a solid little engine. SQL Server has long been my favourite database, and I tend to use others primarily because my servers are all Linux-based. MySQL is the go-to, but does it have to be for smaller projects?

I don't think so.

So with this in mind, I plan on proving to my weekend opponent that SQL Server on Linux is a viable solution by migrating 10Centuries from MariaDB 10.1 to SQL Server 2017. This won't be a simple drop-in replacement, as the two systems do things differently enough that it makes zero sense to hammer a square peg into a round hole. Instead, I plan on taking the examining system and designing a proper replacement that'll play to SQL Server's strengths and finally move all of the data rules from the API layer to the database, where it actually makes sense.

10Centuries is very much a relational system, and it should be perfectly reliable on SQL Server Web despite all the licensing limitations that Microsoft has in place for that edition of the engine. If there's any change at all, it will likely be that 10C is faster after the database change. There will certainly be some performance reports after the fact. If I can drop API response time down by 500ms without spending a small fortune on more hardware (or software licenses), I'll be very, very happy.

Umm … Why?

A little over ten years ago I had an MCDBA certification from Microsoft that revolved around SQL Server 2005. Those skills are now well over a decade out of date, and I'd really like to get back into using this more powerful tool. By using SQL Server on Linux, I can gain experience with the system and also begin to understand the various things that the tool can and cannot do. I'm years away from becoming an expert, this should be a good first step down that road.

SQL Server can certainly be a great tool for people who prefer to use Linux and want to build or update their software. Just because it may not fit every use case doesn't mean it can't fill others.

Podcasts

One of the very first podcasts I regularly listened to was The Talk Show, hosted by Dan Benjamin and John Gruber. Within a few months this list had grown to include Back to Work with Merlin Mann, Hypercritical with Jon Siracusa, and Build and Analyze with Marco Arment. All of these shows were hosted on the budding 5by5 podcasting network, and they all had similar themes depending on the time of year. A number of podcasting networks have come and gone since then. Some have evolved. Some have stagnated. But the wonderful thing about these shows is that just about anyone can make them so long as they put in the time and effort.

Podcasts I Listen To

Over the last few months I have not been speaking into the microphone very often, though I have been producing a bunch of Japanese shows that are starting to see some mild success in terms of downloads. Many of these shows have several thousand downloads per episode, and a few have even been approached by companies who are looking for advertisement reads. A wonderful sign of success.

That said, I miss having my own shows. Ones where it's my voice that's going out on the Internet. The issue comes down to a lack of time, and this lack of time has resulted in a number of the projects I want to work on taking a back seat to responsibilities that must be taken care of. All this is fair enough, but I still look forward to the day when I can get behind the microphone again and start putting out my own shows.

But on what subject?

There are a number of show ideas that have been put down on paper over the last few months, but few seem to have a shelf life beyond six or seven episodes. Some of the show ideas include:

  • having a kid in Japan
  • buying a house in Japan
  • a picture and 1000 words1
  • interviewing Japanese podcasters

These are all things that I'm pretty much doing right now, though not as a podcast. Would any of these appeal to me long enough to invest the time into? The first two show ideas would be for others rather than myself, which is fine. Sharing information of this kind could be incredibly useful to expatriate parents who call Japan their home. Is it something that can carry for an entire year, though? The last show idea is essentially Show Me Your Mic but with a focus on the Japanese podcast community. The show wouldn't make sense to put out in English, though, as the podcasters would not really grow their listener base.

This third idea, though, is something I've unsuccessfully been trying to build into 10C as a feature called "Places". I say it's unsuccessful because the feature is not yet released and is not fully conceptualized. There are some gaps in the tool to make this something people might be interested in, though it's most certainly an "art project". As a podcast, it would involve taking a single photo of a place, and sharing that with a short audio description describing what is not in the picture. This could be historical references, common uses, or what popular location it's adjacent to. Theatre of the mind, so to speak.

Is this something people would listen to, though? Of the four show ideas, this is the one that I would find most interesting, even if the show didn't break 100 downloads per episode. One of the things that I tend to see online is a focus on what people can see, rather than what they cannot. Going in a different direction from what's expected would be quite unique, I think.

But then there's the time issue. Where would the time come from?

If something is important enough, a person will make the time to do that thing. The question I need to ask myself is whether this is important or not, and go from there.


  1. this is something I've considered for the longest amount of time, as it sounds like an interesting idea. Take a picture of an area and, in 1000 words, describe what's not in the picture to give the image context.