TYPO3 Developer Days 2024: Day 1 - 1st August 2024

TYPO3 Developer Days is taking place in Germany over the next few days. As I attend each talk, I've been writing bullet points in my notebook of noteworthy things, things I agree with, things to remember or things to look up later.

The following post is those bullet points in a digital format. They probably won't make sense to anyone, but serve as a nudge for future me and stop them from living and dying in my notebook. They are also my twist and interpretation of what was said - some of it is verbatim, but other notes are what I took from it.

See other days:

Keynote - Benni Mack

T3DD Schedule Link / Slides (tbc) / Video (tbc)

  • Generative AI in a CMS
    • Content generation
    • Coding
    • Translating
  • Headless separates content from design
  • Structured and semantic content is key
  • Get your content straight and then let AI do the heavy lifting of editing, optimising & translating
  • TYPO3 Content blocks
    • Currently an extension but will be in the core in v13
  • TYPO3 SurfCamp built a website with site sets
    • https://github.com/typo3incubator
  • TYPO3 have a11y tests in the pipeline - look into this
  • TYPO3 are extending the LTS by 2 months (from v13)

Migrating from jQuery - Core Journey to Vanilla JS - Andreas Nedbal

T3DD Schedule Link / Slides / Video (tbc)

  • $ replace with documentQuerySelector(All)
  • attr with getAttribute/setAttribute
  • .data('*') - use regex to replace with .datatset.$1
  • Native DOM API has no chaining of methods
  • closest exists in native JS too
  • new RegularEvent('change', function() {}).delegateTo (ref)
  • TYPO3 Backend JS has it's own AjaxResponse class to use instead of $.ajax
  • Lit/LitElements is a wrapper library for web components which is helpful for building dynamic HTML
  • Firefox restricts JS to the frame (Webkit ignores this)

Settings and Configuration Management - Benjamin Franzke

T3DD Schedule Link / Slides / Video (tbc)

  • All settings should have a default
  • Site Sets - Configuration/Sets/[SET NAME]
    • Settings, TypoScript * TSConfig
    • Shareable
  • Configuration/Sets/*/config.yaml
    • Should have a name and label
  • In TYPO3 -> Edit Site Config -> "Sets for this site"
  • Site Sets can inherit other site sets
  • settings.yaml is available in v12 inside the config/sites folder
    • This was then replicated in a site set to centralise settings & allow to be shared
  • Settings are rendered as if they were in constants.typoscript
    • Can access them in TypoScript and Fluid
    • There is also a new method/attribute on a site config (getSettings())
  • Any setup.typoscript and page.tsconfig inside the site set folder will be loaded automatically
  • Site sets are a at a site level (can't load on individual pages)
  • Once using site sets - remove the TYpoScript include (E.g. EXT:form/Configuration/TypoScript/setup) and, instead, import the site set
    • Encourage ext authors to use site sets
  • No more db changes are needed (e.g. sys_template)
  • Sit settings also replace constants.typoscript (although still compatible)

TYPO3 Agencies and AI: An Experience Report - Fabian Stein

T3DD Schedule Link / Slides (tbc) / Video (tbc)

  • AI is seen as boring, disruptive and as an uncertainty
  • AI will not replace people in the short/mid-term
  • Clients are highly interested in AI, but they don't know how to use it
  • Use cases
    • Getting information (e.g. FAQs)
    • Help with text editing
    • Generating stock images
  • How can we support use of AI?
    • Tell success stories
    • Workshops - give people time to understand
    • Offer guidance
  • AI is change, and change is scary
  • RAG Workflow
    • Advantages
      • Easy to update
      • Easy to change
      • Many opportunities to use it
    • Disadvantages
      • Difficult to set up
      • Still can generate wrong answers
  • Open Source LLMs
    • Lama 3.1 (still needs a lot of resources)
  • Gaia-X
    • OpenGPT-x
      • Although no public progress since September last year

Testing with Doubles: Why, When, and How? - Sebastian Bergmann

T3DD Schedule Link / Slides / Video (tbc)

This was a more practical talk that went a little over my head, hence the small notes

  • Testing double is like a stunt double
    • Saves money as your double replaces "expensive" calls
  • Terms
    • Dummy object - no methods
    • Test stub - object & methods
    • Test Spy - keeps track of which methods and properties called
    • Mock object - expect X to be called Y times
  • Test stub
    • Looks like a real object
    • Can be configured to return a value or throw exception
  • Mock object
    • Looks like a real object
    • Can accept messages
    • Test communications between objects
  • PHP makes mock objects dynamic
    • E.g. with createStub
  • PHPStan reads certain comments (e.g. @template) to better testing - also this helps with IDE hinting
  • Never mock what isn't yours

Time Management for Developers - Rachel Foucard

T3DD Schedule Link / Slides (tbc) / Video (tbc)

  • Perception
    • Rachel told the story of rocks in a jar
    • Detect when something is good enough
      • You can add more value by focusing on more features, rather than whittling something to perfection
    • Past / Present / Future -> Not Now / Now / Not Now -> Done / In Progress / To Do
    • Days are routine which can help you synchronise with others but sometimes feel like they are running away from you
    • Social Acceleration
      • Technical (e.g. sending an email instead of a letter)
      • Social Change (e.g. postal workers losing jobs because of email)
      • Pace of Life (e.g. instantaneous communication instead of waiting for a letter)
  • Synchronisation
    • Meetings!
    • Use the same tools to plan your personal life as you do your professional life
  • Tools
    • Mandatory tools are ones your stakeholders/company use
    • Personal tools are the ones you prefer
    • The best tool is the one that you use regularly
    • If a task is less than 5 minutes, don't add it to your To Do, do it now
    • Personal To do lists should be: Update -> Watch -> Update -> Watch (etc)
      • Should look at your to do list at least 3 times a day
    • Synchronous tools (e.g. PM tools) should follow the same pattern but be looked at daily
  • Anticipation
    • Executing the task before time
    • Forseeing tasks
    • Emergency vs Priority is Fast vs First
    • Never plan 5 days of work a week - it doesn't exist
    • Track your time - not just for your company but for you, see where your time goes and it gives you better estimations

Other Talk Resources

View this post on Github

You might also enjoy…

Mike Street

Written by Mike Street

Mike is a CTO and Lead Developer from Brighton, UK. He spends his time writing, cycling and coding. You can find Mike on Mastodon.