In this blog I mainly write about my projects and some random stuff that comes to my mind :)

Cracking the Music Code.

Recently, I spent a lot of time learning to play guitar better and studying a music theory. While the art of guitar is a whole different story on its own, in this blog post I want to share some tools and resources that helped me to better understand the fundamentals of music. I tried everything from this list myself and liked it, and some of these tools I now use almost everyday.

Music theory

There are many reasons to study music. If you play any instrument, the knowledge of some music theory (at least notes, simple chords and so on) makes everything so much better. And even if you just a music listener, a bit of understanding of what is going on in your favorite tunes will definitely enhance your experience.

I play guitar for several years already, so when I started studying more music theory this summer, I was not a complete beginner. However, most of the resources below are relevant for any level of proficiency – you may teach yourself with them even if you have zero initial knowledge and don't play any instrument.

So, here is the list.

Read more →

13 November 2016

ACM-ICPC World Finals 2015. Part II.

This is the second blog post about Nazarbayev University team on ACM-ICPC World Finals 2015.

Contest floor

Read more →

02 May 2016

ACM-ICPC World Finals 2015. Part I.

In 2015, our team from Nazarbayev University participated in ACM-ICPC World Finals for the second time. This is also the second time I write about it, and for sure the last time I share an experience from a contestant's point of view, due to the rule of maximum two-times-in-a-lifetime participation. I hope that this blog post will help people to learn more about ACM-ICPC World Finals, and also, probably, will inspire somebody to work hard and to qualify to the same event next years.


Read more →

19 April 2016

Codeforces Round #294 (Div. 2)

Today (February 28th, 2015) Codeforces Round #294 was held. This round was prepared by me and Bekzhan Kassenov. The contest was rated for the second division, however, as usually, many participants from the first division took part in it unoficially.


Preparing a contest on such a popular website was a unique experience for us. In addition, we were the first from Kazakhstan to prepare the round. This fact honored us, but also made us feel a bit nervous. We are very glad, that eventually it went smoothly. Thank you all 3000+ participants of the round! It was fun :)

There are already several blog posts that describe what is like to be an author on Codeforces. Here are some more points from me. Hope you will find something new, interesting or useful here.

Read more →

28 February 2015

LaTeX Beamer — a great alternative to PowerPoint.

During this year I saw a similar type of slides in very different places. I saw these presentations in Petrozavodsk programming competitions training camp in Russia, on the conference on program analysis and during the lectures in my own university in Kazakhstan. And all these presentations looked like this:


Even though a little bit different in details, they definitely shared one thing in common: all these presentations looked well-organized, neat and in general very professional.

Read more →

05 December 2014

Palindromic tree.

Disclaimer: I am not an inventor of palindromic tree and don't have any rights on it. The inventor of palindromic tree is Mikhail Rubinchik, and this article just describes basic principles of his beautiful data structure.

This blog post will describe palindromic tree — a nice data structure allowing to solve some interesting problems involving palindromes. This data structure is quite new, and even Google still doesn't provide any information about it. As far as I know the name "palindromic tree" is also not an official name yet. Would you come up with a better name after reading this article?

Thanks to Mikhail Rubinchik, inventor of this data structure, for presenting it during Petrozavodsk Summer Camp 2014 and thus making creation of this article possible.

Structure of palindromic tree.

As in any tree-like data structure in palindromic tree we have nodes. Here each node represents a palindrome.


Example of 4 nodes of palindromic tree.

Read more →

25 September 2014

ACM-ICPC World Finals 2014. Part II.

This is the second blog post about Nazarbayev University team on ACM-ICPC World Finals 2014.


Read more →

02 July 2014

ACM-ICPC World Finals 2014. Part I.

This year our team from Nazarbayev University worked hard and got lucky enough to qualify for ACM-ICPC World Finals. It is the sixth time when teams from Kazakhstan advance to this event, starting from 2007, but there is not much information about this available to the public. In this blog post I want to fix this a bit and share my experience as a World Finals 2014 contestant.


Read more →

30 June 2014


As a part of preparation for ACM-ICPC 2014 World Finals our team NU 1 prepared (and continues preparing) collection of different algorithms, named Algos. It can be useful in different programming competitions as well as in some real programming projects.

For the ease of use of Algos, all algorithms (with very rare exceptions) can be compiled and executed as is. Moreover, in order to verify the correctness of code and to help understanding the purpose of algorithm, the source code of every algorithm is based on some reference problem (on which the link is provided). Short description and time complexity is also available for every algorithm.

Algos is originally based on the repository on Github. You are welcome to star, fork and contribute!

Algos algorithm collection

Github repository

Read on a separate page →

16 June 2014

The following blog posts remained here from the times when this website was in Russian. If you don't speak Russian, you can always read them using Google translate (not very good translation though).


Как же похожи друг на друга актеры Джош Холлоуэй (Сойер из LOSTa) и Николай Костер-Вальдау (Джейми Ланнистер из Игры Престолов).


Джош слева, Николай справа. Или наоборот

Полсезона «Игры Престолов» я просмотрел, радуясь, что узнал Сойера в Ланнистере.

А каких еще невероятно похожих друг на друга людей знаете вы?

Читать на отдельной странице →

14 августа 2012


В книге Дональда Нормана «Дизайн повседневных вещей» есть интересный момент о стандартизации обыкновенных часов. Существуют 2 основных типа часов: с цифрами и стрелками. Оба типа стандартизированы. Эти стандарты позволяют нам определять время мгновенно. Люди привыкли к ним, и любой новый вид часов, даже потенциально более информативный и удобный, обречен на провал. Малейшее отклонение от нормы сразу же ведет к непониманию и затруднениям. Взгляните на пример из книги — часы с обратным циферблатом. Который час?


Читать дальше →

30 августа 2011

Большой путь одной маленькой игры

Между прочим, совсем недавно, в феврале, состоялся релиз флеш версии игры Life Turn.

Чуть не забыл, над флеш версией работало целых три человека.

Кстати говоря, сейчас я занимаюсь флешем.

Ну, обо всем по порядку.

Читать дальше →

5 августа 2011

Life Turn

Сегодня вышла игра Life Turn, сделанная мной в соавторстве с разработчиком под ником SaintHeiser.

Life Turn

Читать дальше →

20 октября 2010

KEYWORD. История создания

Мои любимые игры — головоломки. И не просто казуальные паззлы, а игры, в которых не знаешь чего ожидать от следующего уровня, которые используют нестандартные ходы и заставляют искать необычный способ решения. За это я люблю серию Karoshi, Hoshi saga, интереснейший Crayon Physics Deluxe.


Однажды во время прохождения игры на тему а-ля "найди спрятанный крестик", у меня возникла идея создать нечто подобное, предлагая игроку найти в каждом уровне зашифрованное ключевое слово, сделать каждый уровень максимально непохожим на все остальные, а головоломки максимально необычными.

Читать дальше →

13 сентября 2010