---
title: "grant horwood (@gbhorwood) | Hashnode"
description: "i build apis and the servers they run on. all the music i like is objectively terrible."
url: "https://hashnode.com/@gbhorwood"
---

@gbhorwood

# grant horwood

@gbhorwood · calgary, alberta · Joined December 2022

[Website](https://gbh.fruitbat.io/)

### [nginx: useful basic auth](https://gbhorwood.hashnode.dev/nginx-useful-basic-auth?utm_source=hashnode&utm_medium=feed)

basic auth doesn't get the love it deserves. sure, it's not as fancy as other authentication models out there, it's basic auth, after all. but if you want to stand up some fast authentication to limit your staging site to the dev team or restrict api...

13 min read · [gbhorwood.hashnode.dev](https://gbhorwood.hashnode.dev/nginx-useful-basic-auth?utm_source=hashnode&utm_medium=feed)

[Aug 13, 2025](https://hashnode.com/posts/nginx-useful-basic-auth/689d162a7997488a5cc211cf)

### [php: manipulating file pointers with fseek and ftell](https://gbhorwood.hashnode.dev/php-manipulating-file-pointers-with-fseek-and-ftell?utm_source=hashnode&utm_medium=feed)

php developers generally don't put a lot of thought into reading files from disk. we usually just call file or file\_get\_contents or similar, shovel the whole thing into ram, and then fight with the resulting array or string. if we want to do simple t...

10 min read · [gbhorwood.hashnode.dev](https://gbhorwood.hashnode.dev/php-manipulating-file-pointers-with-fseek-and-ftell?utm_source=hashnode&utm_medium=feed)

[Jul 23, 2025](https://hashnode.com/posts/php-manipulating-file-pointers-with-fseek-and-ftell/6880f91605d92e4864c44d61)

### [php: writing command-line applications with macrame. pt 2](https://gbhorwood.hashnode.dev/php-writing-command-line-applications-with-macrame-pt-2?utm_source=hashnode&utm_medium=feed)

in this series, we've been looking at how to write command line applications in php using macrame. in the previous installment, we covered the basic structure of macrame scripts, getting user input both as text and from interactive menus, parsing com...

13 min read · [gbhorwood.hashnode.dev](https://gbhorwood.hashnode.dev/php-writing-command-line-applications-with-macrame-pt-2?utm_source=hashnode&utm_medium=feed)

[Feb 20, 2025](https://hashnode.com/posts/php-writing-command-line-applications-with-macrame-pt-2/67b763445142d8ab215e03fc)

### [php: writing command-line applications with macrame. pt 1](https://gbhorwood.hashnode.dev/php-writing-command-line-applications-with-macrame-pt-1?utm_source=hashnode&utm_medium=feed)

php doesn't get a lot of attention as a command line scripting language. which is a shame, since php has a lot of features that make it a good choice for writing terminal apps. in this series, we'll be going over writing interactive command line scri...

12 min read · [gbhorwood.hashnode.dev](https://gbhorwood.hashnode.dev/php-writing-command-line-applications-with-macrame-pt-1?utm_source=hashnode&utm_medium=feed)

[Feb 20, 2025](https://hashnode.com/posts/php-writing-command-line-applications-with-macrame-pt-1/67b762edb9243c4e0ae8ec7b)

### [vim: five tips to become a more mediocre vim user](https://gbhorwood.hashnode.dev/vim-five-tips-to-become-a-more-mediocre-vim-user?utm_source=hashnode&utm_medium=feed)

i am a mediocre vim user. sure, i've been using vim for over twenty years, have handcrafted a custom vimrc, and even written a syntax file, but for my day-to-day usage, my skills are resoundingly and undeniably mediocre. this is a good place to be. p...

7 min read · [gbhorwood.hashnode.dev](https://gbhorwood.hashnode.dev/vim-five-tips-to-become-a-more-mediocre-vim-user?utm_source=hashnode&utm_medium=feed)

[Sep 30, 2024](https://hashnode.com/posts/vim-five-tips-to-become-a-more-mediocre-vim-user/66fad62ae7866e4f591c7760)
