<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Steve Bryant - com.sebtools</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 22:45:18-0500</pubDate>
			<lastBuildDate>Wed, 10 Feb 2021 10:30: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>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>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>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>Finally Biting the Bullet on Git</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2011/7/26/Finally-Biting-the-Bullet-on-Git</link>
				<description>
				
				OK. I am finally going to bite the bullet and start using Git. This has been on my to do list for a white, but I haven&apos;t found the time. So, instead of finding the time I am just going to move open source projects that are currently on subversion over to &lt;a href=&quot;https://github.com/&quot;&gt;github&lt;/a&gt;.

My plan is that I will then learn Git by necessity. We&apos;ll see how that works. It is a little scary to just jump in like this, but I have yet to just &quot;dip my toes in the water&quot; so this seems the best way.

That being said, if anyone has any suggestions for best ways to learn Git as I go or tools I can use to make this easier, I am eager to hear about them.

I have a Git repository set up for the &lt;a href=&quot;https://github.com/sebtools/com.sebtools&quot;&gt;com.sebtools&lt;/a&gt; package and for my &lt;a href=&quot;https://github.com/sebtools/Neptune&quot;&gt;Neptune framework&lt;/a&gt; already. More coming very soon.

Here&apos;s to jumping in with both feet! I&apos;ll try to blog about my progress.
				
				</description>
						
				
				<category>Productivity</category>				
				
				<category>Git</category>				
				
				<category>com.sebtools</category>				
				
				<pubDate>Tue, 26 Jul 2011 11:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2011/7/26/Finally-Biting-the-Bullet-on-Git</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Scheduler Program</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2011/4/19/Scheduler-Program</link>
				<description>
				
				One thing that I run into frequently in my programming life is the desire to schedule events. I like CFSCHEDULE, but by iteself it has a few limitations that I don&apos;t like. It is a bit limited in the intervals available and I have to have an HTTP page set up for it.

What I want is the ability to schedule a CFC method to be run directly from that CFC. Fortunately, &lt;a href=&quot;http://www.bryantwebconsulting.com/blog/index.cfm/2007/6/5/schedulercfc_10_beta&quot;&gt;Scheduler.cfc&lt;/a&gt; allows me to do just that. Scheduler.cfc itself still requires a scheduled task to run it. Scheduler.cfc also has the ability to report data about the scheduled tasks that it has run, but (as it is just a CFC) it doesn&apos;t have a UI to report that data.

