Sunday, August 5, 2018

Git Forking Vs Branching

Forking

Pros

  • Keeps branches separated by user
  • Reduces clutter in the primary repository
  • Your team process reflects the outside contributor process

Cons

  • Makes it more difficult to see all of the branches that are active (or inactive, for that matter)
  • Collaborating on a branch is trickier (the fork owner needs to add the person as a collaborator)
  • You need to understand the concept of multiple remotes in Git
    • Requires additional mental bookkeeping
    • This will make the workflow more difficult for people who aren't super comfortable with Git

Branching

Pros

  • Keeps all of the work being done around a project in one place
  • All collaborators can push to the same branch to collaborate on it
  • There's only one Git remote to deal with

Cons

  • Branches that get abandoned can pile up more easily
  • Your team contribution process doesn't match the outside contributor process
  • You need to add team members as contributors before they can branch

All About AEM Study meterial.


1) Backup strategies,
2) Sling: EventListner (JCR), EventHandler (AEM) & Schedulers
3) Query: JCR Queries, QueryBuilder, Predicated. When to use which option.
4) Sightly
5) David's content Model
6) Architectural diagrams (Conceptual, Physical, Data Flow, Logical etc.). which diagram is used when and which document you’ll prepare based on customer’s request.
7) AEM Security Checklist: https://docs.adobe.com/docs/en/aem/6-0/administer/security/security-checklist.html
8) Out of the box features & components
9) Translation and Internalizing of AEM components
10) Authentication handler, login module, integration with LDAP, SAML, Development of custom identity providers
11) Security – SAML, LDAP, Custom login module, Authentication handler, 2 factor authentication, clickjacking, CSRF, XSS, firewall rules, DOS attack, ACL groups / users etc.
12) MSM: Blueprint, triggers, actions. Developing custom rollout configurations. Best practices for site hierarchy, live copy, blueprint, live action, roll out config, language copy, translation workflow, etc.
13) Baseline for AEM infrastructure (machine capacity, disk space etc.): how many author/publish instances required based on number of users, size of repository and load on server.
14) Integration with: Adobe Campaign, Adobe Target (mbox.js), Adobe Analytic/Site Catalyst, Adobe Media Optimizer, Dynamic Tag Manager, PhoneGap
15) Importing content from external system – Explore various options such as poll importer, eCommerce product importing, POST servlet, Content packages (best for large content per adobe doc), live feed integration, etc.
16) Integration with external system such as eCommerce PIM, Offer creation system, etc.
17) Serving the web pages created by external system from AEM.
18) Dispatcher – dispatcher.any, permission sensitive caching, dispatcher cache invalidation, etc.
19) Dispatcher server selections – IIS / Apache and how in the context of phased migration to AEM.
20) Dispatcher (very important): you should be able to setup dispatcher on IIS, Apache and should be able to configure it properly based on project requirement. You should know every tag/element and purpose. You should also be ware of security checklist that needs to applied for dispatcher.
21) Deployment options for author / publish and impact on parameters such as performance and failover – TarMK (farm), MongoMK (cluster).
22) Clientlibs and how it helps in improving load time (performance).
23) Performance of author machines – Concurrent workflow, Limiting parallel jobs, Disable asset synchronization service, etc.
24) Identifying number of templates given the pages.
25) AEM forms, its deployment model and security
26) Multiple languages for dialog – Language nodes, translator, etc.
27) AEM translation framework.
28) Account management activities – Password reset, etc.
29) Tagging – Best way to model tag structure.
30) AEM replication. How replication works in various deployment models.
31) WCM Components – Geo location support, OOTB components, Column component, extending components, etc.
32) Ecommerce – product data importing , price information, ecommerce API, etc.
33) UGC / Communities – Moderation, forum support, messaging support, adobe social, social logins, etc.
34) Caching, CDN.

