
Co-founder and CTO @missiveapp. I solve problems and try not to create too many. I also suck at guitar.
Quebec City, Canada
Joined May 2009
- Tweets6.6K
- Following453
- Followers801
- Likes484
Rafael Masson retweeted
I'm a Crystal @CrystalLanguage Core Team member and I created Kemal @crystalkemal (3.8k+ ⭐, 5M+ downloads).
I've been building Crystal tools since 2015. Now I'm working on gcry, a %100 Crystal garbage collector for Crystal. Already at ~89% of Boehm GC throughput with ~0.95x RSS.
I also maintain the entire Kemal ecosystem, run Crystal Weekly and Crystal Community, and write free books in Turkish and English.
I can't find a job right now. So I'm going full time on Crystal Open Source. I need $1,000/month to keep doing this.
If my work has helped you or your company, please consider sponsoring.
👉 github.com/sponsors/sdogruyo…
Be part of Crystal's future. 💎
#crystallang
This. If you use @Authy and the UX is still decent, disable automatic app updates on your phone while you can. You wouldn’t believe how far they managed to screw it up.
Ain't enshittification great? @Authy pushed an update, and not only does it look worse than the previous UI - but in addition to not having icons for key services (and no option to set your own) it has _lost_ icons for key things like AWS. Which one of the "julik"s do I click, dear @AuthyHelp ? Maybe your qualified UI design team lead PM supervisor knows the answer? 😭
Everyday I feel grateful to have Ruby as my main trusty tool for working with a computer. Thank you @yukihiro_matz. #RailsWorld
Rafael Masson retweeted
Just noticed that @figma is using @missiveapp’s EmojiMart (missiveapp.com/open/emoji-ma…) when inserting comments 📨 🫶 🎨
Also noticed we reached 8k+ ⭐ on @github 😱
Made me realize that it was shamefully outdated 😬; we just released an update that includes Emoji v15 🫨 🫎 🪼
Rafael Masson retweeted
New to Missive? Our friends at @ProcessDriven_ are hosting a hands-on workshop on February 1, 2024 that'll guide you through collaborating on email using Missive!
🔗 Register at: processdriven.co/services/in…
Rafael Masson retweeted
“If there’s anything I see juniors often miss, it’s this. Careful, repeated, even obsessive, study of their own work. For programmers that means poring over the pull request until it’s as aesthetically pleasing as it is functionally correct.” world.hey.com/dhh/commit-to-…
Rafael Masson retweeted
I also wanted to announce that I'm launching a new product to help saxophone players keep their fingers close to the keys!!
I've been working on the R&D for a while and it's finally ready >>>> sax.greg.technology/ to get updates when we launch!
youtube.com/watch?v=BrUDYO_O…
That “texture healing” extravaganza might have me cheat on Monaco for the first time in my career. monaspace.githubnext.com
Rafael Masson retweeted
Lots of conversations with people about Citus lately. Citus is a fascinating and advanced piece of technology, but not a one size fits all. If you're considering Citus here's the things to keep in mind.
Disclaimer-this is assuming a multi-tenant workload.
If you ever think you're going to need Citus, it's a good idea to slightly denormalize and have your tenant/customer id as a column on every table. The key is you don't want to have to join another table to get to the tenant_id/customer_id you want it there denormalized on every table.
Your primary keys will then become composite primary keys, composed of customer id + the id for that table.
For joins you'll want to make sure you also include that tenant_id as part of joins for every coloumn, not just one table, for every single table in your query you want to make sure customer/tenant id is joined.
A good thing to check for before going to production is tweak the log setting for queries that are cross shard to error. Citus has a setting for this: ALTER DATABASE postgres SET citus.multi_task_query_log_level = 'error';
The other piece is determining your node size and cluster size ahead of time, don't prematurely plan for too large of scale.
A fun interesting learning, just doing the above with customer id and joins we saw customers that were planning to migrate to Citus saw a significant performance improvement from that alone.
As for shard sizing don't stress too much on it. Determine your starting number of nodes and then create a shard count that allows you to scale to 4x that. Don't start on the smallest instance size you can find, but don't start on the largst either. With all this a goldilocks zone middle of the road for all is the way you want to go.
Once you're live watch for hot spots on shards on particular tenants, and consider rebalancing or isolating those tenants. Citus expansion of pg_stat_statements (citus_stat_statements) will show you hot spots on tenants, and then you can isolate that tenant: SELECT isolate_tenant_to_new_shard('table_name', tenant_id);
And if you want to move that large tenant to their own dedicated node: SELECT master_move_shard_placement(shard_id, source_node_name, source_node_port, target_node_name, target_node_port)
All credits to @_Tristan ❤️
Look Ma, I Exited
Excited to announce that Tiny has acquired ConferenceBadge (from the creators of @missiveapp).
One of my favourite types of businesses.
✅ A simple business I can explain to my parents
✅ Will exist as long as people keep going to conferences
✅ Profitable and asset light, with lots of opportunities
If you're hosting a conference anytime soon, check it out:
conferencebadge.com
PS: Thanks to @plehoux for being great to deal with!
So unfortunate that just a tiny bunch of 30+ year olds will get the brilliance of this at first watch. youtube.com/shorts/RZSE2JI1r…
Trying to convince myself not to book a @PIXIES ticket + hotel + plane from Quebec to NYC next week.
Help, anyone?
Rafael Masson retweeted
Anyone switch from Front to Missive?
If yes, was it worth it?
Key features?
They seem pretty similar, with Missive being slightly better designed, but maybe I'm missing something.
Rafael Masson retweeted
VS Code users:
1. Command + Shift + P
2. Type "sticky scroll"
3. Hit Enter
You're welcome.
Rafael Masson retweeted
Missive (@missiveapp) Migrates to Crunchy Bridge for a Big Performance Boost crunchydata.com/case-studies…
















