Palestra apresentada no AgileBrazil 2018.
O Git é sem dúvida uma das ferramentas que mais tem potencial de impactar o trabalho da pessoas desenvolvedora de software – desde que ela o conheça bem. Um conhecimento superficial do Git fará com que a pessoa o utilize de forma parecida com que ele usava o Subversion, por exemplo, deixando passar diversas oportunidades.Nessa sessão veremos como o Git pode deixar a programação mais ágil, vamos tirá-lo de uma posição de ferramenta de apoio para levá-lo a um protagonismo no workflow de programação, sendo menos importante somente que a escrita do código em si e suas técnicas.Veremos como usar o Git como instrumento de comunicação do time, além de técnicas que permitem a pessoa foque no código em vez de focar no versionador.
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.
When you play the game of clones, you merge or you reset --hard.
Heard of this thing called Git? Do you know you should be using it yet you never do? Do you lie through your teeth and tell everyone you use it all the time for your personal projects? Know how to use it well but you're not an expert? Do you know the difference between merging and rebasing? Did you get fired for force pushing to master?
Come out and learn Git! This talk will assume very basic knowledge of Git, if you came out to the beginner series talk, you'll be fine!
May the forks be with you.
Even seasoned developers get in trouble with Git, and fixing a botched branch/PR seems to require a deep understanding of Git's numerous concepts—a lot of theory just to get things done. This talk (originally presented at RubyConf Brazil 2016, then at Shopify) re-introduces Git (and GitHub) from the point of view of a pull request, going through tricky spots that show up time and time again, focusing on what we should know in order to avoid those problems—or at least to control the damage.
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.
When you play the game of clones, you merge or you reset --hard.
Heard of this thing called Git? Do you know you should be using it yet you never do? Do you lie through your teeth and tell everyone you use it all the time for your personal projects? Know how to use it well but you're not an expert? Do you know the difference between merging and rebasing? Did you get fired for force pushing to master?
Come out and learn Git! This talk will assume very basic knowledge of Git, if you came out to the beginner series talk, you'll be fine!
May the forks be with you.
Even seasoned developers get in trouble with Git, and fixing a botched branch/PR seems to require a deep understanding of Git's numerous concepts—a lot of theory just to get things done. This talk (originally presented at RubyConf Brazil 2016, then at Shopify) re-introduces Git (and GitHub) from the point of view of a pull request, going through tricky spots that show up time and time again, focusing on what we should know in order to avoid those problems—or at least to control the damage.
You already know how to use “git status”, “git push”, and “git add” for your personal projects. You know how to work on a team project with git version control. How do you achieve the next level of git mastery and become as productive as possible? Mistakes happen very frequently when coding. Sometimes they can be terrifying mistakes. You’ll learn git commands to un-do your coding mistakes effortlessly. How do you re-order, edit, remove, and squash commits? You’ll understand the differences between all the "git r*” commands: "git rebase", "git revert", "git reset", and "git reflog" and know when and why to use them. We’ll cover how to set up your git environment for a productive workflow, different ways to undo your mistakes in git, and finally, different ways to automate an entire git workflow.
These are the slides for a talk that I gave at PyTN 2015 on a Sunday morning.
Slides for a pre-conference workshop I delivered together with Johan Abildskov (@randomsort) at Git Merge 2017 in Brussels.
In the workshop we covered fun things to do with Git hooks, Git attributes and custom drivers.
In the first half, we demonstrate how you can implement a fully local continuous integration workflow using git hooks.
In the second half, we cover cool and creative ways to diff binary files and custom filters for modifying file content while commit'ing.
Troubleshooting MySQL from a MySQL Developer PerspectiveMarcelo Altmann
Working as a MySQL Developer as part of the Bugs committee exposes you to a variety of bugs, such as server crashes, memory leaks, wrong query results, internal thread deadlocks, and others. In this talk, I will cover some of the technics we utilize to troubleshoot MySQL when things are not working as expected.
Some of the topics covered include:
Reproducible test cases
Git Bisect
Stack Traces
GDB
Record and Replay
By the end of this session, attendees will grasp how to tackle analyses of when software is not working as expected.
How we automated our Drupal deployment process at onsavvy.com with Git and Capistrano. First presented at Drupal Show and Tell, 15 August 2013, London.
Kazdy developer zna Gita lub przynajmniej slyszal o nim. Oferuje on wiele mozliwosci, które pozwalaja na tworzenie pelnej historii kodu w projekcie. Aby jednak historia byla przyjazna i przejrzysta, dobrze jest stosowac kilka zasad podczas korzystania z Gita. W czasie prezentacji przedstawie te zasady i omówie kilka sposobów na efektywne wykorzystanie tego systemu kontroli wersji do trzymania historii "w ryzach".
Analisando dumps de memória de aplicações .NETGiovanni Bassi
Palestra apresentada no .NET Community Summit 2018 do iMasters.
(os slides estão com borda branca porque o slideshare não aceitou o upload de outra forma)
You already know how to use “git status”, “git push”, and “git add” for your personal projects. You know how to work on a team project with git version control. How do you achieve the next level of git mastery and become as productive as possible? Mistakes happen very frequently when coding. Sometimes they can be terrifying mistakes. You’ll learn git commands to un-do your coding mistakes effortlessly. How do you re-order, edit, remove, and squash commits? You’ll understand the differences between all the "git r*” commands: "git rebase", "git revert", "git reset", and "git reflog" and know when and why to use them. We’ll cover how to set up your git environment for a productive workflow, different ways to undo your mistakes in git, and finally, different ways to automate an entire git workflow.
These are the slides for a talk that I gave at PyTN 2015 on a Sunday morning.
Slides for a pre-conference workshop I delivered together with Johan Abildskov (@randomsort) at Git Merge 2017 in Brussels.
In the workshop we covered fun things to do with Git hooks, Git attributes and custom drivers.
In the first half, we demonstrate how you can implement a fully local continuous integration workflow using git hooks.
In the second half, we cover cool and creative ways to diff binary files and custom filters for modifying file content while commit'ing.
Troubleshooting MySQL from a MySQL Developer PerspectiveMarcelo Altmann
Working as a MySQL Developer as part of the Bugs committee exposes you to a variety of bugs, such as server crashes, memory leaks, wrong query results, internal thread deadlocks, and others. In this talk, I will cover some of the technics we utilize to troubleshoot MySQL when things are not working as expected.
Some of the topics covered include:
Reproducible test cases
Git Bisect
Stack Traces
GDB
Record and Replay
By the end of this session, attendees will grasp how to tackle analyses of when software is not working as expected.
How we automated our Drupal deployment process at onsavvy.com with Git and Capistrano. First presented at Drupal Show and Tell, 15 August 2013, London.
Kazdy developer zna Gita lub przynajmniej slyszal o nim. Oferuje on wiele mozliwosci, które pozwalaja na tworzenie pelnej historii kodu w projekcie. Aby jednak historia byla przyjazna i przejrzysta, dobrze jest stosowac kilka zasad podczas korzystania z Gita. W czasie prezentacji przedstawie te zasady i omówie kilka sposobów na efektywne wykorzystanie tego systemu kontroli wersji do trzymania historii "w ryzach".
Analisando dumps de memória de aplicações .NETGiovanni Bassi
Palestra apresentada no .NET Community Summit 2018 do iMasters.
(os slides estão com borda branca porque o slideshare não aceitou o upload de outra forma)
Palestra apresentada no meetup do DockerSP. https://www.meetup.com/Docker-Sao-Paulo/events/234372170/
Nessa palestra veremos como montar um processo de build de uma aplicação conteinerizadas, em conjunto com o Docker Hub. Veremos ainda quais são os artefatos e como trabalhar com a promoção entre ambientes. Ao final, montaremos o processo de continuous deployment, opcionalmente colocando na mão do responsável pelo negócio a tomada de decisão da publicação.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
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.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...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.
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!
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
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.
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.
113. st = status
ci = commit
co = checkout
br = branch
fixup = commit --all --amend --no-edit
open = !explorer `git config remote.origin.url`
browse = !git open
119. w w w. l a m b d a 3 . c o m . b r
Obrigado!
@giovannibassi
/giggio.tech
Editor's Notes
cd .git
cat HEAD
cat refs/heads/master
ls objects/xx/yyyyy (sendo que xx são os primeiros 2 dígitos do commit, e yyyyy são o restante do SHA)
git cat-file –p xxyyyyyyyy
git show xxyyyyyyyy
ls refs
cat refs/remotes/origin/master
cd C:\p\samplegitrepo
git co create101to200
#mostra o merge
git merge remove1s
#limpa tudo
git reset --hard HEAD^
#mostra o squash
git rebase -i master
#mostra o rebase
git rebase remove1s
cd C:\p\samplegitrepo
git checkout create101to200withmanycommitsanderror
git reset --hard HEAD^^
cd C:\p\samplegitrepo
git checkout create101to200withmanycommitsanderror
git bisect start
git bisect bad
#rever o log e notar que no master estava ok
git log
git checkout master
git bisect good
#checar com:
ls | % { $(cat $_).Contains('ERR') } | ? { $_ -eq $true }
# fazer varios git bisect bad e good ate achar o commit
#mostrar novamente com script
git bisect reset
git checkout create101to200withmanycommitsanderror-scriptforbisect
cp bisect.ps1 \temp
git bisect start
git bisect bad
git checkout master
git bisect good
git bisect run \temp\bisect.sh