The Downfall Of Formats

During 2015, I wanted to spend more time at home, and cultivate creativity there. Because I’ve enjoyed writing since I was young, I aimed to write more consistently. The frequency with which I’ve published blog posts this year is a signal of my progress. I’m proud of this, and hope to continue this trend next year as well.

My second goal has been to preserve my older writings. What does that even mean? For physical writings that exist on paper, it means digitizing them into a format that has the potential to survive technological upheavals. For writings which are already digital, it means rescuing them from the graveyards in which they’re currently trapped.

On this front, I’ve started preserving my early poetry, and typing up hand-written pieces. Going through this process has brought to mind why this is important to me. Bear with me; this is a weaving exploration of these goals and other topics. I won’t apologize, however. Life is not straightforward, so neither can all stories be.

The Early Software

I first wrote on computers with Microsoft’s operating system, software, and file formats. The first piece I remember creating for school was an article on space. I wrote it in Microsoft Works, and the format is .wps. I spent most of my time, however, using Word – particularly for my early poetry – and that format is .doc.

Word worked really well. I was able to focus on the content and even style the documents easily. It had a lot more features than Works, which was another draw. My school’s computers had Word, which meant I could use a single program in multiple places. That was convenient.

I played around with Corel WordPerfect, but it didn’t catch on. Using another text editor like Notepad never occurred to me. Notepad had zero features compared to Word. Even line wrapping was a pain in the ass.

At home, we had a single computer in the house. The entire family would get time on it, although I’m sure I took up the lion’s share. After PDAs came out, I wanted one badly. Having one with an external keyboard would allow me to write more often and easily. I wouldn’t have to share time on it, nor would I have to type up things originally written by hand. I pictured myself using it all the time. Ahh, to dream. I never did get a PDA, and, as you might have guessed, my life has been a complete train wreck ever since.

Occasionally, I backed my documents up on floppy disks. To back up a piece I wrote about the Titanic, I had to split it onto multiple diskettes because it was too large to fit on a single one. But don’t let me fool you, the images I added to the file were the main culprit. It’d take a large amount of text to fill a floppy disk, and I’m not prolific enough for that.

Enter the Web

I recently posted the story of how I became a web developer, which recounts how my love for writing lead me to my profession. Along with creating my own websites, I looked for other sites I could also use for writing. was a big one. It was a great place to find new things to read, and receive feedback from others. Eventually, I got banned for trying to exploit a loophole on the site. That hurt. A lot. It wiped out all the reputation I’d built up on the site, and I couldn’t connect with people I’d met there. That site later went to crap. I’m not saying that happened because I got banned, but that’s kind of what I’m saying.

I learned of Xanga and used that a decent amount. Other friends like Zach and Fergy had accounts too, and we’d post there with all our latest happenings. I also played around with phpBB as an online bulletin board for chatting with friends. From college onward, I have used other programs to compose and store my writings like OneNote, WordPress, Google Wave, and, most recently, Evernote.

Left Behind

All in all, I’ve used a decent number of applications. My experiences with them over the years have been enlightening. I’ve experimented with different software and workflows, which has helped me find what works for me. It’s also brought to light some problems.

Remember the space article I wrote in a .wps file? Sadly, my latest copy of Word can’t even open it. Microsoft has already abandoned one of its formats. An open source alternative called LibreOffice can open the file, so I’m still able to access it. For now.

The majority of my early writings were .doc files, and they’re still accessible today. Oddly, some of the files don’t render properly in newer versions of Word, LibreOffice, or Google Docs. This makes it a bit challenging to read through them today.

I hated Apple even more than I hated Microsoft, so I would have never expected this, but I’ve switched operating systems for my daily computing. Software for web development sucks a lot less on a Unix-like platform like OS X, even though it’s not perfect. Switching OSs has lead to my decreased dependence on Microsoft’s software. Now, I don’t have a copy of Word on the computer I use most often.

What about those early websites I created or used? Realm of Aaxiler is dead. Scrawlpoint still exists, but has been defunct for ages. It limps along until I decide to eventually pull the plug. This blows my mind: even my own sites didn’t survive the test of time. I lost everything on At some point, Xanga wiped out a lot of content. Fortunately, I was able to export my stuff before that happened. Not a good track record with these sites, right?

And the more recent pieces of software? Google Wave was technically interesting, but died out pretty quickly. Google shuttered it years ago now, taking all the content with it. I had OneNote installed on my Windows machine, but that didn’t seem a good option after switching operating systems.

I still use Evernote and WordPress. Evernote is for quickly capturing ideas and notes. I publish my finished pieces to WordPress. Another system I’ve thrown into the mix this year is everything, which is where I flesh out and edit my writings before publishing them.

The Hard Lesson

My main takeaway from using all this software is that letting someone else control or host my content is a poor policy for making it accessible later. Distilling this a bit more:

Software evolves at breakneck speeds and all else is forgotten.

My second takeaway was the slow realization that my creative works are split across many pieces of software and data formats. Each of the applications and formats is a liability. This concerns me, and I don’t like the risk it brings.

One might argue that the content isn’t valuable if I haven’t touched it in so long. And if it were important, wouldn’t I keep it up to date with new formats and new software? Except, this has no analog on paper. I can write on whatever paper I want, and still be able to read it in 50 years. I don’t have to transcribe it every decade or two so that it remains accessible.

Sure, I don’t need to open writings I created 15 years ago, but I like the idea of it. It’s nice to come across pieces later in life, and feel nostalgia for your past. I want a breadcrumb trail of my works to look back on and see what things were like then. There’s also a chance for serendipitous moments when I reconnect with ideas from earlier days.

These lessons are my main motivators to preserve my older writings. I know, I know… I’m a geek. Good thing I’m an adult, and can spend my free time however I like.

The Right Medium

Earlier, I mentioned that my writings are trapped in graveyards, and the preservation I do now should be aimed at surviving technological upheavals. How can I accomplish this?

Choosing the right medium is paramount. What program, service, or format do I use? This is tricky. I want to access the writings today, as well as at some point in the unknown and distant future. Software has the pernicious tendency to rot, but file formats rot as well.

Any format might seem like a good idea, at least initially. Only later would that choice prove dangerous, when it’s no longer possible to open a file. Programs must support reading, displaying, and writing the format. When the format loses enough popularity, software updates will remove support for it. Even the most prevalent formats will fall out of style and be replaced by newer ones.

