Welcome to my website.

This is the place where I write about my current interests. At the moment, those interests are photography, writing, coffee, and coding. I also have a personal blog.

I call this website oldblack / studio, yet in reality it’s not a room anywhere and it has no physical address. But I like to imagine this place to be somewhere I can share my work, like an open studio where you can come and go without worrying about bothering anyone. Hopefully the name doesn’t sound too pretentious, and I hope you have a nice stay.

Latest Articles

One Idea That Changes Your Life

There’s a recent Ask Hacker News thread about one idea that changes someone’s life. Here are some parts that I find illuminating. Interrogative-led questions: Favor interrogative-led questions over leading questions.A leading question attempts to get the listener to agree or disagree with a premise you feed to them. An interrogative-led question often begins with the […]

Setting Up Jetpack Navigation Component and Modal Navigation Drawer

On small screens like on mobile (setting aside how humongous smartphones tend to be nowadays), a very common pattern is to use a modal navigation drawer to allow users to navigate between one top-level destinations in the app. You’ve seen them: it’s usually the three horizontal lines on top left of an app, that can […]

General Mechanism for Scheduling Notification in Android

This article is more of a quick note about what’s involved when your Android app needs to create a notification and schedule it to appear at some time in the future. There’s a lot of articles out there that goes in details about the implementation. Think of this article as more of a summary.

Kotlin: Using MediatorLiveData to Use Data from Two Tables at Once

With my current app, the main data is Subjects, where each Subject have multiple Reminders tied to it. For this purpose, I have a couple of tables in the database, which in its simplified form can be seen as below: Subject table with: Subject ID Subject title Reminder table with: Reminder ID Reminder timestamp Subject […]

Strategies for Creating A Single RecyclerView with Multiple ViewHolders

This article assumes familiarity with creating a RecyclerView using a single ViewHolder for each item, which is the most common use case. Here are the possible cases where a RecyclerView might use an adapter with multiple ViewHolders instead: Case 1 Here’s the general method. I’m only listing areas that differ from the usual case of […]

CSS History

Old CSS, new CSS is a great article recounting the history of CSS. With it, I can pinpoint exactly when I last regularly updated myself with its development (it was somewhere after browser prefixing hell, and before flexbox). Really useful for finding what I should catch up on, as well.


I was working with some CSS code when I accidentally typed the color code #f2d2d2, and found it to be such a pleasant color. I set it as the background color for this paragraph. Happy accident.

Data Binding with Kotlin; Why?

I came across the Data Binding resources page for Android, and reading through it got me questioning. Why is such setup necessary, when Kotlin extensions allows for super easy view binding already (example below)? As it turns out, there’s quite a difference as explained on a Reddit comment that I pasted below: Hey! Developer Advocate […]

CSS: Adding Dark Mode to Posts on Certain Category on WordPress.com

The other day I had an idea to make photography posts in my main blog to be displayed in a sort of dark mode design. This is something recently implemented in Instagram also, and I do feel that black background color and surroundings make pictures and colors pop more. Making things dark is relatively simple […]

Digging into Coroutines

With Kotlin comes one of its most famous features: coroutines. Javanese is my first language. No, not the Java programming language. Javanese. So whenever I hear a foreign word like coroutines, nothing shows up in my mind. It has no meaning. This post is an attempt to dig into the word to give my brain […]

Simple Way to Add a Global Constants File with Kotlin

One of the most common things I’m adding when making an Android app is a file that contains various constant values to be used in various places. Here’s how I’d set it up. First, create the .kt file (usually I’d name it Constants.kt). Add the package name at the top, then add the constant variables […]

What Exactly is a “Repository”?

The Repository pattern is one of the concepts frequently used and mentioned within Android Architecture Components. As English is not my first language, I’m drawing a blank in my head whenever I read or hear the term “repository” itself. I have some abstract idea about what it is, mostly from the concept of Github repositories: […]


Something went wrong. Please refresh the page and/or try again.

Get Updates

Join 10 other followers

Topics So Far

@oldblackcamera on Instagram