Hello and welcome to the Modernize or Die podcast.

We're glad to have you with us today.

It is June 3rd.

This is episode 234.

My name is Eric Peterson and I'm joined today by Jacob Beers.

Hey Jacob.

Hello, thank you for having me.

Always.

Well, let's jump right into it.

Let's jump into our Ortus news for the week or sorry, the last few weeks.

We had a couple of new releases.

CF Migrations version five is out.

Sounds fancy, isn't as fancy as it sounds.

Upgraded to be based off of qb 12 which was also a breaking change and CBMockData 4.

So all of you should be able to upgrade without really noticing anything.

It does have BoxLang certification now, both the normal BoxLang and with the CFML Compat
module, which has, on the side note, been a fun thing to try to figure out matrix testing

in CI.

Thank goodness for CommandBox to make that more straightforward.

And then there's a little teaser, a simpler configuration for CommandBox migrations is
coming soon.

So if you are one of the many people who look at your data source configuration in there
and think, why is this more confusing than CF config?

We'll be fixing that.

So thanks for being patient.

CB Playwright also had a release.

It's at 1.52.1.

That corresponds to Playwright 1.52, which is why the version numbers are kind of weird
there.

I've been doing a lot of work there, mostly because I've been using it in a non.

testing scenario and it works a little bit better in that now.

So kind of doing my own web crawling for a client's project.

It's kind of fun.

Cool, very awesome.

Alright, so we've also got a couple more feature or news items that we want to talk about.

We've got the ITB 2025 videos coming to CFCasts later this month.

I'm personally really excited about that.

You can still go and check out the Into the Box 2025 website where you can see the full
agenda and pick out some videos that you're interested in watching.

I've actually I've got four or five videos on my list that I've been waiting this entire
time to be able to watch.

So looking forward to that one.

So that will come to all attendees of Into the Box.

You'll get free access on CFCasts.

If you are just a subscriber to CFCasts and you didn't attend Into the Box this year, you
can either purchase it as a premium series or wait until around the end of the year when

it will become available to all subscribers.

Good to know.

And we've got a news item that is very dear to my heart, which is that the Boxlang VS Code
extension has released a new version, 1.7.1.

Yeah, we've got some really cool features in it, including a couple of bug fixes, improved
autocomplete.

And then the thing that I'm the most excited about is actually AI integration with

VS Code co-pilot.

So that includes our BoxLang participant that can even reach out to the BoxLang
documentation and answer questions intelligently about BoxLang.

So very exciting stuff.

We're really looking forward to the future that opens up for us.

That's awesome.

You've been doing such great work on that.

I've been trying to dip my toes into it to help out a bit.

It's an exciting place to be.

Mm-hmm.

All right, this episode is sponsored by Ortus Solutions, specifically our Elasticsearch
and OpenSearch Consulting.

So if you have a need to augment your search, maybe you're been creaking by just doing
some database-like comparisons, but it's getting really slow to do those searches.

It's just you want to give it lots more features.

Contact us.

We have implemented many Elasticsearch search.

implementations and we can help you with yours as well.

Custom implementations, log management, performance tuning.

You can scale your data search with confidence and expert support.

Learn more at ordersolutions.com slash services slash elastic search.

And if you would like to get your product or service in front of our wonderful BoxLang and
CFML audience, reach out to us on our website.

We'd love to have you sponsoring an episode of the podcast.

Let's jump into our BoxLang corner.

We have a BoxLang release.

Version 1.2.0 has been released.

And I would say that this is probably an 80 % bug fix and improvements update.

There's also a few new features you might be interested in.

The biggest one I thought was interesting was enhanced Java integration with Maven.

Maven's not something that we reach for a lot in the CFML community, and that is probably
gonna change here with BoxLang, where you add in Maven with a pom.xml you put in your

dependencies, and those dependencies will be available inside BoxLang.

Nothing extra that you have to do.

You can go ahead and import those classes, create new objects from them, not having to add
it to this.javaSettings or anything like that.

So some great stuff in there to integrate with the wider Java community.

that's just the tip of the iceberg.

Like I said, there's lots of performance improvements, and bug fixes as well.

We'll put the blog release and you can check out all the different tickets that were
closed in.

BoxLang 1.2.0.

and which there is a lot of tickets.

I'm looking at the release notes now and I want to say that there's like 150.

Maybe not that many, maybe 100, but there's quite a bit.

do a quick count on the number of list items in here or something.

don't know.

But yeah, I'm with you.

There's over 50 at least.

