All posts by Neil Harwani

Interested in movies, music, history, computer science, software, engineering, management and technology

What can Jenkins do for you?

Topic: “What can Jenkins do for you?” might sound a bit old fashioned and cliched as Jenkins has been around for a while but it has very varied capabilities via plugins & build pipelines to manage many things. Brief list of capabilities which in no way are exhaustive are given below:

  1. Continuous build management
  2. Continuous deployment
  3. Continuous testing
  4. Continuous quality checks and code scans
  5. Continuous security testing
  6. Continous license checks
  7. Continous Kubernetes, cloud & docker deployment / monitoring
  8. Continuous email notifications for events
  9. Integration with JIRA
  10. Integration with notification systems
  11. Continuous monitoring
  12. Continuous reports & test results analysis

Key concepts, documentation & keywords in Kafka – Part 1

Here are some important concepts, documentation and keywords of Kafka that you can refer and learn. There are two major flavors of Kafka – Apache Kafka & Confluent Kafka, I have listed major keywords, documentation and concepts from both here:

  • Broker
  • Zookeeper
  • kSQL
  • REST-Proxy
  • Schema-Registry
  • Connectors
  • Operator
  • Control Center
  • Streams
  • Topics
  • Consumers
  • Producers
  • Partitions
  • Offset
  • Log
  • Node
  • Replica
  • Message
  • Leader
  • Follower
  • Replicator
  • Schema management
  • Confluent Hub
  • Events
  • Associated keywords in today’s cloud deployments: Docker containers, Kubernetes, Ansible, Security

Associated documentation:

Building data models that everyone can understand and more importantly believe

Building data models that everyone can understand and more importantly believe. Faculty Article – Author: Mr. Balakrishnan Unny & Mr. Neil Harwani. Thank you Sapience – IMNU’s (Nirma University) Alumni Newsletter for publishing our article in Changing Times 2.0 (A Special Edition).

Productivity hacks for Architects / Designers / Tech Leads

As per my experience, the biggest productivity hacks for Architects / Designers / Tech Leads are not to decide the variables / class names / loops / scope / data types / exception handling / object relational mapping & so on – they definitely are important and should be done, but so are the below points:

1. Design patterns

2. What is the code for?

3. Functional to technical mapping

4. Solution creation

5. Pseudocode & logic steps

6. Logic of solution for design / programming problems

7. Co-ordination with stakeholders & communication

8. Code review

9. Logic review of programmed modules

10. Architecture / Design thoughts

11. Knowledge updation around tools / products / frameworks usage

12. Time management of developers

13. Task management of developers

14. Solving problems in design

15. Programming standards management

16. Technical best practices management

17. New technology exploration

18. Helping sales, presales & practice

19. Working on POCs, solutions, products and accelerators

20. Updating oneself with the current happening in industry and domain

21. Automation, Security, Testing, Deployment, Continuous integration / deployment, Integrations, Logging, User Interface / User Experience, Application monitoring, Support structure, Clustering / Auto-scaling, Non functional requirements and other such important areas

22. Establish collaboration / teamwork among technical staff working with them

23. Right documentation and knowledge sharing practices

Many get stuck in only programming, that is definitely something we all love and do, but you should be dividing your time as an Architect / Tech Lead / Designer between programming and above tasks equally. Current enterprise softwares are complex and you can’t achieve much without collaboration and above form an important link for productivity in complex, large team projects.

#architecture #design #technicallead #solutionsarchitect

Email me: Neil@TechAndTrain.com

Visit my creations:

  • www.TechAndTrain.com
  • www.QandA.in
  • www.TechTower.in

Data Analysis Process in Analytics / Data Science

This article is based on understanding from Wikipedia article on Data Analysis & my experiences in Data Science / Analytics / AI / ML – https://en.wikipedia.org/wiki/Data_analysis

Various areas like Data Mining, Predictive Analysis, Exploratory Data Analysis, Text Analytics, Business Intelligence, Confirmatory Data Analysis and Data Visualization overlap with this area

