List of good executive education programs in India – Part 1

Since the last few years (5 to 10 years) there has been an exponential growth in executive education courses and market across India. Herewith, I am compiling some of the good options for executive education in India – Part 1.

If you have more links, please share with me over email for Part – 2 of this series.

Email me: Neil@HarwaniSystems.in

How to debug Liferay? – Some pointers – Part 1

How to debug Liferay? Some pointers. – Part 1. Many a times, we only check at specific places and forget other areas while debugging. This small blog acts as a checklist to check and debug Liferay.

  • Look at installing and using GLOWROOT
  • Check the slow traces / web transactions / errors and the related graphs in GLOWROOT
  • Check the logging levels module wise and overall
  • Check all the Liferay nodes if in a cluster
  • Check the app server logs
  • Check JNDI & JDBC settings
  • Check the things by simulating on default vanilla instance / bundle
  • Use help center articles
  • Check your webserver, load balancer and database configurations plus logs
  • Check your portal & system properties
  • Check configurations in control panel for the related work
  • Check your custom API list
  • Check details via GoGo shell commands
  • Check the code in Liferay DevStudio or your favorite IDE
  • Check marketplace apps that are installed
  • Consider using Groovy scripting for debugging
  • Check virtual instances if in use
  • Check OSGI configurations if added
  • Check your elastic search server status
  • Check your heap size and thread dumps plus configurations in setenv.sh/bat

Blog also gives you an idea on the configurability and extent of Liferay modularity. It makes our work easier when many of the things are configurable.

References:

Business Process Reengineering with a fictional Information Technology company

Here is a fictional case study for a business process reengineering class exercise in MBA / PGDM / PGPM classroom. We look at the three phases of an IT founder driven successful startup. Typically, many startups go through these phases. Such examples can be found in many news articles related to Information Technology industry across the world.

Phase 1 – Founder driven startup:

  • Founder driven, liberal culture, no set timings for entry and exit, free snacks, product type employee empowerment driven, work hard, 5 days a week working, flexible hours type culture in an IT company
  • Good salaries & benefits
  • Onsite opportunities
  • Most people are with experience with a small percentage of fresh engineers
  • Work on niche products & services with good margins
  • Few strong partnerships with customers & products / ecosystems
  • Small group of founders & investors with clear goals

Phase 2 – Sale to a larger entity / induction of investors or venture capitalists / investment bankers:

  • Induction of professional management
  • Drive towards IPO
  • Drive towards larger revenue & higher growth
  • Change in services, partnerships & product mix
  • Churn in employees & their loyalty
  • Changes in profitability based on services & product mix
  • Change of branding
  • M&A with other companies or investor portfolio firms
  • Related work with similar companies in investor or buying entity group
  • Focus on long term sustainability
  • Focus on operational excellence

Phase 3 – Stabilization and finding of the “mojo”:

  • Stable partnerships, customers & products / services
  • Stable margins
  • Finding of the mojo product & services mix
  • IPO / Investor / VC / M&A stabilization
  • Mature phase of branding
  • New product / service / offering mix creation
  • Newer ventures in new areas

Email me: Neil@HarwaniSystems.in

Links on important technical concepts of Liferay – Part 1

Here are some links on important technical concepts of Liferay – Part 1. Hope this is helpful to all using and learning Liferay.

Email me: Neil@HarwaniSystems.in

Data Structures & Algorithms Keywords plus Notes – Part 1

Keywords from my learnings in Data Structures & Algorithms Design subject from Semester 1 – M.Tech. BITS Pilani:

  • Pseudocode
  • Definition of algorithms
  • Models for time complexity
  • Primitive operations
  • Notations
  • Correctness of algorithms
  • Recursive algorithms
  • Elementary data structures: Stacks, Queues, Lists
  • Nonlinear data structures: Trees, Binary Trees, Heaps
  • Dictionaries
  • Algorithm design: Greedy, Divide & Conquer, Dynamic programming, Graph
  • Complexity classes & associated topics: P / NP

