After 5 years of daily workouts, I realized that streaks can hurt our progress.
It's easy to give too much importance to them, and it feels that all the progress is gone when we break them
Tracking the total days since I started keeps a healthier perspective on my habits.
#buildinpublic
03.10.2025 04:20
π 2
π 0
π¬ 0
π 0
Part 2: Our self improvement journey has to be gratifying even when we fail. Self compassion isn't soft, it's strategic
#buildinpublic #selfimprovement #mindset #selflove
28.09.2025 03:55
π 4
π 1
π¬ 0
π 0
TikTok - Make Your Day
vm.tiktok.com/ZGdaajga3/
26.09.2025 05:35
π 0
π 0
π¬ 0
π 0
When we slip up, using circumstances as excuses protects us from feeling bad, but it keeps us away from progress.
One day someone asked me "If you had to catch a flight, would you use that excuse?". It was game changer
#selfimprovement #buildinpublic #mindset
26.09.2025 05:34
π 2
π 0
π¬ 1
π 0
I've drafted a blog post about serendipity and why we should do this kinds of things! Haven't published it yet, but it shares a lot of the thought process that made me start sharing more. Would love to hear your thoughts on it!!
And good luck on that sharing journey!! We're in this together
23.09.2025 13:50
π 0
π 0
π¬ 0
π 0
TikTok - Make Your Day
vm.tiktok.com/ZGda5JSvC/
23.09.2025 13:48
π 0
π 0
π¬ 0
π 0
After a lot of resistance, I decided to post my first TikTok video
Realized I was avoiding it because it felt uncomfortable, but that's exactly why I needed to do it. Growth happens outside the comfort zone.
Good things can only happen if we put ourselves out there.
#buildinpublic
23.09.2025 13:44
π 2
π 0
π¬ 3
π 0
Lately I've been working on "invisible" stuff for Uni Feedback:
- Built a whole admin dashboard to make it easier for me to maintain courses and feedback
- Built new scrapers get course bibliography, assessment and description
But it was finally time to make UI improvements.
Roast my design!
18.08.2025 15:30
π 1
π 0
π¬ 1
π 0
GitHub - afonsocrg/multi-pong: Online Pong game using Croquet
Online Pong game using Croquet. Contribute to afonsocrg/multi-pong development by creating an account on GitHub.
Just wrapped up the @multisynq.bsky.social "Multi Pong" workshop at 42 Porto! Built a multiplayer Pong game with Croquet.js without writing any backend or messaging code.
Guide with code available at github.com/afonsocrg/mu...
Feel free to PR with your own variation of the Pong game ;)
27.02.2025 15:22
π 1
π 0
π¬ 0
π 0
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
30.01.2025 19:50
π 0
π 0
π¬ 0
π 0
That is correct! React Together is basically a KV store on top of Croquet, but we're adding some hooks and components to improve developer experience
29.01.2025 20:46
π 0
π 0
π¬ 1
π 0
React Together shared cursors. Synchronize cursors across multiple users or clients using the Cursors React component
Source Code of an example usage of the React Together Cursors component, to create shared and synchronized cursors in a React application.
π 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
29.01.2025 16:59
π 2
π 0
π¬ 1
π 0
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
29.01.2025 13:17
π 3
π 1
π¬ 0
π 0
Portugal Vue #3 Meetup, Thu, Jan 16, 2025, 6:30 PM | Meetup
LisboaJS partnered with Portugal.Vue, and we are co-organizing this next event, focused on Vue!!
The next [Portugal.Vue Meetup](https://www.meetup.com/portugal-vue/events/
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
14.01.2025 21:17
π 4
π 2
π¬ 0
π 0
π 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
14.01.2025 10:43
π 1
π 0
π¬ 0
π 0
Example usage of yacli_menu
```
from yacli_menu import command, run_menu
@command("Add Numbers")
def add():
a = float(input("Enter first number: "))
b = float(input("Enter second number: "))
print(f"Result: {a + b}")
return True
@command("Subtract Numbers")
def subtract():
a = float(input("Enter first number: "))
b = float(input("Enter second number: "))
print(f"Result: {a - b}")
return True
@command("Multiply Numbers")
def multiply():
a = float(input("Enter first number: "))
b = float(input("Enter second number: "))
print(f"Result: {a * b}")
return True
if __name__ == "__main__":
run_menu()
```
Example output of a yacli_menu program:
```
$ python3 example.py
1. Add Numbers
2. Subtract Numbers
3. Multiply Numbers
0. Exit
Enter choice:
Enter choice: 6
Invalid choice. Try again.
Enter choice: asdf
Invalid choice. Try again.
Enter choice: 1
Enter first number: 19
Enter second number: 23
Result: 42.0
1. Add Numbers
2. Subtract Numbers
3. Multiply Numbers
0. Exit
Enter choice: 0
Exiting..
```
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
11.01.2025 20:46
π 0
π 0
π¬ 0
π 0
Stoked to be part of the organizing team! Thanks Rui Posse and @piara.bsky.social for making this fun!!
See you there π₯
08.01.2025 16:44
π 2
π 2
π¬ 0
π 0
Stop sharing your screen, start sharing your website
Remember the last time you had to screen share during a call? Perhaps you were walking someone...
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...
06.01.2025 13:01
π 0
π 1
π¬ 0
π 0
Add Real-Time Collaboration to Your React App in 10 Minutes
The other day, someone I know messaged: "I found myself over the holiday trying to explain to my...
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
03.01.2025 13:16
π 6
π 2
π¬ 1
π 1
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
25.12.2024 10:08
π 4
π 0
π¬ 0
π 0
Merry Christmas! I was very tempted to do it manually... And then coded what I would end up doing manually. Doing that check is very clever, thanks for sharing!
25.12.2024 08:50
π 1
π 0
π¬ 1
π 0
GitHub - afonsocrg/AoC: My solutions to Advent of Code
My solutions to Advent of Code. Contribute to afonsocrg/AoC development by creating an account on GitHub.
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
24.12.2024 22:19
π 4
π 0
π¬ 1
π 0
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
23.12.2024 12:13
π 6
π 0
π¬ 0
π 0
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
22.12.2024 19:24
π 7
π 0
π¬ 0
π 0
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
22.12.2024 17:35
π 2
π 0
π¬ 0
π 0
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
20.12.2024 15:32
π 4
π 0
π¬ 0
π 0
Super cool idea :D
19.12.2024 17:56
π 1
π 0
π¬ 0
π 0
That last approach is interesting, but even if the shortest path at timestep X is blocked, there may be alternative ones π€
19.12.2024 16:59
π 1
π 0
π¬ 1
π 0
Code implementation for Advent of Code 2024 day 19
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
19.12.2024 16:55
π 5
π 0
π¬ 0
π 0