Software is generally a form of vendor lock-in. Companies invent their own formats, APIs, and syncing mechanisms. Along with being proprietary, they’re often not interoperable. You place your data in their vault, and there it shall forever stay. Graveyards growing larger by the day.

Each program also has limitations and a lifespan. It won’t be around forever, even if it’s hard to imagine now what would take its place. Ten years ago, I would have expected to still use Windows, and to have Word installed on the computer I use most. That’s not the case, though.

Evaluating Formats

I’ve used various formats, and have writings stored in each of them. My goal is to choose a single one for long term use. This way, I could confidently preserve my existing digital works, and have a solid foundation for backing up other written pieces.

Realistically, choosing just one format itself is risky. I should build redundancy into my process. If my content is stored in multiple formats, it has a better chance of surviving. Picking one format as the source, and then another format or two as fallback would be smart.

To choose, I need to evaluate the options and see what software and formats are suited to this archival purpose. I guess I need some ground rules too. These will allow me to compare formats, and find what is most sensible for my needs.

The format must be:

There’ll be personal preference that gets mixed in here too.

How About Services?

I’m hesitant to heavily invest in new services but if something has the right qualities, I’d consider it. If I consider a service, there are some additional rules.

  • I must be able to export my data.
  • The data export must be in a common format.
  • I must not rely solely on the service’s continued existence.

The third bullet point is most important. I won’t put all my eggs into one basket. All services have uncertainty about how long they’ll be around. That’s when vendor lock-in really comes to bite me in the ass. If I rely on one too heavily, and they shut down, my workflow could be impossible to continue. This is an enormous hazard over the long term.

Let’s Go!

Now we’re onto examining the options and deciding whether they’ll work. If not, I’ll give reasons as to why they get ruled out.

What About Word?

Microsoft doesn’t support the .wps format any more. Eventually, I’m sure the open source software that supports it will cease to. This format is ruled out immediately.

Many of the files I’m concerned with preserving are .doc. Does it make sense use it as the format for the rest of my writings?

The .doc format is binary, which means I need special software to able to work with those documents. It’s not plain text, so I cannot edit it with a basic text editor. The format is also largely proprietary, and Microsoft controls its destiny. Microsoft has made the specification available since 2008, but they still don’t describe all its features. People have reverse-engineered the format, to create other software that works with it, but this is not a format that meets my criteria above.

Without software which knows how to read .doc, my content is inaccessible. Microsoft has created other formats to take its place. In another 10-15 years, it might not be possible to open these files. Or, if it is possible, it could be quite the hassle. Similar to what’s happened with .wps.

So what about something like the .docx format? It’s newer, and has been made into a standard. The latest versions of Word default to this format. Quite a few programs support it, and it’d likely be straight-forward to upgrade my .doc files to .docx. Since it’s backed by XML, the format is, in a way, plain text. But that XML is then zipped, which makes it binary. The advantage is that, even without Word, I ought to be able to extract the content.

I’m not excited by the prospect of tying myself to an XML-based format, even if it is plain text. XML isn’t easy to write in, without software that hides the XML from you, like Word. And using Word would makes me reliant on a proprietary program bound to a single company.

As I mentioned, I don’t use Word much these days. Why bother trying to get myself back into using it? It costs decent money to use and upgrade. It also feels awfully heavy-weight for the writing I do. Sure, there are open-source alternatives that support .docx, but I’ll pass. There are other options left to explore.

What About PDF?

When Adobe’s document-presentation format first came out, there wasn’t an easy or free way to create a .pdf file for my poetry. It was also a proprietary, closed format. Adobe made it an open standard in 2008. Since that time, there’s been an explosion in the amount of software that works with PDFs. For example, it’s easy today to print a PDF from a web page.

Since it is an open standard with a lot of support, .pdf looks like a good option. Except PDF is a weird format. It’s easy to create, but hard to edit. It is well-suited to viewing works, like a hard copy would be. But how do you easily edit a PDF document? That’s a rabbit hole not even I want to peek in.

Since it’s easy to create PDFs from other formats, I will consider it as one of my fallback options. I can use it to back up the final product, since it’s good at preserving the presentation. But I do not want to author works with it, or use it as my system of record.

What About Evernote?

An obvious candidate for authoring and backing up my writings is Evernote. I’ve used it constantly over the last several years. I even pay for the Premium version. It’s particularly adept at taking notes on multiple devices. It has plenty of space, as well as note history. It’s software that’s made for this stuff.

But Evernote uses proprietary software and formats to store the data. My experiences with it leave me wary of depending on it heavily. Some are already calling Evernote the first dead unicorn. I don’t know if that’s true, but I’m sure Evernote as a company has a limited lifespan. The service is the software, and it won’t be possible to use the Evernote software once the company shuts down. That rules it out as a format or writing preserve.

What About WordPress?

WordPress is another application I’ve used for a long time. It’s great at hosting content. The content is mine, and I can export it easily.

WordPress does, however, store that data in a database. The database makes it easy to dynamically build a site, but it’s not a plain text format I can open up with any text editor. Then, the nature of it being a web application means I need a browser and Internet connection to use it. Those are dependencies I don’t really want.

If hackers gained access to my site, I could lose everything. Fortunately, WordPress has plugins to automate data backups to other services like Dropbox. This helps mitigate some of that risk, but it’s just not designed for the kind of use I want.

I plan to continue hosting my blog on WordPress, especially since I’ve automated publishing my finished pieces. But I still have to find something else for preserving and backing up my writing collection.

What’s Left?

I’ve covered what formats and programs and services I won’t use, for various reasons. But what’s left? What can I use? I suppose I should tell you that this post hasn’t been me walking myself toward a decision. It’s been me verbalizing decisions I’ve already made. Trying to understand myself a bit more, and provide insight to anyone else interested. I’ve already settled on a format to use, and have been successfully using it for a majority of this year.

My format is plain, ol’ text files. For styling, I use the Markdown syntax. To indicate this, the files have a .md extension. Markdown draws inspiration from how plain text emails have been formatted over the years. There are conventions on how to indicate things like emphasis, links, quotes, code blocks, and headers. Best of all, I only use regular characters to mark up my content, and these characters are easy to type on any keyboard. This makes it incredibly easy to start and continue using.

