This is a live blog from the TYPO3 Developer Days in Malmö (Sweden). This is the page for friday, Juli 14th 2017.

If you like the live blog, please do not hesitate to share the URL. Thank you! At the end of the page there are some social media links, you can use to share.

I hope you enjoy reading. If you have feedback, just let me know.

Here are the links to the other days:

Marcus Schwemer July 15, 20179:51 AM

Good morning from Malmö for the third day! The night was short for many (most) people.

Marcus Schwemer July 15, 201710:01 AM

Here is a picture from last evening. It’s the view from the skybar in the Malmö Arena Hotel.

Marcus Schwemer July 15, 201710:03 AM

The sessions will start at 10:15.

You will find me in the talk of Peter Förger about “Deployment Strategies – The Good, the Bad, The Ugly”

Marcus Schwemer July 15, 201710:05 AM

Other options would be “t3kit – kickstart a webpage in minutes” (Josef Spisiak) and “Marketing Automatation: an Introduction” (Jurian Janssen)

Marcus Schwemer July 15, 201710:17 AM

Here we go now: Peter Förger about deployment … it is not about tools, but about the ideas behind deployment.

Marcus Schwemer July 15, 201710:20 AM

The ugly: Deployment with TYPO3 4.1 … Quixplorer and phpMyAdmin FTW!

Marcus Schwemer July 15, 201710:22 AM

Antipattern: Deploying software manually

Signs for this anti-pattern

* extensive documentation
* manual testing
* frequent corrections
* unpredictible outcome

Marcus Schwemer July 15, 201710:23 AM

Antipattern: Different environments

a.k.a. “It works on my machine”

Marcus Schwemer July 15, 201710:24 AM

Signs of this antipattern

* Testing on development machine
* different binaries, installers, config files
* no “devops”
* deploy successful to staging, to production it fails
* manual configuration management

Marcus Schwemer July 15, 201710:28 AM

Now we learn the “good part”

Marcus Schwemer July 15, 201710:29 AM

The agile commandements

* keep your code in a repository

It eases collaboration and you will love the history

Marcus Schwemer July 15, 201710:31 AM

Automate the build and keep it fast and green.

Goal is to deploy often small pieces to the server and only go on, if all is “green”

Marcus Schwemer July 15, 201710:33 AM

Further you want to automate deployment to have reliable and reprocable results.

Marcus Schwemer July 15, 201710:33 AM

Testing should happen in a clone of the production environment.

Marcus Schwemer July 15, 201710:36 AM

Build radical for continuous integration

* Reusable
* Accessible
* Documented => for devs, pm and customers
* Integrated
* Complete
* Automated
* Lean => add value rapidly

Marcus Schwemer July 15, 201710:38 AM

About CI:

Marcus Schwemer July 15, 201710:39 AM

Commit small steps and squash the work before merging

Marcus Schwemer July 15, 201710:44 AM

The Deployment pipeline

=> Ticketsystem
=> Commit code
=> Test it automatically
=> Formulate a test case for the customer
=> Deploy to production

Marcus Schwemer July 15, 201710:45 AM

Pipelines are configured in Jenkins files within the project. Jenkins can read this and run the jobs.

Marcus Schwemer July 15, 201710:46 AM

Now some “best practice” advice from daily work

=> build artifacts once

Marcus Schwemer July 15, 201710:48 AM

=> if anything fails, stop the line and kill the whole process
=> use semantic versioning

Marcus Schwemer July 15, 201710:51 AM

=> short lived feature branches
=> use feature toggles to provide features only available to a portion of the users

Marcus Schwemer July 15, 201710:54 AM

=> use blue / green deployments

Useful for big deployments, f.e. with DB migrations. Deploy it to one node, test it, switch the live site to the new node and than depoly to the remaining node

Marcus Schwemer July 15, 201710:55 AM

CI Tools:
* Teamity by Jetbrains
* Bamboo by Atlassian
* GoCD
* Jenkins (pipelines)

Marcus Schwemer July 15, 201710:57 AM

Cloud deployments must be handled in a totally different way.

Marcus Schwemer July 15, 201710:59 AM

Cloud providers take care of deployment. You have to build that what will be shipped. That means deployment must be re-thought

Marcus Schwemer July 15, 201711:01 AM

Several service models are available:

* Software as a service
* Platform as a service (like platform.sh)

Marcus Schwemer July 15, 201711:03 AM

Deployment models are
* private clouds => within a company
* community clouds => only a certain group has a access
* public clouds => most cases, but pay attention to privacy and legal stuff

Marcus Schwemer July 15, 201711:04 AM

Available providers for TYPO3
* AWS
* bitnami
* platform.sh

