Finally built my dream custom keyboard! Really happy with the result. The feel and sound are super satisfying! PCB: @wooting.io 60HE+ Module Case: Tofu60 Redux in Meteorite Gray Keycaps: GMK MTNU Graphite Switches: GEON Raw HE
Alex Grad
@grad.dev
Building macOS & iOS apps in public and sharing everything I learn.
Ported dkaraush's rotating ASCII donut GLSL shader to Metal + SwiftUI 🙃 Repo: github.com/graddotdev/S...
Just open-sourced NeoShadow, a SwiftUI component for creating smooth shadows! Perfect for neumorphic interfaces. Check it out: github.com/graddotdev/S...
Ported Figma's "Beautiful Shadows" plugin by Alex Widua to SwiftUI. Considering making this open source – would love to hear if there's interest from the SwiftUI community.
I've quit my job to build macOS and iOS apps full-time. Excited to build in public, share my learnings, and connect with others on this journey. Wish me luck! 🙃
10 days since upgrading from 16" MBP (Intel, 2019) to 14" MBP (M4 Pro, 2024). Hard to express how awesome this machine is — lightweight, beautiful, powerful and truly portable. Perfect for working from the couch.
I've completed the main part of day 24 of #AdventOfTypeScript but decided not to finish it since it focuses more on reverse engineering rather than type system knowledge. I've attached that part of the solution for anyone who's interested.
Day 23 of #AdventOfTypescript required me to look at HotScript's repo to solve the task. Really like this approach. Definitely learned something new today.
Yesterday was busy, so I brute-forced Day 22 of #AdventOfTypeScript. It wasn't hard, just a lot of coding, and I don't want to do that today.
I've completed day 21 of #AdventOfTypeScript. Last year's tasks were much harder. I miss those days 😔 adventofts.com/events/2024/21
I've completed day 20 of #AdventOfTypeScript. Same task, same solution. Déjà vu. adventofts.com/events/2024/20
I've completed day 18 of #AdventOfTypeScript. Easy one if you know about `NoInfer`. adventofts.com/events/2024/18
I've completed day 17 of #AdventOfTypeScript. It took me some time to realize that `x[0]` is not working with the `string` type. adventofts.com/events/2024/17
I've completed day 16 of #AdventOfTypeScript. I had type-safe and working solution, but it fails t4. This test case forced me to rewrite my solution and wasted a lot of my time. I don't think that test case belongs there. adventofts.com/events/2024/16
I've submitted the solution for day 15 of #AdventOfTypeScript using the cmd + y shortcut. The problem is that submitting using this shortcut accepts any solution, even a blank one. I hope today's scores don't count for the leaderboard. #AdventOfTypeScript adventofts.com/events/2024/15
I just can't submit the solution today, so my leaderboard position is fucked. There are a lot of errors in the console. What a nice way to start the day. 😡 #AdventOfTypeScript adventofts.com/events/2024/15
I've completed day 14 of #AdventOfTypeScript. Today's task was simple, but I felt too groggy to complete it quickly. 😔 adventofts.com/events/2024/14
I've completed day 13 of #AdventOfTypeScript. Today's task was actually pretty easy. You just need to add `in out` before `T`. adventofts.com/events/2024/13
Starting today, I’ll only publish solutions after the top 50 on the leaderboard is filled.
I've completed day 12 of #AdventOfTypeScript. Spent 40 minutes mostly trying to figure out NaughtyOrNice. In the end, I hardcoded the rating by name. If hardcoding is the only solution, then this task is just nonsense. adventofts.com/events/2024/12
I've completed day 11 of #AdventOfTypeScript. Among the many ways to solve this, this is my favorite: not the shortest, but simple and clear. adventofts.com/events/2024/11
I've completed day 10 of #AdventOfTypeScript, but I was slower than usual today and dropped on the leaderboard. adventofts.com/events/2024/10
I've completed day 7 of #AdventOfTypeScript! The task took me 5 minutes because I wasn't familiar with const generics, but I'm glad I learned something new, and even so, I placed 20th for this task today 😂