I follow a few blogs that are in the habit of doing regular updates about what they are up to on a regular basis. A great example of this is the Recently posts by Tom MacWright. His blog is great by the way, check it out. In this new year I wanted to get in the habit of writing more frequently and sharing more of my interests than just programming. So you're likely to see one of these each month. It's also fitting as I'm normally pretty spread around with what I work on, so this allows me to simply share what I've been up to without needing to really dive deep into a topic to write about. I hope you enjoy.
Recently work has lent me out to the Scala Center to do some work on tooling in the Scala ecosystem. If you're not familiar, the Scala Center is a non-profit focused on Scala education and maintenance of some of the core parts of the Scala compiler and tooling ecosystem. Some of the first things I've dove into first when joining have been BSP related.
Firstly in an attempt to simplify the Bloop build, I started basically hacking away and removing things. Bloop is a build server for Scala/Java that focuses on speed. It's incredibly fast and has been pivotal to get Metals where it is now, but also suffered from an equally incredibly confusing build. I was able to rip out the Maven plugin, Gradle plugin, and the core config library into their own repositories to be developed and versions standalone. Bloop also had a complex meta-meta build that made contributing and getting started with Bloop difficult. That's all now gone. If you're curious, you can find some of this work in the following places:
- The new home of
bloop-configand the pr removing it from Bloop.
- The new home of the
bloop-maven-pluginand the pr removing it from Bloop.
- The new home of the
gradle-bloopplugin and the pr removing it.
- The pr re-working and removing the meta-meta build in Bloop.
Apart from working on Bloop my main focus has been looking into the default choice in Metals, the Scala language server, to use Bloop as your build server. This last year more and more users have started defaulting to using the built-in BSP support in either sbt or Mill. Due to this I've written up a report on the differences between the various build servers here that give a pretty good overview and a plan to move forward. I've also then been working on small things related to this task in preparation to this move.
This last month I did a handful of small quality of life improvements and updates to nvim-metals and have seen a bunch of newcomers in the new year. Must be that learning Vim was a new years resolution for a handful of Scala users!
More excitingly after a long time of inactivity on the Scala Treesitter grammar, a group of us from the Scala Community were given maintainer access and started hammering out improvements, especially to the Scala 3 grammar. Huge shout-out to Eugene and Anton for tackling the majority of the Scala 3 improvements.
Just check out the difference in syntax highlighting before and after the last month. Some of them are obvious, but some are more subtle. Overall, it's a huge improvement.
Over the years this site has taken all sorts of forms. However, the focus has always been on a minimal self-made site. I really enjoy making my own site from scratch, and I enjoy looking at other sites that have done the same. I'll probably do a whole post on this in the future when I feel a bit happier with how everything is working together, but for now I'll outline a few changes:
- I migrated this site from using Pandoc via a bash script to a small scala-cli project with Scala 3 using flexmark to turn my markdown into html.
- I now have an RSS feed that you can follow here.
- I've started to create lists to better keep track of things that I'd like to return to. I've always sort of done this, but I'd like to start doing it in one place and making it public. For now they're each a yaml file which gets read up and then turned into html via circe-yaml and Scalatags.
- Apart from syntax highlighting and Pirsch analytics there is no JS necessary for my site.
Firstly, this year I'm doing a little experiment where I track all the new albums that I listen to fully and enjoy. You can see my progress on this under /lists/albums. This is an attempt to be a bit more attentive to the new music I'm discovering and also a fun way to track my favorites of the year. I'm excited to see what it looks like at the end of the year.
There's been two albums that have really stood out to me this month and have been on repeat.
Jonah Yano's new album portrait of a dog is a funky smooth project done with BADBADNOTGOOD. I love the crisp minimal drum lines, driving keys, and Jonah's magical voice. Often when listening I just get lost in it, my eyes close, and I just enjoy it. The whole album is great.
Funny enough, when I first started listening to this album I didn't really dig it. It took me until I was around half way through, and then I fell in love. Gigi's Recovery by The Murder Capital is the first album of theirs that I listened to, but I'll definitely be following them in the future. I get some Protomartyr vibes from them. They've got great lyrics, really catchy breaks, and throughout the album they know when to go hard and when to just keep it simple. By far my two favorites on the album are The Lie Becomes the Self and We Had to Disappear.
This last month I read The Way of Life, According to Lao Tzu. It's been a book I've wanted to read for some time, and I felt like it was maybe a good one to start the year off with. I read it slowly, just a few of the poems per day. While I enjoyed t, the book wasn't as impactful as I was expecting for some reason. I'll simply leave it as that.
I've also spent some time catching up on the articles of the sites I follow via RSS. You can find a handful of them here. Another article I often revisit that I did this month was the great article by Erin 'Folletto' Casali, The Impact of Toxic Influencers on Communities. If you're a part of the Scala community, I highly recommend the read in light of recent events and personalities.
This month I spent a bit of time in Paris for work giving a talk called What I've learned in open source and why I think you should contribute.. It was for a semi-regularly hackday that we have at work where colleagues come together to give some talks, do workshops, and just hack on things together. My wife and I then stayed a few extra days to enjoy the city.
Me in front of Boot Cafe. A Cafe my wife and I try to visit every time we're in Paris.
Just a wall in Le Marais.
My wife Sé in the Rodin Museum.
Statue on the wall in the Rodin Museum.