SlideShare a Scribd company logo
INTO THE BOX 2024
THE NEW ERA OF
MODERN
DEVELOPMENT
BLUE ROOM
PRESENTED BY
SPEAKER NAME
BoxLang Developer Tooling
Jacob Beers
SPEAKER IN ITB 2024
Jacob is a Senior Developer at Ortus Solutions, Corp. While he has been working as a
programmer for the past 10 years he never intended to make a career out of it. His professional
journey thus far has been marked by a diverse set of pursuits including 3d animation, game
design, fine art, special education, and operating a survival swim school. He likes to think his
unusual combination of experiences provides him with a unique and pragmatic approach to
software development.
Relatable Facts
● Senior Developer at Ortus
● Likes the band CAKE
● Wife and 3 kids
● Credited with “special thanks” on
an official “Dora the Explorer
Video Game”
INTO THE BOX 2024
Disclaimer
🤞

Recommended for you

Container Days
Container DaysContainer Days
Container Days

This document summarizes a company's journey to implementing Docker containers in production. It begins with using Docker in hackathons and development environments. Early production uses involved deploying individual services as containers but lacked orchestration. They then tried microservices and deploying to a self-hosted registry, which had stability issues. They eventually selected Rancher for orchestration and Quay.io for the registry. Secret configuration is managed using SaltStack pillars. Templating allows a single docker-compose file across environments. Rancher-compose is used to deploy versions to environments and roll back if needed. This overcomes earlier challenges and provides a smooth path to containerized microservices in production.

cadec-2017-golang
cadec-2017-golangcadec-2017-golang
cadec-2017-golang

This document provides an overview of developing microservices using the Go programming language. It discusses how Go can help reduce the footprint of microservices compared to JVM-based solutions. It then provides background on the Go language, its design goals and pros and cons for development. The rest of the document discusses using Go for microservices, including integrating with services for configuration, logging, distributed tracing, circuit breaking and other concerns. It also compares developing microservices in Go versus Spring Boot and provides code samples.

golanggoogle
Building an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stackBuilding an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stack

This document provides an overview of building an eCommerce site using the MEAN stack. It begins with an introduction to JavaScript and then discusses the key components of the MEAN stack including Node.js, AngularJS, and MongoDB. It provides details on each component, their history, features, and how they work together. It emphasizes how MongoDB is well-suited for eCommerce applications due to its flexible schema and ability to store different product types within the same collection.

express jsangular jsnode js
INTO THE BOX 2024
Our Goals
● Provide a first-party supported extension for VSCode
● Adhere to the latest standards (LSP, DAP)
● Learn from others and implement their features in a way that
makes sense for BoxLang
○ TypeScript - fantastic intellisense
○ Java - great automated test integration
○ Gradle - helpful GUI for executing tasks
vscode-cfml
INTO THE BOX 2024
Prior Art
● Maintainer: KamasamaK (https://github.com/KamasamaK)
● The original
cfmleditor
● Maintainer: Gareth Edwards (https://github.com/garethedwards-tass)
● What we forked
INTO THE BOX 2024
Installation
Install it like any other VSCode
extension
● Open VSCode
● View > Extensions
● Type “BoxLang” in the search bar
● Install!
INTO THE BOX 2024
Feature Set - What’s in the box?
IDE Tools Debugger LSP

Recommended for you

Dusty Parrott Resume
Dusty Parrott ResumeDusty Parrott Resume
Dusty Parrott Resume

Lester Parrott is a programmer seeking a job. He has over 7 years of experience programming in C/C++ and over 4 years in C#. He previously worked as a Microsoft Lab Engineer where he created tools to streamline processes using languages like C#, SQL, and Perl. He is currently one of two primary programmers for an indie game called "Highway to the Moon" where he worked on systems like graphics, input, memory management, and the game engine loop. He has a degree in game programming from Digipen Institute of Technology and lists skills in Agile/Scrum methodologies, object-oriented design, and version control systems like Git and SVN.

Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)

This document discusses developing cross-platform native apps using Java with the Intel Multi-OS Engine (MOE). It describes MOE's capabilities like using Java to build iOS apps, its performance compared to other solutions, and how its bindings generator allows full access to native APIs. MOE allows building once and deploying to multiple platforms like iOS and Android without rewriting code.

java on iosjavaios
GWAB Lyon - Legacy code atelier
GWAB Lyon - Legacy code atelierGWAB Lyon - Legacy code atelier
GWAB Lyon - Legacy code atelier

The document discusses a legacy company called OldCompanyWithLegacy that wants to modernize a legacy product by moving it to the cloud and improving its code quality. It hired outsourced developers long ago to create the product, whose codebase and functionality are poorly understood. The company is seeking a developer team that can analyze the code, move it to Azure without breaking functionality, and improve the design for international collaboration. It provides a GitHub link and sample inputs/outputs to the code for applicants to analyze as part of an exercise.

gwab lyon legacy code atelier
INTO THE BOX 2024
Feature Set - IDE Features
IDE Tools
● Powered by BoxLang
● Running a file
○ script execution (.bxs)
○ class with main function (.bx)
● Running a webserver
● Internal tools - AST / Transpilation
● boxlang.json completion
INTO THE BOX 2024
Feature Set - Debugger
Debugger
● Debug Targets
○ CLI scripts
○ Local webserver
○ Remote webserver
● Implements *most of the DAP
●Official page for Debug Adapter Protocol (microsoft.github.io)
INTO THE BOX 2024
How the Debugger Works
The BoxLang Debugger
is heavily based on the
com.sun.jdi package.
We instantiate and configure JDI
classes to do our bidding and
provide us information about
BoxLang while it is running.
The JDI also gives us the ability
to control the state of BoxLang
apps while they run.
INTO THE BOX 2024
How does com.sun.jdi work?
JPDA - Java(tm) Platform Debugger Architecture
(oracle.com)
JVMTI - JVM(TM) Tool Interface 17.0.0 (oracle.com)
Debugger attachment strategies -
VirtualMachineManager (Java SE 17 & JDK 17)
(oracle.com)
JDI - com.sun.jdi (Java SE 17 & JDK 17)
(oracle.com)
JPDA
JDI
JVMTI
JDWP
BoxLang Debugger

Recommended for you

Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx

How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.

developer toolsopen sourceproductivity
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)