Marcus Schwemer July 15, 201711:07 AM

A test account for platform.sh is available via typo3.org. A configuration boilerplate for this is available at github.

Marcus Schwemer July 15, 201711:14 AM

Q: As a small company we do not use nearly nothing of the “good stuff”. how should we start?

A: Use small steps. Start with code reviews and pair programming.

Marcus Schwemer July 15, 201711:15 AM

The next session, which I will attend, is at 11:45 with Jigal van Hermert about the “New little gems in TYPO3 V8”.

Marcus Schwemer July 15, 201711:16 AM

Other topics in parallel are a Q&A session of the TYPO3 Association and “Getting Started with test-driven development for TYPO3 CMS” by Oli Klee.

Marcus Schwemer July 15, 201711:44 AM

Just a couple of minutes to go for the features that did not make it into the headline

Marcus Schwemer July 15, 201711:49 AM

There is only one _cli_ user available, who has admin rights. All the others were gone.

Marcus Schwemer July 15, 201711:51 AM

In the scheduler it is now possible to manually schedule the run of the task at the next cron run.

this is usefull, if the cli has other user permissions than the webserver user.

Marcus Schwemer July 15, 201711:51 AM

The groups in the scheduler are now collapsable, especially useful, if you have many many tasks.

Marcus Schwemer July 15, 201711:53 AM

The scheduler has now a link browser to choose a start page.

Marcus Schwemer July 15, 201711:54 AM

MySQL strict support is now fully supported from the core. Extensions must add compatilibity on their own.

Marcus Schwemer July 15, 201711:58 AM

The core ships a script to check a commit against the Core CGL, which you can use in your IDE.

“typo3/sysext/core/Build/Scripts/cglFixMyCommits.sh”

Marcus Schwemer July 15, 201712:03 PM

There is a document for creating custom content elements, which describe it step by step

Marcus Schwemer July 15, 201712:05 PM

A hook regarding the post processing of the preview url in the backend. You can change the page id.

Marcus Schwemer July 15, 201712:06 PM

The settings for mbstring / iconv are gone, because the conversions are autodetected now,

Marcus Schwemer July 15, 201712:07 PM

Multiple locales for the TypoScript setting “config.locale_all” available now. It is a comma seperated list. First working one is used

Marcus Schwemer July 15, 201712:08 PM

Some new viewhelpers for the form viewhelper made it into the core => f:form:option and f:form:optgroup

Marcus Schwemer July 15, 201712:10 PM

A hook was added to add custom typoscript templates. It makes it possible to define a “virtual” root template, if no one is defined in the DB. No need to configure it in the DB any more.

Marcus Schwemer July 15, 201712:11 PM

There is a rst file documenting this feature, which comes with the core.

Marcus Schwemer July 15, 201712:14 PM

Jigal shows a practical example of such a hook using a private project.

Marcus Schwemer July 15, 201712:19 PM

The backend layout wizard is now available inline. No external window is necessary any more.

Marcus Schwemer July 15, 201712:21 PM

The link field was massively improved.

Marcus Schwemer July 15, 201712:22 PM

Actions and dialogs from paste icons appear now in modal windows.

Marcus Schwemer July 15, 201712:23 PM

If you create a new file in the filelist, the editor opens now per default, to create the contents.

Marcus Schwemer July 15, 201712:24 PM

The recycler allows to recover a pagetree until the root page, not only the one page you want to recover.

Marcus Schwemer July 15, 201712:25 PM

The “.well-known” directory used by Let’s Encrypt (f.e.) was added to the htaccess, thus it is not rewritten any more.

Marcus Schwemer July 15, 201712:28 PM

Because prototype js framework is removed completely, it is now possible to use jQuery just with the normal “$” sign.

Marcus Schwemer July 15, 201712:32 PM

It is possible to collapse the page tree and to minimize the module list. But there is no individual with of the page tree any more.

Marcus Schwemer July 15, 201712:39 PM

Thanks for your attention. I will be back after lunch at 2:15 p.m. with the lightning talks for the afternoon.

Marcus Schwemer July 15, 20172:20 PM

Welcome back! The lightning talks for the afternoon are starting.

First on stage: Jo Hasenau about the T3UXW – TYPO3 User Experience Week

Marcus Schwemer July 15, 20172:22 PM

Deployment is a really hot topic nowadays. Thomas Löffler will show us testing and deployment of GitLab CI.

Marcus Schwemer July 15, 20172:24 PM

Oliver Klee is organizing a GPG Keysigning party and Threema scanning meetup in the third slot.

Marcus Schwemer July 15, 20172:27 PM

