Type Variance Of An Assignment

  Type variance is one of the most difficult and confusing subjects when it comes to statically typed programming languages. It is often explained as somewhat convoluted rules about container classes and how they can be substituted based on type arguments. This blog is an attempt to explain type variance using...

Live Coding Kotlin/Native Snake

  Here is the video of me at KotlinConf writing from scratch snake game with ncruses UI using Kotlin/Native. You can find slides and source code in this git repo. It’s hard for me to know if it’s...

Call With Current Continuation

  “Call with current continuation” (abbreviated as call/cc) originates in Scheme. It’s not as widespread as yield/async/await and less intuitive than coroutines as threads implementation. On the other hand, it seems to be quite influential because Scheme was one of the first high-level languages to have coroutines...

Async Await

  This post is about async/await coroutines implementation which is a bit more complicated than yield but fundamentally, just like other coroutine implementations, uses the idea of suspending functions and continuing execution some time later from the same point. So the current thread doesn’t really “await” for anything but...

Yielding Generators

  The previous blogpost was about coroutines as threads which is probably the most intuitive coroutines implementation to use. However, there is another widespread and time-tested implementation based on generators using yield keyword and composable promises using async/await. This is blog is about generators. They have been part of...

Coroutines As Threads

  The main motivation for these blogposts is that, probably like many other developers, I heard about coroutines, continuations, yield/async/await and even used them to some extent, but I never got to really understand what they mean from computational point of view, how they work and how concepts like continuations relate...

From Groovy to Kotlin

  This is a write-up of my experience converting source code of Activity Tracker plugin for IntelliJ IDEs from Groovy to Kotlin. It is written for anyone familiar with Groovy or Kotlin and might be especially relevant if you are considering move from Groovy to Kotlin. Hopefully, it...

ACCU 2016

  I recently attended ACCU conference in Bristol. Below you can find some of the tweet-size notes I made during the conference. If you haven’t been to ACCU conferences, the conference schedule might give you an idea of what it’s like. It has emphasis on C++ but other languages...

Hello

  I only wanted to published quick notes from ACCU 2016 conference but ended up playing with Jekyll and started this yet-another-blog-about-programming. I hope it will be enjoyable experience for everyone involved. Thank you for reading this.