corpus.blog
Most cited
Talked about
Blogs
54,302 blogs · [ { "id": "01a08788-e2d1-73c3-be65-1b4f8d4fef2c", "title": "Kotlin tricks: Non-exhaustive enums", "url": "https://ivan.canet.dev/blog/2026/06/29/kotlin-non-exhaustive-enum.html", "published_at": "2026-06-29T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f8e28bc13", "title": "Don't measure elapsed time by subtracting timestamps", "url": "https://ivan.canet.dev/blog/2026/06/15/measure-time.html", "published_at": "2026-06-15T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f8ee6b97b", "title": "In which order should Kotlin parameters be declared?", "url": "https://ivan.canet.dev/blog/2026/06/08/kotlin-parameter-order.html", "published_at": "2026-06-08T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f8fb74b69", "title": "Arrow: Error handling without flatMap", "url": "https://ivan.canet.dev/blog/2026/05/04/errors-without-flatmap.html", "published_at": "2026-05-04T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f905effac", "title": "Kotlin tricks: Mandatory varargs", "url": "https://ivan.canet.dev/blog/2026/03/09/kotlin-mandatory-varargs.html", "published_at": "2026-03-09T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f910d533d", "title": "Gradle vocabulary: projects, builds, artifacts…", "url": "https://ivan.canet.dev/blog/2026/03/02/gradle-vocabulary.html", "published_at": "2026-03-02T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f911e8fbb", "title": "What is the smallest number in Kotlin?", "url": "https://ivan.canet.dev/blog/2025/11/10/ieee754.html", "published_at": "2025-11-10T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f91f4341b", "title": "I tried context parameters, Kotlin's new multi-receiver extension functions", "url": "https://ivan.canet.dev/blog/2025/10/13/kotlin-context-parameters.html", "published_at": "2025-10-13T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f92ce6fad", "title": "Your first Gradle task in 2025", "url": "https://ivan.canet.dev/blog/2025/08/18/gradle-1st-task.html", "published_at": "2025-08-18T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f92f44c62", "title": "Docker misconception: should I use ENTRYPOINT or CMD?", "url": "https://ivan.canet.dev/blog/2025/06/30/docker-entrypoint-cmd.html", "published_at": "2025-06-30T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f93d5190d", "title": "MongoDB documents are strange", "url": "https://ivan.canet.dev/blog/2025/06/23/bson-documents.html", "published_at": "2025-06-23T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f93eff469", "title": "Lifting Kotlin testing: Comparing JUnit, Kotlin-test, Kotest, Prepared and TestBalloon", "url": "https://ivan.canet.dev/blog/2025/06/17/state-of-kotlin-tests.html", "published_at": "2025-06-17T00:00:00+00:00" }, { "id": "01a08788-e2d1-73c3-be65-1b4f94ce7e7e", "title": "Back to basics: When sets break", "url": "https://ivan.canet.dev/blog/2025/05/12/sets.html", "published_at": "2025-05-12T00:00:00+00:00" }, { "id": "01a08788-e2d2-70c5-bfc6-cdd6ffaedf88", "title": "Deep dive into Angular and Compose differences", "url": "https://ivan.canet.dev/blog/2025/02/10/angular-compose.html", "published_at": "2025-02-10T00:00:00+00:00" }, { "id": "01a08788-e2d2-70c5-bfc6-cdd7005b0e92", "title": "What does it mean to be a better Java? (Part 3)", "url": "https://ivan.canet.dev/blog/2024/12/16/better-java-3.html", "published_at": "2024-12-16T00:00:00+00:00" }, { "id": "01a08788-e2d2-70c5-bfc6-cdd7012091a0", "title": "What does it mean to be a better Java? (Part 2)", "url": "https://ivan.canet.dev/blog/2024/12/09/better-java-2.html", "published_at": "2024-12-09T00:00:00+00:00" }, { "id": "01a08788-e2d2-70c5-bfc6-cdd70141db0f", "title": "What does it mean to be a better Java? (Part 1)", "url": "https://ivan.canet.dev/blog/2024/12/02/better-java-1.html", "published_at": "2024-12-02T00:00:00+00:00" }, { "id": "01a08788-e2d2-70c5-bfc6-cdd701d1acdf", "title": "Don't touch Throwable", "url": "https://ivan.canet.dev/blog/2024/10/07/flee-throwable.html", "published_at": "2024-10-07T00:00:00+00:00" }, { "id": "01a08788-e2d2-70c5-bfc6-cdd70292f1ae", "title": "The vulnerability is by design", "url": "https://ivan.canet.dev/blog/2024/09/23/js-path-traversal.html", "published_at": "2024-09-23T00:00:00+00:00" }, { "id": "01a08788-e2d2-70c5-bfc6-cdd702ba2d57", "title": "Typing the web: TypeScript & KotlinJS", "url": "https://ivan.canet.dev/blog/2024/09/05/ts-kjs-types.html", "published_at": "2024-09-05T00:00:00+00:00" } ] posts
Claim your blog
Back to ivan.canet.dev
Blog · corpus.blog/blogs/ivan.canet.dev/posts
ivan.canet.dev
ivan.canet.dev
2026
Kotlin tricks: Non-exhaustive enums
original ↗
29 Jun 2026
Don't measure elapsed time by subtracting timestamps
original ↗
15 Jun 2026
In which order should Kotlin parameters be declared?
original ↗
8 Jun 2026
Arrow: Error handling without flatMap
original ↗
4 May 2026
Kotlin tricks: Mandatory varargs
original ↗
9 Mar 2026
Gradle vocabulary: projects, builds, artifacts…
original ↗
2 Mar 2026
2025
What is the smallest number in Kotlin?
original ↗
10 Nov 2025
I tried context parameters, Kotlin's new multi-receiver extension functions
original ↗
13 Oct 2025
Your first Gradle task in 2025
original ↗
18 Aug 2025
Docker misconception: should I use ENTRYPOINT or CMD?
original ↗
30 Jun 2025
MongoDB documents are strange
original ↗
23 Jun 2025
Lifting Kotlin testing: Comparing JUnit, Kotlin-test, Kotest, Prepared and TestBalloon
original ↗
17 Jun 2025
Back to basics: When sets break
original ↗
12 May 2025
Deep dive into Angular and Compose differences
original ↗
10 Feb 2025
2024
What does it mean to be a better Java? (Part 3)
original ↗
16 Dec 2024
What does it mean to be a better Java? (Part 2)
original ↗
9 Dec 2024
What does it mean to be a better Java? (Part 1)
original ↗
2 Dec 2024
Don't touch Throwable
original ↗
7 Oct 2024
The vulnerability is by design
original ↗
23 Sept 2024
Typing the web: TypeScript & KotlinJS
original ↗
5 Sept 2024