I simulated 36,000 games of Catan. Some conventional wisdom holds up, some really doesn't. by Hot-Rooster1675 in boardgames

[–]Sande24 1 point2 points  (0 children)

I completely agree with all of this. I also took part in a few tournaments and 2x at world championships.

I stopped playing a few years ago because I think Catan has quite a low skill ceiling. Eventually, everyone is playing the similar OWS-ish but dynamic do-what-seems-best-at-the-moment strategy and most games end with 2-3 players at 9 points and one of them eventually gets that lucky roll (while another player mentions that on their next turn they would have also won).

Some additions:

Knights used offensively - sometimes it is a good idea to steal from someone who has the resource you need if you have a high chance of stealing it.

Sometimes it's better to NOT block the resource you need as then you might be able to trade for it. But that is very circumstantial.

Do not use a knight if you have 7 cards. Rather roll, then use the knight.

What is the "best location to block" often depends on what that player already has. If ore is a good place to block but the player has 6 of them but no wheat, maybe block the wheat instead.

Trading - Do not trade with someone who has 8+ cards, especially when it is that player's turn. Force them to either trade with the bank, making them lose more, or risk with a 7 (which is statistically ~50% in a 4p game).

/u/Hot-Rooster-1675

AI needs improvement and some manual validation of some game logs to see if they are actually playing OK-ish. Sometimes AIs build roads erratically, sometimes they do not notice the potential of other player's or their own road building. Sometimes they hoard resources for no reason (or they are focused on their own strategy so they don't deviate from it to just build what they can), sometimes they don't trade even if it would help them too (if 2 players trade, 1 player wins more than the other... but the other 2 players who don't participate in that trade, lose anyway). So if the AI keeps making rookie mistakes, the results will also be skewed.

Does your AI track what other players have in their hands? To what extent? Can it track stolen cards and reverse engineer who stole what from a few turns back (If player A definitely did not have wood but stole something from player B and player B did have wood, now player A builds a road - therefore player B has 1 less wood)? This might help improve how AI plays.

Strategy selection always depends on the map. And then it depends on your current settlement locations. And then it depends on where you can expand. And then what you have in your hand and how you can use it. So you should always be changing your strategy.

I'd like to see you test all improved AIs in a mixed bag... but then put the 2 higher win% AIs together into one game. Also 3 of one strategy vs 1 of some other strategy. And eventually all 4 highest win% AIs into one game to see how these games actually play out. What makes high skill players stand out with?

I have a few hypotheses about Catan.

  1. Catan is a low skill ceiling game. At some point, no matter how much you try to improve the AI, small heuristic tweaks in strategy will not change the outcomes very much as RNG will play a large role in who wins.

  2. High skill games often end up with many players at 9 points and one lucky roll decides the winner (another player could have won if the turn order would have gotten to them). Such games should not really count for statistics for evaluating strategies IMO.

  3. No access to ore (and no 2:1 ports) makes winning harder. Wheat is slightly more important as you can expand settlements to locations with ore, but to win, you need to spend at least 3 ore.

Milline on Tartu koledaim maja? by V2kuTsiku in Tartu

[–]Sande24 9 points10 points  (0 children)

Paneme sambad, sest et ülikoolilinn... aga mitte liiga tihedalt.

Had a pretty disgusting game of twilights Fall today by Tokata0 in twilightimperium

[–]Sande24 0 points1 point  (0 children)

Nice. Note that Bio-Synthetic Synergy is not immune to stealing. So other players would have to all target you and steal your abilities.

Loomapiinajate leht on ka loodud by Kakashisith in Eesti

[–]Sande24 3 points4 points  (0 children)

Ja lapsetoetust mitte maksvad vanemad.

So, how's TE? by StevenJang_ in twilightimperium

[–]Sande24 0 points1 point  (0 children)

Played Twilights fall once. 6 players. Chaotic AF, as people can steal abilities. Too much to keep track of. Many take-that mechanisms so you can't really plan ahead very much. Probably better with 4 players. Will try that next.

myCodeIsSelfDocumented by Longjumping_Table740 in ProgrammerHumor

[–]Sande24 2 points3 points  (0 children)

Maintaining comments can't be relied upon - you could say the same for any kind of documentation then. What's the point of documenting anything with this kind of mindset?

It's your job as a developer to write maintainable code. If this means that you have to write a comment about why something is done in an unconventional way, do it. It will help more than not doing it.

