• 3 Posts
  • 60 Comments
Joined 1 year ago
cake
Cake day: July 24th, 2023

help-circle
  • I feel like all the points you raise could be replied by : if you do not like it, no one is forcing you into doing it.

    It is my understanding that people do this for fun - to take the occasion to get into a new language and/or exercise their problem resolution skills.

    Personally, although I love coding (it is a passion), after a whole day of coding I do not feel the energy to partake in a coding event. And during holidays I am busy doing other stuff. So I do not participate in the Advent of Code. But I am still glad that the event exists for people who enjoy it and have the time for it


  • For a first time don’t try to get the strongest character possible. It’s a time sink to do that. Usually the main campaign of games are beatable even if you screw up something. The worst that can happen is you backtracking a bit and spending time to level up before doing the next quest.

    When you played the game once and got used to the mechanics you can make a 2nd char and plan it more deeply ahead if you wish. You know what mechanics you like so the prospect of finding what to invest in what is worth etc… becomes more streamlined. But you don’t have to. You can just be happy to have finished the game and call it a day.

    That’s what I did for Diablo 4. After the main campaign I did not feel like venturing more into the game or making another character so I started playing another game. If you really want to 100% a game it does require a ton of time and planning but you don’t have to







  • There are techniques like abstract interpretation that can deduce lower and upper bounds that a value can take. I know there is an analysis in LLVM called ValueAnalysis that does that too - the compiler can use it to help dead code elimination (deducing that a given branch will never be taken because the value will never satisfy the condition so you can get rid of the branch).

    But I think these techniques do not work in all use cases. Although you could theoretically invent some syntax to say “I would like this value to be in that range”, the compiler would not be able to tell in all cases whether it’s satisfied.

    If you are interested in a language that has subrange checks at runtime, Ada language can do that. But it does come at a performance cost - if your program is compute bound it can be a problem


  • Why would you have to choose between tests and compiler checks? You can have both. The more you have the less chance of finding bugs.

    I would also add that tests cannot possibly be exhaustive. I am thinking in particular of concurrency problems - even with fuzzing you can still come across special cases where it goes wrong because you forgot a mutex somewhere. Extra static checks are complementary to tests.

    I think you can write “unsafe” code in Rust that bypass most of the extra checks so you do have the flexibility if you really need it.



  • When I first got daily access to internet (back in 2009), I got curious about how programs are built. Like, if I wanted to make my own application, what should I do?

    I googled something along that direction and it linked me to a famous french website for learning programming (site du zéro) where I learnt C language.

    After the course I made a 2D Snake game with SDL2. How naive was I to think I could write it in one go without testing anything in between! I scrapped the 1st attempt because it was a disaster and randomly inserting/removing * was not helping.

    I started again from scratch, testing in smaller steps, and I really liked it. After a couple of weeks I had my Snake game working! I was so proud of it that I showed it to my mom. I do not have the source files anymore but I still have the binary somewhere

    Afterwards I sticked with it and continued programming - I was back in school without much access to internet so I programmed on my TI-83+ instead. Eventually I pursued computer science studies then a PhD… It got me hooked real good.



  • About your specific example I find the Rust code to be much simpler to understand than your equivalent Golang code…

    To understand the Rust code I just have to understand each case. 0…1 returns false. Ok. 2…n returns true iff no divider was found between 2 and n-1. Ok the function is primality test

    The Golang code is much harder. I do not take into account the division by 2 because its not part of the original Rust code.

    A for loop starting at 2 that look for divisors. Then the return value > 1. Why is it OK to just return value > 1? Oh that’s because the loop did not return. Why did it not? Either no dividor was found or we did not get into the loop at all. If value > 1 we have the guarantee the loop was executed so it’s really a primal number. If value <= 1 it is either 0 or 1 which are not primal. Ok, so we return value > 1.

    I think people dislike Rust because it has a lot of functional languages constructs and people are not used to code in functional languages.

    Whatever you fight in Rust you end up saving time by avoiding runtime bugs that would have plagued your productivity anyway. I’d much rather have a language with a hard entry but with solid and maintainable code rather than fast-written spaghetti that no one knows what it is supposed to do 2 years after.


  • Yes, getting into a new project is hard. Even when you do know the languages and frameworks it’s still hard because you have to get into the mini ecosystem that the developers of that project built. In companies there is usually an expected amount of time (days? weeks? Months? Varies on the project) where a new developer is not really expected to do anything major, just getting used to the project.

    I do not know if you are professional or hobbyist. But coding takes a lot of time, a lot of it is spent on just figuring out how you will code this or that feature ; then another bunch of time is spent debugging ; and finally, yet another bunch of time is spent integrating your new feature. That’s why it’s a whole job, and that’s also why you need a ton of free time to do this as a hobbyist.

    But the good news is that once you spent that upfront time to get into the project, you can code more efficiently (that is, get right to the features you want to make) and you will also spend a little bit less time getting into other projects because although projects are different, there is always some level of organization that remains similar. The more advanced you become, the quicker you can get into a “production” state where you can code right away thanks to spending less time figuring out how things work.



  • The Christian Bible’s Matthew 24 had a prophecy that is about to become historical-fact, in the coming decade.

    Here’s a decent version of it:

    https://www.biblegateway.com/passage/?search=matt+24&amp;version=AMPC

    That bit around verses 15-20 is the pertinent area.

    Simply wait 1 decade, and see: if Israel still exists, as a country, in 2033, I’ll eat a hat.

    The nice thing about prophecies is that they can never be proven to be false. Indeed, one would have to examine the future to prove it wrong. Which is either impossible or unrealistic.

    Me too I can make a ton of prophecies and claim they will be eventually right. I will never be wrong.

    Let’s see. Let me prophesize that:

    • The US will cease to exist
    • We will encounter aliens
    • See where you are living right now? Eventually, it will be filled with lava.
    • See where you are living right now? Eventually, it will be flooded with water.
    • A giant comet populated with nyan cats will crash on Earth

    However, you can be sure that in 2033 I will come back in this thread and have you eat a hat. Marking the date and the link in my calendar. If lemmy is still alive, that is



  • Yeah exactly. Here follows some spoiler for those who have never played Dark Souls

    spoiler

    Once you escape from the asylum you can get to the catacombs right away. I did that and got my ass kicked so I figured I was not supposed to get there first.

    So I went up towards the upper Bell. Which I did ring. But then afterwards it looked so clear to me, especially as you unlock the shortcut to Firelink : yes ! The other bell must be down in the catacombs! So I headed there.

    I struggled a lot to handle all the monsters. I kept going until the valley where you face skeletons on wheels and the black Knight. I figured “no something isn’t right, I don’t think the game is supposed to be that hard. There are tips on the ground about using a divine weapon but I don’t even know how to get one.”. I read a post online and figured I went the wrong way… Once again

    Once I fixed that and went the right way things got significantly easier. I heard how some players literally got down to the catacombs from the get go and somehow managed to get to the boss door only to be met by a yellow fog that can’t be passed, and how they struggled to get back to firelink without getting killed…

    The bottom line is that I think you need to have someone telling you where not to go to really enjoy Dark souls. Because its not obvious whether you die because of your incompetence or just because you were not supposed to be there right now. I wouldn’t say its bad design though - but it’s not for everyone for sure