Markdown is also a program which converts this plain text syntax to HTML. I’m currently writing this post in Markdown. I’ll later run it through some code that converts it to the HTML you are now reading on this blog.

How long has Markdown been around? Since 2004. That’s not very long, in the grand scheme of things. But it has a lot of pros. It is plain text, well-supported, open, very easy to write in, platform agnostic, easy to back up, easy to version control, and I can create these files on my computer, without needing an Internet connection. Markdown also has a boatload of support on the web.

One downside may be that there are quite a few different implementations of the HTML conversion. The original syntax is ambiguous in certain cases, so programs differ in subtle ways. There are other things the original Markdown syntax doesn’t cover, and extensions of the syntax have popped up, which help to make it more powerful and comprehensive. These extensions might conflict with one another, though.

The awesome thing about Markdown is that even if the software to convert my documents to HTML disappeared, the text would still be usable. Any text editor can open these plain text files. And the syntax itself is a good indication of what the desired styling is. This makes me confident that Markdown can stand the test of time.

Since Markdown (and its various flavors) have a lot of traction, there exist programs to generate HTML pages and PDF documents from Markdown-styled text. That’s a big win. Creating those fallback documents containing the content and style is suddenly much easier.

Another huge benefit is that I’m not tied in to any proprietary pieces of software, or services which could shut down, and the syntax is free to use. I don’t need any special software to use it.

To write my pieces, I’m quite fond of using the free and open source vim. I’ve used it for years to write code, and it feels natural to extend it to my prose as well.

What About Plain HTML and CSS?

Markdown converts to HTML, and that page can then be styled using CSS. Why not cut out the Markdown middleman and go straight to HTML and CSS? They’re also open formats, plain text, platform agnostic, and all the rest.

HTML and CSS are even more widely supported than Markdown. Think of how many billions of web pages use HTML and CSS. They are technologies that will have a long tail. You can even view the very first web page ever created, and it renders perfectly in modern browsers. That’s incredible, considering it was first created in 1991.

I could do this, certainly. But typing the HTML while I write would feel clunky. I’m not trying to write a web site as I flesh out a blog post. I’m trying to work on the words themselves. Markdown seems like a nice compromise. I can work on the content, easily add some markup as I go along, and then convert it to HTML when I’m ready to publish. At that point, I can consider other details of styling, if the document requires that attention.

The HTML output from Markdown is itself another fantastic fallback document. It essentially comes along for free, thanks to the qualities of Markdown.

The Backup Strategy

Additionally, I need a process for backing up the writings. I want them safe, even if it’s years before I access them again. A successful backup strategy would allow me to lose one copy of a writing, and still be able to recover that document. This way, an accident, user error, or hardware failure wouldn’t mean a piece disappears forever.

In reality, the best backup strategy is actually multiple, redundant, backup strategies. Having many copies in many locations is even better for covering my ass.

My hesitation about services dissipates when I don’t rely on them too heavily; when a service isn’t a single point of failure. If I use a service as a backup destination, I feel better about it, because it’s one of several.

I love services like CrashPlan and Dropbox, because they’re transparent. I can use both at the same time, seamlessly. They back up files on my hard drive, which is about as unobtrusive as you can get. Backup strategies are fantastic when you can layer or combine them. For instance, it’s easy to throw in another option like Apple’s Time Machine, without changing anything about the others. They just work like normal.

I could even consider Evernote as a backup site. Evernote documents are HTML, so I should be able to take the HTML output from my Markdown piece, and stick it into a note. I’ll have to look into automating this process in the future.

Karla suggests I should print out hard copies and store them in a safe deposit box. Storing backups away from the home is a good way to keep a natural disaster, burglary, or fire from wiping out my data, but I wonder what the costs and effort associated with that are. Like she’s said, it’s not as elegant as the other options, but it is certainly interesting as a last resort. It could be the fallback to all my other fallbacks.

Version Control

For version control, I use git. It’s been around for 10 years, and has strong support around the globe. I’m familiar with git because I use it to version control software, and it turns out to be a great option for putting plain text writings under version control too.

This allows me to keep a history of changes I make to pieces. And git gives me the ability to push my writing repository to multiple places, like BitBucket or GitHub. Each of these places has a full copy of the history, which means they can serve as backups too. This is yet another way to back up my content, along with keeping track of my changes.


I’m using plain text, Markdown files to store my writings. I write using vim. I can convert them to HTML and PDF pretty easily, as fallback formats. I store the Markdown writings in a git repository, and these all get backed up to BitBucket, Time Machine, Dropbox, and CrashPlan. This feels like a robust way to back up my digital writings. It’s something that also ought to scale as I back up more writings in the future.

It’s been helpful to think through these decisions, and I hope this might help someone else. I’d love to hear your thoughts, if you’ve considered these topics at all. I’m sure there are things I haven’t considered, or things I’ll only learn down the road.

I’ve got other goals for writing-focused, web-based software, which I hope to explore. Writing this year helps give me more experience to use when I undertake those software projects in the future.

Thanks for reading, and here’s to writing!

What Drives the Worlds of Fiction?

The Lord of the Rings has a vast world, but an even richer history. This story and the related history are people-driven. The world is subservient to the actions of the beings within that world. What do I mean by this? It’s apparent when we look at Middle-earth itself. The areas of the world take on the characteristics of those dwelling there.

Greenwood the Great became Mirkwood after the Neromancer took up residence. Rivendell is rich, deep, and secure, just like the elves who created it. Lothlorien is golden, dreamlike, and beautiful, as are Galadrial and Celeborn. The Shire is quiet, peaceful, and full of good food, like the Hobbits. Mordor is wretched, ruined, and powerful, because Sauron imparts his will upon the land. The Old Forest is odd, just like its master, Tom Bombadil.

The stories of Middle-earth reflect this as well. Calamities are brought about, most often, by beings. Beings have more a chaotic, unpredictable, awe-inspiring role than does nature. The planet bends to the forces of the characters. This is interesting in that it’s nothing like the world in which we live.

We project the fortitude and resilience of the American people on the Rockie Mountains, but we surely did not make them rise up. Hurricanes, avalanches, and earthquakes happen regardless of the personalities of those living in the area. In fact, for us, the lay of the land can influence the people. Storms cause damage which impacts citizens. Forest fires cause us to evacuate our homes. Mountain ranges feel comforting. Does nature help shape who we are?

