Friday, October 22, 2021

Into The Box 2021 - Write Up - Day 1 - Thursday, September 23, 2021


I got invited to speak at the Into The Box 2021 Conference in Houston, TX. These are my thoughts.

-----------------------------------------------------------------------------

The day starts with breakfast! Which I intended to snap a picture of, but forgot. Breakfast was pretty good.

I'm headed in for the Keynote.

NOTE: I took notes during the conference, but am typing this up later, as I can. These notes are mostly just a "train-of-thought". 

schedule.intothebox.org



- Keynote Speakers: Luis Majano, Brad Wood, Eric Peterson, Gavin Pickin, Grant Copley, Jon Clausen, Jorge Reyes

Keynotes free on CFCasts. https://cfcasts.com/series/into-the-box-2021/videos/keynote-day-1

Keynote began with Luis Majano introducing Ortus and imparting the message: 

Words that ruled the land in 2020: Anxiety, Fear, Uncertainty. But there was also Hope, Compassion, Grit! 

Inspiring words. 

Storytime: "Good!"

Podcast by Jocko Willink (Former SEAL, Jocko Podcast) 

Make good out of a bad situation. 

A new "Box": TimeBox BMP - Business Management Platform

  • - Two distributed micro services.
  • - Running on ColdBox 6
  • - Quasar, VueJS Multi UI
  • - Multi-lingual and multi-currency

- Timesheets, Employee/Contractor Mgmt, Client/Project Mgmt, Invoices, Software Licenses, BI, Payroll, Time off, Client Portal, +more.

- Beta starts soon Oct 2021 - Q2 2022.

Are you a victim or a hero? 

Never lose hope. 

Reload, Recalibrate, Reengage, Refocus. 

Activate your faith.

Learn something new.

Try something new.


- Next up, Forgebox with Javier Quintero - Lead Dev of ForgeBox

  In last 12 months:

  •  6 releases 
  •  324 new users
  •  222 new packages
  •  3044 new versions
  •  18.1 million requests!

- Significant increase in users and packages.

- Big News! Forgebox 6 has landed!

  - Introducing ForgeBox Business Plans - new features for orgs

  •  - New dashboard.
  •  - Activity Logs
  •  - New Package Management
  •  - New API Keys Management

- forgebox.io


- Next up: Back with Luis 

  - ColdBox 15th Anniversary

  • Coldbox 5.x - 2018
  • Coldbox 6.x - Aug 2020
  • 9 releases, 6.6 in dev, 7.x planning starts soon.


  - ROADMAP

    - 2020 ==> 5LTS, 6 RC, 6.x Final

  •     - 2021 ==> 5 LTS, 6.lotsaVersions
  •     - 2022 ==> 6 LTS, 7.x Final, 7.x Beta
  •     - 2023 ==> 6 LTS, 7.x

  - CB6 GIANT Leap for ColdBox

  - CB6 Main Features

  •  cbFutures - bringing Java futures to CFML, asynchronus packages, available for any CF dev with WireBox
  •  Task Executors - For ANY CF app. Non-blocking executions. custom thread pools. Management API, CBDebugger visualizer
  •  HMVC Scheduled Tasks - whole heirachy of scheduling in your app
  •  REST Handlers + ColdBox Response - improved approach to building REST APIs
  •  New Renderer - faster
  •  Whoops! - exception handling and stack tracing. Developer experience -> Exception handling.   

- Interesting stuff coming next.

- Close to reactive CFML.


- Next up: CBWire - Grant Copley

 - 1.0 Beta

 - Built on top of Livewire (for PHP)

  •     send HTML "over the wire" instead of JSON. 

 - Can often eliminate back end

 - keeps template rendering on the server  

 - box install cbwire; mkdir wires; OR box install commandbox -cbwire

 - This stuff looks really cool!

 - Grant has a session about cbWire later today. 


