Tuesday, September 25, 2018

APIs Are Key - Connect With Your Market, Connect With The World

If you're using ColdFusion in your startup, one of the questions you should be asking yourself is if you're making the most of it. ColdFusion, like many other tech platforms, is useful in so many ways, and the number of ways seems to keep growing every year. One of the most important aspects of technology is communication, and that's where ColdFusion rocks! Data flowing back and forth quickly and easily is not only the basis of business, but it's fast becoming the basis of everyday living. One of the best ways to get your startup moving in that direction is to use CF to build your company's API (application programming interface). You need something that serves your data to your customers as well as allows you to benefit from other business services, too.

What Is An API

As mentioned, API stands for application programming interface. Basically, it's a standard set of programmed functions that you expose publicly, or privately, through a server that, when called by another program, makes something happen. Similar to you opening up a web page, your browser is sending a request to a web server that requests data associated with the URL you entered. Just as ColdFusion can be used to serve a company's website, the dynamic programming nature of CF can be used to send back data that is pulled from your database and formatted in any number of ways for you as a consumer. So, an API is your best option to share your data with customers who need it, or fulfill a request that helps make your customer's life easier. It's the modern communication standard that shows no sign of stopping.

There are different types of APIs available from RPC (Remote Procedure Call) to REST (Representational State Transfer) or any other SOA (service-oriented architecture) style setup, but those details are a bit more involved. For simplification, we'll use a REST API as the primary example of what you'll want to incorporate into your business. That's because at its core, a REST API is pretty much a URL request where you don't get back a web page, but rather you get back a serialized, formatted file (JSON, XML, HTML, etc.) that any third party app can use to interpret the results. REST is also a popular approach these days, but that doesn't mean it's the ultimate answer for everything.

Why Use An API

Do you have a product to sell? You can fulfill an order through an API. Do you have inventory you need to monitor in real-time, just have your app make a request by way of your API so everyone is up-to-date on what's available. Whether you're adding employees to your record system or checking blockchain mining results, your programmed API is the way to go. In a world where new devices are being brought to the masses almost daily, you want to have an interface for those devices that works if a request is coming through a smart refrigerator or your phone.

So, that's all well and good, but you may now be asking, "How can I get one of these wonderful APIs for my startup?" The best answer may be that you make it, or at least your developers do. Luckily, ColdFusion has been on top of the API game and kept up with the modern architecture needed to rapidly create your API. From roll-your-own options to pre-built building blocks that you simply have to put together, ColdFusion is an environment that makes processing your customer's requests quick and easy. It also makes development and maintenance less of a headache as you grow.

ColdFusion And APIs

If your startup idea were to create a veterinary records service based on blockchain, ColdFusion could easily be a way for veterinary office management software to do a URL request to your CF server, validate a pet's medical history and serve up the results, ASAP. ColdFusion, Adobe and Lucee engines, have administrative dashboards that make setting up REST paths easy for you. You have to concentrate on developing the business logic, but once your idea is in place, you can put it out there for the world to use, or just your office area.

Along with the ColdFusion built in tools, modern CFML has plenty of frameworks you can implement for even greater control over your content. From REST development frameworks such as Taffy, ColdBox and Preside to FW/1, there are plenty of good frameworks to build out your REST APIs in proven, maintainable methods.

While this post isn't going into all the detail of creating the API for you, a few resources to explore further are available.

Adobe ColdFusion:

Lucee Server:

Make Your APIs Better

So, now you may have an idea of how to get set up with your own API and why it's one of the essential things you'll need to do with a modern startup. Whether your startup is based on blockchain or bicycle chains, you'll need to consider how you get your business message out into the world and how the world can reach you. Even if you're just marketing with social media, knowing how to use their APIs is a first step to mastery of the tech to please your customers. Some things you'll want to keep in mind when creating an API are standardization, maintenance, documentation, discoverability and scalability. An API is more than just a web page for devices. Using a framework that enforces industry standards will go a long way towards allowing others to easily help build up your company through third party apps and plug-ins.