Let’s consider another fictional world – that of Dune. It contains humanity and political machinations, but it’s all predicated on a harsh and powerful world. The people bend to the desert; the economy is driven by the spice, “the most important and valuable substance in the universe”. Civilization is built on the back of the ecology of the physical world, and it deals every day with still suits, worms, and sand. This is a reversal of the approach taken in Middle-earth. It models more closely our actual world.

Is it a view from bygone days that all inhabitants of an area are the same? A sort of stereotype of a population. We’re smart, brave, and persistent. We’re American. We conquer the challenges we face. Outsiders are fearful, cowardly, and wrong. They’re foreigners. Their personality brings about the disasters they face. This mindset has no basis in reality. People of all sorts live all over. The brave and the cowardly live side by side in every country.

I can see why stories like those of Tolkien are popular. They give us a taste of what it’d be like to live in a fantastical setting where personality determines nature. It inflates our role in the world, and makes us believe we have more control. We anthropomorphize our surroundings based on our qualities. It’s a change from our everyday experience where we’re subject to the vagaries of Mother Nature.

Are there names for these approaches to portraying and fictionalizing the world? People-as-servant versus World-as-servant?

This idea recently came to me as I thought about potential stories. I’m influenced by things like Pikes Peak, which I lived near for four years. The Waldo Canyon fire also left an impression. The groups I imagine are impacted by the world and that drives action just as much as conflict with other groups. It’s fun to compare my thoughts to approaches other authors have taken, especially those who have created fictional works so popular. I’d love to hear your thoughts on this subject.

All Software Rots

Software is an interesting creature. It’s easy to imagine that a piece of software is, at some point, completed, and goes on to live and run for eternity. The group who wrote it retires happy and comfortable, based on the success of that software.

Except, this is not reality. Over time, software degrades, runs more slowly, or doesn’t run at all. Putting software out there and expecting it to be useful in the future means we’ll have to work at it. It’s a consideration I’ve only recently realized. What causes this?

A technology stack involves a lot of moving parts. Hardware, firmware, drivers, operating systems, libraries, frameworks, browsers, APIs, and applications are all in this mix. There are other things I’m not even aware, I’m sure. And these stacks support the existence, operation, and functionality of an application.

Each of these components has a purpose, design limitations, bugs, shelf life, and life cycles. Security vulnerabilities, performance issues, and annoying bugs are likely present too, perhaps to be discovered decades down the line. Software written to run on systems in the 1960s have different stacks than those written in the 90s than those written today than those written in a few years.

When one piece of the stack goes extinct, the change ripples upward. Have you tried using games or other applications from a decade ago? It’s not easy. Large programs with many dependencies are at the most risk. More pieces can rot out from under it, ruining the beautiful cathedral which many human-hours built.

Services are no exception to this rot. Take Heroku for an example. Developers can deploy their web application without having to worry about the nitty gritty of configuring and managing a web server. The tradeoff is buying into the platform Heroku provides, and their company. These are also vulnerable to rot.

Note: I use the free tier of Heroku, so I can’t really complain. It just happens to be the Platform-as-a-Service I’m most familiar with.

Even if you don’t make any changes to the functionality of a web application, you’ll have to work to maintain it. It won’t run for 10 years on its own. These platforms will upgrade their software, practices, and capabilities. Tech stacks will fall as others rise.

I use the word ‘rot’, which has certain connotations. But it’s similar to the rotting of a house. Termites just do their thing, and it results in the foundation of a house changing in ways that are structurally problematic. It’s not a moral judgment; it’s neither good nor bad. Similarly, a tech stack rotting is neither good nor bad. Developers, software, and hardware just do their thing, and it results in the foundation of an application changing in ways that are structurally problematic.

Dynamic sites have more risk of rot than do static sites. The dynamic part means there’s software, production code, and databases. Security holes, bugs, and cosmic rays will have more chance of impact. There are more moving parts that need tending to.

Sites serving up static assets like HTML, CSS, and Javascript have a better chance to survive into the future. There are fewer moving parts. Static website generators are quite popular today, for many reasons, including their speed, costs, and ease of use. They’re curious to me because the output has the potential of a long lifespan.

The generator itself can be subject to rot, but that doesn’t impact the site you’ve already created. You can switch out the toolchain, and, as long as the site created is the same, the code is transparent.

I’ve currently got The Mechanism Collection hosted as a static site on GitHub Pages, for free. I get to piggy back on GitHub’s infrastructure, but I could take the static pages and host them elsewhere, if needed. Perhaps the Pages infrastructure will rot in the future.

Static sites are something I’ll explore more going forward. Especially for hosting writings, like this blog. I don’t author my content in WordPress anymore. The comments here don’t get used much, because the conversation happens on social media, where I share the links. There are 3rd party services for comments, although I’d be wary of using one. The blog itself could be static, and visitors likely wouldn’t even notice a downside. The benefit of speed would be noticed and appreciated, however. Keeping URLs to posts the same would make the change even more transparent.

Sentient machines are a lofty goal, but what happens when there’s a zero day that turns that ‘being’ into an intelligent botnet? Rot is job security for software engineers. We have the opportunity to create lasting works of code. We’ve got some work ahead of us though.

Why I’m Hesitant To Use New Apps

I’ve noticed lately that I’m hesitant to install new apps on my devices and use new services online. I’ve distilled some of the reasons why this is the case.

Yet Another Account

If I have to create an account and new password, I think twice. I’ll have to remember another set of credentials. A password manager like 1Password, makes this less troublesome, but there’s still some amount of set-up.

What about when they authorize through another service like Google or Facebook? It’s nice that there’s not another password to remember, but will they require access to additional information from those accounts? If it’s more than my email and name, I’m skeptical of what they’re using it for.

Data Breaches

If they get hacked, my credentials could be stolen. One hears of huge companies getting hacked weekly, so it’s not a large jump to assume that smaller services will eventually be hacked too. Especially as their popularity increases.

If you use the same password across sites, one site’s breach can make other accounts vulnerable. One of my favorite features of 1Password is that it generates random , unique passwords. If this practice is used everywhere, a single password being stolen won’t affect your other accounts. That’s a godsend.

If the service contains other sensitive data, like billing, financial, or personal information, them getting hacked is even more of a disaster.

Information Leakage