Before starting your journey on solving an industry or academic or research problem in Data Science / Analytics / AI / ML / Decision Science, a fundamental step where many students & professionals struggle is Data Analysis. In this article, I am providing a step by step approach on analyzing your data. Directly starting with programming of various algorithms or neural network on your data could at times be counterproductive and should be avoided. Initial stage should involve robust data analysis via steps given below followed by model building which can include custom or already proven algorithms or a derivative of some popular models. For each of the points discussed below, I have added additional information on top of interpretation of Wikipedia information based on my experience in industry towards the end of each of the points or I have added new points post the interpretations.

Your steps for data analysis should generally be:

  1. Setup your data analysis process at a high level with your objectives – inspecting data, cleaning it, processing (could include dimensionality reduction / feature engineering), transformation, modelling and communicating it. Many forget the functional and feedback loop in this process setup to improve data quality – that must be included too.
  2. Next step is in understanding the data in terms of what is it telling us. Data could be quantitative style numbers or textual or a mix of it. Treatment for all three is different. For quantitative / numerical data, we try to understand whether it is time-series, ranking, part to whole, deviation, frequency distribution, correlation, nominal or geographical or geospatial data. For textual or mixed type of data we need to use approaches of text mining, sentiment analysis, natural language processing to get insights around frequency of words, influential words & sentences by weight, trends, categories, clusters and more. Most of this article revolves around quantitative or numerical data perse and not textual data. I have provided a very brief idea on textual data analysis here in this point.
  3. Next step would be to have the quantitative techniques being applied on the data in terms of sanity, audit / reconciliation of totals via formulas, relationships between data, checking things like whether variables in data are related in terms of correlation / sufficiency / necessity / etc. I would suggest using R Studio or similar tool for this step.
  4. Post this we want to actually perform actions like filtering, sorting, checking range and classes, summary, clusters, relationships, context, extremes, etc. At this stage, exploratory data analysis techniques come in very handy where we use various libraries which provide graphical representation. Excel & Tableau come in handy here.
  5. Our next step will be to check for biases, deciphering facts & opinions, deciphering any numerical incorrect / irrelevant inferences which are being projected and need correction / improvement. This needs detailed study of data from domain / functional perspective and applying statistical analysis on it. Working with a business / functional consultant in this phase is especially useful.
  6. Some areas which we need to take care of include quality of data, quality of measurements, transformations various variables / observations into log scale or others like what we have on richter scale for earthquakes, mapping to objectives and characteristics. This is an intuitive step where visualizing data through various transformations in R / Python / etc. using libraries like Ggplot2, Plotly, Matplotlib, etc. helps.
  7. Next comes checking outliers, missing values, randomness, analysis & plotting various of charts based on type of data whether categorical or continuous. This is statistical analysis & visualization where I find R to be most suited.
  8. Building models around our data analysis steps could involve linear, non-linear models and checking values via hypothesis testing and mapping to algorithms to process, predict, cluster, find trends and so on. Products / tools like R / Python with libraries like Scikit learn, Numpy, Pandas, MLR, Caret, Keras, TensorFlow, etc. help here
  9. While running the models take care of cross-validation of data & sensitivity analysis – This can generally be done using some options in model training & testing phase for supervised learning.
  10. Feedback loop to circle and improve data & results, accuracy analysis and improvement, pipeline building, interpretation of results & functional mapping to domain are additional things that we need to consider on top of the basics given in Wikipedia article. Also, things like dimensionality reduction techniques like PCA, SVD and such need to be explored in detail as they are helpful in this analysis.

Additional information on top of what is in Wikipedia article:

  1. Explainable AI / ML – https://en.wikipedia.org/wiki/Explainable_artificial_intelligence
  2. Interpretable ML – https://statmodeling.stat.columbia.edu/2018/10/30/explainable-ml-versus-interpretable-ml/
  3. Tools / languages / products to use: R, Python, Pandas, Numpy, Tableau and so on
  4. EDA – https://en.wikipedia.org/wiki/Exploratory_data_analysis
  5. Which chart to use – https://www.tableau.com/learn/whitepapers/which-chart-or-graph-is-right-for-you
  6. List of charts – https://python-graph-gallery.com/all-charts/
  7. Confirmatory data analysis – https://en.wikipedia.org/wiki/Statistical_hypothesis_testing
  8. Singular Value Decomposition – https://en.wikipedia.org/wiki/Singular_value_decomposition
  9. Dimensionality Reduction – https://en.wikipedia.org/wiki/Dimensionality_reduction

Email me: Neil@TechAndTrain.com

