My 2019 in Review

posted on January 3, 2020

Following my previous two years in review I am doing 2019 as well.

Similarly to last year, I haven’t taken any notes throughout the year, other than those for books I read, so some of what I am going to say is probably misremembered.

I am going down in no particular order, though, the most important is definitely on the top.

My nephew

Baby Krasi has been growing up really quickly and steadily and I’ve loved every second I’ve spent with him this year.

I’ve visited him every one and a half months or so, and every time he had grown up significantly. Most recently, he has started walking and since then has became a menace for anything even remotely interestingly looking around the house like a fridge, a chair, a christmas tree.

Even though his parents are underslept and tired, it’s incredible how much happiness a little one brings to a home.

Work

I have been working on just a couple of personal projects this year, which is significantly less than previous years, so I hope I can pick up the pace again next year.

Stardust physics engine

It became apparent that I won’t be able to get a decent engine running in python, as it will need a lot of optimization that I didn’t want to do, as ideally I wanted to have a very verbose code, which I can refer back to. So I rewrote and extended it in C++.

I have fallen in the trap of being worried to show it online, as I know it’s very hacky and I don’t have the motivation to do a write up for it.

Basically the plan for it was to write a small 2d physics engine that I can use to run Reinforcement Learning tasks on it, interfacing between Python and C++.

I have put it on the backburner for a while, as I wanted to do a CGI project, as I haven’t done that in ages, but I hope when I start looking into ML again next year I will boot it up again.

Advent Of Code

Very recently, I completed this year’s advent of code, which I found tremendously satisfying. Since I did it on multiple machines, I still haven’t combined all solutions in one repo, but I should do that in the next few days.

If you’ve not seen it before, it’s an advent calendar where each day until Christmas has a puzzle to be solved. A lot of people use it to learn a new programming language, but since it was my first time I went with Python, so I can focus more on the puzzle and less on the code.

Some of the puzzles were definitely harder than others, but all of them were loads of fun! I found it really helpful that some of them showed the holes in my Computer Science knowledge, as now I know what I need to improve upon.

Here is a screenshot of the filled up calendar.

vshotarov - Advent of Code 2019

My Advent of Code 2019

Getting stars for solving puzzles is surprisingly addictive!

Machine Learning

One of the things I will remember 2019 the most for is definitely my brief adventure into Machine Learning.

I have had the interest for ages, but never actually looked into it. In the beginning of the year I decided to change that and so I did. I started with the cs231n course at Stanford, which has all the course notes, lectures and assignments available online. Some of the lectures are delivered by the current Director of AI and Autopilot Vision at Tesla - Andrej Karpathy, whom I find incredibly good at condensing huge amounts of information in understandable chunks. Incidentally he has a great list of the books he reads on his goodreads page which has been my go-to when looking for books to read.

I highly recommend the cs231n course to anyone who wants to get into ML and more specifically into Computer Vision (even if you are not interested in vision specifically, the course is general enough to be tremendously useful for other disciplines as well).

Doing the assignments was a massive pleasure, as they structured in a great way. You basically download a package with a bunch of jupyter notebooks which reference a few python files, that you have to populate in order for the ML models to work. Then, going through the jupyter notebooks, your code is being ran and the results checked, so it is immediately obvious whether you are doing the right thing or not.

I don’t want my 2019 in review to turn into a cs231n promotion, so I will stop here, but I’ll say again it’s definitely worth checking it out if you have any interests in ML.

Following that, I jumped into doing a bit of Reinforcement Learning following David Silver’s course at UCL. Similarly to cs231n, I found the delivery really well structured and informative. The assignments unfortunately are nowhere near as nicely done as those in cs231n, so I decided against doing them and jumped straight into running recent algorithms in the OpenAI gym environment.

I started slowly with simple things like cart pole, acrobot, pendulum, etc., moving on to things like Pong to finally running Humanoid tests using the now deprecated Roboschool environments.

Since Reinforcement Learning is in incredibly active research, I spent a lot of time reading very recent papers, mostly by AI about Policy Gradient methods, as at the time it seemed like those were the state of the art ones. To me it seemed that if an algorithm is able to learn how to defeat Dota 2 Pros, it’s good enough for me to run it on simple humanoid tasks.

That process of reading papers and attempting to implement them was incredibly rewarding. Starting from a very basic vanilla policy gradient method and then adding on top of it to get the Proximal Policy Optimization was really satisfying. Additionally, I was surprised by how small those incremental changes to go from one algorithm to another are, especially considering the change in the results.

After achieving a result on the Roboschool Humanoid tasks comparable to those in the PPO papers, I was satisfied and ended my look into ML, to start working on a small 3D character as I felt I had spent a lot of time into programming, so I wanted to dive into a bit of artistic work.

Harry Potter character