This presentations targets students or working professionals. You may know Google for search, YouTube, Android, Chrome, and Gmail, but did you know Google has many developer tools, platforms & APIs? This comprehensive yet still high-level overview outlines the most impactful tools for where to run your code, store & analyze your data. It will also inspire you as to what's possible. This talk is 50 minutes in length.

apiauthorizationbigquery
Crossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approachCrossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approach

Organizations are now using low-code and pro-code tools to build digital experiences internally and externally. However, not having the right alignment between these two approaches slows down delivery. Different developer personas that work in silos, no connection between low-code and pro-code applications, low-code creating unmanageable shadow IT applications, no single codebase or build pipeline, and interruptions to the professional developer flow are some significant drawbacks. In this session, Asanka will look at a platform approach to bridge the low-code and pro-code chasm.

lowcodeprocodedigital transformation
INTO THE BOX 2024
Feature Set - What’s in the box?
LSP
● Speaks fluent BLAST and LSP!
○ Official page for Language Server Protocol (microsoft.github.io)
● The compiler and runtime share their
knowledge with the extension
● Code Formatting
● Diagnostic information (syntax, logic,
etc.)
● Code outline
INTO THE BOX 2024
How the LSP Works
VSCode
textdocument/definition
Language Server
Developer ctrl + right-clicks
a function invocation
Display information in IDE
INTO THE BOX 2024
The Future
● Language Server
○ Improved inline documentation
○ Type hinting
○ Configuration awareness,
datasources, mappings, etc…
○ Module support!
● Debugger
○ Communication with LSP
○ Advanced Java integration
○ Advanced execution state
management
● Extension Tools
○ Server management
○ Refactoring help
INTO THE BOX 2024
The Future
Community
● Join our slack channel
● Install the extension
○ Tell me what is broken
○ Tell me what you want to see
● Write Code! Send pull requests!
○ github.com/ortus-boxlang/vscode-boxlang
○ github.com/ortus-boxlang/boxlang-lsp
○ github.com/ortus-boxlang/BoxLang
(debugger)

Recommended for you

INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...

INTERFACE, by apidays 2021 - It’s APIs all the way down June 30, July 1 & 2, 2021 Crossing the low-code and pro-code chasm: a platform approach Asanka Abeysinghe, Chief Technology Evangelist at WSO2

apidaysinterface by apidaysapi product
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx

How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.

toolingdeveloper toolsoss
s2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdf
s2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdfs2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdf
s2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdf

This document discusses the emergence and growth of FPGA-based prototyping for system-on-chip (SoC) design. It provides an overview of the history and evolution of FPGA prototyping from early uses of programmable logic in labs to today's sophisticated prototyping platforms. The document also examines strategies for FPGA prototyping, including developing designs with prototyping in mind from the start and moving prototyping to the cloud. A field guide section provides guidance on implementing an FPGA prototyping methodology.

