Slick arrow color and border color

# Postmortem: Styling Customization Failure in Slick Slider Implementation ## Summary A developer attempted to customize Slick slider arrow colors and border styles but could only find documentation for modifying arrow background colors. This resulted in delayed feature implementation and required CSS detective work to resolve. The root issue was insufficient understanding of Slick’s DOM … Read more

How to intercept browser back button / trackpad swipe in React and redirect to a specific route instead of history back

# Intercepting Browser Back Navigation in React: Pitfalls and Solutions ## Summary Attempts to forcibly redirect users to a fixed route (e.g., `/settings`) when pressing the back button or using trackpad swipes break expected browser navigation behavior. Using `popstate` to override history entries instead of leveraging React Router’s capabilities causes navigation conflicts. ## Root Cause … Read more

Error thrown when I try to console log a ZodError

# Postmortem: Error Thrown When Logging ZodError in TypeScript ## Summary An attempt to log Zod validation errors using `console.log(error)` unexpectedly throws an error instead of printing diagnostic information. This occurs because `ZodError` contains circular references via its `.issues` array, causing JSON serialization to fail during console output. ## Root Cause – **Circular references in … Read more

Xcode Memory Graph shows leaks in brand new Kotlin Multiplatform + SwiftUI app (__NSArrayI, __NSCFString, MTLAttributeInternal)

# Xcode Memory Graph Shows Leaks in Kotlin Multiplatform + SwiftUI App ## Summary – Xcode Memory Graph reported immediate leaks (`__NSArrayI`, `__NSCFString`, `MTLAttributeInternal`) in a brand-new Kotlin Multiplatform (KMP) + SwiftUI app – Leaks occur in the default Compose Multiplatform template without custom code – Memory usage stabilizes over time with no actual growth … Read more

PHP form data not saving in MySQL database using mysqli

# Postmortem: Failed Data Insertion in PHP/MySQL Form Handler ## Summary Form submissions weren’t persisting in MySQL despite valid database connections and table structure verification. The key failure was inadequate error handling masking underlying SQL processing failures, compounded by SQL injection vulnerabilities. ## Root Cause – **Absence of runtime error reporting** silenced critical MySQL constraint … Read more

Why does self-invocation bypass @Transactional in Spring Boot, even when using CGLIB proxies?

## Summary Self-invocation occurs when a method within a Spring bean calls another `@Transactional` method in the same bean. Despite using CGLIB proxies for transaction interception, the transactional behavior fails because the call bypasses the proxy layer, executing directly on the target instance. ## Root Cause – Spring’s proxy-based AOP creates wrappers around beans to … Read more

Google Maps Marker & Bubble Misaligned on Android

# Google Maps Marker & Bubble Misaligned on Android: A Production Postmortem ## Summary – Custom marker bubbles appeared misaligned on Android while working correctly on iOS – Bubble positioning was being calculated synchronously after marker creation – Android required additional time for marker layout completion before reliable coordinate fetching – Debugging revealed `getScreenCoordinate()` returned … Read more

How to limit a decimal point to 1 from user input on a Calculator app?

# Postmortem: Decimal Input Overflow in Calculator Application ## Summary A calculator application allowed users to input unlimited decimal digits via button presses despite UI-level safeguards. The attempted solution prevented duplicate decimal points but failed to enforce single-digit precision after the decimal separator in numeric inputs. ## Root Cause 1. Validation scope was incomplete: – … Read more

Snowflake count_if returns 0 if no records satisfy the condition, while the documentation states otherwise

# Postmortem: Snowflake `COUNT_IF` Behavior vs. Documentation Discrepancy ## Summary – Snowflake’s `COUNT_IF` function returns `0` when no records meet the condition. – Official documentation claims it should return `NULL` in such cases. – Discrepancy confirmed via live testing of `COUNT_IF(1 != 1)` returning `0`. ## Root Cause – Implementation aligns with SQL’s `COUNT` aggregation … Read more