Daily Log for #alfresco IRC Channel

Alfresco discussion and collaboration. Stick around a few hours after asking a question.

Official support for Enterprise subscribers: support.alfresco.com.

Joining the Channel:

Join in the conversation by getting an IRC client and connecting to #alfresco at Freenode. Our you can use the IRC web chat.

More information about the channel is in the wiki.

Getting Help

More help is available in this list of resources.

Daily Log for #alfresco

2018-06-16 10:07:01 GMT <alfresco-discord> <digcat> @agouveia are nice to see you made it on here, was gonna send over an invite πŸ˜ƒ

2018-06-16 10:10:40 GMT <alfresco-discord> <Mark> What are some of the most important examples of things not present in adf atm that can't be simply put together with the alfresco widgets?

2018-06-16 11:36:12 GMT <alfresco-discord> <AFaust> @Mark #1 for me: plug & play extensibility without having to adapt / rebuild the app (aka "addon support")

2018-06-16 15:24:48 GMT <alfresco-discord> <DenysVuika> With regards to addon support, let's keep in mind we are talking about HTML5 page in the browser, not a Java app, not a Server app with jars and so forth. It is very compelling to imagine how a piece of javascript in your browser is composed from 256 plugins but at the end of the day what users to is reload the browser pages to get updated app πŸ˜‰

2018-06-16 15:25:43 GMT <alfresco-discord> <DenysVuika> That does not mean I against of the plugins, but let's not take that to extreme level and invent a new json/config programming language.

2018-06-16 16:03:01 GMT <alfresco-discord> <AFaust> Right... I don't know where I talked about wanting to load 256 client-side plugins. or inventing a new JSON / config programming language. BTW, you already have a couple of JSON configs in ADF / ACA / Process Workspaces because you needed some way to simplify customisation and configuration of the apps build on ADF., and I bet more are going to emerge once feedback grows how annoying it is to always

2018-06-16 16:03:01 GMT <alfresco-discord> touch / rebuild apps for minor, common customisations (i.e. how a node should be rendered depending on its state / the library it is contained in / the permissions of the user)...

2018-06-16 16:16:55 GMT <alfresco-discord> <AFaust> And I know it is going to be hard with a client-only app not backed by a server app. Maybe a serer app is something that is needed to make it into a viable base for a successor of Share...

2018-06-16 16:17:21 GMT <alfresco-discord> <DenysVuika> Indeed, there's definitely an area for config-driven behaviours and we do focus on that. I just personally have mixed feelings about the balance between application and config layers. In the era of cloud-native and mobile-first apps requirements like "I don't want to rebuild the server app" make absolutely no sense as for me. Rebuilding the single page app is cheap and fast nowadays. Everything is