- Next up: Commandbox - Brad Wood - Lead Dev CommandBox

  •  - 7 years old - 33 total releases, Lots of community contributions
  •  - Over 105K downloads
    •    - 33K for CB 5x
    •    - 2.7K avg/month
    •  - 133K ACF, 224K Lucee installs
  •  - More people using Commandbox than Adobe installs.
  •  - 44% Local Dev environments

 - CommandBox 5.1.0

  •    - start pure HTML server
  •    - Light/thin binaries
  •    - Custom tray actions
  •    - Server Profiles
  • - Secure by default
  •    - Server Rules
  •    - Task Runner Lifecycle Events
  •    - System Setting ${} Namespaces

 - In CB5.3

  •    - Override Config and Server settings with Env Vars
  •    - HTTP/2 Support
  •    - JMES JSON filtering / jq Command
  •    - Table Printer - ASCII art
  •    - HTTPS Redirect / HSTS   

 - In CB5.4

  •    - web.xml Overrides
  •    - server prune command == get rid of older servers
  •    - ask and confirm commands == wizards, scripts
  •    - Support for Lucee event gateways
  •    - Import/Export specific settings only (like import db settings only)
  •    - Auto replacement of passwords with env vars
  •    - Auto creation of .env file
  •    - Support Lucee server/web context
  •    - More env var support - Set anything on the server in cfconfig

  - CommandBox uses WireBox.

"Go forth and Conquer!"

Personal Obversations: There are a lot of really cool "Box" things that I don't currently use. I need to learn more about them. Especially Coldbox and Commandbox. And Testbox, too. 

Off to the sessions...

-----------------------------------------------------------------------------

SESSION 1 - cbWire - Coldbox + Livewire - Grant Copley

=Introducing cbwire: a ColdBox module that makes building reactive, dynamic, and modern interfaces delightfully easy.

 - Front end complexity

    - Lots of complexity. Frameworks.

 - Coldbox module @ 1.0 Beta

 - Based on Livewire

 - Intelligent DOM-diffing

 - `box install cbwire` < in root of project

    - `wireStyles()` - css styling

    - `wireScript()` - 

    - `wire()` - new ?????

 - Github / GrantCopley/cbwire-demo

    - Tailwind.css

    - Commandbox BulletTrain

-----------------------------------------------------------------------------

SESSION 2 - Websockets 201 - w Giancarlo Gomez

== So you know what WebSockets are and how to configure them for your application, but now what?

= So you know what WebSockets are and how to configure them for your application, but now what? Building on the foundation of WebSockets 101, I will take a deep dive into designing and debugging a WebSocket application. You will learn how to leverage listeners for your channels, handle authentication and how to view all your connections. I will review how to use browser Web Developer Tools as well as a simple drop in WebSocket Console App to debug your apps. We will discuss how to keep your connections alive thru various states of your app using AdvancedSocket and how you can connect to your ColdFusion WebSocket server from other client apps. Follow me on this live coding adventure, as we further our knowledge of what we can do with WebSockets!

  - I've watched Giancarlo give this preso multiple times. It's very interesting stuff.

  - Github - GiancarloGomez - Lots of repos for WebSockets

-----------------------------------------------------------------------------

LUNCH

<picture>

Chicken & Fetuccini; Grilled veggies; Salad; Cheesecake

Edgardo Dancing! This will definitely be a highlight of the conference. Surely there's a video somewhere. 

-----------------------------------------------------------------------------

SESSION 3 - Scheduling Tasks The Human Way by Brad Wood

== We'll learning about the new features of the AsyncManager for scheduling thread executions. You can use this feature in ColdBox apps as well as standalone CacheBox, WireBox, and LogBox use cases.

 - I always enjoy talks by Brad. He takes Energy up to 11.

 - Configuration by code.

 - task(.....)

-----------------------------------------------------------------------------

SESSION 4 - Systems Thinking for Software Devs  by Seth Stone

== It's more important for software developers to be good "thinkers" than good "coders".

= In this talk we'll examine how Systems Thinking principles can be used to evaluate our own mental models and ultimately increase our ability to solve complex problems. By thinking more systematically we can uncover innovative solutions that add real value to the organizations we're a part of.

 - Mental Model = an abstraction that simplifies reality so that your mind can operate and make decisions

 - Feedback Loop = Mechanism for ???? info that tells us if our Mental Model is accurate.

 - "Simple Rules for Systems Thinking 

- (DSRP) ===> Not meant to be applied in isolation

  •   - Distinctions
  •           - Systems
  •           - Relationships
  •           - Perspectives

    - Distinctions = any idea can be distinguished from the other ideas it is with. 

