What you need to know about Java 8 method references

TL;DR: Today I grappled with a memory leak caused by the fact that, in Java 8, obj::method != obj::method (where obj::method is a Java 8 method reference) »

Android Activity Lifecycle: The Definitive Reference

If you're an Android developer, I'm sure you have the activity lifecycle burned into your memory by now: Now, Android's reference documentation and training guides are excellent in general, but »

2014: year in review

Inspired by my friend Prakhar's 2014 review blog post, I decided I'd write one as well. Hopefully it'll end up being useful for me over time. Open-source I had a »

Android Development Resources

Developing great Android apps is hard, as anyone who has ever tried to make one can attest. So it helps to turn up fully-equipped for battle. To that end, I've »

Common C++ Gotchas

Hopping between my open-source Android projects and Photoshop Elements at Adobe involves a lot of mental context-switching. A majority of that transition is necessitated by the fact that Java and »

Why is hardware acceleration not working on my View?

Cross-posted from a self-answered question on StackOverflow. Recently I was intrigued about how Facebook Messenger implements chat heads on Android. Turned out a lot of people were wondering the same »

Nuggets from my .emacs: Part I

Nuggets from my .emacs is a series wherein I will occasionally put up small but nevertheless quite useful functions in Emacs Lisp that help enhance daily productivity. This post here »

Alt+Tab sucks; here's a solution

NOTE: I mostly use single application instances with tabbed UIs or similar (Firefox, Emacs + escreen.el, Terminator, Zathura PDF viewer + Tabbed, SpaceFM), so this method works flawlessly for me. If »

Function Pointers in C are Underrated

The function pointer in C is, in my opinion, one of the most ignored gems of the language. It's the kind of feature you rarely need, and then suddenly, one »

Searchable User Interfaces are the Future

TL;DR: Mammoth software with tons of features are not uncommon nowadays. However, the interfaces for these software have not matured. They are not scalable enough to support efficient usage »