• 0 posts
  • 54 comments
Joined 2 years ago
Cake day: June 22nd, 2024
  • yep, a team with “enough” workers when everybody is there and not sick is understaffed, working in those teams can become a nightmare the whole year round.

    and for questions the colleague does not know the answere to? we are atleast two people with a functioning brain, we can figure stuff out. Most of the time if a new dev asks me something and i have time, i’ll comb through docs with them or we debug something together even if i am pretty sure what’s to do, because i don’t want to become a search engine for my colleagues, i want colleagues who can figure stuff out, so i’ll show them how I figure stuff out, and I learn stuff along the way pretty often doing that.

    if I don’t have time I probably have some links that should lead to answeres and often enough a time window later in the day where we can talk, just because its christmas time and most of my meetings are cancelled :D

  • but christmas shift is imho pretty great for new team members (unless it collides with vacation plans, because the job switch was rather sudden and no one else is there), atleast here it tends to slow going, not many meetings and we get to do stuff that accumulated over the year that we wanted to do, but couldn’t for various reasons, so there are enough tasks for which you’ll see a lot of the code base and colleagues actually have time for pair programming and such.

    and christmas itself is 2 and a half holidays in germany, so that helps too.

  • which is why many (oop)-patterns exist, what i described is a prime candidate for the strategy pattern, which basically means to turn different algorithms for a task into extra classes with the same interface that can be given to the transaction depending on it’s kind or something else in the context. the question is allways: does the pattern improve my code now or will it improve my code soon, because i know i have to implement 3 more of “almost the same”

    blindly applying a pattern or a guideline like “DRY” has allways the chance to turn into messy ball of code.

  • stuff like this tends to happen, if people look only at the operations the code does, but not what it’s doing it with, those abstractions are often not clean because we lost the sight on what things represent.

    e.g. calculating prices for selling stuff to a business might have enough differences to calculating prices for selling stuff to a private person, that having two different mehtods for that is easier to understand than having a single one with a genreous amount of ifelse thrown in there for cases that only matter for one type of transaction.

  • I’ve heard about people being encouraged to use AI-Tools and monitoring how they are used is good to identify if people are actually more productive with it, but forcing people to use it seems like forcing a gardener to use an excavator where a shovel would have been a sensible option.

    and atleast so far the experience at work is, that stuff that the AI can handle somewhat reliable, we have determinstic tools for. guess working a boring java job has its perks :D

  • i understand your point, i just don’t agree with it. I don’t need Counter-Strike to change the sameway i don’t need a specific boardgame to change. the fact that counter-strike is pretty much unchaged for over 20 years is what allowed it to develop the depth it has as a competitive game, that’s what makes solid tactics and individual skill important because i can’t abuse a new poorly understood mechanic, that only exists for a month. CS core is so solid that we could even play the same unchaged maps for another 20 years and would gradually play them differently year over year. i know this, because we did.

    change for the sake of change is the biggest issue of live service games, if you ignore the stupid monetization schemes, sooner or later they all devolve into a barely recognizable mess.

  • I am playing almost exclusively in linux since 2012 (diablo3 came out, it worked on Linux, i sank an ungodly amount of hours into it.) the only thing that made me reinstall windows was to play counter-strike go on faceit, because their client did not work on linux.

    proton made so much, so much easier that it almost became frictionless to play on linux. wine made huge strides before, but it never was so smooth before proton.

    what often was a problem where laptops with dedicated and integraded graphics cards, or nvidia cards on rolling release distribution often having issues after kernel updates, which is why i was on fedora for a long time, because there the akmod stuff worked better in my experience.

    overall: when it works on the deck its almost guranteed that it runs just as easy on other linux distributions, maybe don’t pick a rolling release distro if you have an nvidia card, and most of the time you can forget about the fact, that you are gaming on linux.

  • About GNUnet

    What is GNUnet?

    GNUnet is an alternative network stack for building secure, decentralized and privacy-preserving distributed applications. Our goal is to replace the old insecure Internet protocol stack. Starting from an application for secure publication of files, it has grown to include all kinds of basic protocol components and applications towards the creation of a GNU internet.

  • I have read about this related to how FB does it. In general this means that fetching from the DB and keep it in memory to work with right? So we assume that the cached data is outdated to some extend?

    correct, introducing caching can result in returning outdated data for awhile, which is usually not a huge deal. those caches can get tricky, but they should take pressure from your db, if you’re scenario is read heavy, which is often the case. Research existing caching solutions before running ahead and implementing something from scratch, especially if you need a cache distirbuted between multiple instances of your service. In the Java world that would be something like Infinispan, but your ecosystem might over better integration with other solutions.

    I was able to convince management to put money into a new server (SSD thank god). So thank you for your emphasizes. We are also migrating to PostgreSQL from SQL server, and refactor the whole approach and design in general.

    having management on board is great and the new hardware should help a lot, migrating to another RDBMS sounds scary, but probably worth it if your organisation has more expertise with it.

    generate indexes

    they won’t help you with your duplicates, they will help speed up your reads but could slow down writes. building a good index is not trivial, but nothing is when it comes to performance tuning a database, it’s tradeoff after tradeoff. The best way to handle identical rows of data is to not write them usually, but i don’t know your system nor its history, maybe there is or was a good reason for its current state.

    • spent time to generate/optomize your indexes.
    • faster storage/cpu/ram for your rdbms
    • get the data needed by specific services into the service, only get the data from a central place if you have to (spinning up a new instance, another service changes state of data you need, which is a warning sign in itself that your architecture is brittle…)
    • faster storage/cpu/ram
    • generate indexes
    • 2nd level cache shared between services
    • establish a faster datastore for often requested data thats used by multiple services (that might be something like redis, or another rdbms on beefier hardware)
    • optimize queries
    • generate indexes
    • faster storage/cpu/ram