Where's your CB Playwright web crawler when we need it?

I mean, that takes time to write.

It's not free.

Could probably put this into AI and just say, count me the number of list items or
something.

I will uh lay claim that one of the bug fixes was mine.

One out of 50 plus.

So I'm part of this.

I'm part of this.

Yep, BL 1488, right?

The very last one on the, the importance.

Nice.

Well, we have a new installment in our BoxLang FAQ this week.

Last time we talked about the pricing model for BoxLang, specifically if it was free or
just a paid product.

The TLDR on that is BoxLang is free as in, well, Daniel said free as in BoxLang, but I
think free as in.

Beer is the one that we want.

It's free free free, you can do whatever you want with it.

Free.

Production, everything.

It also has support plans that we can help you get the most out of it.

We'd love to have your support on it as well, but it's free.

Today we wanna talk about is BoxLang just another CFML engine because you keep talking
about it like it's more.

What's the answer to that, Jacob?

Well, Eric, I'm glad that you asked.

In fact, it is more.

We do have a compatibility layer, which we've talked about endlessly to be able to migrate
CFML applications.

But we also have things that set BoxLang apart and make it its own language, including
things like we've got syntax differences, we've got additional BIFs we've got...

functional member methods, better Java interoperability, and lots of runtime features like
scheduler, modules, async features, all kinds of great stuff.

Some of the most important differences, some of them are, as people have pointed out, to
be kind of cosmetic, like prefixing a tag with bx or something like that.

But they shouldn't be...

They shouldn't think that that's as deep as the changes that we've made go.

There's actually quite a bit more that goes beyond that.

Such as the syntax differences can be as simple as, like I said, BX and class.

But then we have the static BIF access that allows you to get at the actual object of a
BIF without invoking it so that you can pass it around into other functions or things like

that.

We also have functional member methods, which is an interesting shortcut to be able to
invoke member methods on an object without having to create a closure to be able to do

that.

And it looks really slick in practice.

And again, I actually demoed this last time in our webinar, but our Java Interop is
awesome.

And it almost gives you like a hybrid language of

something like CFML plus all of the Java goodness to make something, you know, amazing
BoxLang baby.

And then I can't even talk about all the features, but Luis has been throwing things in
there like crazy with scheduler and modules and all the dynamic stuff.

there's quite a bit that sets us apart from CFML.

Yeah, I noticed today, and we'll get to this in a second, that in Lucee 6, they've
discontinued their Lucee dialect, which was their attempt and hope to make a language out

of Lucee bigger than just CFML.

I was sad to see that because I think we need to be pushing the boundaries and that's what
BoxLang lets us do.

We have our CFML parser.

It understands CFML, but we can leave it and do things that are not CFML because it's
better and it gives us the syntax that we want and the capabilities we want.

So the good news with BoxLang is you get both.

You don't have to choose, but BoxLang definitely isn't just CFML.

Mm-hmm.

All right, let's talk about some community updates now.

Speaking of, I have a link here to the Lucee 6 upgrade guide.

This is the first time I saw it.

It might have been around a while, but given that I have many a client that's still on
Lucee 5.4, I'm sure I will be referencing this quite a bit.

In addition to that, we've got Fixinator 6.1 and Pete's been doing a great job with that
as always.

So you should go and check that out.

You should check it out even if you're not a Fixinator customer, but especially if you're
a Fixinator customer, go and check out the things that are there.

And actually that this has to do specifically with the vulnerability that Adobe has fixed
recently.

having to do with undefined arguments and remote functions.

it looks like he provides his scanning tool through Fixinator and can help you resolve
that in your system really quickly.

So, check it out.

Now, I have to say, vulnerability, I put in air quotes.

uh Like it has to do with being able to scope walk in Adobe or scope shadow, I should say,
where you can kind of fake an argument scope by passing in something called arguments or

variables like that.

It will create a local variables.

I'm not saying this very well.

If you bet you can, in Adobe confusion, you can create a local variable called variables.

And then when your code asks for variables in that function, it gets the local scope, not
the variable scope.

And so you can essentially like override it and then, you know, wreck havoc.

So that's not a thing in Lucee, which is why Lucee hasn't done the patch like this.

And quite honestly, this patch is annoying me because I have to add in this environment
variable everywhere to turn it off.

So my tests run because I think mock box uses this and I like mock box.

So anyway.

But Pete can fixnator can find it for you in case you're like do I use this so?

Anyway, sorry for the rant We have a blog post by James Moberg and first off is this a new
site James you should let us know it's myCFML.com