The fourth session is by Andrew Melck about “Running TYPO3 in platform.sh”.

Marcus Schwemer July 15, 20172:28 PM

In the second set of session from 5:00 p.m. on Frans Saris will give us tips and advice how migrate to the new RTE CKEditor.

Marcus Schwemer July 15, 20172:30 PM

Henrik Malmberg will talk about Digital Asset Management in the TYPO3 community (has nothing to do with the old extension). 😉

Marcus Schwemer July 15, 20172:31 PM

The third slot is a “soft” one. Dan Untenzu focuses on information overload and how to handle it in your business, voluntary and private life

Marcus Schwemer July 15, 20172:35 PM

The third timeslot will be from 5:45 p.m. to 6.30 p.m. Richard Haeser will talk about the challenges of combining TYPO3 and Magento2.

Marcus Schwemer July 15, 20172:36 PM

Olivier Dobberkau and Johannes Goslar will present “nreach.io”, which helps to add a semantic layer using AI to a TYPO3 installation.

Marcus Schwemer July 15, 20172:41 PM

Jigal van Hermert will show us “His wife’s website” – a talk about his experiences with setting up the website for the business of his wife.

Marcus Schwemer July 15, 20172:42 PM

There will a third timeslot for presentations from 6.45 p.m. Helmut Hummel will hold again his talk about the TYPO3 console

Marcus Schwemer July 15, 20172:43 PM

At 19:45 there will be a group photo session in front of the hotel. Afterwards the social event will start right after taking the photos.

Marcus Schwemer July 15, 20172:50 PM

There is one more thing!

Because it is only possible to pay one’s community membership via paypal, Julian had the idea to pay it with naturals. As the price of the membership is based on the price of a burger … he bought three burgers to pay for the first quarter 🙂

Marcus Schwemer July 15, 20172:52 PM

And now and follow me from 3:15 and the talk about the T3UXW.

Marcus Schwemer July 15, 20173:17 PM

Hello, back again to the report of the TYPO3 User Experience Week by Jo Hasenau.

Marcus Schwemer July 15, 20173:18 PM

The T3UXW is located in the middle of no-where with 30 people, where one does not has the chance to get distracted.

Marcus Schwemer July 15, 20173:19 PM

The first T3UXW was held in 2009. TYPO3 profits until now from this event.

Marcus Schwemer July 15, 20173:20 PM

After a break, the T3UXW was revived in 2014. It’s not only about icons, colors and UX, but also from many other areas.

Marcus Schwemer July 15, 20173:22 PM

The goal is to have a cross functional team at the UXW. Coaches, editors, frontend, developers et al. are welcome to participate.

Marcus Schwemer July 15, 20173:25 PM

There are many people who participate several times.

Marcus Schwemer July 15, 20173:26 PM

Topics are prioritized with a relevance chart. The picture is for 2014.

Marcus Schwemer July 15, 20173:31 PM

Topics are carried out over several years. People meet and find out their ideas are quite similar and join forces. Example is the combination of accessibility and SEO.

Marcus Schwemer July 15, 20173:31 PM

And it might take some time and patience “until the ball gets rolling”.

Marcus Schwemer July 15, 20173:34 PM

Another result of the UXW are the guided tours. This enables integrators and developers to teach editors how to use your software.

Marcus Schwemer July 15, 20173:36 PM

Improvements from the last UXW is already in review regarding the UX while creating a new content element. The future will be a modal dialog to make this process more user friendly.

Marcus Schwemer July 15, 20173:45 PM

One of the big and harder topics is the whole language handling thing. The concepts and improvements hit the TYPO3 core code step by step, starting in 6.2 up to 8LTS. Even version 9 will get better in this regard.

Marcus Schwemer July 15, 20173:45 PM

Current “Work in Progress” is the install tool. It will be split up into several modules and get new features. (I missed to take a photo 🙁 )

Marcus Schwemer July 15, 20173:47 PM

For developers there will be a new ui element for the TCA group element with many comfortable features, like inline editing out of the box.

Marcus Schwemer July 15, 20173:49 PM

Petra Hasenau is organizing the event. The overall cost for this event is about 30k euros. If you have a budget to sponsor the event get in contact with Petra.

Marcus Schwemer July 15, 20173:50 PM

The website is available at t3uxw.org

Marcus Schwemer July 15, 20173:51 PM

Q&A and feedback minutes upcoming …

Marcus Schwemer July 15, 20174:00 PM

So the next coffee break is here … I will join the session about DAM in TYPO3.

Marcus Schwemer July 15, 20174:18 PM

Here we go with DAM.

Marcus Schwemer July 15, 20174:20 PM