Following modern programming practices is also important because you may not know how many developers will need to know your platform over the years. Documentation is also essential.  APIs should be created so they are usable with minimal training. Using a tool like Swagger to build your API will help on many levels when it comes to documentation and design. Discoverability is related to the documentation and design aspect of your API. Using only the hypertext nature of a REST result, a consumer application should be able to know how to traverse your API's functions from the root without additional special instructions. While this may be more important for a RPC APIs, making sure your REST API follows industry standards will go a long way towards getting users to trust what you have to offer.

Finally, scalability is something you'll need to take into consideration as well. Whether you have a few users a day or a million, you'll want an design an infrastructure that can accommodate them all easily. Whether this means building an additional API gateway will be up to you. The ColdFusion API manager can help take you along the path, but if you're planning for enterprise scale, that'll be something to look into from the start.

Connect With Your Market

Ultimately, what you do with your API is going to be up to you. Just like any new business venture, there aren't any hard rules that guarantee success. You could build a perfect API, but if it's not the kind that your customers want, then it might as well not exist. Your API should help you connect with your market. If that's users in the general population or other businesses, building a means to connect is always to your advantage. If you don't have an API today, maybe you should think about areas that you'd like to enhance your startup and consider how an API can help. Once you have the tools in place and set up right, expanding your market share will be significantly easier.

Monday, September 17, 2018

Your Startup and ColdFusion - Why Open Source is the Way to Go

The first thing that usually comes to mind when open source software is brought up is that it's free.  Yay! There are different interpretations of what "free" means to your business. From the free operating systems to free CRMs and free bookkeeping software, open source has plenty of options these days. If you can't quite afford to buy Office licenses for all your employees, you can consider the open source LibreOffice option. In this way, getting up and starting your business means you're not limited by your account balance like you used to be.

Use Open Source

On top of the free stuff, there are certainly other reasons to consider the use of open source software in your startup.  For example, the total cost of ownership can be significantly decreased. This may take a bit of planning before hand, but that's what a startup is about. Rather than buying a new Windows license for all your employees to upgrade every few years, you might become a Linux company and have your IT group roll out upgrades that save you time and money. Also, depending on the types of applications you use, you can take advantage of creating a more modular architecture. Instead of being a monolith of a company, why not break up a centralized system to something that can be quickly re-implemented should there be a crisis in one area of your business?  For example, why not have multiple systems that hold your marketing landing pages, your client portal, your report generator and other online options on multiple open source servers rather than one server that can go down in the middle of the day?  All for the cost of your hosting platform only.

Open source software is also great when it comes to transparency and security. Your first reaction may be to say, "Oh, really?!" Yes, really. When you use truly open source software one of the defining attributes is that you have access to the core software code used to build the app.  You, and everyone else, have the option to see how any of your data is used.  If something looks a bit sketchy, or a bug pops up, someone can bring this to the attention of the software maintainers as well as the community. So, while you might not be inclined to review every line of the code of your next CMS, if it's open source, you can. 

Using open source also makes you part of a community.  Just like your own neighborhood community, your participation can be as much or as little as you'd like. It's always a good idea, though, to try to be a community member in good standing. As your company grows, the community you relied upon to help use your software can look to you as an example of what can be achieved. Also, if you're lucky enough to have your developers participate in the open software community, you can bet that knowledge sharing will increase.  Why let your tech knowledge base stagnate on old methodologies? 

Now, how about open source and ColdFusion? For a large part of its history, ColdFusion was known as the web app server you paid hundreds to thousands of dollars to use. For reasons, legitimate or not, Adobe (/Macromedia/Allaire) ColdFusion was never one to consider jeopardizing the quality of their platform offerings and support by breaking them up in a way that could make key components free for businesses. So what did many developers and businesses do? They looked to other open source options. Now, though, CFML can be served up by more than just Adobe CF. So, if you're looking for open source CF, Lucee Server is your answer.  If you're looking for open source package management (CommandBox), API frameworks (Taffy, ColdBox, etc.) or content management systems (ContentBox, Preside, Mura, etc), then  CFML has you covered. Bear in mind that all these come from different groups of development professionals, but variety makes finding the solution for your business better.

Share Open Source