the article is using ColdFusion and XPDF to extract PDF metadata.

I would name James Moberg the king of using command line tools inside ColdFusion.

If you ever need to do that and you're having problems, he probably could help you.

So this is another command line tool to get you more information about the PDF than you
can just using the built in.

ColdFusion tools, you can get a lot of it with the CF PDF, but this gets you even more
data.

So you can go ahead and check that out on his blog, XPDF and ColdFusion.

In addition to that, we've got another blog post coming from Ben Nadel, which if you're
not familiar with him, there's a new blog post every day.

But specifically we're talking about today's, which has to do with a new feature that's
been added to Adobe to make it easier to add jars into your CFML application.

He's been doing kind of an interesting series on building barcodes using, I have no idea
how to pronounce this, zeezing, zeexing?

Sure.

It's a barcode library.

I think it's from Google and it's distributed via jar.

And so he's doing some interesting experiments with that in Adobe 2025.

So check that out.

Now if you build any sort of cross compatible Module so like for cold box.

It's supposed to run on Lucee.

It's supposed to run on Adobe supposed to run on BoxLang And you wanted to use a Java
library you might have noticed there's no good way to do it a lot of our docs now just say

like you got to copy this into your Java settings because Lucee had a way to create

a Java object by passing in an array of jars is a third argument to create object.

BoxLang uses that and there was no way to do it in Adobe.

Until 2025, Adobe 2025 gives it to us.

It works the same as Lucee in BoxLang.

And once I can drop support for 2021 and 2023 and you know, five years, it sounds so far
away, but like it just makes building these cross compatible modules so much easier.

because it just takes out a step that you right now have to do yourself.

You have to get those jars in the right place.

You got to make sure they're loaded.

Soon we'll be able to just say, no, here's the jar.

I'm putting it in the module, pointing to it in the file system.

You're good to go.

So very excited for that.

All right, let's talk about some events.

CF Camp happened just a couple weeks ago, and the slides and recording for the Ortus
videos are now up on CF Casts.

I think CF Casts and BoxLang Academy, so you can go check that out.

Again, that's just the Ortus videos that we had there.

We will let you know when CF Camp publishes all of their videos and where you can get
ahold of those.

Additionally, we have a couple webinars coming up.

This June, we have Building Dynamic AWS Lambda Applications with Boxlang.

It will be June 18th at 11 a.m.

Central Time.

You can register and we'll put the link in the chat, in the show notes.

That's gonna be led by Luis Majano And in July, we'll be having a webinar with Ray Camden
and more details are coming about that soon.

Cool.

Looking forward to that.

It looks like we're going to be, the Ortus is going to be participating in an announcement
at America Digital Mexico on June 17th.

Looks like it's a conference in Mexico City where we'll be showcasing BoxLang.

So definitely check that out.

That sounds really awesome.

It looks like it's their ninth annual conference there and we're going to be at Booth.

C36 in case you happen to swing by so come say hi.

We also have another conference coming up later this month called Open South Code 2025.

This one's in Spain.

Me and we're taking over all the continents.

That one's going to be from June 20th through the 21st in Málaga, Spain.

And actually we're a gold sponsor of that one.

So that's pretty, pretty awesome.

Finally jumping forward to September, we have Adobe Cold Fusion Summit 2025 certification
available either the day before or after, depending on what you would like.

There is still a speaker application open.

You can submit your topics and you should.

And very looking forward to that event,

Finally, we mentioned this last time, we are coming out soon with our blind ticket for
Into the Box 2026.

What that means is you buy a ticket without knowing what the workshops or speakers are
going to be, and in return, we give it to you at a great discount.

So you put your faith in us that we're gonna run a great event, you get a great discount.

Win-win.

Win-win.

Now we have a question in the chat I wanted to jump back to from Scott Steinbeck with the
new Maven integration.

Asking if the Maven command was a part of command box or part of the BoxLang jar and I
believe the answer is neither.

It's you installing Maven onto your system according to the website documentation.

So the normal Maven command, nothing that we are hooking into or anything.

In fact, when you do a Maven install, it's all

Normal Java Maven.

I feel like we need a blog post explaining this functionality.

This seems very important.

And yes, that and the video.

Luis, make it happen.

Mm-hmm.

All right.

So we have a few minutes left.

Usually at this point we're over time.

And so I have some things in our show notes from Microsoft Build, which was a few weeks
ago.

So it might be old news, but things that I think are fun to talk about.

Did you, see the new copilot features inside GitHub, like the GitHub website?