I am a massive Harry Potter and the Methods of Rationality fan, and I do mean massive. Towards the end of last year I had done a quick sculpt of a Harry Potter head, as even back then I had a desire to work on a small tribute to the book, but this year I jumped into it properly and carried on pushing the character through the pipeline.

It’s been ages since I had looked into doing proper modeling and lookdev, so both processes have taken me ages, but they are satisfying to do, so I can’t complain. I do find that it’s much more difficult to stay motivated on the project, though, compared to programming.

Currently I am at a stage of doing lookdev on the clothes, and I am almost done with that, though, I expect I’ll need to make changes when I settle on the final lighting environment.

Here are a couple of images of the current state, and I hope I will have more to show soon.

Harry Potter and the Methods of Rationality tribute. Harry Potter hair, made by Vasil Shotarov.

Harry Potter and the Methods of Rationality tribute. Full clothes lookdev by Vasil Shotarov.

Rigging

Unfortunately, I have been growing less and less motivated to do rigging in my spare time, as I get to do enough of it at work.

That being said, I have been thinking about a few big things revolving around rigging and slightly more advanced programming topics, so I hope that I have enough time to look into and share them with you at some point in 2020.

Reading

Last but not least, let’s talk about books.

Even though, I haven’t read more books this year than last, I feel like my love for them has grown even more. I can’t help but feel sorry that I haven’t started reading earlier.

Apart from the list you are going to see below, this year I went through a huge amount of papers on Machine Learning concepts, and as I mentioned above, those were incredibly rewarding.

Additionally, it has became a bit of a guilty pleasure or even a habit, to re-read Harry Potter and the Methods of Rationality, so in 2019 I re-read it three times, usually doing so before bed or when I feel that I don’t have the mental capacity of reading something new. Funnily enough, the first time I read it, I felt like it was a massive book, but with each time I read it, it gets smaller and smaller, as I start to remember almost everything. I feel that there is so much in this book, that I am probably going to read it a few more times before I stop finding new cool things in it.

Following re-reading HPMOR, I went back to a couple more books that I thoroughly enjoyed in previous years as well - The Martian and Artemis - both by Andy Weir. I find his writing style really easy to read and relate to. Additionally, I love how descriptive of the science his characters us he is.