The next thing you'll need to consider is whether or not you want to open your own business source code. Whether you should or not is one of those questions you'll answer based on your experience with the process. If you consider all the software you have available to use that is open sourced, though, maybe that should give you an idea that it's not something you should ignore. In a world where information grows exponentially everyday, you just might need to consider alternative approaches to keep up with innovation.

Opening your source code is actually less of a business model decision and more of a process decision. Would you really make money on how neatly formatted your code is or what language it's written in?  Your startup will survive and thrive on meeting a real customer need in a way that beats your competitor. How do you do that? You use and maintain a code base that is developed fast and developed well. If you're part of a community that is actively wanting to help make the software you maintain good software, then all the better. Again, your value isn't the source code, it's in the business model itself. Software is a tool for a business, and open source is a process of shared interest that makes the tool better.

So what do you do? You decide what problem your software will solve and you build to that. The ColdFusion community has become, and continues to progress to, a place of modern developer thinking. Over the years, the opportunities to share in open source CFML projects has diminished, but that's certainly changed with some key figures in the CFML world. Lucee Association Switzerland, Ortus Solutions, Group, Blueriver, etc., are all great examples of organizations that have decided to take open source ColdFusion to a new level.

What to Watch Out For

Now, while you may want to jump on board the open source train, you have to also consider a few things. For example, are you comfortable that you're code is out for the world to see? By this, I mean, is your actual business model separated enough from your code that you're not unintentionally giving away trade secrets? That could be bad. On the other hand, if you're uncomfortable with you code because of bad coding style, maybe opening the code will make you consider best practices.  That would be good. Also, if you're relying on strangers to contribute updates and bug fixes, you better be on top of your testing, security and code review.  Again, though, these are parts of your company's process that you should always consider anyways. 

By that same token, if you're using a lot of open source code, be sure to test and have security practices in place as well, especially if you're working with extra sensitive data.  The good news is, if you need to build in better security, you can do it.  Maybe share it as well.

Finally, be aware of the license which you use to release your software and under which you agree to use third party software. You're making a business, and legal, agreement here, so you'll want to make sure you know where you stand. If the time comes when you want to sell your company, you'll want to know how your choices affect the value of the code you've used and modified.

Be a Part of Something

ColdFusion is on a path that takes advantage of so many modern elements. Open source is one of the tools that needs to be embraced to make sure that this great platform will continue to meet the needs of users down the road.

The world of startups is in a state of flux like never before. Luckily, the fundamentals are still a necessary part of building a successful company with a bright future. Even in businesses that seem to be built on speculation and serve no more purpose than to gather that next round of series funding, you should consider opening your source code.  It's a process tool that works to keep your code in check. In a techno-scape where transparency is maintained by making sure everyone is distributed a copy of everything, privacy will take on a different definition. Open source software will continue to be a part of that change for the better.

Monday, September 10, 2018

Don't Be Afraid Of The CF Word

I’m a developer/entrepreneur, and I like ColdFusion. There, I said it. Okay, it probably wasn’t a big secret here, but somethings just have to be stated. All that being said, I hope anyone out there looking to start a business with a fast, reliable and powerful technology behind them will be ready to do the same. Today, ColdFusion is pushed off as a niche environment that is dying more every day. While you’re not going to find CFML listed among the top languages in current use, here are some things to consider that can still make it the right choice of a development tool for your startup.

ColdFusion hasn’t died, it evolved

From its early days back in 1995, ColdFusion was created as an alternative to writing your code over and over again to accomplish a task. For example, you could quickly access a database in a few lines of code and not have to worry about creating new objects, opening your connections, passing your commands and credentials, and closing your connections to avoid memory leaks. This made it faster and more uniform to perform a common task. That idea spread to much of how ColdFusion worked, and that was a good thing. It made access to the world of web programming a reality for many.

Since that time, the same concept was applied across the capabilities of ColdFusion. In some instances it didn’t quite work out, but where it was needed, it did. The ColdFusion of today is about much more than a markup language that abstracts a few common tasks. CF became what it is today based on the original idea of Rapid Application Development, a term that still has its use for any startup. With a full and rich object oriented programming language like CFScript, a powerful markup based language like CFML, a powerful administrative GUI dashboard to keep all your instances in order, and a host of add-ons and packages, frameworks, and CMSs at your fingertips, ColdFusion became an all-in-one package for creating a web based service that can meet the needs of any startup. Since it’s all built on Java, you get the additional flexibility of implementing ColdFusion across multiple application servers and connectivity with multiple web servers to meet your needs.