Some Useful links:
· OOTB Components: https://docs.adobe.com/docs/en/aem/6-1/author/page-authoring/default-components/components.html
· Best Practice: https://docs.adobe.com/docs/en/aem/6-0/develop/the-basics/dev-guidelines-bestpractices.html
· OSGi Configs: https://docs.adobe.com/docs/en/cq/5-6-1/deploying/osgi_configuration_settings.html
· https://docs.adobe.com/docs/en/aem/6-1/develop/components/i18n/translator.html
· http://docs.adobe.com/docs/en/aem/6-0/administer/sites/languages.html
· https://docs.adobe.com/docs/en/aem/6-0/develop/components/i18n.html
· http://docs.adobe.com/docs/en/cq/5-5/wcm/default_components.html#Column%20Control
· https://docs.adobe.com/docs/en/cq/5-6-1/deploying/performance.html
· Vanity Path: http://antonyh.co.uk/category/adobe-cq5/
· AEM Form: https://docs.adobe.com/docs/en/aem/6-1/author/page-authoring/default-components/components.html
· https://docs.adobe.com/docs/en/aem/6-0/develop/best-practices.html
· https://helpx.adobe.com/aem-forms/6/aem-forms-architecture-deployment.html
· http://docs.adobe.com/docs/en/aem/6-0/administer/sites/multi-site-manager/msm-sync.html#Synchronisation%20Actions
· http://blogs.adobe.com/experiencedelivers/
· CURL Commands:  (https://gist.github.com/sergeimuller/2916697)

Sunday, March 26, 2017

AEM Marketing team Vs Developers - Basic HTML Content Editor


Overview

In this post, we are going to discuss about the use case when marketing team wants to build new pages out of given AEM/CQ templates and components but want to change the theme of the page. In a way, they want to change look & feel of the page. And some changes expected in functionality as well.

Problem:

Let's assume there is a situation when business/marketing team wants to build new pages with new design and they find that it can't be done even though there are enough templates and components available.
So, they approach to the development team and put their request. Now, development team comes with estimation and breaks entire design pages into peaces because they want to build components for each design peaces. Marketing team feels it is too much time taking and can't wait for 2 to 4 weeks for development, deployment and UAT etc. So what should be done now?.

Solution:

As you understand above problem. This is very common problem in any AEM project. And there are multiple reasons for that.

  • Development team has not consider the authoring experience. They have given a component with fancy functionality and it lacks basic authoring experience. Any small twist breaks the component or change the view. In general, We all developers cares what is being asked in terms of functionality. Authoring is always a low priority.
  • Less involvement of marketing team while demo or in development phase. 
Having said and discussed above problems. Here are the solutions:
  1.  Marketing team has to asked to the development team every time they want new design page. And developers would come up either new template or existing one. Also could end up creating new components. i would skip the complexity of going route.
  2. Provide a simple HTML content editor and asked build to insert the pure html content through this component and render whatever design they want.
Second solution seems more easy for both parties. isn't?

"A simple HTML Content Editor component would give flexibility to the marketing team to build new pages they want. All they have to do is get html peace along with CSS & Javascript and insert through this component into the page".
I know many questions might have popup in your mind that why can't we build entire application like this. Or You might be thinking about pros & Cons of this solution.

Pros

  • Easiest & Quickest route for the marketing team to deliver new content.
  • No development effort so cost saving as well.
  • Completely owned by marketing team. No dependencies except designer team.

Cons

  • A html which will be used by marketing team must be self sufficient. it means all javaScript & css and assets owned by them. 
  • If there is no developer interference then css & javascript must be inline within the html snippet. 
  • All URL's especially DAM or third party must be absolute URL's. can't point to the domain where no assets are found.
Now the question is how this component should be?. Is it different AEM Rich text editor? why can't we use rich text editor?

To keep this post short, we have another post to describe how HTML Content editor component should be build to solve above problem.
Basic HTML Content Editor Vs RichTextEditor



Thursday, August 25, 2016

AEM Template Level Properties

Below table explains the properties & attributes at the AEM template level. 

Name Type Description 
. cq:TemplateCurrent template. A template is of node type cq:Template.
 allowedChildren  String[]Path of a template that is allowed to be a child of this template.
 allowedParents String[]Path of a template that is allowed to be a parent of this template.
 allowedPaths String[]Path of a page that is allowed to be based on this template.
 jcr:created DateDate of creation of the template.
 jcr:description StringDescription of the template.
 jcr:title StringTitle of the template.
 ranking LongRank of the template. Used to display the template in the User Interface.
 jcr:content cq:PageContentNode containing the content of the template.
 thumbnail.png nt:fileThumbnail of the template.
 icon.png nt:fileIcon of the template.

AEM Page Manager API: Creating valid & Unique name programatically.

This post has been moved to below link AEM Solution: Creating AEM JCR valid & Unique name programatically https://followcybersecu...