SlideShare a Scribd company logo
ROOM B
PRESENTED BY
GAVIN PICKIN
How we built Try
in under 48 hours
GAVIN PICKIN
SPEAKER AT ITB 2024
● Software Consultant for Ortus
● Work with ColdBox, CommandBox, ContentBox
APIs and VueJS every day!
● Working with Coldfusion since 1999 - V4
● Love learning and sharing the lessons learned
● From New Zealand, live in Bakersfield, Ca
● Loving wife, lots of kids, and countless critters
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
I am sharing this story because:
- We dogfooded our own technology
- We used some cool technology
- The journey to the destination is just as
important
- It surprised even us what we could do, and
how fast
I am sharing this story because:
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- We dogfooded our own technology
- We used some cool technology
- The journey to the destination is just as
important
- It surprised even us what we could do, and
how fast
Our Goals
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Give users a way to try BoxLang in the
browser with no download or installation
- Give users a comfortable dev experience
- Have an easy way to Embed it in multiple
sites
- Have a way to theme our editor
- Handle the load of our successful marketing
Parts
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- What are we going to build the website with?
- What editor were we going to use?
- How can we make it Embeddable?
- How can we make it themeable?
- How to go from Code > Response?
What are we building the Website with?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- MVP - Simple HTML Page
- Next level - CFML Website with index.cfm
- Ultimate Goal - BoxLang site with index.bxm
- No ColdBox
- No ContentBox
What editor are we going to use
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- The Monaco Editor is the code editor that
powers VS Code.
- It is licensed under the MIT License and
supports Edge, Chrome, Firefox, Safari and
Opera.
https://microsoft.github.io/monaco-editor/
What can Monaco do?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Lots!!!!!
https://code.visualstudio.com/docs/editor/edit
ingevolved
What can’t Monaco do?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- It cannot run the background services
powered by Node in VS Code
- Lose some themes
- Some extensions with LSPs, Debuggers etc
BUT its still awesome!!!
How can we make it Embeddable?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Should we Build it in React - NO!
- Should we build it in VueJS - Probably not
- AlpineJS - Maybe
We should use Web Components!!!!
How can we make it Embeddable?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
There is an existing Monaco Web Component
already out there.
https://github.com/vanillawc/wc-monaco-editor
Plug it in, and we’re DONE!!!!
How can we make it Embeddable?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Plug it in
- Choose Settings
- Default Code
… and we’re DONE!!!!
How do we make it Themeable?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Web Components supports attributes
- Web Components encapsulates your Styles
We will build some theme options and an
attribute to handle it
How do we go from Code > Response
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Editor will have code
- When the user clicks a button
- We’ll send this code somewhere via Ajax
- When we get a response, we will update the
UI to show the response
Where are we going to send it?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
WASM
We haven’t build the WASM BoxLang Runtime
yet, so we can’t run it in the browser :(
Yet!!!!!
API
We can build an API endpoint that we can call
Where are we going to send it?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
What API?
ColdBox API?
GoLang API?
Python API?
Node API? (sssh don’t tell Brad)
Where are we going to send it?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- We have the BoxLang OS runtime
- Should we call it with CFExecute
- Deal with Std-in and std-out
- Feels a little icky
- Will it scale?
How will we compile BoxLang Code
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
Maybe we could use Docker?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
Where’s the Docker image?
- We didn’t have a docker image yet
- Jon was busy working on real deep BoxLang
stuff, so I decided, I could handle that
- Build a CLI, and a Web Docker Image
- Let’s deploy our docker image
Where are we going to send it?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
Ssssh, Secret Squirrel
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Jon Setup ECR
- Jon Setup IAM Permissions
Let’s store them on AWS ECR
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- After editing IAM permissions for 2
hours
- Finally I got the images built and
uploaded
Let’s store them on AWS ECR
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
Run BoxLang CLI in Docker?
We can run
docker run boxlang-cli $codeToRun
- Docker start is not instant… will it be fast enough?
- Will it scale?
Where are we going to send it?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
Run BoxLang in Docker Swarm?
- How do we know how many swarm nodes
are running?
docker service ls | wc - c | maybe
- How do we send the code to a less busy
swarm node?
docker service ls | grep | headache
Where are we going to send it?
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
Easy Button
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Handles startup
- Handles isolation
- Handles speed
- Handles scaling
- Handles the server (serverless)
AWS Lambda solves
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Luis said ok I’m on it.
- 2 hours later, he said “DONE”
- I said “done with what?”
- He said, Lambda Runtime, boom!
Now we need an AWS Lambda Runtime (2 hours)
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- So after I spent too many hours
rebuilding all the stuff Luis had
already built - I threw all that in a
branch just in case it wasn’t a
complete waste, then I got to work.
Get the Lamba Runtime Compiling BoxLang (3 hours)
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Jon made me a user
- I tried to login but I couldn’t
- He reset my password
- I still couldn’t login
- He set my password, and I was in
AWS Lambda IAM Permissions (3 hours)
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- Install the AWS Cli
- Install the AWS SAM Cli
Testing the AWS Lambda
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
- lets see the code
Tap into the BoxLang core
INTO THE BOX 2024
How we built TryBoxLang in under 48 hours
INTO THE BOX 2024
THANK YOU TO OUR
SPONSORS
INTO THE BOX 2024

More Related Content

Similar to How we built TryBoxLang in under 48 hours

Build your first CRUD API in 60 minutes or less with AWS CDK.pptx
Build your first CRUD API in 60 minutes or less with AWS CDK.pptxBuild your first CRUD API in 60 minutes or less with AWS CDK.pptx
Build your first CRUD API in 60 minutes or less with AWS CDK.pptx
Enri Peters
 
Drupal is Changing, Quickly: How and Why
Drupal is Changing, Quickly: How and WhyDrupal is Changing, Quickly: How and Why
Drupal is Changing, Quickly: How and Why
Acquia
 
warblecamp - twical
warblecamp - twical warblecamp - twical
warblecamp - twical
Angus Fox
 
How to be successful running Docker in Production
How to be successful running Docker in ProductionHow to be successful running Docker in Production
How to be successful running Docker in Production
Docker, Inc.
 
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
Amazon Web Services
 
Codecinella / Using CodePen to learn, prototype and inspire the front end
Codecinella / Using CodePen to learn, prototype and inspire the front endCodecinella / Using CodePen to learn, prototype and inspire the front end
Codecinella / Using CodePen to learn, prototype and inspire the front end
Andrea Roenning
 
Is Your API Misbehaving (workshop)
Is Your API Misbehaving (workshop)Is Your API Misbehaving (workshop)
Is Your API Misbehaving (workshop)
Keith Casey
 
Tech night ldn - chatbot
Tech night ldn - chatbotTech night ldn - chatbot
Tech night ldn - chatbot
Marco Visintin
 
A Crash Course in WordPress Gutenberg
A Crash Course in WordPress GutenbergA Crash Course in WordPress Gutenberg
A Crash Course in WordPress Gutenberg
Roy Sivan
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
Ambassador Labs
 
Containers and CloudStack
Containers and CloudStackContainers and CloudStack
Containers and CloudStack
ShapeBlue
 
Docs at Weaveworks: DX from open source to SaaS and beyond
Docs at Weaveworks: DX from open source to SaaS and beyondDocs at Weaveworks: DX from open source to SaaS and beyond
Docs at Weaveworks: DX from open source to SaaS and beyond
Luke Marsden
 
How to install IBM Connections in a Coffe Break
How to install IBM Connections in a Coffe BreakHow to install IBM Connections in a Coffe Break
How to install IBM Connections in a Coffe Break
Andrea Fontana
 
ICON Smart Contract Development
ICON Smart Contract DevelopmentICON Smart Contract Development
ICON Smart Contract Development
ICON Foundation
 
Railsconf 2014 - Deploying Rails is Easier Thank It Looks
Railsconf 2014 - Deploying Rails is Easier Thank It LooksRailsconf 2014 - Deploying Rails is Easier Thank It Looks
Railsconf 2014 - Deploying Rails is Easier Thank It Looks
talkingquickly
 
ITB2016 ContentBox CMS for a perfect project fit
ITB2016   ContentBox CMS for a perfect project fitITB2016   ContentBox CMS for a perfect project fit
ITB2016 ContentBox CMS for a perfect project fit
Ortus Solutions, Corp
 
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Outlyer
 
Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017
Bobby DeVeaux, DevOps Consultant
 
Tutorial spot-cloud
Tutorial spot-cloudTutorial spot-cloud
Tutorial spot-cloud
Geoffrey Wang
 
Advancing Bitcoin 2019 - BTCPayServer Architecture
Advancing Bitcoin 2019  - BTCPayServer ArchitectureAdvancing Bitcoin 2019  - BTCPayServer Architecture
Advancing Bitcoin 2019 - BTCPayServer Architecture
Andrew Camilleri
 

Similar to How we built TryBoxLang in under 48 hours (20)

Build your first CRUD API in 60 minutes or less with AWS CDK.pptx
Build your first CRUD API in 60 minutes or less with AWS CDK.pptxBuild your first CRUD API in 60 minutes or less with AWS CDK.pptx
Build your first CRUD API in 60 minutes or less with AWS CDK.pptx
 
Drupal is Changing, Quickly: How and Why
Drupal is Changing, Quickly: How and WhyDrupal is Changing, Quickly: How and Why
Drupal is Changing, Quickly: How and Why
 
warblecamp - twical
warblecamp - twical warblecamp - twical
warblecamp - twical
 
How to be successful running Docker in Production
How to be successful running Docker in ProductionHow to be successful running Docker in Production
How to be successful running Docker in Production
 
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
 
Codecinella / Using CodePen to learn, prototype and inspire the front end
Codecinella / Using CodePen to learn, prototype and inspire the front endCodecinella / Using CodePen to learn, prototype and inspire the front end
Codecinella / Using CodePen to learn, prototype and inspire the front end
 
Is Your API Misbehaving (workshop)
Is Your API Misbehaving (workshop)Is Your API Misbehaving (workshop)
Is Your API Misbehaving (workshop)
 
Tech night ldn - chatbot
Tech night ldn - chatbotTech night ldn - chatbot
Tech night ldn - chatbot
 
A Crash Course in WordPress Gutenberg
A Crash Course in WordPress GutenbergA Crash Course in WordPress Gutenberg
A Crash Course in WordPress Gutenberg
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
 
Containers and CloudStack
Containers and CloudStackContainers and CloudStack
Containers and CloudStack
 
Docs at Weaveworks: DX from open source to SaaS and beyond
Docs at Weaveworks: DX from open source to SaaS and beyondDocs at Weaveworks: DX from open source to SaaS and beyond
Docs at Weaveworks: DX from open source to SaaS and beyond
 
How to install IBM Connections in a Coffe Break
How to install IBM Connections in a Coffe BreakHow to install IBM Connections in a Coffe Break
How to install IBM Connections in a Coffe Break
 
ICON Smart Contract Development
ICON Smart Contract DevelopmentICON Smart Contract Development
ICON Smart Contract Development
 
Railsconf 2014 - Deploying Rails is Easier Thank It Looks
Railsconf 2014 - Deploying Rails is Easier Thank It LooksRailsconf 2014 - Deploying Rails is Easier Thank It Looks
Railsconf 2014 - Deploying Rails is Easier Thank It Looks
 
ITB2016 ContentBox CMS for a perfect project fit
ITB2016   ContentBox CMS for a perfect project fitITB2016   ContentBox CMS for a perfect project fit
ITB2016 ContentBox CMS for a perfect project fit
 
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
 
Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017
 
Tutorial spot-cloud
Tutorial spot-cloudTutorial spot-cloud
Tutorial spot-cloud
 
Advancing Bitcoin 2019 - BTCPayServer Architecture
Advancing Bitcoin 2019  - BTCPayServer ArchitectureAdvancing Bitcoin 2019  - BTCPayServer Architecture
Advancing Bitcoin 2019 - BTCPayServer Architecture
 

More from Ortus Solutions, Corp

Intro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AIIntro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AI
Ortus Solutions, Corp
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
Ortus Solutions, Corp
 
BoxLang Developer Tooling: VSCode Extension and Debugger
BoxLang Developer Tooling: VSCode Extension and DebuggerBoxLang Developer Tooling: VSCode Extension and Debugger
BoxLang Developer Tooling: VSCode Extension and Debugger
Ortus Solutions, Corp
 
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
Ortus Solutions, Corp
 
Web Hosting with CommandBox and CommandBox Pro
Web Hosting with CommandBox and CommandBox ProWeb Hosting with CommandBox and CommandBox Pro
Web Hosting with CommandBox and CommandBox Pro
Ortus Solutions, Corp
 
Revolutionizing Task Scheduling in ColdBox
Revolutionizing Task Scheduling in ColdBoxRevolutionizing Task Scheduling in ColdBox
Revolutionizing Task Scheduling in ColdBox
Ortus Solutions, Corp
 
Disk to Cloud: Abstract your File Operations with CBFS
Disk to Cloud: Abstract your File Operations with CBFSDisk to Cloud: Abstract your File Operations with CBFS
Disk to Cloud: Abstract your File Operations with CBFS
Ortus Solutions, Corp
 
How to Break Your App with Playwright Tests
How to Break Your App with Playwright TestsHow to Break Your App with Playwright Tests
How to Break Your App with Playwright Tests
Ortus Solutions, Corp
 
Securing Your Application with Passkeys and cbSecurity
Securing Your Application with Passkeys and cbSecuritySecuring Your Application with Passkeys and cbSecurity
Securing Your Application with Passkeys and cbSecurity
Ortus Solutions, Corp
 
Schrodinger’s Backup: Is Your Backup Really a Backup?
Schrodinger’s Backup: Is Your Backup Really a Backup?Schrodinger’s Backup: Is Your Backup Really a Backup?
Schrodinger’s Backup: Is Your Backup Really a Backup?
Ortus Solutions, Corp
 
Design system: The basis for a consistent design
Design system: The basis for a consistent designDesign system: The basis for a consistent design
Design system: The basis for a consistent design
Ortus Solutions, Corp
 
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
Ortus Solutions, Corp
 
How to Make a Living as a (ColdFusion) Freelancer?
How to Make a Living as a (ColdFusion) Freelancer?How to Make a Living as a (ColdFusion) Freelancer?
How to Make a Living as a (ColdFusion) Freelancer?
Ortus Solutions, Corp
 
What’s New in ContentBox 6 by Ortus Solutions.pdf
What’s New in ContentBox 6 by Ortus Solutions.pdfWhat’s New in ContentBox 6 by Ortus Solutions.pdf
What’s New in ContentBox 6 by Ortus Solutions.pdf
Ortus Solutions, Corp
 
cbq - Jobs and Tasks in the Background by Ortus
cbq - Jobs and Tasks in the Background by Ortuscbq - Jobs and Tasks in the Background by Ortus
cbq - Jobs and Tasks in the Background by Ortus
Ortus Solutions, Corp
 
Demonstrating Monitoring Solutions for CF and Lucee
Demonstrating Monitoring Solutions for CF and LuceeDemonstrating Monitoring Solutions for CF and Lucee
Demonstrating Monitoring Solutions for CF and Lucee
Ortus Solutions, Corp
 
Ortus Solutions - Headless Content for the Win!
Ortus Solutions - Headless Content for the Win!Ortus Solutions - Headless Content for the Win!
Ortus Solutions - Headless Content for the Win!
Ortus Solutions, Corp
 
Build a Complex Web Form with RuleBox and TestBox
Build a Complex Web Form with RuleBox and TestBoxBuild a Complex Web Form with RuleBox and TestBox
Build a Complex Web Form with RuleBox and TestBox
Ortus Solutions, Corp
 
Reactive CFML with CBWIRE v4 by Ortus Solutions
Reactive CFML with CBWIRE v4 by Ortus SolutionsReactive CFML with CBWIRE v4 by Ortus Solutions
Reactive CFML with CBWIRE v4 by Ortus Solutions
Ortus Solutions, Corp
 
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
Ortus Solutions, Corp
 

More from Ortus Solutions, Corp (20)

Intro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AIIntro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AI
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
 
BoxLang Developer Tooling: VSCode Extension and Debugger
BoxLang Developer Tooling: VSCode Extension and DebuggerBoxLang Developer Tooling: VSCode Extension and Debugger
BoxLang Developer Tooling: VSCode Extension and Debugger
 
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
How to debug ColdFusion Applications using “ColdFusion Builder extension for ...
 
Web Hosting with CommandBox and CommandBox Pro
Web Hosting with CommandBox and CommandBox ProWeb Hosting with CommandBox and CommandBox Pro
Web Hosting with CommandBox and CommandBox Pro
 
Revolutionizing Task Scheduling in ColdBox
Revolutionizing Task Scheduling in ColdBoxRevolutionizing Task Scheduling in ColdBox
Revolutionizing Task Scheduling in ColdBox
 
Disk to Cloud: Abstract your File Operations with CBFS
Disk to Cloud: Abstract your File Operations with CBFSDisk to Cloud: Abstract your File Operations with CBFS
Disk to Cloud: Abstract your File Operations with CBFS
 
How to Break Your App with Playwright Tests
How to Break Your App with Playwright TestsHow to Break Your App with Playwright Tests
How to Break Your App with Playwright Tests
 
Securing Your Application with Passkeys and cbSecurity
Securing Your Application with Passkeys and cbSecuritySecuring Your Application with Passkeys and cbSecurity
Securing Your Application with Passkeys and cbSecurity
 
Schrodinger’s Backup: Is Your Backup Really a Backup?
Schrodinger’s Backup: Is Your Backup Really a Backup?Schrodinger’s Backup: Is Your Backup Really a Backup?
Schrodinger’s Backup: Is Your Backup Really a Backup?
 
Design system: The basis for a consistent design
Design system: The basis for a consistent designDesign system: The basis for a consistent design
Design system: The basis for a consistent design
 
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
ColdBox Debugger v4.2.0: Unveiling Advanced Debugging Techniques for ColdBox ...
 
How to Make a Living as a (ColdFusion) Freelancer?
How to Make a Living as a (ColdFusion) Freelancer?How to Make a Living as a (ColdFusion) Freelancer?
How to Make a Living as a (ColdFusion) Freelancer?
 
What’s New in ContentBox 6 by Ortus Solutions.pdf
What’s New in ContentBox 6 by Ortus Solutions.pdfWhat’s New in ContentBox 6 by Ortus Solutions.pdf
What’s New in ContentBox 6 by Ortus Solutions.pdf
 
cbq - Jobs and Tasks in the Background by Ortus
cbq - Jobs and Tasks in the Background by Ortuscbq - Jobs and Tasks in the Background by Ortus
cbq - Jobs and Tasks in the Background by Ortus
 
Demonstrating Monitoring Solutions for CF and Lucee
Demonstrating Monitoring Solutions for CF and LuceeDemonstrating Monitoring Solutions for CF and Lucee
Demonstrating Monitoring Solutions for CF and Lucee
 
Ortus Solutions - Headless Content for the Win!
Ortus Solutions - Headless Content for the Win!Ortus Solutions - Headless Content for the Win!
Ortus Solutions - Headless Content for the Win!
 
Build a Complex Web Form with RuleBox and TestBox
Build a Complex Web Form with RuleBox and TestBoxBuild a Complex Web Form with RuleBox and TestBox
Build a Complex Web Form with RuleBox and TestBox
 
Reactive CFML with CBWIRE v4 by Ortus Solutions
Reactive CFML with CBWIRE v4 by Ortus SolutionsReactive CFML with CBWIRE v4 by Ortus Solutions
Reactive CFML with CBWIRE v4 by Ortus Solutions
 
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
Building Scaleable Serverless Event-Driven Computing with AWS Lambda powered ...
 

Recently uploaded

Celebrity Girls Call Mumbai 9930687706 Unlimited Short Providing Girls Servic...
Celebrity Girls Call Mumbai 9930687706 Unlimited Short Providing Girls Servic...Celebrity Girls Call Mumbai 9930687706 Unlimited Short Providing Girls Servic...
Celebrity Girls Call Mumbai 9930687706 Unlimited Short Providing Girls Servic...
kiara pandey
 
Mumbai Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service A...
Mumbai Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service A...Mumbai Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service A...
Mumbai Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service A...
3610stuck
 
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
norina2645
 
ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django
akshesh doshi
 
bangalore Girls call 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
bangalore Girls call  👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Deliverybangalore Girls call  👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
bangalore Girls call 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
sunilverma7884
 
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
ThousandEyes
 
Comprehensive Vulnerability Assessments Process _ Aardwolf Security.docx
Comprehensive Vulnerability Assessments Process _ Aardwolf Security.docxComprehensive Vulnerability Assessments Process _ Aardwolf Security.docx
Comprehensive Vulnerability Assessments Process _ Aardwolf Security.docx
Aardwolf Security
 
A Step-by-Step Guide to Selecting the Right Automated Software Testing Tools.pdf
A Step-by-Step Guide to Selecting the Right Automated Software Testing Tools.pdfA Step-by-Step Guide to Selecting the Right Automated Software Testing Tools.pdf
A Step-by-Step Guide to Selecting the Right Automated Software Testing Tools.pdf
kalichargn70th171
 
Celebrity Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Servic...
Celebrity Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Servic...Celebrity Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Servic...
Celebrity Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Servic...
45unexpected
 
GT degree offer diploma Transcript
GT degree offer diploma TranscriptGT degree offer diploma Transcript
GT degree offer diploma Transcript
attueb
 
Amadeus Travel API, Amadeus Booking API, Amadeus GDS
Amadeus Travel API, Amadeus Booking API, Amadeus GDSAmadeus Travel API, Amadeus Booking API, Amadeus GDS
Amadeus Travel API, Amadeus Booking API, Amadeus GDS
aadhiyaeliza
 
Independent Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class H...
Independent Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class H...Independent Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class H...
Independent Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class H...
aslasdfmkhan4750
 
VVIP Girls Call Mumbai 9910780858 Provide Best And Top Girl Service And No1 i...
VVIP Girls Call Mumbai 9910780858 Provide Best And Top Girl Service And No1 i...VVIP Girls Call Mumbai 9910780858 Provide Best And Top Girl Service And No1 i...
VVIP Girls Call Mumbai 9910780858 Provide Best And Top Girl Service And No1 i...
jealousviolet
 
NYGGS 360: A Complete ERP for Construction Innovation
NYGGS 360: A Complete ERP for Construction InnovationNYGGS 360: A Complete ERP for Construction Innovation
NYGGS 360: A Complete ERP for Construction Innovation
NYGGS Construction ERP Software
 
AWS DevOps-Tutorial CHANAKYA SRIYAN DUKKA.
AWS DevOps-Tutorial CHANAKYA SRIYAN DUKKA.AWS DevOps-Tutorial CHANAKYA SRIYAN DUKKA.
AWS DevOps-Tutorial CHANAKYA SRIYAN DUKKA.
Srinivas Dukka
 
Russian Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service ...
Russian Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service ...Russian Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service ...
Russian Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service ...
shanihomely
 
Artificial intelligence in customer services or chatbots
Artificial intelligence  in customer services or chatbotsArtificial intelligence  in customer services or chatbots
Artificial intelligence in customer services or chatbots
kayash1656
 
Girls Call Jogeshwari 9967584737 Provide Best And Top Girl Service And No1 in...
Girls Call Jogeshwari 9967584737 Provide Best And Top Girl Service And No1 in...Girls Call Jogeshwari 9967584737 Provide Best And Top Girl Service And No1 in...
Girls Call Jogeshwari 9967584737 Provide Best And Top Girl Service And No1 in...
simran hot girls
 
Busty Girls Call Mumbai 9930245274 Unlimited Short Providing Girls Service Av...
Busty Girls Call Mumbai 9930245274 Unlimited Short Providing Girls Service Av...Busty Girls Call Mumbai 9930245274 Unlimited Short Providing Girls Service Av...
Busty Girls Call Mumbai 9930245274 Unlimited Short Providing Girls Service Av...
revolutionary575
 
當測試開始左移
當測試開始左移當測試開始左移
當測試開始左移
Jersey (CHE-PING) Su
 

Recently uploaded (20)

Celebrity Girls Call Mumbai 9930687706 Unlimited Short Providing Girls Servic...
Celebrity Girls Call Mumbai 9930687706 Unlimited Short Providing Girls Servic...Celebrity Girls Call Mumbai 9930687706 Unlimited Short Providing Girls Servic...
Celebrity Girls Call Mumbai 9930687706 Unlimited Short Providing Girls Servic...
 
Mumbai Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service A...
Mumbai Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service A...Mumbai Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service A...
Mumbai Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service A...
 
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
Celebrity Girls Call Mumbai 🛵🚡9910780858 💃 Choose Best And Top Girl Service A...
 
ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django
 
bangalore Girls call 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
bangalore Girls call  👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Deliverybangalore Girls call  👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
bangalore Girls call 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
 
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
 
Comprehensive Vulnerability Assessments Process _ Aardwolf Security.docx
Comprehensive Vulnerability Assessments Process _ Aardwolf Security.docxComprehensive Vulnerability Assessments Process _ Aardwolf Security.docx
Comprehensive Vulnerability Assessments Process _ Aardwolf Security.docx
 
A Step-by-Step Guide to Selecting the Right Automated Software Testing Tools.pdf
A Step-by-Step Guide to Selecting the Right Automated Software Testing Tools.pdfA Step-by-Step Guide to Selecting the Right Automated Software Testing Tools.pdf
A Step-by-Step Guide to Selecting the Right Automated Software Testing Tools.pdf
 
Celebrity Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Servic...
Celebrity Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Servic...Celebrity Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Servic...
Celebrity Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Servic...
 
GT degree offer diploma Transcript
GT degree offer diploma TranscriptGT degree offer diploma Transcript
GT degree offer diploma Transcript
 
Amadeus Travel API, Amadeus Booking API, Amadeus GDS
Amadeus Travel API, Amadeus Booking API, Amadeus GDSAmadeus Travel API, Amadeus Booking API, Amadeus GDS
Amadeus Travel API, Amadeus Booking API, Amadeus GDS
 
Independent Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class H...
Independent Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class H...Independent Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class H...
Independent Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class H...
 
VVIP Girls Call Mumbai 9910780858 Provide Best And Top Girl Service And No1 i...
VVIP Girls Call Mumbai 9910780858 Provide Best And Top Girl Service And No1 i...VVIP Girls Call Mumbai 9910780858 Provide Best And Top Girl Service And No1 i...
VVIP Girls Call Mumbai 9910780858 Provide Best And Top Girl Service And No1 i...
 
NYGGS 360: A Complete ERP for Construction Innovation
NYGGS 360: A Complete ERP for Construction InnovationNYGGS 360: A Complete ERP for Construction Innovation
NYGGS 360: A Complete ERP for Construction Innovation
 
AWS DevOps-Tutorial CHANAKYA SRIYAN DUKKA.
AWS DevOps-Tutorial CHANAKYA SRIYAN DUKKA.AWS DevOps-Tutorial CHANAKYA SRIYAN DUKKA.
AWS DevOps-Tutorial CHANAKYA SRIYAN DUKKA.
 
Russian Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service ...
Russian Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service ...Russian Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service ...
Russian Girls Call Mumbai 🎈🔥9930687706 🔥💋🎈 Provide Best And Top Girl Service ...
 
Artificial intelligence in customer services or chatbots
Artificial intelligence  in customer services or chatbotsArtificial intelligence  in customer services or chatbots
Artificial intelligence in customer services or chatbots
 
Girls Call Jogeshwari 9967584737 Provide Best And Top Girl Service And No1 in...
Girls Call Jogeshwari 9967584737 Provide Best And Top Girl Service And No1 in...Girls Call Jogeshwari 9967584737 Provide Best And Top Girl Service And No1 in...
Girls Call Jogeshwari 9967584737 Provide Best And Top Girl Service And No1 in...
 
Busty Girls Call Mumbai 9930245274 Unlimited Short Providing Girls Service Av...
Busty Girls Call Mumbai 9930245274 Unlimited Short Providing Girls Service Av...Busty Girls Call Mumbai 9930245274 Unlimited Short Providing Girls Service Av...
Busty Girls Call Mumbai 9930245274 Unlimited Short Providing Girls Service Av...
 
當測試開始左移
當測試開始左移當測試開始左移
當測試開始左移
 

How we built TryBoxLang in under 48 hours

  • 1. ROOM B PRESENTED BY GAVIN PICKIN How we built Try in under 48 hours
  • 2. GAVIN PICKIN SPEAKER AT ITB 2024 ● Software Consultant for Ortus ● Work with ColdBox, CommandBox, ContentBox APIs and VueJS every day! ● Working with Coldfusion since 1999 - V4 ● Love learning and sharing the lessons learned ● From New Zealand, live in Bakersfield, Ca ● Loving wife, lots of kids, and countless critters
  • 3. INTO THE BOX 2024 How we built TryBoxLang in under 48 hours I am sharing this story because: - We dogfooded our own technology - We used some cool technology - The journey to the destination is just as important - It surprised even us what we could do, and how fast
  • 4. I am sharing this story because: INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - We dogfooded our own technology - We used some cool technology - The journey to the destination is just as important - It surprised even us what we could do, and how fast
  • 5. Our Goals INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - Give users a way to try BoxLang in the browser with no download or installation - Give users a comfortable dev experience - Have an easy way to Embed it in multiple sites - Have a way to theme our editor - Handle the load of our successful marketing
  • 6. Parts INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - What are we going to build the website with? - What editor were we going to use? - How can we make it Embeddable? - How can we make it themeable? - How to go from Code > Response?
  • 7. What are we building the Website with? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - MVP - Simple HTML Page - Next level - CFML Website with index.cfm - Ultimate Goal - BoxLang site with index.bxm - No ColdBox - No ContentBox
  • 8. What editor are we going to use INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - The Monaco Editor is the code editor that powers VS Code. - It is licensed under the MIT License and supports Edge, Chrome, Firefox, Safari and Opera. https://microsoft.github.io/monaco-editor/
  • 9. What can Monaco do? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - Lots!!!!! https://code.visualstudio.com/docs/editor/edit ingevolved
  • 10. What can’t Monaco do? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - It cannot run the background services powered by Node in VS Code - Lose some themes - Some extensions with LSPs, Debuggers etc BUT its still awesome!!!
  • 11. How can we make it Embeddable? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - Should we Build it in React - NO! - Should we build it in VueJS - Probably not - AlpineJS - Maybe We should use Web Components!!!!
  • 12. How can we make it Embeddable? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours There is an existing Monaco Web Component already out there. https://github.com/vanillawc/wc-monaco-editor Plug it in, and we’re DONE!!!!
  • 13. How can we make it Embeddable? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - Plug it in - Choose Settings - Default Code … and we’re DONE!!!!
  • 14. How do we make it Themeable? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - Web Components supports attributes - Web Components encapsulates your Styles We will build some theme options and an attribute to handle it
  • 15. How do we go from Code > Response INTO THE BOX 2024 How we built TryBoxLang in under 48 hours - Editor will have code - When the user clicks a button - We’ll send this code somewhere via Ajax - When we get a response, we will update the UI to show the response
  • 16. Where are we going to send it? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours WASM We haven’t build the WASM BoxLang Runtime yet, so we can’t run it in the browser :( Yet!!!!!
  • 17. API We can build an API endpoint that we can call Where are we going to send it? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 18. What API? ColdBox API? GoLang API? Python API? Node API? (sssh don’t tell Brad) Where are we going to send it? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 19. - We have the BoxLang OS runtime - Should we call it with CFExecute - Deal with Std-in and std-out - Feels a little icky - Will it scale? How will we compile BoxLang Code INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 20. Maybe we could use Docker? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 21. Where’s the Docker image? - We didn’t have a docker image yet - Jon was busy working on real deep BoxLang stuff, so I decided, I could handle that - Build a CLI, and a Web Docker Image - Let’s deploy our docker image Where are we going to send it? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 22. Ssssh, Secret Squirrel INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 23. - Jon Setup ECR - Jon Setup IAM Permissions Let’s store them on AWS ECR INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 24. - After editing IAM permissions for 2 hours - Finally I got the images built and uploaded Let’s store them on AWS ECR INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 25. Run BoxLang CLI in Docker? We can run docker run boxlang-cli $codeToRun - Docker start is not instant… will it be fast enough? - Will it scale? Where are we going to send it? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 26. Run BoxLang in Docker Swarm? - How do we know how many swarm nodes are running? docker service ls | wc - c | maybe - How do we send the code to a less busy swarm node? docker service ls | grep | headache Where are we going to send it? INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 27. Easy Button INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 28. - Handles startup - Handles isolation - Handles speed - Handles scaling - Handles the server (serverless) AWS Lambda solves INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 29. - Luis said ok I’m on it. - 2 hours later, he said “DONE” - I said “done with what?” - He said, Lambda Runtime, boom! Now we need an AWS Lambda Runtime (2 hours) INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 30. - So after I spent too many hours rebuilding all the stuff Luis had already built - I threw all that in a branch just in case it wasn’t a complete waste, then I got to work. Get the Lamba Runtime Compiling BoxLang (3 hours) INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 31. - Jon made me a user - I tried to login but I couldn’t - He reset my password - I still couldn’t login - He set my password, and I was in AWS Lambda IAM Permissions (3 hours) INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 32. - Install the AWS Cli - Install the AWS SAM Cli Testing the AWS Lambda INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 33. - lets see the code Tap into the BoxLang core INTO THE BOX 2024 How we built TryBoxLang in under 48 hours
  • 34. INTO THE BOX 2024 THANK YOU TO OUR SPONSORS INTO THE BOX 2024