Okay, here are the 25 books I read this year:

  • Solaris - Stanislaw Lem

    Amazing! I loved pretty much everything about it, but the thing enjoyed the most was the character of the ocean. I found that to be an incredibly creative concept.

  • The Cyberiad - Stanislaw Lem

    There’s going to be a few Lem books this year, and I loved all of them. The Cyberiad is a really nice collection of humorous short stories with some great ideas such as:

    • a drug that causes people nearby you to feel the same things you feel and vice versa (and it’s effect on society)
    • horns with which you can swap your mind into another’s body by headbutting them
    • forcing the neighbouring kingdom into debt by a cannonade of babies, which makes everyone young parents in need of government support
  • His Master’s Voice - Stanislaw Lem

    The subject was great, but I didn’t enjoy the delivery mainly because of the large amount of long monologues.

  • Fiasco - Stanislaw Lem

    There were both small bits that I loved and hated in Fiasco, but as a whole I found it a very captivating novel about making contact with an alien civilization with similar ideas to Solaris.

  • The Futurological Congress - Stanislaw Lem

    A very enjoyable, satirical and somewhat scary look into a possible future, investigating issues reminiscent of Brave New World.

    What I really liked about this short novel is that, similar to Solaris, there is an exploration of trying to find out whether you are hallucinating or not and trying to find out how to find that out.

  • The Invincible - Stanislaw Lem

    Very similar to Fiasco, but with the addition of some cool ideas like

    • a hive mind of crystal life forms
    • wiping human minds as a weapon with a low maintenance
  • Reinforcement Learning An Introduction - Richard S. Sutton, Andrew G. Barto

    I read this as it was a suggest book in the above mentioned Reinforcement Learning course by David Silver and also it is considered a classic in Machine Learning.

    I thoroughly enjoyed reading it. As a textbook it’s a bit more difficult to go through, especially if you usually do most of your reading on your commute, but if you spend a bit more time on it, it’s incredibly rewarding, as it goes through all of the building blocks of the Reinforcement Learning algorithms we use today.

    It came to me as a massive surprise, that most of the amazing results we see in recent years are not due to newly developed algorithms, but to computation power and more available data.

  • Algorithms for Reinforcement Learning - Csaba Szepesvari

    I felt this book was a much more concise version of the Reinforcement Learning, An introduction lacking a lot of the intuition, but packing all of the algorithms and in some cases the explanations of their convergence and bounds.

  • The Black Cloud - Fred Hoyle

    A great story about communication with an extraterrestrial intelligence. Similarly to Stanislaw Lem’s work, the Black Cloud emphasizes the point about how naive it is to think that we will be able to communicate with and understand aliens if we ever found them.

    Something that makes the book a bit more unique is the fact that the main protagonist is a bright scientist, surrounded by more bright scientists. I thoroughly enjoyed the extensive use of the scientific method.

  • Do Androids Dream of Electric Sheep - Philip K. Dick

    I really wanted to not like the book, since I read about the personality of Philip K. Dick and how hateful and nasty he was to Stanislaw Lem, but it seems like the creative work bears no resemblence with it’s author.

    The world that Philip K. Dick builds is a pretty grim one, but at the same time it is captivating and it kept making me picture different scenarios involving some of the types of characters of the book - bounty hunters, androids, chickenheads, stay at home wives, etc.

  • Ready Player One - Ernest Cline

    I found the book incredibly cheesy, but at the same time a massive guilty pleasure.

  • Armada - Ernest Cline

    Even cheesier than Ready Player One. Actually, I feel pretty much the same way about it. One thing that was pointed out to me and obvious in retrospect is how male heavy the book is.

  • Neuromancer - William Gilbert

    An interesting book that I found quite hard to read. It reminded me a lot of Snow Crash, both because of it’s subject matter and because I remember Snow Crash as a difficult (though a lot more rewarding) read as well.

    I find the ideas about AI and VR a bit naive, though, that is excused by the fact that the book was written in 1984.

  • The Call of Ctulhu - H.P. Lovecraft

    The short story can be boiled down to, “I learned about something horrible, then talked to some people about it, then they told me how horrible it was, and now I can’t carry on my life as usual, as I know too well how horrible the thing was.”

    After reading the book it felt like I had spend an hour with a religious fanatic telling me their version of hell using a lot of hand wavy reasons and vague outcomes.

  • In Defense of Food - Michael Pollan

    The author is explaining their reasons for being very suspicious of any nutrionist claims, as the relationship between us and food is so complex that any reductionism is bound to miss out on something important and hence be dangerous.

    The worst bit of the book I found was the appeal to nature fallacy. When going against scientists and researchers, you better find better arguments than, Food is so complex that we could never hope to understand it, so we should just keep eating whatever our ancestors have been eating for thousands of years.

    That fallacy reminds me a lot of Nassim Taleb’s writing as well, as he is keen on eating, believing and thinking the same way as people have been doing for ages, as surely if something has lasted that long it can’t be bad. Fortunately, it can and we can do much better. I don’t see people complaining about medication saving lives, technology helping us produce more food, shelters and let us communicate and learn like never before.

  • The Shadow Over Innsmouth - H.P. Lovecraft

    After The Call of Cthulhu I was not keen on reading more Lovecraft, but I got this one as a recommendation and I am glad I gave it a chance as I found it much more enjoyable.

    Learning about the town through people’s stories is a great vehicle for delivering information in my opinion, as it doesn’t feel like exposition being spoonfed to you, even though it kind of is.

  • The Haunting of Hill House - Shirley Jackson

    I felt that all the horror or terror in the house was very random and pointless. Pointless in the sense that it didn’t lead to anything.

    The ending would have worked just fine even if the scary things that happened in the house were completely different, which means that the whole journey was entirely random and had no impact whatsoever on the ending.

  • Nexus - Ramez Naam

    I enjoyed the narrative which was a pretty standard thriller with quite a few action scenes, the fighting in which reminded me a bit of Neal Stephenson’s Snow Crash.

    I think the Buddhism in the book is completely unnecessary and there are a number of people/organizations I would expect to be much more receptive to a drug like Nexus who would also be much better predisposed towards it.

  • LOTR - J.R.R. Tolkien

    I am just going to say that I absolutely loved the book and, even though, the story is very well known nowadays, I would still highly recommend reading it for the world building and character arcs.

  • Understanding Comics - Scott McCloud

    I thought the book was brilliant as it delivers a lot of substance through a method I didn’t necessarily expect that from before I actually read it.

  • The Lathe of Heaven - Ursula Le Guin

    The subject matter is not particularly novel or interesting for that matter. It’s about a person who brings changes to the world by dreaming them.

    The characters and relationships, though, are absolutely brilliant. I feel like a lot of the book was an exploration of two very different, but very common in the real world, characters. I wouldn’t say any of them was particularly evil, and that’s one of the things I absolutely loved about this book - simple narrative with great characters that just cannot coexist in the same world.

  • Harry Potter and The Sorcerer’s Stone - J.K. Rowling

    I experienced a hit of nostalgia, but all in all felt a bit disappointed of the book after reading it.

    I completely understand that it’s because the book is written for a MUCH younger audience, so I am absolutely not holding it against the author, I just remembered it differently.

  • Harry Potter and The Chamber of Secrets - J.K. Rowling

    The 2nd book definitely picks up the pace after the first and adds a bit more to the story and atmosphere than what the film captures, and I really like that.

  • Harry Potter and The Prisoner of Azkaban - J.K. Rowling

    I love this one, and it’s one of my favourites with the films, too. The introduction of Sirus and Lupin is making the reader relate a bit more to adults which is great.