Rob Janssen

3.9K posts

Rob Janssen banner
Rob Janssen

Rob Janssen

@RobIII

Software engineer, mod @Tweakers and proud father of 2 great sons. Pretty much all-round developer.

Netherlands Inscrit le Eylül 2009
217 Abonnements245 Abonnés
Milan Jovanović
Milan Jovanović@mjovanovictech·
Should you stop using random UUIDs in .NET? Traditional UUIDs (Guid.NewGuid()) are random — great for uniqueness, but terrible for database performance. They cause: ❌ Expensive index rebalancing ❌ Poor insert performance ❌ High fragmentation That’s why many developers switched to ULIDs — 128-bit, sortable, and still unique. They preserve temporal order, which makes them more index-friendly. But now, there’s something new: ✅ Guid.CreateVersion7() in .NET 9 UUID V7 is time-ordered and compatible with ULIDs, without needing a 3rd-party package. You get the benefits of ULID, but natively supported in .NET. Would you switch from ULID to V7 UUIDs? --- Do you want to simplify your development process? Grab my free Clean Architecture template here: milanjovanovic.tech/templates/clea…
Milan Jovanović tweet media
English
8
45
232
12.4K
Rob Janssen
Rob Janssen@RobIII·
@microsoftnl Overigens zijn er ook variaties die 8 of meer cijfers gebruiken en met een kortere of langere 'geldigheidsduur'. Dat is overigens nog zoiets: zelfs als de code "verlopen" is, is deze vaak nog wel een (half of één) minuutje geldig, dus als je een trage typer bent: gewoon doorgaan.
Nederlands
0
0
0
19
Rob Janssen
Rob Janssen@RobIII·
@microsoftnl Dat betekent dus dat je niet twee (of nog meer…) authenticator apps op je telefoon hoeft te hebben. Ondanks dat veel websites vaak aandringen op een specifieke ("wij van WC-eend"), werkt je eigen, ouwe, trouwe authenticator app zéér waarschijnlijk ook👍 TOTP is een standaard 2/2
Nederlands
0
0
1
27
Rob Janssen
Rob Janssen@RobIII·
@microsoftnl Om een veelgehoorde 'mythe' te ontkrachten: TOTP authenticators zijn - zolang je ze alleen voor de 6-cijferige TOTP codes gebruikt - uitwisselbaar. De Microsoft authenticator is dus nét zo goed als die van Google of Authy of LastPass of Bitwarden of eender welke andere 1/2
Nederlands
0
0
1
90
frank wieser
frank wieser@frankwieser·
@creepydotorg Apparently she was born a man…apparently my ex mother in laws dr did the surgery. Hippa means nothing to her lol
English
1
0
2
4.9K
Creepy.org
Creepy.org@creepydotorg·
Who had the most incredible woman’s physique ever seen in a movie? I’ll go first:
GIF
English
2.6K
925
39.3K
8.8M
Jack J
Jack J@Jack_Frodo·
I have a very dumb question for airplane people. why can’t they put a cage thing on the front of the engine to block bird strikes?
English
3.6K
4K
182K
28.9M
Donald J. Trump
Donald J. Trump@realDonaldTrump·
Sleepy Joe Biden, THE WORST PRESIDENT IN THE HISTORY OF THE UNITED STATES, has allowed millions and millions of Criminals, many of them murderers, drug dealers, and people released from prisons and mental institutions from all around the world, to enter our Country through it’s very dangerous and ill conceived Open Border. Sorry, but it’s my job to get these killers and thugs out of here. THAT’S WHAT I GOT ELECTED TO DO. MAGA!
English
57.4K
52.5K
370.9K
77.1M
Rob Janssen
Rob Janssen@RobIII·
@TankyBashem @mikepat711 When I started driving Tesla long ago ago I took my girlfriends car for an errant. Later that night I was sitting on my couch thinking: "what's that noise I hear?" Turns out her car was in the driveway, running stationary, unlocked, not even handbrake on. I just got out a left 😅
English
1
0
3
92
Norm! 🇨🇦
Norm! 🇨🇦@TankyBashem·
@mikepat711 I don’t even put the car or truck in park anymore. Just unbuckle the seat belt and get out. I’m going to be screwed if I ever get a non-Tesla rental.
English
7
1
66
3.1K
Mike P
Mike P@mikepat711·
Walk up to the car, open the door. No looking for keys, pressing any key fob buttons, nothing. The car senses your presence. Sit down, car already on and ready. Buckle your seatbelt, start your song, press the blue button. Sit back and relax. That’s it.
English
89
79
861
615.9K
Microsoft Nederland
Microsoft Nederland@microsoftnl·
We gebruiken Broadway wanneer we ons blits voelen. ✨
Microsoft Nederland tweet media
Nederlands
2
0
1
326
Erik in DÆrik
Erik in DÆrik@teslainventory·
Picked up our 19th Tesla today. The new Y is soooo good. The team @ Tesla absolutely nailed it and made an amazing car even better!
Erik in DÆrik tweet media
English
220
463
5K
88.8K
Rob Janssen
Rob Janssen@RobIII·
80's me would be having a stroke... Hell, 20's me is *still* having a stroke 😅
Rob Janssen tweet media
English
0
0
2
579
Rob Janssen
Rob Janssen@RobIII·
@mjovanovictech The power of repetition 😜 Let me know if I can be of assistance 👍
English
0
0
3
120
Milan Jovanović
Milan Jovanović@mjovanovictech·
@RobIII That might be the case, but this is probably the first time I paid attention 😅
English
1
0
1
148
Milan Jovanović
Milan Jovanović@mjovanovictech·
Are you adding meaning to your object IDs? Here's why you should consider making IDs human-readable. A common choice with relational databases is using an int/long. The database generates an auto-incrementing number for each new row. It is simple and works great for small systems. ✅ A drawback of auto-incrementing IDs is they open up your application to enumeration attacks. If the current object ID is "42", an attacker might assume that the next object ID is "43". If some of your API endpoints are unsecured, an attacker might be able to exploit this. UUIDs solve this type of problem, as they are hard to guess. They're also helpful in distributed systems because you reduce the chances of ID collisions. You can also use UUIDs when you need to generate object IDs in your code instead of letting the database generate the ID for you. Still, there's a problem. ❌ These values don't tell you anything about the object they're identifying. But if you have an object ID like: - ord_01HZW2RKF63AWC1BT901FPGRGT - tr_afdf5738-6a8e-4d1a-90db-e894a3828320 You get more information based on the ID prefix (and previous benefits). For example, "ord" could be short for Order, and "tr" could be short for Transaction. Many of the world's largest companies do this (e.g., Stripe). Learn more about building good REST APIs: milanjovanovic.tech/pragmatic-rest…
Milan Jovanović tweet media
English
12
17
174
12.8K
Rob Janssen
Rob Janssen@RobIII·
@mjovanovictech I mentioned it a few times replying to you, so I don't know 😄 Glad you like it!
English
1
0
0
160
Milan Jovanović
Milan Jovanović@mjovanovictech·
@RobIII Huh, this is cool. How did I not learn about it sooner?
English
1
0
0
369
Rob Janssen
Rob Janssen@RobIII·
@Devansh_V @BWarburg LIDAR won't come close to just some decent pictures and a jeweler that knows what (s)he's doing. Take closeup, focused, sharp pictures from all angles, preferably a few extra for overview etc. and call it a day. Better yet: take it to a jeweler and ask what (s)he'd need to repro.
English
1
0
0
397
Bettina Warburg
Bettina Warburg@BWarburg·
Anyone have a suggestion for a service that takes an existing piece of jewelry and models it so it can accurately be reproduced if lost?
English
1
0
1
737
Rob Janssen
Rob Janssen@RobIII·
@bunkerniy @mjovanovictech For those that can't read Russian and Twitter won't offer to translate to English: "And they say that the postgre optimizer is almost the best. But in such a simple case it screws up."
English
0
0
2
24
бункерный
бункерный@bunkerniy·
@mjovanovictech А говорят, что оптимизатор postgre чуть ли не самый лучший. Но в таком простом случае косячит
Русский
1
0
0
602
Milan Jovanović
Milan Jovanović@mjovanovictech·
I wrote two almost identical SQL queries. One of them was 451 times faster. I was implementing cursor pagination. And I thought... Why don't I add an index to make my query faster? This is where things went terribly wrong. We have an Index Scan using the composite index. Seems good. But the query is even slower than it was without an index. What gives? This might be because the dataset is too small to benefit from the index. But that wasn't it... What if we were to use a tuple comparison in SQL? Finally, the index is working - 0.668 ms. The query optimizer cannot determine whether the composite index can be used for row-level comparison. However, the index is effectively used with a tuple comparison. If I didn't look at the query plan, I wouldn't have figured this out. Here's the complete performance analysis: milanjovanovic.tech/blog/understan…
Milan Jovanović tweet media
English
7
46
353
21.6K
Rob Janssen
Rob Janssen@RobIII·
@GoDaddyHelp I've sent the whole shebang, put a lot of effort in it and now I'm being ghosted...
English
0
0
1
3
Rob Janssen
Rob Janssen@RobIII·
@GoDaddyHelp I've just had THE most frustrating "support desk" conversation I've EVER had in my life. Your AI bot is enough to drive me over a cliff, and 6(!!!) of your support people couldn't help me with a basic issue I eventually solved myself. I'd like to report my findings ½
English
2
0
1
32
Rob Janssen
Rob Janssen@RobIII·
@mjovanovictech Maybe try a teeny-tiny little bit less clickbait-y tweets next time. I love your content but am not a fan of "did we make a big mistake" whereas, as always, it totally depends.
English
2
0
0
34
Milan Jovanović
Milan Jovanović@mjovanovictech·
Did we make a big mistake with API Versioning? All you need is a good change management strategy: - Don't make breaking changes - New things should be optional - Create a new resource (endpoint) for new functionality - There's content negotiation if you need to change response
English
5
2
26
4.1K