<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Steve Bryant</title>
			<link>http://www.bryantwebconsulting.com/blog/index.cfm</link>
			<description>A Web Programmer&apos;s Exploration</description>
			<language>en-us</language>
			<pubDate>Mon, 08 Jun 2026 20:01:21-0500</pubDate>
			<lastBuildDate>Tue, 04 Feb 2025 11:00:00-0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>steve@bryantwebconsulting.com</managingEditor>
			<webMaster>steve@bryantwebconsulting.com</webMaster>
			
			
			
			
			
			<item>
				<title>Return a list of related records in SQL Server 2017</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2025/2/4/Return-a-list-of-related-records-in-SQL-Server-2017</link>
				<description>
				
				I absolutely love SQL (especially SQL Server) and I love how it continually gets better.

A little over four years ago, I wrong an entry on &lt;a href=&quot;http://www.bryantwebconsulting.com/blog/index.cfm/2020/10/21/SQL-Server-Lists&quot;&gt;how to return a comma-delimited list of records in SQL Server&lt;/a&gt;. It turns out, that it is now much easier to do.

SQL Server 2017 introduced the STRING_AGG function. For those of you doing math, it would have actually been available when I wrote the previous entry, but we&apos;ll just ignore that and I&apos;ll use the same example.

For example, if you have users that can work in multiple regions and you need a list of which regions they work in.
				 [More]
				</description>
						
				
				<category>SQL</category>				
				
				<pubDate>Tue, 04 Feb 2025 11:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2025/2/4/Return-a-list-of-related-records-in-SQL-Server-2017</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Seeking a JavaScript Framework (Part 3: Success!)</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2025/1/28/Seeking-a-JavaScript-Framework-Part-1-Success</link>
				<description>
				
				So far, I&apos;ve covered what I want in a JavaScript Framework and then I covered several popular JavaScript frameworks and why none of them are what I want.

Just when I was about to despair, however, I ran across a little-regarded framework that does just what I want.

Just to rehash quickly, here are my criteria:
				 [More]
				</description>
						
				
				<category>JavaScript</category>				
				
				<pubDate>Tue, 28 Jan 2025 10:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2025/1/28/Seeking-a-JavaScript-Framework-Part-1-Success</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Seeking a JavaScript Framework (Part 2: Reviews)</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2025/1/14/Seeking-a-JavaScript-Framework-Part-2-Reviews</link>
				<description>
				
				&lt;p&gt;Last time, I covered what I want from a JavaScript framework (and a bit about why). I don&apos;t want to rehash all of that (you could read the entry if you cared), but let&apos;s start with the table of what I want from the end of the previous entry.&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>JavaScript</category>				
				
				<pubDate>Tue, 14 Jan 2025 10:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2025/1/14/Seeking-a-JavaScript-Framework-Part-2-Reviews</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Seeking a JavaScript Framework (Part 1: Criteria)</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2025/1/7/Seeking-a-JavaScript-Framework-Part-1-Criteria</link>
				<description>
				
				&lt;p&gt;Over the course of a few years, I gradually let my JavaScript skills atrophy. My programming partner had more interest in it than I did and so it seemed more efficient to have him do more JavaScript work than I did. That, of course, led to him becoming more efficient at it. A reinforcing cycle quickly ensued.&lt;/p&gt;

&lt;p&gt;A little over a year ago, I realized that the pattern had gone too far and decided I needed to slowly start doing a bit more and build those muscles back.&lt;/p&gt;

&lt;p&gt;As I have been regaining those skills, I&apos;ve noticed that our JavaScript is less organized than I would like.
				 [More]
				</description>
						
				
				<category>JavaScript</category>				
				
				<pubDate>Tue, 07 Jan 2025 10:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2025/1/7/Seeking-a-JavaScript-Framework-Part-1-Criteria</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Connecting to Rate Limited Services in ColdFusion</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2021/2/10/Connecting-to-Rate-Limited-Services-in-ColdFusion</link>
				<description>
				
				I often need connect to APIs. These APIs often have usage limitations. Specifically, they have rate limits. That is to say limits on the rate (frequency) with which you can use their APIs.

This means that any code that calls an API needs to know what do in the event that it is at risk of violating that Rate Limit - ideally before (and instead of) doing so.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Wed, 10 Feb 2021 10:30:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2021/2/10/Connecting-to-Rate-Limited-Services-in-ColdFusion</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>HTTPRequestLogger.cfc</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2021/1/27/HTTPRequestLoggercfc</link>
				<description>
				
				Like a lot of developers, I we make a lot of external API calls. One thing that can come up when dealing with outside vendors is that sometimes the API connections don&apos;t work as expected. On those ocassions, the vender will ask us exactly what data we sent them.

I always want to know the answer.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Wed, 27 Jan 2021 10:30:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2021/1/27/HTTPRequestLoggercfc</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Return a list of related records in SQL Server</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2020/10/21/SQL-Server-Lists</link>
				<description>
				
				I absolutely love SQL (especially SQL Server) and I love how I continually find new ways to solve problems with it. I wish I could remember where I first found this tip to give proper credit, but I really love it.

Have you ever wanted to return a comma-delimited list of records in SQL Server? It turns out, that it is actually pretty easy to do.

