Profile avatar
afonsocrg.bsky.social
Building http://reacttogether.dev and http://superttt.io I'm a software engineer eager to make this world a better place to live in.
41 posts 26 followers 10 following
Prolific Poster
Conversation Starter

Last week I attended an indie builders co-working day in London. It's called @hackaditch, and it's just amazing! Today we made something similar in Lisbon and it was awesome! We had a productive day, got good feedback and made new connections! #coworking #lisbon #indie

🚀 React Together v0.3.3 is here! Add real-time shared cursors to your React app with just ONE line of code! Want full control? The useCursors is here for you! StackBlitz Demo: stackblitz.com/edit/react-t... #ReactJS #WebDev

Had a blast giving the "Multi Pong" workshop at 42 Lisboa this morning! We built a multiplayer Pong game without writing any backend! Full guide at github.com/afonsocrg/multi-pong #workshop #croquet

We're just two days away from our first event of the year, in collaboration with Vue.js Portugal! 🎟️ 𝗬𝗼𝘂𝗿 𝗳𝗿𝗲𝗲 𝘁𝗶𝗰𝗸𝗲𝘁: meetup.com/lisboajs/eve... A huge thanks to Remote Crew, Infraspeak and Le Wagon Portugal for making this event possible!! #vue #lisbon

🚀 React Together v0.3.2 drops with instant chat integration! Add real-time chat to your site with our <Chat/> component, or build your own with useChat hook. Fully customizable. Try it → reacttogether.dev/chat #react #reactjs

Just published my first python package: yacli_menu. A few years ago I had to create some python CLI menus. Didn't like what was out there at the time, so decided to build my own :) Hope it helps someone! github.com/afonsocrg/ya... #python

Stoked to be part of the organizing team! Thanks Rui Posse and @piara.bsky.social for making this fun!! See you there 🔥

Screen sharing is the digital version of looking over someone's shoulder. How often do we end up asking others to scroll down, or to click somewhere? I believe the internet needs to evolve towards collaboration by default. Thoughts on this? 🤔 #webdev #ux dev.to/afonsocrg/st...

Have you ever thought of making your website bring your users together? Just like Google Docs, but on your website. Yes, it's possible, and it's extremely easy! Here's how: dev.to/afonsocrg/ad... #react #javascript #web #frontend #webdev

AoC 2024 - Day 25 "Code Chronicle" - ⭐️⭐️ Yey, it's done! To reduce search, I stored the locks in a tree of HashMaps, indexed by pin size. Thanks @was.tl and team for these challenges, it's been a fun journey!! Merry Christmas to everyone Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 24 "Crossed Wires" - ⭐️⭐️ For Part 2, I checked which gates broke addition circuit rules: XOR outputs must feed into AND+XOR gates, and so on... Got a messy code, but found the 8 swapped wires! Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 23 "LAN Party" - ⭐️⭐️ Got a fast solution by checking for complete subgraphs (TIL they're also known as cliques) while processing each edge. Used HashMaps and HashSets for faster lookup and intersections. Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 22 "Monkey Market" - ⭐️⭐️ Used bit-wise operators to make the next number generation faster. For Part 2, stored diff sequences as 20 bit integers for faster lookup. Times: Part 1: 11.6ms Part 2: 147.8ms Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 21 "Keypad Conundrum" - ⭐️⭐️ Defined the problem recursively and used caching to avoid re-computation of intermediate results. This one was a real conundrum. Happy with my execution times: Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 20 "Race Condition" - ⭐️⭐️ Got a O(n) solution by storing the distance from each position to the end, and by checking for shortcuts in each position vicinity. Did a "diamond" for-loop for the first time, it was fun. Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 19 "Linen Layout" - ⭐️⭐️ Memoization did the trick for this problem!! Also, instead of checking one pattern at a time, I checked if prefixes with different lengths existed in the pattern set, which sped up my solution by 4x. Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 18 "RAM Run" - ⭐️⭐️ Reused the A* from day 16 (might implement a generic one). For part 2, a binary search got me the right answer in 400ms (took 13 attempts) Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 17 "Chronospatial Computer" - ⭐️⭐️ Part 2 was a fun excuse to revisit Z3—it’s been five years since I last played around with it. Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 16 "Reindeer Maze" - ⭐️⭐️ Tough one. A simple A* search was not enough: Pre-computed heuristics by running a Dijkstra's from the final position, which made a HUGE difference. Also skipped searching states that only had one neighbor Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 15 "Warehouse Woes" - ⭐️⭐️ Loved using recursion in this one. And feeling super stoked to get it working right in the first try!! Also, made some fancy looking match expressions for the first time. Loving Rust so far 🦀 Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 14 "Restroom Redoubt" - ⭐️⭐️ Used the modulo operator instead of doing the whole simulation to get a solution for P1 in 28.6µs. For P2, checked the first state with no overlap and there I found the Xmas tree! Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 13 "Claw Contraption" - ⭐️⭐️ Felt good to finally put diophantine equations to use (studied them 7y ago). Also derived an equation system to determine the intersection of solutions in 2d. Fav challenge so far! Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 12 "Garden Groups" - ⭐️⭐️ Used recursion to get area and perimeter. To find all sides I got all the edges in a HashSet, and removed the **adjacent** ones to count sides. The "E" example was very helpful! Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 11 "Plutonian Pebbles" - ⭐️⭐️ LinkedLists were fast enough in Part 1. Memoization came to the rescue in Part 2. For some reason had to use u128 because I was having undetected overflows with u64... Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 10 "Hoof It" - ⭐️⭐️ Unexpectedly simple, but a good treat! usizes and isizes in Rust are a bit of a pain, when it comes to searching in a 2d grid... How do other Rustaceans deal with those? Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 9 "Disk Fragmenter" - ⭐️⭐️ Challenges starting to heat up! Managed to find a closed-form expression to get the checksum of a memory segment, which sped up things a lot! Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 8 "Resonant Collinearity" - ⭐️⭐️ Spoiler alert: When I first read Part 1, I only considered the collinear points between the two antennas, which were not featured in the example. Happy I got it right first try Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 7 "Bridge Repair" - ⭐️⭐️ Fun one. Implemented a basic DFS, but in which cases can we prune the search? Monotonically increasing values are a hint ;) Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 6 "Guard Gallivant" - ⭐️⭐️ This one made me sweat... In part 2, got a fast solve by only testing obstruction placements along the exact path the guard would actually traverse, instead of testing every position =] Code: github.com/afonsocrg/AoC #AdventOfCode #rust

AoC 2024 - Day 5 "Print Queue" - ⭐️⭐️ Fun challenge! Opted to use HashMap and HashSet for faster rule lookups. For part 2, created an algorithm that would continuously swap out-of-order pairs. Fast enough :) Code: github.com/afonsocrg/Ao... #AdventOfCode #rust adventofcode.com/2024/day/5

"Mull It Over" was a fun challenge. Learned something today!! #AdventOfCode adventofcode.com/2024/day/3