2018-06-16 16:17:21 GMT <alfresco-discord> based on CI/CD and we all have tones of machines building/testing stuff and spawning instances to for staging/production/etc. Every time I push changes to ACA application the Travis builds the app from sources, spawns entire 6.0.5ea Community Edition together with Share, and runs couple hundred of tests (example: https://travis-ci.org/Alfresco/alfresco-content-app/builds/392862704). Same for internal publishing to

2018-06-16 16:17:22 GMT <alfresco-discord> testing AWS machines. So if we forget about scenarios where some guy manually moves an addon file on the usb stick and installs to the single-server on-premise instance, what's wrong with rebuidling the apps given that you need a machine and multi-step workflow anyway to deploy that to the cloud.

2018-06-16 16:17:22 GMT <alfbot> Title:Travis CI - Test and Deploy Your Code with Confidence (at travis-ci.org)

2018-06-16 16:18:35 GMT <alfresco-discord> <AFaust> That is all fine and dandy, if the only customers / users you care about are those bigger organisations with either established dev practices yourself or the pockets to hire external devs...

2018-06-16 16:20:43 GMT <alfresco-discord> <Mark> Don't have to be a big party to have sufficient benefit from ci to have a working business case for it. Don't think it's something inherent to a big organisation these days.

2018-06-16 16:21:41 GMT <alfresco-discord> <DenysVuika> We run e2e tests on a free instance of travis πŸ˜ƒ

2018-06-16 16:21:45 GMT <alfresco-discord> <AFaust> Depends maybe on the region and what you consider big / small organisations, as well as the type of industry they are in...

2018-06-16 16:22:34 GMT <alfresco-discord> <AFaust> For most of my customers here in Germany, it would be unthinkable to have any code for their applications run via public infrastructure services / outside.

2018-06-16 16:23:42 GMT <alfresco-discord> <AFaust> A lot of them just want a standard, stable app that they can install, configure, and maybe add some well encapsulated functionality via their internal (potentially manual) deployment procedure, without having to change their own code...

2018-06-16 16:24:44 GMT <alfresco-discord> <Mark> I agree it is odd to have to rebuild. Feels like losing one of the benefits gained from choosing this tech.

2018-06-16 16:25:27 GMT <alfresco-discord> <AFaust> I don't think I can get a customer like a small law practice or a service provider for food / service-related tenders (of maybe <= 10 employees) to setup a CI/CD environment

2018-06-16 16:25:45 GMT <alfresco-discord> <AFaust> That is not their business...

2018-06-16 16:26:00 GMT <alfresco-discord> <DenysVuika> Well, my point was not the CI/CD but that modern deployment is always a multi-step operation

2018-06-16 16:27:04 GMT <alfresco-discord> <AFaust> It has always been a multi-step operation... that is not in question. I just don't get why that is the argument for "no configurability without rebuild" for all potential use cases / customers / users

2018-06-16 16:29:34 GMT <alfresco-discord> <AFaust> And even when considering the possible CI / CD pipeline, there are currently (AFAIK) no extension points where a customer could simply include / depend on a pre-bundled addon to include in their app, without them having to modify their own source code.

2018-06-16 16:30:19 GMT <alfresco-discord> <AFaust> In all my arguments, I obviously do not care the slightest for standalone, special ADF app uses, only for the use case of ACA and a potential successor to Share...

2018-06-16 16:37:12 GMT <alfresco-discord> <DenysVuika> Just to avoid any misunderstandings - in all the responses above I was not referring to Share at all.

2018-06-16 16:40:34 GMT <alfresco-discord> <DenysVuika> Trying to understand how the extensibility applies or might apply to the SPA (single page app) these days.

2018-06-16 16:42:44 GMT <alfresco-discord> <AFaust> Hard to believe sometimes. It often feels like only a cursory glance was taken at how clients used Share (successfully, not just the cases where they failed) and it was decided to not try and extract any lessons learned (apart from "don't re-use a single concept").

2018-06-16 16:43:22 GMT <alfresco-discord> <AFaust> Maybe I am just too skeptical of the "SPA all the things" dogma (and have seen it fail too many times in non-Alfresco projects) to ever be able to accept it

2018-06-16 16:49:55 GMT <alfresco-discord> <DenysVuika> The biggest obstacle for extensibility in the javasript world these days is that most of the stuff is mobile-first and PWA (progressive web apps). Since we got Tree-Shaking (eliminating all dead or never used code), bundling, minification, it's not that important how many libs are used, at the end it's just couple of kilobytes the app really needs, compared to megabytes of plain code you need to

2018-06-16 16:49:55 GMT <alfresco-discord> have in order to dynamically compose stuff. While the latter worked somehow decade ago and still in many intranets, it's definitely a dead end (imho).

2018-06-16 16:50:13 GMT <alfresco-discord> <DenysVuika> But there's still value in external configs for sure

2018-06-16 16:50:38 GMT <alfresco-discord> <DenysVuika> For instance having an ADF app wrapped into a docker image, and mapping the volume with the app.config file

2018-06-16 16:54:07 GMT <alfresco-discord> <AFaust> Why would you need megabytes of plain code for dynamically composing stuff? Those could be bundled / minified just the same - maybe not at build time, but certainly when a server-side component to the SPA is composing all the relevant parts to it based on context.

2018-06-16 16:54:37 GMT <alfresco-discord> <AFaust> I mean, apart from the first-time load performance (which certainly could be dealt with via pre-warming of caches), this worked quite well with AIkau...

2018-06-16 16:54:41 GMT <alfresco-discord> <DenysVuika> Yeah, this is where the fun beings

2018-06-16 16:54:53 GMT <alfresco-discord> <DenysVuika> Webpack and other bundlers are actively cutting that off

2018-06-16 16:55:32 GMT <alfresco-discord> <AFaust> Yeah... I can imagine that those tools are highly opinionated ...

2018-06-16 16:56:05 GMT <alfresco-discord> <DenysVuika> I've spent a lot of time aruging with webpack guys with no luck. There's no trully dynamic loading so far

2018-06-16 16:56:44 GMT <alfresco-discord> <DenysVuika> there's a Lazy Loading concept that is hot these days, but it related to statically built application just cut into pieces that are loaded on demand

2018-06-16 16:57:43 GMT <alfresco-discord> <AFaust> has to try hard to not go off on a rant about modern web dev ecosystem...

2018-06-16 16:59:14 GMT <alfresco-discord> <DenysVuika> Re magabytes of stuff. Imagine you link PDF.js (5+ MB of code) but never display any PDF files in your app. The Tree Shaker and Bundle Optimiser will find that out easily and cut if off completely.

2018-06-16 16:59:37 GMT <alfresco-discord> <DenysVuika> That also means you can't use a plugin that relies on PDF capabilities anymore

2018-06-16 17:02:00 GMT <alfresco-discord> <AFaust> It could only detect that I never call / instantiate it in my code.... as long as I have conditional code in my app that registers a viewer to be selected at runtime based on mimetype, it would (should?) still leave it included, right?

2018-06-16 17:03:16 GMT <alfresco-discord> <DenysVuika> Yes, there's some code that touches the viewer and so it won't be "tree-shaken"

2018-06-16 17:03:18 GMT <alfresco-discord> <AFaust> So if I have a standardised reference app (say ACA) which includes that conditional feature / code, I should be able to rely on the PDF.js lib to be loaded

2018-06-16 17:05:29 GMT <alfresco-discord> <DenysVuika> I would say it is very easy to manipulate primitives that already exist. It's very hard building content from scratch or dynamically

2018-06-16 17:06:00 GMT <alfresco-discord> <DenysVuika> In terms of manipulation, we can have anything in the config.

2018-06-16 17:07:21 GMT <alfresco-discord> <DenysVuika> By manipulating I mean declaring a button for some toolbar, injecting a statically known component into another one, etc.

2018-06-16 17:08:32 GMT <alfresco-discord> <DenysVuika> Anyway, not against dynamic composition. In fact, I wrote a whole chapter on dynamic compilation in Angular and several blogs on building content on the fly πŸ˜ƒ

2018-06-16 17:17:53 GMT <alfresco-discord> <DenysVuika> What I think/hope would be very interesting for people is the NgRx (Redux) support for ACA we are embracing right now. It will be very simple to watch the dispatcher events, inject own actions/reducers and add extra behaviours as external libs.

2018-06-16 18:20:39 GMT <alfresco-discord> <bhagyas> @AFaust look into how nuxeo allows extensions on their new web client

2018-06-16 18:20:43 GMT <alfresco-discord> <bhagyas> pretty interesting

2018-06-16 18:55:29 GMT <alfresco-discord> <digcat> hey all seen this, https://thenewstack.io/node-js-creator-blasts-node-js-offers-a-secure-typescript-based-alternative

2018-06-16 18:55:30 GMT <alfbot> Title:Node.js Creator Blasts Node.js, Offers a Secure TypeScript-Based Alternative - The New Stack (at thenewstack.io)

2018-06-16 19:09:25 GMT <alfresco-discord> <Francesco Corti> Thomas De Meo won’t be happy

2018-06-16 19:14:02 GMT <alfresco-discord> <bhagyas> We actually use TS for our work, even the ones to do with Alfresco

2018-06-16 19:14:08 GMT <alfresco-discord> <bhagyas> 😊

2018-06-16 19:33:39 GMT <alfresco-discord> <digcat> @Francesco Corti yes not good for Thomas's outfit, depends if anyone can defend it, does this pose issues with angular as well, you cant use angular without nodejs can you?

2018-06-16 19:35:58 GMT <alfresco-discord> <Francesco Corti> Not today, but let’s see how it goes. To me it’s closer the battle Angular vs React. I usually check some data around every month and things are interesting.

2018-06-16 20:20:01 GMT <alfresco-discord> <DenysVuika> @digcat node is used for tooling purposes to invoke some other tools mainly. Like a bash or command prompt. Zero issues for Angular

2018-06-16 20:55:01 GMT <alfresco-discord> <DenysVuika> @digcat you can use Angular without node. Node is used to compile angular app. It's like saying you cannot use browser without java πŸ˜„

2018-06-16 22:00:50 GMT <alfresco-discord> <digcat> hey @bhagyas nuxeo does look good although for how long before Goldman want a return on investment, its interesting how some of the big financial mobs are jumping on open source, i saw how blackstone use all open source for the analytics platforms, particularly the open source version of cassandra

End of Daily Log

The other logs are at http://esplins.org/hash_alfresco