Keep Building

Novelty is overrated

Nov 18, 2014

The Pernicious Myth of Novelty

The tag line of this blog is "novelty is overrated" because we are far too concerned with being original. It is very easy to have a great idea and then become discouraged when you see that others have had similar ideas. But this is an impulse we must strive against. Your great idea is still great even if others have done something similar. There are still many good reasons to build it.

Build it Anyway

The most important reason to build your idea even if it is unoriginal is that there is so much you will learn by building it. Thinking up ideas doesn't teach you anything. It is only by implementing them that you can gain true mastery. And the new things you learn will spur you on to bigger things. The next idea you have will incorporate the new things you have learned and will be even better.

It is also the case that your idea might be superficially similar to something that already exists but the details will differ. The only way to find that out is to flesh out the details by building it. The truth is that every idea is well anchored in the intellectual context around it. Improvements and novel ideas are usually incremental at the time and it is only in retrospect that we look back and see it as a great leap.

Avoid Temptation

In the age of search engines, it is trivial to find out who else has an idea. And it is almost always the case that you will discover that your idea is not unique. One way to avoid discouragement is to bask in blissful ignorance. Avoid the temptation to find out how unoriginal your idea really is.

When I came up with the title of this blog, I deliberately avoided searching to see if there were any other blogs with the same name. I don't have the discouragement of knowing about the half dozen other blogs with the same name. I haven't wasted days fruitlessly trying to come up with a new name that nobody has ever used but still familiar enough to be attractive.

In general, there are many reasons to read about similar ideas when working on a project. You might look for inspiration to see what can be done. Or you might be doing research to improve your techniques. But if you ever find yourself starting to compare your idea to what is out there or wonder if it is original, stop. Go work on your idea for a while and regain your enthusiasm.

The Myth

The concern with originality is a stultifying influence on creativity. But the notion of completely novel ideas that spring fully formed from the mind of a unique genius is wrong as well as bad.

Every idea derives from what came before. And the great ideas occur in a social context where people collaborate or compete and use the best parts of multiple projects to make the result even better. Einstein and Newton worked and talked with other very smart people many of whom had groundbreaking ideas of their own.

If you write your idea down in just a couple of sentences, there is not enough detail to see what is really new. Any true innovation is in the thousands of details that come from developing your idea. The difference between the useless theory of atoms developed in Ancient Greek philosophy and modern atomic theory is in the details that are used to form the basis for chemistry and physics.

This Blog

So this blog will not be a chronicle of new inventions. Everything I build is rooted in the work of those who came before. I wasn't the first person to use Pelican to host a static blog and Pelican was not the first static blog generator. But my journey is still my own and is still interesting. And Pelican is still a great tool.

The tag line is there to remind me that it is ok to walk a path others have gone down and that there are still interesting things to be found even if I am not blazing a new trail for the first time.

Nov 17, 2014

Blogging Platform Configuration

The overall setup of my blogging engine is now complete. I had a few requirements which are fairly unusual:

  1. Host it myself entirely in Amazon S3
  2. Edit and upload each post entirely using my tablet (an iPad)
  3. Upload images and automatically paste links while editing a post
  4. Automatic backup of the entire blog to Dropbox each time I post
  5. Ensure that I can figure out which backup blog post points to which backup image

Hosting

The only reasonable way to host a blog on S3 is to use a static site generator. I chose Pelican, though Jekyll and Octopress are both good alternatives. These are all command line tools that turn a folder of CommonMark documents into a static set of html and CSS files that can then be uploaded for hosting anywhere.

Publishing on iOS

None of them have anything remotely like an iOS client. The closest thing to a console on iOS is Editorial, a text editor that is programmable in Python. And I found out how to run an SFTP client in Editorial and that is how I can get from a piece of text to a post.

After completing my post in Editorial, I just invoke the upload workflow to push the post to the input folder on my VPS. The VPS is configured to run Pelican and the upload is immediately detected by my daemon which uses inotifywait to detect when files are changed. The daemon then uploads the files generated by Pelican to S3 for hosting.

Image Upload

At first, I was planning on using the Transmit iOS app to upload images directly to an S3 bucket. But there is no url scheme or x-callback-url support in Transmit which would make the whole process cumbersome.

So instead, I decided to reuse the SFTP code in my post upload workflow in Editorial. My picture workflow lets me choose one or more pictures from the camera roll and then inserts a CommonMark image tag for each url. When I upload the blog post, then the images themselves will be copied from my VPS to S3 at the same time by my daemon.

Automatic Backup

Since I am authoring and publishing directly from my tablet, I need to make sure that I am have everything backed up in multiple places. I will retain a copy on my tablet, and there will be an extra copy on my VPS, but it still feels a bit fragile. So every post and image is also uploaded to Dropbox. This is easy to do in Editorial which can be linked to a Dropbox account. The real trick will be handling sync if and when I decide to add a way to upload blog posts from my laptop.

Nov 15, 2014

Mobile Test Post

This is a mobile test post. I have written it in Editorial on iOS. If everything works, then I will be able to upload it to the origin and it will automatically post.

The workflow I am using is the SFTP workflow created by Gabe from mac drifter.

Now things are mostly working. With the current setup, I can automatically prepend the date to the file and backup to Dropbox. The next step will be to figure out how I can host images and upload them from my tablet.

Here is a test of the picture hosting. You can see a piece of my workflow in this image.

Workflow Screenshot

Nov 13, 2014

Test Post

This is my first blog post for the Pelican blog system. If everything goes well, then this will cause my watch script to automatically build the templated website for the first time.

Well, here goes. Time to save.

...

Here we go again. The first time this whole site got built but it skipped this entry because it didn't have a date.

Second time is a charm.