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.


ColdFusion
React
Apache Web Server
MySQL

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.

ColdFusion

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.

React

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.

MySQL

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.

CRAM

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.

Wednesday, August 29, 2018

The More The Merrier

I just wanted to put a quick acknowledgement out there about a recent blog article that I encountered about a company putting ColdFusion to use for their products.  More specifically, they're using the Lucee Server CFML engine.  Check it out and read about the benefits they get out of a professional development environment that quickly helps users master their finances.  You can read the article at

 https://blog.debtdecimator.com/debt-decimator-and-lucee/

Monday, August 27, 2018

Is ColdFusion a Secure Option for My Startup?

ColdFusion has been around the block a time or two.  It's seen ups and it's seen downs when it comes to implementation.  From version to version, ease of use versus security has always been an important consideration.  From the early days of the web when security was important, but not the primary factor, ColdFusion implemented security components. Some made you feel good, but didn't offer what you hoped.  Other security tools were there, but developers didn't use them properly. Unfortunately, hackers have been poking at CF since the beginning. The fortunate news is that Adobe and the CF community has been listening and responding. As of today, ColdFusion is at the top of its game when it comes to security, so your startup should be ready to take another look at the advantages of rapid application development balanced with modern security methods.

The Past


When ColdFusion was first developed in the early days of the web, it was the wild west of things.  As long as you knew some HTML and how to upload a few pages to a host server, you were considered programmer material.  Adobe ColdFusion (or rather the original developers, Allaire) saw the advantages of offering a fast environment for developing web pages that easily interacted with databases and processed forms. This was embraced by a world that was moving quickly. Unfortunately, with great power came great responsibility, and many early developers didn't have the advantages of security training that are available today.

As a consequence of a lack of security standards and methods, ColdFusion was vulnerable to a number of attacks that made headlines.  The smallest efforts, such as sanitizing their database inputs or locking down a port or two were often overlooked, and ColdFusion was blamed.  Sometimes justifiably, though certainly developers who didn't know what they were doing had more than their share as well.

When ColdFusion eventually became a part of Adobe, a company focused on web marketing tools, the focus on security of a full web environment suffered as well...for a while. Bad PR led many to look to other options.  ColdFusion was the easiest target to blame for many hacker attacks.  Some were due to a fault in the architecture, but lessons were learned.  From those lessons came a stronger platform for web development and security.

The Present


Today, ColdFusion is as viable an option for developing your company's web based tools as any, even more so than some. With years of experience in developing the ColdFusion product and related products, modern CF hasn't had any headline grabbing issues in years.  The newest option, open source CF engine Lucee, also has the advantage of being designed with security from the start. All that being said, it is still on the application development team to do their due diligence and make sure they're following best practices and avoid the complacency that often accompanies a product that works so well.

Points to remember:


  • Stay up-to-date with your product if any new updates are released for your version.  Support for a version from Adobe has a shelf life of around 6-7 years for the most part.  Not too bad.
  • Keep up to date with your hotfixes.  A patched and tested web service is something you'll always need to have, no matter the platform.
  • Use server monitoring tools.  Today's world offers more web services that monitor, analyze and threat detect than ever before, so supplement your CF.
  • Use HTTPS.  Today, it's pretty much the standard thanks to Google, but make sure your applications that aren't indexed are just as well using SSL or TLS.
  • Remove the factory setting for admin access.  ColdFusion has a great administrative interface, but it's something you want to make sure only you can access.  Whether that means blocking access by IP or disallowing access from your web server, do it.
  • Intrusion detection.  That may not necessarily be at the CF level, but prevention is worth an ounce of cure.
  • Sanitize all your CF form inputs and verify any database arguments before they can even reach your DB code.
  • The latest edition of ColdFusion (CF2018) has handy new performance monitoring tools that accompany standard and enterprise editions of the software.  Use it to watch for any unusual spikes of activity and keep notifications on.
  • Continuous deployment.  This is probably more directly tied to your code than ColdFusion, but security is everyone's responsibility.
  • Finally, test, test and test again.  In today's world, you don't rely on one or two technologies to be a great web service.  From ColdFusion to Javascript, CSS, cloud hosts, application servers, web servers, downloaded Docker containers and more, much more, you need to make sure everything works together on a daily basis.  

The Future


Obviously, technology is an ever changing thing.  What is relevant today may be a minor point tomorrow.  What is a virtually insignificant factor today may become the Achilles heel of your company. So, keep up on what's going on in the tech environment related to your startup.  Maybe the temptation is to pass that off to your tech people and focus solely on your executive strategy.  As the one in charge, that is your right, but do so at your own peril.  Even if you're a pizza artist who only takes orders online and has pizzas delivered by UberEats, you're still in the tech business, too.  While pizza artists may not be coding their own web GPS displays in ColdFusion, just like that pizza guy, you want to know your technology for your startup.  ColdFusion is just one option, but it's a pretty good one that can securely take you into the future.