If it’s an app on my phone, will it ask for access to sources of data like location, photos, or contacts? Some services have a legitimate use case, but it’s not always clearly communicated. This makes it hard to tell what an app will do when you grant access to a resource. Especially if they barrage you right after installing and first opening the app.

Fortunately, some developers have improved how they ask for permissions. This helps separate an invasion of privacy from what’s actually useful.

Trusting a Black Box

Software that’s closed source means no one can investigate the code to see if they’re being honest. Without this transparency, we’re stuck with believing what the company tells us. Omissions, incorrect statements, and outright lies are obvious sources of concern here.

Large corporations like Microsoft, Google, and Facebook have been exposed for doing questionable things with data they’ve collected. It’s even trickier when the company isn’t well-known.

Even More Notifications

If they’ve got a marketing team, I’m going to get a deluge of emails after I sign up. They’ll be emails to help on-board me, re-engage me after a few days use, try to convert me to a paying users, retain my dollars going forward, and generally market new features and other stuff to me.

Do I want to fill up my inbox with additional, distracting material of marginal value?

Push notifications on mobile might be even worse with all the banners, badges, lock screen appearances, and items in the notification dropdown.

Acquisition Doom

If the service is popular enough, will they get bought out? If so, will my data be owned by some faceless gigacorp? What will they do with it? Leak it to other affiliate services and do who-knows-what kind of data mining on it?

Or maybe the service will be shuttered. Great, I bought into an app, used it a lot, and now it’s gone down the drain.

If the service is kept alive, will it be in maintenance-only mode? That’s not such a bad option, but it’s typically a signal that the team and application are walking the plank. The only unknown is how long that plank is.

Monetize It All

After an acquisition or IPO, will they finally try to monetize the service? If so, what path will they choose? The seemingly-only option of advertising? I’ve reached the limits for my toleration for ad-supported services.

I have paid accounts for quite a few services, but I’m sure there’s an upper limit on how many, different services I’ll pay for. Paid accounts seem to be a hard sell in the consumer space anyway.

Even worse, will they turn my usage data into a product to be sold to anyone with a buck? The legalese-ridden terms of service and privacy policies give services enormous leeway on what they can do with the data they collect from you.

Finite Lifespan

Nothing lives forever; even if it’s enormously popular. It’s as true for companies as it is for people. Xanga was big and MySpace was even bigger. They’re still alive, sure, but they’re past their prime and hobbling along. Twitter and Facebook are the social-media-du-jour, but who will fill that role (or invent a new one) a few years down the line?

In reality, the incumbents aren’t the most worrisome thing. That title goes to the startups that rise and fall by the day. Startups live to be acquired or IPO, or die trying. Putting my trust in a service seems silly when they’ll be acqui-killed, or explode in a ball of flames once their funding runway ends. Hypergrowth seems a good model for the people running the company, but not those whom that company supposedly serves.

Data Graveyard

Using proprietary formats or giving up control of my data is unnerving. Sure, the service allows me create and put data in it, but can I ever get it out? If the service doesn’t have a way to export or backup my data, then I don’t have any control over it.

Only In; Never Out is an awful data model from a consumer standpoint. Perhaps, as the service grows, it’ll add on features to get my data out, but if it doesn’t already exist, don’t count on it.

Combine this with the finite lifespan and possibility of acquisition, and it’s risky to give sole control of my data to new services.


These topics run through my mind each time I consider signing up for or paying for a service. There are, of course, apps I use and find incredibly useful, even if they have downsides.

Loads of startups exist out there, with more to come. But considering the above criteria helps separate the wheat from the chaff. It’s a way to know who to support with my limited time and money.

How I Became a Web Developer

Transitory periods are perfect times at which to reflect on where you’ve come from, where you are, and where you’re headed.

Learning the Web

In 7th and 8th grade, I got interested in web development. A friend named Matt Cotter created some awesome graphics and web sites. I immediately imagined making a site to host my writings and be the home for my online presence. At the time, I went by the pseudonym Aaxiler (uh-zay-ler). Matt taught me the basics of HTML while we rode the bus, and later gave me an intro to creating graphics. That’s what started it all.

In the beginning, I used FrontPage to learn what a web site was. I mashed up templates and construction gifs and fonts and colors and sizes and got a little website for my writings put together. I wonder if I still have these pages? They’d make your eyes bleed, but I had a lot of fun creating them. The WYSIWYG aspect really helped learn the basics. Table-based layouts were, of course, the way to go.

As I became more familiar with the web, I created other sites. Realm of Aaxiler was pretty important for me. It was the second incarnation of my writing and online profile. I played around with a pirated version of Photoshop and learned about graphic design. I used Macromedia’s Dreamweaver and Fireworks too. I would post journal entries called Chronicles with some regularity. I learned what it was like to maintain one large file for all these posts. I even hosted it for free on Angelfire. That was glorious. Netscape Navigator was one of the coolest browsers out there. IE sux!

In high school, I took a web design class, where we used FrontPage to kick so much ass. I didn’t learn a bunch of new stuff there, but it reinforced what I already knew. At some point, I pictured myself growing up to be a CGI programmer. CGI programming was the only thing I’d heard of that allowed people to make dynamic websites, like what I wanted for my writings. It also seemed a good way to create text-based, adventure game sites, which also interested me. To this day, I’ve not actually done any CGI programming, but it was a good goal to work toward anyway.

Enter PHP

I kept on learning. I made sure my XHTML was compliant. I learned CSS. I looked into what kind of programming languages I could learn to make those dynamic sites I was so curious about. PHP won out because it was free. Free was very important. My time was free, but hosting or servers could be expensive. I could write PHP on my computer, use a free FTP client to upload the files to a cheap, little, web server, and run the site from there. That was a hell of a deal. I want to thank my parents for footing the bill for my programming!

I read several books on how to program in PHP, and how to create dynamic sites with it. Later on I got a book on DHTML so I could make sweet stuff happen on a page using Javascript. It was a good time on the Internet for copying and pasting Javascript snippets to add falling snow to your page. So dynamic.

Toward the end of high school, Realm of Aaxiler fell into disrepair. But, as I learned more about PHP, I built this new site called Scrawlpoint. I built it from the ground up before I knew of anything like web frameworks. HTML, PHP, CSS, and SQL all lived in the same files. I’d not yet heard of concepts like models, views, and controllers. Whatever, it got things done. I learned a lot. Around this time, creating websites clicked more with me.