s2c-prototypical-the-emergence
INTO THE BOX 2024
THANK YOU TO OUR
SPONSORS
INTO THE BOX 2024

More Related Content

Similar to BoxLang Developer Tooling: VSCode Extension and Debugger

React Native? A developer's perspective
React Native? A developer's perspectiveReact Native? A developer's perspective
React Native? A developer's perspective
BorisConforty
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
Grace Jansen
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
DynamicInfraDays
 
Container Days
Container DaysContainer Days
Container Days
Patrick Mizer
 
cadec-2017-golang
cadec-2017-golangcadec-2017-golang
cadec-2017-golang
TiNguyn863920
 
Building an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stackBuilding an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stack
divyapisces
 
Dusty Parrott Resume
Dusty Parrott ResumeDusty Parrott Resume
Dusty Parrott Resume
Dusty Parrott
 
Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)
Gergely Kis
 
GWAB Lyon - Legacy code atelier
GWAB Lyon - Legacy code atelierGWAB Lyon - Legacy code atelier
GWAB Lyon - Legacy code atelier
florentpellet
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx
Grace Jansen
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
 
Crossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approachCrossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approach
Asanka Abeysinghe
 
INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...
apidays
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
Grace Jansen
 
s2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdf
s2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdfs2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdf
s2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdf
S2C Limited
 
DSC NTUE Info Session
DSC NTUE Info SessionDSC NTUE Info Session
DSC NTUE Info Session
ssusera8eac9
 
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build TimesUsing Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
DevOps.com
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.
JooinK
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
Francesca Tosi
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
HanLing Shen
 

Similar to BoxLang Developer Tooling: VSCode Extension and Debugger (20)

React Native? A developer's perspective
React Native? A developer's perspectiveReact Native? A developer's perspective
React Native? A developer's perspective
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
 
Container Days
Container DaysContainer Days
Container Days
 
cadec-2017-golang
cadec-2017-golangcadec-2017-golang
cadec-2017-golang
 
Building an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stackBuilding an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stack
 
Dusty Parrott Resume
Dusty Parrott ResumeDusty Parrott Resume
Dusty Parrott Resume
 
Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)
 
GWAB Lyon - Legacy code atelier
GWAB Lyon - Legacy code atelierGWAB Lyon - Legacy code atelier
GWAB Lyon - Legacy code atelier
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Crossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approachCrossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approach
 
INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
 
s2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdf
s2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdfs2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdf
s2c-prototypical-the-emergence-of-fpga-based-prototyping-for-soc-design.pdf
 
DSC NTUE Info Session
DSC NTUE Info SessionDSC NTUE Info Session
DSC NTUE Info Session
 
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build TimesUsing Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
Using Multi-stage Docker, Go, Java,& Bazel to DESTROY Long Build Times
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
 

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
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
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
 
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
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
 
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
 
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

dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf
DNUG e.V.
 
MVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptxMVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptx
Mitchell Marsh
 
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Livetecs LLC
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Asher Sterkin
 
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdfResponsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Trackobit
 
Addressing the Top 9 User Pain Points with Visual Design Elements.pptx
Addressing the Top 9 User Pain Points with Visual Design Elements.pptxAddressing the Top 9 User Pain Points with Visual Design Elements.pptx
Addressing the Top 9 User Pain Points with Visual Design Elements.pptx
Sparity1
 
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdfWhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
onemonitarsoftware
 
Overview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptxOverview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptx
Mitchell Marsh
 
Break data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud ConnectorsBreak data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud Connectors
confluent
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
sudsdeep
 
What is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for FreeWhat is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for Free
TwisterTools
 
Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.
shivamt017
 
Leading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptxLeading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptx
taskroupseo
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
sachin chaurasia
 
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTIONBITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
ssuser2b426d1
 
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptxWired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
SimonedeGijt
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
Philip Schwarz
 
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
Roshan Dwivedi
 

Recently uploaded (20)

dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf
 
MVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptxMVP Mobile Application - Codearrest.pptx
MVP Mobile Application - Codearrest.pptx
 
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
 
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdfResponsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
 
Addressing the Top 9 User Pain Points with Visual Design Elements.pptx
Addressing the Top 9 User Pain Points with Visual Design Elements.pptxAddressing the Top 9 User Pain Points with Visual Design Elements.pptx
Addressing the Top 9 User Pain Points with Visual Design Elements.pptx
 
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdfWhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
 
Overview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptxOverview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptx
 
Break data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud ConnectorsBreak data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud Connectors
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
 
What is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for FreeWhat is OCR Technology and How to Extract Text from Any Image for Free
What is OCR Technology and How to Extract Text from Any Image for Free
 
Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.
 
