UPDATE: FastMail wrote about how they sanitise emails to protect their users. I encourage all email app developers to read it and do it properly, while maintaining good layout and readability.


tl;dr The only apps that can protect your privacy are the built-in Email app, FastMail, or Gmail (not Inbox). One of the first things I did after

read more »
October 31, 2015 / Mad Coding, RegEx, Regular Expression, NFA

UPDATE the excellent course on Coursera by professor Robert Sedgewick also covers this with an implementation via digraph I recently came across Russ Cox’s explanation on how many regular expression implementations behave in an exponential way in certain situations, whereas if a Nondeterministic Finite Automaton (NFA) is used then it has no such issue. Definitely go have a read. It’s

read more »
October 29, 2015 / Mad Coding, Hakyll, Haskell

When Hakyll v4 was released, I wrote about upgrading from v3 to v4 and I also wrote about paginated post listing. Things have changed since the release of Hakyll v4.5.4.0 as it now gained pagination support. That’s good because I’ve been wanting to make my post listing better by showing more than 2 posts per page, so I figured it’s

read more »
October 11, 2015 / Google, Android, programming, mobile, Mad Coding

Suppose you need to produce an interface involving multiple levels of ListViews similar to the following wireframe. How do you do that on Android? It’s not an ideal UX and can very easily be done wrong, but let’s say that’s the requirement and you must make it work. I dug into it and figured it out. Feel free to jump

read more »
September 28, 2015 / Start-up, Kash, YC, YCombinator

Earlier this month We officially launched our Kash API product and opened up our internal infrastructure to the world. This is the same backbone that has been powering Kash stores. We also announced new funding and the addition of Joe Saunders to our board. More details on the Kash blog.

read more »
September 27, 2015 / Start-up, Kash, YC, YCombinator

I did a brain dump of my YC interview experience before and gave advice on people’s YC applications. Further down is Kash’s successful application. And here’s our video:
Some of our approach and strategy isn’t the same as what’s in our application anymore. That’s because of the learnings we’ve had since we wrote it. However, the main underpinning of

read more »

I’ve been using Slack via Chrome Apps so I can get an app shortcut in GNOME and have a separate window. My main browser is Firefox though, so it’s always been annoying when people share links and I have to copy & paste to see it in Firefox. I don’t have to, but I prefer it. Especially when my teammates

read more »

2 years ago (2013) when we were first working on AvidRegister, our Android Point-of-Sale, we used SQLite to store customer purchases and other data locally on the tablet. We had to solve some issues with using SQLite that left me surprised things are still this bad in 2013. I extracted the helper classes I wrote back then and published it

read more »

Continuing the process of looking back at some old code that I wrote years ago. This is my 2nd JavaScript code critique. The first one is here. My goal is to bring hash0 code up to ES5 standards and stop coding like it’s 1990s. Once that’s done, then go on to bring it up to ES6. Array.prototype.forEach() Looking through my

read more »

This will be the first of many code critiques I give to myself. Learn by doing is an excellent way to gain knowledge. In fact some of the things you can’t just settle with book knowledge like running a startup, because you’d still have zero clue how to actually do it. However, it’s also important to know that sometimes you

read more »

« Newer Entries  
Older Entries »