By default, each Apache Camel route has its own error handler, meaning each independently catches and handles Exceptions thrown within it. But, what if a “parent route” needs to catch and handle Exceptions thrown by a sub-route? Here’s one approach: Continue reading Apache Camel: Throw Exception from Sub-Route to Previous Route
Here’s a quick tip: the easiest way to find transaction leaks in Wildfly/JCA. Continue reading Find Transaction Leaks in Wildfly and JCA
Here are a few notes I took while reading The Checklist Manifesto, by Atul Gawande. Admittedly, the notes are sparse. Although the book makes powerful points, the whole thing could be condensed into a few pages. Instead, it provides 200 pages of anecdotes and examples. Helpful, for sure, but largely repetitious…
Continue reading Book Notes: The Checklist Manifesto (Atul Gawande)
Want an easy way to backup your server to Amazon S3? Simply use this shell script as a cron job (I currently have it set to run every 3 days). This specific script assumes a YUM-based software repository, MySQL, and Apache. However, it can easily be changed for different environments. Continue reading Script: Automatically Backup a Server to Amazon S3
My list of unorganized notes from The Open Organization, by Jim Whitehurst (Red Hat CEO): Continue reading Book Notes: The Open Organization (Jim Whitehurst)
Gone are the days of requiring large amounts of resources to adequately run a fast, enterprise-grade web server. I currently run a single DigitalOcean instance (the 1GB memory plan) and host many web platforms with no performance issues, whatsoever. I thought I’d share the settings that have been working really well in this low-memory environment. Note that the server is running CentOS 7, but these settings should be applicable for any OS.
For what it’s worth, if you’re interested in a DigitalOcean account, click here to use my referral — you’ll gain $10 in credits when you sign up… Continue reading Apache and MariaDB/MySQL Settings for Low-Memory Servers
When adding a new website to an existing web server, the process of setting up Apache and creating FTP users is a bit tedious. However, it’s really easy to automate with a simple script. The following is an example Shell script that automatically: Continue reading Automated Apache and FTP Setup for New Website
Today was not a good day. In short, a nonprofit’s online donation form was hit 1,285 times in an attempt to validate stolen credit cards. Unfortunately, 120 of those succeeded, meaning our Stripe account had over $600 in fraudulent donations. I needed a quick way to fully refund those charges, but in bulk. Through the Java API client, I was able to do the following. I figured I’d throw it out here, in case someone else can use it. Note that although it uses the Java client, the concept is identical for others. Continue reading How to Issue Bulk Refunds through the Stripe API
Getting right to the point, many (possibly even most) software/web developers will simply hand you the deliverable upon project completion and call it a day. The tools and processes used are often held back, forcing you to always go through them for updates or eventually argue with them to get what you need. Although the former may make a bit of business sense on the consultant’s side, I’d argue that this methodology is terrible. Continue reading The Responsible Consultant: What project information should my software/web developer provide?
As a part of my ongoing consulting with nonprofits, I oversee over a dozen web applications running on OpenShift. I needed an easy way to backup all of the MySQL databases in one shot. So, I cooked up the following shell script. It’s pretty dirty, but it works. The script assumes Linux and is run as a cron job, but the concept could be easily adapted to other operating systems. I thought I’d throw it out there in case it’s useful to anyone else. Continue reading How to Backup an OpenShift MySQL Database with a Shell Script