You can read the show notes and listen to the podcast here
Michael: Welcome back to the show. I'm here with Louis Majano otherwise known as Superman of the ColdFusion world because if you were into the box you actually saw him next to a Superman cutout where you could take his photo. But also, because he's just produced so much open source software, and really helped out the ColdFusion community. We’re going to be looking in depth in today's episode two things that he's been heavily involved in.
One is CommandBox which he created three years ago, and the other is ForgeBox. And why everyone listening needs to know about these things, and I strongly recommend, check them out. And we'll look at what the heck is CommandBox for those people who don't know what it is. And what the heck is a CLI and a REPL. Also look at how containers could be saving you time, and headaches in your ColdFusion development. Why there is no longer any need for node in your development, package management and also, we’ll look at why everyone listening should have a ForgeBox account. And there's a new kind of ForgeBox account of some of you listening may have been waiting for with bated breath if you knew it existed. So welcome, Luis.
Luis: Gracias, welcome very much Michael.
Michael: And he's also the founder of or to [inaudible] [01:16] solutions who do a lot of great stuff. It's not just him there's a whole bunch of guys; Brad, Gavin, all the people who I'm forgetting the names of in the second. But I will remember later.
Michael: So, suddenly three years ago you decided to create CommandBox, why?
Luis: I think that during that era you know, kind of circa 2013 or so. I think it was a kind of the Dark Ages for ColdFusion in my opinion. Really, really a lot of tooling for our language per say. Package management, operating system integrations and all the other new languages were really accelerating, and really just becoming very prolific. So, I think in that era in early 2010’s to the 2014’s, that's where you saw a lot of Exodus and some of the ColdFusion members because they were just kind of kind of fed up with the tool in place in all reality.
You know they were moving to other things like you know Jazz, kind of bright new Grails was big at that time was well. Mostly because of all these tooling that the Lakshya language offered. And I think that at that time, we really got very frustrated with that landscape and the obviously, the vendors cannot be blamed for everything, right. That they have budgets and things to do. But I think that in our case, we really wanted to take the lead and basically create the gaps that we were missing in terms of tooling. We had already you know several boxes at the time especially you know dealing with N.B.C. frameworks like Coal box. Testing frameworks like test box. That time, the new C.M.'s box that we have created.
So, we were starting to get a little bit of more momentum going in our group, so we have more hands on deck. And I just got tired of language shaming. I got tired of people started to say, “Oh you're still coding in that, right?” Or you know oh, ColdFusion that's so you know 20… 2000’s. So basically, we joined as a team. We created a retreat that we should do at the beginning of the year. It was in California. And we started specking out the initial versions of CommandBox. What we wanted in a C.L.I., what we wanted in terms of package management and just make ColdFusion developers really productive. That was where I’ll go.
Michael: Oh, well I'm so glad you did that because there's a lot of great things you can do with CommandBox. But for those who are listening who don't know what it is, what the heck is CommandBox?
Luis: Sure, so CommandBox was the first iterations what we're actually you know kind of proof of concepts that Mr. Denny Bowing had a long time ago in the rival days. And we kind of joined forces with Denny. We brought him onboard, and we came out tearing apart, and we started infusing it [inaudible] [04:22], and boxy stuff to kind of create command box. And in essence, CommandBox is a very thin Java layer that wraps the Lucee engine right now, and creates a headless ColdFusion environment for any operating system, right. All of it, like all the commands, all the way that CommandBox; the machinery around it is all built using ColdFusion which is something that we really wanted.
We really want to showcase a language at the operating system level. So the very thing Java layer is basically just a glorified class loader. It basically make sure that all the classes are loaded in order for us to bootstrap the C.F.M.L. language based on Lucee right now; Lucee 4. And then, we basically do everything even the shell all the ASCII heart, everything is C.F.M.L. And that was a big plus for us. We really wanted to showcase the language at the operating system level, and anybody … any C.F.M.L. developer can contribute. And that's what was important for us is that we didn't want to build it in another language. We wanted to build it in the languages that basically are composing Fusion which is Java and of course, C.F.M.L.
So that was the very techie description of how CommandBox is created. But in essence, it is a package manager. So, it would allow you to manage packages just like any other package manager in any language. Like Maven, or NPM, or [inaudible]. And is also a REPL which is a read-eval-print loop applications. So, it does allow you to actually test drive on the language itself. If you guys have ever used C.F. live or try C.F. I think it's both where you actually put snippets of code and you're trying things out. Well, imagine that having that availability at the operating system. So you have that capability to state. It has pretty much the essentials for a traditional ripple. It is also a C.L.R. which is a command line interface. So, we actually are able to attach our tentacles into the operating system very, very ingrained, and you can do anything with the operating system.
So you can create bash groups, you can create croon jobs, you can create services, you can create automations, you can talk to sockets, you can create a host of sockets, and server sockets. You have the full gamut of your operating system at your disposal, and you can even create mash ups with our commands with operating system buy ups; doing piping information from get into a command box C.F.M.L. or vice versa. So it is that huge integration with the operating system that we wanted. And then, the server aspects of it. So I think that's where we have made great strides even more than any language out there I would say venture to say in all reality.
Or what we are calling J.V.M. containers which allows you to actually create separate server containers that can be deployed on any directory in any port with any Java application. And one of those Java applications is of course ColdFusion language. So CommandBoxes is a whole lot more than just for C.F.M.L. And that's one of our big targets for next year is to start targeting even the other areas which is [inaudible] [07:50]. I think that we can definitely make improvements for Java developers as well in order to start server, stop servers, activate a V.M. containers, and so forth.
And we have a huge road map with the server managers to even create orchestration in the future, to be able to actually start up clusters of J.V.M. containers and manage them for you, and balance them for you. And of course docker you know of today's a world containers. So, the CommandBox has a CommandBox for docker image. That is very robust production ready for any C.F.M.L. engine or any Java application actually. So if you want to containerize your Java application, you can very easily with CommandBox.
Michael: And what that means for people is if you want to test out your code against C.F. 10, or C.F. 2016, or Lucee 4, or Lucee 5, you don't have to go and download and spend half an hour setting it up. You just tell CommandBox I want to run this code in this doc, or instance with that version. Then it downloads it, installs it for you, and runs it.
Luis: Exactly, exactly so you can leverage CommandBox for running any C.F.M.L. engine. And like I said any war so, if you have custom C.F. engines or you know you can Jenkins you can run Jenkins with CommandBox, ox or any war based Java application CommandBox can talk to it.
Michael: Fabulous, well we'll talk more about package management, and what exactly that is a bit later in the episode. But let's have a look at containers and how those can save you time, and headaches because I know from the recent survey we did on the state of the Union; that ColdFusion Union that is. That it's not everyone uses containers.
Michael: And I think they're missing out here. So, what are the advantages of using containers?
Luis: So, some actually get confused with containers and J.V.M. Yeah, I'm sorry and virtual machines, right. So before it was the era of virtual machines, where you actually were simulating a full entire operating system. But not only the operating system, you are virtualizing the hardware from our network cards to CD ROMs, to the CPUs, to them on the RAM. And all that of course takes a lot of resources because you're basically virtualizing those hardware items into physicals… into actual virtual software, right. Containers are basically a concept that is part of the operating systems which allows you to actually segregate at the rectory level. So based on several permissions, and a lot of very frenzy operate system stuff, you can create little silos in your operating system that act and feel like if there are complete separate machine, right.
That’s the technical part of it. But the cool thing about it is that you can actually create with docker images of software, right. So you can actually package your application with all the dependencies, have a build server that puts that together. Even with CommandBox, you can actually even warm up the server so that means that the server can be updated with all the latest patches, with the configuration scripts that you want, all the data sources that you want, all the dependencies that you want, and then that image is taken and put in a registry, and then that could be deployed. The cool thing about containers is that you can almost even have zero downtime. You can split up new the containers while the new containers are loading, the old containers are still serving traffic.
And then once a new container has already served, then the internal low bottles are switch, and there the orchestration says, “Okay, no now we're moving to a new containers and new code is employed.” So robots are extremely easy to do with that, and it really changes the way to do dev. ups in all reality as well. It facilitates the ability to scale tremendously. We have to offer simpler docker's forums and we can say, “Okay, right now we have high traffic, school up five more instances.” And boom! A few seconds later, we have five more instances serving our image, right. Then we can scale down, scale up. So, it really is a fantastic way to deploy your source code than the older traditional approaches which you basically have to sometimes cross your fingers that you don't have traffic at that moment in time. So [crosstalk] [12:33].
Michael: Yeah, instead of it taking weeks to get a new hardware server up, or maybe quite a long while to get of the new V.M. up, it's only seconds to get a new docker container up.
Luis: Yeah exactly, I mean you can have the docker machine commands on your operating system that can connect to different cloud providers like Digital Ocean, or VULTR, or AWS. And you know from your machine you can just say docker machine, I need a new machine, a new swarm. In a way you can scale your hardware, and very easily create duplicates of your swarm members, or workers and in just a very, very easily. I mean I think it's a technology that people really if they haven't tried it, at least will try it, and start learning about it because it will be more prolific in the near future.
Michael: But I think the other thing that's nice is that you can have the container on your own laptop. So you can be testing things out, and then you can deploy it out into the cloud. Or you can do the development and testing on the cloud, however if you want to do it. And all that this thing where you talk about the swarm scaling up, all that can be controlled through other pieces of code as I understand it. Is that right or?
Luis: correct yeah
Michael: You don't have to have like a system admin there deciding to spin up a new instances. It’s all automated.
Luis: Yes, so it really simplifies the whole dev. operations. That means you have to learn it, get all the knowledge around the containers and there are several U.I. tools around there which are extremely good. And we use one called proteiner which can be found in [inaudible] [14:12] in it is a great open source project. It also has some support packages, so I encourage you guys to help that project as well. But it really puts a nice U.I. on top of docker, and it really at least for me maybe a click on the bunch of areas that I did not grasp when I was starting to learn the whole containerization options. But it's great because there's no more of those, “Oh it works on my machine.” It's pretty much the image that you're working in development will be the image that it gets sent to production.
Michael: It's genius! And I think this is something we were talking about before we started recording the episode. This is where ColdFusion is actually ahead of other languages with the use of the containerization and all the features in CommandBox.
Luis: Yeah I mean the point C.F.M.L. has a container is it's really it was available since almost a year ago. That's when we deployed our first CommandBox image. So really there's no excuse for people to not be leveraging containers with ColdFusion; any version of ColdFusion actually. You can containerize even CF 9 at this point. So there is that capability that it is there. It is just a matter of developers to use it.
Michael: Great! So you talked about earlier that we don't have a need for node anymore. Tell us a bit more about that, and I know Brad would wrote a bunch on that. And will include a reference to his series of blog posts on it.
Luis: Yeah, we kind of placed some marketing words there. But the reality is that it's not like there's no need for is no need for you to start building all kinds of utilities when you can build them in C.F.M.L. So, we were trying to kind of help promote people to actually start looking at CommandBox as a viable option for you right operating system integrations. You know write your own CLIs. You know, it has all the capabilities that you would need, and probably even more than the basic node insulations give you. They're node just gives you basic things, then there's also kind of packages that are built on top of it like the [inaudible] [16:30] for example to create generators you know [inaudible] [16:34] for automation, and task management.
So with CommandBox, you really wanted to have a one place shop for you to actually integrate with the operating system. So you have task management available now since the latest release. So you can actually create builds with it from the ability to do tokenization, to do replacements, hashes from files. It also allow you to do generator. So it has a full system for prompting users to create wizards. So it really is a lot of tooling that is available, and Brad even created a series called ‘Don't Touch That Node’. Where he actually goes in-depth into all the other tools that are available there for you to actually build utilities, and that's what we want. We want the C.F.M.L. community, the ColdFusion community to start leveraging these tools and start running the community with all kind of tooling, and libraries.
Michael: That is great. So earlier, we touched briefly on package management. But maybe not everyone listening really is clear what we mean by that. So, what the heck is a package, and why would you want to manage it?
Luis: Yeah, I think the whole concept of package management went on for a very long time where you know, it's the same issue in any language, right. When we start creating things, there's always the issue of reusability, right. So the idea of creating packages is basically to help you with the reusability. And when you create a new project, you don't want to go scour all the different projects that you created just for that specific function you want, or that specific model you could use. And that's what people usually are doing. They're scouring their old projects for bits of code here and there, then scouring the internet for bits, and here, and there. I remember when jQuery got famous and there was a thousand million jQuery plugins right, and then maintaining those plugins was a pain. And if I ask you Michael which version of… which plugin do you have?
You’re like oh, I don't know. Maybe you have to go into the source code and view the version. So the idea of managing your dependencies in the project has always been an issue. And package managers are trying to solve that issue by helping you exude the rules, and standards. And say hey, when you build a project you can create a descriptive file that will basically tell me what are the dependencies for your project, right. In Java world, this could be a Palm by XML which is a Maven, or MPM, it could be a package that Jason. You can have ruby gems, or in ColdFusion you have box adjacent which is CommandBox, right. So you start to build things now in a more modular fashion instead of the old kind of legacy traditional model of which is just placing wherever you want everywhere, right.
And it gives you a set of commands, so you can easily install new packages, and these new packages with their specific versions update specific packages. You can run an outdated command. So you can actually tell you which packages are completely outdated, which ones have new versions out there. You can remove packages, you can even have the concept of packages for production, and packages for development. So we try to even push you further to actually think about build processes, and continuous integration, and continuous deployment.
So that's one of the things we push forward as our [inaudible] [20:14] and really ingrained the ColdFusion developers to adhere to modern standards, right. And not the old legacy approaches where you build everything in, and everything's in the source control. So we… that's what we're trying to ferment, and obviously is going to take some time for the ColdFusion community to grasp this because obviously they never had these tools before. But I think that if they have been exposed to other technologies especially node. You know, I am pretty sure everybody needs to be front end for their applications. The flow and process that the node offers and NPM offers is great right. And that is available to you since almost three years of use, right?
Luis: So it's a matter of educating now the community and say you know there are standards and approaches to building software which that's what you should call. You're not building a site. You're doing software, right. And moving forward with that approach as a package.
Michael: And then you can have scripts for packages, and artifacts, and lots of all the things.
Luis: Yeah, pretty much the package can be anything. You know that's what we want to. It was not a box centric thing. It is basically a ColdFusion thing. Any folder or zip file that contains a box not Jason, that's a package for us. You know and that not even requires for it to be actually ColdFusion code. So we have actually create have some internal packages which is Java code. We use our own method of packet management to package Java applications too. So in all reality, all you need is a descriptor, and a descriptor is what defines what a package is.
And then, that package can come from anywhere, right. Now we have several rules of where they come from when using CommandBox. There’s things like ForgeBox which is our cloud repository, very analogous to NPM. But things can also come from a file that can be a ZIP, or TAR. It can be a directory that can be in your computer, or in a network. You can use GIT. So if you have any good end point like bit bucket, or your own GIT installation, you can use that. Some version as well; GitHub. We have shortcuts for GitHub integration. Also bit bucket then any H.T.T.P. or H.T.T.P.S. location that opens it up to the whole Internet.
And then, we even have jar end points now which basically can map to any location that a jar exists in. And then it will automatically try to make that the dependency for you. And we're working on Maven support coming soon. So we're going to be able to bridge into Java land as well using Maven and hopefully later on Gradle, and other build processes in the Java world. But it gives you great flexibility of where you're going to store those; that package, the source code [inaudible] per say.
Michael: So, how does ForgeBox relate to this? Is that a place where you store your packages or?
Luis: Yes, so like I said all these end points, we call end points where you can store packages. Now forge box is different than all of these because it is basically a source directory. It is meant… It was created by us in order to house your source as a directory. And it supports multiple versions, and that's the important thing. Only ForgeBox is that one that actually allows you to have multiple versions of your code basically in got that directory.
So you can say hey, give me ColdBox 4.2, or give me now ColdBox 4.3, or ColdBox latest, or leading edge, so just like for example Maven, or MPM. It does allow you that capability of leveraging multi-versions in your source code. That's a big deal for developers where they can actually even lock their specific dependencies to specific versions, or do all kinds of semantic versioning insulations around your packages. So that's where ForgeBox kind of fits in
Michael: And what does it cost to use ForgeBox?
Luis: So, ForgeBox is completely free. It is open source just like in MPM [inaudible] not the code is open source, but the whole aspect of ForgeBox is open. That means that any developer can create an account, and start contributing. We do have private packages, and more features that will be as a software, as a service humming. And there it's almost ForgeBox enterprises which basically means you can run ForgeBox as a container in your own infrastructure. So these are for institutions, or companies that do not want to use the one on the Internet. They want their own private ForgeBox, and their own network per say.
Michael: And why would someone want private repositories instead of the usual open source ones?
Luis: You know like just like with anything where we're building code. You know sometimes we have certain packages that we don't want to make public, or it's for a specific client. So now you're going to be able to do that in ForgeBox. Actually, by the end of the week, there's a fix… a few updates coming in that will allow you to do this which would be free for a limited time. So there's a few more updates are coming this week for ForgeBox. But it does allow you that privacy. You know working where you're working with a client, and you've built several packages that obviously you don't want to be open sourced, you can keep them private. And that is to me a major impetus behind private packages is to give you that privacy of your packages so you can still approach CommandBox, but in a more private matter.
Michael: So, why do you think every ColdFusion developer should be having a ForgeBox account? And why should they go and create one?
Luis: Good question; I think that what we want is to promote the community. I think that for the longest of times, I think that ColdFusion community has not been very shareable. (I don’t even know if that’s a word.) But I think that the community has not really like come together to share their knowledge in sharing their code. I think only a few people in the communities are always the ones leading in the flock right and in doing this. But because there was never a very easy way to do it. Obviously, MPM is a huge thing that took off because it was so easy to use. Developers were very easy to register their accounts, and put any type of library that they have created up there, and share it.
And that's what we're looking for. You know, with only two, three commands you can register your account, create a package, publish it. And that's what we're trying to ferment is for the community to come together and say, “No, there's all these things that you have done throughout time.” Start sharing, even if you think it's dumb you know pretty sure somebody will find a use for it. You know we even have a Chuck Norris Command which has been downloaded a tremendous amount of times. And that's what we want. We want to ferment the community.
Michael: So that I think that's a great thing. And I think having a place you can share code, or save time by downloading code other people have shared, maybe improve it, and upload it back is great. But if someone's a busy developer, what's in it for them to share some of the cool things they've written in their code?
Luis: You know I think that with anything when you can start getting involved with open source, and putting your name out there. It's like a virtual resident card; to tell you the truth. It’s like you're putting your code, people are looking at it, people are benefiting from it, your name is getting exposure, you have your own actual page created for you. So you have an actual address that you can share with people and say hey, look at all the contributions I’m making, all the different things that I'm working on.
And then to tell you the truth, even when we look for people who work with us, we look at their contributions. We want to see if they're involved with the community, with any community of this day and age in all reality. We just want great developers. We don't want purely ColdFusion. We want great developers, and having the ability to put their knowledge out there is important for us. And I think from a major corporations are looking for people that are actually involved.
Michael: I think it's also a benefit for the companies that employ these developers. Because if you share the code out and first of all you probably gonna make the code a bit better before you put your laundry out of you for everyone. You probably clean it up a bit, and so you'll probably have fewer bugs in your code. And then, other people may well improve the code. So, I think there's definitely a lot of benefits all around in using ForgeBox.
Luis: Yes, I agree. It's a great benefit for employees to start learning from other folks.
Michael: And there are hundreds of things already on there. You know hundreds of modules, and other things on ForgeBox already. So, plenty of opportunity to get cool stuff, or contribute things.
Luis: Yeah definitely, there's almost 400 contributions already and growing which is great to see. And hopefully we’ll keep on moving, and growing like this. And you see several you know… We've started to see now daily registrations which is great. At least one person is registering, and you know start contributing. There's so many things that are contributed right now that you'd be surprised.
Michael: So maybe we should have a competition for who can contribute the most things in October, or whatever we come up with.
Luis: Yeah, yeah maybe we [inaudible] [30:46] offering some little bit you know, Starbucks cars, or Amazon cars, or something like that. We actually want to gain a fire some of the things with ForgeBox. That's one of the discussions we're having, and I have a directory page where you can show the biggest contributors through the time, or through a month in high developers. I think that just makes it nice for people to start contributing.
Michael: Yeah and maybe you can have some awards the next into the box conference to recognize those people.
Luis: Yeah, it’s true.
Michael: Just like the Oscars, but this will be for ColdFusion development.
Luis: Yes definitely, definitely. We definitely need to think about something enough for next year or into the box.
Michael: Yeah, so anything else you want to share about CommandBox, or ForgeBox today? And how they help you to code package, share, and go?
Luis: I think the most important thing is for people to try it. It's very surprising still to this day that ColdFusion developers do not know what a CLI is, or what package management is, or how do… You know they spend so much time installing CF servers for you can get up and running really in a matter of minutes. I mean in less than you can download 30 megabytes which is what CommandBox is and install it which basically just means execute it, use your [inaudible] [32:15] command, and you’re up and running. So there really is no [crosstalk] …
Michael: So, someone could just have ten minutes spare, and get started.
Luis: Yeah, pretty much. If you have ten minutes to spare (which I'm pretty sure everybody does). Download CommandBox, start it up, and start a new server, see how it works. You'd be surprised how easy you can get up and running with it, and doing that. I mean we actually are working on a new book called ‘Modern CFML 100 minutes’. Maybe I'll give you the link it's still a work in progress, but this will probably help a lot of developers here to modern practices for C.F.M.L. I’ll send you the link here, Michael.
Michael: I will put it in the show notes along with the links to all the other cool stuff we've discussed.
Luis: This book was still a work in progress. It’s inspired by Ruby in 100 minutes and Mike Henke’s work on C.F.M.L.; 100 minutes. We’re taking it to a more opinionated land and what we believe is modern C.F.M.L. And hopefully there will be a… be good for people to start working with ColdFusion very, very easily.
Michael: Fabulous! Well look forward to seeing that. So, why are you proud to use ColdFusion these days?
Luis: Oh like I said with all these tools and everything that we're doing. I mean it's just this that was our intent in people start using these tools to feel proud again of the technology they love and use.
Luis: And know how language obviously, there are so many languages. It’s all machinery, right?
Luis: Nowadays, there are so many languages, and so many technologies. It's great to learn other technologies, and learn other languages. It is important that we have to be all around developers not only as single language kind of developer. So that is really important nowadays, but I always come back to the CFML alive which I love its power. It integrates as a middleware for all kinds of technologies. I think nowadays, it's more about building apps. I think all the languages are up to par in certain senses. Some have different specifics than others, but nowadays, it's very hard to distinguish like the language features. It’s like oh, look at my [inaudible] [34:47].
I think it's more about building apps. It's what makes you more productive, what makes you actually do business at the end of the day. Anybody will use any kind of tool as they see fit. For me I think that ColdFusion is one of the biggest languages that I love, that I am more productive in. Obviously, when they have to do other things, they do it in modern languages. But I'm proud to do that because of all the tooling that we have created, and to really, really put you up to par and more now with other languages. And finally, finally be able to have those kind of automations, technology; very cool things to play around with in your own language.
Michael: Yeah, cool things that save you time, make your code less buggy.
Michael: Just amazing stuff. So, we were talking earlier about that Gardener report. I think that was like eight, or nine years ago that report came out that said ColdFusion is dying, or something, or is dead. Which is obviously not true because that is hundreds of thousands of sites using ColdFusion. But what would it take for you to make ColdFusion more alive this year, Luis? Just to put you on the spot a little bit.
Luis: Well, according to that Gardner report, they actually used a search, a Google search there was using like learning ColdFusion, or ColdFusion learning, or something like that. So I'm going to change everything to have those two key words. To make ColdFusion look like it's alive again. But from the joke I think that our mindset or just this is that we want to create very, very easy to use tools to take the language to another level. And for that, we just need people to actually write apps; that's the whole thing. You know that's how we are going to showcase the language. You're going to showcase the language by creating solutions for businesses, creating great application, software as a services, and try it out.
A lot of people still believe that ColdFusion is like it was ten years ago. I mean we had attend several non-ColdFusion Java conferences, we attended several Java conferences this year, and that's the knowledge that people have. So it's up to really us and the community to take that knowledge forward and say no look at all the great applications we're building, look at the tooling that we have, look at the way that we can start ups, and containerized applications. And that's what's going to make ColdFusion more alive. It really will take people for actually start using these tools and moving forward.
Michael: That is great, and my whole mission with this podcast is to make ColdFusion more alive. So, I really appreciate everything you, and Brad, and Gavin, and everyone else at [inaudible] [37:44] is doing with all these tools. And a lot of them are open source, so there's no reason not to try them out. Yeah, so I know you were speaking on the topic of this episode to C.F. objective a few weeks ago. Tell us what you liked about C.F. objective.
Luis: Oh yeah, I'd love C.F. objective, I loved it for longest of times. We actually coupled into the box to it for several years actually three years. So, we did into the box one day before C.F. objective, and it was great for us. I think that now they changed venues, so they created it in Washington D.C. For me it's fantastic. I'd love D.C., there's so much great food, so much great things to do. So, it's a very centric location, a very good location to get to. And I hope they continue it. It was not as huge as other years I think they rebranded it again, and it takes time for those things to take off. And hopefully, they'll start fine turning their processes, and fine tuning venues, and locations, and stuff like that. So hopefully, they'll do it because for me I've always loved C.F. objective. So, I had a great time.
Michael: So, I know you're speaking at several conferences in the rest of this year; C.F. camp, C.F. summit, NAGW (if I'm saying that one correctly). What are you looking forward to each of those?
Luis: Yeah, C.F. camp, always great to go to Munich. [Inaudible] [39:13] not always puts on a great, great conference has grown tremendously throughout time. And it's to me one of the best European conferences for ColdFusion and technology. So always looking forward to that I want to… C.F. summit is fantastic. There'll be conference that they put every year in Las Vegas; over 500 attendees. I mean just fantastic to see how the community is very vibrant. You know you got over 500 people there and it presenting very big corporations showcasing their ColdFusion installations. Last year, they had shot.com with a tremendous amount of revenue going through their ColdFusion applications. So it really is inspiring to go to these conferences.
And then, we're also going to [inaudible] [40:03] W which is our motivation to start going to the non C.F.M.L. conferences. We’ve attempted over four already this year and this will be the last one of the year; maybe. By the National Association of government workers, so it is a government centric conference for small government and federal government. And I'll be presenting on Restful services. How to actually build sustainable restful services and basically containerize them. So I'm off course I'll be showcasing ColdFusion to create rapid development with it and containerizing it, and showing them how easy it is to build restful services, containerize them, and deploy them.
Michael: Fabulous! So, if people want to find you online, what are the best ways to do that?
Luis: They can go to Twitter and My handle is @ [inaudible] [41:00], or … solutions@…solutions. And they can also go to the site, ….solution.com stock or …handle.com.
Michael: Fabulous! Well, thanks so much for being on the show today, Luis. It's always great talking with you, and good luck with all these conference presentations on the book, and new releases of CommandBox, and ForgeBox.
Luis: Thank you so much.