Alpha release of MemoryTyper - Lessons Learned

I never coded as hard as I did when I announced to my friends on a particular Tuesday that I would release a beta version of MemoryTyper. The pressure forced me to code with urgency like I had never before. When I technically missed the deadline, I went to sleep, woke up, and casually finished coding before releasing at 2pm the next day. The urgency of the deadline made all the difference.

So that’s one lesson (re)learned. If I have goals, I must put deadlines on them, or else I’ll just “get around to it some day.”

Also because of the pressure, I very nearly followed through on my commitment to Just Code and get the basic functionality completed. Very nearly—I spent a significant amound of time on build tooling.

Read More

> npm install self-hosted-blog

Well, it turns out that creating your own blog and website is complex, but only if you don’t know what you’re doing. I wanted to run a site (jonas.ninja) with a blog subdomain (blog.jonas.ninja) cheaply/for free, on my own, on node.js rather than crummy old PHP*.

I do my hosting on NearlyFreeSpeech.net. They’re awesome. If you are considering a host and are willing to roll up your sleeves to do the dirty work of managing a web server, check it out. It’s amazing how mere pennies will keep a server running for months. Anyway, I briefly considered installing WordPress, but because NFS’s costs are directly related to how many resources you use, I decided to try a static blog.

Enter Hexo. Let me show you how easy it is to get a blog running locally. Assuming you have node/npm installed:

1
2
3
4
5
6
npm install -g hexo-cli
mkdir mywebsite
cd mywebsite
hexo init
npm install
hexo server

It’s basically that simple, although to deploy online there’s a configuration file that should probably be edited. There’s no GUI for website management. Posts are Markdown files. You edit them in Vim or Emacs (or, better yet, any text editor created after 1975). Tags and categories are manually typed in each post, not selected from a list, so there’s the risk of making a typo. You have to remember a few other things, like the front-matter fields and formats. Most importantly (for our cheapskate needs), you have to generate your static site content with hexo generate. For your trouble, you have a tiny, cheap, and hackable blogging platform for your lightweight, hands-on hosting solution.

As I shared in the previous post, I was very anxious about getting my website and blog off the ground. I decided to act in spite of my fears and just tackle the challenge head-first one day, and I found that the challenge was infinitely easier now that I knew just a little more about node and npm than the last time I tried. It’s good to see that dabbling in unknown technologies gives significant return on a small investment, and not just for complete beginners but also for people like me who are experienced in some other area of technology.

Also in keeping with what I shared in my last post, I made no effort to change the default theme and styles of the blog. I did not set up the RSS feed. There is no analytics. Comments via Disqus are not yet implemented (although I might go for Echochamber.js instead). My blog is up and running—that’s all I need right now.

* I am obligated to state that PHP is a fine language, that you can certainly make quality web sites with it, and that only the finished product matters. PHP was one of the first languages I learned, and I did not learn it well. As a result, I made really crummy products with it. I’ve never seen high-quality PHP code, and so I tend to think of PHP as a low-quality tool for minor projects.

On the anxiety of building my personal web site

This post was first published on my personal WordPress.com blog. It was migrated here for historical reasons (and because I am a compulsive completionist) and may have been edited from its original form and content.

I have discovered that I have been feeling a great anxiety over the looming task of building my web site (jonas.ninja). There’s nearly nothing there right now. I’d like to make it something, an extension of my personal brand. It’s kind of important! And so I panic, because in my mind I see visions of grand design, subtle visual effects and masterful content organization.

Well, that’s all nonsense. I don’t have a brand yet, so I can’t do a poor job of redesigning it. There is no established user base to be confused by a dramatic change in layout and style. And there’s certainly no content to be lost in poor navigation. My anxiety sprouted from that mixed blessing of perfectionism which drives me to make everything right the first time, for all time. In truth, I am as free as I could possibly be to make any web site that suffices my needs.

And that’s really the key word. Suffice. One of the few bits of knowledge I gained from my education is that iterative prototyping is a better way of arriving at excellence than building on assumptions and unproven theories. Seth Godin and Malcolm Gladwell also seem to think this applies to life in general. So perhaps I’ll make a series of barely-sufficient sites, or slowly improve on the initial one over time. The important thing is to stop panicking because my goal is not to make a masterpiece.

Secure passwords

This post was first published on my personal WordPress.com blog. It was migrated here for historical reasons (and because I am a compulsive completionist) and may have been edited from its original form and content.

I remade my entire online account password strategy. It was quite a project.

I have about 170 online accounts that I care about. These range from pointless web sites that I rarely use to crucial email and bank accounts. Each has a unique password. But I haven’t memorized 170 unique passwords, oh no. I’m not that crazy. I have password generation algorithms that I use to create passwords. Depending on the type of site that I’m viewing, I used one of a handful of (very similar) algorithms to “generate” the password.

It was sufficient at the time.

Read More