Beer and Coding in Eugene

Good people drink good beer - Hunter S. Thompson
Good people write good code - me

ABOUT | PROJECTS | CONTRIBUTIONS | CONTACT

About

Hi 👋. I am Kevin Williams, a technology and customer service leader that loves existing in that slice of the Venn diagram where the two disciplines overlap. I am also a life-long Oregonian and love all the stereotypical PNW things - the rain, the woods, soccer, Subarus (proud owner of two) and good coffee.

By day I lead the technology and service initiatives for a large manufacturing and distribution company. By night I put on my superhero alter ego, "Rails Hack" and plug away at personal Ruby projects.

My past life includes about a decade working for a regional retailer where I wrote a bit of VB and .Net code but spent most of my time developing and maintaining their Point of Sale codebase (anyone familiar with IBM 4690 OS?).

I also spent several years leading an IT team at the University of Oregon (go Ducks!), supporting the Development, Alumni, Stewardship, Public Affairs, Communications, Marketing and Branding teams (and probably a few others too). We also proudly provided IT support for the Oregon Bach Festival.


Projects

Beer and Coding

Beer and Coding in Eugene was my personal blog, started in 2009 and cataloging my work spreading the gospel of craft beer, my adventures in homebrewing and samples of doing neat stuff in php (remember kids, this was before the Laravel days).

This website is now just a splash (vanity?) page for myself - a single html file hosted on Render.com. If you're interested, you can see a majority of the old content using the Wayback Machine.

• • •

Friendliest.app

The Friendliest App is my first Ruby on Rails project. It is an allergy-friendly meal research and planning tool for the Disneyland Resort (extreme niching down). I wrote the first lines of code in early 2020, after a Holiday visit to the parks and our family's first trip since my partner was diagnosed with celiac disease.

I settled on (then later fell in love with) Rails after a flurry of research and learning that some of my favorite tools are built on the framework. I then launched at the absolute worst time, the same week in March 2020 that COVID closed the parks for over a year.

Today the Friendliest App is a passion project. It houses over 350 allergy-friendly meals from over 140 restaurants and eateries, contains an archive of over 800 menus since the parks reopened in April 2021 and receives around 1,500 daily views. User stats collected through the privacy-focused Active Analytics Gem by Base Secrete (no Google Analytics here!).

• • •

KarteDrop

KarteDrop is my latest Rails project, an attempt to rekindle the simple joy of sending or receiving a postcard. It is also an opportunity to play with all the latest goodness - Rails 7, Hotwire, Tailwind CSS, Shoelace and Bridgetown (for the Support docs).

KarteDrop is also the first project that I'm making a real attempt at monetizing. My partner and I filed our LLC in early 2023 and anticipate launching our paid tier by summer. We are running the project as an Open Startup. We are sharing our stats here and our story at @KarteDrop on Mastodon.

• • •

'Tis the Soundtrack

'Tis the Soundtrack is a project that combines two of my passions, Christmas and music history. It is a Podcast, a YouTube Channel and a Blog, proudly built with Bridgetown, a fantastic progressive site generator and framework built on Ruby.

'Tis the Soundtrack logo, featuring a wood-cut style image of a cassette tape between two trees, in red and green.

• • •

Scrubr.

Scrubr started as a 4-hour coding project to try to create a tool to make the web more accessible. At the end of 4 hours, it was a simple Rails app, leveraging HTTParty and Nokogiri to scrape and parse HTML from a webpage and render it in a clean, highly-readable way.

Since then, Scrubr has moved from using HTTParty to leveraging Selenium to scrape dynamically-loaded Javascript content. This involves running the scraping requests through a headless Chrome browser instead of making a simple HTTP request. I thought this might be a challenge to run in production, but it turned out to be much easier than I anticipated since I was using a DigitalOcean droplet, managed by Hatchbox.io. I was able to install Selenium, Chrome, webdriver and all the other bits and bobs directly on the production server while letting Hatchbox manage the Rails app and deployment. 🚀

Currenty, I am working on adding support for user accounts, so you can edit and save scrubbed pages. The parsing rules are also being continually refined to try to eliminate the greatest amount of non-content from scrubbed pages. Not sure where this project will end up, but it has been fun and a good opportunity to work with some new (to me) tools.

• • •

Good People Write Good Code

I have been using the Good People Write Good Code tagline for over 15 years. Recently, I created a series of logo designs feature the slogan and themed to various programming languages and frameworks.

Currently, there are designs for:

These designs are available as stickers (and other merchandise) via my Redbubble Shop. You'll also find a selection of popular KarteDrop designs, available as postcards and greeting cards.

Example sticker design with the phrase 'Good People Write Good Ruby'


Contributions

I am attempting to contribute more to the Ruby on Rails and open source communities, but still suffer greatly from imposter syndrome, so it's rare I feel I have something of value to share.

Stimulus Sliders

This is a quick code example of using Stimulus.js to display the current value of a Range Slider.

This was written because I had a hard time finding an example using Stimulus, most were older, bulky and required jQuery. The code was adapted from a Rails project where I was using Rails Form Helpers and Tailwind CSS. It has been cleaned up to use pure HTML/CSS/Stimulus.

• • •

Simple Social

This is a code example pulled from the "Share to Social" functionality I wrote for the Friendliest.app. This one is less tidy and relies on the tooling I used in my application - TailwindCSS for styling, Lineicon social icons and jQuery (yes, I know) for the javascript events.


Contact

If you would like to get in touch, you can find me at @CrankyOldITGuy on Mastodon or shoot me an email at crankyolditguy[at]gmail[dot]com.

I gave up on Twitter in late 2022 and it's been one of the greatest choices I've made in life.