AI (almost) solved my toddler sleep issues
How I used AI and open-source tools to monitor and improve my toddler's sleep patterns.
Thoughts on software development, backend systems, and occasional cooking experiments.
How I used AI and open-source tools to monitor and improve my toddler's sleep patterns.
An open-source custom PCB replacement for the Sonoff NSPanel that adds presence detection, voice assistant capabilities, and modular extensibility.
A workaround for adding footer views to Android's NavigationView component, which only officially supports headers.
Understanding and solving the frustrating issue of fragments overlapping when managing the back stack in Android.
How to detect whether your Android app is running on a phone, tablet, or Google TV device using utility methods from Google's IO Sched app.
Introducing FormEditText - an open-source library that brings easy data validation to Android EditText fields through XML attributes.
A PHP library that flattens complex nested objects for database storage while maintaining SQL queryability.
A comprehensive guide to implementing secure, automated server backups using rsnapshot, rsync, and SSH with proper security practices.
A simple pattern using SharedPreferences to run initialization code only the first time your Android app is launched.
How to implement a secure password reset flow that protects users even if their email is compromised.
Why strip_tags() isn't safe enough and how to properly sanitize HTML when you need to whitelist certain tags.
How to implement real-time change detection for Android's EditText widget using TextWatcher, similar to JavaScript's onChange event.
How to extract and view the trusted Certificate Authorities (CAs) from an Android device using BouncyCastle and ADB.
How to programmatically add calendar events on Android across different SDK versions, from 1.5 to Froyo and beyond.