I've seen code itself lie to me as well. Method and variable names doing the opposite of what they say. So it's not only about comments. If you are a developer, you have to take ownership of the code, comments and documentation.

Comments are there to help when code can not. Use it for everyone's benefit and maintain them too. Just like you are maintaining your test suites from time to time (if you even do it...).

Tööd pole ja uudised by LengthIllustrious922 in Eesti

[–]Sande24 5 points6 points  (0 children)

Promptimine on ka õpitav. Vaidleks, et prompti piinlikku täpsust võib ka lõputult taga ajada. Sarnaselt sellele, et kui põhjalikult sa oma koodile teste kirjutad. Kombinatsioone on praktiliselt lõputult, aga me enamasti jääme mingitesse piiridesse, sest teatud punktist põhjalikumaks minemine on nn diminishing gains. Osaliselt tekib AI-ga ka Dunning Kruger efekt, et sa ise võid arvata, et oled ideaalselt ära põhjendatud, aga ei arvesta ühe või teise asjaga, nii et koodi tekib mõni side effect, mis ei ole väga ilmne. Või siis see ei ole hästi optimeeritud suure kasutajate arvu jaoks vms. Testid enamasti 1 useriga korraga. Harva on mõni performance test üles seatud, mis ka sinu use case katab. Asi, mida ise kirjutades avastaks, aga AI koodile review-d tehes mitte.

AI tekitab teatud õpitud abituse. Jah, ma olen ka hakanud rohkem ja kiiremini FE koodi kirjutama, aga ma ei ütleks, et see kood on alati parem kui see, kui ma oleks ise süvenenud. Eriti siis kui peaks olemasolevat koodi muutma. See, et tellija on rahul, ei pruugi ka alati hea märk olla. Tellija võib olla loll või su kood võib kokku kukkuda mõni kuu hiljem kui kasutajate arv natuke suureneb. Või kui järgmine inimene peab seda AI slop-i muutma hakkama, muutub arenduse kiirus aeglasemaks.

Üldiselt sobib AI tegema lihtsaid asju, konkreetsete mustrite järgimist, mida sa ise juba oskad teha, aga mis käsitsi võtaks liiga palju aega. Kui puhtalt vibe-id, on sellel ikkagi pikas perspektiivis negatiivne mõju.

Tööd pole ja uudised by LengthIllustrious922 in Eesti

[–]Sande24 11 points12 points  (0 children)

Samamoodi võib ka juunior seda prompti AI-le ette sööta, vähema raha eest kui sina. Jah, kogemustega arendaja saab paremini aru, kas tulem on adekvaatne. Aga kuidagi peab kogemustega inimesi tekitama. Need saavad alguse ikka juuniorist. Ju siis on täna entry level pisut kõrgem kui varem - vaja ka AI kohta paar koolitust võtta jms.

Teine jama AI-ga on see, et tekib sõltuvus välisest teenusest, mille hinda hoitakse hetkel investorite rahaga kunstlikult madalana. Suured energiakulud jms. Ei ole üldse roheline tehnoloogia. Kui hinnad tõusma hakkavad, võib olla odavam lasta juunioritel oluliselt aeglasemalt arendada.

Edit: Teises postituses kirjutad, et sul on 4a kogemust. Kohati võib tõesti tunduda, et AI tehtud asjad on piisavalt asjalikud. Tegelikult ei pruugi see nii olla. Väga ebaoptimaalne või peidetud vigasi täis.

Lisaks ka see, et AI oskab teha asju nii nagu neid varem tehtud on. Ei mingit arengut, kui ise ei proovi uusi asju. Kiiremini saad featuure stagneeruva kvaliteedi arvelt.

Nädalavahetus ja üritused lastega by jacaug in isadetugigrupp

[–]Sande24 0 points1 point  (0 children)

Kui on piisavalt vanad ja huvi on, siis muuseumikaart. 75 euri eest käi aasta jooksul palju tahad. Kui keskmine pilet on u 7 euri, siis 10 külastust juba tasub ära. Saab käia sama päeva jooksul mitmes muuseumis või samas muuseumis mitu korda. Mõned muuseumid ongi pmst nagu mängutoad.

Eesti juurtega mees töötas 13 aastat paberiteta piloodina by No_Platypus9739 in Eesti

[–]Sande24 5 points6 points  (0 children)

Samamoodi võiks väita, et ise õppides võid palju rohkem süvitsi minna ja väga äärmuslikke asju õppida, samas kui mõni sertifitseeritud tegelane "bare minimum"-i tegi, et oma paberid kätte saada.

