This document provides an overview of Git, including what it is, its basic concepts and commands. Some key points:
- Git is a content tracking system and almost a versioned file system. It is distributed and allows for branching.
- The basic Git objects are commits, trees, blobs and tags. Commits point to trees, trees point to blobs which contain file content.
- Common commands include git add, git commit, git branch, git checkout, git merge, git push and git pull.
- Git is very fast, allows for cheap and easy branching, and merging is fast and painless in Git.
SubGit is a server-side tool that helps to accomplish Svn to Git migration or Svn/Git synchronization task. This talk describes SubGit pros and cons and compares SubGit with its client-side Git-Svn alternative.
A small presentation for developers with good SVN knowledge that are going to working with Git.
The presentation also contains an example of repository creation on github and a simple scenario of collaboration between two developers
Deep dark-side of git: How git works internallySeongJae Park
Describe how git works internally using small and perfect plumbing commands.
The slide have been used at GDG DevFest 2014 and SOSCON 2014.
The slide can be updated later. And, the latest version would always be provided from this page always.
SubGit is a server-side tool that helps to accomplish Svn to Git migration or Svn/Git synchronization task. This talk describes SubGit pros and cons and compares SubGit with its client-side Git-Svn alternative.
A small presentation for developers with good SVN knowledge that are going to working with Git.
The presentation also contains an example of repository creation on github and a simple scenario of collaboration between two developers
Deep dark-side of git: How git works internallySeongJae Park
Describe how git works internally using small and perfect plumbing commands.
The slide have been used at GDG DevFest 2014 and SOSCON 2014.
The slide can be updated later. And, the latest version would always be provided from this page always.
Do you know the basics of Git but wonder what all the hype is about? Do you want the ultimate control over your Git history? This tutorial will walk you through the basics of committing changes before diving into the more advanced and "dangerous" Git commands.
Git is an open source, distributed version control system used to track many different projects. You can use it to manage anything from a personal notes directory to a multi-programmer project.
This tutorial provides a short walk through of basic git commands and the Git philosophy to project management. Then we’ll dive into an exploration of the more advanced and “dangerous” Git commands. Watch as we rewrite our repository history, track bugs down to a specific commit, and untangle commits into an LKML-worthy patchset.
The second part of a talk about hg and version control I gave to my colleagues in a group of bioinformaticians. First part here: http://www.slideshare.net/giovanni/hg-version-control-bioinformaticians
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"
Working with Git – a simple introduction for those used to working with a VCS like Subversion. Explains concepts and shows examples. Feel free to steal slides for your own purposes.
Do you know the basics of Git but wonder what all the hype is about? Do you want the ultimate control over your Git history? This tutorial will walk you through the basics of committing changes before diving into the more advanced and "dangerous" Git commands.
Git is an open source, distributed version control system used to track many different projects. You can use it to manage anything from a personal notes directory to a multi-programmer project.
This tutorial provides a short walk through of basic git commands and the Git philosophy to project management. Then we’ll dive into an exploration of the more advanced and “dangerous” Git commands. Watch as we rewrite our repository history, track bugs down to a specific commit, and untangle commits into an LKML-worthy patchset.
The second part of a talk about hg and version control I gave to my colleagues in a group of bioinformaticians. First part here: http://www.slideshare.net/giovanni/hg-version-control-bioinformaticians
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"
Working with Git – a simple introduction for those used to working with a VCS like Subversion. Explains concepts and shows examples. Feel free to steal slides for your own purposes.
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
The Information Technology have led us into an era where the production, sharing and use of information are now part of everyday life and of which we are often unaware actors almost: it is now almost inevitable not leave a digital trail of many of the actions we do every day; for example, by digital content such as photos, videos, blog posts and everything that revolves around the social networks (Facebook and Twitter in particular). Added to this is that with the "internet of things", we see an increase in devices such as watches, bracelets, thermostats and many other items that are able to connect to the network and therefore generate large data streams. This explosion of data justifies the birth, in the world of the term Big Data: it indicates the data produced in large quantities, with remarkable speed and in different formats, which requires processing technologies and resources that go far beyond the conventional systems management and storage of data. It is immediately clear that, 1) models of data storage based on the relational model, and 2) processing systems based on stored procedures and computations on grids are not applicable in these contexts. As regards the point 1, the RDBMS, widely used for a great variety of applications, have some problems when the amount of data grows beyond certain limits. The scalability and cost of implementation are only a part of the disadvantages: very often, in fact, when there is opposite to the management of big data, also the variability, or the lack of a fixed structure, represents a significant problem. This has given a boost to the development of the NoSQL database. The website NoSQL Databases defines NoSQL databases such as "Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open source and horizontally scalable." These databases are: distributed, open source, scalable horizontally, without a predetermined pattern (key-value, column-oriented, document-based and graph-based), easily replicable, devoid of the ACID and can handle large amounts of data. These databases are integrated or integrated with processing tools based on the MapReduce paradigm proposed by Google in 2009. MapReduce with the open source Hadoop framework represent the new model for distributed processing of large amounts of data that goes to supplant techniques based on stored procedures and computational grids (step 2). The relational model taught courses in basic database design, has many limitations compared to the demands posed by new applications based on Big Data and NoSQL databases that use to store data and MapReduce to process large amounts of data.
Course Website http://pbdmng.datatoknowledge.it/
Contact me to download the slides
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
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.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
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/
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Smalltalk on Git
1. Git in a Nutshell
Sort of...
Mathias Meyer
www.paperplanes.de
Ruby User Group Berlin
2. What the git?
• Git is not the next Subversion
• Git is a content tracker
• Git is almost a versioned file system
• Git is distributed
3. What the git?
• Git is a huge collection of commands
• Git is f***ing fast
4. Ancient History
• Developed to replace BitKeeper for the Linux
kernel development
• Started out as a couple of scripts built by Linus
Torvalds
• Used by Rails, Merb, Ubuntu, X.org, Wine,
Rubinius and Linux (whoa!)
• Started out focused on development with a
central maintainer
5. Basics
• Every working copy is a full-fledged repository
• Git only tracks content
• Content is identified by a hash
• Though that content has a name
• The same content is only stored once
6. Basics
• Everything is stored in one .git directory in the
top level of your working copy
• Git uses an index to find changes in the
working directory
• The index is a snapshot of a specific tree in the
repository
7. Git Objects
• Git knows four types of objects
• Have SHA1 IDs
• Can be addressed with the six first bytes of
the hash
• Are compressed with gzip
8. Commits
• Refers to a tree and usually a parent commit
(usually the commit before the current one)
• Can have two or more parents, then they
represent a merge
• Or no parent at all
• Stored with a log message
9. Tree
• A simple structure containing names of blobs
and other trees
• Represents a snapshot of the source tree
10. Blob
• Contains data, e.g. file content
• Blobs don’t have names
• Their names are derived from the tree
• Will be found through associations from trees
and commits
11. Tag
• Glued to a specific object
• Marks a specific point in the Git timeline with
a name
12. HEAD
branch
commit
tree
tree blob
tree blob
blob
13. Git Branches
• master - default development branch
• origin - default upstream branch
• HEAD - current branch
14. Git Branches
• HEAD~2, master^1, wtf?
• ~N references the Nth generation
grandparent of a commit
• ^N references the Nth parent of a commit,
only useful for merges of two or more
commits
• So....
15. Git Branches
• HEAD~2 is the second generation grand-
parent of the last commit on the current
branch
• master^2 is the second parent of the last
commit on master
• master~2^2 is the second parent of the
second generation grand-parent of the last
commit on the current branch
17. Git Branches
• Branches are cheap and easy
• A branch is an ID pointing to a tree and a
parent commit
• Merging is cheap, fast and almost painless
• Ergo: Branching in Git rocks
18. How Do I Get Git?
• MacPorts (port install git-core +svn)
• Git Installer for Leopard
• On every Linux distribution (apt-get|rpm
install git-core)
• On Windows? I think so
19. How Do I Get Started?
• mkdir project.git
• cd project.git
• git init
• Start hacking
20. How Do I Get Started?
• Or go to GitHub
• Best GUI for Git evah
21. Everyday Git
• Some of the commonly used Git commands
• Called the Porcelain
22. Set up camp
• git config --global user.name “Mathias Meyer”
• git config --global user.email
“meyer@paperplanes.de”
23. git clone
• Creates a local working copy of a remote
project
• git clone git://github.com/mattmatt/
macistrano.git
24. git checkout
• Checks out code from a branch
• Will overwrite your local changes
• git checkout -b will create a branch and check
it out
30. git commit
• Isn’t it obvious?
• It will check in your changes
• But only the ones you added
• Use git commit -a to check in all the changes
without adding them
• git commit <file> will commit the file without
the need to add it
31. git status
• Shows staged and unstaged changes
• staged = added
• unstaged = new, conflicts, changed
32. git push
• Pushes your changes to a remote repository
• git push origin pushes the current branch
• git push origin master pushes the master
branch
34. git log
• Shows the commit history
• Can be verbose if you want it to
35. git merge
• Merges the changes from a branch into your
current branch
• git merge rails_2_1
• And that’s that
• In case of conflicts, these need to be resolved
and then committed
37. git stash
• It’s like a clipboard in your repository
• Need to work on something else but don’t
want to commit your local changes yet?
• git stash save will save all your changes
• git stash apply will reapply them after you’re
done
• git stash list shows all the stashes
• git stash show shows the changes of a stash
39. git archive
• Creates an export of your repository
• Default is tar
• Convenient, no?
• git archive release_2_1 > release_2_1.tar
40. git ....
• There’s lots more
• Which you probably won’t need most of the
time
• You use 20 or so for everyday work
• Some of them only on special occasions
• git-<tab> and start digging
41. Git-Svn
• The gateway drug for Subversion users
• Warning:You don’t want to use the svn
command ever again
• Ever!
42. Git-Svn
• Basically a couple of Perl scripts
• Using the Subversion bindings
• Translates Subversion commits to Git commits
and vice versa
43. Show me how!
• mkdir webistrano
• git svn init -s http://labs.peritor.com/svn/
webistrano
• git svn fetch
• Get a coffee...
46. Everyday Git-Svn -
Merging
• The potentiel downside of using git merge:
• git svn dcommit will check in all the commits
from the branch in one single svn commit
47. Everyday Git-Svn -
Merging
• The alternative
• dcommit from the branch
• rebase the changes on master
48. Everyday Git-Svn -
Merging
• git commit -a
• git svn rebase # on branch make_me_rich
• git svn dcommit # on branch make_me_rich
• git checkout master
• git svn rebase
• git branch -d make_me_rich
49. Some Git Awesomeness
• Find out what commits will be ci’d to svn
• git svn dcommit -n (rather sparse)
• git cherry -v trunk (full glory)
• Commit partial changes of a file
• git add --patch
50. But I don’t like the CLI
• Use git gui for a “nicer” interface
• Use Gitk to visualize commits and branches
• For both: brace yourself to be blinded
• Much nicer, less powerful: GitNub
• TextMate bundle!
51. In the end...
• Git will blow your brains out
• In several ways
• It takes a while to get used to it
• But it’s totally worth it
• Even if you’re still using Subversion as a central
repository
52. The Bad Stuff
• Poor documentation, be prepared to spend
some time on Google
• Complex beast, lots of small commands
• No API