Visit my creations:

  • www.TechAndTrain.com
  • www.QandA.in
  • www.TechTower.in

What are we doing in AI / ML / Data Science / Decision Science / Analytics World? – Glossary

Over the last few years I have explored, programmed, worked in, researched and taught Data Science / AI / ML / Analytics / Decision Science to multiple students and with many software professionals. I have collected many keywords that you can google and explore. This will help you to keep pace and learn about things happening is these areas. It’s like a glossary of words to search over internet. It’s a mix and match of technologies, algorithms, concepts, AI / ML / Information Technology terms, BigData words and so on in no particular order. I will keep expanding this till it’s a relatively exhaustive list.

  • Automatic Machine Learning
  • Transfer Learning
  • Explainable Machine Learning
  • Keras
  • PyTorch
  • MLR
  • R
  • Python
  • Ggplot2
  • MathplotLib
  • MLib
  • Spark
  • Hadoop
  • Tableau
  • Chatbots
  • Talend
  • MongoDB
  • Neo4j
  • Kafka
  • ELK
  • NoSQL
  • Cassandra
  • AWS SageMaker
  • SVM
  • Decision Trees
  • Regression: Logistic, Multiple, Simple Linear, Polynomial
  • Scikit Learn
  • KNIME
  • BERT
  • NLG
  • NLP
  • Random Forest
  • Hyper parameters
  • Boosting
  • Association rules / mining – Apriori, FP-Growth
  • Data mining
  • OpenCV
  • Self driving cars
  • AI / Memory embedded SOCs, GPUs, TPUs
  • Neural engine chipsets
  • Neural Networks
  • Deep Learning
  • EDA
  • Statistical & Algorithmic modelling
  • Sampling
  • Probability distributions
  • Hypothesis testing
  • Intervals, extrapolation, interpolation
  • Scaling
  • Normalization
  • Agents, search, constraint satisfaction
  • Rules based systems
  • Semantic net
  • Propositional logic
  • Fuzzy reasoning
  • Probabilistic learning
  • First order logic
  • Game theory
  • Pipeline building
  • Ludwig
  • Bayesian belief networks
  • Anaconda Navigator
  • Jupyter
  • Synthetic data
  • Google dataset search
  • Kaggle
  • CNN / RNN / Feed forward / Back propagation / Multi-layer
  • Tensorflow
  • Deepfakes
  • KNN
  • K means clustering
  • Naive Bayes
  • Dimensionality reduction
  • Feature engineering
  • Supervised, unsupervised & reinforcement learning
  • Markov model
  • Time series
  • Categorical & Continuous data
  • Imputation
  • Data analysis
  • Classification / Clustering / Trees / Hyperplane
  • Differential calculus
  • Testing & training data
  • Visualization
  • Missing data treatment
  • Scipy
  • Pandas
  • LightGBM
  • Numpy
  • Dplyr
  • Google Collaboratory
  • PyCharm
  • Plotly
  • Shiny
  • Caret
  • NLTK, Stanford NLP, OpenNLP
  • Artificial intelligence
  • SQL / PLSQL
  • Data warehousing
  • Cognitive computing
  • Coral
  • Arduino
  • Raspberry Pi
  • RTOS
  • DARPA Spectrum Challenge
  • 100 page ML book
  • Equations, Functions, and Graphs
  • Differentiation and Optimization
  • Vectors and Matrices
  • Statistics and Probability
  • Operations management & research
  • Unstructured, semi-structured & structured data
  • Five Vs
  • Descriptive, Predictive & Prescriptive analytics
  • Model accuracy
  • IoT / IIoT
  • Recommendation Systems
  • Real Time Analytics
  • Google Analytics

If you are learning something by googling these topics, feel free to provide suggestions for adding more words here. You are welcome to discuss / suggest on top of this article as well. Thank you for reading.

Email me: Neil@TechAndTrain.com

Visit my creations:

  • www.TechAndTrain.com
  • www.QandA.in
  • www.TechTower.in