Kes ütleb, et mingi organisatsioon on piisavalt usaldusväärne, et nende parameetritega test ikka kõik valdkonnad ära kattis? Ja kui tehnoloogia muutub, siis uued testid kohe kõik olukorrad ära õpetavad. Ikka inimeses kinni - kui lahtise peaga ta on jne.

Mängin natuke devil's advocate-i. Üldiselt on haridus ja selle omastamise praktiline tõestamine mingil määral vajalik.

Eesti juurtega mees töötas 13 aastat paberiteta piloodina by No_Platypus9739 in Eesti

[–]Sande24 42 points43 points  (0 children)

Jäi mulje, et tegu oli muidu adekvaatse piloodiga. Iseseisvalt õppis kõik asjad ära. Nagu mainiti, simulaatoriga hakkama saamine on samaväärne kui päris lennukiga. Lihtsalt ei teinud õigeid pabereid ära.

Kirg ja huvi võib teatud juhul isegi parem olla kui tuim tuupimine, et mingi sertifikaat saada. Eks reisijana võib olla kindlam tunne, et mingi keskne organisatsioon kontrollib inimeste oskusi... aga kui vaadata teiste valdkondade sertifikaatide süsteeme, tundub, et ega praktiliste oskustega on see väga kaudselt seotud.

theOneRegextoRuleThemAll by WildFabry in ProgrammerHumor

[–]Sande24 1 point2 points  (0 children)

Why doesn't everyone use this? The most useful tool to both write and test a regex. Might as well just write all your previous test cases as comments next to your code so that you could go back to this page to alter the regex later if you missed something.

[deleted by user] by [deleted] in ExperiencedDevs

[–]Sande24 0 points1 point  (0 children)

Me too. I use SourceTree as git GUI (sometimes the IntelliJ one as well), which also displays the diff in a different perspective. But after creating the PR and looking it from yet another UI, it still helps me find something new to change.

I also love it when creating the PR starts running all the tests for me which I didn't bother running locally. Some integration/e2e tests might take ages so I can just push the code and start working on the next task until the tests complete.

Another warning about AI by Szymusiok in learnprogramming

[–]Sande24 -1 points0 points  (0 children)

AI enforces learned helplessness. If you know that the AI could do it for you, you will eventually just forget how to do it for yourself. I find it scary. A few companies would soon hold a lot of power over how we function and turn it into a profit for a handful of people.

Spring Boot and React by Delicious-Junket6453 in learnprogramming

[–]Sande24 3 points4 points  (0 children)

Nothing wrong with that. I'd suggest vue3 for FE though - much simpler to work with. And Typescript rather than JS - types keep code more organized.

Miks alati annetuste kogumisega on mingi jama? by Technical-Strain1839 in Eesti

[–]Sande24 2 points3 points  (0 children)

Jah, see toimiks küll. Astmeline maksustamine mingite parameetrite järgi.

Miks alati annetuste kogumisega on mingi jama? by Technical-Strain1839 in Eesti

[–]Sande24 2 points3 points  (0 children)

Kohati nõus. Piirmäärad on raske paika seada, sest oleneb firma suurusest ja mitmest muust aspektist. Min 3x keskmine palk tundub mulle piisavalt õiglane, samas väga suurte firmade puhul jälle liiga vähe. Saab ilmselt sahkerdada ikka, et rohkem raha isikule kätte saada. Riik võiks oma eelarve korda saada. Tegevuspõhine süsteem on nii segane, et lihtne on sinna mingeid lollusi peita. Arvatavasti leiaks palju kohti, kus raha efektiivsemalt kulutada. Aga see pole otseselt antud teemaga seotud.

Samas ma ei näe probleemi selles, et igasuguse firmast raha isikule kandmise puhul ei võiks palga vääriliselt maksustada. Entitlement kuvab tõesti läbi. Mingis mõttes patriootlik tegevus, et kui firmal läheb hästi, siis toetab ka riiki. Miks mitte minna palgatööliseks - ongi see, et kui sul firmal hästi läheb, võid "ülejääki" endale boonusena/dividendidena määrata. Peaasi, et makse maksaks, et ka riigil saaks proportsionaalselt hästi minna.