Email me: Neil@HarwaniSystems.in

Thank you 2022, Welcome 2023

Things are never perfect – we face many challenges (this is not the platform to discuss problems though) but there are many things to be thankful for. Here is my list of 2022 for which I am grateful.

  • Liferay for giving me the opportunity to work directly with products. This is my 4th year working directly or indirectly with products either building them or working internally from an ecosystem around products. Also, my past two clients before Liferay who helped me to work on building internal products directly. Cannot name the customers, ecosystem and people involved but my genuine thanks to all in this journey.
  • BITS Pilani for a fabulous Semester 1 with Distributed Computing, Embedded Systems, Database & Applications and Data Structures & Algorithm Design subjects with all the networking I could do with fellow students. Studying M.Tech. Computer Science / Electrical / Electronics was a wish since decades but somehow work, opportunity and many factors kept me busy and it clicked in 2022.
  • NITIE & Prof. David as the instructor for a supply chain course.
  • My friends, batchmates, students, colleges / universities, their staff, my family and network plus LinkedIn with whom I could work / interact with and learn so many things from.
  • Internet which has fueled so many learnings, opportunities and interactions.
  • All the people with whom I had even the smallest positive interaction like with Rajan Singh who writes many inspirational posts. There are too many to name but I wish a happy new year 2023 to all of you with whom I crossed path in 2022.
  • Hopefully 2023 will be filled with many such learnings, collaborations, knowledge sharing, help and interactions through the ups and downs of life.

Email me: Neil@HarwaniSystems.in

Liferay upgrade learnings – Part 1

Some learnings below from various Liferay upgrades that I have been part of:

  • Upgrades need us to plan various dry runs in advance on non-production environment
  • Divide your upgrade between core / database and non-core upgrade
  • Core includes Liferay engine, configurations and database
  • Non-core includes themes, custom code, integrations and such
  • Understand how to use database upgrade tool for core upgrade
  • Logging of upgrade should be at much more verbose level than normal
  • You can upgrade with document library or without it using portal-ext.properties configurations
  • Upgrades between DXP from 7.x to 7.x are easier whereas upgrades from 6.x to 7.x need more planning
  • For database upgrade tool, you have an option of 3 property files or you can use command prompt to enter required details
  • Make sure you are at the latest version of whichever 7.x you are upgrading to
  • Bad and corrupt data are perpetual problems which need to be analyzed properly before upgrade
  • Use groovy to fix bad data not SQL
  • Consider analysis and compliance from Liferay compatibility matrix, Liferay whitepapers on cloud, security, upgrade & scaling before planning your upgrade
  • Create a template document for upgrade with all major areas pre-covered in analysis via the whitepapers on Liferay.com
  • Understand the breaking changes with every major version release
  • Learn to use the upgrade planner for code upgrade
  • Docker containers are available and should be considered
  • Consider headless, clustering, cloud, advanced file store, CMIS repository options right at the analysis phase of Liferay upgrade
  • For your data storage requirements in future as per scaling – understand and analyze the load to confirm to the right choices of infrastructure like Cloud, SAN / NAS and so on
  • Learn to use the basic Linux commands (if you are using Linux) like top, free, tail, ps, grep, liferay bin commands, sudo, vim, thread dumps and such to monitor / manage the upgrade well
  • Look at top thread dump analyzers like: Smart Java thread dump analyzer – thread dump analysis in seconds (fastthread.io)
  • Consider learning basics of operating system / network you are using, JVM & database tuning / optimization for threads, core allocations, monitoring and using Eclipse IDE to analyze threads, heap, etc.
  • Keep reference guide for system.properties and portal-ext.properties handy during upgrade of core part
  • Keep headless, GraphQL, Liferay / Java API details handy during code upgrade
  • Explore 7.4 DXP features if you are upgrading to this version: Liferay DXP 7.4 New Features
  • Refer help center articles and open documentation both, they have lot of good, useful content
  • Reference: Upgrade Basics — Liferay Learn