==> OSI Model, Semantic HTML

==> ERD Process ======  |THING 1|  |THING2|

    - Systems = any idea can be split into parts or structures

==> MVC Example

==> ERD Process ====== |____|

                               |????|

    - Relationships = any idea can relate to another

        ==> TIME <=> COST <=> QUALITY triangle. Inversion of Conrol model.

    - Perspectives = any thing can be the point of view of another thing

==> User stories

  - "A problem well stated is a problem half solved." - Charles Kettering

  - Plectica.com ==> Tool for visualizing a mental model.

-----------------------------------------------------------------------------


SESSION 5 - Testing A to Z by John Farrar

==Testing, too much or too little can break a project. The pathway is not a tight rope walk it is a broad road. Knowing the right types of testing and the right amount is critical. It has been said that failure is inevitable, proper preparation and testing velocity keep us productive and agile. This session will discuss the right mix of many approaches to testing. The right mix depends on your needs so we will be covering many types of testing hard and fast.

= Testing is not everything. We will not be able to foresee every challenge or prevent every issue. Certainly it should be more than nothing. It should be more than a feeling. Steve Blank says, "There are no facts inside the building so get outside." This principle should be practiced in testing. It worked on my machine is not sufficient. We will be discussing many testing mindsets, the tools that help us put those mindsets into action, the types of testing, and how to choose testing balance that works for your team, company and project. We will briefly touch on TestBox... but that is only a small part of testing options. Here are the tools we will present during our talk.

  •     Cypress
  •     Jest
  •     Lighthouse
  •     Postman ( Newman )
  •     TestBox

The types of testing we will be discussing during the talk:

  •     A/B Testing
  •     End to End Testing
  •     Integration Testing
  •     Load Testing
  •     Performance Testing
  •     Test Driven Development
  •     Unit Testing
  •     User Acceptance Testing

  - how to make testing effective

  - sysapps.com

-----------------------------------------------------------------------------

SESSION 6 - Using Testbox to refactor Old Code by Dan Card

== In this session, we will start with a page of code that needs to be refactored how we can use Testbox to simply run functions in isolation.

= As much as the need for full code coverage and writing your code a certain way to make it testable is discussed, if you have thousands of lines of code in dozens or hundreds of files, the idea of having any code coverage at all might seem daunting and beyond feasibility. In this session, we will start with a page of code that needs to be refactored how we can use Testbox to simply run functions in isolation. This has the immediate benefit of being able to test whether a function is working as expected without having to navigate through the front end of your app to get to a particular state. After running the function in isolation, we will write a few tests on the code "as is" and then start to refactor it using Testbox to slowly build up our code coverage. Along the way, we will look at some refactoring techniques and also concept of mocking.

- box install ITB...????  >>> Install demo for this session.

- CommandBox Host Updater!

-----------------------------------------------------------------------------

SESSION 7 - What's in your Dev Backpack (Postman, Webhook.site, ngrok) by Daniel Garcia

== I will give an overview of each of the three items, talk about how you can get started using them and why they are useful, show examples, and then open the discussion to see if anyone has other tools they can recommend.

- Postman is Awesome! => Easy to test Rest APIs. API platform that ????

- webhook.site => Lets you test any incoming HTTP request.

- nGrok => Expose webserver on local machine to internet

- webhook.site === DO NOT SEND PII IN FREE VERSION !!!!

- There's a forgebox module for ngrok.

- can resolve ngrok.io subdomains

- Note: I really wanted to see Scott's preso on PostgreS, but it got moved and conflicted with another session I wanted to see. I'm fairly certain that even if there was only a single track, a conference would find a way to make me have to decide on which session I wanted to watch. :-/

-----------------------------------------------------------------------------

This brings Day 1 to a close, and now it's time for 

HAPPY BOX!!!

-----------------------------------------------------------------------------

- This was a blast! The mariachi band was great. Food was awesome. Beer was good. The hotel staff was excellent. I'll have to dig around and see if I can find any videos of the band. 

- But now that I've jotted down my notes, it's bedtime. I'll try to go through my preso one more time before bed. 

======================================================================

No comments:

Post a Comment