cspray's blog

Articles about software development and other things I find interesting

Or a tale of how I lost a domain and got it back.

From roughly 2011 to 2015 I wrote on a far more regular basis at a blog hosted on cspray.net. It was my attempt to put material up about my thoughts on programming and technology in an attempt to get noticed by an employer. A couple of the posts got some attention, they were picked up by programming news aggregators, and overall the blog accomplished its purpose.

I had never intended to abandon the blog; I enjoy writing and there's a lot of ideas that I have about blog articles. The problem then, and still now, is simply finding the time to sit down and write the article! As I started to progress in my career my time to write blog posts really disappeared and I all but stopped posting. In the midst of not posting I made a classic web-developer mistake; I forgot to auto-renew the domain and it got picked up by a domain squatter and they wanted $5,000 for it.


I had lost a pretty cool domain and one that I had written a lot of blog posts for that got shared around by people. I was pretty upset that I had lost the site and all those links back to my content were now dead. Fortunately I still had all the content itself but without an audience it didn't feel like it mattered all that much. Life continued to move on and I reconciled myself to never getting the domain back and starting over with a new online presence, cspray.io. I have fully transitioned to the domain with my personal site, blog, and primary email being on cspray.io. And, of course, I've remembered to turn on auto-renew and am sure to check my domain accounts every month or so after my painful lesson.

A year or so ago I was doing some of that domain maintenance and I noticed randomly that cspray.net was available again at its normal price. The domain squatter had forgot to auto-renew and I was able to get my domain back! Bringing back the domain made me go trudge through the archives and find the old blog posts that I have and it made me realize that some of them still stood up to the test of time... or were worth revisiting to provide updated opinions. Over the next few months I'll be reposting some of that old content in hopes that it'll be valuable to a new audience.

If you go to cspray.net now it redirects you to cspray.io. :)

Recently my company deployed some application changes that exposed a flaw in a long-running part of the application that seemingly should not have been impacted by the changes that were made. Our application facilitates digital private placements and part of that process includes allowing investors to download a series of documents. Those documents weren't showing up in the UI though they were present in the database and in the response from the API. The problem was clearly in the JavaScript portion of our application and the entire team was anxious to get this fixed. After many hours of debugging and looking at data we finally discovered that a computation was being seen as both truthy and falsey at the same time.


My mother has recently been diagnosed with terminal metastatic cancer of the liver. Over the past 3 weeks I have been doing everything within my power to make her remaining time on this earth as comfortable as possible. I gradually identified the highest priority aspects of her care and started improving them. The hardest aspect to improve is something that I take entirely for granted; going to the bathroom.


I have long been aware of the fact that in exchange for free online services consumers are subject to advertisements; it is a huge business that powers most of the Internet unless you're explicitly paying for the service. Part of that trade-off includes ‚Äútargeted advertisements‚ÄĚ where marketing firms collect a massive amount of data detailing everything you do online. Presumably this massive amount of data is used to improve the advertisements and services that we receive. Often these data sets are routinely cracked into or just simply left exposed to the public for malicious actors to do with your data as they see fit.

For the longest time I have assumed that this was simply inevitable. Online services need, and often deserve, to be paid; there are real humans managing, designing, implementing, and operating them. Combined with the fact that the vast majority of people are unwilling, or unable, to pay for these services leaves little room for hope that the situation will markedly improve. However, that doesn't mean I have to go down without a fight.


Recently I have had the opportunity to get back into developing with PHP 7, which means I've been getting my hands dirty with amphp. If you are unfamiliar with the project you should definitely check it out. It provides a series of libraries that makes asynchronous programming in PHP easy and accessible.