This was all fueled by my love for writing and wanting a place to host it all. With how much I enjoyed working on these projects of mine, I knew I wanted to go to college for it. A computer science major was an obvious choice. The career outlook for this field also looked solid, which was a bonus.

The Ol’ College Degree

I went to The Ohio State University and majored in Computer & Information Science, with a minor in Business. My degree focused more on software, because I didn’t find hardware particularly interesting. During my time there, I made a few websites for other people, including a photographer, a professor, and a band. Even got paid a bit!

I worked on Scrawlpoint for the first couple years of college as well. I built some cool features, and convinced/harassed some friends to sign up for and use it too. Adding features to an existing site gave me experience with maintenance and enhancement. One doesn’t do this much as a student when code bases are small and ephemeral.

Over a few of my summers, I had software internships which gave me additional knowledge of web development, and software in general. It was awesome to get paid to code!

I was fortunate to do these internships. I knew others who would graduate without having this kind of practical experience, which seemed risky. Might you not like it? Theory is also different than practice. How do you find what niche of software you’re interested in?

These internships were instrumental in reaffirming my interest of and potential in the software field. The web still had a sweet spot in my heart, too.

Jumping into Industry

After graduating, I worked for Lockheed Martin in Colorado Springs as a Software Engineer. It was a good place to start, considering the state of the economy in 2009. I met some great friends here, and got exposure to large, legacy, embedded systems. Moving to Colorado and being near the mountains is one of the best things I’ve ever done.

The programs I worked on at LM didn’t involve web development. My passion lay there, however. After several years without developing for the web, I wanted to get back to it. It was an itch I had to scratch.

Lots had changed, including the software landscape, and my skill with software. I searched for what to teach myself, because I’d heard of web frameworks which would help out a lot. I knew what kind of spaghetti Scrawlpoint was, and was eager to see what newer practices could do for a site.

Re-Learning the Web

Ruby on Rails won out because of its maturity and the fantastic community. It’s easy to start with Rails, because of the quantity and quality of materials out there for beginners.

I worked on small, side projects. Web development is a daunting thing to learn, because there are so many facets to it. Discerning what magic is Ruby’s and which is Rails’ also takes some time. But you can learn things in chunks, which is how I eventually did it. Trying to learn everything at once melted my brain. Learning things modularly helped encapsulate knowledge. Kinda like OOP.

I got involved with a developer group in Colorado Springs called Springs.rb. This group of fantastic people was a force multiplier. If you’re new to the scene, I’d recommend participating in the community. You get to broaden your experiences, see what others are doing, and network. I recommend it even if you’re an experienced developer. If you’ve gained a lot from the community, it’s nice to give back and help it grow.

In 2012, I gave a talk on how to get started using vim. It was stressful to create the presentation, as well as to give it, but I found I like public speaking. Needing to know my stuff when I present helps me learn the topic better, which is itself addictive. In that way, it’s similar to writing.

I went on to organize Code and Coffee in Colorado Springs, after hearing about and attending one in Chicago. This weekly meeting helped keep up with other developers and maintain progress on my side projects. After I talked him into learning Rails, Chris Bachicha and I ended up doing C&C five days a week. That accountability and regularity really helped me keep on learning.

My First Web Developer Job

After a year and a half of teaching myself the web again, I started interviewing for developer positions. It was difficult to find a place that would look past the fact that I didn’t have professional experience as a web developer. My friend Scooter put me in touch with Spatial Networks. They were more interested in my potential and ability than my years of experience. This was refreshing! The personal recommendation carried a lot of weight, I’m sure. And a GitHub profile doesn’t hurt.

In July 2013, I started as a Software Engineer with SNI. I worked almost exclusively on Fulcrum, a platform for geospatial data collection. Some of the features I’m most proud to have worked on are webhooks and data shares. They were both technically interesting and challenging, and provided a lot of value for our paying users.

We rolled out a lot of other awesome features and improvements over the following two years. I didn’t have much familiarity with the geospatial industry, but there’s a lot of incredible stuff happening in that field. Location is important in many applications, so gaining experience here is certainly worthwhile.

The Fulcrum service is solid, and the team is wonderful. Getting to work remotely was also amazing. It’s here I discovered how much I enjoy working on server-side code. I also gained experience on the client-side, and deep respect for the people who make it look easy.

I’m grateful for all the opportunities, fond memories, and professional experience the Fulcrum team provided me. Working as a software engineer on the web has been a dream realized. I can’t express how thankful I am for them giving me that chance! Also looking forward to seeing what they do next.

Moving to Denver

Since my position with SNI was remote, I took advantage of the flexibility, in 2013, and moved to Denver. Several people I knew from Colorado Springs had also moved to Denver, and I’d gotten to experience it a bit through visiting. I could tell it had a lot of of opportunity in the social and professional arenas. The Ruby/Rails communities here are stellar. Tons of members, lots of activity, and great quality. I’ve lived in the area for about two years now, and it’s certainly been worthwhile. The tech scene is growing impressively, and there’s a lot of possibility in the area.

With the knowledge I gained with webhooks, I gave talks this year at both Denver.rb and Denver Startup Week. These were the first talks I’d given in a few years, but I found them rewarding. I enjoy the challenge of technical, public speaking.

The Path Ahead

Next Monday, I’ll start my new position at Cardfree. I’ll be a technical lead, which is very exciting. There’ll be a lot to learn, but I’m more eager than anxious. From my experience with mentoring and public speaking, I know I enjoy helping others learn and gain proficiency. Also invigorating is the opportunity to help influence the design, implementation, and roadmap for an application.

Additionally, over this past year, I’ve made progress toward my aspirations of writing. Software has, naturally, tied into this. Most of my blog posts this year have been written in and published through my everything concept. There are lots of places to improve it, which I will do over time, but it’s already been helpful. Getting back to the basics of writing regularly has been fantastic.

It’s interesting to look back on how my passion for writing and software started, and compare that to where I am now. I’ve been very fortunate to do what I enjoy. And I’m stoked to think of what potential the future holds!

Writing and software are inextricably linked for me. I look forward to discussing both more in future posts. If you’re interested in writing, software, or both, I’d love to talk!


Savagery stood on a stool tonight.
Whooped and hollered with a noose at its neck.
Earth quaking, just teasing at the future.
Naught to do but tip the fellow over.