ColdFusion is what you want it to be

One of the great things about ColdFusion today is that it is as much about a philosophy of getting projects done quickly as well as efficiently. With the possible exception of a powerful, open source and modern IDE, ColdFusion has everything you need readily available to make an idea a reality as quickly as you want. That is not to say that there are not other great tools that fulfill similar needs, but many of those will have proprietary limitations that’ll be a consideration for your budget. Do you want to run your service off of an in-house server? Obviously ColdFusion will have you covered. Do you want a cloud based solution that’s scalable and secure? Using ColdFusion will handle that too. Do you think you’ll need convention over configuration solutions that can be put together with under a requirement for behavior driven development? They can all be quickly implemented with modern CF.

Do you like a particular Java application server? Tomcat, Jboss, Wildfly, Jetty, etc? Go ahead and use the one you like to host your Lucee app. Do you have a particular web server that meets your desires? Apache Web Server, NGINX, IIS can meet your needs. Linux based or Windows? Sure. Containers? Why not?

The point is that ColdFusion isn’t something that locks you in as a developer and an entrepreneur. As a developer, you want something reliable. Eventually, you’re going to hear any developer’s opinion about the tech stack the other guy is using, or the stack they were forced to use. Opinion, though, isn’t what you’re building your business on. You’re building it on results.

ColdFusion gets the job done

If you have an idea for a web based application that you need to build quickly and scale efficiently, ColdFusion can get it done. CF isn’t going to be the right tool for each job, but when used for what it was intended, you’re not going to have a lot to complain about. Do you need to custom build your own ticketing system that’ll easily integrate with your web portal? CF is there. Do you want a system that reads in 5 gb log files and sorts lines based on category type instantly? Maybe CF isn’t the most efficient tool for that, but it could certainly be useful in making it accessible.

“Don’t use ColdFusion”

That’s what they’ll tell you, and it’ll be your choice to listen or not. “Developers will be too difficult to find.” Well, ColdFusion is easily taught because many options follow modern development practices and the coding style can meet your needs. “ColdFusion is dying.” ColdFusion hasn’t endured this long because it’s dying. Legacy applications alone wouldn’t justify the continued development of new options and modern frameworks. Somewhere, someone is seeing the cost analysis that says there’s still plenty of life in ColdFusion yet, so let’s build on that. “Your intellectual property will be more difficult to sell.” If the time comes that you’re looking to sell off your company, the power behind your process will have a greater effect than which language you wrote you killer app in. Integration may be an issue, but whose to say writing it in .NET Core will make you more attractive to a Java shop if they come calling?

We’re living in an age where you can speak to your house and ask for a restaurant recommendation and the house’s smart systems will use AI and machine learning based on your preferences and day of the week to tell you where to go. The next step will be that the house will call an autonomous car to pick you and your family up for a great night’s experience. While ColdFusion won’t be handling all of the development tasks, there’s certainly no reason your CF startup can’t be a part of that process flow.  So don't be afraid to use the CF word.  ColdFusion FTW!

Thursday, September 6, 2018

You Want To Get Your Statup Going? Then CRAM It.

Apache Web Server

If you have a startup idea, tech or not, you’re going to have to decide on a technology stack. Today, for almost any business to succeed and grow, technology is going to have to get involved. Why not go with a stack that offers the speed and reliability of one of the most established back end processing systems available. Depending on what you’re processing, CRAM may be your answer. From simple websites to a more complex microservices architecture, a CRAM stack may be all you need to quickly prototype, test and build out your next great solution. It also doesn’t hurt that you could even get access to all this technology for free from the comfort of your most comfortable chair.


