<![CDATA[ rolisz's blog - Personal Posts ]]> https://rolisz.ro https://rolisz.ro/favicon.png rolisz's blog https://rolisz.ro Thu, 09 Jun 2022 23:06:28 +0300 60 <![CDATA[ Roland tries new things: Horse riding ]]> https://rolisz.ro/2022/06/09/horse-riding/ 629ce3446c14f50797d067d9 Thu, 09 Jun 2022 17:48:55 +0300 My two brothers in law are fans of horse riding and last week they invited the rest of the family to join them for a day of horse riding. They encouraged us with fun tales of how of them fell off/was thrown off a horse. Having not done anything new in a while, Roda and I agreed to it.

The 10 minute horse riding intro

When we arrived at the Kalota Lovarda, we received a brief intro to how to ride a horse while it walks and an even shorter intro on how to ride it while it trots. Turns out riding a horse is not a passive activity, but you have to move your hips to nudge the horse to keep moving, while also lightly pulling on the reins. If you let the reins go, the horse will most likely take a break to eat some grass. Horses really love eating grass and will do that whenever they have the chance.

My horse, Titi

The first five minutes of the intro had me regretting that I signed up for activity. Do this for the rest of the day? Oh boy, oh boy. Please don't fall of the horse! Please don't throw me off, horsey!

"Excited" to start our trip

It was an interesting experience where I learned a lot, such as the fact that horses have thick skin, so they don't care about going through bushes and thorns - but you do. Also, when going through a thicker forest, horses only make sure they don't hit trees - your knees are none of their concern, or worse, not even your head when going below some low branches.

The views were beautiful, as always, but honestly, I'm not sure if I'd rather do the trips on horses or while walking. There is a certain serenity that comes with the rhythm of horses step, which makes the scenery more enjoyable in a way. But it's so exhausting after 8 hours....

Also, horses have very different personalities and behaviors. Some horses have no problem pooping while walking, others, like my Titi, would always stop whenever he felt the need to relieve himself. Sometimes he would even go off the path, as a courtesy to the others. Some horses would avoid stepping into the mess others left, other horses had no problems marching straight through.

One of the funnier things on the journey was when the owner of the horses got off this horse for some reason and then his horse ran away. I think he spent 15 minutes trying to get back on him. It was quite funny, but it also made most of us reconsider getting off our horses.

When we got to the restaurant after 3 hours, everyone was relieved to finally get off the horse and give our bottoms a well deserved rest. But then it was time to go back, on a slightly different route. This time, even the horses were tired. The older ones would stop periodically for a quick break. But, after 2.5 hours, we did get back to the stables safely.

Tired horses, tired riders

Unfortunately, I never managed to reliably get my horse to trot and more importantly, I never managed to learn how I should move in the saddle while trotting, to avoid making an omelette. Maybe next time? But it won't be anytime soon. I'd rather go to the aquapark.

<![CDATA[ On the usefulness of a little bit of programming ]]> https://rolisz.ro/2022/03/15/on-the-usefulness-of-a-little-bit-of-programming/ 62307a8aecbf7104750afc7d Tue, 15 Mar 2022 17:07:44 +0300 While I am a professional software developer (or machine learning consultant, to be more exact) and I have started learning programming more than 10 years ago, I went to college to study it, I spend a lot of my free time learning more about this domain (because I love it), I'm starting to realize that knowing a bit of programming is a super power, from which many people could benefit, if only they knew just a bit of coding.

For example, about 6 years ago I wrote a 2 line JavaScript bookmarklet for a recruiter, that reduced the number of clicks he had to do, from 10 clicks to 3, for each of several thousand candidates. It was a simple script that looked for an HTML tag, extracted a value and put it in the clipboard (from where he pasted it into a spreadsheet). The guy was so happy that he gave me a peer bonus, because it saved him hours of boring work.

Another example is when I have to replace something many times in a text document and I can quickly write a regex to do it. My dad sometimes calls me to do that for him when he is typesetting books.

This week I wanted to read a transcribed sermon that came in a .doc format. For more pleasant reading, I copy pasted it into a markdown file, quickly fixed some Markdown issues (mostly lists and headers), ran it through Pandoc and got a beautiful HTML, that was easy on the eyes. I sprinkled in some copy pasted JavaScript and I had automatic popups for Bible verses when hovering over references.

Julia Evans recently wrote about some tiny personal programs she wrote that both had marginal utility in her life and also brought her joy while writing them.

Doing this kind of programming doesn't require knowing a lot about programming, much less how to develop software professionally, but it does require you to have a knowledge of what is possible with code and either a low enough friction to get started (such as a text editor with a built-in regex search and replace), or a high enough motivation (such as wanting to avoid tens of hours of boring work) to do it.

But unfortunately, I don't know if this is something that can be learned quickly. All these examples I gave took me 5-10 minutes to implement, but that's because I already knew a fair bit of JavaScript, I've had to process Markdown in the past, I've written regexes many times for work and I've had a general awareness of Pandoc, even if I didn't use it much before. If I had to search Kagi for all of these (or if I didn't even know what to search for), it would take a lot longer.

In my opinion, this approach is much more useful than the no-code approach that is popular today (at least among startups) and it would be great to see more startups trying to reduce the friction for doing just a bit of coding, not eliminating coding at all. Grist seems like a pretty good approach in this direction.

What's your favorite quick "hack" where you used a bit of coding knowledge to bring quality of life improvements for yourself?

<![CDATA[ To changes ]]> https://rolisz.ro/2022/01/01/to-change/ 61d0896bbb23f815486168e0 Sat, 01 Jan 2022 23:32:00 +0300 During the last 1 year I've had a lot of changes in my life. I became an independent machine learning consultant. Other people consider me an entrepreneur. I'm still in disbelief about that label, but it's becoming true, especially since I launched my first side-project (or is still a side project if it's just one of the many things you do?). Sometimes I feel like I barely recognize myself and how I think.

The machine learning consultant part has changed a lot as well. When I started off a year ago, I had many ideas of what I would do: trainings, online courses, consulting, train lots of ML models. Drawing the line at the end of the year has revealed that I did few of the things I thought I would do and that actually, the most profitable things were things I never thought I would do. I barely did any teaching, I did some consulting, but developing a full stack proof of concept for a startup was by far the best thing financially (and really fun too). Hmmmm.... maybe I should update the list of services I offer.

I started out as a machine learning consultant. But almost all of my work has been related to natural language processing (aka: working with text). Hmmmm.... maybe I should niche down to just NLP.

Some things didn't change. I still have a pathological fear of picking up the phone to call someone. Luckily, most of my clients came to me, instead of me having to go to them.

I thought I would have to do a lot of marketing, lots of blog posts, tweets, Youtube videos. I had one good blog post that brought in two clients. All the other clients came through referral and word of mouth. Hmmmm.... who knew networking is that important? And maybe, just maybe, my blog is not as important.

For a long time I was a lurker on forums, rarely posting anything. This year I've discovered several communities where for some reason, I started being more active. Hmmm... maybe I'm not that introverted.

The biggest change was becoming a daddy. I now have a very different reason to look forward to every day: Gloria. Of course, it comes with it's own challenges, including some curveballs, but boy, is it great.

My beautiful giggly daughter, who melts my heart whenver I look at her

There are some negative changes as well: it was the first year in a long time when I didn't fly at all :(

Here's to more changes in 2020 v2 and to being nimble, as God leads me!

<![CDATA[ Learning in Public: Exploring the BT iPay API ]]> https://rolisz.ro/2021/11/16/learning-in-public-exploring-the-bt-ipay-api/ 6193efe8bb23f8154861688c Tue, 16 Nov 2021 22:09:28 +0300 Dan Luu and Jamie Brandon have argued quite successfully that increasing your productivity and velocity as a developer can lead to good return on investment. So I've been thinking about doing the same and I was inspired by Michael Lynch to record myself while coding and then to analyze the mistakes I've made.

That was quite fun and I got some very useful feedback from it, so I thought I'd share this video, as a way of learning in public.

First lesson: my green screen doesn't play nice with my IKEA chair that has a mesh in the back. My apologies for the awful looking webcam overlay.

And some development lessons:

  • I go with the mouse several times to the menu to select "Format code". I should learn the shortcut for that, or even better, I should set PyCharm to auto format the file when saving.
  • I spent a lot of time on figuring out the parameters for the first call and on formatting them as a dictionary. I could have sped up understanding how to send the parameters by URL decoding the provided example and for the formatting I could have used a multi cursor for quicker editing.
  • BurpSuite/HTTP Toolkit was recommended as a way to explore HTTP APIs.
  • When I was writing the client.register_payment call I had to hover a lot over the function definition to see the order of parameters. Copying the function definition would have been faster and it would have made it easier to define keyword arguments, which are clearer for a function with so many parameters.

Thas was quite fun and useful. Thank you Michael and Catalin for the feedback!

<![CDATA[ The right time for every habit ]]> https://rolisz.ro/2021/10/09/the-right-time-for-every-habit/ 616091a7e8b5e067fe3b8323 Sat, 09 Oct 2021 12:34:50 +0300 I've written many times about various goals and plans I've had over the last couple of years. I blogged publicly about it because I had heard that precommitment helps with realizing goals. But, considering that many of the goals on those lists didn't get touched at all, even though I repeated them every year for three years, precommitment didn't give the promised results.

So since 2019, I haven't set big, public yearly goals, even though I still try to carve out some directions for myself every year.

But I am glad to report that despite focusing less on such goals, I've managed to create two habits that have been on my list for a long time, through very different means.

Working out

During the last 52 weeks (so 1 year basically), I have done 113 workouts, meaning just a bit more often than 2 times a week.

While I was working at Google, I managed to work out quite often, but there it was easier because I had to go down only 2 floors from my desk to get to the office. After moving to Romania, I would have had to go to a gym. I had one attempt to do that, but my car didn't start just when I wanted to go to the gym and it was raining so I couldn't go by bike, so I gave up. Then I bought barbells, dumbells and a squat rack, but, for 2 years, I used them at most 10 times.

But last year in October, after much internal mulling, I realized I need to change how I approach my body and my health. I need to start prioritizing it, and not just in a "New Year's Eve resolution" kind of way. My health has to be a priority and that means other things have to go. For this, I had to learn how to workout, what exercises to do to achieve the outcomes that I wanted. It also meant closing my work laptop at 6 PM and getting into my gym clothes. Other times, instead of enjoying a slow morning, I would lift some weights and get sweaty. To make more efficient use of time, I would sometimes work out during the mid-week online church service (I still ask myself if that's good or bad).

The ongoing pandemic helped a bit, because I didn't travel so much, at most a couple of days here and there. But even then I would try to get in a bodyweight workout.

The conclusion remains the same: I need to prioritize my health, keeping an eye on the longterm. I still have much work to do in this area, especially on the nutrition side, but even there I'm slowly learning better how my body works and how I need to fuel it.

Memorizing Bible verses

Statistics from my Anki deck for Bible verses

This goal was on my list every year from 2016 to 2018 and every year I would utterly fail it. I would learn 1-2 verses and that's it.

But in 2019, someone from Brazil visited our church and told us how some young people from his church each memorized a book of the New Testament. And I decided, I'll do the same.

What had changed was that I had learned more about the science of memorization. I knew of some people who had memorized vast amounts of information, so my first step was to inform myself what would be the best way to do that. I tried putting that into practice and I've never stopped. For two years I have been using Anki to memorize Bible verses. I have memorized all of Galatians and I'm halfway through Ephesians.

While I am convinced that this habit is very beneficial for my spiritual life, I think the key here was breaking the requirement into small pieces that can be done easily. There are very few days when this takes more than 10 minutes. It's something that I can easily do in bed, right before I go to sleep. Or I can do while waiting in a queue at a shop.

The other thing that helps is to see how good my memory can become with enough practice. There are verses that Anki estimates I'll have to revisit only in 3 years. I notice that my short term memory is better. Memorizing more things is so useful, that I have started memorizing other things as well, from my wife's phone number to PowerShell commands to my business's registration number.

More work to be done

Roland is still a work in progress. God still has much to do in my life. But I want to celebrate every win, even as I look forward to what I'll learn in the coming months.

<![CDATA[ Half a year as an indie consultant ]]> https://rolisz.ro/2021/07/09/half-a-year-as-an-indie-consultant/ 60d58d48a0cb673c37e93d2b Fri, 09 Jul 2021 17:57:00 +0300 It's hard to believe it's been more than half an year since I started my own company and became an independent machine learning consultant. It's been a very interesting ride.

There have been plenty of moments where the predominant feeling was "what now?". How am I going to find more clients? How to negotiate with this client? The Dip, as it's called by Seth Godin, is very real and very scary. When you draw the line and see how much you've earned over six months... you start getting serious doubts. Was it worth it? Wouldn't it have been better (and much easier) to just find a nice job?

But there are other moments: when I realize I have freedom to choose my clients and the projects that I work on; after working for a whole day on something that I love, ML, without any useless meetings; when deciding with almost complete freedom the tech stack which will be used to build the ML side of things; when I take a day off almost whenever I want, just because I don't feel like working on that particular project on that particular day. Or when I realize that I am a consultant, that my clients look to me for advice and that they actually take my advice seriously. If I say that the way they did things previously won't work and they should do things differently? They'll get to it right away.

And then there are moments when I realize I barely have time to read any state of the art machine learning papers and instead I have to learn the basics of marketing, branding, business development, communication, coaching, explaining, teaching - and to put all of this into practice. Most of my clients don't care if I'm using the latest state of the art Transformer architecture (and don't even know what on earth that is). They don't even know what machine learning is. But they need someone to explain it to them - to people who have built successful companies in their own fields - and to help them understand if it's something that they need or not.

I am thankful to God for guiding me on this new path, of which I have dreamed for a long time. Faith in his faithfulness is what has kept me steady when my knees wavered.

I am grateful to my dear wife who was willing to take this risk alongside me and has been very supportive all along the way.

I am very glad I have a good accountant who can help me with all the paperwork of the company.

I am grateful to the whole team from Oradea Tech Hub, who have helped me get my name out there, and especially to my friend David Achim with whom I did many rounds of business strategy discussions.

And I am thankful to many others who have cheered me on, who have encouraged me and who have put in a good word for me to potential clients.

<![CDATA[ Happy 11th Birthday! ]]> https://rolisz.ro/2021/06/08/happy-11th-birthday/ 60bfba22a3c3ed7839d6f32e Tue, 08 Jun 2021 22:17:05 +0300 My blog has circled the Sun for another year. You got 37 more posts in the meantime. The Obsidian post was very popular, as was the Rust Codenames series. Vmmem issues are finding a solution on my blog as well.  The second half of last year was slower than the first one, but it's ok.

I kinda split my blog into two: personal posts stayed here, anything related to machine learning goes to my new domain, which is for my consulting business. I still want to post some technical content here and I do hope I'll make it to the front page of HN again :D

I haven't had as much time to write posts because I've been busy with all kinds of other content: an in person machine learning course here in Oradea, several presentations, some about machine learning, some about quick iteration, some locally, some online. It turns I only have so much creative juice in me every day.

I've resumed my goals to blog again, but at a much more humble rate. Sometimes I'm tempted to try daily blogging, but I'm a bit afraid of that commitment and of the quality of the posts that would result from that. Some people say that writing daily turns on the faucets of creativity and you'll have plenty of ideas. But for now I'll stick to a more reasonable goal of two posts per month.

<![CDATA[ Productivity Tips: Time Blocks ]]> https://rolisz.ro/2021/04/04/productivity-tips/ 606a03ac88041c04f2008470 Sun, 04 Apr 2021 22:51:13 +0300 As I've started my freelance machine learning consulting business this year, I found I need better ways to organize my time. When I was employed as a software engineer, there was a task board I would choose what to work on. The tasks would be mostly decided at the beginning of the spring, so it was quite clear what to focus on most of the time. Of course, sometimes unexpected issues would come up, but usually those are urgent, so it's easy to decide to switch over to them.

But now, I have to juggle between working for different clients, talking to leads and doing marketing or administrative tasks. My to-do list just keeps growing longer and it's getting harder to pick something to work on. Should I write a new blog post? Should I work on a video? Should I do some exploratory data analysis for a client? Should I look into preparing an MLOps report for a client? Or maybe write a blog post so that my friends know I'm still alive?

Having to make a choice about this every time I want to start working is tiring, leading to choice paralysis. Often I have to work on 3-4 tasks a day. If I context switch between them too often, my efficiency drops.  So last month I started applying a variant of time blocking, about which I read from Cal Newport.

Blue events are meetings, green ones are time blocks

Instead of using a paper based method like he suggests, I create an event in Google Calendar when I want to block off some time. Ideally I schedule them the day before, but sometimes I either forget or something comes up and I have to change what I'll work on for the same day. I try to create blocks of one or two hours. Shorter blocks don't give you enough time to get immersed in deep work, while longer blocks are usually too tiring. I also make sure to leave some breaks between the time blocks.

I use a separate calendar so that I can easily toggle the visibility, leaving in the Calendar app only those events which have to take place at a given time (such as client meetings) and so that the time blocks don't interfere with Calendly, a meeting scheduling service I use.

I'm not very strict about the time blocks. If I find that I'm in the flow when a block ends, then I'll continue working on it. If something else is more urgent or I'm simply in a very strong mood for another task, I'll work on that and I'll simply move the calendar event to another time.

How do you organize your time and decide what to work on?

<![CDATA[ Learning to machine learn ]]> https://rolisz.ro/2021/02/19/learning-to-machine-learn/ 602fdaddf2fbd3222b45f000 Fri, 19 Feb 2021 18:51:29 +0300 tl;dr: I'm launching an introductory course about machine learning in Romanian. It's aimed not just at developers, but at a more general audience.

De ceva timp mă bate gândul să trec la următorul nivel de creare de conținut. Scriu pe blog de 10 ani și îmi place asta. Unele posturi pe care le-am scris despre programare și machine learning au avut succes. Așa că m-am gândit să fac un curs de machine learning.

Pe net sunt o mulțime de resurse de machine learning, cursuri care mai de care. Și eu am învățat din ele, deci sunt și cursuri bune și foarte bune printre ele. Dar pentru început, aș vrea să încep prin a face un curs în limba română, unde nu cred că sunt suficiente resurse de calitate. Bine, practic va fi o romgleză, că abia pot să pronunț „învățare automată”, „machine learning” alunecă mult mai bine. Ce să mai zic de deep learning...

O altă lacună pe care am identificat-o e că majoritatea cursurilor sunt pentru programatori care scriu cod în fiecare zi și vor să știe folosi și unealta numită machine learning. Dar este o lipsă mare de înțelegere a modului cum funcționează machine learning și inteligența artificială în rândul managerilor și, de ce nu, a oamenilor non tehnici. Dacă te iei doar după ce citești la știri, imediat urmează scenariul Terminator, când în realitate toate sistemele de ML au slăbiciuni mari și ușor de găsit.

Asta duce la unele așteptări nerealiste din partea conducerii unor firme, care vor să devină mai „hipsteri” și să folosească ML, dar vin cu idei complet greșite, care nu pot fi făcute să meargă suficient de bine. Sper să pot să ajut și astfel de persoane.

Mulți oameni cred că trebuie cunoștiințe tehnice foarte avansate ca să folosești chestii de inteligență artificială. Dar bariera scade tot mai mult și apar aplicații și în domenii creative, cum ar fi generare de imagini sau de text și care pot fi folosite relativ simplu, odată ce înțelegi conceptele de bază.

Dacă vă surâde ce ați citit mai sus, intrați pe pagina cursului.

<![CDATA[ Design patterns in real life ]]> https://rolisz.ro/2021/01/26/design-patterns-in-real-life/ 601075f3f896ad697fe0fe06 Tue, 26 Jan 2021 23:07:52 +0300 In programming there are so called design patterns, which are basically commonly repeated pieces of code that occur often enough that people thought it would be helpful to give them a name so that’s it’s easier to talk about them. One example is the iterator pattern, which is about an efficient method of traversing the elements of a container, whether they are an array, a hash table or something else. The builder pattern is used for building objects when we don’t know all their required parameters upfront.

Sometimes, if you don’t know about a pattern and you read code that uses it, it might seem strange. Why is this extra layer of abstraction here? Why is this API broken down into these pieces? After learning about the pattern, you might learn that the extra layer of abstraction is needed because the layer that’s below changes often. Or that the API is broken into those specific pieces because this makes it easy to cover more use cases in an efficient way.

As I’ve started diving head first into the world of running my own consulting business, I’m starting to learn about a whole other world of “design patterns”, unrelated to programming. And suddenly many things that I’ve seen before started to make sense.

My friend David has been bugging me to start a community for people passionate about machine learning in Oradea, where I live, for almost two years. For a long time I was thinking, why does he push so much for this? Well, after taking Seth Godin’s Freelancer Workshop, now I know that being the person who organizes a community is one of the best ways to make yourself known.

Another example is that I saw website offering a sort of business networking thing for a very high membership cost (or at least it seemed expensive at the time). Why would anyone do that? Then I learned about a thing called alchemy network 1 and how if it’s done well it can bring great value to it’s members.

All my friends who are freelancers charge by the hour. That’s what I thought was normal. But then I heard about Value based pricing by Jonathan Stark. A different pricing “design pattern”, which aligns the incentives of the client and of the service provider in a much better way. Let’s see if I can pull it off though.

Just like in programming, design patterns help us find the correct solution faster and communicate more efficiently. The more patterns you know, the faster you can recognize a situation and react better to it.

What are your favorite design patterns?

<![CDATA[ 2020 in Review ]]> https://rolisz.ro/2020/12/31/2020-in-review/ 5fee192e08f8f65d8ac7c91c Fri, 01 Jan 2021 02:02:17 +0300 2020 might have been a bad year outside, but it was a good year for my blog. I wrote 62 posts, almost as many as in the previous 3 years combined (63). Part of it was due to more time because of Covid, part of it was because of the 100 Days to Offload Challenge (which I didn't finish), part of it was because I have an interest to take my blog in a new direction, to help get leads for my consulting business.

Visits were up: 60.000 sessions compared to 10.000 in 2019. Most of my sessions were from unique visitors, because those were around 53.000, compared to 8700. Pageviews are at 73500, versus 16300.

Most of this is due to some posts that got very popular. The Moving away from Gmail post is now my most popular blog post ever, dethroning the neural network post that is 7 years old and is still getting 2000 views per year. It was on the front page of HackerNews and it got 36000 pageviews in 3 days. The Obsidian post was also quite popular, having been suggested in the Google app, getting to 8000 views. My Rust posts all got over 800 views, with the web crawler one getting over 2400. Surprisingly, how to bridge networks with a Synology NAS is a very interesting topic, because that also got 1000 views.

The Ghost platform has worked ok during the last year, but it has some small friction points, so I'm thinking about changing again. But regardless of how I'll post, I definitely plan to keep post more content.

<![CDATA[ World's best phone case ]]> https://rolisz.ro/2020/12/31/worlds-best-phone-case/ 5fedc94d08f8f65d8ac7c8c8 Thu, 31 Dec 2020 16:10:44 +0300 Yesterday I enjoyed the Australian Șuncuiuș Christmas weather while doing another Via Ferrata trail. It was much harder than the one I did last year. But as I finished the vertical ascent that is seen in the top picture, my phone slipped from my pocket, and fell about 15m.

I immediately thought I'd have to buy myself a late Christmas present. After we finished the hike, we went to search for the phone. The case had come off the phone and we found it pretty quickly. The phone was on vibrate, so calling it didn't help. It had slipped under some rocks, so we had to look harder for it. But after we found it, we were all shocked that it was intact, without a scratch on it.

The case has some very minor scratches on it. Ladies and gentleman, if until now I was a big fan of SupCase Unicorn Beetle Pro cases, from now on I probably won't buy a phone without a case from them. Kudos to the SupCase team!

<![CDATA[ My next steps ]]> https://rolisz.ro/2020/11/29/my-next-steps/ 5fc3f41febd40d0556a6e3b8 Sun, 29 Nov 2020 22:19:40 +0300 Consulting is something I have dreamed of for a long time. I have done a little bit in the past, on the side, but now the time has come to pursue this full time.

I have used machine learning to solve a large variety of problems such as:

  • text recognition (OCR) from receipts
  • anomaly detection on monitoring data
  • understanding how people use calendar software
  • room booking recommendations
  • chatbots
  • real time surveillance video analysis
  • time series forecasting
  • personally identifiable information (PII) detection

So if you have a hairy machine learning problem and you need advice on how to move forward, I can help you find the best way.

If you are a software company that wants to start developing machine learning projects, I can provide training for your team so that they can develop these projects. I can also give presentations and explain to managers and executives how machine learning projects are developed, what can be done with it (it's not a silver bullet that will solve all known problems) and how ML projects are different from traditional software projects, both during development and in deployment.

If you are a company that wants to know if machine learning is the right solution for a problem you have, such as automating a process that currently is very labor intensive, I can help you make this decision and develop a strategy for making the transition towards automation.

Are you a company that is looking to acquire a machine learning solution and you want some independent appraisal of the cost, duration and feasibility of the project? I can help you with this as well.

So if you need a machine learning advisor, consultant or trainer, feel free to reach out to me.

<![CDATA[ Multiple cursors ]]> https://rolisz.ro/2020/10/26/multiple-cursors/ 5f9691b8ebd40d0556a6e32f Mon, 26 Oct 2020 12:22:16 +0300 Multiple cursors are a feature that has been around for several years. I have heard of it first from SublimeText fans, but I always thought I don't need it. At the time, I was a huge Vim fan and I thought I could get away with crafting fancy regular expressions, XKCD style.

But I'm converted now: turns out that multiple cursors are more useful and easier to use. Can I craft a regex for what I'm searching for? Yes. Will it take a lot longer? Oh yes. Is using multiple cursors super simple? Absolutely. Does it work in a lot more places? Yes.

What convinced me was the fact that it's working in Obsidian too. Several UI toolkits for the web offer this out of the box, so it's working on many websites too. I can use the same "shortcut" in PyCharm, Visual Studio Code, etc, without having to set up a Vim mode.

What other cool shortcuts do you use?

<![CDATA[ Tenet ]]> https://rolisz.ro/2020/09/17/tenet/ 5f63ce5e5ad1bb49f64c7098 Fri, 18 Sep 2020 00:44:09 +0300 After many delays, the movie Tenet has finally come to the cinema. It's amazing. I loved every single bit of it. Almost 2.5 hours of pure awesomeness. #christopernolan4president This is what a good movie is supposed to be like. Go on, go see it. The rest of the post will wait.

At least, that's my opinion. I went to see it at the cinema with 5 friends. One left halfway through the movie. One fell asleep. One admitted he lost track of what was going on. One said it was good movie. The last one is as excited as I am.

This happens after 5 minutes

The movie is a packed action movie. It starts with 10 seconds of logos, the you have actual footage and then 15 seconds later the shooting starts. And it keeps a similar pace for the rest of the movie, sometimes stopping to try and explain what's going on.

It's a philosophical movie. I mean, it's about going forwards and backwards in time. It screws with causality. It explores the grandfather paradox. It does make your mind bend, even more so than previous Nolan movies. Just think about the nested temporal double pincers.

Bullet holes from bullets that haven't been fired yet

The heists/breakins/missions are really well thought out and you actually get to see some of them twice :D

This happened for real

The visuals are stunning. I mean Nolan bought a plane and blew it up for real, rather than doing it with CGI. The sequences where there are both normal and inverted people (so going both forward and backward in time) are... wow. The locations where they filmed are gorgeous.

The soundtrack is brilliant. Ludwig Göransson managed to capture the feel of the movie perfectly. The score fits perfectly to the scenes. He made the melodies by researching retrograde composition, so they would sound (approximately) the same forward and backward.

The acting is great. I don't know where Nolan found the John David Washington, the actor who plays "The Protagonist", but he made a really great choice. I'm looking forward to seeing him in more movies. And it makes me want to watch BlacKkKlansman.

Occasionally the movie slows down to make a joke about suits

Did I mention I love this movie? Is it obvious from my review? No? Well, score: 11/10. There, if it wasn't clear enough so far.

This is a movie that needs to be seen in cinemas. There's big explosions, bullets flying, beautiful landscapes, all of which benefit from a big screen and good sound system. So go watch it in the cinema, so that Christopher Nolan will get money to make more awesome movies.