Hi, I'm Mike. I'm a web developer. This is my story.

How I Use Tmux as a Development Environment

When I first started as an engineer at my current employer, I soon realized that I had to think a bit differently to keep things organized. At my previous employer, all code was basically in one codebase. We didn’t use any complex build steps, just vagrant for our backend/frontend and gulp to compile scss and CoffeeScript assets (yes, this was a loooong time ago). So I could run a Vim instance and gulp in another tab in my terminal and I was good.

When I moved on, things were a lot more complex. We had at least five different services that needed to be running at once. Three of them needed front-end builds on save via grunt. Things have changed drastically since then - we now use a whole different, more modern stack, but it was more about the challenge of working with different services with different persistent processes. How could I stay organized and understand which context I was in? Where do I put persistent processes that I need to keep an eye on? Tmux helped me solve this problem years ago in an elegant way.


My Note-Taking System

I was using xolox/vim-notes for a while, but I didn’t like their format. I also disliked that you couldn’t put anything in folders, and that their markdown support was sketchy. So I switched to vimwiki. I didn’t like that either - there’s no automatic index, it clobbers my markdown syntax plugin in a way that screws up regular markdown files, and really it barely provided any helpful tools for regular notes except for enter to link a word. What I really needed was notes with tags, being able to browse tags, and fuzzy search notes, contents, and tags. I also needed to encrypt my notes and sync them in some way. I had been using a private git repo for this but I was looking for something more robust.

For this I have settled on Joplin.


A Month With Firefox

I was browsing reddit recently and found a topic about how Chrome is suprisingly poor on privacy. By default it collects data on what sites you browse and when. I had also heard that Firefox quantum has surpassed Chrome in speed and that the dev tools are just as good if not better than Chrome’s. So I thought what the heck, I’ll try out Firefox as my default browser for a bit and see how it goes.

Let’s see how the two browsers compare from a web developer’s point of view.


Simplifying the Front-end Build Process

CSS and JavaScript seems like it should be pretty simple. We have our site stylesheet, our site support scripts, and some dependencies like Twitter Bootstrap, JQuery, etc. And that’s fine, until it gets to be a lot. Next thing we know we have 5 internal scripts, 10 dependencies, 3 internal stylesheets. Google PageSpeed is not happy with making 18 HTTP calls to load our front-end dependencies, which aren’t gzipped, minified, or uglified. If you’re like me, we tend to just write JQuery spaghetti code, too. No classes, no objects, just $('.thing').doSomething(); all strung together. Now we realize we have a mess on our hands. We work hard to organize our back-end code and keep it maintainable. Why not the same for front-end?


Automounting With Virtualbox

While I work on learning Vagrant and Puppet I am using a manually built VM for development. I thought it would be cool to just mount a directory from my mac to the Ubuntu /var/www. This way I can set my /etc/hosts file on my mac to point a domain to my VM, set up a vhost on that VM, ssh into the VM, and work and preview remotely. Doesn’t sound too difficult right?