Any entrepreneur has a lot of uncertainty when starting out on a new venture. Whether you think you’re going to follow a well established path or revolutionize an industry, you can only know so much. After all, if you only did what everyone else was doing, you’ll be lucky to keep up with the competition. That’s why reliability and speed are your competitive advantage with ColdFusion. As a rapid web application plat form that you can use for almost any web app you want or need, CF gives you a host of functionality packaged together that just work right out of the box. You want to generate PDF reports or process images by the hundreds? If it’s not mission critical, or even if it is, forget hours researching packages that may or may not meet your needs. Visual debugging tools, unit testing, task scheduling, etc are readily available with no more effort than typing out a CFML tag or CFScript function. And talk about reliability, ColdFusion has been doing all this from the start of the world wide web revolution.

The next issue is price. As an entrepreneur, you’re going to have expenses. No one said success was cheap. Lucky for you, the price you pay to get your startup up and running can go from a great value at a reasonable expenditure to downright free. In my previous post, Considering your CFEngine, I go over the options of ColdFusion engines. Adobe has a price tag that puts some people off at first glance, but as an entrepreneur, you know price ultimately comes second to value. Lucee Server may be your cup of tea if you love the power behind open source software and a community of developers helping to support you in your efforts.


Maybe you’re thinking, “Hey, ColdFusion sounds great for handling my online requests, but what if I want an unbelievable user interface?” Well, React could be just what you’re looking for. If you want to build a mobile website application with all the power and flexibility of a native web app, React is the JavaScript library that can help. A JavaScript libray is responsible for many of the wonderful effects and functionality you see when you go to a webpage. SPAs (single page applications) or PWAs (progressive web apps) or CNNs (:0) or whatever, React is the library that turns your customer’s browser into an interactive experience. All that power mixed in with a ColdFusion back-end can take you far. And that’s just the start. The browser wars aren’t slowing down, so imagine what you’ll be able to offer your customers when they look at their mobile device. If you can imagine it, you can either do it today, or will tomorrow. If you want an example of what you can do, check out the React Example Projects.

Apache Web Server

The Apache WebServer is an open source web server, that, like ColdFusion, has some history behind it. When you have ColdFusion and React covering your front- and back-end processing, you also need something that’ll serve up your result to your customers. That’s Apache Web Server.

As an entrepreneur, you don’t always know what you’re going to do with your technology right out of the gate. With Apache Web Server, you get the advantage of an open source web server that has faithfully served a majority of the internet for years as well as the advantage of playing with more options than you’ll ever really need. While that may be a bit overwhelming if you don’t know what you’re looking for out the gate, it’s still nice to know that if you have a new idea about how you want something to work, a reliable workhorse like Apache Web Server can be there to help. Performance, logging, security, a vast wealth or help resources and more are what make Apache Web Server a great option for your technology stack. And, again, don’t forget FREE.


Let’s not forget that the power in technology comes from it’s ability to serve up the data your customers want or help you hold on to the data your customers give you in exchange for your goods or services. The place you’re going to most likely store your data is a database. MySQLis an open source relational database management system (RDBMS) you’ll want to consider. It’s open source, but it’s powerful enough to handle enterprise systems, which is does. MySQL is a ubiquitous database that you’ll need to hold whatever data you have and process and retrieve it quickly. While there are a lot of different data query solutions popping up, from NoSQL to GraphQL, MySQL gives you the flexibility to take advantage of those or just use Structured Query Language. One of ColdFusion’s great advantages out of the box was interacting with a database in the easiest code ever. MySQL is a solid option today, and will be for a while to come. FREE.


As an entrepreneur, you walk the fine line between wanting the latest tech so you don’t fall behind and the established tech so you don’t have to bother reinventing the wheel. All the options above will help you take advantage of every way NOT to do something as well as provide the platform to grow from a one man shop to an enterprise solution. If you’re an entrepreneur who only has a passing knowledge of technology, you at least know the advantage of speed, reliability and a support community. CRAM has it all. If you’re an entrepreneur whose tech background is unsurpassed, you’ll probably have an opinion about this stack vs your favorite. But, as an entrepreneur, you’ll also realize that technology’s value isn’t in the label, it’s in what you get out of it. So, feel free to CRAM it.

Monday, September 3, 2018

How to Train Your ColdFusion Developer