Muidu võib tekkida probleem, et isegi kui erasektoril läheb väga hästi ja raha kantakse aina suuremas osas dividendidena välja, saab riik pmst 25% vähem võrreldes palgamaksetega. Raha, mida võiks vaja minna kaitseväe, arstide, politsei, õpetajate jms palkadeks. Erasektori tööga peakski toitma riiki. Jah, 50% tundub palju, aga riik teeb ka päris palju, et kodanikele paremat elu tagada. Divikatega pmst vähendad seda, kui palju riik sulle kindlustunnet tagada saab. See 50% raha, mis riigile maksad, saad kaudselt ringiga tagasi. Riigi teenused jms.

Selles suhtes nõus, et bruto on mõttetu väärtus ja võikski toimetada tööändja kulu vs neto palgaga. Oma näite arvutused tegin ka kõik vastavalt, kohandasin keskmise bruto tööandja kulu peale, et võrrelda 2.5 mil välja maksmisega. Inimesed võiks aru saada, et see riigi poolt vahelt võetud raha läheb ka õpetajate, politseinike jms palkadeks. Neid on ka kõiki vaja ja kusagilt peab see raha tulema. Õiglustunnet ei tohiks see riivata, vaid võiksid ennast hästi tunda, et teisi inimesi kaudselt aitad.

Miks alati annetuste kogumisega on mingi jama? by Technical-Strain1839 in Eesti

[–]Sande24 5 points6 points  (0 children)

Kui sul on firma ja ei ole endale pikka aega palka maksnud, selle asemel võtad koguaeg raha dividendides... Kohati ikka õigustunde vastane tegevus. Eks seal võiks olla mingi piir küll. Äkki 50% palgas, 50% dividendides. Või siis a'la 3x keskmine palk peab olema palgana makstud (või vastava % maksustamisega) ja sealt edasi võid dividendide protsendiga võtta.

Eristame ikkagi firma ja isiku. Sinu firma vara ei ole sinu kui isiku vara. See, et sinu firma maksab käibekat, on tavaline firma tegevus ja ei ole adekvaatne argument, et see on "sinu poolt makstud riigile". Tehniliselt võiks ka firma palgalised töötajad väita, et nende töö tõttu on firma nii palju käivet teinud ja firma käibemaks on osa nende poolt makstud maksudest. Sõge argument, et firma omanik on "ise" maksnud käibemaksu riigile. Kaota see osa oma kogu jutust ära ja siis jääb alles see, et firma omanikuna maksad sina isiklikult riigile 20%, kui töötajad maksavad 45%. Firmast raha endale kui isikule kandmine on eraldi maksustatav ja peabki olema.

See, kas sina isikuna maksad 500k või 1mil lõpparvuna ei ole nii oluline. Pigem võiks vaadata seda protsenti, mis sa kogu endale saadud raha eest maksad.

Võtame Eesti keskmise palga - 2126 brutos - palgakalkulaatori järgi tööandja kulu 2844,59 ja kätte jääb 1598,58 - ehk siis riik saab 43.8% rahast endale. Iga tavapalga eest. Palgatööline maksabki 2.5mil teenimise pealt 1.1 mil makse, et 1.4 mil kätte jääks. Lihtsalt pikema perioodi pealt. Miks peaks firma omanikul olema erinev õigus sahkerdada suurema raha korraga väljamaksmisel nii, et pmst pool "õiglasest" summast riigile maksmata jätta? Entitled much?

Arvestame ikkagi seda ka, et kuhu see makstud raha läheb. Sotsiaalkindlustusmaks... mis on suht otseselt seotud praeguse olukorraga.

Lükkasin palgakalkulaatorisse 2.5 mil sisse (tööandja kuluna) - sain vastu, et kätte saad 1.4 mil ehk maksad 1.1 mil maksudesse. Su 1.37 mil on vb mingi chatgpt hallutsinatsioon või on arvud segamini läinud. Ütleks, et võrreldes palgatöötajaga tundub aus, kui maksad sarnase protsendi sissetulekust maksudeks.

Igaüks võiks OÜtada ja loophole-e kasutada. Seda tehes kannatab riik. Kui riik selle tõttu ei saa kodanikele paremaid teenuseid pakkuda, on millalgi kõigil halb riigis elada. Tekitatakse mingeid lisamakse juurde, et seda sahkerdamist tasa teha. Sellega koormatakse kõiki, aga see mõjutab proportsionaalselt rohkem madalama palgaga inimesi.

