“We don’t live in a linear world; it’s intricate, interconnected, and often unpredictable. Tiny actions can trigger significant changes, as seen in The Butterfly Effect. Second-order thinking involves looking beyond the immediate consequences of our decisions to consider the ripple effects they create. While first-order thinking focuses on the immediate outcomes of an action, second-order thinking delves into the longer-term effects. It’s about anticipating the chain of events your decision may set in motion and understanding how these effects could …
Blog Posts
As software engineers, we are always occupied with building things, writing tests, making design decisions, or scoping out projects. It is not uncommon to miss out on important things just because we are in the moment or when things get heated. Just as we use tools, paradigms, and techniques to write our software effectively, we need tools, paradigms, and techniques for our minds to think and make decisions effectively. These 3 mental models are abstract concepts, just like the world …
Higher-order functions are a feature of functional programming paradigm. As more and more languages are adopting functional paradigm, Kotlin is no behind. …
Room Persistence library is a part of android’s Jetpack components. It provides an abstraction layer over SQLite, which is also known as ORM(Object-relational Mapping). RoomDB has substantially increased developer productivity by removing tons of boilerplate code and need to manage SQLite directly. RoomDatabase.Callback() One of the many features Room provides is the callbacks fun onCreate() and fun onOpen(). These methods come in handy when we want to pre-populate the database. As simple as it might sound, it got tricky for …
Deep Clones There are many ways to create deep clones of an object, from Java’s Clone() function to Copy Constructors to custom implementations. All methods come with their own problems and a lot of boilerplate code. With Parcelable and advent of Kotlin, creating simple deep clones can be of no effort in your android project. Why Parcelable? Serialization is a technique to convert objects into a byte stream and Deserialization vice versa. In this process totally new objects are created …