We brought home a new family member last night—Rocky. He needed a new home and we were lucky enough to be able to adopt him. I think he and Murray (our other dog) are going to be great friends! They've not stopped wrestling and playing since they met. He's a good boy 😀.
Oh hey, my name is Levi.
I used the last few pages of my most recent notebook to write down all the stuff I want to do this year. It’s a lot. I’ll be happy if I can get at least a few of them right.
2019 Todos
- Drink more water
- Drink less everything else
- Sweat more
- Worry less
- Be more kind to your family
- Listen more
- Talk less
- Have fun
- Don't forget where you come from
- Help others grow
- Call your mom
- Call your dad (maybe)
- Go for a walk when you feel stuck
- Ask more people if you can pet their dog
- Ask for help when you need it
- Say no if you need to
- Ride a bike
- Use all your vacation time
- Play more music
- Cook food for your friends
- Listen to more music
- Tell your old friends that you still think about and miss them
- Finally get your wisdom teeth removed
- Read a few books
- Finish the books you've already started
- Focus a little more on where you are than where you're going
It's almost 4pm on the last day of 2018 and after reading so many wonderful end-of-year wrap up posts and top three accomplishments tweets I'm motivated enough to at least record some of my thoughts about this past year, even if it's just for me.
This year has seen lots of highs and lows for my family and me. In early February we lost one of our dogs Bowie. A little over six months later we lost our other dog Malcolm. We love our dogs like family and that's a lot of loss to deal with in one year. I still miss them both a lot and we still talk about them quite often as a family. All that said, we did bring a new puppy into our home named Murray. He'll be a year old this January 31 and he's the best.
Professionally, this has been the most successful year of my career both in terms of projects and finances. In April we launched the v1 of the design system I've been working on and I was officially made the lead of the project. We've had some decent success with adoption and have been given funding to actually build a team around the project so we can better serve the developers and designers who use it. I've worked very hard on this project for the last year and a half and I couldn't be more excited that I get to help build the team that will move it forward.
My family and I bought a house this summer! After, four and a half years of living in apartments this was a big step for us. We love our new home and have settled in nicely. We even hosted our first Thanksgiving dinner in our new place this year. We're happy here in Bloomington and are excited to put down some roots in this community.
Hey, 2019
2018 was a hell of a year, but I gotta admit—I'm tired. I've never pushed myself this hard in trying to move my career forward. I'm still dealing with a lot of issues around how to balance that drive with being happy, healthy, a good husband, and a good dad. I don't really have any specific resolutions for 2019 but those three areas are where I'm going to put my focus.
Happy New Year! 🎉
When I write CSS I generally favor clarity over brevity when choosing the way I name classes/components. I will admit that this can make for some pretty long class names and can look a little weird if you're using a naming convention like BEM.
For example:
<div class="profile profile--compact">
<div class="profile__image profile__image--large">
<img src="path/to/image">
</div>
<div class="profile__bio">
<!-- Profile content -->
</div>
</div>
To me those class names are perfectly descriptive and easy to remember, especially after six months away from a project when I have to come back and work on this code. Yes, class names like this cause a few extra keystrokes for developers, but I tend to feel the extra effort is worth it. Also, we have great tools that do things like auto-complete class names for us.
Recently, a couple of developers have tried to make the argument to me that long class names make the HTML sent over the network larger in file size and therefore slower. What this argument really boils down to is prioritizing convenience and developer experience over clarity and maintainability.
The idea that CSS class names are making your app slow is, of course, a straw man, as more and more developers are using massive amounts of JavaScript, the most CPU-intensive asset for web browsers to process, to render the entire UI of their app. If you are not actually sending HTML over the network (i.e. it's being built on the client), can you really argue that the size of the HTML is making your app slow?
I dunno, I could be wrong, but maybe we should address the giant elephant in the room. Maybe the size of the giant JavaScript bundles we're sending over the network, creating one single point of failure for our entire UI, should be the first thing we talk about when making arguments for better performance?
We lost our dog Bowie earlier this year. It was totally unexpected, and I wrote about the helpless feeling that comes along with death. If you've ever been robbed or had something stolen from you, it feels the same.
I took our dog Malcolm to the vet last week to get a bump on his rib cage checked out. It turns out that bump is a tumor, and after a quick x-ray, the vet discovered multiple others including one in each lung the size of a tennis ball.
He's still happy, and doesn't appear to be suffering at all, but we have a plan for when he starts to show more severe symptoms. That's a different feeling all together—having a plan. Its a different kind of guilt and sadness that comes with planning for a death.
I was tore up the day I found out, but I've had some time to think and realized that this is probably the best-case scenario. We have some time to enjoy, and I plan to. I'll never get any better at dealing with this, but I also hope I never do.