Email me: Neil@HarwaniSystems.in

SSO (Single Sign on) Notes – Part 1

With so many products, technologies, protocols and options – SSO (Single Sign on) discussions can sometimes confuse many. Here is my effort to clarify SSO by explaining the layers in it.

  • Types of SSO – System / operating system based or browser based. There are further refined details here but for part 1 of the blog, only covering the basic two types
  • Identity provider – This is the layer which provides the identity and other details of the user. Think of this as a protocol method / function call to assets behind the scenes. Both this layer and service provider act as methods / functions / flow points / events in the full flow of SSO. This layer will go and in the backend most of the times interact with user stores to get details about users
  • Service provider – This is the layer that provides / presents the user with the business application like Liferay and so on by providing features like redirects, discovery of identity provider and so on. Note: applications like Liferay can act both as identity provider & service provider with SAML
  • SSO technology products – PicketLink, ADFS (Active Directory Federation Services), Okta, Auth0, Ping Identity, SiteMinder, Shibboleth and so on
  • Protocols: NTLM (Deprecated), SAML, Kerberos, OpenID and so on
  • Customizations, configurations in applications like web.xml, XMLs, login screens, redirects, tokens, claims and so on along with their application servers

Thinking in terms of layers & flows between these concepts helps us to understand and work in a better way with SSO solutions.

https://commons.wikimedia.org/wiki/File:Saml2-browser-sso-redirect-post.png

References:

  • https://en.wikipedia.org/wiki/Single_sign-on

Email me: Neil@HarwaniSystems.in

Job change analysis factors – Part 1

Creating a blog out of my discussions with students, friends and colleagues.

Many of my past colleagues, team members and students reach me at times on whether to make the job change or not which is on offer to them. Based on my experience and mistakes, I don’t reply with a YES or NO but rather provide the factors on which they should analyse and decide on their own.

So here are the factors we generally discuss in no particular order of priority:
–Glassdoor ratings and comments especially the negative ones
–Salary and CTC
–Benefits like insurance
–Campus
–Travel time from office to home and back
–Job type: Hybrid / WFH / WFO
–Culture
–Cafeteria
–Travel requirements in the new job
–Manager
–Team
–Growth, learning and other aspirations
–Location
–Investors, Founders and Shareholders
–Job role on offer
–Management
–Bonding and CTC / benefits / job role in current company
–Customers at current and new company
–Opportunity to work in non conflict of interest area part time
–Discussion with your prospective team / manager and some people working in the new organisation
–Profitability, products and services portfolio comparison
–Sustainability and resilience
–LinkedIn Insights

None of the above are in any order of priority and there are no absolutes. We need to find what suits us.

Did I miss any major factor?

Email me: Neil@HarwaniSystems.in

Learnings from M.Tech. Software Systems – Semester 1 – Mid Terms @ BITS Pilani

Learnings from M.Tech. Software Systems – Semester 1 – Mid Terms @ BITS Pilani. Listing down important concepts from Semester 1 for benefit of students elsewhere.

Data Structures & Algorithms Design:

  • Time complexity and its generalization for algorithms
  • Standardization for various types of algorithms to build pseudo code and find time complexity from it
  • Various types of data structures & their standardization / representation for programming

Distributed Computing:

  • Distributed vs. Parallel systems
  • Various architectures for distributed systems
  • Von Neumann vs. Harvard architecture
  • Omega networks
  • Vector vs. scalar clocks and various techniques around it

Databases:

  • Representation of queries and architecture of database layers
  • ERD & EERD
  • Theoretical foundation for databases

Embedded systems:

  • ARM architecture & Micro-controller basics
  • Basics of assembly programming
  • Various tools for the ARM simulation
  • Interrupts, registers, modes and various interfaces for ARM systems

Email me: Neil@HarwaniSystems.in

Ideas on Innovation around Software. We Thrive On Ideas. We are Learner Centered, Open Source & Digital Focused.