If you want, jump to the codepen for this article first.

Using sass for media queries is pretty popular — there’s plenty of libraries just for this. Sass is a lot more powerful (especially with dart-sass) than people who have been using Sass for a long time might realize, and we can write some really expressive mixins and functions these days.

End result first:

Code is meant to be read by developers first and foremost. Before I explain what the above snippet does — make a guess. …


Credit: Pixabay

Most website visitors haven’t been to your site before.

Unless you’re one of the giants or building an internal web app, most of your visitors are on your site for their first time — or at least, the first time in a while. How they use your site is going to be based on assumptions about how other websites work. For more on that, try Krug.

With that in mind, please follow website conventions. If there’s a good reason to break a convention, go for it — but don’t just break with conventions for no reason. …


For 2019, I decided I was going to try out carrying and using a bullet journal to help keep myself a bit better organized, as well as to track more thank what gets tracked in the ticket system at work.

I’ve used a couple brands of notebooks for years, as I learned some time late in college I put a lot more effort into writing good notes if I was in a good notebook than something cheap.

So, I decided it was time to figure out the best pen and notebook for me to carry around everywhere.

For better or…


Front end development got a lot harder in the last five years and it’s left a lot of people struggling. In the grand scheme of things, I can’t imagine its worse than when people shifted from Perl to PHP, C to Java, or paper to Photoshop. Technology fields are always changing.

Most of the changes from five to ten years ago everyone understands now. We saw the advantage of Sass or another CSS extension. We all learned how to use media queries and do responsive design. Most of us appreciate that AJAX let us do things we couldn’t do before…


Vanilla Vue is a great library and you can get a lot done with it. However, one of the most common mistakes I’ve seen is people who aren’t adopting Vuex early on, and have to figure out how to swap in Vuex later. Starting with Vuex isn’t as difficult as it sounds, and if you think you might need it, you should just use it. Here’s some quick warning signs that you should have used Vuex already:

  • You’re using .$parent or .$root to access data attributes from children.
  • You’re passing nearly your entire data object to child components.
  • You’re avoiding…


Here’s the bits from my vimrc I’d recommend to anyone using vim or neovim for PHP development. These settings provide

  • Good indentation and syntax highlighting for PHP, Vue, Twig, Blade, Javascript, and Scss files. It even shows 4-space indentation in a reasonable way.
  • Reasonable, asynchronous code completion for PHP and JavaScript thanks to language specific completion engines.
  • Asynchronous code linting while you’re typing.
  • Support for Emmet and Editorconfig.
  • I didn’t include any ‘fuzzy open file` plugin like ctrlp.vim, denite, or fzf.vim. …


There’s five days left to participate in Hacktoberfest. For me, Hacktoberfest is a reminder of just how much I owe to the open source community. Every day for work, I use all the following to earn a living:

apache, composer, debian, docker, fira sans, firefox, franz, git, laravel, lilyterm, mariadb, node, npm, php, postfix, postgresql, ripgrep, sass, tig, tmux, vim, vue

Come Hacktoberfest, I usually just feel guilty that I haven’t done more to help these projects and the greater community. …


Charting the rise and fall of smartphone functionality

After researching what phone to buy next, I wanted to graph some of my data. Here’s the graphs.

There’s a lot of features out there that android phone manufacturers have tried out over the years. I liked HTC’s builtin kickstands, and the e-ink second display on a yotaphone has always sounded cool. Other features like the 3D screen on the HTC EVO 3D end up next to useless. Companies are still trying to invent new functionality — rumors point to the 2017 Google Pixels to being squeezeable, perhaps to trigger Google Assistant.

At the same time, some things we could…


My LG G3 is dying. I’ve had an LG G3 for two and half years (with one RMA) but there’s a hardware problem LG had where the wifi/bluetooth chip stops functioning properly. I’m currently running on this paper trick.

The LG G3 has been a great phone. LG’s QHD, 5.5" IPS LCD panel with nearly no bezels really put this phone ahead of other phones at the time, even if QHD is overkill for this size. The G3 didn’t really have any gimmicks and it packed a lot of features. …


If you’re aren’t running linux, try Part 1. Part 2 covers applications and Part 3 covers configuration. Part 4 covers your home directory.

Here’s the list of what you’ll find in /, loosely ordered from what you’ll care about the most to least:

  • /home contains home directories.
  • /bin contains executables (originally for binaries.) There’s also /sbin, /usr/bin, /usr/sbin, /usr/local/bin, and /usr/local/sbin.
  • /media or /mnt is where temporary drives (USBs, DVDs, network shares) show up.
  • /etc is where system configuration files live.
  • /var is mostly used as a place applications may store files, caches, or logs. …

Kevin Hamer

The Principal Engineer at Imarc, Erratic Author on Medium. Writing about web development and being a better web developer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store