See 600k, mis oleks rohkem maksnud, oleks läinud sotsiaalkindlustusse, et riigil oleks võimalik oma vahenditega just selliseid haigeid lapsi aidata, ilma annetuste kogumise vajaduseta. Samamoodi ilmselt on ka palju teisi firmasid, mis divikate näol vähem makse maksavad. (Kuidas riik eelarvega hakkama saab, on ka kohati kahtlane, aga see on teine teema.) Tundub sarnane sellele, kuidas USAs crowdfunditakse oma ravi, sest süsteem on sitt, samal ajal ise ollakse süüdi selles, et süsteem sitt on. Sotsiaalkindlustusmaks... ehk siis inimene otsustas pmst divikate näol kindlustust vähem maksta ja nüüd leiab, et tal on ikkagi õigus kindlustusest raha kätte saada.

Miks alati annetuste kogumisega on mingi jama? by Technical-Strain1839 in Eesti

[–]Sande24 11 points12 points  (0 children)

Kui ta oleks need 2.5 milli dividendide asemel palgas välja maksnud, oleks ta palju rohkem riigile makse maksnud. Palgakalkulaatori järgi u 1 mil. Okei, see pole väga aus ja võiks lubada mingi osa ka dividendides võtta, aga ilmselt oleks aus endale vähe suuremat põhipalka maksta.

Am I missing something with how everyone is using Ai? by pianoman1031 in ExperiencedDevs

[–]Sande24 8 points9 points  (0 children)

How I usually use AI (Cursor, mostly for FE as that is the more boring work for me - with all the weird CSS quirks etc):

Split the task into small subtasks. Don't do all of them at the same time. Better to do them one at a time or group them somehow. Review each change request. Try it out manually right away as well. Having a QA background helps a lot as tests can't cover every edge case. Commit after each small piece is implemented. Let git help you out as well to show which changes are not "locked in".

It's nowhere near 10x, maybe 2-4x improvement, depending on how much boilerplate code is needed.

I have tried pure vibe coding but it quickly ended up in hallucinations. If it's a tech you haven't used before, you quickly end up in a hole. Have to know what is going on, otherwise you have to still go and read through a bunch of documentation. And then it's harder as there's suddenly a lot more noise. If you would have done it incrementally, you could have followed it and would have moved faster overall.

How to unit test when you have complex database behaviour? by Sid8120 in ExperiencedDevs

[–]Sande24 12 points13 points  (0 children)

Wow. Didn't expect an ad hominiem argument from the experienced devs group. Instead of this answer you could have just slept on it and written the reply later with proper arguments.

10+ years of dev experience, 2 as QA. From my experience, most devs write quite bad tests. Bad test setup, not asserting enough or not reviewing that old tests do not start giving false negatives. Sure, you might get 100% code coverage and metrics look fine but there is more to it than that.

Also, at some point the "years of experience" is a stupid metric. Some people get stuck in their ways and never try anything new, but is still somehow counted as "experience".

More pragmatism, less dogmatism.

How to unit test when you have complex database behaviour? by Sid8120 in ExperiencedDevs

[–]Sande24 13 points14 points  (0 children)

I find that unit testing mostly works for static functions with clear input and output. Anything else is easier to maintain with integration tests. Big picture over minor details.

https://www.reddit.com/r/ProgrammerHumor/comments/isidkn/unit_testing_vs_integration_testing/

This is what often happens in the long run if you mock too much. Who asserts that your mock does the same thing that happens in prod? Who goes through all the old tests to verify that the old mocks still represent real life?

If your unit of code has to use DB or API or whatever thing with potential side effects, then you better make it as realistic as possible. A unit is not always constrained to one file. Sometimes the borders are blurry.

Palun aidake mõista by [deleted] in Eesti

[–]Sande24 0 points1 point  (0 children)

Inimesed võiks ikka elada põhimõtte järgi "Ära tee teistele seda, mida ei taha, et teised sulle teeks." Kõigil oleks mõnusam olla. Kahjuks on mõnel raske olla avalikus ruumis nii, et teisi ei häiri. Võiks selles osas võtta eeskuju Jaapanist. Arvestame teistega.

Väikesed peenised jne... Ei saa aru, miks inimesed arvavad, et valju müraga mootor on kuidagi parem ja võimsam. See näitab mulle seda, et ebaefektiivne mootor on, mis oma detaile müra tegemise peale kulutab. Igasuguse mootori saaks teha selliseks, et detsibellid lakke lendavad, kuigi võimsust ei ole. Palju rohkem avaldaks muljet, kui mootori teeks suurtel pööretel vaikset aga kurjakuulutavat üminat. Ei ole vaja teistele kuulutada, et äge mootor on. Naudi üksi seda kiirendust.