A graphic showing how branches should work when doing iOS programming.

CI with Linear, GitHub, and Xcode Cloud

Are you trying to figure out how to get your issue tracker, GitHub, and Xcode Cloud to all play together nicely? I've settled on a good flow for small teams or individuals like myself. This is one of those topics that largely depends on your specific needs, but I can provide a good starting point, which you can modify ...

A graphic showing blue and red rectangles inside a outlined box.

Understanding SwiftUI's alignmentGuide

Understanding SwiftUI's alignmentGuide modifier can be a little tricky. It might seem like objects are moving in the opposite direction of what you intend. This post should help clarify what's happening.
A photograph of a black ZSA Moonlander keyboard taken from the left side. It sits on a wood desk.

A programmer's Moonlander review

Okay, okay, another ZSA Moonlander review, big whoop. Many posts and videos are out there discussing the pros and cons of the board, and you may be reading this alongside those as you contemplate a purchase (they're spendy boards). My review will differ from all the others because I'm focusing on something unique: me!
A line graph showing a dip at a point when jemalloc was introduced to the server.

Upgrading to Rails 7.1, Ruby 3.3, jemalloc and YJIT

Over the holiday break, I decided to be a good boy and keep up with the regular updates to this website. This website uses a Dockerized Ruby on Rails app and is deployed on Render. I had four primary things I wanted to get done:

  1. Upgrade to Rails 7.1 (from Rails 7.0)
  2. Upgrade to Ruby 3.3 (from 3.2.2)
  3. Turn on jemalloc
  4. E...

Lessons from a barbershop

I have been going to the same barber for around seven years now. It's a multi-generational barbershop with views of Lake Washington, where the aroma of coffee and Italian food floats as you walk in. In the summer, you occasionally have to park a few blocks away because they have street vendors that set up shop along th...

A creepy rabbit in its hole surrounded by a forrest with sunlight peeking through.

The deepest rabbit hole ever

It started with a GIF.

Well, it didn't start with a GIF because I couldn't upload one to my website. I wanted to write a blog post about a cool new feature in Safari that I would demonstrate with a GIF, but I could only upload static images. So, I started the process of adding that functionality, and whoa baby, I coul...

Screenshot of the new matthaliski.com design.

New website look

Would you look at that?! I just launched my new website design. It’s a somewhat soft launch because I’ve got more things planned. I went down a giant rabbit hole to reach this point, so I thought I would commemorate it with a post. It feels good to kick this out the door.
PurgeCSS Logo

Using PurgeCSS with Rails

We leverage CSS frameworks like Bootstrap or Tailwind in our applications, but we likely won't use *all* elements from the framework. This means that we’re serving larger CSS files than we need to. Wouldn’t it be great if there was a way only to include the

Copying Markdown text from Visual Studio Code

You’re trying to copy Markdown out of a .md document in VS Code and the results aren’t as you’d expect when you go to paste elsewhere. I was trying to paste it into Notion and most of the formatting wasn’t honored. Bizarre.

Turns out VS Code is trying to be overly helpful and applying syntax highlighting when we copy ...

About These Posts

Matt Haliski's mug

My blog primarily contains writings about my work on computers, but I occasionally mix in fun life stuff. I am, at best, a mediocre writer, but I like doing my part to give back to the community. Feel free to contact me if you have specific something to chat about. See you around!