no, I haven't.

should tell me about that.

So there is now, so CoPilot's been in VS Code for a long time, can do a lot for you.

Now inside of GitHub, you can assign it as a reviewer of your pull request.

And it will pull the code down, and I don't even know what it does.

I'm afraid to try it.

But do a code review, which, okay, interesting.

Having my code reviewed by the robot that usually gets it wrong, but you know, we'll see.

Additionally, and I'm not sure how you like turn this on or you can assign, I believe,
issues, GitHub issues to GitHub Copilot, and it will attempt to fix it, make a pull

request, and open that pull request back up.

So like assigning a ticket to an AI bot, which is kind of boggling my mind.

I kind of want to try it, but again, don't know if I trust it.

I guess that's what tests are for.

But yeah, that was the biggest one for me, not being like a Microsoft guy where I was
like, this is interesting.

How do you feel about throwing some GitHub issue at GitHub Copilot and having it go off
and fix it and open the pull request for you?

If you'd asked me a few weeks ago, I would have said not good.

But actually I've been playing around with some of the AI stuff as well and especially
with Copilot and Claude 4, that's an amazing combo.

And I'd be willing to let it take a shot.

So does GitHub Copilot let you use Cloud then?

Cause isn't Microsoft, I thought Microsoft Copilot was the AI engine.

Maybe I have this wrong.

Well, so actually, it's cool that we're bringing this up because this will be maybe some
future announcements in some of our podcasts.

But at least in VS code, when you put your copilot into agent mode, you're able to pick
the specific LLM that you want to use for your work.

And Cloud4 is one of the ones that's accessible to it.

And actually we just got a comment from Ben K that it's not as familiar with CFML, which
is true, but that's why we've been adding in some of the BoxLang AI chat features like the

BoxLang participant and things like that.

We've found some ways in the VS Code documentation to be able to give it the information
it needs to be able to interact with our ecosystem even without even having been trained a

couple of years ago.

So look forward to that in the future.

That's going to be pretty exciting.

Well, maybe after this podcast, there's been a couple of, quick issues that have been out
there that I'm like, I wish I could, I had the time to dig into this.

Maybe we'll, we'll throw a co-pilot at it, see how much of a mess it makes.

don't let me see if there was anything else interesting at Microsoft build, the WSL, the.

Windows Subsystem for Linux is now open source, which, sure, cool.

And they made their own Vim.

I don't know if you saw this.

I kind of laugh, again, based off the WSL news.

Microsoft is just very much like, no, DOS, or whatever you call them now, command line,
PowerShell, is like full throttle.

They will not let it die or they will not accept to just, we should just do Unix tools.

ah But yeah, now you can do, it's called Microsoft Edit and it's, Vim is the wrong word,
it's more Emacs.

Emacs for PowerShell.

So if that's been your dream for these many years, congratulations.

You can go download Edit on Windows, which is not the best name, but it is what it is.

Yep, well notepad was already taken,

And notepad++, which is still one of my favorite names.

In fact, hopefully everybody has noticed that we took inspiration from that for the
BoxLang subscriptions.

They were talking about BoxLang +, and there were other names floated, but it had to be++.

BoxLang++.

So I guess we could have gone the Apple naming route, right?

We could have done, let's see, it's Pro, Max, and Ultra in that order.

because Ultra is bigger than Max, somehow?

Anyways, awesome.

Well, let's wrap up and thank all of you for listening and especially thank all of our
Patreon sponsors.

These are individuals and companies that personally support our open source initiatives,
including this podcast.

Their contributions also fund the cloud infrastructure that this community relies on like
Forgebox for our package management.

You can support us on patreon.com slash Ortus Solutions.

If you're at a bronze level and up, Forgebox Pro and CFCast subscriptions are yours.

And come join us on our website and some exclusive places for our Patreon supporters.

We have, I believe, 61 Patreons right now.

You can always see an up-to-date list at ordersolutions.com slash about dash us slash
sponsors.

Thanks everyone for coming on this show today with us and we'll catch you in two weeks.

All right, thank you all.

Join our newsletter

checkmark Got it. You're on the list!
image of podcast supporter image of podcast supporter image of podcast supporter image of podcast supporter image of podcast supporter
Join 40 supporters

Switch to Modernize or Die ® Podcast - SoapBox Edition - Switch to Modernize or Die ® Podcast - Conference Edition

Powered by

Music from this podcast used under Royalty Free license from SoundDotCom and BlueTreeAudio

© 2019 Ortus Solutions