Pajama is one of those words that seems weirder the more you think about it and that’s because it’s a Persian word. The English Imperialist no doubt stole it. I don’t endorse imperialism, but I do endorse the word pajama.
I love this song, but the logistics of making this video are even more amazing. They fit at least 50 people into this tiny apartment to record it. Since they can’t all see Gabriel as he conducts, it appears that they have sub-conductors who stand in door ways and at corners trying to exactly mimic Gabriel, so everyone stays in sync. This seems ridiculous, but somehow it appears to work.
This song is so good. Perfect barstool song—nostalgic and makes you want to belt along.
I hadn’t heard of this band, Mischief Brew, until now, but they’re this anarco-punk band that is folk-y but with an edge. In 2016, the frontman of the group, Erik Petersen, who seems like he was a truly excellent person, took his own life, so they are tragically no longer active, which makes the song even more bittersweet.
//BNJMN (3/17/19): Last night I watched my drummer friends play with their bands at this dingy live music bar called Spicolis in Cedar Falls. Fun to watch them play, but that bar is def not my scene. Good to hang with the crew though.
//BNJMN (3/17/19): Went to the Single Speed Brewery located in the old Wonder Bread factory in Waterloo yesterday. Get the Amish Pretzels.
Week 10 of 52 Failures. I don’t feel as great about this one for some reason, especially with hindsight. People did like it though. I just feel it wasn’t put together well enough yet.
A weird, fun band that my brother turned me onto awhile ago.
//BNJMN (3/10/19): Today I was admiring the Herschel Supply Co computer bag I used in college. By now the Herschel Supply Co is a super hipster-y brand and it’s everywhere, but at the time the company was really young, and I’d never seen one before I ordered mine. I remember one of my favorite teachers being impressed by it.
My bag was a special edition color (it’s tan and red) and it’s a type of bag that they stopped making shortly after I bought mine. I poked around on the internet and couldn’t even find it anywhere online and I forget the name of the model.
To be honest, it’s not an amazing bag—the compartments are severely limited—but I liked it a lot. I still use it as an overnight bag every once in a while, but I don’t ever use it for my computer anymore.
//BNJMN (3/10/19): The thing I like least about illustration and graphic design work as opposed to coding, is that when I have an illustration project hanging over my head, it creates more anxiety than coding projects seem to. For some reason the coding stuff seems more like a puzzle that I will inevitably solve, whereas illustration feels more like I’m psyching myself up for doing a stunt that I’m afraid could end in disaster.
The irony is I’m much better at design and illustration than coding. Just different mindsets.
//BNJMN (3/2/19): I’m not video game person, but Zelda: Breath of the Wind is VERY fun. It’s beautiful and you can ride horses and climb mountains!
//BNJMN (3/2/19): I met Elizabeth Warren briefly yesterday. The most interesting thing to me was I asked her about filibuster reform and she sounded excited about it. In other statements it sounded like she was open to it but not so enthusiastic.
One of those pieces of music that is impossibly perfect. The composer, Morten Lauridsen, did a video about the composition of the piece that is delightful and soothing and added depth to my appreciation of the work.
Last night I spent a couple hours putting together an alt country playlist on Spotify. For the uninitiated, alt country is a type of country music that isn’t as infected with pop as mainstream country and isn’t about trucks.
//BNJMN (2/23/19): Working theory on Minnesota Nice:
Midwestern social mores are built around trying to ignore, suppress, and compartmentalize conflict. Passive aggressiveness is a symptom of suppressed aggression, sure, but also there’s probably less aggression overall than some places.
//BNJMN (2/22/19): Lately I’ve been bingeing the Wirecutter recently, thinking about computer monitors and laptop stands and accessories. I tell myself I’m researching, but it’s pure, unadulterated Romantic Consumption. Consuming the act of consumption itself.
I don’t feel good about being a Romantic Consumer, but I certainly am, and so is just about everyone integrated into capitalism. On the grand scale of history, this is strange.
Someone needs to order me one of these. Currently I’m using an Olympus, which I do like, but I’d love to upgrade.
//BNJMN (2/19/19): There are certain types of mistakes that aren’t cumulative, but a form of exposure. They don’t add up, but each has a chance of blowing up.
I’ve been watching this show. Interesting politics, beautiful costumes and people.
//BNJMN (2/18/19): I’m stuck on an illustration problem and I’m realizing that I need to move on to the next one and come back to this one later. Vision is a fickle thing.
I use a DigitalOcean Droplet (a VPS) to host some of my sites, but recently I’ve been really into their illustration style. Visually it connects with my work at The Block, so I’m especially obsessed at the moment.
I was reading The Spinner’s Wikipedia and found this uncited line about how Motown Records used them during a lull toward the beginning of their career:
With limited commercial success, Motown assigned the Spinners as road managers, chaperones, and chauffeurs for other groups, and even as shipping clerks.
I don’t know if this is true, but if it is, it definitely paints a picture of the difficulties black artists of the era must have faced. I don’t don’t know if this is something that was common practice, but I wouldn’t be shocked if it was.
I was really happy with how this illustration turned out. It think it’s a very gentle, calm depiction of death. If I did it again, I might even edit out the watchers, and add in another squiggly wave.
//BNJMN (2/15/19): Half of being a good cook is being willing to dig through the trash to read the instructions on the box because you threw it away too soon
In the summer of 1893, the composer Anton Dvorak spent about three months in Spillville, IA—a tiny town about 30 miles from my home town—and it had always been a great disappointment to me that he wrote his most influential piece, Symphony #9: ‘From the New World’, just before then in early 1893.
I just recently discovered that while the piece was probably mostly completed in early 1893, but it wasn’t premiered until December 1893, which means that there is a good chance he worked on and maybe even finished the symphony in northeast Iowa. I don’t know if that’s true, but at least one source said so. I really want it to be true.
Here’s an illustration I did for The Block. It’s not highly polished (I turned it around in 2 hours), but I really like it. I’m going to be working with them a fair bit, so look forward to more.
//BNJMN (2/11/19): Lots of people think sea lions are just lions that got in the water, but they’re actually not. Science is beautiful.
//BNJMN (2/10/19): This is a test of the workflow I’m using to post asides from my iPhone. I’m using Drafts to draft the post and add in formatting. Then I have Drafts send the text to Working Copy via the x-callback-url protocol, where a new file is created and pushed to GitHub to be published.
//BNJMN (2/10/19): I just added SSL to the websites I host on my VPS using a tool called Certbot by Let’s Encrypt. Technically it went smoothly, but I gave myself a shock when it broke my portfolio site for a bit. All I had to do was go in and fix a link, so no biggy, thank goodness.
There are two reasons this website exists. The most sensible one is that I miss having a website for just posting whatever. I miss blogs and I think it’ll be cool to have one site I can use as a hub to point to my other projects.
The other reason is that I wanted to try out a new (to me) web development stack I think is interesting. When I build a site from scratch I’ve mostly used Wordpress as the content management system (CMS). Wordpress is fine but has drawbacks. It can be unwieldy and overbuilt for a lot of uses, setting up a Wordpress site so it runs fast can be finicky, and the whole software and plugin overhead around Wordpress can bloat up really quickly.
Instead, I wanted to set up this site as a static generated site, which I think turned out great. I ended up with this lightweight, fast site that I’m able to host totally free, and I can make work in the way that suits me.
The rest of this post is about the technical side of the site, so if you’re interested, read on!
Static Sites
Here is the way traditional websites built with CMS’s work: when someone wants to view a webpage they make a request to your web server for a page, and web server gathers all the data it needs, assembles the page, and sends that info back to you. That’s a lot of work, especially if lots of people are visiting a site. There are ways to make this more efficient (namely caching, which helps a ton if it’s set up correctly), but that’s the principle. These traditional monolithic dynamic sites are assembled on the fly, which means if something goes wrong, your site gets slow or goes down.
The development stack I’m using for this site is built around something called a static site generator. What a static site generator does is it creates the entire website all at once, only regenerating the pages when you actually update the website. So instead of assembling the webpage from scratch every time a web browser visits a page, all the pages have already been created, so it just has to send out that pre-made file to the user, which is easy.
What this means, practically, is that you can create a website that is highly efficient and won’t get overloaded, and is also much more secure than a website built with a traditional CMS like Wordpress. Once the site has been generated, not much can go wrong.
The other interesting attribute of a static generated site is that the content of the site is stored as text files in folders. There’s no invisible database. It’s just like files in your finder. This can be a good thing or a bad thing depending on your needs. For my uses, I think it’s great. It gives me a lot more flexibility.
Deployment: GitHub
My deployment system is built around GitHub. Since the content for a static site is just files in folders, you’re able to manage and deploy the entire site via git (which is a commonly used version control system that makes it so you can restore old versions of your code if you break something). This is cool because it fully backs up and versions your site and your content, and you can sync it between multiple locations. GitHub is the de facto web-based git repository host of choice for most developers, and I have a free account already, so I decided early on that I’d use GitHub as a middleman in my deploy process.
Here’s how I decided I wanted the site deployment process to work: I make edits or write posts > I push the updates to Github when I’m finished > Github tells my web server that there are updates > the server pulls the update from Github > the server, running the site generator builds the site.
Static Site Generator: Jekyll
A static site generator is the tool that takes your content and your templates and converts them into actual web pages. You can run the generator on your local computer, output the site there and then send it to your server, or you can have the server running the generator by itself. I decided early on I didn’t want to generate the site on my personal computer, because I wanted to be able to update the site from my phone, so the generator needed to be hosted on the server.
In hindsight, I wish I had researched the different static site generators more before I started on the project because there are lots of great static site generators. I went with one called Jekyll basically just because I’d heard of it. It was one of the first ones in the category and is still the most popular. Jekyll is good, but after I was mostly done with the project I checked out the other options and I think I should have given Hugo a closer look. It’s supposed to be a lot quicker at generating sites than Jekyll. This doesn’t affect the speed the user gets the site—just how fast new changes get uploaded.
That being said, I enjoyed working with Jekyll and found it to be pretty simple. I had to install a plugin to support pagination, but that wasn’t bad at all. If I feel like build times are ever getting out of hand, maybe I’ll convert it to Hugo.
Web Host: Netlify
There were two options I considered and tested. I could use the virtual private server I already use to host my other sites, or I could try out a service specifically designed to host static sites.
The virtual private server I already have running is a Digital Ocean Droplet that just costs $5 a month. I really like it. I have it running on NGINX, and it’s easy to add new sites too. Getting the site up and running on the server is something I felt comfortable with (you just have to SSH into the server > install Jekyll > download your site from GitHub > generate the site pages > set up the NGINX config files so it knows when to serve the site)—the problem for me is that I don’t know as much about triggering the site to download new updates and generate the site. I didn’t want to have to manually SSH in, pull down the new data, and build the site each time.
The way that you could get the server to download the files and build them automatically is using a thing called webhooks. You can configure GitHub to send out a webhook notification to your server whenever the GitHub hosted data is updated and have that notification trigger a script on the server that will make the server download the updated files and run the build process. It probably wouldn’t be too hard to figure this out, but I’d need to install some new software, and I didn’t feel like messing too much with that server since I’ve got all my other stuff running on there.
The other option I looked at (the one I went with) was using a service called Netlify that is specifically designed to work with static generated sites. For my purposes, it seems like it is just plain a better option than hosting it on my virtual server. They have a free tier designed exactly for sites like this (which is cool), they have a full-scale content distribution network, they can automatically sync up with your GitHub, and they can set up your domain name stuff for you (which isn’t hard, but it’s slick).
For me, there were a bunch of advantages over using my own server. One of the biggest is I didn’t need to figure out webhooks, but there are performance boosts too. My server is in New York, so in the US it is quick, but if you’re in Australia it’d be a bit slower. Netlify has servers all over, so this isn’t an issue at all. Basically, it’s better in every single way for my use, with the exception that I had to set my main domain as www.bnjmn.us instead of just plain bnjmn.us. Not a huge deal, but I prefer the latter. Oh well.
One option that I didn’t really consider was hosting it using GitHub Pages, but this would have also been an option. It’s less flexible than Netlify (you can’t have any plugin dependencies it looked like), but it’s also free and seems like it’s probably reliable. Lots of people think it’s great.
Updating Content
Because of the way I have the site set up, there are a bunch of ways for me to update content. I can do it locally on my Mac using Ulysses (or any text editor) and push it to Github. I can log into Github and update it directly. Another cool option is this web app called Forestry.io that you can point at your Github repo and manage the files inside using a nice interface that you can access from anywhere.
The trickiest part of adding posts is making sure that the headers (technically they are called front matter) and filenames of the text files use the proper conventions. On the mac, it’s easy enough because I have templates, but one cool feature using Forestry.io is that it has tools you can preset those headers in whatever way you need to. It also lets you specify where you want to serve photos from, and lets you upload them directly.
The one thing I haven’t implemented yet, but intend to, is the ability to publish Asides via this great little iOS app called Drafts that makes it easy to do random stuff like this with text. Basically, the plan is to use drafts to format the text and have it send the formatted text to an app like Working Draft (at least that’s the first one I’ll try) to add the file to the GitHub repo.
Conclusion
For something that is technically a simpler process than a Wordpress site, it is complicated in its own way, because it doesn’t hide the process from you like Wordpress does. The cool thing is that it’s modular. I can get the features I want and the resulting site is super light-weight and I can easily swap out tools at any point. It’s organized in a way that makes sense to me and it’s fully backed up via GitHub.
I can see a setup like this being interesting solutions for lots of low-maintenance, small business and organizations. It has extremely low upkeep cost, it doesn’t require software updates, and it is remarkably straightforward to make edits, especially if you set someone up with one of the faux CMS’s, like forestry.io.
For now, I’m just going to use it and see how it goes.