The Need for Improved Ad Blocking for A Better Digital Experience

The ad industry thinks their clients are their customers. They think the companies who pay for the production are the ones they are supposed to serve. So the ads they produce make their clients happy…but infuriate the rest of us.

Simon Sinek

Nowadays, we are constantly bombarded with ads everywhere. It has gotten worse when smartphones became popular. To top it off, companies want to track us so they can provide targeted offers (a.k.a. the segment-of-one marketing). It is not necessarily bad, but as they say, all it takes is one rotten apple.

305 ads in one page is just plain excessive and irresponsible.

Out of sheer boredom lately, I started playing with an old Raspberry Pi 2 I have lying around. It used to serve as my time machine backup, but when the hard drive attached to it got corrupted, it just sat there, gathering dust. I saw a friend of mine post stats from his pi-hole and how many ads were blocked, and decided to see if I can implement the same on my home network.

If you’re not aware, a Raspberry Pi is a small computer, that’s roughly the size of a credit card. At $35, its main use case is for educational purposes. Due to improvements in the hardware, it has gotten to a point that it can be used as a server, a desktop replacement (if you’re just a casual user), or a retro gaming machine.

After getting pi-hole running and adding a few more blocklists (thank goodness for Firebog), I turned off my main router’s DHCP capabilities to allow the pi-hole to take over as both the DHCP server and the DNS server.

After just a few hours, my ad and tracking footprint has been reduced by more than 25%.

No AdblockPlus? No problem!

Here is what I noticed:

  1. Ads and trackers are in your smart devices too. – My smart TV comes with Netflix and YouTube, and it bogs down after several hours of constant use of either app, requiring us to do a hard reset of the TV. I always thought that the TV manufacturer did a shitty job. Things changed when the pi-hole started blocking the ads and trackers from both apps. My TV no longer requires a hard reset. Responsiveness also improved.
  2. Old devices got faster. – I have an iPad 3rd gen, running iOS 9. It is horrendously slow after the last upgrade, and it got tossed aside for the past 4 years. All that changed when the ads and trackers were blocked. I could use Safari again. Firefox is still slow, but much more usable.
  3. You can identify what devices on your network has the most bloatware. – My mother-in-law uses an old Android phone, and it has so much crap. We even thought that the battery is already worn out. After implementing pi-hole on the network, I was able to stop traffic from both bloatware and malware. The nice side effect is the battery life improved.

Companies need to rethink their strategies on how to implement ads and tracking. Every time an ad is loaded or a tracker is invoked, it eats up a user’s internet data plan (especially mobile users), and precious device resources. In extreme cases, it can cause a device to stall, which most people mistake for bad hardware. Overall, this translates to bad user experiences and lost opportunities.

While most people do not have the technical know-how to implement DNS ad blocking in their respective homes or mobile devices, it is just a matter of time before someone turns this into a multi-million dollar business. VPN service providers are already poised to turn ad blocking into a premium service, which results to bandwidth savings for them and their customers. And with the push for higher levels of privacy, DNS ad blocking may become part of the new normal.

The Paradox of Perfection

Perfection is not attainable, but if we chase perfection we can catch excellence.

Vince Lombardi

I’m a goddamn perfectionist. I’ve been like this as far as I can recall. I always demand the highest quality (translation: never enough) of work from myself and other people, to the point that it can be very toxic to work with me. And at times, I’d rather work by myself than with others because people have a hard time catching up. It has toned down over the years, but I need to be conscious when it becomes out of control.

Perfectionism has an associated stigma to it. And I can’t blame people why they put a bad label to it.

Perfection is a myth. No matter how much you struggle, there will always be something better.

Perfectionists are procrastinators. In writing the next article, I’ve actually written about four different topics before settling with this one (and the other four are still drafts).

Finally, perfectionists are hard on themselves. We self-criticize, thinking that everything we do is not good enough.

All these traits create a vicious cycle. It damages us internally due to the constant stress it generates. It damages relationships, because we tend to expect the same from friends and colleagues.

I am here to tell you that being a perfectionist is not as bad as what people think. I have embraced my perfectionist nature a long time ago, and I do my best to make it work for me. Rather than changing who I am, I supplement it, thus staying true to who I am as a person. Not everything is a disorder. We just look at things differently.

How does one embrace the paradox of perfectionism? Here are my methods that you can adopt:

Perfection is unattainable. You can only come close to it. CTTO

Accept that you cannot reach perfection. You can only come close to it. – Perfection and reality have an asymptotic relationship. A perfect square cannot be achieved without measuring at the subatomic level. Understand what is achievable with the knowledge and tools that you have, rather than stressing yourself over what you don’t have.

The bigger picture is as important as the details. – As perfectionists, we obsess with the details. T h e spa cing of thi s sent e n ce is p robab ly going to dri ve s ome of y ou nu ts (and my OC nature is trying to compel me to edit the damn thing). Good craftsmanship requires looking at every detail, but it should be cohesive and contribute to the overall goal. If you’re expending a lot of effort for little return, you may need to step back and look at the bigger picture.

Not everyone cares about the same things as you. And that’s OK. – In my first job, when a manual says you weigh 1.000 grams, I ensure I get 1.000 grams. It matters a lot to me, as that is part of my training as a chemist. That will not matter to other people, and that’s OK. It is important to be flexible when your demands are not meant (and that’s 99.999% of the time). Doing so allows you to work better with people, and you can even go as far as scaling your life.

Be prepared to iterate. A lot. – Perfection is not possible the first time around. It requires dedication and perseverance. Embrace failure. It’s OK to not get it right the first few times. Strive for incremental improvements. This helps build a growth mindset.