The Scheduler program solves both of those. It is essentially a wrapper for Scheduler.cfc. When the program is installed (copying it to a folder after &lt;a href=&quot;http://www.bryantwebconsulting.com/docs/neptune/installation.cfm&quot;&gt;installing Neptune&lt;/a&gt;), it automatically creates a &quot;/schedule.cfm&quot; and creates a ColdFusion scheduled task to execute it every 15 minutes (you can, of course change that). It also creates a page that reports all of the scheduled tasks running on the system as well as how long they execute (in seconds) on average, as well as the ability to see details of every time that they have run.

This information can be invaluable if you are trouble-shooting a scheduled task.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<category>Neptune Programs</category>				
				
				<pubDate>Tue, 19 Apr 2011 10:15:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2011/4/19/Scheduler-Program</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>com.sebtools Build 11</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2010/12/21/comsebtools-Build-11</link>
				<description>
				
				I just updated the com.sebtools to Build 11. I am really happy with the progress made here, but I think my version names stink. I can&apos;t figure out what to call versions of a package of loosely-related CFCs that have different versions themselves.

(&lt;a href=&quot;http://www.bryantwebconsulting.com/docs/com-sebtools/introduction.cfm&quot;&gt;What is com.sebtools?&lt;/a&gt;)

The last time I posted about a new build of com.sebtools, it was about &lt;a href=&quot;http://www.bryantwebconsulting.com/blog/index.cfm/2009/10/26/comsebtools-Build-8-FileMgr-and-Mailer-Updates&quot;&gt;Build 8&lt;/a&gt; and A LOT has changed since then. For a full list, see the &lt;a href=&quot;http://www.bryantwebconsulting.com/docs/change-log.cfm?program=3&amp;version=Build%2011&quot;&gt;change log&lt;/a&gt;. Here are some highlights, however, of just a few things that I think are really neat.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Tue, 21 Dec 2010 15:45:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2010/12/21/comsebtools-Build-11</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Manager.cfc and Elasticity</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2010/11/30/Managercfc-and-Elasticity</link>
				<description>
				
				Whenever I see any example saying &quot;See how easy this is!?&quot;, I inevitably think &quot;What happens when my needs differs a bit from the expected?&quot;. My worry is that I could start with a situation for which the tool is a good match and then things change a bit. Do I have to abandon the tool altogether in those cases? Basically, I always want to know how much elasticity any solution has.

More often than not, it seems, systems that are extremely efficient have very little elasticity (think of airline schedules where bad weather anywhere effects flight patterns everywhere). I think that the past several blog entries on &lt;a href=&quot;http://www.bryantwebconsulting.com/blog/index.cfm/2010/10/12/Super-Easy-CRUDFile-Management&quot;&gt;Super-Easy CRUD/File Management&lt;/a&gt; have demonstrated that the &lt;a href=&quot;http://www.bryantwebconsulting.com/docs/com-sebtools/&quot;&gt;com.sebtools package&lt;/a&gt; provides great efficiency for basic CRUD and file tasks. What it hasn&apos;t demonstrated (yet) is how elastic it is when the problem is more complicated than what com.sebtools is built to handle.
				 [More]
				</description>
						
				
				<category>CF_DMQuery</category>				
				
				<category>com.sebtools</category>				
				
				<category>DataMgr</category>				
				
				<pubDate>Tue, 30 Nov 2010 10:30:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2010/11/30/Managercfc-and-Elasticity</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>The Power of Arguments in Records.cfc</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2010/11/16/The-Power-of-Arguments-in-Recordscfc</link>
				<description>
				
				We have come a long way in our question to easily manage records and files. Taking advantage of the com.sebtools library, we have a single file that effectively provides a component for every table and methods for every basic action on that table. I would like to focus in a bit more on the API for these components now. Specifically, I would like to focus on how we can get the recordset we want - even for operators other than equality.

What we want is to be able to specify the exact recordset that we want - which columns, which rows, which pages - by passing in arguments. Ideally, we could do this just in our data definitions without writing any extra code.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Tue, 16 Nov 2010 10:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2010/11/16/The-Power-of-Arguments-in-Recordscfc</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Relating Tables with Manager.cfc</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2010/11/9/Relating-Tables-with-Managercfc</link>
				<description>
				
				Today we continue our quest to use com.sebtools to easily manage records and files in our example HR application. So far, we have &lt;a href=&quot;http://www.bryantwebconsulting.com/blog/index.cfm/2010/10/19/Basics-of-Managercfc-xml&quot;&gt;defined our data set with XML&lt;/a&gt;, &lt;a href=&quot;http://www.bryantwebconsulting.com/blog/index.cfm/2010/10/26/Getting-Data-to-Recordscfc&quot;&gt;gotten that definition into Records.cfc&lt;/a&gt;, and &lt;a href=&quot;http://www.bryantwebconsulting.com/blog/index.cfm/2010/11/2/MultiTable-Applications-with-ProgramManagercfc&quot;&gt;consolated our multi-table application with ProgramManager.cfc&lt;/a&gt;. The last step wasn&apos;t necessary for a multi-table application, but does make things nice.

What we don&apos;t have, however, is any interaction among our tables. We have Departments and Employees, but no relationship between the two. For this example, an employee can work for one (and only one) department.

There are a few pieces of information that are helpful for most of these sorts of relationships. We would like to know the name of the department for every employee (and perhaps a boolean indicating if that employee is in a department). We would also like to have the number of employees for any given department and a boolean indicating whether or not that department has any employees. Fortunately, &lt;a href=&quot;http://www.bryantwebconsulting.com/docs/com-sebtools/manager.cfm&quot;&gt;Manager.cfc&lt;/a&gt; can provide all of this for one short line of code.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Tue, 09 Nov 2010 10:00:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2010/11/9/Relating-Tables-with-Managercfc</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Multi-Table Applications with ProgramManager.cfc</title>
				<link>http://www.bryantwebconsulting.com/blog/index.cfm/2010/11/2/MultiTable-Applications-with-ProgramManagercfc</link>
				<description>
				
				Today is Tuesday, so it must be time to continue figuring out how to take advantage of the &lt;a href=&quot;http://www.bryantwebconsulting.com/docs/com-sebtools/&quot;&gt;com.sebtools package&lt;/a&gt; to manage CRUD and files in the easiest possible way.

So far, we have &lt;a href=&quot;http://www.bryantwebconsulting.com/blog/index.cfm/2010/10/19/Basics-of-Managercfc-xml&quot;&gt;defined our data set with XML&lt;/a&gt; and &lt;a href=&quot;http://www.bryantwebconsulting.com/blog/index.cfm/2010/10/26/Getting-Data-to-Recordscfc&quot;&gt;gotten that definition into Records.cfc&lt;/a&gt; but we have only been using one table. To be clear, there is no reason we can&apos;t continue to do things the we we have been doing them and still handle multiple tables. It is only that we would have to have a separate component for each table.

Not only that, but the goal is to have an &quot;HR&quot; application. It seems to be that it would be convenient to have the model for the application all tied together.
				 [More]
				</description>
						
				
				<category>com.sebtools</category>				
				
				<pubDate>Tue, 02 Nov 2010 10:30:00-0500</pubDate>
				<guid>http://www.bryantwebconsulting.com/blog/index.cfm/2010/11/2/MultiTable-Applications-with-ProgramManagercfc</guid>
				
			</item>
			
		 	
			</channel></rss>