Keep asking questions of yourself and your company.  What security issues are likely, and what are unlikely.  Then, remind yourself that the unlikely scenarios are actually pretty likely. Adobe ColdFusion has the benefit of a multi-billion dollar software company behind it to respond when security issues affect CF, as they have shown.  Lucee has the agility and open source nature to give you the control over every aspect of your security if you wish.  Evaluate and take advantage of these as you see fit.

In Conclusion


ColdFusion has had a mixed past with security.  Today, if you look online hard enough, you'll find plenty of old news stories of attacks and vulnerabilities related to CF as it has matured through the years, just like most technologies.  Just know that CF has responded to fix issues it has had, just as any responsible company would.  If you want fast, and secure, you get that with CF.  That's not to say you can let your guard down as a startup leader, but it's good to know that you can get ease, speed and security in one great platform.

Monday, August 20, 2018

ColdFusion in the Cloud

Something you need to consider once you've decided you want to use ColdFusion as your platform for building your business is how you'll set it all up. There was a time when it was a pretty straightforward decision because you had limited options.  Basically, you could buy a hardware server and install ColdFusion behind a web server using a license you bought from Adobe.  Otherwise, if you found a reliable CF host, you could go that route and leave the maintenance to someone else. As with any IT solution, there are a lot more details involved, but I'm sure you get the idea.  Your business relied on investing in and maintaining your data center or hoping the host you chose knew what they were doing when trouble came to town.

These days, you have many more options with how to set up your ColdFusion environment for efficient use of resources, reliable up-time and security.  That isn't to say that all of these will come cheap, but what's nice is that you can be in control of the costs as much as you want...down to the second.  While you can still buy your servers and install your own CF apps, it is nice to have choices.  The best option these days for the right balance of price and reliability is the cloud. Microsoft Azure, Amazon Web Services (AWS), Google Platform, Digital Ocean, etc are all options that let you do things like set up a VPS or host Docker containers that have your applications built in.

VPS


A VPS is a virtual private server.  It's basically a virtual machine that is segmented for your use from a cloud provider.  It's like a full server, but you don't have to worry about the details of a hardware based machine.  Depending on what sort of managed approach you take, you may still have to be the one who worries about updates, security and data archiving, but at least you're not having to call on some poor, overworked soul at 1am to come in and change a failed hard drive only to find out no one backed it up since three failures ago.

With ColdFusion, you can install it just like it's on your own physical machine.  You can use the Adobe ColdFusion installation package or the Lucee installation option.  Depending on the OS, you can set up CF behind a web server and you're ready to start.  That may mean handling all the configurations, but other than hardware, you have the same level of control as you would get with  your own box.

Containers


The latest option for the modern CF enthusiast is using containers.  Usually, this will mean a Docker container with your CF application image built in.  While Docker is pretty much a VM approach as well, it's done in a way that you can put all the components you need into a virtual box (a container) and Docker takes care of letting your application interact with the system on which it's hosted.  It's like putting your fish tank on a shelf.  You supply the fish you care about and put them into a standard fish take and put it on the shelf to be admired.  You don't care about the shelf it sits on because it's the fish that matter.  The same goes for you application.  This means you focus your time where you really want and make sure you can innovate as quickly as you need to.

In Conclusion


These are just two options you can look into that are readily available in the cloud.  With many companies already well established on these platforms, you can be sure that you're not dealing with untested technology.  As a startup, you need to get going and get going quickly.  ColdFusion is just one quick option to get started, but also deploying on to an environment where everything is built as you need and you control the cost is just another quick step toward success.




Thursday, August 16, 2018

Considering your CF Engine

One of the things I've been thinking about as of late is exactly which flavor of ColdFusion I should be using for my startup.  These days, the options are pretty much Adobe ColdFusion or Lucee Server.  There is also the OpenBD CFML engine, but as far as I can tell, development is no longer active on it, which is a shame.  From its start in the BlueDragon days, OpenBD was a pretty reliable alternative when no other existed.

When it comes to deciding on which server will provide the sort of use I'm looking in a business, the following are my major consideration:

  • Price
  • Support
  • Scalability
  • Future Proofing
Price

When it comes to Adobe ColdFusion, price has been a major issue for some time now.  As a developer, many of us look for options that we can practice with and implement on our own.  This is a big reason why open source software is a big draw.  Unfortunately, Adobe ColdFusion has a pricing structure that was never a great incentive to developers who can't look past price when it comes to learning a platform.  From a business standpoint, this is also an issue, but not one that should disqualify ACF right out of the gate.  The two tiers of ACF are the standard edition ($1,499) and the enterprise edition ($8,499).  For a small business that is software focused, the standard edition's price tag is actually not that bad.  Just like many things you buy for a startup, the ACF platform is an investment.  For the price of two usable laptop computers, you have access to rapid app development, a huge library of tools from report generation to .NET integration and more.  The enterprise edition is even better if you have to handle multiple instances.