Leading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptxLeading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptx
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
 
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTIONBITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
 
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptxWired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
 
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
 

BoxLang Developer Tooling: VSCode Extension and Debugger

  • 1. INTO THE BOX 2024 THE NEW ERA OF MODERN DEVELOPMENT
  • 2. BLUE ROOM PRESENTED BY SPEAKER NAME BoxLang Developer Tooling
  • 3. Jacob Beers SPEAKER IN ITB 2024 Jacob is a Senior Developer at Ortus Solutions, Corp. While he has been working as a programmer for the past 10 years he never intended to make a career out of it. His professional journey thus far has been marked by a diverse set of pursuits including 3d animation, game design, fine art, special education, and operating a survival swim school. He likes to think his unusual combination of experiences provides him with a unique and pragmatic approach to software development. Relatable Facts ● Senior Developer at Ortus ● Likes the band CAKE ● Wife and 3 kids ● Credited with “special thanks” on an official “Dora the Explorer Video Game”
  • 4. INTO THE BOX 2024 Disclaimer 🤞
  • 5. INTO THE BOX 2024 Our Goals ● Provide a first-party supported extension for VSCode ● Adhere to the latest standards (LSP, DAP) ● Learn from others and implement their features in a way that makes sense for BoxLang ○ TypeScript - fantastic intellisense ○ Java - great automated test integration ○ Gradle - helpful GUI for executing tasks
  • 6. vscode-cfml INTO THE BOX 2024 Prior Art ● Maintainer: KamasamaK (https://github.com/KamasamaK) ● The original cfmleditor ● Maintainer: Gareth Edwards (https://github.com/garethedwards-tass) ● What we forked
  • 7. INTO THE BOX 2024 Installation Install it like any other VSCode extension ● Open VSCode ● View > Extensions ● Type “BoxLang” in the search bar ● Install!
  • 8. INTO THE BOX 2024 Feature Set - What’s in the box? IDE Tools Debugger LSP
  • 9. INTO THE BOX 2024 Feature Set - IDE Features IDE Tools ● Powered by BoxLang ● Running a file ○ script execution (.bxs) ○ class with main function (.bx) ● Running a webserver ● Internal tools - AST / Transpilation ● boxlang.json completion
  • 10. INTO THE BOX 2024 Feature Set - Debugger Debugger ● Debug Targets ○ CLI scripts ○ Local webserver ○ Remote webserver ● Implements *most of the DAP ●Official page for Debug Adapter Protocol (microsoft.github.io)
  • 11. INTO THE BOX 2024 How the Debugger Works The BoxLang Debugger is heavily based on the com.sun.jdi package. We instantiate and configure JDI classes to do our bidding and provide us information about BoxLang while it is running. The JDI also gives us the ability to control the state of BoxLang apps while they run.
  • 12. INTO THE BOX 2024 How does com.sun.jdi work? JPDA - Java(tm) Platform Debugger Architecture (oracle.com) JVMTI - JVM(TM) Tool Interface 17.0.0 (oracle.com) Debugger attachment strategies - VirtualMachineManager (Java SE 17 & JDK 17) (oracle.com) JDI - com.sun.jdi (Java SE 17 & JDK 17) (oracle.com) JPDA JDI JVMTI JDWP BoxLang Debugger
  • 13. INTO THE BOX 2024 Feature Set - What’s in the box? LSP ● Speaks fluent BLAST and LSP! ○ Official page for Language Server Protocol (microsoft.github.io) ● The compiler and runtime share their knowledge with the extension ● Code Formatting ● Diagnostic information (syntax, logic, etc.) ● Code outline
  • 14. INTO THE BOX 2024 How the LSP Works VSCode textdocument/definition Language Server Developer ctrl + right-clicks a function invocation Display information in IDE
  • 15. INTO THE BOX 2024 The Future ● Language Server ○ Improved inline documentation ○ Type hinting ○ Configuration awareness, datasources, mappings, etc… ○ Module support! ● Debugger ○ Communication with LSP ○ Advanced Java integration ○ Advanced execution state management ● Extension Tools ○ Server management ○ Refactoring help
  • 16. INTO THE BOX 2024 The Future Community ● Join our slack channel ● Install the extension ○ Tell me what is broken ○ Tell me what you want to see ● Write Code! Send pull requests! ○ github.com/ortus-boxlang/vscode-boxlang ○ github.com/ortus-boxlang/boxlang-lsp ○ github.com/ortus-boxlang/BoxLang (debugger)
  • 17. INTO THE BOX 2024 THANK YOU TO OUR SPONSORS INTO THE BOX 2024