A brief introduction to version control systemsTim Staley
This is a lunchtime talk I gave to the Southampton astronomy department. The aim was to make them aware of version control systems and when they might need to use them.
A brief introduction to version control systemsTim Staley
This is a lunchtime talk I gave to the Southampton astronomy department. The aim was to make them aware of version control systems and when they might need to use them.
Kernel Recipes 2015: The stable Linux Kernel Tree - 10 years of insanityAnne Nicolas
The Linux kernel gets a stable release about once every week.
This talk will go into the process of getting a patch accepted into the stable releases, how the release process works, and how Greg does a review and release cycle. It will consist of live examples of patches submitted to be added to the stable releases, as well as doing a release “live” on stage.
Greg KH, Linux Foundation
You may think that an efficient versioning, branch and merge solution is all that we need to manage our DITA source files and releases effectively. There are subtle differences however, between configuration management (versioning, branch and merge) and release management.
After a thorough analysis of our requirements for DITA release management, the presenter will share his knowledge of software release management and identify the methods and tools that are widely used by software developers and that are as equally applicable in the information development world.
Fifteen minutes will be reserved at the end or the webinar for questions and to discuss your own release management challenges with Frank Shipley, Componize Chief Technical Officer.
We still have a lot to learn about DITA release management, so why not start by learning from people who have been doing something similar, successfully, for years!
How to get involved with an open source project using github. Shows the process of forking and cloning, a bit of a git primer, and how to submit pull requests. Also how to approach and contribute to an open source project.
This is a series in DevOps where we can go through the DevOps practices(Version Control-CI-CD-Agile-IaaC-monitoring-microservices-...etc) with Microsoft technologies and the edge technologies
GIT is a version control system for tracking changes in computer files and coordinating work on those files among multiple people. It is a open source.
Kernel Recipes 2015: The stable Linux Kernel Tree - 10 years of insanityAnne Nicolas
The Linux kernel gets a stable release about once every week.
This talk will go into the process of getting a patch accepted into the stable releases, how the release process works, and how Greg does a review and release cycle. It will consist of live examples of patches submitted to be added to the stable releases, as well as doing a release “live” on stage.
Greg KH, Linux Foundation
You may think that an efficient versioning, branch and merge solution is all that we need to manage our DITA source files and releases effectively. There are subtle differences however, between configuration management (versioning, branch and merge) and release management.
After a thorough analysis of our requirements for DITA release management, the presenter will share his knowledge of software release management and identify the methods and tools that are widely used by software developers and that are as equally applicable in the information development world.
Fifteen minutes will be reserved at the end or the webinar for questions and to discuss your own release management challenges with Frank Shipley, Componize Chief Technical Officer.
We still have a lot to learn about DITA release management, so why not start by learning from people who have been doing something similar, successfully, for years!
How to get involved with an open source project using github. Shows the process of forking and cloning, a bit of a git primer, and how to submit pull requests. Also how to approach and contribute to an open source project.
This is a series in DevOps where we can go through the DevOps practices(Version Control-CI-CD-Agile-IaaC-monitoring-microservices-...etc) with Microsoft technologies and the edge technologies
GIT is a version control system for tracking changes in computer files and coordinating work on those files among multiple people. It is a open source.
One of the biggest advantages of Git is its branching capabilities. Unlike centralized version control systems, Git branches are cheap and easy to merge. This facilitates the feature branch workflow popular with many Git users.
GIT Details for people who:
* don't know what version control means
* don't know what distributed version control means
* Used to work on SVN (Subversion)
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumAbhijitNarayan2
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. This will be a beginner friendly session where we will explain to you how Git and Github works and how to use it for your future projects as well!
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.
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
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
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!
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
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.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
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.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
2. Content
Version control
Advantages & disadvantages of GIT
GIT basics
Subversion
TortoiseSVN
How to use SVN
Rules on using SVN
2
3. Version Control
Version control (or revision control, or source control) is all
about managing multiple versions of documents,
programs, web sites, etc.
Some well-known version control systems are CVS, Subversion,
Mercurial, and Git.
Distributed systems like Mercurial and Git are newer and are
gradually replacing centralized systems like
CVS and Subversion.
3
4. Local Version Control
Local version-control method of choice is to copy files
into another directory(perhaps a time-stamped directory, if
they’re clever).
This approach is very common because it is so simple, but
it is also incredibly error prone.
Ex :-
• RCS
4
6. Centralized Version Control
Traditional version control system.
• Server with database
• Clients have a working version
Challenges
• Multi-developer conflicts
• Client/server communication
Ex :-
• CVS
• Subversion
• Visual source safe
6
8. Distributed Version Control
Authoritative server by convention only.
Every working checkout is a repository.
Get version control even when detached.
Backups are trivial.
Ex :-
• Mercurial
• BitKeeper
• Darcs
• Bazaar
8
10. Advantages of GIT
Resilience
• No one repository has more data than any other
Speed
• Very fast operations compared to other VCS (I’m
looking at you CVS and Subversion)
Space
• Compression can be done across repository not just per
file
• Minimizes local size as well as push/pull data transfers
Simplicity
• Object model is very simple
Large user base with robust tools
10
11. Disadvantages of GIT
Definite learning curve, especially for those used to
centralized systems.
• Can sometimes seem overwhelming to learn
Conceptual difference
Huge amount of commends
11
15. Introduce yourself to GIT
Enter these lines (with appropriate changes):
• git config --global user.name "John Smith"
• git config --global user.email
jsmith@seas.upenn.edu
You only need to do this once.
If you want to use a different name/email address for a
particular project, you can change it for just that project.
• cd to the project directory.
• Use the above commands, but leave out the --global
15
16. Create and fill a repository
cd to the project directory you want to use.
Type in git init
• This creates the repository (a directory named .git).
• You seldom (if ever) need to look inside this directory.
Type in git add
• The period at the end is part of this command!
• Period means “this directory”.
• This adds all your current files to the repository.
Type in git commit –m "Initial commit“
• You can use a different commit message, if you like.
16
17. Clone a repository from elsewhere
git clone URL
git clone URL mypath
• These make an exact copy of the repository at the
given URL.
git clone git://github.com/rest_of_path/file.git
• Github is the most popular (free) public repository.
All repositories are equal,
• But you can treat some particular repository (such as
one on Github) as the “master” directory.
Typically, each team member works in his/her own
repository, and “merges” with other repositories as
appropriate.
17
18. Making commits
If you create new files and/or folders, they are not tracked by
Git unless you ask it to do so.
• git add newFile1 newFolder1 newFolder2 newFile2
Committing makes a “snapshot” of everything being tracked
into your repository.
• A message telling what you have done is required
• git commit –m “Uncrevulated the conundrum bar”
• git commit
This version opens an editor for you the enter the
message.
To finish, save and quit the editor.
Format of the commit message.
• One line containing the complete summary.
• If more than one line, the second line must be blank.
18
19. Choose an editor
When you “commit,” git will require you to type in a commit
message.
For longer commit messages, you will use an editor.
The default editor is probably vim .
To change the default editor:
• git config --global core.editor /path/to/editor
You may also want to turn on colors:
• git config --global color.ui auto
19
20. Typical workflow
git pull remote_repository
• Get changes from a remote repository and merge them
into your own repository.
git status
• See what Git thinks is going on.
• Use this frequently!
Work on your files (remember to add any new ones).
git commit –m “What I did”
git push
20
22. Developed in 2000 and 2001 (by CollabNet,
Inc.)
to replace CVS and its shortcomings
• Subversion is free
• Subversion is open-source
• Subversion operates across a network
• Subversion handles any types of files,
documents, or directories
• Subversion requires administrative
support
What is subversion22
23. On its own, Subversion is command-line driven
• UNIX:
• MS-DOS:
Numerous GUIs have been built on top of SVN
• TortoiseSVN
• VisualSVN
• XCode (Mac OS X)
Using Subversion
http://tortoisesvn.net/
23
24. TortoiseSVN is
• Open-source (free)
• Integrated directly
into Windows Explorer
• Usable with any development environment
TortoiseSVN
http://tortoisesvn.net/
24
25. Open source application – download it from
• http://tortoisesvn.net/downloads
After the installation a new
option appears in the menu when
you right click on a folder.
25
26. Checkout:
• Receives a copy of an entire project from the
SVN server.
• (Source files, project & make files, resource files,
etc.).
Update:
• Receives copies of individual files or folders on
the server and merges them with your current
copy (locally).
How to use SVN26
27. Commit:
• Sends an updated file (your local copy) to the
SVN server where.
• It is incorporated into the original project
database;
a new version number is assigned not the entire
project.
Add:
• Notifies SVN of a new file or folder that needs to
be added to the existing project (only if SVN is
aware of a file, can you commit the file).
How to use SVN Cont.27
28. Right click in the folder you want to check out
into
Select SVN Checkout…
How to checkout28
29. URL of repository:
http://svn.cs.wayne.edu/svn/csc4111w11/
29
30. Enter the user name and password:
• Your accessID (xx1234) and the same
password you use for Pipeline/Blackboard
30
32. If you have a set of files checked out and
would like to update them to the most
recent version of files in the repository, use the
update command.
If there are newer files in the repository, they will
overwrite any files you have locally, if you
haven’t changed them.
TortoiseSVN can merge some files on its own,
but may tell you there are conflicts with others.
If a file has a conflict use diff.
Update32
33. How to update
Right click on the file, folder or project you want to
update and choose SVN Update
33
34. Once you have added, deleted, or changed
files or directories, you can then commit those
changes to the repository.
Before committing you should always update.
The safest way to commit, is to diff your project
before you commit.
Always check your project out after a commit
and make sure it compiles.
Commit34
35. All commits need to be commented.
If you forget to comment, make a trivial change
to a file and commit adding in your comment
that it applies to the previous commit.
Commit Comments35
36. Include:
• Your Name
• The type of commit (Change, Bug Fix, …)
• What the commit does (Adds ToolTip dialog …)
• Any other important details
Don’t include:
• The names of the files (The log will have them)
• The date or time
36
37. How to commit
Right click on the file, folder or project you
want to update and choose SVN
Commit…
37
38. Right click on the file you want to diff.
Select Diff, this will compare your file to the most
recent (Head) version on the repository. In a
new window.
How to Diff38
39. If just a word changed, it will be in red on one
side yellow on the other
You can use the green arrows to navigate
through the differences.
Diff - How to solve conflicts39
40. If lines were added/deleted one side will have
gray the other yellow.
The Edit menu has options to help you combine
the files.
40
41. Before you commit make sure you add the file
into the repository
After you add - commit
Adding new files41
42. If your commit breaks the baseline.
Update your local copy
Check out the last good version
Commit this version
If you make a bad commit42
43. Carefully test your code before committing
Before committing, perform an update on the
whole source code directory, and then retest
Always commit only the individual files you
modified, not the entire directory
When adding new files to the existing source
code, always perform SVN Add and then SVN
Commit
When you have conflicts, contact the
teammates which modified that file and try to
solve the conflicts together to avoid damages.
Rules on using SVN43
44. Do not share your login and password – you are
responsible for all changes made with your ID
Do not check out projects of other groups !!!
If you check in modifications to the project of
other group you might be responsible for that
If you do not understand something, please ask
GTA before doing that
If you do not like a client that we’re suggesting
you to use, you’re free to use any other
available SVN client (but please notify me and
write a couple of lines explaining why)
44
What is “version control”, and why should you care? Version control is a system
that records changes to a file or set of files over time so that you can recall specific
versions later.
It iseasy to forget which directory you’re in and accidentally write to the wrong file or copy over files you don’t mean to.
To deal with this issue, programmers long ago developed local VCSs that had a simple database that kept all the changes to files under revision control.
A distributed version control system
The major difference between Git and any other VCS (Subversion and friends included) is the way Git thinks about its data. Conceptually, most other systems store information as a list of file-based changes. These systems (CVS, Subversion, Perforce, Bazaar, and so on) think of the information they keep as a set of
files and the changes made to each file over time.
Git doesn’t think of or store its data this way. Instead, Git thinks of its data more like a set of snapshots of a miniature filesystem. Every time you commit, or save the state of your project in Git, it basically takes a picture of what all your files look like at that moment and stores a reference to that snapshot. To be efficient, if files have not changed, Git doesn’t store the file again, just a link to the previous identical file it has already stored. Git thinks about its data more like a stream of snapshots.
1. You modify files in your working directory.
2. You stage the files, adding snapshots of them to your staging area.
3. You do a commit, which takes the files as they are in the staging area and
stores that snapshot permanently to your Git directory.
When you said git init in your project directory, or when you cloned an existing project, you created a repository
The repository is a subdirectory named .git containing various files
The dot indicates a “hidden” directory
You do not work directly with the contents of that directory; various git commands do that for you
You do need a basic understanding of what is in the repository
Your top-level working directory contains everything about your project
The working directory probably contains many subdirectories—source code, binaries, documentation, data files, etc.
One of these subdirectories, named .git, is your repository
At any time, you can take a “snapshot” of everything (or selected things) in your project directory, and put it in your repository
A commit is when you tell git that a change (or addition) you have made is ready to be included in the project