Vivek Parihar is a serial entrepreneur and polyglot engineer who currently serves as VP of Engineering at XOXODay. He has co-founded two startups and previously served as Head of Engineering for Mobile at Yatra. When not working, he enjoys extreme thrill-seeking adventures like trekking and boxing. The document then outlines Gitflow, a branching model for managing code development, including feature branches for new features, release branches to prepare releases, and hotfix branches for urgent bug fixes in production.
Github - Git Training Slides: FoundationsLee Hanxue
Slide deck with detailed step breakdown that explains how git works, together with simple examples that you can try out yourself. Slides originated from http://teach.github.com/articles/course-slides/
Author: https://twitter.com/matthewmccull
Github - Git Training Slides: FoundationsLee Hanxue
Slide deck with detailed step breakdown that explains how git works, together with simple examples that you can try out yourself. Slides originated from http://teach.github.com/articles/course-slides/
Author: https://twitter.com/matthewmccull
Two days git training with labs
First day covers git basis and essential commands
Second day covers git additional command with a big lab using a git workflow
A Git tutorial for rookies that covers most aspects of basic Git usage for a medium sized project.
This was originally a semestral lecture given at the TU Wien for the course "Software Engineering and Project Management"
This is a presentation give to the Vancouver Drupal users group about moving to GIT as a version control system for a small development team. The presentation details the workflow we settled on, and the git flow method for branch management. You can see a video of the presentation here - http://www.ustream.tv/recorded/13544036
GitFlow is a branching model for Git, created by Vincent Driessen. It has attracted a lot of attention because it is very well suited to collaboration and scaling the development team
Gitflow - Branching and Merging Flow for GitMaulik Shah
As a consequence of its simplicity and repetitive nature, branching and merging are no longer something to be afraid of. Version control tools are supposed to assist in ranching/merging more than anything else.
Enough about the tools, let’s head onto the development model. The model that I’m going to present here is essentially no more than a set of procedures that every team member has to follow in order to come to a managed software development process.
Two days git training with labs
First day covers git basis and essential commands
Second day covers git additional command with a big lab using a git workflow
A Git tutorial for rookies that covers most aspects of basic Git usage for a medium sized project.
This was originally a semestral lecture given at the TU Wien for the course "Software Engineering and Project Management"
This is a presentation give to the Vancouver Drupal users group about moving to GIT as a version control system for a small development team. The presentation details the workflow we settled on, and the git flow method for branch management. You can see a video of the presentation here - http://www.ustream.tv/recorded/13544036
GitFlow is a branching model for Git, created by Vincent Driessen. It has attracted a lot of attention because it is very well suited to collaboration and scaling the development team
Gitflow - Branching and Merging Flow for GitMaulik Shah
As a consequence of its simplicity and repetitive nature, branching and merging are no longer something to be afraid of. Version control tools are supposed to assist in ranching/merging more than anything else.
Enough about the tools, let’s head onto the development model. The model that I’m going to present here is essentially no more than a set of procedures that every team member has to follow in order to come to a managed software development process.
Git is a distributed version-control system for tracking changes in source code during software development.
GitFlow is a branching model for Git which is very well suited to collaboration and scaling the development team.
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017Codemotion
In the years spent on the front line managing open source projects and applications developed by distributed teams, I've managed to gather quite a few Git stories from the trenches. In this practically oriented talk, I will share some patterns and practices I have collected while on the front. We will first go through some useful git aliases, then touch on topics such as the various git branching models, long-running branches, conflict management, the rewriting of project history, etcetera. Oh and yes, the (in)famous Git rebase will be covered too.
Wern Jien present recommended workflow for using Git. He even demonstrate it using animation on https://veerasundar.com/blog/2018/03/gitflow-animated/. This is presented at Inno Tech Bootcamp 2 on 5th July 2018. #ITBC2
Git and Git Workflow Models as Catalysts of Software DevelopmentLemi Orhan Ergin
This is the slides of my latest talk in DevFest Istanbul 2013 which is organized by Google Developers Group Istanbul. The content mainly has 3 sections. Git branching model in theory, creating a feature by git commands and git best practices.
Once you get the hang of the basics, it's time to dive in and start getting work done with git. In this session we will talk about branching strategies, staging your files, writing a good commit message and merge vs rebase. We will also touch on the topic of rewriting history - what it means, examples of doing it and when to avoid it at all costs.
Managing releases effectively through gitMohd Farid
Best practices with GIT
Following some standard processes in GIT branching saved numerous nights in figuring what went wrong while merging some branches.
Programming languages and concepts by vivek pariharVivek Parihar
This presentation is concerned with the study of programming language paradigms, that is the various systems of ideas that have been used to guide the design of programming languages. These paradigms are realized to a greater or lesser extent in various computer languages, although the design of a given language may reflect the influence of more than one paradigm.
Case Study to build a tablet based app that is a shopping assistant.Vivek Parihar
Case Study:
You need to build a tablet based app that is a shopping assistant. When I enter the store, I pick it up and it has the digital catalogue with current inventory status based on live POS feed (so it does not show anything that is stocked out). The digital catalogue is searchable using conversational interface (assume you have the NLP algo available for this). When I choose an item, it shows me similar items (which are identified based on image similarity analysis, you have an algo for it but you need to deploy it for weekly refresh of the similarity dataset) and items which go well together (based on mining past data, you have an algo for it but you need to deploy it for weekly refresh of the dataset). It also has an AR layer which can guide me to the item, and show what is nearby in same isle etc. and give instant offers etc.
1. What is broad architecture for this and choice of tech stack?
2. How will you structure this as a project and what will be team responsibility allocation and timelines?
Too much into acquisition without fixing retention problem: Let's Re-prioriti...Vivek Parihar
As traditional marketing mentality "whatever happens after an acquisition is for everyone else to figure out" is reckless and wrong. Most companies are significantly more likely to be focused on acquisition than retention (44% vs. 16% for companies). As retention is usually cheaper and much low-hanging fruit. So instead of using it as AARRR, you should use it as RARRA. RARRA: the re-prioritized funnel
In general, RARRA is nothing more than a reordered list of AARRR for the modern, saturated and highly competitive app store reality.
First, you need to focus on Retention, then on Activation. Then move on to Referral and Revenue. The last step should be Acquisition. The very last step. Not the first one.
Devops for beginners is basically for the developers who really want to jumps towards DevOps processes and tools. Guide will give basic about what is cloud and virtualisation ?
What are different clouds solutions available?
Most useful and used linux commands with detail description about them.
Linux directory structure and usage.
Basically it will cover all the basics of Linux Administration and cloud concepts.
How fast can you onboard a new team member with VAGRANT ?Vivek Parihar
As the number of developers on a project, the number of projects in an Organization, or the complexity of a single project increases, it also becomes increasingly difficult to keep our development environments operational. From changing dependencies and differing server versions to running completely different operating systems specially windows machines of FrontEnd team, keeping the process of getting a running development environment sane and repeatable is non-trivial.
Getting the development environments identically setup can be a huge undertaking. On top of that, some people use Mac while others Use Linux or Windows. Before you know it, developers will be throwing computers through walls exhausted from constantly configuring and configuring. Windows machine devs yelling WTF is this Imagemagick , people using Mac asking which is better macports vs homebrew vs fink.
Vagrant solves all of this by introducing a common configuration format and workflow for describing and building development environments repeatably across Mac OS X, Windows, or Linux.
Centralized logging system using mongoDBVivek Parihar
This talk will cover the need of a centralized logging system, showcasing the architecture of the system. Also, I talk about how we ended up building this centralized logging system, What was the need for such a system, what problems we faced, how MongoDB fits into this and what others can learn from this.
I also covered some how can we use mongoDB to make our logging system for realtime analytics and alerting system
. The major use case of this system it to keeping track of meaningful events. This could be -:
1. How many users registered ?
2. How many registrations fails ?
3. Most occurred errors while doing something.
4. Realtime Analytics and Alerts
5. Identifying the possible threats.
Mobile First Approach - The key to cross platform interface designVivek Parihar
Mobile first design has been taking centrestage in the consumer internet media stage. This makes it extremely important for the Design/development community to understand the intricacies, pitfalls and the right practices about it.
From my own experiments, I have elicited few interesting protcols and practices for the same. The presentation aims to share the results of the successful experiments and open up discussion on what the best way forward can be.
Outline of the talk:
1. Understanding the need for mobile sites
2. Going through the basics of a fluid interface; differences between responsive sites and mobile sites
3. Bottom up approach - first build minimum features for the smaller screens. It helps keep the lean approach alive.
4. Optimized content structuring - limited size on small screens calls for relevant and optimized content layouts
5. Ensuring the right experience on small screen devices via optimized front end
10 Deployments a day - A brief on extreme release protocolsVivek Parihar
A reflection on how we migrated from an era of production deployments once a week to more than 10 deployments a day. The story of transforming a mere sys-admin to super sophisticated DevOps team, armed with multiple tools, scripts and plugins for achieving automations, accuracy and invincible agility. As we continue on our endeavor for further improvisation, I believe its worth sharing the experience with community. Tentative topics outline:
1.Arming teams for their transformation to DevOps from mere sys-admins.
2.Killing manual deployments (manual deployment->capistrano->webistrano)
3.Automation (for daily backups,monitoring applications and servers deploying dependencies)
4.Saving up time on setting up new instances(using golden image).
5.Using LDAP to maintain servers with public key(avoiding individual logins to every server makes it less messy)
6.Using Puppet for instantiating multiple servers at once.
7.Commissioning our own Cloud Infrastructure.
MongoDb scalability and high availability with Replica-SetVivek Parihar
One of the much awaited features in MongoDB 1.6 is replica sets, MongoDB replication solution providing automatic failover and recovery.
MongoDB High Availabiltity with Replica Sets
This talk will cover -
• What is Replica Set?
• Replication Process
• Advantaged of Replica Set vs master/slave
• How to set up replica set on production Demo
This video is tutorial for setting up the MongoDb replica-set ion production environment. In this i took 3 instances which have already mongo installed and running. This tutorial consists-:
1.Setup the each instance of replica set
2.modify the mongodb.conf to include replica set information
3.configure the servers to include in replica set
4.then cross checking if we kill one primary then secondary becomes primary or not.
Cloudfoundry is the open platform as a service providing a faster and easier way to build, test, deploy and scale applications.Deploy & Scale in seconds on your choice of clouds.
This presentation is on MongoDb basic , it is short and covered a lot of enlightened point which is really helpful for the people who are novice in MongoBb. Here we not only discuss the importance of MongoBb, but also a different scenario where SQL and No SQL (i.e No Only SQL) is good and each one possess their own importance. Also some info about 10Gen's support for MongoBb users.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
2. ➔ I’m a Serial Entrepreneur(Co-founded 2 startups)
Currently serves as VP oF Engineering at
XOXODay
➔ Ex-Head’s Engineering for Mobile @ Yatra's all
verticals.
➔ A Polyglot Engineer*.
Big fan of The Law of “T”
➔ A staunch supporter of Open Source.
➔ Public Speaker
➔ A mad Geek and an Explorer.
When not scaling the applications or servers of the
Internet world, I ‘unwinds’ on extreme
thrill-seeking adventures from trekking to boxing.
Get in touch with me:
LinkedIn:https://in.linkedin.com/in/pariharvivek
Twitter: @vparihar
About Me
3.
4.
5.
6. Supporting branches
Next to the main branches master and develop, our development model uses a variety of supporting
branches to aid parallel development between team members, ease tracking of features, prepare for
production releases and to assist in quickly fixing live production problems. Unlike the main branches, these
branches always have a limited life time, since they will be removed eventually.
The different types of branches we may use are:
● Feature branches
● Release branches
● Hotfix branches
7. May branch off from:
develop
Must merge back into:
Develop
Branch naming convention:
anything except master, develop, release-*, or hotfix-*
Feature branches (or sometimes called topic branches) are used to develop new
features for the upcoming or a distant future release.
The essence of a feature branch is that it exists as long as the feature is in development
Eventually be merged back into develop (to definitely add the new feature to the
upcoming release) or discarded (in case of a disappointing experiment).
Feature branches typically exist in developer repos only, not in origin
Feature branches
8. Creating a feature branch
When starting work on a new feature, branch off from the develop branch.
$ git checkout -b myfeature develop
Switched to a new branch "myfeature"
Incorporating a finished feature on develop
Finished features may be merged into the develop branch to definitely add them to the upcoming release:
$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff myfeature
Updating ea1b82a..05e9557
(Summary of changes)
$ git branch -d myfeature
Deleted branch myfeature (was 05e9557).
$ git push origin develop
9. The --no-ff flag causes the merge to always create a new
commit object, even if the merge could be performed with a
fast-forward.
In the latter case, it is impossible to see from the Git history
which of the commit objects together have implemented a
feature—you would have to manually read all the log
messages. Reverting a whole feature (i.e. a group of commits),
is a true headache in the latter situation, whereas it is easily
done if the --no-ff flag was used.
10. Release branches
May branch off from:
develop
Must merge back into:
develop and master
Branch naming convention:
release-*
11.
12. Creating a release branch
$ git checkout -b release-1.2 develop
Switched to a new branch "release-1.2"
$ git commit -a -m "Bumped version number to 1.2"
[release-1.2 74d9424] Bumped version number to 1.2
1 files changed, 1 insertions(+), 1 deletions(-)
Finishing a release branch
The first two steps in Git:
$ git checkout master
Switched to branch 'master'
$ git merge --no-ff release-1.2 The release is now done, and tagged for future reference.
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2
To keep the changes made in the release branch, we need to merge those back into develop, though.
$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff release-1.2
Merge made by recursive.
13. May branch off from:
master
Must merge back into:
develop and master
Branch naming convention:
hotfix-*
Hotfix branches are very much like release branches in that they are also
meant to prepare for a new production release, albeit unplanned.
A hotfix branch may be branched off from the corresponding tag on the
master branch that marks the production version to fix a critical bug in a
production
Other team members (on the develop branch) can continue, while another
person is preparing a quick production fix.
Hotfix branches
14. Creating the hotfix branch
$ git checkout -b hotfix-1.2.1 master
Switched to a new branch "hotfix-1.2.1"
$ git commit -a -m "Bumped version number to 1.2.1"
[hotfix-1.2.1 41e61bb] Bumped version number to 1.2.1
1 files changed, 1 insertions(+), 1 deletions(-)
Then, fix the bug and commit the fix in one or more separate commits.
$ git commit -m "Fixed severe production problem"
[hotfix-1.2.1 abbe5d6] Fixed severe production problem
5 files changed, 32 insertions(+), 17 deletions(-)
15. Finishing a hotfix branch
First, update master and tag the release.
$ git checkout master
Switched to branch 'master'
$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2.1
Next, include the bugfix in develop, too:
$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)
The one exception to the rule here is
that, when a release branch currently
exists, the hotfix changes need to be
merged into that release branch,
instead of develop
16. Summary
The overall flow of Gitflow is:
● A develop branch is created from master
● A release branch is created from develop
● Feature branches are created from develop
● When a feature is complete it is merged into the develop branch
● When the release branch is done it is merged into develop and master
● If an issue in master is detected a hotfix branch is created from master
● Once the hotfix is complete it is merged to both develop and master