DAM is Digital Asset Management: Organizing digital assets via a central hub. This is QBNK for today.

Marcus Schwemer July 15, 20174:21 PM

Key things are to create creative content and to access this. There are 10 core characteristics, which a DAM provider must have.

Marcus Schwemer July 15, 20174:24 PM

1) Ingest == upload content
2) Secure == ACL
3) Store == assets, metadata, customizing metadata fields
4) Render == thumbnails
5) Enrich == exif, …

Marcus Schwemer July 15, 20174:29 PM

6) Relate == group, show relations,
7) Workflow == standard steps for enriching, reviews, …
8) Search == search metadata
9) Preview == renders preview before downloading and using them
10) Publish == link, share assets outside the DAM and restricting it

Marcus Schwemer July 15, 20174:31 PM

DAM enables you to brand your assets … they are yours, not the ones of dropbox or googles.

Marcus Schwemer July 15, 20174:35 PM

DAM system can push assets to “clients” or the assets can be pulled from “clients” to use them.

Marcus Schwemer July 15, 20174:41 PM

A DAM should track image rights, from authors, stock photos, getty images, … regarding media, time, size, …

Marcus Schwemer July 15, 20174:44 PM

Image rights is monkey business …

Crazy story here: https://arstechnica.com/tech-policy/2014/08/monkeys-selfie-cannot-be-copyrighted-us-regulators-say/

Marcus Schwemer July 15, 20174:48 PM

The original asset should be always in your DAM system to refer to. And you should track where it is used finally.

Marcus Schwemer July 15, 20174:50 PM

A live demo is following of the QBNK DAM system and the connection to TYPO3 afterwards.

Marcus Schwemer July 15, 20174:54 PM

For TYPO3 there is an extension “qbank_connector” made by Pixelant.

Marcus Schwemer July 15, 20175:11 PM

The next approx. 30 minutes is again a break. At 5:45 I will report from the session of Richard Haeser about the integration of TYPO3 with Magento2.

Marcus Schwemer July 15, 20175:48 PM

Now on stage Richard Haeser with the topic “Combining TYPO3 and Magento2”

Marcus Schwemer July 15, 20175:49 PM

First version:

TYPO3 renders Magento content; the checkout pages came from Magento

Marcus Schwemer July 15, 20175:52 PM

Challenge was to create a own solution, because no extisting one fitted to the project. Additionally it should not be yet another Magento – TYPO3 solution.

Marcus Schwemer July 15, 20175:52 PM

Goals
* make a real integration, not only a wrapper
* use the strength of each system

Marcus Schwemer July 15, 20175:54 PM

The page request flow: How does rendering work?

Marcus Schwemer July 15, 20175:55 PM

The best solution was to put Magento into front, because running TYPO3 headless is fine, but raising severe problems with Magento.

Marcus Schwemer July 15, 20175:58 PM

Blocks of content of both system are possible in the content area. TYPO3 content is cached in the Magento cache.

Marcus Schwemer July 15, 20175:59 PM

The content containers can be mixed as you need it. Some examples:

Marcus Schwemer July 15, 20176:01 PM

The software is in working beta stage, but the project is not finished yet.

Richard is presenting an example how the backend and frontend of both systems fit together

Marcus Schwemer July 15, 20176:07 PM

Editors work only in TYPO3 (no admin permissions), because the product data is automatically imported to magento.

Marcus Schwemer July 15, 20176:08 PM

There is a plan to publish the source code in Q4 / 2017.

Marcus Schwemer July 15, 20176:09 PM

First idea was to give it away totally for free, but this is too big to be able to afford it.

Possibilities: Early access vs. crowdfunding

Marcus Schwemer July 15, 20176:10 PM

Decision was not taken yet. Both is possible.

Marcus Schwemer July 15, 20176:11 PM

Q&A Part starting

Marcus Schwemer July 15, 20176:12 PM

Q: How to Magento & TYPO3 play together?

A: If content in TYPO3 is edited, the Magento cache is invalidated, so the complete page is rendered again.

Marcus Schwemer July 15, 20176:15 PM

Q: How does an editor link a product in an CE?

A: Until now there was not the use case. The tricky part is, that you do not want the complete product tree in the page tree. Solution will need some work.

Marcus Schwemer July 15, 20176:16 PM

Q: Which versions?

A: Only TYPO3 V8+ and Magento2

Marcus Schwemer July 15, 20176:17 PM

Q: Is it possible to run a multi shop installation with it?

A: Technically it should be possible, but not tested yet.

Marcus Schwemer July 15, 20176:26 PM

So this was the last session for today. I will leave the liveblog active, because I will post a couple of images from the social event tonight.