There are two types of startup entrepreneurs.  Those who love, live and breathe technology and those who don’t.  Both kinds, though, will ultimately have to deal with training their ColdFusion developers as they come on board.  On the one hand, it’s a bit of a hassle, but on the other hand, it’s a chance to shape the culture and expectations of some of your most important resources, your employees.

Be A Guide, Not A Task Master

When hiring a developer, any developer, you’ll have certain expectations. Usually, those are spelled out on the job notice. The thing is, though, that until bots are fully designing and implementing your code, you’re going to have to deal with humans.  Humans have a great capacity for learning new things, particularly when allowed to fail and learn from those failures.  So, encouraging a new developer to bring up new ideas is a plus.  Obviously, few of those ideas will be grand slams until a familiarity with the environment is established, but it is still important to show the new employees what is expected, why it’s expected and how it’s done.  Then, find out if they have any questions. If they never seem to have any questions, ask them to explain the process back and listen to how they describe things.  This will be useful in knowing how your developer’s mind works and how you can work to their strengths.  Sometimes you may have to fall back on the “that’s just how things are done” argument, but only as a last resort.

How does this apply to ColdFusion? Well, unless you’re lucky enough to have access to the perfect ColdFusion developer right off the bat, you’re going to have to train them.  These days, there are tons of code out there that use CF that was written by less code savvy individuals than we’d like to admit.  The fortunate thing is that ColdFusion is a powerful development environment that is easy to pick up. Unfortunately, writing good CF code will take learning additional discipline since you’re not inherently forced into good coding practices to succeed.  Have your employee practice writing code that’ll accomplish a necessary task, then find out why they chose the process they did.  If there is a better way, bring it up.  An understanding of the code use in context will always be necessary.

Be Clear About Expectations and Provide Reference Materials

A ColdFusion developer, particularly a new one, may have a background in other programming languages. This is great, but it can also set up conflict surrounding the use of ColdFusion and why certain things are done the way they are.  Whether one is the ‘right’ way to do things is usually debatable.  It is at this point where it may be useful to have a company code style guide and standard operating procedure in a readily available place for reference. ColdFusion CFML and CFScript are loosely typed.  For a startup, this means that unless you have a reference that spells out what the expectations are, you may have one person using variables one way and another developer using it another way.  While it may work in production, the maintenance time in deciphering someone else’s intention can be costly.   The true value in code is less about the syntax itself and more about getting things done efficiently, but syntax elegantly implemented in a way that your current and future developers can read quickly is priceless.

As for reference materials, there are a number of websites available that can provide the CF specific documentation for syntax and processing. Learn CF In A Week, Try CF, Adobe CFML Reference, CFMLife, etc. are just a few.

Trust and Verify

When a startup is starting up, speed is the name of the game. This is one of the reasons a rapid application development platform like ColdFusion is valuable.  Being able to prototype functionality, build an application and test it quickly is one of the ways CF excels. As mentioned before, this is also something that’ll have to be reviewed before allowing your new developer’s code into production, or even the primary code base.  Code review and QA testing will need to be reviewed and enforced early on.  In many startups, your code is what your business is built on.  Making sure it follows standards and meets expectations before merging it back into your master code repository will be a primary concern.  You don’t want to have to hold your developer’s hand with every project, but creating and enforcing standards early on will go a long way towards keeping your code in check and helping newer developers work well within your organization.

Show Me Your Documents, Please

When you start training your developer, remember that you may have an easier time if there are multiple ways you can explain a concept.  What is means is, you should have your code’s documentation created and made available.  Sometimes a visual representation of the workflow helps to explain a process better than a wall of text.  Hopefully, when starting a development project, you have created some sort of explanation of what you’re looking for and what needs to happen within a program.  If these are created and kept up to date for maintenance purposes, be ready to share this.  If there is no documentation, then get some.  Some CF developers may not see the value in creating formal documentation, but an hour of writing may be what saves your company a day of code exploration during a crisis.

Finally, bear in mind that on boarding a new employee is a process that takes time.  Also, no one process will always work for all employees, but establishing a common baseline will go a long way towards keeping your sanity.  As a startup entrepreneur, you’re going to have a lot to think about.  If you’re not the one personally training new developers, you still should keep these points in mind and make sure that your lead is keeping things in check.