How to Replace BuddyPress Avatar with a Custom One

So i received a question from a customer over at ProfilePress if it was possible for avatars or profile pictures uploaded by users of his website via ProfilePress powered front-end registration and edit profile forms to automatically replace that of BuddyPress.

You know, BuddyPress has its own mechanism for uploading and managing users avatar. Having his website users editing their avatars in two places didn’t quite go down well with him.…

Getting Good with Git & GitHub

I was recently involved in building an email marketing service (think MailChimp) where we needed to automatically send alongside HTML campaigns, their plain text version.

I was assigned to get this feature built out. To accomplish this, I tested a lot of HTML to text libraries and finally, settled for this by Jevon Wright.

Using soundasleep/html2text repository, we will be learning how to fork a Git repository on GitHub, make improvement on a fork, submit pull request, fetching, pulling and merging in changes from remote.…

SmartSVN – A Perfect TortoiseSVN Alternative

I have never fully grokked the use of Subversion (SVN) as a version control system on the command-line like Git and as such, relies on GUI applications such as TortoiseSVN. The only time i use SVN is when i want to deploy a new or updated version of my WordPress plugins.

In the past when i was a PC (windows OS) user, TortoiseSVN served me well.…

Solution to “Font from origin ‘’ has been blocked from loading by Cross-Origin Resource Sharing policy”

I recently discovered icon fonts on the website of my ProfilePress WordPress plugin weren’t displaying. On viewing my browser console, i saw the following error notice logged.

Font from origin ‘’ has been blocked from loading by Cross-Origin Resource Sharing policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘’ is therefore not allowed access.

Apparently, the browser was blocking connection from to its cloudfront CDN because of the restriction of browser’s same origin policy whereby siteA cannot fetch content from siteB unless via Cross-Origin Resource Sharing (CORS) in which response from siteB include a Access-Control-Allow-Origin header granting permission to siteA.…

How to Make WordPress Admin Notices Actually Dismissible

WordPress 4.2 introduced a feature where admin notices can now be dismissed / removed from the admin page currently being viewed.

One caveat I discovered was, the dismissal do not persist across pages. That is, when you reload or navigate away from the current admin page to another, you will still see the notice.

I wrote a small library / plugin that elegantly solves this problem which i will be sharing to us.…

Signing Git Commits & Tags with GPG2 and Verified on GitHub

So i got myself a MacBook PRO and finally made the switch to Mac world after a long time being a Windows user.

One of the things i have been meaning to do was to GPG sign my git commits. Setting up my new MacBook proves to be the perfect time and finally, i did it.

The web has a number of tutorials that shows how to sign git commits with GnuPG (GPG) but none with GPG version 2.…