Changes in India’s education system in last few years

  • Institutions of Eminence declared – Complete autonomy given to them
  • University status for IIMs, NITs, IIITs, AIIMS, etc. via Institutions of National Importance route
  • Graded autonomy for UGC affiliated institutions – Based on their accreditation score, they can offer online, distance courses and will have autonomy in academics, faculty recruitment, etc.  
  • Graded autonomy for AICTE affiliated institutions – Based on their accreditation score, they can offer online, distance courses and will have autonomy in academics, faculty recruitment, etc.  
  • MCA shortened to two years from three years – It’s now mapped to a standard university master’s degree of two years 
  • Online degrees approved – Degrees like MBA, MCA, PGDM, etc. are being offered online
  • Rationalization in engineering colleges – Colleges with majority empty seats are being closed with no approvals for new applications by colleges for next few years
  • CGPA system now introduced in almost all universities and colleges
  • Merged single regulator & National Education Policy likely to be finalized in next few months 
  • Executive education programs are getting approvals 
  • Hybrid courses by institutions of eminence & institutes of national importance are starting like Executive MTechs, Executive MBAs, etc. which can be done with your routine job 
  • Foreign collaboration with universities & colleges across the world is becoming easier 
  • Deemed universities with high score in accreditation will not require approvals for open & distance learning courses 

Email me: Neil@TechAndTrain.com

Visit my creations:

  • www.TechAndTrain.com
  • www.QandA.in
  • www.TechTower.in

Three waves of Analytics – Notes on articles by Prof. Davenport

References:

ANALYTICS 1.0 – Business Intelligence, RDBMS & Data Warehousing

  • Vertical scaling
  • Better results and analysis meant higher processing power & memory
  • Complex systems
  • Chances of singular failure
  • Backup was compulsory
  • Storage in RDBMS
  • Transformation in business dimensions and facts in Data Warehouse
  • Descriptive analytics mainly

ANALYTICS 2.0 – BigData, Hadoop, NoSQL & Spark – In memory computing

Problems with Analytics 1.0

  • Costly hardware
  • Large amounts of data
  • Unstructured data

Solution

  • BigData
  • Hadoop – Large files
  • NoSQL – Small files or less size data
  • Horizontal scaling

Problems with BigData

  • Querying unstructured data
  • Large amount of data for real time processing not batch processing

Solution

  • PIG
  • HIVE
  • Spark – In-memory computing
  • Predictive analytics mainly

ANALYTICS 3.0 – Edge Computing, Data Rich Organizations, Real Time Analytics & more

Problems with Analytics 2.0

  • Most analysis was retrospective and for past data
  • Organization wide data also started getting collected but was unused
  • Real time data started to flow in big amounts

Solution

  • Data rich organizations
  • Use data from organization to build products not just mapped to market but also with own organization
  • E.g. Differentiated products in manufacturing to compete with mass economies of scale production
  • Edge computing
  • Real time processing
  • Combined data
  • Embedded analytics
  • Data discovery
  • Cross functional teams
  • Moving to Prescriptive & Real Time analytics

Email me: Neil@TechAndTrain.com

Visit my creations:

  • www.TechAndTrain.com
  • www.QandA.in
  • www.TechTower.in

What should you be doing?

Over the initial years of my experience in Information Technology industry when I worked with various large and medium sized organizations, I programmed, worked in solutions / sales engineering and more. Learned many things across various domains and technologies. Met and built a small network. Then I transitioned to multi-tasking around Education & Information Technology.

Did I face roadblocks, yes – many !!!

  • People
  • Lack of opportunities
  • Lack of resources and more.

Here is what you should be doing if you want to overcome similar roadblocks that you are facing:

  • Build weekly, monthly, yearly and long term goals
  • Have ToDo lists
  • Build priorities & alternatives
  • Plan what you will do and what you will not do
  • Learn to say no and push back on things that don’t resonate with you. Saying yes to everyone does not solve the problem, that will increase your problems
  • Build small steps which you can repeatedly do on daily & weekly basis mapped to small outputs
  • You need to go step by step
  • Many people make a mistake of making a grand goal and struggling on next steps
  • You won’t reach your goals in one shot
  • It’s a step by step journey in which you have to go through with struggle each day & week meeting deadlines, completing work, interacting with people and building your network.
  • Learn to create / write articles, websites, blogs and goals – nothing helps more than building goals and writing them down
  • Learn to give more than you consume especially in knowledge areas. People value others who share and discuss knowledge without expectation. That builds your genuine network which is where your success is. Collaboration and sharing with others to enable their success with no expectations is key to authentic network building
  • Every 3 to 6 months pickup something that you don’t know, learn it, teach it, discuss it, work on it
  • Volunteer for more than what is expected out of you – go an extra mile in your tasks
  • Learn to thank those who helped you on your journey

