• 4 Posts
  • 118 Comments
Joined 1 year ago
cake
Cake day: June 18th, 2023

help-circle
  • It has been a while since I have to deal with problem complexities in college, is there even class of problems that would require something like this, or is there a proven upper limit/can this be simplified? I don’t think I’ve ever seen O(n!^k) class of problems.

    Hmm, iirc non-deterministic turing machines should be able to solve most problems, but I’m not sure we ever talked about problems that are not NP. Are there such problems? And how is the problem class even called?

    Oh, right, you also have EXP and NEXP. But that’s the highest class on wiki, and I can’t find if it’s proven that it’s enough for all problems. Is there a FACT and NFACT class?


  • Here is a picture, that may help a little bit. The n is input size, and f(n) is how long does the algorithm runs (i.e how many instructions) it takes to calculate it for input for size n, i.e for finding smallest element in an array, n would be the number of elements in the array. g(n) is then the function you have in O, so if you have O(n^2) algorithm, the g(n) = n^2

    Basically, you are looking for how quickly it grows for extreme values of N, while also disregarding constants. The graph representation probably isn’t too useful for figuring the O value, but it can help a little bit with understanding it - you want to find a O function where from one point onward (n0), the f(n) is under the O function all the way into infinity.



  • Exactly this. I only have pretty vague experience with machine learning, since it was one of the other specializations for my Masters than the one I choose, which however means we still shared some basic courses on the topic, and I definitely share his point of view. I’ve been saying basically the same things when talking about AI, albeit not as expressively, but even with basic insight into ML, the whole craze that is happening around it is such bullshit. But, I’m by no means an expert in the field, so I may be wrong, but it’s nice to finally read an article from an “expert” in the field I can agree with. Because so far, the whole “experts talking AI” felt exactly like the COVID situation, with “doctors” talking against vaccines. Their doomsaying opinion simply contradicts even the little knowledge I have in the ML field.





  • I also have a dual-boot, with fresh install of Windows I debloated as much as possible, that I use for games that I can’t get to run even after trying protondb.com. However, it has only happened one or two times since I switched more than half a year ago, and I usually just give up on and refund games that I can’t get to work on Steam. I have a lot of other things to play, and usually I wasn’t that much dead set on playing that particular one. I do make sure to post on the forums of the game when that happens, though.

    I’ve also recently stumbled upon https://windowsxlite.com/24H2ProV2/, which should be a debloated and minimized Windows (4Gb installed size is mindblowing, considering that all my Windows VMs have like 40Gb freshly installed). The site looks shady, but it was recommended to me by my coleague who works in cybersecurity, so I hope he knows what he’s doing. I haven’t got the time to test it yet, but it does mention that it should work for games, so who knows.



  • I’d like to mention one exception, because it took me ages to properly debug.

    If your endpoint is serving mirrors for APT, don’t redirect to HTTPS.

    APT packages are signed and validated, so there is no need to use TLS. Lot of docker images (such as Kali) do not have root certificates by default, so they can’t use the TLS, because cert validation fails. You also can’t install the certificates, because they install through APT. If your local mirror redirects to https by default, it will break it for people who choose the mirror, which IIRC happens automatically based on what’s closest to you. I think this issue is still there for Czech Kali package mirror, and it took me so long to figure out (because it’s also not an issue for most of the users, since they have different mirrors), so I like mentioning this when talking http/s. It’s an edge case, but one that I find interresting - mostly because it would never occur to me that this can be an issue, when setting up a mirror.

    But that was more than a year ago, it may be better now.



  • This is a great point, and I definitely agree, and I haven’t thought about it in this way. I don’t think that I’ve ever ran into a group where our expectations would be so much different that it would cause an issue, but it’s a great thing to keep in mind. Now that I read it again, I think I should add that I don’t think that it’s wrong to play RPGs as a board game, and I don’t really mind if someone does even in our group and I’m having fun either way, but I mostly felt like it’s a little bit shame that it may not even occur to some people that you don’t have to focus mostly on rules - since thats what most of the game book is about, and can do it differently, especially when you’re starting out. Which is also a good thing to keep in mind, to discuss and make the options and expectations clear before starting.


  • I agree, and I think that what may have also helped was that I was still basically a child when I was introduced to the dice-only RPGs. Also, it’s definitely way more difficult for the GM, which I was fortunate enough to have a really experienced and amazing one.

    It’s true that if the whole group including the GM is starting out, going with something like Fate is better choice, which I also prefer nowadays. Or more experimental ones like Dread or the candles one.


  • I’m really glad that my first introduction to RPGs, when I was on a summer camp and like 13yo, was with a GM who didn’t use any rules (aside from a D10) and instead focused on RP, and resolved actions based on what exactly we described, intuition and a D10 roll without a set goal or number.

    It has taught me an entirely different approach to pen&papers that has carried really well over to when I started playing more rules heavy systems, which is especially apparent when I play with groups who never really played without rules, where most of the combat or actions are reduced to playing a board game and a lot of talk revolves around stats and numbers, instead of on the RP, which is a shame. Which is understandable, since if your first experoence with RP is a rule heavy system, it’s not exactly intuitive to just ignore the stats and rolls, because they seem important.

    I’m used to paying almost no attention to stats aside from vaguely knowing what my character is better at, and threat them and the rolls in same way as I did when starting - don’t care what are the odds, don’t care about the roll, I just start with describing an action I want to do and figure out the stats as an afterthought. And it makes for such a better experience, and I higjly recommend for anyone starting a new group or having inexperienced players - just go with a single d10 for the first session, and guess the results based on a vague gut feeling based on the situation and the number rolled. Its suprisingly intuitive once you start from the GM side, and it teaches the new players way better habbits in how to approach the game and what is important, that will stay with them even after they add rules to the mix.


  • My favourite take on DI is this set of articles from like 12 years ago, written by a guy who has written the first DI framework for Unity, on which are the currently popular ones, such as Zenject, based on.

    The first two articles are pretty basic, explaining his reasoning and why it’s such a cool concept and way forward.

    Then, there’s this update:

    Followed by more articles about why he thinks it was a mistake, and he no longer recommends or uses DI in Unity in favor of manual dependency injection. And I kind of agree - his main reasoning is that it’s really easy for unnecessary dependencies to sneak up into your code-base, since it’s really easy to just write another [Inject] without a second thought and be done with it.

    However, with manual dependency injection through constructor parameters, you will take a step back when you’re adding 11th parameter to the constructor, and will take a moment to think whether there’s really no other better way. Of course, this should not be an relevant issue with experienced programmers, but it’s not as inherently obvious you’re doing something potentially wrong, when you just add another [Inject], when compared to adding another constructor parameter.


  • We’ve had to work in Pharo for our OOP uni course, and it was one of the worse experiences I’ve had in school. Mind you, it was something like 7 years ago, so the language may very well be a lot better now, but the whole “your IDE is the code” felt cubersome, it was buggy and crashed randomly, and in general I spent more time fighting with the IDE than doing something useful.

    It was a bad time, but also a great learning experience. Being forced to work in something that IMO sucks is an useful skill, but I never want to see that language again :D


  • I’m starting to think that “good code” is simply a myth. They’ve drilled a lot of “best practices” into me during my masters, yet no matter how mich you try, you will eventually end up with something overengineered, or a new feature or a bug that’s really difficult to squeeze into whatever you’ve chosen.

    But, ok, that doesn’t proove anything, maybe I’m just a vad programmer.

    What made me sceptical however isn’t that I never managed to do it right in any of my projects, but the last two years of experience working on porting games, some of them well-known and larger games, to consoles.

    I’ve already seen several codebases, each one with different take on how to make the core game architecture, and each one inevitably had some horrible issues that turned up during bugfixing. Making changes was hard, it was either overengineersled and almost impenetrable, or we had to resort tonugly hacks since there simply wasn’t a way how to do it properly without rewriting a huge chunk.

    Right now, my whole prpgramming knowledge about game aechitecture is a list of “this desn’t work in the long run”, and if I were to start a new project, I’d be really at loss about what the fuck should i choose. It’s a hopeless battle, every aproach I’ve seen or tried still ran into problems.

    And I think this may be authors problem - ot’s really easy to see that something doesn’t work. " I’d have done it diferently" or “There has to be a better way” is something that you notice very quickly. But I’m certain that watever would he propose, it’d just lead to a different set of problems. And I suspect that’s what may ve happening with his leads not letting him stick his nose into stuff. They have probably seen that before, at it rarely helps.


  • I had the same issue with gamedev industry, but thankfully Ive very quickly realized that’s how work works, and you usually have a choice - either earn a good living being a code monkey, or find a job in a small company that has passion, but they won’t be able to afford paying you well, or do it in your free time as a hobby. Capitalism and passion doesn’t work together.

    So I went to work part-time in cybersecurity, where the money is enough to reasonably sustain me, and use the free time to work on games in my free time. Recently, Ive picked up an amazing second part time job in a small local indie studio that is exactly the kind of environment I was looking for, with passion behind their projects - but they simply can’t afford to pay a competitive wage. But I’m not there for the money, so Ibdon’t mind and am happy to help them. Since there are no investors whose pocket you fill, but the company is owned by a bunch of my friends, I have no issue with being underpaid.

    But it’s important to realize this as soon as possible, before trying to make a living with something you’re passionate about will burn you out. A job has one purpose - earn you a living. Companies will exploit every single penny they can out of you, so fuck them, don’t give them anything more than a bare minimum, and keep your energy for your own projects.

    And be carefull with trying to earn a living on your own - because whatever you do, no matter how passionate are you, if it’s your only income and your life depends on it, you will eventually have to make compromises to get by. It’s better to keep money separate from whatever you like doing, and just keep your passion pure.

    EDIT: Oh, I forgot to mention one important thing - I’m fortunate to not have children, share living costs with a partner, and live in a city with good public transport, so no need for a car, and free healthcare. I suppose that makes it a lot more easier to get by with just a part time.