Lucee server is an option that is much nicer to the pocket book, at least on the face of it.  Lucee is an open source CFML engine, and a very good one at that.  As an fork of the Railo CFML engine, it has been actively developed for a number of years and has grown a knowledgeable community who not only embrace the open source software approach, but who seek to move the applications forward into the realm of modern development practices in a way that a  larger corporation can take time to do.  Also, as an open source project, you're able to adjust the software as needed if it came down to that, but thankfully the development is on-going and I've seen new features come up with each version that make Lucee very attractive.

Support

Adobe ColdFusion is, obviously, an Adobe product.  This is one of the big draws that have helped it over the years when it comes down to selecting a product partner.  With each new version, which have a release cycle of about two year per, a generous support period of around 7 years is not unusual.  This is great news for a startup, especially since it means that there will be someone to call on and active patching and updates to accommodate growth.

Lucee does have a level of support as well, though it is not as formal as ACF.  With tons of group posts and slack channels to engage with current developers, answers and help with Lucee and realted issues are usually pretty close by.  From a developer perspective, that's great, though from a startup perspective, the unpredictable nature of support can be a turn off.  In the end, though, a good CF developer can find the solution at a cost of additional time.  Then again, support from a major corporation is no guarantee that you'll get your product up and running more quickly either.

Scalability

When it comes to scalability, I'd have to say that Adobe ColdFusion and Lucee Server are on similar levels for a startup.  If you use ACF standard edition, you get the engine and integration with the Apache Tomcat app server right out of the box.  With Lucee, you get the engine and a host of available open source options for the application server at your disposal.  From Apache Tomcat to Wildfly to JBoss, there are plenty of scalable Java app servers you can choose from.  All you have to do is deploy your Lucee WAR file onto your application server and you're good to go.

Future Proofing

As a startup, one of the things you should consider is how your software platform will be working years from now.  One thing to remembers is that changing your platform after it has been doing its job for a couple years is no small task.  If you choose a software solution, particularly a custom solution, you'll need to remember that the cost to switch is far more involved than the cost of the software.  From development time to possible customer disruption, you'll encounter a lot more than you can actually plan for right out of the gate.  So, making sure your software is going to stick around a while is important.  As mentioned before, Adobe ColdFusion has had a release cycle of a couple years, and with that comes support.  At this time, Adobe CF hasn't slowed development of their platform, though they have plenty of room to grow to keep up with the latest developer architecture and buzzwords.  From a startup standpoint, ACF is pretty future proof, at least for the foreseeable future.

Lucee Server, is an open source project.  Unfortunately, Lucee came about as a forked project due to a number of issues with Railo.  For all intents and purposes, Railo is dead, so if you had started with that brand, you'll have had to change to Lucee.  The good news is that Lucee was all Railo under the hood, so transitioning wasn't too bad at all.  The only reason I bring this up is that it may give pause to think that this line of CFML engine was once in trouble.  Today, from a startup standpoint, I don't believe it's on any sort of similar course that should prevent the use of Lucee, but as with any open source project, it'll be something to consider.

In Conclusion

These issues are all ones that have been rattling around in my mind as I consider the options available for my startup.  Both servers have made great strides in the last couple of years to change CFML from the "dying" language is was to a modern platform that is not only comparable to stacks like .net or node.js, but can beat them in many areas, especially as a mature technology. Personally, I've had experience enough with both technologies to know that great effort has been put forward to keep them very compatible, but there are differences that you'll have to test for if you plan to start on one platform and move to the other.  Consequently, that is my startup plan at this point.  Startup with Lucee and move on to the powerful REST and containerization options that Adobe is cooking up for this version and the future ones. 

Saturday, August 4, 2018

Welcome to the CFStartup Project!

What's all this about?  Well, it's my attempt to break away from the 9-to-5 and start up my own business.  The details of the business will develop over time, but I do know it'll have a significant development component.  What do I want to use for my development environment?  As you may have guessed, I'm using the ColdFusion platform.  This blog is all about my attempt to show that ColdFusion still has a place among the modern developer toolset.

Today, there are at least a couple flavors of CF that a startup can choose from.  Along with the decision whether to use Adobe ColdFusion or Lucee server, there are a number of development styles, cloud services, and frameworks to choose from.  As my new business venture launches, I'll describe what works for me and why.

So why go through this?  Well, CF hasn't had the greatest public relations lately, but it still has its place along side the more popular web application platforms.  It's not a perfect solution, but nothing is.  It is at least a mature technology that has made great strides over the last few years to simplify MVC, microservices, REST APIs, and more.

If you haven't used CF in a while, now is a great time to take another look at this great addition to the developer toolbox.  With the rapid development capabilities CF has always had, along with the latest modern development tools, a startup can go pretty far. Time to put my money where my blog is.