1 karma · joined April 2, 2026
a) easy usability in shellscripts B) easy tooling for unittests
I started writing shellscript in kotlin, so i get the unittests for free
You just need to refine statistics. The underlying program can‘t be solved in a physical universe.
The world basically figured out that everyone can have their own currency, so now every little company starts to print their own money?
Why are people buying monopoly/play-money for dollars? Because CPU-time was wasted to make it unforgeable?
What use does unforgeable money have, if it's not irreplaceable?
Why are buyers not concerned that their freshly purchased ToyCoins are rendered useless in the blink of an eye by the issuance of ToyCoin-2, perhaps by the same company?
1. optionally divide your project in arbitrary smaller tasks
2. for each subtask pick a range (min and max estimate) so that you‘re sure the actual time lies in the range 90% of the time.
3. imagine the following decision: you can draw one out of 9 black and 1 red marble. If you pick the red you get 10.000$. That‘s a chance of 90%.
OR: you can choose your estimate and get 10.000$ if it‘s correct.
If you think about this decision and rather pick the marble-game, then your estimate is too narrow and most likely not correct.
If you pick your estimate over the marble game, it‘s too wide, because you‘re more than 90% sure about it.
Adjust your estimate until the decision doesn‘t matter anymore and both the game and your estimate seem like equal chances to you.
4. my own addendum for people who are afraid of asking too much: double the result to take the stress of yourself.
Bits don‘t fall apart.
If you can have a perfect copy of something you can easily keep it in existence forever.
If not, your artifact will sooner or later decay. It will only prevail through conscious action, being subject to incremental evolution of thought. Which copies are not.
You can built syntactic sugar around js-joda too.
I develop Java/kotlin as well, so I'm used to the API. It feels verbose, but it makes a lot of sense. Date-handling is complex, a library shouldn't hide that.
It's a port of the java8 date/time API, which is the most correct date-handling library there is.
Otherwise I just throw these adjectives away. I argue a new compiler/interpreter will always lose against the JVM, which has thousands of man hours of optimization built-in.
The JVM in turn will always lose against a clever memory-conscious lowlevel-implementation in Rust or C or assembler.
Please don‘t advertise speed without any studies or comparison to back up that claim.
Better finish 80%, than miss 100%.
If you use Kotlin instead of Java it's way better because no nullability-issues and it's super-useful standard-library.
And once you've figured out how to hook it into gradle, IDEA etc., which admittedly cost me an hour or so, you can reuse that knowledge for every annotation-processor to come.
I made it a habit to set myself a time-limit EVERY time I start touching the build-process. After the limit has passed it must be faster, more automated, or in any other way more useful, or I will revert the changes.
[0] https://medium.com/@spitzwegerich/generated-json-serialisati...
I can optimize CPU usage all I want, but only after I optimized for minimum allocations, the tiny, but noticeable lags now and then would disappear.
The average javascript-GC must be really simple/naive compared to seasoned workhorses like the JVM's various GCs.
There I can happily create millions of short-lived objects before getting problems in a single-user application.
So much to do, so little time ;)