Streets as scars, crisscrossing and pithy,
artistically lashed into Her hide here.
Filled with feet stamping on the asphalt
to an anthem born of innateness.

Sweat still falling and dust now rising –
the embrace of a prophetic end game.
To beat out a rhythm that builds momentum
requires some sort of inspired madness.

Our gears turn a ferocious flywheel
to build up and pen up
the wailing and mesmerizing
dashed with recklessness.

Just wrapping paper over a gaping maw,
given away by the flutter of our breath.
Ripples and shadows hint at the truth.
Couldn’t keep calm holding a rapture in our chests.

No well-precisioned equipment on this block
to dampen that tremoring.
Just blood and flesh, and tempers flaring.
Can’t dress up an horrid truth like us, see.

But Savagery stood on a stool tonight.
Whooping and hollering with a noose at its neck.
The rage resounding until it’s a standing
wave deep in all our bones.


I surround myself with noise
and it floods me with adrenaline.
Stoking my ego until it boils.
Though, once the fuel is gone, the
boil is a simmer is a tepid is a standstill.
And that emotion has evaporated, but has
still left behind a residue.
A coating that sits on the back
of my throat, and settles on the bottom
of my stomach, and films over my
heart’s chambers.
I’ve self-medicated more than a few
of those doses, because the screaming
is a nice departure from the baseline silence.
And each application deposits another layer of
this silken tar.
Silently, it will build, until the only
way to trip another surge, and tap into
that experience will be to fall
headlong into the ether, screaming my
soul out, until the singularity kisses me.

Evernote: The Elephant That Forgets

I have used and paid for Evernote for years. I use it virtually every day, and I have amassed 1,970 notes to date. But it makes me nervous.

Data Obliteration

Evernote’s iOS app periodically obliterates the contents of notes. Once in a while, I’ll open a note just to find that all the content is gone. I have no idea why this happens. It appears infrequent and random, but happens just often enough to be annoying.

Had I experienced this before I paid for Evernote, I would have been pissed that my data was permanently lost, and never upgraded. My confidence would be shot. Fortunately, I only experienced this after I upgraded. Note history is a feature of Evernote Premium, so there was a backup. Unfortunately, it’s not something you can do from the mobile app. In order to get my note’s content back, I have to use the desktop application, and pull out the text from the version history. I’ve been able to get these notes back, but it doesn’t inspire confidence. The mobile app still ruined everything in the first place.

Nebulous Versioning

Additionally, the versioning is inconsistent. According to Evernote:

Several times each day, Evernote makes a copy of any notes in your account that have changed since the last time the system checked.

Several times each day sounds great, but that’s completely nebulous. When do versions get made? If I make a change and then sync it, do I get a new version? If not, at what point will it become a version?

Through experience, I’ve found I’m most likely to need a prior version when I’m actively editing a piece. Copying, pasting, rearranging, and reworking text are when I make mistakes. That’s when I’ll need a backup to help recover. Making versions, on the server, only a few times daily doesn’t give me much assurance that I’ll be able to recover when I need it most.

The imprecision around versioning is the exact opposite of what I would expect out of such a feature. It should be deterministic, predictable, and frequent. Not hand-wavy and whenever-we-get-around-to-it.

Another thing I’ve noticed is that the iOS app doesn’t allow you to undo or avoid saving accidental changes. Technically, it lets you undo one-character-at-a-time, but, come on, that’s the same as not allowing undo at all.

Combine non-deterministic versioning, no undo on mobile, and periodic data obliteration, and it is only a matter of time until you lose a note you’ve entrusted to them.

Lackluster Conflict Resolution

Another thorn in the foot is that Evernote barely handles note conflicts. If you edit the same note on multiple devices, this will happen at some point. They plop one version of a note in some new notebook, and leave another in the original note. But they don’t give you any indication of what caused the conflict. Resolving that conflict is a completely manual exercise. Good luck if the note is lengthy.

Shaken Trust

After being burnt a few times, I’m not confident that Evernote is good at preserving my content. But Google also has problems. And Apple is known to suck at cloud services.

I’ll continue to use Evernote, but I hope to phase it out some day. There’s a possibility they could turn things around and change my mind. But who knows what’s on their roadmap? Them destroying my notes is completely unacceptable. I’ve reported this issue to them, so I hope it gets fixed. But there’s still that fear that something like this could happen again, and there’d be no recovering from it. It shakes my trust in their abilities. A more rigorous versioning scheme would be wonderful. As would an ability to back up my notes to other services like CrashPlan or Dropbox.

Software’s hard, I know that well. But it’s disconcerting that the most powerful tech companies in the world can’t get it right, especially when it involves data loss.

Beyond The Clouds

The Cloud Arrives

Software used to come in boxes from the store, just like crackers and pasta. Things have changed though. There’s now a clear trend toward cloud-hosted software. Instead of installing the software to your physical machine, you access it remotely. Servers contain the application, and your browser is the portal to access it.

Sidenote: It’s called The Cloud, but that’s mainly a marketing term. We’ve had servers and clients, and websites that run software and store data for a long time. Perhaps the term caught on widely because of timing. It just happened to be the popular term when the Internet made its way into everyone’s homes and pockets. It is a pretty convenient term that most people understand, even if the details vary from site to site.

Cloud-hosted software has an advantage that applications are always up-to-date. The company’s engineers take care of updating the system. Users get the current version each time they visit the website. This is enormously convenient. And these updates can happen hundreds of times per day. One downside is that an Internet connection is required. Another is that the application is completely out of your control. The service can disappear today, and you’d be shit out of luck. This is enormously inconvenient.

Just as popular are applications which are installed and run on your laptop or mobile device, but sync user data to the cloud. This cloud-backed storage has the advantage of being accessible from everywhere. Dropbox and Evernote are two great examples. I can access the same data on my laptop as I can on my phone. An Internet connection is required here as well. And the details about your data are also out of your hands. This can be good when it comes to redundancy, backups, security, and price. But it can be a concern when it comes to privacy, control, and who owns or can use your data.

A Hybrid Approach

Software like WordPress is a hybrid. I don’t purchase or own the software, but I still have a lot of flexibility on how to use it. I can host with Wordpress the company, or I can run the application on a machine of my choosing, on my own terms. My blog runs on a server for which I pay. If I want to switch hosts in the future, that’s completely possible.