Email me at: neil@TechAndTrain.com

Visit my URLs:

Enterprise environment software areas – Part 1

Over the years that I have been working in IT industry, I have got the chance to be exposed to multiple enterprise (large & mid sized company environments) level software technologies, products & frameworks. These vary in a big way from company to company and project to project / program to program but overall trend goes in a specific direction. Below is a list of enterprise software areas used by large & medium companies that I have had exposure to. This is part 1 of multi series enterprise software list of articles that I hope to bring out – I would not be able to cover all in one go. This will help students and young professionals who have not had the exposure to enterprise software environment to get an idea about these things and trigger thinking along with exploration. Building a bigger picture will help youngsters to be better architects & technology managers.

  1. Security – End point security, firewall, intrusion detection, log analysis, dependency & library analysis, penetration testing, code analysis & scanning, DB encryption, RSA, JFrog XRay
  2. Application stack: ERP, HRM, Portals, Custom solutions build on frameworks like Spring, Enterprise content management, Scanning solutions, WorkDay
  3. Analytics – Web analytics like Google Analytics, Modelling & reporting software, Data Science products for NLG, R, Python, SPSS, SAS
  4. AI / ML / Neural Networks / IoT: Keras, TensorFlow, OpenCV, Apache PredictionIO, Watson, SageMaker, Google AI, Arduino, Kaa, DeviceHive, Home Assistant, DeviceHub
  5. Mathematical modelling: MATLAB, Octave, Magnolia
  6. Integration – ESBs, REST, SOAP
  7. Cloud – AWS, Google Cloud, Azure, Rackspace, SalesForce
  8. Authentication, Roles, Authorization, Web tokens, SSO – OAuth, Open ID Connect, JSON Web Token (JWT), LDAP, CAS, Shibboleth and SAML
  9. Email: Outlook, GSuite, Lotus, Apple
  10. Build, Code management & CI/CD tools: Jenkins, Maven, Ant, BitBucket, GitHub, Artifactory
  11. Code Quality: SONARQube
  12. Integrated Development Environments: Spring Tool Suite, Netbeans, Eclipse, PyCharm, Spyder, Jupyter
  13. Micro-services environment, Containers like Docker
  14. Workflow: JBPM, Activiti
  15. Business rules management – Drools
  16. Automation / Robotic process automation: BluePrism, Automation Anywhere, UiPath
  17. Low code platforms: OutSystems, SalesForce Lightning, Appian
  18. Testing: Selenium, JMeter, Katalon, TestNG, JUnit
  19. ETL: Talend, SSIS, NiFi, Airflow
  20. Web & Application Servers including JavaScript based: Apache Tomcat, JBoss, Jetty, Node.JS, NGINX
  21. Configuration, deployment, container orchestration & scripting automation: Chef, Puppet, Ansible, Kubernetes
  22. API Management: APIGee, Postman, Automate, 3Scale, Dell Boomi, Mashery, Anypoint, Azure API management
  23. Infrastructure & application monitoring: Nagios, New Relic
  24. Operating systems: Windows, Linux, Unix, Ubuntu, Red Hat, CentOS, Fedora, AIX
  25. Reporting & Visualization: JasperSoft, Tableau, Power BI, SAP Analytics, Kibana, Zoho Analytics
  26. BigData, Streaming, RDBMS & NoSQL: PostgreSQL, MySQL, Hadoop, MongoDB, HBase, Spark, Kafka
  27. Learning: Moodle, Coursera, PluralSight, Khan Academy, Udemy, EdX, Canvas, Google Classroom
  28. Project management full cycle including test & bug management, documentation; JIRA, Confluence, Wiki
  29. Software & Enterprise patterns around integration and more
  30. Enterprise architecture: iServer (Orbus), Archi
  31. Miscellaneous: Load balancers (Hardware & Software), Clustering related software, Ticketing management, Zoom, WebEx, Productivity & office tools for presentations, documents, calculations, Skype for Business

Hopefully this has been helpful and I will come back with more thoughts on enterprise software environment & architecture

Email me at: neil@TechAndTrain.com

Visit my URLs: