Ivan Sagalaev is a user on mastodon.social. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

Ivan Sagalaev @isagalaev@mastodon.social

I'm having a strong suspicion that it's about the third time I find myself implementing a fake S3 bucket API on top of a local dir for testing…

Today's a special day. I encountered a bug that would have actually been caught by a type checker!

(numpy.fromfile didn't recognize a Path object as a filename, had to cast it to str explicitly)

The second chapter of my GTK Rust tutorial is now available to view. This chapter will focus on boxes, labels, and buttons; how to share and manipulate state across multiple closures / threads; setting style classes; and insert widgets into the header bar, as well as boxes.


Things should begin to get more interesting in the next chapter. There's not a whole lot that you can do with just buttons and labels in boxes.

Conformists use wrapping paper – I bag to differ.

… okay, I might have an idea. Dozens of extensions and hundreds of open tabs… and general lack of self-discipline :-)

Today is the day when I actually envy Windows and Mac users. They already got new Firefox 57, while I'm waiting for Ubuntu to get the update in its repositories :-)

On the other hand, it could very possibly turn out that the title feature of this release would simply bring the speed of Mac and Windows versions of Firefox on par with Linux. I never understood what was so slow about it in the first place…

a book idea: "256 shades of grey"

big company hires a young female junior dev to pair program with the cto. he's into metaprogramming, monads and multithreading without mutexes/semaphores.

You know you understand your code well when you can see that a change has or hasn't worked just by looking at how fast logs flow through the terminal window without actually stopping and reading them.

Also on the subject of scientists and engineers, here's a semi-regular shameless plug of my old post: "Scientists, engineers and teachers", softwaremaniacs.org/blog/2012/

"As an engineer, if my solution is perfect then I wasted too many resources in making it perfect."

Someone put the guy in a class room! We need more of that being taught to future professionals, instead of class hierarchies and whatnot…

A very sane article on types vs. conventions/semantics. jawaninja.com/programming/2017

A gem in the middle: "conventions enforced statically at the type level […] are not necessary nor sufficient and come at a non-zero cost."

The hard part is to get that across to people who seriously think that "if it compiles it's correct".

Finally got a chance to employ the full power of async/await style programming in a real-world Python system. Very exciting paradigm shift!

One observation: the code *looks* simpler than what's actually happening. Which is a bit scary. But I suspect that becomes better with practice.

OMG!!! Chucklefish Games (of Stardew Valley / Starbound fame) are writing their new game in Rust! It even uses code that I wrote (the `smallvec` crate)! It's gonna ship for multiple console platforms!

(If you can't tell, I am SUPER EXCITED about this.)


Went on Twitter for a moment… I didn't expect this, but I was *stunned* by how much of it is there: people posting stupid embarrassing shit trying to look smart and trendy.

People of Mastodon, I love you!


Rammstein, sounding medieval: youtube.com/watch?v=UmESlfo5HY

"Ohne dich" ("Without you") is beautiful!

I'm completely failing to find an account at which to direct it, so I'll just ask at large: is there a way to disable an emoji popup when I'm typing in a smiley? I am pretty positive I will never use this feature except by mistake, and a popup is visually jarring.


Reverted to Unity. Because no matter how I tried I couldn't fix two main problems in Gnome 3:

- Use 1.5 scaling for desktop (it's experimental and blurry), and neither 1.0 or 2.0 is actually usable
- Trackpad is suddenly laggy and imprecise. Like in Windows. I didn't know it had anything to do with the desktop environment, but apparently it does!

All other differences are superficial and are easy to get used to.