SlideShare uma empresa Scribd logo
1 de 202
Baixar para ler offline
logs are magic!
john sj anderson | @genehack | !seagl 2017
Logs Are MAGIC — SeaGL 2017 — @genehack 1
why git workflows
& commit structure
should matter to you
john sj anderson | @genehack | !seagl 2017
Logs Are MAGIC — SeaGL 2017 — @genehack 2
hi, i’m john.
a/k/a @genehack
Logs Are MAGIC — SeaGL 2017 — @genehack 3
vp, technology
infinity
interactive
Logs Are MAGIC — SeaGL 2017 — @genehack 4
i ❤❤❤❤
revision
controlLogs Are MAGIC — SeaGL 2017 — @genehack 5
cvsLogs Are MAGIC — SeaGL 2017 — @genehack 6
svnLogs Are MAGIC — SeaGL 2017 — @genehack 7
rcsLogs Are MAGIC — SeaGL 2017 — @genehack 8
rcsLogs Are MAGIC — SeaGL 2017 — @genehack 9
gitLogs Are MAGIC — SeaGL 2017 — @genehack 10
i ❤ git
Logs Are MAGIC — SeaGL 2017 — @genehack 11
quick
poll!
Logs Are MAGIC — SeaGL 2017 — @genehack 12
what this
talk isn’tLogs Are MAGIC — SeaGL 2017 — @genehack 13
no
universal truthsLogs Are MAGIC — SeaGL 2017 — @genehack 14
not even
“best practices”
Logs Are MAGIC — SeaGL 2017 — @genehack 15
what this
talk isLogs Are MAGIC — SeaGL 2017 — @genehack 16
some
opinions
Logs Are MAGIC — SeaGL 2017 — @genehack 17
backed up with
experience
Logs Are MAGIC — SeaGL 2017 — @genehack 18
maybe more
important for
larger projects
Logs Are MAGIC — SeaGL 2017 — @genehack 19
but also good for projects
that aspire to be
biggerLogs Are MAGIC — SeaGL 2017 — @genehack 20
maybe more
relevant for
coding projects
Logs Are MAGIC — SeaGL 2017 — @genehack 21
but also
applicable for
doc or config repos
Logs Are MAGIC — SeaGL 2017 — @genehack 22
making better
use of history
Logs Are MAGIC — SeaGL 2017 — @genehack 23
making
better
history
Logs Are MAGIC — SeaGL 2017 — @genehack 24
prerequisites
Logs Are MAGIC — SeaGL 2017 — @genehack 25
consistency
Logs Are MAGIC — SeaGL 2017 — @genehack 26
habits
Logs Are MAGIC — SeaGL 2017 — @genehack 27
do it all
the timeLogs Are MAGIC — SeaGL 2017 — @genehack 28
then you
don’t have to
think
about itLogs Are MAGIC — SeaGL 2017 — @genehack 29
even
betterLogs Are MAGIC — SeaGL 2017 — @genehack 30
automate
itLogs Are MAGIC — SeaGL 2017 — @genehack 31
how to make
better
history
Logs Are MAGIC — SeaGL 2017 — @genehack 32
workflows
Logs Are MAGIC — SeaGL 2017 — @genehack 33
no remote
no branches
master only
Logs Are MAGIC — SeaGL 2017 — @genehack 34
local master
no branches
& periodic pushes
Logs Are MAGIC — SeaGL 2017 — @genehack 35
git flow
Logs Are MAGIC — SeaGL 2017 — @genehack 36
some
notable
antipatterns
Logs Are MAGIC — SeaGL 2017 — @genehack 37
squashed
branches
Logs Are MAGIC — SeaGL 2017 — @genehack 38
fast
forward
merges
Logs Are MAGIC — SeaGL 2017 — @genehack 39
rebase
before
merge
Logs Are MAGIC — SeaGL 2017 — @genehack 40
all
destroy
history
Logs Are MAGIC — SeaGL 2017 — @genehack 41
all
destroy
history
needlessly
Logs Are MAGIC — SeaGL 2017 — @genehack 42
linear
commit history
is a lieLogs Are MAGIC — SeaGL 2017 — @genehack 43
linear
commit history
is a lie
(probably)
Logs Are MAGIC — SeaGL 2017 — @genehack 44
instead
Logs Are MAGIC — SeaGL 2017 — @genehack 45
some good
patternsLogs Are MAGIC — SeaGL 2017 — @genehack 46
branch
Logs Are MAGIC — SeaGL 2017 — @genehack 47
branch
for
errythang
Logs Are MAGIC — SeaGL 2017 — @genehack 48
(specifics
will vary)
Logs Are MAGIC — SeaGL 2017 — @genehack 49
have a
release
branchLogs Are MAGIC — SeaGL 2017 — @genehack 50
release may be master
release may be another branch
Logs Are MAGIC — SeaGL 2017 — @genehack 51
(again, specifics
will vary)
Logs Are MAGIC — SeaGL 2017 — @genehack 52
merging to
the release branch
is
a releaseLogs Are MAGIC — SeaGL 2017 — @genehack 53
(ideally,
automatically)
Logs Are MAGIC — SeaGL 2017 — @genehack 54
make all
merges
non-ffLogs Are MAGIC — SeaGL 2017 — @genehack 55
an
asideLogs Are MAGIC — SeaGL 2017 — @genehack 56
~/.gitconfig
Logs Are MAGIC — SeaGL 2017 — @genehack 57
git config --global merge.ff false
git config --global pull.ff only
Logs Are MAGIC — SeaGL 2017 — @genehack 58
[merge]
ff = false
[pull]
ff = only
Logs Are MAGIC — SeaGL 2017 — @genehack 59
maximal
historical
informationLogs Are MAGIC — SeaGL 2017 — @genehack 60
keep it
cleanLogs Are MAGIC — SeaGL 2017 — @genehack 61
another
asideLogs Are MAGIC — SeaGL 2017 — @genehack 62
~/.gitconfig
aliasesLogs Are MAGIC — SeaGL 2017 — @genehack 63
[alias]
br = branch
ci = commit -v
co = checkout
st = status
Logs Are MAGIC — SeaGL 2017 — @genehack 64
aliases have
many
uses…Logs Are MAGIC — SeaGL 2017 — @genehack 65
Logs Are MAGIC — SeaGL 2017 — @genehack 66
back to keeping it
clean…Logs Are MAGIC — SeaGL 2017 — @genehack 67
clean up
remote branches
Logs Are MAGIC — SeaGL 2017 — @genehack 68
git push origin :<branch>
Logs Are MAGIC — SeaGL 2017 — @genehack 69
git push origin --delete <branch>
Logs Are MAGIC — SeaGL 2017 — @genehack 70
nuke = push origin --delete
Logs Are MAGIC — SeaGL 2017 — @genehack 71
clean up
orphaned
remote-tracking
branchesLogs Are MAGIC — SeaGL 2017 — @genehack 72
git remote prune origin
Logs Are MAGIC — SeaGL 2017 — @genehack 73
prune = remote prune origin
Logs Are MAGIC — SeaGL 2017 — @genehack 74
find
unmerged
branchesLogs Are MAGIC — SeaGL 2017 — @genehack 75
git branch --no-merged master
Logs Are MAGIC — SeaGL 2017 — @genehack 76
git branch --no-merged --remote master
Logs Are MAGIC — SeaGL 2017 — @genehack 77
unmerged = branch --no-merged
remote-unmerged = branch --no-merged --remote
Logs Are MAGIC — SeaGL 2017 — @genehack 78
keep it
cleanLogs Are MAGIC — SeaGL 2017 — @genehack 79
one final
note on
branchesLogs Are MAGIC — SeaGL 2017 — @genehack 80
branch
namesLogs Are MAGIC — SeaGL 2017 — @genehack 81
a branch is
a ticketLogs Are MAGIC — SeaGL 2017 — @genehack 82
the ticket id
should be in
the branch name
Logs Are MAGIC — SeaGL 2017 — @genehack 83
along with
something for
the humansLogs Are MAGIC — SeaGL 2017 — @genehack 84
put the number
at the end of
the branch name
Logs Are MAGIC — SeaGL 2017 — @genehack 85
ok:
fix-login-864
Logs Are MAGIC — SeaGL 2017 — @genehack 86
meh:
fix-864Logs Are MAGIC — SeaGL 2017 — @genehack 87
bad:
864-crapLogs Are MAGIC — SeaGL 2017 — @genehack 88
!!!:
foobarLogs Are MAGIC — SeaGL 2017 — @genehack 89
maybe.
just.
don’t.Logs Are MAGIC — SeaGL 2017 — @genehack 90
include the
branch name
in the commit
when merging
Logs Are MAGIC — SeaGL 2017 — @genehack 91
the default message
works nicely
Logs Are MAGIC — SeaGL 2017 — @genehack 92
Merge branch <name>
Logs Are MAGIC — SeaGL 2017 — @genehack 93
maximal
historical
informationLogs Are MAGIC — SeaGL 2017 — @genehack 94
to review
Logs Are MAGIC — SeaGL 2017 — @genehack 95
don’t squash
Logs Are MAGIC — SeaGL 2017 — @genehack 96
don’t fast forward
Logs Are MAGIC — SeaGL 2017 — @genehack 97
don’t rebase before merge
Logs Are MAGIC — SeaGL 2017 — @genehack 98
don’t destroy your history
Logs Are MAGIC — SeaGL 2017 — @genehack 99
use branches
Logs Are MAGIC — SeaGL 2017 — @genehack 100
use a release branch
Logs Are MAGIC — SeaGL 2017 — @genehack 101
use no-ff to make merge commits
Logs Are MAGIC — SeaGL 2017 — @genehack 102
keep your
repo cleanLogs Are MAGIC — SeaGL 2017 — @genehack 103
let’s get
more
granular
Logs Are MAGIC — SeaGL 2017 — @genehack 104
structuring
individual
commitsLogs Are MAGIC — SeaGL 2017 — @genehack 105
a commit
equals
one “change”
Logs Are MAGIC — SeaGL 2017 — @genehack 106
important:
at each commit
the software
must workLogs Are MAGIC — SeaGL 2017 — @genehack 107
git bisect
Logs Are MAGIC — SeaGL 2017 — @genehack 108
smaller >> bigger
Logs Are MAGIC — SeaGL 2017 — @genehack 109
whitespace
& formatting
Logs Are MAGIC — SeaGL 2017 — @genehack 110
always
go in
distinct commitsLogs Are MAGIC — SeaGL 2017 — @genehack 111
remember!
Logs Are MAGIC — SeaGL 2017 — @genehack 112
revision
is also a
thing
Logs Are MAGIC — SeaGL 2017 — @genehack 113
what you
eventually
push
Logs Are MAGIC — SeaGL 2017 — @genehack 114
!=Logs Are MAGIC — SeaGL 2017 — @genehack 115
your
commits
while
working
Logs Are MAGIC — SeaGL 2017 — @genehack 116
savepoints
Logs Are MAGIC — SeaGL 2017 — @genehack 117
every
working
micro
step
Logs Are MAGIC — SeaGL 2017 — @genehack 118
single “change”
10-15 commits
Logs Are MAGIC — SeaGL 2017 — @genehack 119
git add --patch
Logs Are MAGIC — SeaGL 2017 — @genehack 120
git add -p
Logs Are MAGIC — SeaGL 2017 — @genehack 121
git commit --amend
Logs Are MAGIC — SeaGL 2017 — @genehack 122
editor
supportLogs Are MAGIC — SeaGL 2017 — @genehack 123
magit
fugitive
github.atom.io
Logs Are MAGIC — SeaGL 2017 — @genehack 124
magit
Logs Are MAGIC — SeaGL 2017 — @genehack 125
don’t push
first drafts
Logs Are MAGIC — SeaGL 2017 — @genehack 126
tell a
story
Logs Are MAGIC — SeaGL 2017 — @genehack 127
interactive
rebase
git rebase -i
Logs Are MAGIC — SeaGL 2017 — @genehack 128
sometimes
may be useful to
preserve dead ends
Logs Are MAGIC — SeaGL 2017 — @genehack 129
...as a
warning
for others
Logs Are MAGIC — SeaGL 2017 — @genehack 130
commit
messagesLogs Are MAGIC — SeaGL 2017 — @genehack 131
ticket numbers
in the subject
Logs Are MAGIC — SeaGL 2017 — @genehack 132
(at the end)
Logs Are MAGIC — SeaGL 2017 — @genehack 133
keep the
subject
shortLogs Are MAGIC — SeaGL 2017 — @genehack 134
commit
message
bodiesLogs Are MAGIC — SeaGL 2017 — @genehack 135
Logs Are MAGIC — SeaGL 2017 — @genehack 136
you can customize
the template for
the commit message
Logs Are MAGIC — SeaGL 2017 — @genehack 137
git config --local commit.template ./.template
# edit .template to add whatever you want...
Logs Are MAGIC — SeaGL 2017 — @genehack 138
commit
message
examples
Logs Are MAGIC — SeaGL 2017 — @genehack 139
good:
make login form use POST instead of GET [#864]
Logs Are MAGIC — SeaGL 2017 — @genehack 140
meh:fixed form [#864]
Logs Are MAGIC — SeaGL 2017 — @genehack 141
bad:846 fix
Logs Are MAGIC — SeaGL 2017 — @genehack 142
!!!:foo
Logs Are MAGIC — SeaGL 2017 — @genehack 143
( °□°
Logs Are MAGIC — SeaGL 2017 — @genehack 144
this
is why
daddy drinks
Logs Are MAGIC — SeaGL 2017 — @genehack 145
to review
Logs Are MAGIC — SeaGL 2017 — @genehack 146
1 commit → 1 change
Logs Are MAGIC — SeaGL 2017 — @genehack 147
commit
messages
matter!
Logs Are MAGIC — SeaGL 2017 — @genehack 148
when in doubt make it
smaller
Logs Are MAGIC — SeaGL 2017 — @genehack 149
(make the commit smaller
NOT
the commit message)
Logs Are MAGIC — SeaGL 2017 — @genehack 150
segregate
formatting
changes
Logs Are MAGIC — SeaGL 2017 — @genehack 151
use
checkpoint
commits
as savepoints
Logs Are MAGIC — SeaGL 2017 — @genehack 152
don’t push
first drafts
Logs Are MAGIC — SeaGL 2017 — @genehack 153
revise to
tell a
story
Logs Are MAGIC — SeaGL 2017 — @genehack 154
or at least make yourself look
smartLogs Are MAGIC — SeaGL 2017 — @genehack 155
using
history
betterLogs Are MAGIC — SeaGL 2017 — @genehack 156
jfriLogs Are MAGIC — SeaGL 2017 — @genehack 157
just
friggin’
read
itLogs Are MAGIC — SeaGL 2017 — @genehack 158
~/.gitconfig
(again)
Logs Are MAGIC — SeaGL 2017 — @genehack 159
color
supportLogs Are MAGIC — SeaGL 2017 — @genehack 160
[color]
branch = auto
diff = auto
grep = auto
interactive = auto
showbranch = auto
status = auto
ui = auto
Logs Are MAGIC — SeaGL 2017 — @genehack 161
[color "status"]
added = green bold
changed = red bold
untracked = cyan bold
Logs Are MAGIC — SeaGL 2017 — @genehack 162
git diff
Logs Are MAGIC — SeaGL 2017 — @genehack 163
git diff
Logs Are MAGIC — SeaGL 2017 — @genehack 164
git diff --word-diff
Logs Are MAGIC — SeaGL 2017 — @genehack 165
blame
Logs Are MAGIC — SeaGL 2017 — @genehack 166
git blame
Logs Are MAGIC — SeaGL 2017 — @genehack 167
git blame -w -M
Logs Are MAGIC — SeaGL 2017 — @genehack 168
[alias]
praise = blame
Logs Are MAGIC — SeaGL 2017 — @genehack 169
i will
buy
this tee shirt
hashtag justsayin’
Logs Are MAGIC — SeaGL 2017 — @genehack 170
editor
integrationLogs Are MAGIC — SeaGL 2017 — @genehack 171
M-x git-blame-for-line
Logs Are MAGIC — SeaGL 2017 — @genehack 172
git blame -L <line>,<line> <file>
git log -L <line>,<line>:<file>
Logs Are MAGIC — SeaGL 2017 — @genehack 173
git blame -L 1,1 index.html
Logs Are MAGIC — SeaGL 2017 — @genehack 174
git blame -L 10,50 index.html
Logs Are MAGIC — SeaGL 2017 — @genehack 175
git blame -L 20,+10 index.html
Logs Are MAGIC — SeaGL 2017 — @genehack 176
git log -L 1,1:index.html
Logs Are MAGIC — SeaGL 2017 — @genehack 177
git log -L 10,50:index.html
Logs Are MAGIC — SeaGL 2017 — @genehack 178
git log -L 20,+10:index.html
Logs Are MAGIC — SeaGL 2017 — @genehack 179
git log -S <string>
Logs Are MAGIC — SeaGL 2017 — @genehack 180
git lg
Logs Are MAGIC — SeaGL 2017 — @genehack 181
log --graph --abbrev-commit --date=relative --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
Logs Are MAGIC — SeaGL 2017 — @genehack 182
Logs Are MAGIC — SeaGL 2017 — @genehack 183
--graph
Logs Are MAGIC — SeaGL 2017 — @genehack 184
Logs Are MAGIC — SeaGL 2017 — @genehack 185
--abbrev-commit
Logs Are MAGIC — SeaGL 2017 — @genehack 186
Logs Are MAGIC — SeaGL 2017 — @genehack 187
--date=relative
Logs Are MAGIC — SeaGL 2017 — @genehack 188
Logs Are MAGIC — SeaGL 2017 — @genehack 189
--pretty=format:
'%Cred%h%Creset
-%C(yellow)%d%Creset
%s
%Cgreen(%cr)
%C(bold blue)<%an>%Creset'
Logs Are MAGIC — SeaGL 2017 — @genehack 190
Logs Are MAGIC — SeaGL 2017 — @genehack 191
takeaways!
Logs Are MAGIC — SeaGL 2017 — @genehack 192
history
is
important
Logs Are MAGIC — SeaGL 2017 — @genehack 193
it’s probably
worth more
of your time
Logs Are MAGIC — SeaGL 2017 — @genehack 194
both
creating it
and
using it
Logs Are MAGIC — SeaGL 2017 — @genehack 195
don’t just stop
when the
software
worksLogs Are MAGIC — SeaGL 2017 — @genehack 196
software
development
is hardLogs Are MAGIC — SeaGL 2017 — @genehack 197
be kind
to othersLogs Are MAGIC — SeaGL 2017 — @genehack 198
be kind
to your
future
selfLogs Are MAGIC — SeaGL 2017 — @genehack 199
thank
you!Logs Are MAGIC — SeaGL 2017 — @genehack 200
Logs Are MAGIC — SeaGL 2017 — @genehack 201
questions?
Logs Are MAGIC — SeaGL 2017 — @genehack 202

Mais conteúdo relacionado

Mais de John Anderson

Introduction to Git (even for non-developers)
Introduction to Git (even for non-developers)Introduction to Git (even for non-developers)
Introduction to Git (even for non-developers)John Anderson
 
A static site generator should be your next language learning project
A static site generator should be your next language learning projectA static site generator should be your next language learning project
A static site generator should be your next language learning projectJohn Anderson
 
Do you want to be right or do you want to WIN?
Do you want to be right or do you want to WIN?Do you want to be right or do you want to WIN?
Do you want to be right or do you want to WIN?John Anderson
 
An Introduction to Git (even for non-developers)
An Introduction to Git (even for non-developers)An Introduction to Git (even for non-developers)
An Introduction to Git (even for non-developers)John Anderson
 
You got chocolate in my peanut butter! .NET on Mac & Linux
You got chocolate in my peanut butter! .NET on Mac & LinuxYou got chocolate in my peanut butter! .NET on Mac & Linux
You got chocolate in my peanut butter! .NET on Mac & LinuxJohn Anderson
 
A static site generator should be your next language learning project
A static site generator should be your next language learning projectA static site generator should be your next language learning project
A static site generator should be your next language learning projectJohn Anderson
 
Old Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This CenturyOld Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This CenturyJohn Anderson
 
Introduction to Git (even for non-developers!)
Introduction to Git (even for non-developers!)Introduction to Git (even for non-developers!)
Introduction to Git (even for non-developers!)John Anderson
 
Introduction to Git for Non-Developers
Introduction to Git for Non-DevelopersIntroduction to Git for Non-Developers
Introduction to Git for Non-DevelopersJohn Anderson
 
A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To SwiftJohn Anderson
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJohn Anderson
 
Old Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This CenturyOld Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This CenturyJohn Anderson
 
A Modest Introduction to Swift
A Modest Introduction to SwiftA Modest Introduction to Swift
A Modest Introduction to SwiftJohn Anderson
 
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...John Anderson
 
A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To SwiftJohn Anderson
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJohn Anderson
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJohn Anderson
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJohn Anderson
 
Automate Yo'self -- SeaGL
Automate Yo'self -- SeaGL Automate Yo'self -- SeaGL
Automate Yo'self -- SeaGL John Anderson
 

Mais de John Anderson (20)

#speakerlife
#speakerlife#speakerlife
#speakerlife
 
Introduction to Git (even for non-developers)
Introduction to Git (even for non-developers)Introduction to Git (even for non-developers)
Introduction to Git (even for non-developers)
 
A static site generator should be your next language learning project
A static site generator should be your next language learning projectA static site generator should be your next language learning project
A static site generator should be your next language learning project
 
Do you want to be right or do you want to WIN?
Do you want to be right or do you want to WIN?Do you want to be right or do you want to WIN?
Do you want to be right or do you want to WIN?
 
An Introduction to Git (even for non-developers)
An Introduction to Git (even for non-developers)An Introduction to Git (even for non-developers)
An Introduction to Git (even for non-developers)
 
You got chocolate in my peanut butter! .NET on Mac & Linux
You got chocolate in my peanut butter! .NET on Mac & LinuxYou got chocolate in my peanut butter! .NET on Mac & Linux
You got chocolate in my peanut butter! .NET on Mac & Linux
 
A static site generator should be your next language learning project
A static site generator should be your next language learning projectA static site generator should be your next language learning project
A static site generator should be your next language learning project
 
Old Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This CenturyOld Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This Century
 
Introduction to Git (even for non-developers!)
Introduction to Git (even for non-developers!)Introduction to Git (even for non-developers!)
Introduction to Git (even for non-developers!)
 
Introduction to Git for Non-Developers
Introduction to Git for Non-DevelopersIntroduction to Git for Non-Developers
Introduction to Git for Non-Developers
 
A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To Swift
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your Life
 
Old Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This CenturyOld Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This Century
 
A Modest Introduction to Swift
A Modest Introduction to SwiftA Modest Introduction to Swift
A Modest Introduction to Swift
 
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
 
A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To Swift
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your Life
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your Life
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your Life
 
Automate Yo'self -- SeaGL
Automate Yo'self -- SeaGL Automate Yo'self -- SeaGL
Automate Yo'self -- SeaGL
 

Último

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 

Último (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 

Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You