The WordPress software automatically updates, which is helpful for keeping up with feature improvements and security fixes. This makes it a bit like a cloud-hosted service. It doesn’t use cloud-backed storage though. My data is stored in a database or disk on the server I rent. WordPress does give me ways to export my data, which is important. I can avoid vendor lock-in, and also make backups. There are even plug-ins to automate backups to other locations, like Dropbox.

I love the model of WordPress. Since it’s open source, anyone else can contribute to the project. Even if you don’t want to do that, you, as a user, take advantage of the contributions. You can host with WordPress, which is convenient and helps support them. But you are free to do your own thing. You can tweak the software, run it on your laptop, or serve the site from anywhere you want.

It’s largely decentralized. Sure, there’s the organization which produces the software, but anyone is free to take WordPress and make it their own. It’s fork friendly. Bitcoin is also decentralized. It gives a glimpse of what it’d be like to have a currency not regulated by a central government. That’s exciting for a lot of reasons.

Restoring Our Control

Centralized services do have benefits, but I can envision other software and services taking on the distributed, decentralized approach in the future.

Imagine if Facebook owned their social graph, APIs, and protocols, but took a distributed, decentralized approach to hosting, bandwidth, and storage. These costs could be spread across the user base, in exchange for giving the user more control. I wonder what this would do to Facebook’s operating expenses? There would be challenges, certainly, but it’d be nice for the option to exist, like it does with WordPress. I’d feel more comfortable using Facebook if I knew the content was actually mine and I had more say in how it gets used.

One of the things I like best is that I can have my WordPress blog under my own domain. That’s not possible with many other, centralized services. I can use instead of I’d prefer any software or service I use to fall under the umbrella of my online presence. But, currently, most of my online presence is spread between the umbrellas of many different services.

We should be eager for options to exercise authority, control, and ownership over the digital footprints we leave behind. Today, we can’t opt out of or partially agree to privacy policies or terms of services. You either agree to everything, or you can’t use the service, which leads to most users blindly agreeing to anything and everything. This doesn’t currently matter to most people, but what happens when more and more of our lives are under the thumbs of these third parties? Terms of service should extend both ways.

We currently throw our data into the ether and hope for the best. But data breaches happen daily. And they impact the organizations and companies we expect the most security from. Online security seems a joke, if these groups can’t even do it right. The real kicker is that their security lapses puts millions of people at risk of identity theft and fraud. Sure, they have a monetary cost to fixing their shit, but those impacted must deal with the fallout for years. Our social security numbers and credit card numbers and all the details of our lives are in the hands of… no one knows.

Decentralized applications are a peek into the future where people have more control over their destinies. It’d be a win even if a data breach only affected tens of people instead of millions at a time. Regardless, I’m curious to see how we augment or move beyond the cloud, and how decentralization spreads to other areas of our software, lives, cultures, and organizational structures.

Automatic Vehicle Ventilation Idea

Sweltering Heat

We all know just how hot vehicles can get during the day. Infrared rays enter through the windows, and heat up the interior, along with the air inside the vehicle. Since there’s no way for the vehicle to ventilate, things get hotter and hotter. This process is similar to an oven; using the sun as the power source, instead of heating coils. Once the car’s materials are heated, the high interior temperature can last well into the evening. When you get in several hours after sunset, it can still feel stifling.

Direct sunlight is the mostly likely culprit for a car heating in this way. Cars with on-board, rechargeable batteries, and the spread of photovoltaic cells makes me wonder if there’s a way to address this.

Sun-Powered Cooling

Hot air rises, so the car’s warmest air will rest at the roof. Could we add a small ventilation system to the pillars of the car? Fans in the ventilation ductwork would draw air from the upper interior of the car, to the exterior, and ambient-temperature air would replace it through another set of ducts. I’d guess that pulling air from around the undercarriage would mean we’d get air at a cooler temperature. Or perhaps where the vehicle’s normal air intake resides?

This system could be powered through PV cells, and/or on-board rechargeable batteries, when the internal temperature exceeds the external temperature by say 10°F.

For cars with a moon or sun roof, it would be practical to integrate decorative vents there. There are possibilities for styling, to be certain. Luxury models might incorporate air conditioning to this process.

Preventative Measures

Perhaps there are other ways to reduce the car’s resting temperature?

I can imagine an additive in or coating on the car windows which would automatically reflect the incoming sunlight. Preventing the direct sunlight from entering the vehicle in the first place would greatly help to reducing the baking temperatures. Maybe to such a degree that a ventilation system wouldn’t even be needed.

However, the exterior of the car could still warm

But there may be safety considerations to this. What triggers the tinting? Could it be activated accidentally while the vehicle is in motion? That would cause a driver to lose vision of the roadways.

No-tinting would be a safe default state. Perhaps a continuous current from a rechargeable battery might be required, one that could only be delivered when the vehicle isn’t running. So when power is lost, the tint fades automatically. The power could again be harnessed from sunlight.

An additional setting within the car could regulate whether that tinting occurred at all. One might want the sunlight to enter the car during the winter to help defrost the windows. This could even be triggered by temperature sensors.

Combining Systems

In particularly hot, muggy, and sunny climates, I imagine the combination of a solar-powered ventilation system and window tinting feature would greatly reduce the interior temperatures of cars. An additional benefit comes with the system being powered by the same energy that heats the car in the first place.

I wonder how effective this would be on a large, asphalt parking lot, where the ambient air temperature is brought up because of the heat island? Will the temperatures outside and inside be pretty similar?

After checking, I find that a car’s interior can be over 20° hotter than outside. Interior temperatures can really skyrocket above even the most brutal summer heats.

Choosing a regularly-cool, shaded part of the vehicle for the air intake should make it possible to lower that interior temperature, even when it’s scorching hot. This would also make the car return to a normal temperature after it’s no longer in direct sunlight.

On Selling The Idea

I hypothesize this idea would improve driver and passenger satisfaction with their vehicles, since cars wouldn’t be nearly as hot during the summer months.

Drivers may be more willing to take trips they’d otherwise avoid when the vehicle isn’t miserable. And who likes being burnt by hot steering wheels, seat belts, and seats?

It could also help improve the fuel efficiency of the vehicles, by reducing the amount of fuel/energy needed to cool a vehicle once running. I’d love to see a study on how much energy it takes to lower the interior temperature an additional 20 degrees beyond what it is outside.

I’ve had this thought several times, after my car has baked in the heat all day, and wanted to share.