For example, if you have users that can work in multiple regions and you need a list of which regions they work in.
				 [More]
				</description>
						
				
				<category>SQL</category>				
				
				<pubDate>Wed, 21 Oct 2020 10:45:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2020/10/21/SQL-Server-Lists</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Safer and More Dynamic ColdFusion Page Caching with cf_MrECache</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2020/10/14/cf_MrECache</link>
				<description>
				
				I looked at &lt;cfcache&gt; quite a while back and I liked the idea, but it lacked a little bit of flexibility that I wanted in pursuit of my &lt;a href=&quot;/blog/index.cfm/2020/10/7/caching-strategies&quot;&gt;caching strategy&lt;/a&gt;.

I recently covered &lt;a href=&quot;/blog/index.cfm/2020/9/16/Caching-in-ColdFusion-with-MRECache&quot;&gt;MRECache&lt;/a&gt; and now I&apos;d like to briefly cover a custom tag that is built around it.

At its heart, cf_MrECache just wraps up a block of text (HTML or whatever) that you want to cache and caches it just like cfcache, except that is uses MRECache under the hood. Of course, if that were all that it did then it would hardly be worth making in the first place.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Wed, 14 Oct 2020 11:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2020/10/14/cf_MrECache</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Thoughts on Caching Strategies</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2020/10/7/caching-strategies</link>
				<description>
				
				I&apos;ve been thinking about caching strategies for different scenarios lately. I wanted to write down a some thoughts on what seem to have been working for me. Hopefully this will help me organize my thoughts and maybe others can help tell me if my thinking makes sense or if I am missing something.
				 [More]
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 07 Oct 2020 13:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2020/10/7/caching-strategies</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Pluralizing in ColdFusion</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2020/9/23/Pluralizing-in-ColdFusion</link>
				<description>
				
				A few (ok, ten) years ago, I needed to generically pluralize English words in ColdFusion. Also, I wanted to be able to reverse that out (&quot;singularize&quot; as it were). This should be a really easy problem: If it ends with an &quot;s&quot; then add &quot;es&quot;; If it ends with a &quot;y&quot; then ditch the &quot;y&quot;; Otherwise just add &quot;s&quot;. It turns out, though, that English is delightfully complicated.

So, Pluralizer.

I created it ten years ago, and I&apos;ve used a fair number of times since. It isn&apos;t complicated enough that I&apos;ve needed to update it much in that time.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Wed, 23 Sep 2020 09:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2020/9/23/Pluralizing-in-ColdFusion</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Easy Caching in ColdFusion with MRECache</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2020/9/16/Caching-in-ColdFusion-with-MRECache</link>
				<description>
				
				I avoided dealing seriously with caching for more of my programming career than I like to admit. Perhaps the old saw that &quot;There are only two hard things in Computer Science: cache invalidation and naming things.&quot; (Phil Karlton) held me back.

Beyond that, though, I think I always had a sense that I didn&apos;t like the approaches that I found.

A few years ago, however, one of my clients started looking ahead to a major increase in traffic along with an increase in complexity. So, I needed to look into caching.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Wed, 16 Sep 2020 09:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2020/9/16/Caching-in-ColdFusion-with-MRECache</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Implementing the Observer pattern in ColdFusion with Observer.cfc</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2020/9/9/Implementing-the-Observer-pattern-in-ColdFusion-with-Observercfc</link>
				<description>
				
				Often I want to respond to events in a component, but I don&apos;t want it to need to know anything about the component that is taking action on it. This is often when I am using a generic component on my site.

The Observer pattern is perfect for this.

I didn&apos;t find an existing Observer implementation in ColdFusion that I loved and I wanted to try my hand at it, so I created Observer.cfc.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Wed, 09 Sep 2020 10:30:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2020/9/9/Implementing-the-Observer-pattern-in-ColdFusion-with-Observercfc</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Beany.cfc: Part 2</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2019/5/22/Beanycfc-Part-2</link>
				<description>
				
				I wrote earlier about my Beany component for handling Beans (especially immutable ones) easily. I thought this time I&apos;d just cover a few extra little features that I&apos;ve added to it to make it a bit easier to use.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Wed, 22 May 2019 07:30:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2019/5/22/Beanycfc-Part-2</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Beany.cfc</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2019/5/8/Beanycfc</link>
				<description>
				
				Despite not being a big fan of Beans generally, I do find that there are situations in which they are useful. One of those is as configuration objects to pass in to a component. I can add the data in one packaged set.

In reading about Clojure recently, one of the big advantages of Clojure is immutable variables. I wouldn&apos;t want immutable variables in ColdFusion all of the time, but it would be really nice sometimes.
				 [More]
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>com.sebtools</category>				
				
				<pubDate>Wed, 08 May 2019 09:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2019/5/8/Beanycfc</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Git Branching Strategy for Web Development</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2015/11/9/Git-Branching-Strategy-for-Web-Development</link>
				<description>
				
				There is no doubt at this point that Git is a successful version control system. GitHub is, so far as I can tell, the most popular place to host open source code. There are several popular software programs for managing Git and two very popular Git branching strategies.

Each of the two most popular branching strategies that have I seen does a great job of solving the problem for which it was created. &lt;a href=&quot;https://guides.github.com/introduction/flow/&quot;&gt;GitHub Flow&lt;/a&gt; is great for open source projects. The basic idea is that work is done via cloning and merge requests.
				 [More]
				</description>
						
				
				<category>Git</category>				
				
				<pubDate>Mon, 09 Nov 2015 16:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2015/11/9/Git-Branching-Strategy-for-Web-Development</guid>
				
			</item>
			
		 	
			</channel></rss>