• 0 Posts
  • 14 Comments
Joined 1 year ago
cake
Cake day: July 17th, 2023

help-circle
  • Yes, to better understand this you have to understand the “flow” of the program. Meaning the order at which the instructions are executed and not written.

    Here you have the flow of the program starting from n =3 until the recursion reach draw(0), note that none of the for loop have been executed yet. At this point it reach the first “return” instruction and go finish the call to draw(0).

    Then the flow go back to where it previously was: inside the draw(1) call just after the line calling draw(0). And it start executing the next lines of the draw(1): the for loop.

    Then it reach the second “return” and proceed again until the whole program is over.


  • Yes, as I wrote when the method draw(n=1) finish the for loop that print one “#”, this call of the method draw return. Then the process start again from the after the line draw(n-1) of the method draw(n=2), which execute the for loop to print “##” and return. Then again you come back to after the line draw(n-1) of inside the method draw(n=3), ect.

    You should keep in mind that everytime a draw(n-1) is called, the current method is “paused” until this call return.


  • You are looking at a recursive method, as you can see with the line draw(n-1) inside the draw(n) method. You can search for “recursive function” on internet for a better understanding.

    Basically, the method draw is called a first time n = a user input, but then this method call itself with n-1 until it reach 0. So you can think as if function draw(6) will call draw(5) and wait for it to return before continuing, draw(5) call draw(4), ect until draw(0) that return immediately.

    So then the order of execution will be draw(1) that print " #\n" and return, then draw(2) will proceed to print “##\n” and return, then draw(3), ect until draw(n).



  • Work related project was a library for curves representation (polynomial, bezier, and a lot of other types) in C++. I liked working on it for several reasons. First one is that I could finally start something from scratch after years of working on legacy code. No dependency on strange old library from the team, only mainstream libraries.

    But mostly it was because I learned a lot on this project. I had to mix template programming, heavy use of polymorphism, python bindings of the c++ and serialization together. I had experience in all of this stuff already, but mixing everything together bring a lot of new troubles and you have to understand how it works more in deep to be able to solve them.

    I’m not making “famous” open source package with thousands of download and used everywhere, but seeing this package still in use in several other projects (and not only in my initial team) even after I left the initial team feels good. One day someone from my new company recommended to use “my” library as dependency to solve one of our problem, without knowing that I was the author, saying that it was a good well written lib. That’s a nice ego boost!


  • At least two very different for me:

    Myst: I was very small when I played it so maybe I missed some slightly hidden warnings or foreshadowing. But basically during the whole game two brothers that are trapped in two magical books claims that the other brother is evil and trapper him in this books.

    It looks like the only way to progress in the game is to trust one of them and go do the quests they are asking in order to free them.

    I thought I was smart and did everytime both quests for each of them, my plan was to save before the final quest of one and check if is the “good” one, otherwise reload and finish the last quest of the other.

    I finish one guy. cue evil laughter I finish trapped in the book and the evil brother laugh that he managed to lie to me for this whole time. Fine, let’s reload 5 minutes ago and free the other one. another evil laughter basically same thing happen with the other … wtf ? There is no good ending to this game ??

    Turned out there was the dad of this two also trapped in another book that was hidden somewhere else, he was the real good guy and lead to the good ending.

    So: don’t trust anyone, always look for more options than the two obvious choices that are only an illusion of free will. Lesson learned at a young age.

    Other one that is more coming from the community than the game itself: world of Warcraft (vanilla, when it get out), more specifically beating the end boss of the latest raid for the first time. Especially when you are the raid leader. It give such a satisfaction and sensation of fulfilment.

    There are a lot of games that require a lot more personnal skill than WoW to beat a boss. But getting 40 people to be ready, prepared, have to good class and good equipment, and play together for hours in order to achieve this common goal is incredible.







  • Tabletop RPG. I started in High school, you need only paper a pen and a set of dice, right ? All the rules can be found online anyway, right ?

    But it’s so much better to have the physical books. And you need more than one dice of each obviously. And this nice metal dice looks very good. I obviously need different set of dice with colors pattern that match my different characters.

    Speaking of characters, I need mini. I could get the cheap basic one of course, but the lead ones looks sooo much better.

    And I obviously need custom models for all my characters.

    Several years later, with a disposable income and I added maps, tokens, terrains, cards, ect. Even a tablet that I use only for this. I’m now limited by the storage place available in my flat (maybe for my own good).