2024-12-23 23:16:57
At the end of every year, I write a retrospective of what I did, learned, felt, watched, played or listened to. It's the perfect way to reflect on everything, figure out what was good, bad and what could be better!
If you'd like, you can read my posts for 2019, 2020, 2021, 2022, and 2023.
Last year I made some predictions (or hopes) of what would happen this year. Did I get anything right?
I expect to take big steps towards owning my own house. I really want to stop paying rent and hopefully get a house instead of an apartment. It’s more work, but it’s more fulfilling and freeing.
Eh, partially, I guess? I did save money towards that end, but a change of plans made me not look into buying anything for now. More on that later.
I expect to write even more on this blog, and continue to expand on the topics I post about. Dev articles aren’t going anywhere, but I don’t always have something to post about in that regard.
✅ I got this one right! I did write more this year, and while the topics didn't get as varied as I'd liked, I'm still happy with what came out of the blog in 2024.
Also, I want to add proper support for categories and filtering, as well as search. As I post more, even I am starting to struggle finding something I wrote in the past to reference. Additionally, some code refactoring is always welcome.
❌ Nope, I did not do that. Not this year at least. I wrote about my desire to redesign my website and all that work has been moved to that redesign. It did not get ready (or started) in time, so that was a wrong prediction.
I also want to travel a bit next year too - either to the US to meet my work colleagues or to Italy to see my brother. And of course, do some sightseeing!
✅ I did travel this year! I traveled to New York and Chicago. More on those trips later.
Not much happened on my personal life this year, now that I think about it. In a good way. I feel like I've been able to mature a lot in the past couple years, after the autism diagnosis, therapy, and coming to terms with who I am and who I can be. Turns out everything gets easier when you learn not only that you should be kind to yourself, but how to be kind to yourself.
Last year, I said I was hoping to either going to the US to meet my work colleagues or to go to Italy to see my brother. Since I already had been to Italy, I chose to go to the US, and it was pretty fun! My wife and I traveled there in August, near the end of summer. We spent ~5 days in New York and ~5 in the Chicago area.
New York City is, no other way of saying it, complete and utter chaos. But in a (mostly) good way! Being so big and having so many people from everywhere in the world, there's just no shortage of things to do and to see.
We went with a mentality that we'd rather do less and have a great time than to try and do everything and get stressed about it. But turns out we were able to do pretty much everything we wanted! We got a lot of tips of the best times to go to each place and were able to plan some of our days accordingly.
We went to some of the most famous places like Rockefeller Center (and went to the Top of the Rock at sunset), the Empire State Building, the Statue of Liberty and Times Square. Also the Natural History museum and The MET.
Some of the nicer surprises were the experiences based on pop culture stuff. We went to The Friends Experience, an entire place dedicated to the Friends sitcom, with original items used in the show and really faithful recreations of Monica's and Joey's apartments, as well as the Central Perk coffee shop. It was a weird feeling being in that place that I'd never been before, but knew every corner. I was worried it'd be just a shameless cash grab, but it was actually pretty cool.
Being a big Nintendo nerd, we also went to the Nintendo Store. It was, honestly, a bit underwhelming, but still great to see so many things based on games I love.
But nothing we did there can even compare to the experience of going to a Broadway show! We went to see The Great Gatsby, and wow... just wow. It was honestly the most incredible thing I've ever seen, and I don't say that lightly. The music, the scenarios, the performances, and how well all that transitioned in front of your eyes, it's just mind-blowing. I'd never watched a musical play (only movies, which I hated), but it's now one of my favorite things. Too bad there's nothing like that where I live, but whenever I get back to NYC, I'm definitely watching more musicals.
On my birthday, we took a plane to Chicago. We celebrated by having a famous deep-dish pizza at Gino’s East. It’s pretty good, but I’d kinda classify it as a pie and not pizza 😅
The main reason we went to Chicago was because I wanted to finally get to meet my work colleagues in person. Most of them live in the city of Aurora, which is around an hour from Chicago by train.
Meeting them was one of the highlights of the whole trip. It’s nice (and weird) to finally meet people you’ve only spoken to online for the first time. They were really lovely as usual and made us feel very welcome there.
Since we were in Chicago anyway, we did some sightseeing there too. We went to the Field Museum, Shedd Aquarium, the Bean and even went to the top of Willis Tower, which was literally shaking from the wind.
Downtown Chicago is really pretty, way prettier than NY, but understandably there’s a lot less going on. Oh, and it was hot in there. I’ve never felt so hot in my life. It was around 38ºC during the day, but felt like it was over 40ºC. 🥵
2024 unfortunately was the year where the state I live in got hit by a big tragedy, with a lot of consequences to everyone who lives here.
At the beginning of May, the state of Rio Grande do Sul was hit by absurd amounts of rain in the matter of days, which put almost the entire state quite literally underwater. So many people lost their houses, belongings, and even their lives. Entire cities were lost, and so much of our infrastructure was damaged and is still far from being rebuilt.
Luckily, I wasn't personally affected by it (besides the comparatively trivial shipping delays and/or being unable to travel to neighboring cities). My city stands in a mountain range and even though we had a lot of rain, the water naturally flows away down the mountains (and sadly flooded the cities in the valleys or in the river deltas). But it was still heartbreaking to see people suffer so much because of it. And it does hit much harder when these things happen so close to you.
The bright side of it all is how many people came together to help the ones in need, from all over the country. Brazil is enormous and it felt like everyone did their best to help us pull ourselves around. It does help you restore a bit of faith in humanity.
Another good year for the blog! I've published a total of 18 posts so far, not counting this one. It's my record, though 5 of them were the new Cool Links series, which is not really original content. Even if we don't count those, we still have 13, one more than last year!
The big thing this year was the creation of the Cool Links series, a monthly blog post where I put all the best links I've saved during each month. It's a natural evolution of the Reading Recs I started posting last year, and I'm happy with how they're turning out. It's always good to have a chance to link to other websites and comment on them, without having to spin up a blog post for each one of them.
Another new thing is my newsletter, which, to be fair, is more of an email feed of the blog instead of a newsletter. I've started it in October, and it's not being a huge hit but I didn't expect it to. It's meant to be an additional way to subscribe to what I write.
My favorite posts of the year were, once again, the more personal ones: Best longterm goal? Not having one and JOMO is a Beautiful Thing.
Since last year I’ve been working at Useful Group, a lovely agency in Aurora, Illinois, USA. I’ve been pretty happy with my job there, working on nice projects and most importantly with amazing people. It’s so refreshing to find people in the software development industry that are nice and actually care about other people and about doing good work.
On the side projects front, I didn’t do much this year. I worked on the redesign of my website in Figma, but didn’t get to coding it yet. I learned a lot of cool CSS stuff and leaned into Progressive Enhancement as much as possible at work. Wanting to improve our sliders at work, I ended up developing a web component called enhanced-css-slider, which I’ve been using at work for almost a year.
The best part of the year – the fun things I've watched, listened to or played this year.
This year I haven't watched any "serious" TV shows. I haven't really felt like starting to watch something new and instead just re-watched some sitcoms as my "lunch show". What I did watch was a bunch of movies, for which I started writing some quick reviews using the QuickReviews web app. I plan on putting all those quick reviews up on my website eventually, but for now, here's some of the best ones:
Well, first of all the plan for 2025 is to move. We're moving out of Brazil to give living abroad another chance. After the bad experience in 2022 we want to give it a fair try by going to an actual city with actual things to do. The idea is to try Italy and Austria, but we'll see, nothing is set in stone.
Another not-as-big-but-still-big goal is to actually go ahead with my website's redesign. The new design has grown up on me and so I think it is the right choice. The only thing I'm still undecided about is if I should go ahead and do a full rewrite (possibly with Astro) or just update the visuals. 2025 Matt will be wiser and more capable of making that decision.
As for writing more on the blog, I'm not sure this time. Of course I want to, but I think I had a good cadence this year. I definitely want to continue with the monthly links and adding some non-blog content to the site (like the movie quick reviews).
Overall, 2024 was a great year for me. After the chaotic 2022, its two following years were definitely calmer. I think now that 2025 will have a lot more going on, but hopefully I'm better prepared to handle all that now.
See you next year!
2024-12-03 05:26:58
Adding an automatic ellipsis to some text if it overflows its content is simple enough. You just set overflow: hidden
to make sure the container doesn't scroll, and then text-overflow: ellipsis
to add the ellipsis to the edge of the text.
.example {
text-overflow: ellipsis;
overflow: hidden;
}
But what if you want your text to have multiple lines, but still cut off if it's too big? For example, you want to show the excerpt of a blog post on a blog post card (just like the ones on this blog). You want it to go up to 4 lines, but if the excerpt is bigger than that, you want to add the ellipsis at the end of the 4th line.
Turns out there's a neat little trick, using some -webkit
prefixed properties. Don't worry, it works on all modern browsers, including Firefox and Safari.
.example {
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
/* Set this to the max number of lines you want */
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
}
Here's how it looks like:
Taken from this StackOverflow answer.
2024-11-30 20:00:00
November has come and gone, and another year is nearing its end. Temperatures are getting higher and higher here, and my city's started to get empty during the weekends, with everyone taking a trip to the coast to enjoy the ocean.
How about some cool links to kick off this holiday season?
(No, it's not something you use to browse horses. Unless that's what you want to use an internet browser for.)
I love highly-specialized software that tries to solve a problem without worrying about the "regular" use cases. The Horse Browser seems like a pretty neat thing for people doing researches - it remembers, organizes and allows you to export all the links you click when doing research (or just going down rabbit holes).
I can see it being useful when writing papers or even when trying to look for a solution to a nasty bug. It's definitely not something you'd want for regular browsing, but that's fine. There are plenty of other browsers to use for that end.
There's a neat review of this browser up on MacStories if you're interested.
The best part about Mastodon is the lack of a “For You” algorithm. That means nobody controls what you see (except for Time, I guess, since it’s chronological).
That is also the worst part of it. Sometimes I just can’t keep up with all the posts in there.
Sill is a neat little service that checks your timeline daily and sends you an email with the most shared links in your timeline. It works really well and it’s a neat way to make sure you didn’t miss a really cool project or article from your timeline even if you have skipped social media for a day (which you should really try). And, at least for now, it’s free!
Oh, it also works with BlueSky, though I haven’t tried it with that.
Just a cute, fun and short blog post. What’s not to love?
Great analysis of how most uses of generative AIs (or at least what companies are trying to sell as use cases) are primarily selfish.
If you can't bother to do something yourself and instead ask a computer to do it, why should you expect someone to bother reading/watching it?
The corporate use cases for this are somewhat understandable - most content on the web is written for robots, not for people, for example (I know, sad). But Apple has been recently trying to sell it as a way to have a complete emotional detachment from your family as well. We truly live in the worst timeline.
As Bluesky is gaining millions of users, this is an important reminder that, while it sells itself as something different, it hasn't proven itself to be yet, and is at a high risk of having the same issues every other commercial platform has - just like the one its new users are coming from.
Josh has always been one of my favorite bloggers, and this blog post is awesome. You’ve probably seen me talking about Progressive Enhancement before, and this article talks about browser support and figuring out how and where to progressively enhance things.
This is the best explanation of the new HTML/CSS popover API that I’ve seen. It still looks overly complex, mind you, and I’m not sure I like that API. But if you wanna find out about what it is and possible use cases, this video is a nice start!
Optimizing the resources your website loads is the best way of making sure it loads faster for everyone. I've talked before about ways of doing that, but turns out there's a new, better way of telling browsers what they should load first!
The article has many examples of use cases, but these are my favorites:
Nowadays it seems most packages and developers expect you to use a build system like Vite, Webpack, or anything with NodeJS to build websites.
That shouldn’t be true, but if you’re ever building a simple buildless website and want to use packages, Julia Evans explain how to do that and also a bit of how the different kinds of JS modules work.
Great article reflecting on how job descriptions usually suck and how hard it is to find a job working with the things you want to work on, especially if your expertise is in the gap between two different job descriptions. Turns out the easiest way is to try and carve out a way into the work you do best.
A neat little web component that displays Baseline status of any web feature, that you can quickly add to any web page you want.
I might use this in future blog posts here!
Phew, that was a bunch of links for this month! I'm assuming December won't have many, since I'm winding down a bit for the end of the year.
I'm starting to prep up my year-in-review post for 2024. These are always my favorite ones to write, as they make me reflect on everything I've seen and done this year. It was a good year, so hopefully that will turn into a good post!
2024-11-13 21:58:08
One of the greatest weapons modern social platforms have against us is something called FOMO - the Fear of Missing Out. We are inherently social creatures and we want to belong to a group, and to do so we feel like we need to be aware of everything that is going on. We fear we’ll miss out on something important and will be left out of a social context because of that.
That instinct makes sense in an evolutionary context. Our ability to form groups and a society is what made us survive. But our ancient reptilian brain was never ready for the sheer amount of context we have access to on the internet. We can’t keep up, realistically. So that Fear turns into Anxiety.
If our brains can’t handle it, what can we do about it? Well, we can try to be rational.
How much of what you see in social media everyday is actually good for you? How much of it actually helps you build relationships with others? I don’t know about you, but to me it seems like the vast majority of it is actually harmful to both you individually and to your relationships.
There’s no shortage of people suffering from anxiety caused by seeing so many bad news all the time. And no shortage of stories of people saying they stopped talking to their relatives or friends because of something dumb someone posted online. Everyone is so angry all the time and there’s just no way of building a healthy relationship when you’re in that state.
[!info] To them, your anger is the goal It’s always worth remembering that, for commercial social platforms like Facebook, Instagram or Twitter, making you angry is the main goal. Angry people are much more likely to engage with content, which translates to bigger numbers for them, which means more ads and more money.
That means that if you’re fuming with anger at the end of a 15 minute session of scrolling through your feed, you’re not using it wrong. That is exactly what’s intended.
If bad things are most of what you see, and that erodes both your trust in humanity and your personal relationships, then shouldn’t you be happy if you miss out on it?
What if we try to exercise the opposite emotion when thinking about all that? I’ll give some personal examples.
Recently, in Brazil, there’s been a lot of public discussion around labor laws because the congress is discussing prohibiting making people work on a 6:1 schedule. There’s been so many awful, borderline criminal takes being posted online that it can truly make you lose all your hope in people (I do think most of them are rage baiting, saying something so absurd to make people engage more).
I’m not in any commercial social media platform, and only got exposed to some of the bad takes that burst out of their bubbles. My mind could definitely steer towards the thought that I’m missing out on that discussion, and I could be there to tell these people they’re stupid. But wait… those people are awful and are saying some awful things, and I’m missing out on that! I’m glad I’m missing out, because I really don’t wanna see it.
Even if you’re part of a bubble somewhere that aligns with your own thinking, sometimes it’s good to be able to identify when something’s not good for you too. After the US presidential elections, my Mastodon feed got overwhelmingly negative. I totally empathize with the feeling, but at the same time it was dragging my mood down, and there’s not really anything I could do about it. So I just… muted the topic and tuned down my usage of Mastodon. I chose to miss out on it and my brain was glad I did.
I recognize that being able to miss out and just turning off from news and social media like this is a privilege. My right to be myself is not under constant threat. A lot of the people I interact with can’t say the same, and staying ahead of the news or even just being able to vent is a necessity for them.
But, if you can, I highly recommend trying it out. You don’t have to stay on top of everything that’s happening. In fact, it’s better if you don’t. Keep some space in your mind for things you can learn from other people in an anger-free context. It’s much easier to understand their point of view and have healthy discussions without all that noise.
2024-10-31 20:00:00
🎃 Happy Halloween! 🎃 As the spirits prepare to walk among the living, I bring you some Cool Links to read while enjoying your candy. Or, if you're in the Southern Hemisphere like me, to read while taking your allergy pills because Spring is in full throttle.
This month's links are pretty much all web-related, but some are not specific to devs. It's been a busy month, so I haven't really had the time to read about more varied topics 😅. Maybe next month!
There's really nothing else I can add to this argument that Cory hasn't already said. But really, RSS is the best way to follow a publication or a person there can be. It's the best way for you to actually have control of what you read and decide when to do so.
I don't know if you've heard, but The Browser Company, the company behind the Arc Browser (which I've been using for a couple years as my main browser) has announced that they've pretty much given up on monetizing it and will just keep it working as-is in the future, with no new development.
This article reflects a bit on how it seems that tech companies seem to be running out of problems to solve, which results in great products that can't find their footing (outside of small niches) due to not really changing much about their user's lives.
The web is, at its core, just links to HTML files with some CSS and JS on top. That’s how it was years ago and how it technically still is.
Over the years, things became more complex and many layers of abstraction were introduced. A lot of web developers have never had any real contact with the core of the web.
So we ended up on a place where it’s much easier to find and use an overly-complex, bloated solution for websites than just having the bare minimum (that usually works better).
Isn’t that wild? In the author's words:
“the web doesn't belong just to software engineers. The more we make the web complex, the more we push normal users into the enclosures that we like to call social networks.”
I’ve been a web developer for over 10 years now and I can afford the luxury of building my own website - a static, simple, lean one. People with less or no coding knowledge can’t have that. They need to use tooling that ships so much code and complexity if they want to have their own. Or, even worse - they’ll stick to social media platforms instead. 😱
Building on the previous paradox: did you know that HTML was originally meant to be understandable and writable by anyone?
Before us web devs came along and scared people off, HTML was actually seen as a very simple way of structuring and linking data.
And it still is! This course aims to teach HTML to people with no technical knowledge, so they’re able to build their own simple web pages (or just mess around with existing ones, which is really fun).
nvm (Node Version Manager) is one of the best tools in my web dev toolkit. It allows you to keep multiple versions of NodeJS installed, which is usually a must if you swap between different projects all day. I’d even say it’s worth it even if you only have one version, since installing NodeJS via nvm is way easier than the official way.
This is a way of using nvm with a graphical interface, in case you’re not too fond of CLIs (or simply prefer a simple GUI instead).
These "State of" results are always fun, if only for the graphics alone. This one has pretty good data though, as 2024 was one of CSS's best years, with Container Queries, :has() (which allows for Quantity Queries), native nesting, native page transitions, and more.
I've been growing increasingly unhappy with JavaScript frameworks as of late, but I still have a soft spot for Svelte. Svelte is what my blog is built with, and it's always been a pleasure to use. Version 5 significantly changes some of its core features, apparently for the better. I'm excited to upgrade eventually (and really glad that they kept backwards compatibility).
This post is going to be on the first edition of my new newsletter! I set it up as a mirror of this blog, at least initially, so people can get notified whenever I write something new.
If you're interested, you can subscribe to it. There's not gonna be any exclusive content in there, so you're not missing anything if you don't. The blog is still going to be my main way of publishing.
2024-09-30 20:00:00
Hi there! As September ends, it's time to wake up for a new edition of Cool Links!
This month's links are mostly web development related, with a couple ideas on how to build some fun components, a brilliant jab at the current state of commercial web, a jab at React and a jab at Safari. Honestly, it's a pack of somewhat negative opinions, but presented in a fun way. 😅
I don't know about you, but I've argued with a lot of people in the past over if a specific color was blue or green. This quick test makes you categorize some colors into blue or green, and then how "green" you are compared to the rest of population. I'm not sure if there's any scientific data to back any of that up, but it's still a fun test to take.
For the record, my boundary is at hue 171, which makes me greener than 75% of the population.
This one is absolutely brilliant and nothing I can say about it will make it justice. Open it on desktop for the full effect.
I've complained about Safari multiple times in my posts and social media, and I'm not alone. This document pretty much aggregates all the issues Safari has been causing for years and how users (and devs) often have no choice of browser to run to when Safari decides it doesn't want something to work.
I am 100% in favor of browser engine diversity, and definitely don't want Chromium to be the only option out there. But Safari (and WebKit, its "heart") is not a fair competitor because the majority of its users (on iOS and iPadOS) don't have the option of using something else. And when Safari has time and time again had issues with the implementation of new APIs and, even worse, had issues with having old APIs working in a completely different way from other browsers, we have a problem.
And to make it all worse, Apple clearly has financial incentives to make Safari lag behind. A limited web experience means the only way to provide your service to users on iOS is by releasing an app... on Apple's App Store. They can't monetize web browsing, so why make it work well?
A semi-serious, semi-satire, but fully incredible short video that talks about ReactJS and how and why it became the most popular web framework. Definitely worth the watch, especially if you don't like React. Make sure to read the transcript for some added Director's notes.
I feel like more and more web developers are becoming "Framework Developers", which means they only really develop with one specific (or maybe two) JS frameworks. This is a problem because these frameworks often change how you interact with web technology. In the end, everything gets compiled to HTML, CSS and JS, but when your dev environment is so different from that, it's hard to understand exactly what you're building.
If you already know HTML, CSS and JS, then you can make that association while you're learning the framework, and things happen naturally. When the opposite happens, though, the path is more difficult.
A HTML, CSS and JS developer can learn any framework (and jump between them) with relative ease, while a React developer might have a hard time working with Vanilla JS or Svelte, for example, because they only learned the React way of thinking instead of how browsers interpret the code.
I do use a JavaScript framework (Svelte) on my website and personal projects, but I'm glad I learned the underlying technologies before diving into any framework. Having that foundation has allowed me to work professionally with a lot of different stacks (Vanilla, React, Vue, Angular, Svelte) while still keeping my foundational skills intact.
This CodePen uses pure CSS and its new-ish features to create a really neat card stacking effect! It uses Scroll Snapping (widely available) and Scroll-based animation (Chromium only for now) to both style the card stack and make sure they behave correctly.
This article dives into how the author built a logo strip (i.e. a grid of company logos with varying widths and heights) and the techniques they used to make their weight nicely distributed, way beyond what most people have done in the past (including me). I'll definitely be using that next time!
I hope you enjoyed this month's selection of Cool Links. See you next month!