Cutting Caffeine During Ramadan: A Tale of Painful Enlightenment.

The only thing stopping me from a bad idea is another competing bad idea.

Adam’s first rule of infinite bad ideas.

That sentence alone may as well summarize everything from my professional career as a freelancer to my time at university, yet somehow I still come across work and maintain my knowledge as a web developer while ardently pursuing how to improve my craft as a writer. Despite this, I often feel like there aren’t enough hours in the day to get what I want done. What follows is a vicious cycle that starts with the (mistaken) thought process that I’d be wasting time if I got the sleep I needed, leading to me begrudgingly trudging through the late hours of the night -potentially into the early hours of the morning of the next day- running off of caffeine and the will of God to feel marginally more productive than I did hours before when the sun was still in the sky. Suffice to say, I needed a change from “more espresso, less depresso.”

A few days before my second Ramadan in lockdown during the COVID crisis, I took some time to reflect on my habits and found myself stuck on my dependence on caffeine as a fixture of my everyday routine. As much as I enjoy the process of making coffee and the chemistry-lab-like appeal of experimenting with ratios and preparation methods, my excessive consumption made it harder to unwind, sleep, focus, recall things, and structure my day all while exacerbating my existing issues with anxiety. I didn’t want to entrench that dependence even further and enable even worse habits down the line that could lead to financial ruin, severe deterioration of my health, or any adverse consequence that could affect myself and my loved ones.

With a day left to go before Ramadan started, I decided to completely cut caffeine for the entirety of the month and to compensate for the lack of caffeine, I’d be doing increasing reps of push-ups, sit-ups, squats, and jumping jacks throughout the next 30 days to hit a monthly challenge I was tracking through an app called OneRep on iOS. Unfortunately I had no time to ramp down my habits so I figured now was just as good of a time to start than ever and to go cold turkey right away. I figured, “what’s the worst that could happen?”

And by truth, that was an apocalyptically bad idea.

At first, anyway.

Let’s Talk About WWDC ’21.

Yesterday’s keynote marked the beginning of WWDC21 (Worldwide Developer’s Conference), a week-long extravaganza of news and resources regarding software updates and features headed to Apple devices later this year. While past WWDCs are met with a great deal of cautious optimism and excitement on the cusp of possible hardware announcements and anticipated features, the excitement for this year has felt somewhat muted in the wake of a contentious court case with Epic Games regarding the App Store’s business model, its heavy handed approach toward converting users from third party services to their own services as exemplified between Spotify and Apple Music, and its preferential treatment toward large players such as Amazon and Netflix, in addition to being the second WWDC during the COVID crisis and potentially, the last (or perhaps, second-last) WWDC before Apple reveals what could be their Next Big Thing ™

Let’s Talk about Apple’s Environmental Commitment.

[Author’s note: The following article was written on December 22nd, 2020. Several changes have been made to better reflect new information pertinent to this topic. ~AK]

As sure as the sun rises in the east and sets in the west, Apple has heralded the arrival of a new generation of iPhones and set tongues wagging from pundits and tech journalists alike as they all write articles about… literally the exact same thing as the year before. Be it hot takes about Apple’s inability to innovate or the far-reaching implications that Apple’s commitment to whatever new technology or initiative has on the tech industry writ large, it’s comforting to know that there’s some banal consistency in a world descending into authoritarianism as it stares down the barrel of a climate crisis that’s been building up for centuries.

This looming crisis is at the heart of Apple’s decision regarding the packaging of new iPhones in 2020 and beyond; that the included Lightning Earpods and USB charging brick will be removed from new iPhone SKUs produced this year in a bid to reduce the amount of waste that goes into landfills per year while (finally) moving to USB-C lightning cables from the default USB-A charging cables that have been included with iDevices since the mid-2000s. In theory, it sounds like a commendable action for a company as monolithic and influential as Apple to take and in practice the results clearly speak for themselves:

Pictured above, the size difference from the old packaging (left) and the new packaging (right) of the iPhone Xr (Originally released in 2018)

A Clean(er) Slate.

On the internet, nobody knows you’re a toaster.


Except I’m not a toaster, let alone a ballistic one anymore; I haven’t used that handle online with the exception of my Twitch channel and apart from recycling this gag from my last blog, I’m still only a freelance mobile/web developer in my mid-late twenties with enough time on his hands to start yet another blog talking about stuff I’ve worked on and/or things I find interesting enough to write about. It’s a pitch I’ve made before and one that didn’t pan out on my old website. If this were a few years ago, I’d have wrote up some contrived sob-story about how I had a lot to work on or schoolwork being a time-consuming hassle but the truth is much simpler:

I had absolutely zero interest in updating the website with new content.

Watson Conversation Services on Salesforce: Deploying our Chatbot.

Originally published on September 22nd, 2017.

Now that we’ve gotten Live Agent up and running in our Salesforce organization, it’s time to start working on our chatbot! We’re going to be working off of a sample chatbot that is written using the Node.JS SDK of Watson Conversation services.

IBM Watson: Setup, Chat Window Appearance, and Preparation

Before we start, it’s recommended that you do the following:

  • Sign up for an IBM ID so that we can use Watson Conversation services to build our chatbot and deploy it on Bluemix.
    • Enter your email, password, username, and your payment information and log in to You won’t be charged for merely entering your payment information.
  • Install NodeJS and the Cloud Foundry command-line tool.
  • Clone or download a zip archive of the Node.JS Watson conversation services demo from IBM Watson’s Github repository.

Watson Conversation Services on Salesforce: Setting up Salesforce Live Agent.

Originally published August 26th, 2017.

Chatbots have become a very exciting area of development with companies like Facebook leveraging the Messenger platform as a place where developers can create bots that answer questions, book appointments, and even interact with payment apps such as Venmo to satisfy the needs of their customers. In this proof of concept, we’ll be focusing on IBM’s Watson conversation service as we create a chatbot designed to handle questions alongside customer service agents using the Salesforce Live Agent chat platform.

This project will be discussed in two separate posts- this post will begin by outlining a typical scenario that articulates the business value proposition of a chatbot and will focus on integrating Salesforce Live Agent into your Visualforce page. The second part will elaborate on how to add a chatbot built using the Watson Conversation service and how to host it on IBM’s Bluemix platform.

Twilio Video in

Originally published on June 22nd, 2016.

Twilio’s capabilities as a voice calling and messaging platform-as-a service are a perfect fit for Salesforce’s raw power as a CRM and cloud computing solution for businesses. While Twilio Voice and Messaging officially support the platform through custom libraries, the beta SDK for Twilio Video doesn’t officially support yet.

That is, unless you decide to do it yourself.

Today, I’m going to show you how to build your own Twilio Video client on a Visualforce page using only the JavaScript SDK of Twilio Video. You will need to use a WebRTC compliant browser, so be sure to use Firefox or Chrome while following along with this guide.