Perfectionism should not be treated like some disorder. Being a perfectionist pushes you to become a better version of yourself every time, as long as you keep your foot on the ground.

I Settled on WordPress Despite Being a PHP Hater

Those who know me personally or have worked with me professionally know I am very opinionated when it comes to tech, and I don’t sugarcoat it. So, it may come as a surprise when I launched this site, which is running in wordpress.com. Before you go bashing me for being a hypocrite, let me tell you my story about PHP, and why I made the shocking choice.

I have been programming since I was 14 years old. I started with BASIC. By 16 I was doing assembly (and it made me ask why the fuck I was torturing myself). At the age of 23, I joined a marketing company with a loyalty platform as its flagship product. It was my first official job in the IT industry, as a PHP developer.

Yes folks, I was a PHP developer.

In the one year I worked with PHP, I understood why many people love it and stick to it. It just works. You just need to have a good grasp of the flow, and it was “dead simple” to translate that into a working site. But in reality, it is far from simple. And it will only make you closer to becoming brain dead.

I will not delve into my hatred for PHP any further, as this topic has been beaten to death and beyond.

Everything wrong with PHP in one photo. Source

So, I hate PHP. I do not trust systems built on PHP. I have rescued numerous compromised PHP-based systems (including sites built on WordPress). But why am I trusting a site built on PHP, let alone WordPress? I am simply scaling my life.

Building a website isn’t easy, especially if it is exposed to the public. Over the past 10 years, the number of things to consider to ensure that a site is working and secure has exploded. At a high level, these are the things you need to consider:

  1. PHP Configuration and Tuning
  2. Web server tuning
  3. Database tuning
  4. Network topology
  5. Security
  6. Caching

…And the list goes on.

Now, I could have done all of this myself. After all, I have the working experience to deal with WordPress. Or better, I could revive my old blogging app. But I didn’t.

You see, the most valuable resource that we have is time. I could either invest time to build my new site (which is totally doable even with my crazy schedule), or go with an established platform, and have more time for my family. At this point in my life, I went with the latter.

From a tech perspective, I am not a PHP guy (despite my background). I don’t even want to touch it with a 10-foot pole. And most of my time will be devoted to security work, which is a never-ending race. I would rather let the real experts in the platform deal with this than me.

From a business perspective, how much is your time? I could get a VPS from Digital Ocean at $10/month, spend 40 hours for the initial build of the site, and another 20 hours for security before I write my first post. That, or pay a subscription to wordpress.com for roughly the same price, spend the first 20 hours for the initial setup, and then start publishing.

At the end of the day it all boils down to what brings value to you. Both approaches have their pros and cons, and I have used both in various situations. For this site, I chose to swallow my pride and value my time, rather than be the perfectionist tech guy who spends hundreds of hours tweaking.

A Lesson in Scaling Your Life

“…there’s no I in ‘team’. There is a me, though, if you jumble it up.”

Dr. Gregory House

For a huge part of my career, I have been put in situations where I needed to be that one guy to solve everyone’s problems. Many of my projects in the past are rescue projects. If you are a developer, you know that rescue projects are the shittiest kind of projects you can get into. You need to deal with other people’s broken code. You are given a tight (and sometimes impossible) deadline. And you’re expected to be the expert.

While it may be the shittiest job any developer could get, it is also the most rewarding. Thanks to those experiences, I was able to learn how things work at a level of detail that most wouldn’t dare to go to, in the shortest amount of time. Have you ever constructed an HTTP Request by hand? Have you ever experienced a bug caused by your favorite framework (I’m looking at you Spring and Grails)? How about rescuing a malware-infested linux server, or your client will go out of business in 3 days?

Eventually, I became a one-man-army. I can start a project, design it, build the infrastructure, create the UX, write the software (complete with unit tests), and deploy it into production with little to no bugs. Without any help. Just me, my wits, perseverance, and a crap ton of coffee.

I was very proud of my achievements and what I can do. There was no Team. There was Me.

There is a big downside to this. As I moved to bigger roles, the amount of time I spend as a tech guy started becoming less. I had to deal with the realities of running a business. From commercials, managing people, and dealing with various stakeholders, my time coding has been replaced by meetings, more meetings, and even MORE MEETINGS. I used to hate Monday. Now, I hate Friday (but that’s a story for another day).

The things that made me successful in this career became my biggest weakness.

The pressure to get things done at work. The responsibilities of being a husband and a father. I reached that point where I needed to scale myself. Literally. And thankfully, with experience, trial, and errors, I’ve been able to do so. Little by little.

So, how does one scale? With help from people. Because of my nature to be a one-man-army, it was a big transition for me from being the one providing help to be the one asking for help. If you are not the type to ask for help, you will be surprised at how people can be generous. And by asking for the right kind of help, you create a multiplier effect. Something that could have taken me months to get done can be built in a short amount of time.

What’s great about this is the multiplier effect. When you ask help from people, they too, will ask for help from other people. This can turn a ripple in a pond into a tidal wave.

Thanks to this ripple effect, in a way, I have been able to go back to my roots and do what I do best: dealing with tech. I still need to attend meetings every now and then. I still have to do my administrative tasks. The difference: I can count on my team to do the right thing.

Hello World

Every programmer starts their journey by writing a program that writes “Hello World” on the screen.

While it looks so simple, it is considered a rite of passage. Even veteran programmers, when they start learning a new language, always start with a simple “Hello World” program.

Blogging isn’t new to me. I have done my fair share of writing in the past. And now, I’ve decided to go back to the journey again.

Why restart writing? Share the wealth. Not money, but knowledge. And have a few laughs while we’re at it.

So…come on down stop on by.

Have a coffee and light.

To another programmer’s life.

(I’m pretty sure you sang it in your head)