I stand on the shoulders of giants. Yesterday I published my very first package to the Python Package Index (PyPi). I absolutely love to write and blog, and the Pelican software package for generating static pages for blogs is pretty amazing. I love it forever.
But my workflow was clunky. I had to go to my folder, make sure my repo was in sync (You don't keep your blog posts version control;ed? For shame!), edit a new post, run pelican to actually generate my static content and then publish it. Sure, I had a Makefile that would automate a lot of it, but for me my barrier to entry was high. So I didn't blog very much.
And even though I love the idea of plain text, for some reason, writing my blog posts in Vim got a bit distracting, I think. Then I was exposed to Draft.
For me, the killer feature of draft isn't its minimalism (though it does have that - I'm full screen on my 1900x1600 monitor and there's nothing but this beautifully narrow (probably 80 chars wide) strip of light gray text on a dark gray background. A couple of unobtrusive icons and text at the corner like the menu and my current word count (225, but I've made a few typos). No, the killer feature for me is Hemingway Mode.
Hemingway mode is this cool feature dreamed up by Nate Kontny, the author and developer of Draft. Hemingway mode makes you "write first, edit later". It basically just prevents you from using your backspace key to any effect while it's enabled. You can cheat with the delete key, but it's a pretty explicit cheating. I've written about Hemingway Mode several time s in several places, but it's been such a benefit for me. Most of the time when I'm writing a post, i'm constantly going back and changing the wording or fixing typos. But Hemingway mode prevents me from doing that at all. So my thought stream has to come out on to the page until I'm all done and ready to edit.
Then I can come back, clean up, reword, fix typos.
It's pretty awesome, thought, because when I'm going forward I end out producing more, and at least I think, better content because I don't lose my train of thought by going back and editing in the middle of the thought. If you haven't tried it and you suffer from the same problem, I highly recommend it.
And if you really want to get the feature in vim:
:inoremap <bs> <nop>
And to turn it off:
:inoremap <bs> <bs>
Oh wow, so pardon that diversion, apparently I was super interested in the cool tools that I use.
Deploying a piece of software that I wrote, letting it out to the real world (PyPi & Github) was a rush. I got this thrill of accomplishment. "Holy crap. I just did something. For the world." Maybe it only gets used by me. Maybe it introduces people to the awesome world of Python, Draft, Flask, Blogging, or Open Source. But for good or for awesome, I have actually done something that I can point out and say, 'Hey, I did that!"
But I was also amazed by how easy it was to do with the tools that I had at my disposal. And I felt immensely grateful to all the giants who stood before me and whose work i was able to capitalize on. Obviously my software was written in Python, so you have Guido Van Rossum, our BDFL. You also have all of the core Python devs and basically the entire python community. In the more immediate sense, I followed Jeff Knupps' guide to open sourcing a Python project. I used Audrey Roy's phenomenal Cookiecutter tool and was just able to start up a project, bam! Of course in order to use that, I had to be using git - so there are a ton of developers for that project too. I used Tox, and Pytest, and Travis CI, and Github. And I was developing on Linux, so there's Linus Torvalds and the giants that he stood on. And ssh across putty to my development machine. And right now I'm writing this post using a free tool by the aforementioned Nathan Kontny.
I cannot tell you how awesome all of these people are. And when I published my package to PyPi, it felt as though I joined their ranks (if only in some small part). I am now someone trying to make the world better through code.
To all the giants, both mentioned and unmentioned, you have my eternal gratitude.
And to those who may stand on my shoulders one day, you're welcome. Now go build something awesome!