The best kittens, technology, and video games blog in the world.

Thursday, August 14, 2014

Beeminder resolution problem

Cute squirrel monkey by **Mirm** from flickr (CC-NC-SA)
Beeminder tries to be two distinct things at once:
  • quantified-self system - helping you tracking relevant information about yourself
  • self-improvement system - nudging you towards better behaviour
These two tasks are highly entwined - you can't nudge yourself meaningfully without tracking your progress; and things you want to track tend to be things you care about improving, or at least maintaining at certain level, so it ought to make sense to have one tool for both.

The primary reason it doesn't work all that well in practice is that optimal resolution for tracking is drastically different from optimal resolution for commitment.

You generally want to track things at high resolution, but commit at low resolution. What you want to commit to is "getting enough exercise". What you want to record are things like "10 km on a bike", "30 minutes on a treadmill", or "10 sets x 10 reps with dumbbells". It's common to make the mistake of setting each such activity as a separate goal, enforced every week, which inevitably leads to mass derailing pretty quickly, even if you are getting decent amounts of exercise.

Instead, what you need do is throwing these data points all together into a single "exercise" commitment goal. They don't come in the same units, so you need to convert them somehow - to hours, intensity-adjusted hours, some kind of per-exercise point system, daily did/didn't exercise points, or something more creative. Whichever way to aggregate them you pick, what you want to commit to is low-resolution aggregate of high resolution tracking data.

This kind of aggregation is not supported too well by beeminder. What if you want to change from one way to aggregate data to another? Editing data for current goal is not only tedious manual process, it will most likely retroactively derail you. Or you could archive current goal and start a new one, eventually ending with "exercise-17" goal. There are ways within the system, but it's not helping you.

This might not be a huge deal if all you want from beeminder is some help with akrasia - for this past data is not a huge deal since it's already done its job nudging you. If you care about long term data, your choice is messiness of manual aggregation, or huge number of microgoals with frequent derailing.

I used "exercise" as an example, but that's actually one the easiest goals to aggregate. What if you wanted to commit to "work", "education", "doing new fun things" or some other difficult to measure goal? Hours of effort, which work tolerably for exercise, are really bad measure for most other goals, and point systems will require frequent tweaking. (I wonder how many programmers have "lines of code written" as beeminder goal - it might still be less crazy than "hours spent coding").

Resolution is not the only case where what you want to track is not what you want to commit to. For just about any area of life you'd like to improve, you want to commit to effort, and track outcomes. It's a miserable experience if you commit to an outcome like weight loss, school grades, earnings, or whatever else you're concerned with, put serious effort into it, and derail anyway because of one unlucky week.

On the other hand what good is committing to certain number of hours of effort, if you're not getting results you want even long term?

Beeminder is trying to do something new, and even in its imperfect state it's still highly useful. It still has very long way to go.

Thursday, August 07, 2014

Fun and Balance mod for EU4 1.7.3

6381 by 阿 light from flickr (CC-NC-ND)
Previous version of Fun & Balance mod works perfectly fine with 1.7.3 hotfix since it's an exe-only change and should be compatible with all the mods, but I'll use this opportunity to release a few minor features.

For complete list of changes, check this post for previous version. For reasoning behind them, check all the previous posts about the mod - however you're the final judge and you can selectively pick and choose whichever chances from the mod you like.

You can download it here.

Balance tweaks

Building monarch point cost reduced from 10 to 5. 10 was sensible if all these conditions were met:
  • Your empire was at most medium sized (like Scandinavia)
  • You had no extra sources of income (like with trade ideas)
  • You had no significant discounts on build cost (like with economic ideas)
If any of these conditions were true, and especially if two or more were true, then building instead of being about equally constrained by money and monarch points became purely monarch-point constrained and money became irrelevant. Changing cost down to 5 seems reasonably balanced for most countries, and you can get it further down to 4 if you take quantity ideas.

Partial westernization (going up to Muslim tech) now requires no rebel-occupied provinces. Apparently Ming somehow manages to get required stability +2 even while half of it is occupied by peasants.

Return Subject Core CB

Coming right from Crusader Kings 2 - if another nation occupies cores which rightfully belong to your subject (vassal, junior PU partner, or colonial nation), you now get CB on them, at the end of monthly tick.

CB is relatively weak if you want to use it for anything else than returning subject cores. It gives 0 dip cost for full annexation, since that's the only one you can get subject cores from OPM, you'd still need to have your vassal occupy their capital to get the whole deal for 0 dip.

There's no way to press any other subject CBs like fabricated claims, holy wars etc.

More reformable countries

Almost every culture's primary country is now reformable. Conditions are pretty strict:
  • you must have the right primary culture
  • you must own and have cores on every single province of that culture
  • admin tech at least 10
  • not subject, not tribal, not at war, at least 3 provinces
  • country you want to switch to isn't already formable in some other way (then use whichever way is already provided by the game)
  • your current country isn't on blacklist (Holy Roman Empire, Papal State, Hindustan, Mughals, Spain, France, Germany, Byzantium, Bukhara, Italy, Russia, Scandinavia, Persia, Great Britain, Polish-Lithuanian Commonwealth, Egypt, Vijayanagar) - it's here to prevent cycles of tag switching and other weirdness
  • you can't form Muscovy, which is technically Russian's primary culture - you should try to form Russia instead
  • you can't form Shun or Zhou - technically primary cultures of Han and Cantonese cultures - that would just feel really weird
Changing tag this way gives you centralization modifier for 20 years (+1 revolt risk, +10% tax), switches your idea group, and gives you 25 prestige. It's quite weak reward relative to effort, it's mostly here if you want to roleplay unusual scenarios.

Existing tag changing decisions are divided about switching idea group or not, and for some switches it makes more sense to go one way or the other. Here I'm switching it every time to provide you with a way out in case you start as someone with generic or otherwise really awful ideas.

AI will take this decision as well if condition are met. This doesn't happen often since conditions of controlling every province of given culture is pretty strict, but it happens from time to time. Naples forming Sicily is probably the most likely one to happen - and it makes a lot of sense as they were literally calling themselves "kingdom of Sicily" the whole time.

Everything is optional

As usual, all changes are independent from each other as much as possible, so you can cherrypick whichever changes you like and disregard the rest.

Compatibility with other mods

The mod is currently only guaranteed compatible with UI-only mods.

I've been asked multiple times about compatibility with CK2 imports, EVE, Extended Timeline, and other mods. Right now it requires manual merging, which shouldn't be too much work, and people have successfully done so.

I might someday write a script to merge these automatically and provide packages with both, but that's just a vague plan for now.