Yury Selivanov
banner
1st1.dev
Yury Selivanov
@1st1.dev
Co-founder & CEO of Gel • Python core developer • PSF fellow • async/await • asyncio • uvloop • asyncpg ••• @geldata.com • github.com/1st1
📣 if you are at PyCon US come to see my talk 2:30pm Ballroom BC. you will not regret it to say the least...
May 17, 2025 at 5:02 PM
We're almost there...
January 14, 2025 at 6:37 PM
2024 was tough but transformative. dropped 15kg, resolved some health and behavioral issues, and finally made progress on guitar—bar chords are happening (i'm still 🚮, i know).

2025 is gonna be a banger—for me and @edgedb.com 🫡, stay tuned.
December 31, 2024 at 7:05 PM
Believe me when I say this: it will be absolute 🍌🍌🍌🍌🍌🍌🍌🍌🍌

Join @pablogsal.com and I at PyCon US 2025.
December 18, 2024 at 5:32 PM
Center-aligned code is beautiful, so glad I made the switch. Can somebody help me debug my Python code though? 🙏
December 13, 2024 at 7:42 PM
Running EdgeDB test suite is like...
December 8, 2024 at 2:26 AM
Which one is more readable, SQL solutions (they are great) or EdgeQL? I'm biased, please help. 👋

(day 4 AoC solution)
December 4, 2024 at 8:55 PM
Here's the whole thing for your (hopefully) enjoyment:
December 3, 2024 at 10:15 PM
Tying it all together, finally:
December 3, 2024 at 10:15 PM
But remember, we just need to find if there's ONE way for a record to satisfy the rules:
December 3, 2024 at 10:15 PM
Now the sweet part, time to test every record we prepared against the "good record" requirements:
December 3, 2024 at 10:15 PM
Remember, EdgeQL is declarative and functional, so it's not your typical Java code. We need to be a bit creative with this task. Let's expand every "record" into a set of "records" that we'll be trying to lobby through the rules:
December 3, 2024 at 10:15 PM
Then we want to just parse the records into arrays of integers -- so much easier to work with!
December 3, 2024 at 10:15 PM
Let's break this scary (no so!) query apart.

First, split the incoming string into an array of strings/lines and convert it into a set:
December 3, 2024 at 10:15 PM
Silly me. Turns our Advent of Code challenges have two parts in them, and who knew, the second part is harder 🙈

I went back and implemented the second part of the second day challenge. This might be interesting to you regardless of EdgeQL, read if you like math or SQL too. 🧵
December 3, 2024 at 10:15 PM
Part 2 wasn't that problematic either
December 3, 2024 at 6:25 AM
Alright, me vs. Advent of Code. Part 1 of today's challenge is super straightforward.

Dare I say, EdgeQL solution is actually more concise and elegant than a corresponding Python code.
December 3, 2024 at 6:25 AM
Advent of code in EdgeQL, day 2
December 2, 2024 at 5:44 AM
Albeit we can make EdgeQL version shorter
December 2, 2024 at 4:15 AM
ngl Python looks great too
December 2, 2024 at 4:04 AM
Alright advent of code, let's do this in EdgeQL
December 1, 2024 at 10:50 PM
Hello from 🇲🇽
November 26, 2024 at 12:21 AM
Upon further investigation, apparently wrapping a single callback in a lambda expression, significantly increased number of Python objects created and skyrocketed pressure on GC. Any code that used gather() heavily could become significantly slower. This patch fixed it entirely.
November 24, 2024 at 9:42 PM
I wrote a rather involved stress microbenchmark and didn't observe any difference. Then @pablogsal.com came and did his thing, uncovering the actual culprit: asyncio.gather() got significantly slower. Something was wrong with 'lambda' functions in it.
November 24, 2024 at 9:42 PM
The most recent mind blowing finding was that somehow, our branch made asyncio 25% slower on some benchmarks, which was completely unexpected for me. Here's a link to the PR by the way: github.com/python/cpyth...
November 24, 2024 at 9:42 PM